ZGlmZiAtLWdpdCBhL3BhcnNlci5jIGIvcGFyc2VyLmMKaW5kZXggMDcyZWIyMmQuLmY4NjNlZGQxIDEwMDY0NAotLS0gYS9wYXJzZXIuYworKysgYi9wYXJzZXIuYwpAQCAtOTYsMTIgKzk2LDYgQEAgeG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dEludGVybmFsKGNvbnN0IHhtbENoYXIgKlVSTCwgY29uc3QgeG1sQ2hhciAqSUQsCiAKIHN0YXRpYyB2b2lkIHhtbEhhbHRQYXJzZXIoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKIAotc3RhdGljIGludAoteG1sUGFyc2VFbGVtZW50U3RhcnQoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKLQotc3RhdGljIHZvaWQKLXhtbFBhcnNlRWxlbWVudEVuZCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOwotCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgkJCQkJCQkJCSoKICAqCUFyYml0cmFyeSBsaW1pdHMgc2V0IGluIHRoZSBwYXJzZXIuIFNlZSBYTUxfUEFSU0VfSFVHRQkJKgpAQCAtMTgyOCw2ICsxODIyLDcgQEAgbm9kZVBvcCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpCiAgICAgcmV0dXJuIChyZXQpOwogfQogCisjaWZkZWYgTElCWE1MX1BVU0hfRU5BQkxFRAogLyoqCiAgKiBuYW1lTnNQdXNoOgogICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKQEAgLTE4NjMsMTEgKzE4NTgsNiBAQCBuYW1lTnNQdXNoKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqIHZhbHVlLAogCSAgICBnb3RvIG1lbV9lcnJvcjsKICAgICAgICAgfQogCWN0eHQtPnB1c2hUYWIgPSB0bXAyOwotICAgIH0gZWxzZSBpZiAoY3R4dC0+cHVzaFRhYiA9PSBOVUxMKSB7Ci0gICAgICAgIGN0eHQtPnB1c2hUYWIgPSAodm9pZCAqKikgeG1sTWFsbG9jKGN0eHQtPm5hbWVNYXggKiAzICoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGN0eHQtPnB1c2hUYWJbMF0pKTsKLSAgICAgICAgaWYgKGN0eHQtPnB1c2hUYWIgPT0gTlVMTCkKLSAgICAgICAgICAgIGdvdG8gbWVtX2Vycm9yOwogICAgIH0KICAgICBjdHh0LT5uYW1lVGFiW2N0eHQtPm5hbWVOcl0gPSB2YWx1ZTsKICAgICBjdHh0LT5uYW1lID0gdmFsdWU7CkBAIC0xODc5LDcgKzE4NjksNiBAQCBtZW1fZXJyb3I6CiAgICAgeG1sRXJyTWVtb3J5KGN0eHQsIE5VTEwpOwogICAgIHJldHVybiAoLTEpOwogfQotI2lmZGVmIExJQlhNTF9QVVNIX0VOQUJMRUQKIC8qKgogICogbmFtZU5zUG9wOgogICogQGN0eHQ6IGFuIFhNTCBwYXJzZXIgY29udGV4dApAQCAtOTgxMiwxMCArOTgwMSw5IEBAIHhtbFBhcnNlQ0RTZWN0KHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgewogCiB2b2lkCiB4bWxQYXJzZUNvbnRlbnQoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7Ci0gICAgaW50IG5hbWVOciA9IGN0eHQtPm5hbWVOcjsKLQogICAgIEdST1c7CiAgICAgd2hpbGUgKChSQVcgIT0gMCkgJiYKKwkgICAoKFJBVyAhPSAnPCcpIHx8IChOWFQoMSkgIT0gJy8nKSkgJiYKIAkgICAoY3R4dC0+aW5zdGF0ZSAhPSBYTUxfUEFSU0VSX0VPRikpIHsKIAljb25zdCB4bWxDaGFyICp0ZXN0ID0gQ1VSX1BUUjsKIAl1bnNpZ25lZCBpbnQgY29ucyA9IGN0eHQtPmlucHV0LT5jb25zdW1lZDsKQEAgLTk4NDksMTMgKzk4MzcsNyBAQCB4bWxQYXJzZUNvbnRlbnQoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CiAJICogRm91cnRoIGNhc2UgOiAgYSBzdWItZWxlbWVudC4KIAkgKi8KIAllbHNlIGlmICgqY3VyID09ICc8JykgewotICAgICAgICAgICAgaWYgKE5YVCgxKSA9PSAnLycpIHsKLSAgICAgICAgICAgICAgICBpZiAoY3R4dC0+bmFtZU5yIDw9IG5hbWVOcikKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0JICAgICAgICB4bWxQYXJzZUVsZW1lbnRFbmQoY3R4dCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotCSAgICAgICAgeG1sUGFyc2VFbGVtZW50U3RhcnQoY3R4dCk7Ci0gICAgICAgICAgICB9CisJICAgIHhtbFBhcnNlRWxlbWVudChjdHh0KTsKIAl9CiAKIAkvKgpAQCAtOTg5MCw3ICs5ODcyLDcgQEAgeG1sUGFyc2VDb250ZW50KHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgewogICogeG1sUGFyc2VFbGVtZW50OgogICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKICAqCi0gKiBwYXJzZSBhbiBYTUwgZWxlbWVudAorICogcGFyc2UgYW4gWE1MIGVsZW1lbnQsIHRoaXMgaXMgaGlnaGx5IHJlY3Vyc2l2ZQogICoKICAqIFszOV0gZWxlbWVudCA6Oj0gRW1wdHlFbGVtVGFnIHwgU1RhZyBjb250ZW50IEVUYWcKICAqCkBAIC05OTAyLDIzICs5ODg0LDYgQEAgeG1sUGFyc2VDb250ZW50KHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgewogCiB2b2lkCiB4bWxQYXJzZUVsZW1lbnQoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7Ci0gICAgaWYgKHhtbFBhcnNlRWxlbWVudFN0YXJ0KGN0eHQpICE9IDApCi0gICAgICAgIHJldHVybjsKLSAgICB4bWxQYXJzZUNvbnRlbnQoY3R4dCk7Ci0gICAgaWYgKGN0eHQtPmluc3RhdGUgPT0gWE1MX1BBUlNFUl9FT0YpCi0JcmV0dXJuOwotICAgIHhtbFBhcnNlRWxlbWVudEVuZChjdHh0KTsKLX0KLQotLyoqCi0gKiB4bWxQYXJzZUVsZW1lbnRTdGFydDoKLSAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0Ci0gKgotICogUGFyc2UgdGhlIHN0YXJ0IG9mIGFuIFhNTCBlbGVtZW50LiBSZXR1cm5zIC0xIGluIGNhc2Ugb2YgZXJyb3IsIDAgaWYgYW4KLSAqIG9wZW5pbmcgdGFnIHdhcyBwYXJzZWQsIDEgaWYgYW4gZW1wdHkgZWxlbWVudCB3YXMgcGFyc2VkLgotICovCi1zdGF0aWMgaW50Ci14bWxQYXJzZUVsZW1lbnRTdGFydCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKICAgICBjb25zdCB4bWxDaGFyICpuYW1lOwogICAgIGNvbnN0IHhtbENoYXIgKnByZWZpeCA9IE5VTEw7CiAgICAgY29uc3QgeG1sQ2hhciAqVVJJID0gTlVMTDsKQEAgLTk5MzMsNyArOTg5OCw3IEBAIHhtbFBhcnNlRWxlbWVudFN0YXJ0KHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgewogCQkgIkV4Y2Vzc2l2ZSBkZXB0aCBpbiBkb2N1bWVudDogJWQgdXNlIFhNTF9QQVJTRV9IVUdFIG9wdGlvblxuIiwKIAkJCSAgeG1sUGFyc2VyTWF4RGVwdGgpOwogCXhtbEhhbHRQYXJzZXIoY3R4dCk7Ci0JcmV0dXJuKC0xKTsKKwlyZXR1cm47CiAgICAgfQogCiAgICAgLyogQ2FwdHVyZSBzdGFydCBwb3NpdGlvbiAqLwpAQCAtOTk2MCwxNyArOTkyNSwxMiBAQCB4bWxQYXJzZUVsZW1lbnRTdGFydCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKIAluYW1lID0geG1sUGFyc2VTdGFydFRhZyhjdHh0KTsKICNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCiAgICAgaWYgKGN0eHQtPmluc3RhdGUgPT0gWE1MX1BBUlNFUl9FT0YpCi0JcmV0dXJuKC0xKTsKKwlyZXR1cm47CiAgICAgaWYgKG5hbWUgPT0gTlVMTCkgewogCXNwYWNlUG9wKGN0eHQpOwotICAgICAgICByZXR1cm4oLTEpOworICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGlmIChjdHh0LT5zYXgyKQotICAgICAgICBuYW1lTnNQdXNoKGN0eHQsIG5hbWUsIHByZWZpeCwgVVJJLCBjdHh0LT5uc05yIC0gbnNOcik7Ci0jaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAotICAgIGVsc2UKLSAgICAgICAgbmFtZVB1c2goY3R4dCwgbmFtZSk7Ci0jZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCAqLworICAgIG5hbWVQdXNoKGN0eHQsIG5hbWUpOwogICAgIHJldCA9IGN0eHQtPm5vZGU7CiAKICNpZmRlZiBMSUJYTUxfVkFMSURfRU5BQkxFRApAQCAtMTAwMTEsNyArOTk3MSw3IEBAIHhtbFBhcnNlRWxlbWVudFN0YXJ0KHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgewogCSAgIG5vZGVfaW5mby5ub2RlID0gcmV0OwogCSAgIHhtbFBhcnNlckFkZE5vZGVJbmZvKGN0eHQsICZub2RlX2luZm8pOwogCX0KLQlyZXR1cm4oMSk7CisJcmV0dXJuOwogICAgIH0KICAgICBpZiAoUkFXID09ICc+JykgewogICAgICAgICBORVhUMTsKQEAgLTEwMDM5LDM5ICs5OTk5LDQxIEBAIHhtbFBhcnNlRWxlbWVudFN0YXJ0KHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgewogCSAgIG5vZGVfaW5mby5ub2RlID0gcmV0OwogCSAgIHhtbFBhcnNlckFkZE5vZGVJbmZvKGN0eHQsICZub2RlX2luZm8pOwogCX0KLQlyZXR1cm4oLTEpOworCXJldHVybjsKICAgICB9CiAKLSAgICByZXR1cm4oMCk7Ci19Ci0KLS8qKgotICogeG1sUGFyc2VFbGVtZW50RW5kOgotICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKLSAqCi0gKiBQYXJzZSB0aGUgZW5kIG9mIGFuIFhNTCBlbGVtZW50LgotICovCi1zdGF0aWMgdm9pZAoteG1sUGFyc2VFbGVtZW50RW5kKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgewotICAgIHhtbFBhcnNlck5vZGVJbmZvIG5vZGVfaW5mbzsKLSAgICB4bWxOb2RlUHRyIHJldCA9IGN0eHQtPm5vZGU7CisgICAgLyoKKyAgICAgKiBQYXJzZSB0aGUgY29udGVudCBvZiB0aGUgZWxlbWVudDoKKyAgICAgKi8KKyAgICB4bWxQYXJzZUNvbnRlbnQoY3R4dCk7CisgICAgaWYgKGN0eHQtPmluc3RhdGUgPT0gWE1MX1BBUlNFUl9FT0YpCisJcmV0dXJuOworICAgIGlmICghSVNfQllURV9DSEFSKFJBVykpIHsKKyAgICAgICAgeG1sRmF0YWxFcnJNc2dTdHJJbnRTdHIoY3R4dCwgWE1MX0VSUl9UQUdfTk9UX0ZJTklTSEVELAorCSAiUHJlbWF0dXJlIGVuZCBvZiBkYXRhIGluIHRhZyAlcyBsaW5lICVkXG4iLAorCQkgICAgICAgICAgICAgICAgbmFtZSwgbGluZSwgTlVMTCk7CiAKLSAgICBpZiAoY3R4dC0+bmFtZU5yIDw9IDApCi0gICAgICAgIHJldHVybjsKKwkvKgorCSAqIGVuZCBvZiBwYXJzaW5nIG9mIHRoaXMgbm9kZS4KKwkgKi8KKwlub2RlUG9wKGN0eHQpOworCW5hbWVQb3AoY3R4dCk7CisJc3BhY2VQb3AoY3R4dCk7CisJaWYgKG5zTnIgIT0gY3R4dC0+bnNOcikKKwkgICAgbnNQb3AoY3R4dCwgY3R4dC0+bnNOciAtIG5zTnIpOworCXJldHVybjsKKyAgICB9CiAKICAgICAvKgogICAgICAqIHBhcnNlIHRoZSBlbmQgb2YgdGFnOiAnPC8nIHNob3VsZCBiZSBoZXJlLgogICAgICAqLwogICAgIGlmIChjdHh0LT5zYXgyKSB7Ci0gICAgICAgIGNvbnN0IHhtbENoYXIgKnByZWZpeCA9IGN0eHQtPnB1c2hUYWJbY3R4dC0+bmFtZU5yICogMyAtIDNdOwotICAgICAgICBjb25zdCB4bWxDaGFyICpVUkkgPSBjdHh0LT5wdXNoVGFiW2N0eHQtPm5hbWVOciAqIDMgLSAyXTsKLSAgICAgICAgaW50IG5zTnIgPSAocHRyZGlmZl90KSBjdHh0LT5wdXNoVGFiW2N0eHQtPm5hbWVOciAqIDMgLSAxXTsKLQl4bWxQYXJzZUVuZFRhZzIoY3R4dCwgcHJlZml4LCBVUkksIDAsIG5zTnIsIDApOworCXhtbFBhcnNlRW5kVGFnMihjdHh0LCBwcmVmaXgsIFVSSSwgbGluZSwgY3R4dC0+bnNOciAtIG5zTnIsIHRsZW4pOwogCW5hbWVQb3AoY3R4dCk7CiAgICAgfQogI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKLSAgICBlbHNlCi0JeG1sUGFyc2VFbmRUYWcxKGN0eHQsIDApOworICAgICAgZWxzZQorCXhtbFBhcnNlRW5kVGFnMShjdHh0LCBsaW5lKTsKICNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCiAKICAgICAvKgpAQCAtMTIzODgsNiArMTIzNTAsMTMgQEAgeG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQoeG1sU0FYSGFuZGxlclB0ciBzYXgsIHZvaWQgKnVzZXJfZGF0YSwKIAlyZXR1cm4oTlVMTCk7CiAgICAgfQogICAgIGN0eHQtPmRpY3ROYW1lcyA9IDE7CisgICAgY3R4dC0+cHVzaFRhYiA9ICh2b2lkICoqKSB4bWxNYWxsb2MoY3R4dC0+bmFtZU1heCAqIDMgKiBzaXplb2YoeG1sQ2hhciAqKSk7CisgICAgaWYgKGN0eHQtPnB1c2hUYWIgPT0gTlVMTCkgeworICAgICAgICB4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKGJ1Zik7CisJeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KICAgICBpZiAoc2F4ICE9IE5VTEwpIHsKICNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECiAJaWYgKGN0eHQtPnNheCAhPSAoeG1sU0FYSGFuZGxlclB0cikgJnhtbERlZmF1bHRTQVhIYW5kbGVyKQpAQCAtMTQ4MzUsNiArMTQ4MDQsMTYgQEAgeG1sQ3R4dFJlc2V0UHVzaCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IGNoYXIgKmNodW5rLAogCiAgICAgeG1sQ3R4dFJlc2V0KGN0eHQpOwogCisgICAgaWYgKGN0eHQtPnB1c2hUYWIgPT0gTlVMTCkgeworICAgICAgICBjdHh0LT5wdXNoVGFiID0gKHZvaWQgKiopIHhtbE1hbGxvYyhjdHh0LT5uYW1lTWF4ICogMyAqCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHhtbENoYXIgKikpOworICAgICAgICBpZiAoY3R4dC0+cHVzaFRhYiA9PSBOVUxMKSB7CisJICAgIHhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKyAgICAgICAgICAgIHhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcihidWYpOworICAgICAgICAgICAgcmV0dXJuKDEpOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKGZpbGVuYW1lID09IE5VTEwpIHsKICAgICAgICAgY3R4dC0+ZGlyZWN0b3J5ID0gTlVMTDsKICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvcmVzdWx0L2Vycm9ycy83NTQ5NDcueG1sLmVyciBiL3Jlc3VsdC9lcnJvcnMvNzU0OTQ3LnhtbC5lcnIKaW5kZXggNTFlOWI0ZWQuLmY0NWNiNWEyIDEwMDY0NAotLS0gYS9yZXN1bHQvZXJyb3JzLzc1NDk0Ny54bWwuZXJyCisrKyBiL3Jlc3VsdC9lcnJvcnMvNzU0OTQ3LnhtbC5lcnIKQEAgLTIsNiArMiw2IEBACiBCeXRlczogMHhFRSAweDVEIDB4NUQgMHgzRQogPGQ+PCFbQ0RBVEFbMDAwMDAwMDAwMDAwMO5dXT4KICAgICAgICAgICAgICAgICAgICAgICAgICBeCi0uL3Rlc3QvZXJyb3JzLzc1NDk0Ny54bWw6MTogcGFyc2VyIGVycm9yIDogRW5kVGFnOiAnPC8nIG5vdCBmb3VuZAorLi90ZXN0L2Vycm9ycy83NTQ5NDcueG1sOjE6IHBhcnNlciBlcnJvciA6IFByZW1hdHVyZSBlbmQgb2YgZGF0YSBpbiB0YWcgZCBsaW5lIDEKIDxkPjwhW0NEQVRBWzAwMDAwMDAwMDAwMDDuXV0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KZGlmZiAtLWdpdCBhL3Jlc3VsdC9lcnJvcnMvNzU5Mzk4LnhtbC5lcnIgYi9yZXN1bHQvZXJyb3JzLzc1OTM5OC54bWwuZXJyCmluZGV4IGJjOWU1ZTAzLi5mNjAzNmEzYiAxMDA2NDQKLS0tIGEvcmVzdWx0L2Vycm9ycy83NTkzOTgueG1sLmVycgorKysgYi9yZXN1bHQvZXJyb3JzLzc1OTM5OC54bWwuZXJyCkBAIC0xLDEwICsxLDEwIEBACiAuL3Rlc3QvZXJyb3JzLzc1OTM5OC54bWw6MjEwOiBwYXJzZXIgZXJyb3IgOiBTdGFydFRhZzogaW52YWxpZCBlbGVtZW50IG5hbWUKIG5lZWQgdG8gd29ycnkgYWJvdXQgcGFyc2VycyB3aGk8ISBkb24ndCBleHBhbmQgUEVyZWZzIGZpbmRpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgotLi90ZXN0L2Vycm9ycy83NTkzOTgueG1sOjMwOTogcGFyc2VyIGVycm9yIDogT3BlbmluZyBhbmQgZW5kaW5nIHRhZyBtaXNtYXRjaDog4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSWbSBsaW5lIDIwNSBhbmQgdGVybWRlZgorLi90ZXN0L2Vycm9ycy83NTkzOTgueG1sOjMwOTogcGFyc2VyIGVycm9yIDogT3BlbmluZyBhbmQgZW5kaW5nIHRhZyBtaXNtYXRjaDog4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSWbSBsaW5lIDMwOCBhbmQgdGVybWRlZgogYW5kIHByb3ZpZGUgYWNjZXNzIHRvIHRoZWlyIGNvbnRlbnQgYW5kIHN0cnVjdHVyZS48L3Rlcm1kZWY+IDx0ZXJtZGVmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi0uL3Rlc3QvZXJyb3JzLzc1OTM5OC54bWw6MzE0OiBwYXJzZXIgZXJyb3IgOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiBzcGVjIGxpbmUgMjA1IGFuZCBwCisuL3Rlc3QvZXJyb3JzLzc1OTM5OC54bWw6MzE0OiBwYXJzZXIgZXJyb3IgOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiBzcGVjIGxpbmUgNTAgYW5kIHAKIGRhdGEgYW5kIHRoZSBpbmZvcm1hdGlvbiBpdCBtdXN0IHByb3ZpZGUgdG8gdGhlIGFwcGxpY2F0aW9uLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAuL3Rlc3QvZXJyb3JzLzc1OTM5OC54bWw6MzE2OiBwYXJzZXIgZXJyb3IgOiBFeHRyYSBjb250ZW50IGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50Cg==