ZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvaHRtbGNvbXBsZXRlLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvaHRtbGNvbXBsZXRlLnZpbQppbmRleCBiMmYxYWVlLi45ODRiYThiIDEwMDY0NAotLS0gYS9ydW50aW1lL2F1dG9sb2FkL2h0bWxjb21wbGV0ZS52aW0KKysrIGIvcnVudGltZS9hdXRvbG9hZC9odG1sY29tcGxldGUudmltCkBAIC0xLDcgKzEsNDkgQEAKICIgVmltIGNvbXBsZXRpb24gc2NyaXB0CiAiIExhbmd1YWdlOglIVE1MIGFuZCBYSFRNTAogIiBNYWludGFpbmVyOglNaWtvbGFqIE1hY2hvd3NraSAoIG1pa21hY2ggQVQgd3AgRE9UIHBsICkKLSIgTGFzdCBDaGFuZ2U6CTIwMTEgQXByIDI4CisiIExhc3QgQ2hhbmdlOgkyMDE0IEp1biAyMAorCisiIERpc3Rpbmd1aXNoIGJldHdlZW4gSFRNTCB2ZXJzaW9ucy4KKyIgVG8gdXNlIHdpdGggb3RoZXIgSFRNTCB2ZXJzaW9ucyBhZGQgYW5vdGhlciAiZWxzZWlmIiBjb25kaXRpb24gdG8gbWF0Y2gKKyIgcHJvcGVyIERPQ1RZUEUuCitmdW5jdGlvbiEgaHRtbGNvbXBsZXRlI0RldGVjdE9tbmlGbGF2b3IoKQorICBpZiAmZmlsZXR5cGUgPT0gJ3hodG1sJworICAgIGxldCBiOmh0bWxfb21uaV9mbGF2b3IgPSAneGh0bWwxMHMnCisgIGVsc2UKKyAgICBsZXQgYjpodG1sX29tbmlfZmxhdm9yID0gJ2h0bWw0MDF0JworICBlbmRpZgorICBsZXQgaSA9IDEKKyAgbGV0IGxpbmUgPSAiIgorICB3aGlsZSBpIDwgMTAgJiYgaSA8IGxpbmUoIiQiKQorICAgIGxldCBsaW5lID0gZ2V0bGluZShpKQorICAgIGlmIGxpbmUgPX4gJzwhRE9DVFlQRS4qXDxEVEQgJworICAgICAgYnJlYWsKKyAgICBlbmRpZgorICAgIGxldCBpICs9IDEKKyAgZW5kd2hpbGUKKyAgaWYgbGluZSA9fiAnPCFET0NUWVBFLipcPERURCAnICAiIGRvY3R5cGUgbGluZSBmb3VuZCBhYm92ZQorICAgIGlmIGxpbmUgPX4gJyBIVE1MIDNcLjInCisgICAgICBsZXQgYjpodG1sX29tbmlfZmxhdm9yID0gJ2h0bWwzMicKKyAgICBlbHNlaWYgbGluZSA9fiAnIFhIVE1MIDFcLjEnCisgICAgICBsZXQgYjpodG1sX29tbmlfZmxhdm9yID0gJ3hodG1sMTEnCisgICAgZWxzZSAgICAiIHR3by1zdGVwIGRldGVjdGlvbiB3aXRoIHN0cmljdC9mcmFtZXNldC90cmFuc2l0aW9uYWwKKyAgICAgIGlmIGxpbmUgPX4gJyBYSFRNTCAxXC4wJworCWxldCBiOmh0bWxfb21uaV9mbGF2b3IgPSAneGh0bWwxMCcKKyAgICAgIGVsc2VpZiBsaW5lID1+ICcgSFRNTCA0XC4wMScKKwlsZXQgYjpodG1sX29tbmlfZmxhdm9yID0gJ2h0bWw0MDEnCisgICAgICBlbHNlaWYgbGluZSA9fiAnIEhUTUwgNC4wXD4nCisJbGV0IGI6aHRtbF9vbW5pX2ZsYXZvciA9ICdodG1sNDAnCisgICAgICBlbmRpZgorICAgICAgaWYgbGluZSA9fiAnXDxUcmFuc2l0aW9uYWxcPicKKwlsZXQgYjpodG1sX29tbmlfZmxhdm9yIC49ICd0JworICAgICAgZWxzZWlmIGxpbmUgPX4gJ1w8RnJhbWVzZXRcPicKKwlsZXQgYjpodG1sX29tbmlfZmxhdm9yIC49ICdmJworICAgICAgZWxzZQorCWxldCBiOmh0bWxfb21uaV9mbGF2b3IgLj0gJ3MnCisgICAgICBlbmRpZgorICAgIGVuZGlmCisgIGVuZGlmCitlbmRmdW5jdGlvbgogCiBmdW5jdGlvbiEgaHRtbGNvbXBsZXRlI0NvbXBsZXRlVGFncyhmaW5kc3RhcnQsIGJhc2UpCiAgIGlmIGE6ZmluZHN0YXJ0CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9kaWdyYXBoLnR4dCBiL3J1bnRpbWUvZG9jL2RpZ3JhcGgudHh0CmluZGV4IGNiOWNkNDguLjJiZTczZGEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2RpZ3JhcGgudHh0CisrKyBiL3J1bnRpbWUvZG9jL2RpZ3JhcGgudHh0CkBAIC0xLDQgKzEsNCBAQAotKmRpZ3JhcGgudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxNCBBcHIgMTcKKypkaWdyYXBoLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy40LiAgTGFzdCBjaGFuZ2U6IDIwMTQgSnVuIDE5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xNzAsNiArMTcwLDExIEBACiB1c2VkIGZvciB0aGUgZXVybyBzaWduLCB3aGlsZSBib3RoIG9mIHRoZW0gYXJlIHRoZSBjaGFyYWN0ZXIgMTY0LCAweGE0LiAgRm9yCiBjb21wYXRpYmlsaXR5IHdpdGggenNoIEV1IGNhbiBhbHNvIGJlIHVzZWQgZm9yIHRoZSBldXJvIHNpZ24uCiAKK1JPVUJMRQorCitUaGUgcm91YmxlIHNpZ24gd2FzIGFkZGVkIGluIDIwMTQgYXMgMHgyMGJkLiAgVmltIHN1cHBvcnRzIHRoZSBkaWdyYXBocyA9UiBhbmQKKz1QIGZvciB0aGlzLiAgTm90ZSB0aGF0IFI9IGFuZCBQPSBhcmUgb3RoZXIgY2hhcmFjdGVycy4KKwogCQkJCQkJCSpkaWdyYXBoLXRhYmxlKgogY2hhciAgZGlncmFwaAloZXgJZGVjCW9mZmljaWFsIG5hbWUgfgogXkAJTlUJMHgwMAkgIDAJTlVMTCAoTlVMKQpAQCAtOTY2LDYgKzk3MSw4IEBACiDigqcJUHQJMjBBNwk4MzU5CVBFU0VUQSBTSUdOCiDigqkJVz0JMjBBOQk4MzYxCVdPTiBTSUdOCiDigqwJRXUJMjBBQwk4MzY0CUVVUk8gU0lHTgor4oK9CT1SCTIwQkQJODM4MQlST1VCTEUgU0lHTgor4oK9CT1QCTIwQkQJODM4MQlST1VCTEUgU0lHTgog4oSDCW9DCTIxMDMJODQ1MQlERUdSRUUgQ0VMU0lVUwog4oSFCWNvCTIxMDUJODQ1MwlDQVJFIE9GCiDihIkJb0YJMjEwOQk4NDU3CURFR1JFRSBGQUhSRU5IRUlUCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9ldmFsLnR4dCBiL3J1bnRpbWUvZG9jL2V2YWwudHh0CmluZGV4IDY5NWFjMWYuLmM2MWFjMDcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2V2YWwudHh0CisrKyBiL3J1bnRpbWUvZG9jL2V2YWwudHh0CkBAIC0xLDQgKzEsNCBAQAotKmV2YWwudHh0KglGb3IgVmltIHZlcnNpb24gNy40LiAgTGFzdCBjaGFuZ2U6IDIwMTQgSnVuIDEyCisqZXZhbC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxNCBKdW4gMjUKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMjYwOSw3ICsyNjA5LDcgQEAKIAkJd2l0aCB0d28sIHRocmVlIG9yIGZvdXIgaXRlbToKIAkJCVt7bG51bX0sIHtjb2x9LCB7b2ZmfV0KIAkJCVt7bG51bX0sIHtjb2x9LCB7b2ZmfSwge2N1cnN3YW50fV0KLQkJVGhpcyBpcyBsaWtlIHRoZSByZXR1cm4gdmFsdWUgb2YgfGdldHBvcygpfCBvciB8Z2V0Y3VycG9zfCwKKwkJVGhpcyBpcyBsaWtlIHRoZSByZXR1cm4gdmFsdWUgb2YgfGdldHBvcygpfCBvciB8Z2V0Y3VycG9zKCl8LAogCQlidXQgd2l0aG91dCB0aGUgZmlyc3QgaXRlbS4KIAogCQlEb2VzIG5vdCBjaGFuZ2UgdGhlIGp1bXBsaXN0LgpAQCAtNTYyOSwxMSArNTYyOSwxOSBAQAogCQlJZiB5b3Ugd2FudCBhIGxpc3QgdG8gcmVtYWluIHVubW9kaWZpZWQgbWFrZSBhIGNvcHkgZmlyc3Q6ID4KIAkJCTpsZXQgc29ydGVkbGlzdCA9IHNvcnQoY29weShteWxpc3QpKQogCi08CQlVc2VzIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgZWFjaCBpdGVtIHRvIHNvcnQgb24uCi0JCU51bWJlcnMgc29ydCBhZnRlciBTdHJpbmdzLCB8TGlzdHN8IGFmdGVyIE51bWJlcnMuCi0JCUZvciBzb3J0aW5nIHRleHQgaW4gdGhlIGN1cnJlbnQgYnVmZmVyIHVzZSB8OnNvcnR8LgorPAkJV2hlbiB7ZnVuY30gaXMgb21pdHRlZCwgaXMgZW1wdHkgb3IgemVybywgdGhlbiBzb3J0KCkgdXNlcyB0aGUKKwkJc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGVhY2ggaXRlbSB0byBzb3J0IG9uLiAgTnVtYmVycyBzb3J0CisJCWFmdGVyIFN0cmluZ3MsIHxMaXN0c3wgYWZ0ZXIgTnVtYmVycy4gIEZvciBzb3J0aW5nIHRleHQgaW4gdGhlCisJCWN1cnJlbnQgYnVmZmVyIHVzZSB8OnNvcnR8LgogCi0JCVdoZW4ge2Z1bmN9IGlzIGdpdmVuIGFuZCBpdCBpcyBvbmUgdGhlbiBjYXNlIGlzIGlnbm9yZWQuCisJCVdoZW4ge2Z1bmN9IGlzIGdpdmVuIGFuZCBpdCBpcyBpcyAnMScgb3IgJ2knIHRoZW4gY2FzZSBpcworCQlpZ25vcmVkLgorCQkKKwkJV2hlbiB7ZnVuY30gaXMgZ2l2ZW4gYW5kIGl0IGlzICduJyB0aGVuIGFsbCBpdGVtcyB3aWxsIGJlCisJCXNvcnRlZCBudW1lcmljYWwgKEltcGxlbWVudGF0aW9uIGRldGFpbDogVGhpcyB1c2VzIHRoZQorCQlzdHJ0b2QoKSBmdW5jdGlvbiB0byBwYXJzZSBudW1iZXJzLCBTdHJpbmdzLCBMaXN0cywgRGljdHMgYW5kCisJCUZ1bmNyZWZzIHdpbGwgYmUgY29uc2lkZXJlZCBhcyBiZWluZyAwKS4KKwogCQlXaGVuIHtmdW5jfSBpcyBhIHxGdW5jcmVmfCBvciBhIGZ1bmN0aW9uIG5hbWUsIHRoaXMgZnVuY3Rpb24KIAkJaXMgY2FsbGVkIHRvIGNvbXBhcmUgaXRlbXMuICBUaGUgZnVuY3Rpb24gaXMgaW52b2tlZCB3aXRoIHR3bwogCQlpdGVtcyBhcyBhcmd1bWVudCBhbmQgbXVzdCByZXR1cm4gemVybyBpZiB0aGV5IGFyZSBlcXVhbCwgMSBvcgpAQCAtNjU1NSw3ICs2NTYzLDcgQEAKIAogCiAJCQkJCQkJKmZlYXR1cmUtbGlzdCoKLVRoZXJlIGFyZSB0aHJlZSB0eXBlcyBvZiBmZWF0dXJlczoKK1RoZXJlIGFyZSBmb3VyIHR5cGVzIG9mIGZlYXR1cmVzOgogMS4gIEZlYXR1cmVzIHRoYXQgYXJlIG9ubHkgc3VwcG9ydGVkIHdoZW4gdGhleSBoYXZlIGJlZW4gZW5hYmxlZCB3aGVuIFZpbQogICAgIHdhcyBjb21waWxlZCB8K2ZlYXR1cmUtbGlzdHwuICBFeGFtcGxlOiA+CiAJOmlmIGhhcygiY2luZGVudCIpCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dCBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CmluZGV4IDZhMmFkODkuLjIwMzkxNDAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CisrKyBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gNy40LiAgTGFzdCBjaGFuZ2U6IDIwMTQgTWF5IDI4Cisqb3B0aW9ucy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxNCBKdW4gMjUKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTIwMCw2ICsxMjAwLDM4IEBACiAJYnJlYWsgaWYgJ2xpbmVicmVhaycgaXMgb24uICBPbmx5IHdvcmtzIGZvciBBU0NJSSBhbmQgYWxzbyBmb3IgOC1iaXQKIAljaGFyYWN0ZXJzIHdoZW4gJ2VuY29kaW5nJyBpcyBhbiA4LWJpdCBlbmNvZGluZy4KIAorCQkJCQkJKidicmVha2luZGVudCcqIConYnJpJyoKKydicmVha2luZGVudCcgJ2JyaScJYm9vbGVhbiAoZGVmYXVsdCBvZmYpCisJCQlsb2NhbCB0byB3aW5kb3cKKwkJCXtub3QgaW4gVml9CisJCQl7bm90IGF2YWlsYWJsZSB3aGVuIGNvbXBpbGVkIHdpdGhvdXQgdGhlIHwrbGluZWJyZWFrfAorCQkJZmVhdHVyZX0KKwlFdmVyeSB3cmFwcGVkIGxpbmUgd2lsbCBjb250aW51ZSB2aXN1YWxseSBpbmRlbnRlZCAoc2FtZSBhbW91bnQgb2YKKwlzcGFjZSBhcyB0aGUgYmVnaW5uaW5nIG9mIHRoYXQgbGluZSksIHRodXMgcHJlc2VydmluZyBob3Jpem9udGFsIGJsb2NrcworCW9mIHRleHQuCisKKwkJCQkJCSonYnJlYWtpbmRlbnRvcHQnKiAqJ2JyaW9wdCcqCisnYnJlYWtpbmRlbnRvcHQnICdicmlvcHQnIHN0cmluZyAoZGVmYXVsdCBlbXB0eSkKKwkJCWxvY2FsIHRvIHdpbmRvdworCQkJe25vdCBpbiBWaX0KKwkJCXtub3QgYXZhaWxhYmxlIHdoZW4gY29tcGlsZWQgd2l0aG91dCB0aGUgfCtsaW5lYnJlYWt8CisJCQlmZWF0dXJlfQorCVNldHRpbmdzIGZvciAnYnJlYWtpbmRlbnQnLiBJdCBjYW4gY29uc2lzdCBvZiB0aGUgZm9sbG93aW5nIG9wdGlvbmFsCisJaXRlbXMgYW5kIG11c3QgYmUgc2VwZXJhdGVkIGJ5IGEgY29tbWE6CisJCW1pbjp7bn0JICAgIE1pbmltdW0gdGV4dCB3aWR0aCB0aGF0IHdpbGwgYmUga2VwdCBhZnRlcgorCQkJICAgIGFwcGx5aW5nICdicmVha2luZGVudCcsIGV2ZW4gaWYgdGhlIHJlc3VsdGluZworCQkJICAgIHRleHQgc2hvdWxkIG5vcm1hbGx5IGJlIG5hcnJvd2VyLiBUaGlzIHByZXZlbnRzCisJCQkgICAgdGV4dCBpbmRlbnRlZCBhbG1vc3QgdG8gdGhlIHJpZ2h0IHdpbmRvdyBib3JkZXIKKwkJCSAgICBvY2N1cHlpbmcgbG90IG9mIHZlcnRpY2FsIHNwYWNlIHdoZW4gYnJva2VuLgorCQlzaGlmdDp7bn0gICBBZnRlciBhcHBseWluZyAnYnJlYWtpbmRlbnQnLCB3cmFwcGVkIGxpbmUKKwkJCSAgICBiZWdpbm5pbmcgd2lsbCBiZSBzaGlmdCBieSBnaXZlbiBudW1iZXIgb2YKKwkJCSAgICBjaGFyYWN0ZXJzLiBJdCBwZXJtaXRzIGR5bmFtaWMgRnJlbmNoIHBhcmFncmFwaAorCQkJICAgIGluZGVudGF0aW9uIChuZWdhdGl2ZSkgb3IgZW1waGFzaXppbmcgdGhlIGxpbmUKKwkJCSAgICBjb250aW51YXRpb24gKHBvc2l0aXZlKS4KKwkJc2JyCSAgICBEaXNwbGF5IHRoZSAnc2hvd2JyZWFrJyB2YWx1ZSBiZWZvcmUgYXBwbHlpbmcgdGhlIAorCQkJICAgIGFkZGl0aW9uYWwgaW5kZW50LgorCVRoZSBkZWZhdWx0IHZhbHVlIGZvciBtaW4gaXMgMjAgYW5kIHNoaWZ0IGlzIDAuCisKIAkJCQkJCSonYnJvd3NlZGlyJyogKidic2RpcicqCiAnYnJvd3NlZGlyJyAnYnNkaXInCXN0cmluZwkoZGVmYXVsdDogImxhc3QiKQogCQkJZ2xvYmFsCkBAIC00NTc1LDEyICs0NjA3LDEzIEBACiAJCQl7bm90IGluIFZpfQogCQkJe25vdCBhdmFpbGFibGUgd2hlbiBjb21waWxlZCB3aXRob3V0IHRoZSB8K2xpbmVicmVha3wKIAkJCWZlYXR1cmV9Ci0JSWYgb24gVmltIHdpbGwgd3JhcCBsb25nIGxpbmVzIGF0IGEgY2hhcmFjdGVyIGluICdicmVha2F0JyByYXRoZXIKKwlJZiBvbiwgVmltIHdpbGwgd3JhcCBsb25nIGxpbmVzIGF0IGEgY2hhcmFjdGVyIGluICdicmVha2F0JyByYXRoZXIKIAl0aGFuIGF0IHRoZSBsYXN0IGNoYXJhY3RlciB0aGF0IGZpdHMgb24gdGhlIHNjcmVlbi4gIFVubGlrZQogCSd3cmFwbWFyZ2luJyBhbmQgJ3RleHR3aWR0aCcsIHRoaXMgZG9lcyBub3QgaW5zZXJ0IDxFT0w+cyBpbiB0aGUgZmlsZSwKLQlpdCBvbmx5IGFmZmVjdHMgdGhlIHdheSB0aGUgZmlsZSBpcyBkaXNwbGF5ZWQsIG5vdCBpdHMgY29udGVudHMuICBUaGUKLQl2YWx1ZSBvZiAnc2hvd2JyZWFrJyBpcyB1c2VkIHRvIHB1dCBpbiBmcm9udCBvZiB3cmFwcGVkIGxpbmVzLgotCVRoaXMgb3B0aW9uIGlzIG5vdCB1c2VkIHdoZW4gdGhlICd3cmFwJyBvcHRpb24gaXMgb2ZmIG9yICdsaXN0JyBpcyBvbi4KKwlpdCBvbmx5IGFmZmVjdHMgdGhlIHdheSB0aGUgZmlsZSBpcyBkaXNwbGF5ZWQsIG5vdCBpdHMgY29udGVudHMuCisJSWYgJ2JyZWFraW5kZW50JyBpcyBzZXQsIGxpbmUgaXMgdmlzdWFsbHkgaW5kZW50ZWQuIFRoZW4sIHRoZSB2YWx1ZQorCW9mICdzaG93YnJlYWsnIGlzIHVzZWQgdG8gcHV0IGluIGZyb250IG9mIHdyYXBwZWQgbGluZXMuIFRoaXMgb3B0aW9uCisJaXMgbm90IHVzZWQgd2hlbiB0aGUgJ3dyYXAnIG9wdGlvbiBpcyBvZmYgb3IgJ2xpc3QnIGlzIG9uLgogCU5vdGUgdGhhdCA8VGFiPiBjaGFyYWN0ZXJzIGFmdGVyIGFuIDxFT0w+IGFyZSBtb3N0bHkgbm90IGRpc3BsYXllZAogCXdpdGggdGhlIHJpZ2h0IGFtb3VudCBvZiB3aGl0ZSBzcGFjZS4KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcXVpY2tyZWYudHh0IGIvcnVudGltZS9kb2MvcXVpY2tyZWYudHh0CmluZGV4IDkwZDM1OTcuLjc5ZDg3ZmEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3F1aWNrcmVmLnR4dAorKysgYi9ydW50aW1lL2RvYy9xdWlja3JlZi50eHQKQEAgLTEsNCArMSw0IEBACi0qcXVpY2tyZWYudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuNC4gIExhc3QgY2hhbmdlOiAyMDEzIEp1biAyOQorKnF1aWNrcmVmLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxNCBKdW4gMjUKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTYyNCw2ICs2MjQsOCBAQAogJ2Jpb3NrZXknCSAgJ2Jpb3NrJyAgIE1TLURPUzogdXNlIGJpb3MgY2FsbHMgZm9yIGlucHV0IGNoYXJhY3RlcnMKICdib21iJwkJCSAgICBwcmVwZW5kIGEgQnl0ZSBPcmRlciBNYXJrIHRvIHRoZSBmaWxlCiAnYnJlYWthdCcJICAnYnJrJyAgICAgY2hhcmFjdGVycyB0aGF0IG1heSBjYXVzZSBhIGxpbmUgYnJlYWsKKydicmVha2luZGVudCcJICAnYnJpJyAgICAgd3JhcHBlZCBsaW5lIHJlcGVhdHMgaW5kZW50IAorJ2JyZWFraW5kZW50b3B0JyAgJ2JyaW9wdCcgIHNldHRpbmdzIGZvciAnYnJlYWtpbmRlbnQnCiAnYnJvd3NlZGlyJwkgICdic2RpcicgICB3aGljaCBkaXJlY3RvcnkgdG8gc3RhcnQgYnJvd3NpbmcgaW4KICdidWZoaWRkZW4nCSAgJ2JoJwkgICAgd2hhdCB0byBkbyB3aGVuIGJ1ZmZlciBpcyBubyBsb25nZXIgaW4gd2luZG93CiAnYnVmbGlzdGVkJwkgICdibCcJICAgIHdoZXRoZXIgdGhlIGJ1ZmZlciBzaG93cyB1cCBpbiB0aGUgYnVmZmVyIGxpc3QKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3N0YXJ0aW5nLnR4dCBiL3J1bnRpbWUvZG9jL3N0YXJ0aW5nLnR4dAppbmRleCBhNWRlMmYwLi4xNGIwYmJmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zdGFydGluZy50eHQKKysrIGIvcnVudGltZS9kb2Mvc3RhcnRpbmcudHh0CkBAIC0xLDQgKzEsNCBAQAotKnN0YXJ0aW5nLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxNCBNYXIgMjkKKypzdGFydGluZy50eHQqICBGb3IgVmltIHZlcnNpb24gNy40LiAgTGFzdCBjaGFuZ2U6IDIwMTQgSnVuIDE0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xNjcsNyArMTY3LDEwIEBACiAJCQkJCQkJKi0rLyoKICsve3BhdH0JCVRoZSBjdXJzb3Igd2lsbCBiZSBwb3NpdGlvbmVkIG9uIHRoZSBmaXJzdCBsaW5lIGNvbnRhaW5pbmcKIAkJInBhdCIgaW4gdGhlIGZpcnN0IGZpbGUgYmVpbmcgZWRpdGVkIChzZWUgfHBhdHRlcm58IGZvciB0aGUKLQkJYXZhaWxhYmxlIHNlYXJjaCBwYXR0ZXJucykuCisJCWF2YWlsYWJsZSBzZWFyY2ggcGF0dGVybnMpLiAgVGhlIHNlYXJjaCBzdGFydHMgYXQgdGhlIGN1cnNvcgorCQlwb3NpdGlvbiwgd2hpY2ggY2FuIGJlIHRoZSBmaXJzdCBsaW5lIG9yIHRoZSBjdXJzb3IgcG9zaXRpb24KKwkJbGFzdCB1c2VkIGZyb20gfHZpbWluZm98LiBUbyBmb3JjZSBhIHNlYXJjaCBmcm9tIHRoZSBmaXJzdAorCQlsaW5lIHVzZSAiKzEgKy9wYXQiLgogCiAre2NvbW1hbmR9CQkJCQkJKi0rYyogKi1jKgogLWMge2NvbW1hbmR9CXtjb21tYW5kfSB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIHRoZSBmaXJzdCBmaWxlIGhhcyBiZWVuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90YWdzIGIvcnVudGltZS9kb2MvdGFncwppbmRleCBiZGEzYzZkLi5mMDYzMzUwIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90YWdzCisrKyBiL3J1bnRpbWUvZG9jL3RhZ3MKQEAgLTkxLDYgKzkxLDEwIEBACiAnYmwnCW9wdGlvbnMudHh0CS8qJ2JsJyoKICdib21iJwlvcHRpb25zLnR4dAkvKidib21iJyoKICdicmVha2F0JwlvcHRpb25zLnR4dAkvKidicmVha2F0JyoKKydicmVha2luZGVudCcJb3B0aW9ucy50eHQJLyonYnJlYWtpbmRlbnQnKgorJ2JyZWFraW5kZW50b3B0JwlvcHRpb25zLnR4dAkvKidicmVha2luZGVudG9wdCcqCisnYnJpJwlvcHRpb25zLnR4dAkvKidicmknKgorJ2JyaW9wdCcJb3B0aW9ucy50eHQJLyonYnJpb3B0JyoKICdicmsnCW9wdGlvbnMudHh0CS8qJ2JyaycqCiAnYnJvd3NlZGlyJwlvcHRpb25zLnR4dAkvKidicm93c2VkaXInKgogJ2JzJwlvcHRpb25zLnR4dAkvKidicycqCkBAIC0yNTI0LDggKzI1MjgsMTAgQEAKIDpub2gJcGF0dGVybi50eHQJLyo6bm9oKgogOm5vaGxzZWFyY2gJcGF0dGVybi50eHQJLyo6bm9obHNlYXJjaCoKIDpub3IJbWFwLnR4dAkvKjpub3IqCis6bm9yZQltYXAudHh0CS8qOm5vcmUqCiA6bm9yZWEJbWFwLnR4dAkvKjpub3JlYSoKIDpub3JlYWJicmV2CW1hcC50eHQJLyo6bm9yZWFiYnJldioKKzpub3JlbQltYXAudHh0CS8qOm5vcmVtKgogOm5vcmVtYXAJbWFwLnR4dAkvKjpub3JlbWFwKgogOm5vcmVtYXAhCW1hcC50eHQJLyo6bm9yZW1hcCEqCiA6bm9yZW1lCWd1aS50eHQJLyo6bm9yZW1lKgpAQCAtNjgyNiw2ICs2ODMyLDcgQEAKIG1hdGNoLWhpZ2hsaWdodAlwYXR0ZXJuLnR4dAkvKm1hdGNoLWhpZ2hsaWdodCoKIG1hdGNoLXBhcmVucwl0aXBzLnR4dAkvKm1hdGNoLXBhcmVucyoKIG1hdGNoYWRkKCkJZXZhbC50eHQJLyptYXRjaGFkZCgpKgorbWF0Y2hhZGRwb3MoKQlldmFsLnR4dAkvKm1hdGNoYWRkcG9zKCkqCiBtYXRjaGFyZygpCWV2YWwudHh0CS8qbWF0Y2hhcmcoKSoKIG1hdGNoZGVsZXRlKCkJZXZhbC50eHQJLyptYXRjaGRlbGV0ZSgpKgogbWF0Y2hlbmQoKQlldmFsLnR4dAkvKm1hdGNoZW5kKCkqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90b2RvLnR4dCBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CmluZGV4IGZiMjAzYjMuLmQwZGRmNWIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RvZG8udHh0CisrKyBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CkBAIC0xLDQgKzEsNCBAQAotKnRvZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxNCBKdW4gMTIKKyp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy40LiAgTGFzdCBjaGFuZ2U6IDIwMTQgSnVuIDI1CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTU3LDI3ICs1NywxOCBAQAogCiBQcm9ibGVtIHVzaW5nICI6dHJ5IiBpbnNpZGUgIjpleGVjdXRlIi4gKFp5WCwgMjAxMyBTZXAgMTUpCiAKLVNldHRpbmcgJ3R0eW1vdXNlJyBlbXB0eSBjYXVzZXMgRGVjIG1vdXNlIHRvIGJlIGRldGVjdGVkLiAoRWxpamFoIEdyaWZmaW4sCi0yMDE0IE1heSAxMykKLQogUHl0aG9uOiAiOnB5IHJhd19pbnB1dCgncHJvbXB0JykiIGRvZXNuJ3Qgd29yay4gKE1hbnUgSGFjaykKIAogVmFsdWUgcmV0dXJuZWQgYnkgdmlydGNvbCgpIGNoYW5nZXMgZGVwZW5kaW5nIG9uIGhvdyBsaW5lcyB3cmFwLiAgVGhpcyBpcwogaW5jb25zaXN0YW50IHdpdGggdGhlIGRvY3VtZW50YXRpb24uCiAKLVNlcmJpYW4gdHJhbnNsYXRpb24gb2YgdGhlIHZpbXR1dG9yLiAoSXZhbiBOZWpnZWJhdWVyLCAyMDE0IEp1biAyKQotCi1QYXRjaCB0byBhZGQgbWF0Y2hhZGRwb3MoKSwgbWF0Y2ggdXNpbmcgYSBwb3NpdGlvbiBpbnN0ZWFkIG9mIGEgcGF0dGVybi4KLVRvIGJlIHVzZWQgZm9yIG1hdGNocGFyZW4uIChBbGV4ZXkgUmFka292LCAyMDE0IEp1biAxKQotV2FpdGluZyBmb3IgdGVzdHMuICBTb21lIG9uIEp1biAyLgotCiBNUy1XaW5kb3dzOiBDcmFzaCBvcGVuaW5nIHZlcnkgbG9uZyBmaWxlIG5hbWUgc3RhcnRpbmcgd2l0aCAiXFwiLgogKENocmlzdGlhbiBCcm9jaywgMjAxMiBKdW4gMjkpCiAKIFN5bnRheCBoaWdobGlnaHRpbmcgc2xvdyAoaGFuZ3MpIGluIFNBU1MgZmlsZS4gKE5pZWsgQm9zY2gsIDIwMTMgQXVnIDIxKQogCiBQYXRjaCB0byB0cmFuc2xhdGUgMHhjZSBpbiBLX05VTCAzLiAoWWFzdWhpcm8gTWF0c3Vtb3RvLCAyMDE0IEp1bmUgNikKLURvZXNuJ3Qgd29yayB5ZXQuCitVcGRhdGUgYnkgTm9idWhpcm8gVGFrYXNha2ksIEp1biAxOS4KIAogQWRkaW5nICJ+IiB0byAnY2RwYXRoJyBkb2Vzbid0IHdvcmsgZm9yIGNvbXBsZXRpb24/ICAoRGF2aWRvLCAyMDEzIEF1ZyAxOSkKIApAQCAtODcsOCArNzgsNiBAQAogU3ludGF4IGZpbGUgZm9yIGdudXBsb3QuICBFeGlzdGluZyBvbmUgaXMgdmVyeSBvbGQuIChBbmRyZXcgUmFzbXVzc2VuLCAyMDE0CiBGZWIgMjQpCiAKLUFkZCBkaWdyYXBoIGZvciBSb3VibGU6ID1QLiAgV2hhdCdzIHRoZSBVbmljb2RlPwotCiBJc3N1ZSAxNzQ6IERldGVjdCBNYXNvbiBmaWxlcy4KIAogTm8gZXJyb3IgZm9yIG1pc3NpbmcgZW5kd2hpbGUuIChaeVgsIDIwMTQgTWFyIDIwKQpAQCAtMTA5LDYgKzk4LDEwIEBACiBXaW4zMjogdXNlIDY0IGJpdCBzdGF0KCkgaWYgcG9zc2libGUuIChLZW4gVGFrYXRhLCAyMDE0IE1heSAxMikKIE1vcmUgdGVzdHMgTWF5IDE0LiBVcGRhdGUgTWF5IDI5LgogCitUaGUgZ2FyYmFnZSBjb2xsZWN0b3IgbWF5IHVzZSB0b28gbXVjaCBzdGFjay4gIE1ha2Ugc2V0X3JlZl9pbl9pdGVtKCkKK2l0ZXJhdGl2ZSBpbnN0ZWFkIG9mIHJlY3Vyc2l2ZS4gICBUZXN0IHByb2dyYW0gYnkgTWFyYyBXZWJlciAoMjAxMyBEZWMgMTApCitQYXRjaCBieSBCZW4gRnJpdHosIDIwMTQgSnVuIDIyLgorCiBJZGVhOiBGb3IgYSB3aW5kb3cgaW4gdGhlIG1pZGRsZSAoaGFzIHdpbmRvdyBhYm92ZSBhbmQgYmVsb3cgaXQpLCB1c2UKIHJpZ2h0LW1vdXNlLWRyYWcgb24gdGhlIHN0YXR1cyBsaW5lIHRvIG1vdmUgYSB3aW5kb3cgdXAvZG93biB3aXRob3V0IGNoYW5naW5nCiBpdCdzIGhlaWdodD8gIEl0J3MgbGlrZSBkcmFnZ2luZyB0aGUgc3RhdHVzIGJhciBhYm92ZSBpdCBhdCB0aGUgc2FtZSB0aW1lLgpAQCAtMTIxLDkgKzExNCw2IEBACiBUaGlzIG5laXRoZXI6IChaeVgpCiAgICAgdmltIC11IE5PTkUgMSAyIDMgLWMgJ2J1ZmRvIHdoaWxlIDEgfCBlY2hvIDEnCiAKLVBhdGNoIGZvciBzaWducyBpbiBHVEsuIChDaHJpc3RpYW4gQnJhYmFuZHQsIDIwMTQgSnVuIDEwKQotQXNrZWQgYWJvdXQgaXQuCi0KICd2aWV3ZGlyJyBkZWZhdWx0IG9uIE1TLVdpbmRvd3MgaXMgbm90IGEgZ29vZCBjaG9pY2UsIGl0J3MgYSBzeXN0ZW0gZGlyZWN0b3J5LgogQ2hhbmdlICd2aWV3ZGlyJyB0byAiJEhPTUUvdmltZmlsZXMvdmlldyIgYW5kIHVzZSAndmlld2RpcmFsdCcgdG8gYWxzbyByZWFkCiBmcm9tPwpAQCAtMTMzLDYgKzEyMyw3IEBACiAKIFdoZW4gJ2NsaXBib2FyZCcgaXMgInVubmFtZWQiLCA6Zy9wYXQvZCBpcyB2ZXJ5IHNsb3cuICBPbmx5IHNldCB0aGUgY2xpcGJvYXJkCiBhZnRlciB0aGUgbGFzdCBkZWxldGU/IChQcmFmdWwsIDIwMTQgTWF5IDI4KQorUGF0Y2ggYnkgQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDE0IEp1biAxOC4KIAogSW5jbHVkZSBhIHBsdWdpbiBtYW5hZ2VyIHdpdGggVmltPyBOZW9idW5kbGUgc2VlbXMgdG8gYmUgdGhlIGJlc3QgY3VycmVudGx5LgogTG9uZyBtZXNzYWdlIGFib3V0IHRoaXMgZnJvbSBaeVgsIDIwMTQgTWFyIDIzLiAgQW5kIGZvbGxvd2luZyByZXBsaWVzLgpAQCAtMTgwLDYgKzE3MSwxNiBAQAogIjpOZXh0IDEgc29tZS1hcmciIGRvZXMgbm90IGNvbXBsYWluIGFib3V0IHRyYWlsaW5nIGFyZ3VtZW50LiAgQWxzbyBmb3IKIHZhcmlvdXMgb3RoZXIgY29tbWFuZHMuICAoWnlYLCAyMDE0IE1hciAzMCkKIAorUGF0Y2ggdG8gYWRkIHNvcnR1bmlxKCkuIChDYWRlIEZvcmVzdGVyLCAyMDE0IE1hciAxOSkKK09yIGFkZCB1bmlxKCkgaW5zdGVhZD8gIFBhdGNoIGJ5IGxjZDQ3LCBidXQgaXQgaGFzIHByb2JsZW1zLgorCitQYXRjaCB0byBzdXBwb3J0IHNvcnRpbmcgb24gZmxvYXRpbmcgcG9pbnQgbnVtYmVyLiAgKEFsZXggSmFrdXNoZXYsIDIwMTAgT2N0CiszMCkKKworUGF0Y2ggdG8gc3VwcG9ydCBleHByZXNzaW9uIGFyZ3VtZW50IHRvIHNvcnQoKSBpbnN0ZWFkIG9mIGEgZnVuY3Rpb24gbmFtZS4KK1lhc3VoaXJvIE1hdHN1bW90bywgMjAxMyBNYXkgMzEuCitPciBzaG91bGQgd2UgYWRkIGEgbW9yZSBnZW5lcmFsIG1lY2hhbmlzbSwgbGlrZSBsYW1iZGEgZnVuY3Rpb25zPworCiBWTVM6IFNlbGVjdCgpIGRvZXNuJ3Qgd29yayBwcm9wZXJseSwgdHlwaW5nIEVTQyBtYXkgaGFuZyBWaW0uICBVc2Ugc3lzJHFpb3cKIGluc3RlYWQuIChTYW11ZWwgRmVyZW5jaWssIDIwMTMgU2VwIDI4KQogCkBAIC0xOTUsOSArMTk2LDYgQEAKIAogUGF0Y2ggdG8gZGVmaW5lIG1hY3JvcyBmb3IgaGFyZGNvZGVkIHZhbHVlcy4gKEVsaWFzIERpZW0sIDIwMTMgRGVjIDE0KQogCi1QYXRjaCB0byBhZGQgc29ydHVuaXEoKS4gKENhZGUgRm9yZXN0ZXIsIDIwMTQgTWFyIDE5KQotT3IgYWRkIHVuaXEoKSBpbnN0ZWFkPyAgUGF0Y2ggYnkgbGNkNDcsIGJ1dCBpdCBoYXMgcHJvYmxlbXMuCi0KIFBlcmw6IHN1cHBvcnQgZm9yIEFjdGl2ZXN0YXRlIHBlcmwgNS4xODogSXNzdWUgMTcwLgogCiBTZXZlcmFsIHN5bnRheCBmaWxlIG1hdGNoICJeXHMqIiB3aGljaCBtYXkgZ2V0IHVuZGVybGluZWQgaWYgdGhhdCdzIGluIHRoZQpAQCAtMzAwLDE5ICsyOTgsMTIgQEAKIFBhdGNoIGJ5IENocmlzdGlhbiBCcmFiYW5kdCwgMjAxMyBNYXIgMjMuCiBOb3QgMTAwJSBzdXJlIHRoaXMgaXMgdGhlIHJpZ2h0IHNvbHV0aW9uLgogCi1QYXRjaCB0byBzdXBwb3J0IGV4cHJlc3Npb24gYXJndW1lbnQgdG8gc29ydCgpIGluc3RlYWQgb2YgYSBmdW5jdGlvbiBuYW1lLgotWWFzdWhpcm8gTWF0c3Vtb3RvLCAyMDEzIE1heSAzMS4KLU9yIHNob3VsZCB3ZSBhZGQgYSBtb3JlIGdlbmVyYWwgbWVjaGFuaXNtLCBsaWtlIGxhbWJkYSBmdW5jdGlvbnM/Ci0KIFByb2JsZW0gY2F1c2VkIGJ5IHBhdGNoIDcuMy42Mzg6IHdpbmRvdy0+b3BlbiBkb2VzIG5vdCB1cGRhdGUgd2luZG93CiBjb3JyZWN0bHkuIElzc3VlIDkxLgogCiBQYXRjaCB0byBhZGQge2xoc30gdG8gOm1hcGNsZWFyOiBjbGVhciBhbGwgbWFwcyBzdGFydGluZyB3aXRoIHtsaHN9LgogKENocmlzdGlhbiBCcmFiYW5kdCwgMjAxMyBEZWMgOSkKIAotVGhlIGdhcmJhZ2UgY29sbGVjdG9yIG1heSB1c2UgdG9vIG11Y2ggc3RhY2suICBNYWtlIHNldF9yZWZfaW5faXRlbSgpCi1pdGVyYXRpdmUgaW5zdGVhZCBvZiByZWN1cnNpdmUuICAgVGVzdCBwcm9ncmFtIGJ5IE1hcmMgV2ViZXIgKDIwMTMgRGVjIDEwKQotCiBFeGNlcHRpb24gY2F1c2VkIGJ5IGFyZ3VtZW50IG9mIHJldHVybiBpcyBub3QgY2F1Z2h0IGJ5IHRyeS9jYXRjaC4KIChEYXZpZCBCYXJuZXR0LCAyMDEzIE5vdiAxOSkKIApAQCAtMzIzLDE3ICszMTQsNiBAQAogUGF0Y2ggdG8gZml4IHRoYXQgJ2NlZGl0JyBpcyByZWNvZ25pemVkIGFmdGVyIDpub3JtYWwuIChDaHJpc3RpYW4gQnJhYmFuZHQsCiAyMDEzIE1hciAxOSwgbGF0ZXIgbWVzc2FnZSkKIAotLSAgIFBhdGNoIGZvciAnYnJlYWtpbmRlbnQnIG9wdGlvbjogcmVwZWF0IGluZGVudCBmb3Igd3JhcHBlZCBsaW5lLiAoVmFjbGF2Ci0gICAgU21pbGF1ZXIsIDIwMDQgU2VwIDEzLCBmaXggT2N0IDMxLCB1cGRhdGUgMjAwNyBNYXkgMzApCi0gICAgVmVyc2lvbiBmb3IgbGF0ZXN0IE1hY1ZpbTogVG9iaWEgQ29uZm9ydG8sIDIwMDkgTm92IDIzCi0gICAgTW9yZSByZWNlbnQgdmVyc2lvbjogaHR0cHM6Ly9yZXRyYWNpbGUubmV0L3dpa2kvVmltQnJlYWtJbmRlbnQKLSAgICBQb3N0ZWQgdG8gdmltLWRldiBieSBUYXlsb3IgSGVkYmVyZywgMjAxMSBOb3YgMjUKLSAgICBVcGRhdGUgYnkgVGF5bG9yIEhlZGJlcmcsIDIwMTMgTWF5IDMwLgotICAgIFVwZGF0ZWQgZm9yIFZpbSA3LjQgYnkgS2VuIFRha2F0YSwgMjAxMyBPY3QgNS4KLSAgICBVcGRhdGUgYnkgQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDE0IE1heSA5LiAgUmVtYXJrcyBieSBLZW4gVGFrYXRhLgotICAgIFVwZGF0ZSBieSBDaHJpc3RpYW4gMjAxNCBNYXkgMTIsIGdpdGh1YiBsaW5rIG9uIE1heSAxNQotICAgIDIwMTQgTWF5IDI4OiByZW1hcmtzIGZyb20gQnJhbQotCiBQYXRjaCB0byB2aWV3IGNvdmVyYWdlIG9mIHRoZSB0ZXN0cy4gKE5henJpIFJhbWxpeSwgMjAxMyBGZWIgMTUpCiAKIFBhdGNoIHRvIGludmVydCBjaGFyYWN0ZXJzIGRpZmZlcmVudGx5IGluIEdUSy4gKFl1a2loaXJvIE5ha2FkYWlyYSwgMjAxMyBNYXkKQEAgLTY3Niw5ICs2NTYsNiBAQAogCiAiMGdAJCIgcHV0cyAnXSBvbiBsYXN0IGJ5dGUgb2YgbXVsdGktYnl0ZS4gKFp5WCwgMjAxMSBKYW4gMjIpCiAKLVBhdGNoIHRvIHN1cHBvcnQgc29ydGluZyBvbiBmbG9hdGluZyBwb2ludCBudW1iZXIuICAoQWxleCBKYWt1c2hldiwgMjAxMCBPY3QKLTMwKQotCiBQYXRjaCB0byBhZGRkIFRleHREZWxldGVQb3N0IGFuZCBUZXh0WWFua1Bvc3QgZXZlbnRzLiAoUGhpbGlwcGUgVmF1Y2hlciwgMjAxMQogTWF5IDI0KSAgVXBkYXRlIE1heSAyNi4KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9odG1sLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vaHRtbC52aW0KaW5kZXggNDE4ZGEwNi4uNzU3OTA4MCAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9odG1sLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2h0bWwudmltCkBAIC0yMCw0OSArMjAsOSBAQAogICAgIHNldGxvY2FsIGZvcm1hdG9wdGlvbnMtPXQgZm9ybWF0b3B0aW9ucys9Y3JvcWwKIGVuZGlmCiAKLQogaWYgZXhpc3RzKCcmb21uaWZ1bmMnKQotICAgICIgRGlzdGluZ3Vpc2ggYmV0d2VlbiBIVE1MIHZlcnNpb25zCi0gICAgIiBUbyB1c2Ugd2l0aCBvdGhlciBIVE1MIHZlcnNpb25zIGFkZCBhbm90aGVyCi0gICAgIiBlbHNlaWYgY29uZGl0aW9uIHRvIG1hdGNoIHByb3BlciBET0NUWVBFCi0gICAgc2V0bG9jYWwgb21uaWZ1bmM9aHRtbGNvbXBsZXRlI0NvbXBsZXRlVGFncwotCi0gICAgaWYgJmZpbGV0eXBlID09ICd4aHRtbCcKLSAgICAgICAgICAgIGxldCBiOmh0bWxfb21uaV9mbGF2b3IgPSAneGh0bWwxMHMnCi0gICAgZWxzZQotICAgICAgICAgICAgbGV0IGI6aHRtbF9vbW5pX2ZsYXZvciA9ICdodG1sNDAxdCcKLSAgICBlbmRpZgotICAgIGxldCBpID0gMQotICAgIGxldCBsaW5lID0gIiIKLSAgICB3aGlsZSBpIDwgMTAgJiYgaSA8IGxpbmUoIiQiKQotICAgICAgICBsZXQgbGluZSA9IGdldGxpbmUoaSkKLSAgICAgICAgaWYgbGluZSA9fiAnPCFET0NUWVBFLipcPERURCAnCi0gICAgICAgICAgICBicmVhawotICAgICAgICBlbmRpZgotICAgICAgICBsZXQgaSArPSAxCi0gICAgZW5kd2hpbGUKLSAgICBpZiBsaW5lID1+ICc8IURPQ1RZUEUuKlw8RFREICcgICIgZG9jdHlwZSBsaW5lIGZvdW5kIGFib3ZlCi0gICAgICAgIGlmIGxpbmUgPX4gJyBIVE1MIDNcLjInCi0gICAgICAgICAgICBsZXQgYjpodG1sX29tbmlfZmxhdm9yID0gJ2h0bWwzMicKLSAgICAgICAgZWxzZWlmIGxpbmUgPX4gJyBYSFRNTCAxXC4xJwotICAgICAgICAgICAgbGV0IGI6aHRtbF9vbW5pX2ZsYXZvciA9ICd4aHRtbDExJwotICAgICAgICBlbHNlICAgICIgdHdvLXN0ZXAgZGV0ZWN0aW9uIHdpdGggc3RyaWN0L2ZyYW1lc2V0L3RyYW5zaXRpb25hbAotICAgICAgICAgICAgaWYgbGluZSA9fiAnIFhIVE1MIDFcLjAnCi0gICAgICAgICAgICAgICAgbGV0IGI6aHRtbF9vbW5pX2ZsYXZvciA9ICd4aHRtbDEwJwotICAgICAgICAgICAgZWxzZWlmIGxpbmUgPX4gJyBIVE1MIDRcLjAxJwotICAgICAgICAgICAgICAgIGxldCBiOmh0bWxfb21uaV9mbGF2b3IgPSAnaHRtbDQwMScKLSAgICAgICAgICAgIGVsc2VpZiBsaW5lID1+ICcgSFRNTCA0LjBcPicKLSAgICAgICAgICAgICAgICBsZXQgYjpodG1sX29tbmlfZmxhdm9yID0gJ2h0bWw0MCcKLSAgICAgICAgICAgIGVuZGlmCi0gICAgICAgICAgICBpZiBsaW5lID1+ICdcPFRyYW5zaXRpb25hbFw+JwotICAgICAgICAgICAgICAgIGxldCBiOmh0bWxfb21uaV9mbGF2b3IgLj0gJ3QnCi0gICAgICAgICAgICBlbHNlaWYgbGluZSA9fiAnXDxGcmFtZXNldFw+JwotICAgICAgICAgICAgICAgIGxldCBiOmh0bWxfb21uaV9mbGF2b3IgLj0gJ2YnCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbGV0IGI6aHRtbF9vbW5pX2ZsYXZvciAuPSAncycKLSAgICAgICAgICAgIGVuZGlmCi0gICAgICAgIGVuZGlmCi0gICAgZW5kaWYKKyAgc2V0bG9jYWwgb21uaWZ1bmM9aHRtbGNvbXBsZXRlI0NvbXBsZXRlVGFncworICBjYWxsIGh0bWxjb21wbGV0ZSNEZXRlY3RPbW5pRmxhdm9yKCkKIGVuZGlmCiAKICIgSFRNTDogIHRoYW5rcyB0byBKb2hhbm5lcyBaZWxsbmVyIGFuZCBCZW5qaSBGaXNoZXIuCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9odG1sLnZpbSBiL3J1bnRpbWUvaW5kZW50L2h0bWwudmltCmluZGV4IDYwMWFhZDguLmQxZjQzOTkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L2h0bWwudmltCisrKyBiL3J1bnRpbWUvaW5kZW50L2h0bWwudmltCkBAIC0yLDcgKzIsNyBAQAogIiBHZW5lcmFsOiAie3t7CiAiIEZpbGU6CQlodG1sLnZpbSAoVmltc2NyaXB0ICMyMDc1KQogIiBBdXRob3I6CUFuZHkgV29rdWxhIDxhbndva3VAeWFob28uZGU+Ci0iIExhc3QgQ2hhbmdlOgkyMDEzIEp1biAxMgorIiBMYXN0IENoYW5nZToJMjAxNCBKdW4gMTkKICIgUmV2IERheXM6ICAgICAxMwogIiBWZXJzaW9uOgkwLjkKICIgVmltIFZlcnNpb246CVZpbTcKQEAgLTMwLDYgKzMwLDkgQEAKIHNldGxvY2FsIGluZGVudGV4cHI9SHRtbEluZGVudCgpCiBzZXRsb2NhbCBpbmRlbnRrZXlzPW8sTyw8UmV0dXJuPiw8Pj4seyx9LCFeRgogCisiIE5lZWRlZCBmb3IgJSB0byB3b3JrIHdoZW4gZmluZGluZyBzdGFydCBvZiBhIHRhZy4KK3NldGxvY2FsIG1hdGNocGFpcnMrPTw6PgorCiBsZXQgYjppbmRlbnQgPSB7ImxudW0iOiAtMX0KIGxldCBiOnVuZG9faW5kZW50ID0gInNldCBpbmRlPCBpbmRrPHwgdW5sZXQgYjppbmRlbnQiCiAKQEAgLTcyLDcgKzc1LDcgQEAKIGVuZGZ1bmMgIn19fQogCiAiIEluaXQgU2NyaXB0IFZhcnMgICJ7e3sKLWxldCBzOnVzZXN0YXRlID0gMQorbGV0IHM6bGFzdHRpY2sgPSAwCiBsZXQgczpjc3MxaW5kZW50ID0gMAogbGV0IHM6anMxaW5kZW50ID0gMAogIiBub3QgdG8gYmUgY2hhbmdlZDoKQEAgLTE1MCw3ICsxNTMsNyBAQAogCiAgICAgaWYgYTowPT0wCiAJbGV0IHM6YmxvY2sgPSBzOm5ld3N0YXRlLmJsb2NrCi0JbGV0IHRtcGxpbmUgPSBzdWJzdGl0dXRlKHM6Y3VybGluZSwgJzxcenNcL1w9XHdcK1w+XHw8IS0tXHwtLT4nLCAnXD1zOkNoZWNrVGFnKHN1Ym1hdGNoKDApKScsICdnJykKKwlsZXQgdG1wbGluZSA9IHN1YnN0aXR1dGUoczpjdXJsaW5lLCAnPFx6cy9cPVx3XCtcPlx8PCEtLVx8LS0+JywgJ1w9czpDaGVja1RhZyhzdWJtYXRjaCgwKSknLCAnZycpCiAJaWYgczpibG9jayA9PSAzCiAJICAgIGxldCBzOm5ld3N0YXRlLnNjcmlwdHR5cGUgPSBzOkdldFNjcmlwdFR5cGUobWF0Y2hzdHIodG1wbGluZSwgJ1xDLio8U0NSSVBUXD5cenNbXj5dKicpKQogCWVuZGlmCkBAIC0xNTgsNyArMTYxLDcgQEAKICAgICBlbHNlCiAJbGV0IHM6YmxvY2sgPSAwCQkiIGFzc3VtZSBzdGFydGluZyBvdXRzaWRlIG9mIGEgYmxvY2sKIAlsZXQgczpjb3VudG9ubHkgPSAxCSIgZG9uJ3QgY2hhbmdlIHN0YXRlCi0JbGV0IHRtcGxpbmUgPSBzdWJzdGl0dXRlKHM6YWx0bGluZSwgJzxcenNcL1w9XHdcK1w+XHw8IS0tXHwtLT4nLCAnXD1zOkNoZWNrVGFnKHN1Ym1hdGNoKDApKScsICdnJykKKwlsZXQgdG1wbGluZSA9IHN1YnN0aXR1dGUoczphbHRsaW5lLCAnPFx6cy9cPVx3XCtcPlx8PCEtLVx8LS0+JywgJ1w9czpDaGVja1RhZyhzdWJtYXRjaCgwKSknLCAnZycpCiAJbGV0IHM6Y291bnRvbmx5ID0gMAogICAgIGVuZGlmCiBlbmRmdW5jICJ9fX0KQEAgLTMyMSw2ICszMjQsNyBAQAogCiAgICAgIiBlbHNlIHdpdGhpbiB1c3VhbCBodG1sCiAgICAgbGV0IHM6YWx0bGluZSA9IHRvbG93ZXIoZ2V0bGluZShzdGF0ZS5sbnVtKSkKKwogICAgICIgY2hlY2sgYTpsbnVtLTEgZm9yIGNsb3NpbmcgY29tbWVudCAod2UgbmVlZCBpbmRlbnQgZnJvbSB0aGUgb3BlbmluZyBsaW5lKQogICAgIGxldCBjb21jb2wgPSBzdHJpZHgoczphbHRsaW5lLCAnLS0+JykKICAgICBpZiBjb21jb2wgPj0gMApAQCAtMzM3LDExICszNDEsMjggQEAKIAkiIFRPRE8gY2hlY2sgdGFncyB0aGF0IGZvbGxvdyAiLS0+IgogICAgIGVuZGlmCiAKKyAgICAiIENoZWNrIGlmIHRoZSBwcmV2aW91cyBsaW5lIHN0YXJ0cyB3aXRoIGVuZCB0YWcuCisgICAgbGV0IHN3ZW5kdGFnID0gbWF0Y2goczphbHRsaW5lLCAnXlxzKjwvJykgPj0gMAorCisgICAgIiBJZiBwcmV2aW91cyBsaW5lIGVuZGVkIGluIGEgY2xvc2luZyB0YWcsIGxpbmUgdXAgd2l0aCB0aGUgb3BlbmluZyB0YWcuCisgICAgIiBBdm9pZHMgYWxpZ25pbmcgd2l0aCBjb250aW51YXRpb24gbGluZXMuCisgICAgIiBUT0RPOiB0aGlzIGFzc3VtZXMgdGhlIHN0YXJ0IHRhZyBpcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lLgorICAgIGlmICFzd2VuZHRhZyAmJiBzOmFsdGxpbmUgPX4gJzwvXHdcK1xzKj5ccyokJworCWNhbGwgY3Vyc29yKHN0YXRlLmxudW0sIDk5OTk5KQorICAgICAgICBub3JtYWwgRjxoCisgICAgICAgICIgVE9ETzogZG9lc24ndCB3b3JrIGZvciBuZXN0ZWQgPGJyPiBhbmQgdGhlIGxpa2UKKyAgICAgICAgbGV0IHNsbnVtID0gc2VhcmNocGFpcignPFx3XCsnLCAnJywgJzwvXHcnLCAnYlcnKQorICAgICAgICBpZiBzbG51bSA+IDAKKyAgICAgICAgICBsZXQgc3RhdGUuYmFzZWluZGVudCA9IGluZGVudChzbG51bSkKKyAgICAgICAgICByZXR1cm4gc3RhdGUKKyAgICAgICAgZW5kaWYKKyAgICBlbmRpZgorCiAgICAgIiBlbHNlIG5vIGNvbW1lbnRzCisgICAgbGV0IHN0YXRlLmxudW0gPSBzOkZpbmRUYWdTdGFydChzdGF0ZS5sbnVtKQorICAgIGxldCBzOmFsdGxpbmUgPSB0b2xvd2VyKGdldGxpbmUoc3RhdGUubG51bSkpCiAgICAgY2FsbCBzOkNvdW50SVRhZ3MoMSkKICAgICBsZXQgc3RhdGUuYmFzZWluZGVudCA9IGluZGVudChzdGF0ZS5sbnVtKSArIHM6bmV4dHJlbCAqIHM6U2hpZnRXaWR0aCgpCi0gICAgIiBsaW5lIHN0YXJ0cyB3aXRoIGVuZCB0YWcKLSAgICBsZXQgc3dlbmR0YWcgPSBtYXRjaChzOmFsdGxpbmUsICdeXHMqPC8nKSA+PSAwCiAgICAgaWYgIXN3ZW5kdGFnCiAJbGV0IHN0YXRlLmJhc2VpbmRlbnQgKz0gczpjdXJpbmQgKiBzOlNoaWZ0V2lkdGgoKQogICAgIGVuZGlmCkBAIC0zODAsNiArNDAxLDcgQEAKICAgICBlbmRpZgogICAgIGxldCBtaW5saW5lID0gYjppbmRlbnQuYmxvY2tsbnIKICAgICBsZXQgcG51bSA9IHM6Y3NzX3ByZXZub25jb21tZW50KHY6bG51bSAtIDEsIG1pbmxpbmUpCisgICAgbGV0IHBudW0gPSBzOkZpbmRUYWdTdGFydChwbnVtKQogICAgIGlmIHBudW0gPD0gbWlubGluZQogCSIgPCBpcyB0byBjYXRjaCBlcnJvcnMKIAkiIGluZGVudCBmb3IgZmlyc3QgY29udGVudCBsaW5lIGFmdGVyIGNvbW1lbnRzCkBAIC00MzEsNiArNDUzLDE5IEBACiAgICAgcmV0dXJuIC0xCiBlbmRmdW5jICJ9fX0KIAorIiBXaGVuIHRoZSAibG51bSIgbGluZSBlbmRzIGluICI+IiBmaW5kIHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlCisiIG1hdGNoaW5nICI8Ii4gIEF2b2lkcyB1c2luZyB0aGUgaW5kZW50IG9mIGEgY29udGludWF0aW9uIGxpbmUuCisiIE1vdmVzIHRoZSBjdXJzb3IuCisiIFJldHVybiB0aGUgbWF0Y2hpbmcgbGluZSBudW1iZXIgb3IgImxudW0iLgorZnVuYyEgczpGaW5kVGFnU3RhcnQobG51bSkgInt7eworICBpZiBnZXRsaW5lKGE6bG51bSkgPX4gJz5ccyokJworICAgIGNhbGwgY3Vyc29yKGE6bG51bSwgOTk5OTkpCisgICAgbm9ybWFsISAlCisgICAgcmV0dXJuIGxpbmUoJy4nKQorICBlbmRpZgorICByZXR1cm4gYTpsbnVtCitlbmRmdW5jICJ9fX0KKwogZnVuYyEgSHRtbEluZGVudCgpICJ7e3sKICAgICBsZXQgczpjdXJsaW5lID0gdG9sb3dlcihnZXRsaW5lKHY6bG51bSkpCiAgICAgbGV0IGluZGVudHVuaXQgPSBzOlNoaWZ0V2lkdGgoKQpAQCAtNDQxLDcgKzQ3Niw3IEBACiAgICAgIiBkb2VzIHRoZSBsaW5lIHN0YXJ0IHdpdGggYSBjbG9zaW5nIHRhZz8KICAgICBsZXQgc3dlbmR0YWcgPSBtYXRjaChzOmN1cmxpbmUsICdeXHMqPC8nKSA+PSAwCiAKLSAgICBpZiBwcmV2bm9uYmxhbmsodjpsbnVtLTEpID09IGI6aW5kZW50LmxudW0gJiYgczp1c2VzdGF0ZQorICAgIGlmIHByZXZub25ibGFuayh2OmxudW0tMSkgPT0gYjppbmRlbnQubG51bSAmJiBzOmxhc3R0aWNrID09IGI6Y2hhbmdlZHRpY2sgLSAxCiAJIiB1c2Ugc3RhdGUgKGNvbnRpbnVlIGZyb20gcHJldmlvdXMgbGluZSkKICAgICBlbHNlCiAJIiBzdGFydCBvdmVyIChrbm93IG5vdGhpbmcpCkBAIC00NjUsMTQgKzUwMCwxMCBAQAogCQlsZXQgaW5kZW50ID0gczpBbGllbntiOmluZGVudC5ibG9ja30oKQogCQlsZXQgczpuZXdzdGF0ZS5iYXNlaW5kZW50ID0gYjppbmRlbnQuYmxvY2t0YWdpbmQgKyBzOm5leHRyZWwgKiBpbmRlbnR1bml0CiAJICAgIGVuZGlmCi0JICAgIGNhbGwgZXh0ZW5kKGI6aW5kZW50LCBzOm5ld3N0YXRlLCAiZm9yY2UiKQotCSAgICByZXR1cm4gaW5kZW50CiAJZWxzZQogCSAgICAiIGJsb2NrIGNvbnRpbnVlcwogCSAgICAiIGluZGVudCB0aGlzIGxpbmUgd2l0aCBhbGllbiBtZXRob2QKIAkgICAgbGV0IGluZGVudCA9IHM6QWxpZW57YjppbmRlbnQuYmxvY2t9KCkKLQkgICAgY2FsbCBleHRlbmQoYjppbmRlbnQsIHM6bmV3c3RhdGUsICJmb3JjZSIpCi0JICAgIHJldHVybiBpbmRlbnQKIAllbmRpZgogICAgIGVsc2UKIAkiIG5vdCB3aXRoaW4gYSBibG9jayAtIHdpdGhpbiB1c3VhbCBodG1sCkBAIC00ODYsOSArNTE3LDEwIEBACiAJICAgIGxldCBpbmRlbnQgPSBiOmluZGVudC5iYXNlaW5kZW50CiAJICAgIGxldCBzOm5ld3N0YXRlLmJhc2VpbmRlbnQgPSBpbmRlbnQgKyAoczpjdXJpbmQgKyBzOm5leHRyZWwpICogaW5kZW50dW5pdAogCWVuZGlmCi0JY2FsbCBleHRlbmQoYjppbmRlbnQsIHM6bmV3c3RhdGUsICJmb3JjZSIpCi0JcmV0dXJuIGluZGVudAogICAgIGVuZGlmCisgICAgbGV0IHM6bGFzdHRpY2sgPSBiOmNoYW5nZWR0aWNrCisgICAgY2FsbCBleHRlbmQoYjppbmRlbnQsIHM6bmV3c3RhdGUsICJmb3JjZSIpCisgICAgcmV0dXJuIGluZGVudAogCiBlbmRmdW5jICJ9fX0KIApkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvci5zci5jcDEyNTAgYi9ydW50aW1lL3R1dG9yL3R1dG9yLnNyLmNwMTI1MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTlhYWNjCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS90dXRvci90dXRvci5zci5jcDEyNTAKQEAgLTAsMCArMSw5NzEgQEAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKz0gICAgRCBvIGIgciBvIGQgbyCaIGwgaSAgIHUgICBWSU0gICBwIHIgaSByIHUg6CBuIGkgayAgLSAgICBWZXJ6aWphIDEuNyAgICAgID0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgICBWaW0gamUgbW/mYW4gZWRpdG9yIHNhIG1ub2dvIGtvbWFuZGksIHN1dmmaZSBkYSBiaXNtbyBpaCBvdmRlIHN2ZQorICAgICBvcGlzYWxpLiAgUHJpcnXobmlrIGplIHphbWmabGplbiBkYSBvcGmaZSBkb3ZvbGpubyBrb21hbmRpIGRhIGJpc3RlCisgICAgIG1vZ2xpIGxhZ29kbm8gZGEga29yaXN0aXRlIFZpbSBrYW8gZWRpdG9yIG9wmnRlIG5hbWVuZS4KKworICAgICBQcmlibGmebm8gdnJlbWUgcG90cmVibm8gemEgdXNwZZphbiB6YXZymmV0YWsgcHJpcnXobmlrYSBqZSBpem1l8HUKKyAgICAgMjUgaSAzMCBtaW51dGEsIHUgemF2aXNub3N0aSBvZCB2cmVtZW5hIHBvdHJvmmVub2cgbmEgdmWeYnUuCisKKyAgICAgVVBPWk9SRU5KRToKKyAgICAgS29tYW5kZSB1IGxla2NpamFtYSDmZSBtZW5qYXRpIHRla3N0LiAgSXNrb3BpcmFqdGUgb3ZhaiBmYWpsIGkKKyAgICAgdmWeYmFqdGUgbmEga29waWppIChha28gc3RlIHBva3JlbnVsaSAidmltdHV0b3IiIG92byBqZSB2ZeYga29waWphKS4KKworICAgICBWYZ5ubyBqZSB1cGFtdGl0aSBkYSBqZSBvdmFqIHByaXJ16G5payB6YW1pmmxqZW4gemEgYWt0aXZudSB2ZZ5idS4KKyAgICAgVG8gem5h6GkgZGEgbW9yYXRlIHVwb3RyZWJsamF2YXRpIGtvbWFuZGUgbyBrb2ppbWEg6Gl0YXRlIGRhIGJpc3RlCisgICAgIGloIG5hdehpbGkuICBBa28gc2FtbyDoaXRhdGUgdGVrc3QsIHphYm9yYXZp5mV0ZSBrb21hbmRlIQorCisgICAgIEFrbyBqZSBDYXBzIExvY2sgdWtsanXoZW4gSVNLTEpVyElURSBnYS4gIFByaXRpc25pdGUgdGFzdGVyICBqICBkb3ZvbGpubworICAgICBwdXRhIGRhIGxla2NpamEgMS4xIGNlbGEgc3RhbmUgbmEgZWtyYW4uCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgICBMZWtjaWphIDEuMTogIFBPTUVSQU5KRSBLVVJTT1JBCisKKworICoqIFphIHBvbWVyYW5qZSBrdXJzb3JhLCBwcml0aXNrYWp0ZSB0YXN0ZXJlIGgsaixrLGwga2FrbyBqZSBwcmlrYXphbm8gKioKKwkgICAgIF4KKwkgICAgIGsJCSAgICBTYXZldDogaCBqZSBzIGxldmUgc3RyYW5lIGkgcG9tZXJhIGt1cnNvciB1IGxldm8uCisgICAgICAgPCBoCSBsID4JCSAgIGwgamUgcyBkZXNuZSBzdHJhbmUgaSBwb21lcmEga3Vyc29yIHUgZGVzbm8uCisJICAgICBqICAgICAgICAgICAgICAgICAgICAgaiBpemdsZWRhIGthbyBzdHJlbGljYSBuYW5pnmUuCisJICAgICB2CisgIDEuIFBvbWVyYWp0ZSBrdXJzb3IgcG8gZWtyYW51IGRvayBzZSBuZSBuYXZpa25ldGUgbmEga29tYW5kZS4KKworICAyLiBQcml0aXNuaXRlIHRhc3RlciAoaikgZG9rIG5lIHBv6G5lIGRhIHNlIHBvbmF2bGphLgorICAgICBTYWRhIHpuYXRlIGtha28gZGEgZG/wZXRlIGRvIG5hcmVkbmUgbGVrY2lqZS4KKworICAzLiBLb3Jpc3Rl5mkgdGFzdGVyIGogcHJl8Gl0ZSBuYSBsZWtjaWp1IDEuMi4KKworTkFQT01FTkE6ICBBa28gbmlzdGUgc2lndXJuaSCadGEgc3RlIHphcHJhdm8gcHJpdGlzbnVsaSwgcHJpdGlzbml0ZSA8RVNDPgorICAgICAgICAgICB6YSBwcmVsYXphayB1IE5vcm1hbCBtb2QgaSBwb2t1mmFqdGUgcG9ub3ZvLgorCitOQVBPTUVOQTogIFN0cmVsaWNlIHRha2/wZSBwb21lcmFqdSBrdXJzb3IsIGFsaSBrb3JpmuZlbmplIHRhc3RlcmEgaGprbCBqZQorICAgICAgICAgICB6bmF0bm8gYnKeZSwga2FkIHNlIGplZG5vbSBuYXZpa25ldGUgbmEgbmppaC4gIFphaXN0YSEKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgICBMZWtjaWphIDEuMjogSVpMQVpBSyBJWiBWSU0tYQorCisKKyAgISEgVVBPWk9SRU5KRTogUHJlIGl6dm/wZW5qYSBiaWxvIGtvZyBrb3Jha2EsIHByb+hpdGFqdGUgY2VsdSBsZWtjaWp1ISEKKworICAxLiBQcml0aXNuaXRlIDxFU0M+IChlZGl0b3IgamUgc2FkYSB1IE5vcm1hbCBtb2R1KS4KKworICAyLiBPdGt1Y2FqdGU6CTpxISA8RU5URVI+LgorICAgICBPdmltZSBzZSBpemxhemkgaXogZWRpdG9yYSwgc2EgR1VCSVRLT00gc3ZpaCBpem1lbmEuCisKKyAgMy4gS2FkYSBzZSBwb2phdmkga29tYW5kbmkgcHJvbXB0LCB1bmVzaXRlIGtvbWFuZHUga29qYSBqZSBwb2tyZW51bGEKKyAgICAgb3ZhaiBwcmlydehuaWs6CQl2aW10dXRvciA8RU5URVI+CisKKyAgNC4gQWtvIHN0ZSB1cGFtdGlsaSBvdmUga29yYWtlLCBpenZymml0ZSBpaCByZWRvbSBvZCAxIGRvIDMgZGEgYmlzdGUKKyAgICAgaXphmmxpIGl6IGVkaXRvcmEgaSBwb25vdm8gZ2EgcG9rcmVudWxpLgorCitOQVBPTUVOQTogIDpxISA8RU5URVI+ICBwb25pmnRhdmEgc3ZlIGl6bWVuZSBrb2plIHN0ZSBuYXByYXZpbGkuCisgICAgICAgICAgIFUgbmFyZWRuaW0gbGVrY2lqYW1hIG5hdehp5mV0ZSBrYWtvIGRhIHNh6HV2YXRlIGl6bWVuZS4KKworICA1LiBQb21lcml0ZSBrdXJzb3IgbmEgbGVrY2lqdSAxLjMuCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICBMZWtjaWphIDEuMzogSVpNRU5BIFRFS1NUQSAtIEJSSVNBTkpFCisKKworCSAgICAgICoqIFByaXRpc25pdGUgIHggIHphIGJyaXNhbmplIHpuYWthIHBvZCBrdXJzb3JvbS4gKioKKworICAxLiBQb21lcml0ZSBrdXJzb3IgbmEgcmVkIG96bmHoZW4gc2EgLS0tPi4KKworICAyLiBEYSBiaXN0ZSBpc3ByYXZpbGkgZ3JlmmtlLCBwb21lcmFqdGUga3Vyc29yIGRvayBzZQorICAgICBuZSBuYfBlIG5hIHNsb3Z1IGtvamUgdHJlYmEgaXpicmlzYXRpLgorCisgIDMuIFByaXRpc25pdGUgdGFzdGVyICB4ICBkYSBpemJyaZpldGUgbmWeZWxqZW5vIHNsb3ZvLgorCisgIDQuIFBvbmF2bGphanRlIGtvcmFrZSBvZCAyIGRvIDQgZG9rIG5lIGlzcHJhdml0ZSBzdmUgZ3JlmmtlLgorCistLS0+IFJSUmliYWEgcmlpYmkgZ3Jpenp6ZSBycnJlZXBwLgorCisgIDUuIEthZCBpc3ByYXZpdGUgcmVkLCBwcmXwaXRlIG5hIGxla2NpanUgMS40LgorCitOQVBPTUVOQTogIERvayBrb3Jpc3RpdGUgcHJpcnXobmlrLCBuZW1vanRlIHXoaXRpIGtvbWFuZGUgbmFwYW1ldCwKKyAgICAgICAgICAgdmXmIHZlnmJhanRlIG5qaWhvdnUgcHJpbWVudS4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJIExla2NpamEgMS40OiBJWk1FTkEgVEVLU1RBIC0gVUJBQ0lWQU5KRQorCisKKwkgICoqIFByaXRpc25pdGUgIGkgIHphIHViYWNpdmFuamUgdGVrc3RhIGlzcHJlZCBrdXJzb3JhLiAqKgorCisgIDEuIFBvbWVyaXRlIGt1cnNvciBuYSBwcnZpIHNsZWRl5mkgcmVkIG96bmHoZW4gc2EgLS0tPi4KKworICAyLiBEYSBiaXN0ZSB0ZWtzdCBwcnZvZyByZWRhIGl6amVkbmHoaWxpIHMgdGVrc3RvbSBkcnVnb2csIG5hbWVzdGl0ZQorICAgICBrdXJzb3IgbmEgcHJ2aSB6bmFrIFBPU0xFIGtvZyDmZXRlIHViYWNpdGkgcG90cmViYW4gdGVrc3QuCisKKyAgMy4gUHJpdGlzbml0ZSAgaSAgcGEgdW5lc2l0ZSBwb3RyZWJuZSBkb3B1bmUuCisKKyAgNC4gUG8gaXNwcmF2Y2kgc3Zha2UgZ3JlmmtlIHByaXRpc25pdGUgPEVTQz4gZGEgc2UgdnJhdGl0ZSB1IE5vcm1hbCBtb2QuCisgICAgIFBvbm92aXRlIGtvcmFrZSBvZCAyIGRvIDQgZGEgYmlzdGUgaXNwcmF2aWxpIGNlbHUgcmXoZW5pY3UuCisKKy0tLT4gRG8gdGVrYSBuZW9qZSB2IHJlZC4KKy0tLT4gRGVvIHRla3N0YSBuZWRvc3RhamUgaXogb3ZvZyByZWRhLgorCisgIDUuIFByZfBpdGUgbmEgc2xlZGXmdSBsZWtjaWp1LgorCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICBMZWtjaWphIDEuNTogSVpNRU5BIFRFS1NUQSAtIERPREFWQU5KRQorCisKKwkgICAgICAgICAgICoqIFByaXRpc25pdGUgIEEgIHphIGRvZGF2YW5qZSB0ZWtzdGEuICoqCisKKyAgMS4gUG9tZXJpdGUga3Vyc29yIG5hIHBydmkgc2xlZGXmaSByZWQgb3puYehlbiBzYSAtLS0+LgorICAgICBOaWplIHZhnm5vIGdkZSBzZSBuYWxhemkga3Vyc29yIHUgdG9tIHJlZHUuCisKKyAgMi4gUHJpdGlzbml0ZSAgQSAgaSB1bmVzaXRlIGRvZGF0bmkgdGVrc3QuCisKKyAgMy4gUG+adG8gc3RlIGRvZGFsaSB0ZWtzdCwgcHJpdGlzbml0ZSA8RVNDPiB6YSBwb3ZyYXRhayB1CisgICAgIE5vcm1hbCBtb2QuCisKKyAgNC4gUG9tZXJpdGUga3Vyc29yIG5hIGRydWdpIHJlZCBvem5h6GVuIHNhIC0tLT4gaSBwb25hdmxqYWp0ZQorICAgICBrb3Jha2UgMiBpIDMgZG9rIG5lIGlzcHJhdml0ZSB0ZWtzdC4KKworLS0tPiBEZW8gdGVrc3RhIG5lZG9zdGFqZSB1CisgICAgIERlbyB0ZWtzdGEgbmVkb3N0YWplIHUgb3ZvbSByZWR1LgorLS0tPiBEZW8gdGVrc3RhIG5lZG9zdGFqZQorICAgICBEZW8gdGVrc3RhIG5lZG9zdGFqZSBpIG92ZGUuCisKKyAgNS4gUHJl8Gl0ZSBuYSBsZWtjaWp1IDEuNi4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgIExla2NpamEgMS42OiBJWk1FTkEgRkFKTEEKKworCisgICAgICoqIFVwb3RyZWJpdGUgIDp3cSAgemEgc25pbWFuamUgdGVrc3RhIGkgaXpsYXphayBpeiBlZGl0b3JhLiAqKgorCisgICEhIFVQT1pPUkVOSkU6IFByZSBpenZv8GVuamEgYmlsbyBrb2cga29yYWthLCBwcm/oaXRhanRlIGNlbHUgbGVrY2lqdSEhCisKKyAgMS4gSXph8Gl0ZSBpeiBlZGl0b3JhIGthbyB1IGxla2NpamkgMS4yOiAgOnEhCisKKyAgMi4gTmEga29tYW5kbm9tIHByb21wdHUgdW5lc2l0ZSBzbGVkZeZ1IGtvbWFuZHU6ICB2aW0gdHV0b3IgPEVOVEVSPgorICAgICAndmltJyBqZSBrb21hbmRhIHphIHBva3JldGFuamEgVmltIGVkaXRvcmEsICd0dXRvcicgamUgaW1lIGZhamxhIGtvamkKKyAgICAgnmVsaXRlIGRhIG1lbmphdGUuICBLb3Jpc3RpdGUgZmFqbCBrb2ppIGltYXRlIHByYXZvIGRhIG1lbmphdGUuCisKKyAgMy4gVWJhY3VqdGUgaSBicmmaaXRlIHRla3N0IGthbyB1IHByZXRob2RuaW0gbGVrY2lqYW1hLgorCisgIDQuIFNuaW1pdGUgaXptZW5qZW5pIHRla3N0IGkgaXph8Gl0ZSBpeiBWaW0tYTogIDp3cSA8RU5URVI+CisKKyAgNS4gUG9ub3ZvIHBva3Jlbml0ZSB2aW10dXRvciBpIHByb+hpdGFqdGUgcmV6aW1lIGtvamkgc2xlZGkuCisKKyAgNi4gUG+adG8gcHJv6Gl0YXRlIGtvcmFrZSBpem5hZCBpIHUgcG90cHVub3N0aSBpaCByYXp1bWV0ZToKKyAgICAgaXp2cpppdGUgaWguCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICAgICAgUkVaSU1FIGxla2NpamUgMSAKKworCisgIDEuIEt1cnNvciBzZSBwb21lcmEgc3RyZWxpY2FtYSBpbGkgcG9tb+Z1IHRhc3RlcmEgaGprbCAuCisJaCAobGV2bykJaiAoZG9sZSkJayAoZ29yZSkJbCAoZGVzbm8pCisKKyAgMi4gWmEgcG9rcmV0YW5qZSBWaW0tYSBpeiBzaGVsbC1hOiAgdmltIElNRV9GQUpMQSA8RU5URVI+CisKKyAgMy4gSXpsYXo6CTxFU0M+CTpxISA8RU5URVI+IAlzdmUgcHJvbWVuZSBzdSBpemd1YmxqZW5lLgorICAgICAgIElMSToJPEVTQz4JOndxIDxFTlRFUj4gCXByb21lbmUgc3Ugc2HodXZhbmUuCisKKyAgNC4gQnJpc2FuamUgem5ha2EgbmEga29tZSBzZSBuYWxhemkga3Vyc29yOiAgeAorCisgIDUuIFViYWNpdmFuamEgaWxpIGRvZGF2YW5qZSB0ZWtzdGE6CisJIGkgICB1bmVzaXRlIHRla3N0IDxFU0M+CXVub3MgaXNwcmVkIGt1cnNvcmEKKwkgQSAgIHVuZXNpdGUgdGVrc3QgPEVTQz4JZG9kYXZhbmplIG5hIGtyYWp1IHJlZGEKKworTkFQT01FTkE6ICBQcml0aXNrb20gbmEgPEVTQz4gcHJlYmFjdWpldGUgVmltIHUgTm9ybWFsIG1vZCBpCisgICAgICAgICAgIHByZWtpZGF0ZSBuZZ5lbGplbnUgaWxpIGRlbGltaehubyBpenZymmVudSBrb21hbmR1LgorCitOYXN0YXZpdGUgc2EgbGVrY2lqb20gMi4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQlMZWtjaWphIDIuMTogTkFSRURCRSBCUklTQU5KQQorCisKKwkJICoqIE90a3VjYWp0ZSAgZHcgIHphIGJyaXNhbmplIHJl6GkuICoqCisKKyAgMS4gUHJpdGlzbml0ZSAgPEVTQz4gIGRhIGJpc3RlIGJpbGkgc2lndXJuaSBkYSBzdGUgdSBOb3JtYWwgbW9kdS4KKworICAyLiBQb21lcml0ZSBrdXJzb3IgbmEgcmVkIG96bmHoZW4gc2EgLS0tPi4KKworICAzLiBQb21lcml0ZSBrdXJzb3IgbmEgcG/oZXRhayByZehpIGtvanUgdHJlYmEgaXpicmlzYXRpLgorCisgIDQuIE90a3VjYWp0ZSAgZHcgIGRhIGJpc3RlIHVrbG9uaWxpIHJl6C4KKworTkFQT01FTkE6ICBTbG92byAgZCAg5mUgc2UgcG9qYXZpdGkgbmEgZG51IGVrcmFuYSBrYWQgZ2Egb3RrdWNhdGUuICBWaW0g6GVrYQorCSAgIGRhIG90a3VjYXRlICB3IC4gIEFrbyBqZSBwcmlrYXphbm8gbmVrbyBkcnVnbyBzbG92bywgcG9ncmWaaWxpIHN0ZSB1CisJICAga3VjYW5qdTsgcHJpdGlzbml0ZSA8RVNDPiBpIHBva3WaYWp0ZSBwb25vdm8uICAoQWtvIHNlIG5lIHBvamF2aQorCSAgIG5pmnRhLCBtb55kYSBqZSBpc2tsanXoZW5hIG9wY2lqYSAnc2hvd2NtZCc6IHZpZGkgbGVrY2lqdSA2LjUuKQorCistLS0+IE5la2UgcmXoaSBzbWWabm8gbmUgcHJpcGFkYWp1IG5hIHBhcGlyIG92b2ogcmXoZW5pY2kuCisKKyAgNS4gUG9uYXZsamFqdGUga29yYWtlIDMgaSA0IGRvayBuZSBpc3ByYXZpdGUgcmXoZW5pY3UsIHBhCisgICAgIHByZfBpdGUgbmEgbGVrY2lqdSAyLjIuCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgICAgTGVrY2lqYSAyLjI6IEpPiiBCUklTQU5KQQorCisKKyAgICAgICAqKiBPdGt1Y2FqdGUgIGQkICB6YSBicmlzYW5qZSB6bmFrb3ZhIGRvIGtyYWphIHJlZGEuICoqCisKKyAgMS4gUHJpdGlzbml0ZSAgPEVTQz4gIGRhIGJpc3RlIGJpbGkgc2lndXJuaSBkYSBzdGUgdSBOb3JtYWwgbW9kdS4KKworICAyLiBQb21lcml0ZSBrdXJzb3IgbmEgcmVkIG96bmHoZW4gc2EgIC0tLT4uCisKKyAgMy4gUG9tZXJpdGUga3Vyc29yIGRvIGtyYWphIGlzcHJhdm5vZyBkZWxhIHJl6GVuaWNlCisgICAgIChQT1NMRSBwcnZlIC4gKS4KKworICA0LiBPdGt1Y2FqdGUgIGQkICB6YSBicmlzYW5qZSBvc3RhdGthIHJlZGEuCisKKy0tLT4gTmVrbyBqZSB1bmVvIGtyYWogb3ZvZyByZWRhIGR2YXB1dC4ga3JhaiBvdm9nIHJlZGEgZHZhcHV0LgorCisgIDUuIFByZfBpdGUgbmEgbGVrY2lqdSAyLjMgemEgcG9kcm9ibmlqZSBvYmphmm5qZW5qZS4KKworCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkgICAgICBMZWtjaWphIDIuMzogTyBPUEVSQVRPUklNQSBJIFBPS1JFVElNQQorCisKKyAgTW5vZ2Uga29tYW5kZSB6YSBpem1lbnUgdGVrc3RhIHNhc3RvamUgc2Ugb2Qgb3BlcmF0b3JhIGkgcG9rcmV0YS4KKyAgT2JsaWsga29tYW5kZSBicmlzYW5qYSBzYSAgZCAgb3BlcmF0b3JvbSBqZSBzbGVkZeZpOgorCisgIAlkICAgcG9rcmV0CisKKyAgUHJpIOhlbXUgamU6CisgICAgZCAgICAgIC0gb3BlcmF0b3IgYnJpc2FuamEuCisgICAgcG9rcmV0IC0gb25vIG5hIOhlbXUg5mUgc2Ugb3BlcmFjaWphIGl6dnKaYXZhdGkgKG9waXNhbm8gdSBuYXN0YXZrdSkuCisKKyAgS3JhdGFrIHNwaXNhayBwb2tyZXRhOgorICAgIHcgLSBzdmUgZG8gcG/oZXRrYSBzbGVkZeZlIHJl6GksIE5FIFVLTEpVyFVKVcZJIHBydm8gc2xvdm8uCisgICAgZSAtIHN2ZSBkbyBrcmFqYSB0ZWt15mUgcmXoaSwgVUtMSlXIVUpVxkkgcG9zbGVkbmplIHNsb3ZvLgorICAgICQgLSBzdmUgZG8ga3JhamUgcmVkYSwgVUtMSlXIVUpVxkkgcG9zbGVkbmplIHNsb3ZvLgorCisgIEt1Y2FuamVtICBkZSAgYnJpc2HmZSBzZSB0ZWtzdCBvZCBrdXJzb3JhIGRvIGtyYWphIHJl6GkuCisKK05BUE9NRU5BOiAgUHJpdGlza29tIHNhbW8gbmEgdGFzdGVyIHBva3JldGEgZG9rIHN0ZSB1IE5vcm1hbCBtb2R1LCBiZXoKKyAgICAgICAgICAgb3BlcmF0b3JhLCBrdXJzb3Igc2UgcG9tZXJhIGthbyCadG8gamUgb3Bpc2Fuby4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgTGVrY2lqYSAyLjQ6IEtPUkmKxkVOSkUgQlJPSkFOSkEgWkEgUE9LUkVURQorCisKKyAgKiogVW5vmmVuamVtIG5la29nIGJyb2phIHByZSBwb2tyZXRhLCBwb2tyZXQgc2UgaXp2cpphdmEgdGFqIGJyb2ogcHV0YS4gKioKKworICAxLiBQb21lcml0ZSBrdXJzb3IgbmEgcmVkIG96bmHoZW4gc2EgLS0tPi4KKworICAyLiBPdGt1Y2FqdGUgIDJ3ICBkYSBwb21lcml0ZSBrdXJzb3IgZHZlIHJl6GkgbmFwcmVkLgorCisgIDMuIE90a3VjYWp0ZSAgM2UgIGRhIHBvbWVyaXRlIGt1cnNvciBuYSBrcmFqIHRyZeZlIHJl6GkgbmFwcmVkLgorCisgIDQuIE90a3VjYWp0ZSAgMCAgKG51bHUpIGRhIHBvbWVyaXRlIGt1cnNvciBuYSBwb+hldGFrIHJlZGEuCisKKyAgNS4gUG9ub3ZpdGUga29yYWtlIDIgaSAzIHMgbmVraW0gZHJ1Z2ltIGJyb2pldmltYS4KKworLS0tPiBSZehlbmljYSBzYSByZehpbWEgcG8ga29qb2ogbW+eZXRlIHBvbWVyYXRpIGt1cnNvci4KKworICA2LiBQcmXwaXRlIG5hIGxla2NpanUgMi41LgorCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKyAgICAgICAgICAgICBMZWtjaWphIDIuNTogS09SSYrGRU5KRSBCUk9KQU5KQSBaQSBWRcZFIEJSSVNBTkpFCisKKworICAqKiBVbm+aZW5qZSBuZWtvZyBicm9qYSBzIG9wZXJhdG9yb20gcG9uYXZsamEgb3BlcmF0b3IgdGFqIGJyb2ogcHV0YS4gKioKKworICBVIGtvbWJpbmFjaWppIG9wZXJhdG9yYSBicmlzYW5qYSBzIHBva3JldGltYSBzcG9tZW51dGltIGl6bmFkCisgIG1vnmV0ZSB1bmV0aSBicm9qIHByZSBwb2tyZXRhIGRhIGJpc3RlIGl6YnJpc2FsaSB2aZplIHpuYWtvdmE6CisKKwkgZCAgIGJyb2ogICBwb2tyZXQKKworICAxLiBQb21lcml0ZSBrdXJzb3IgbmEgcHJ2byBzbG92byB1IHJl6GkgcyBWRUxJS0lNIFNMT1ZJTUEgdSByZWR1CisgICAgIG96bmHoZW5vbSBzYSAtLS0+LgorCisgIDIuIE90a3VjYWp0ZSAgZDJ3ICBkYSBpemJyaZpldGUgZHZlIHJl6Gkgc2EgVkVMSUtJTSBTTE9WSU1BCisKKyAgMy4gUG9ub3ZpdGUga29yYWtlIDEgaSAyIHNhIHJhemxp6Gl0aW0gYnJvamV2aW1hIGRhIGl6YnJpmmV0ZQorICAgICB1emFzdG9wbmUgcmXoaSBzYSBWRUxJS0lNIFNMT1ZJTUEga29yaZrmZW5qZW0gc2FtbyBqZWRuZSBrb21hbmRlLgorCistLS0+IG92YWogQUJDyMYgRNBFIHJlZCBGR0hJIEpLIExNTiBPUCBzIHJl6GltYSBqZSBSU4ogVFVWWo4gaXNwcmF2bGplbi4KKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgIExla2NpamEgMi42OiBPUEVSQUNJSkUgTkFEIFJFRE9WSU1BCisKKworCSAgICAgICAqKiBPdGt1Y2FqdGUgIGRkICB6YSBicmlzYW5qZSBjZWxvZyByZWRhLiAqKgorCisgIFpib2cgdehlc3RhbG9zdGkgYnJpc2FuamEgY2VsaWggcmVkb3ZhLCBhdXRvcmkgVmktamEgb2RsdehpbGkgc3UgZGEKKyAgamUgbGFrmmUgYnJpc2F0aSByZWRvdmUgYWtvIHNlIG90a3VjYSAgZCAgZHZhcHV0LgorCisgIDEuIFBvbWVyaXRlIGt1cnNvciBuYSBkcnVnaSByZWQgdSBkb25qb2ogc3Ryb2ZpLgorICAyLiBPdGt1Y2FqdGUgIGRkICBkYSBnYSBpemJyaZpldGUuCisgIDMuIFBvbWVyaXRlIGt1cnNvciBuYSDoZXR2cnRpIHJlZC4KKyAgNC4gT3RrdWNhanRlICAgMmRkICAgZGEgYmlzdGUgaXpicmlzYWxpIGR2YSByZWRhLgorCistLS0+ICAxKSAgU2VkbG8gbWkgamUgb2QgbWFyYW1lLAorLS0tPiAgMikgIGJsYXRvIG5hIHN2ZSBzdHJhbmUsCistLS0+ICAzKSAgdXpkYSBvZCBrYW5hcGEsCistLS0+ICA0KSAgYXV0byBtaSBqZSBvdmRlLAorLS0tPiAgNSkgIHNhdG92aSBwb2thenVqdSB2cmVtZSwKKy0tLT4gIDYpICBhIGJp6CBtaSBqZSBvZCBv6GluYQorLS0tPiAgNykgIHByZWJpamVuYSCadGFwYS4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgICAgTGVrY2lqYSAyLjc6IFBPTkmKVEFWQU5KRSBQUk9NRU5BCisKKworICAqKiBQcml0aXNuaXRlICB1ICB6YSBwb25pmnRhdmFuamUgcG9zbGVkbmplIGtvbWFuZGUsICBVICB6YSBjZW8gcmVkLiAqKgorCisgIDEuIFBvbWVyaXRlIGt1cnNvciBuYSByZWQgb3puYehlbiBzYSAtLS0+IGkgcG9zdGF2aXRlIGdhIG5hIG1lc3RvCisgICAgIHBydmUgZ3JlmmtlLgorICAyLiBPdGt1Y2FqdGUgIHggIGRhIGl6YnJpmmV0ZSBwcnZpIG5lnmVsamVuaSB6bmFrLgorICAzLiBPdGt1Y2FqdGUgIHUgIGRhIHBvbmmadGl0ZSBwb3NsZWRuanUgaXp2cpplbnUga29tYW5kdS4KKyAgNC4gU2FkIGlzcHJhdml0ZSBzdmUgZ3JlmmtlIHUgcmVkdSBrb3Jpc3Rl5mkga29tYW5kdSAgeCAgLgorICA1LiBPdGt1Y2FqdGUgdmVsaWtvICBVICBkYSBiaXN0ZSB2cmF0aWxpIHNhZHKeYWogcmVkYSB1IHBydm9iaXRubworICAgICBzdGFuamUuCisgIDYuIE9uZGEgb3RrdWNhanRlICB1ICBuZWtvbGlrbyBwdXRhIGRhIGJpc3RlIHBvbmmadGlsaSAgVQorICAgICBpIHByZXRob2RuZSBrb21hbmRlLgorICA3LiBTYWQgb3RrdWNhanRlIENUUkwtUiAoZHKeZeZpICBDVFJMICBkb2sgcHJpdGlza2F0ZSBSKQorICAgICBuZWtvbGlrbyBwdXRhIGRhIGJpc3RlIHZyYXRpbGkgaXptZW5lIChwb25pmnRpbGkgcG9uaZp0YXZhbmphKS4KKworLS0tPiBJaWlzc3ByYXZpdGUgZ3JlmmtlIHV1IG92dm9tIHJlZHUgaWkgcG9vbmmadGl0ZWVlIGloLgorCisgIDguIE92byBzdSB2ZW9tYSBrb3Jpc25lIGtvbWFuZGUuICBQcmXwaXRlIG5hIHJlemltZSBsZWtjaWplIDIuCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgICAgICBSRVpJTUUgbGVrY2lqZSAyCisKKworICAxLiBCcmlzYW5qZSBvZCBrdXJzb3JhIGRvIHNsZWRl5mUgcmXoaToJZHcKKyAgMi4gQnJpc2FuamUgb2Qga3Vyc29yYSBkbyBrcmFqYSByZWRhOgkJZCQKKyAgMy4gQnJpc2FuamUgY2Vsb2cgcmVkYToJCQlkZAorCisgIDQuIFphIHBvbmF2bGphbmplIHBva3JldGEgcHJldGhvZG5vIHVuZXNpdGUgYnJvajogIDJ3CisgIDUuIE9ibGlrIGtvbWFuZGUgemEgaXptZW51OgorICAgICAgICAgICAgICAgb3BlcmF0b3IgICBbYnJval0gICBwb2tyZXQKKyAgICAgZ2RlIGplOgorICAgICAgIG9wZXJhdG9yIC0gmnRhIHVyYWRpdGksIHJlY2ltbyAgZCAgemEgYnJpc2FuamUKKyAgICAgICBbYnJval0gICAtIG5lb2JhdmV6YW4gYnJvaiBwb25hdmxqYW5qYSBwb2tyZXRhCisgICAgICAgcG9rcmV0ICAgLSBrcmV0YW5qZSBwbyB0ZWtzdHUgbmEga29tZSBzZSByYWRpLAorICAgICAgICAgICAgICAgICAga2FvIJp0byBqZTogdyAocmXoKSwgJCAoa3JhaiByZWRhKSwgaXRkLgorCisgIDYuIFBvbWVyYW5qZSBrdXJzb3JhIG5hIHBv6GV0YWsgcmVkYTogIDAKKworICA3LiBaYSBwb25pmnRhdmFuamUgcHJldGhvZG5paCBpem1lbmEsIHByaXRpc25pdGU6CXUgIChtYWxvIHUpCisgICAgIFphIHBvbmmadGF2YW5qZSBzdmloIHByb21lbmEgdSByZWR1LCBwcml0aXNuaXRlOglVICAodmVsaWtvIFUpCisgICAgIFphIHZyYeZhbmphIHByb21lbmEsIG90a3VjYWp0ZToJCQlDVFJMLVIKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgICBMZWtjaWphIDMuMTogS09NQU5EQSBQT1NUQVZMSkFOSkEKKworCisgICoqIE90a3VjYWp0ZSAgcCAgZGEgcG9zdGF2aXRlIHByZXRob2RubyBpemJyaXNhbiB0ZWtzdCBpemEga3Vyc29yYS4gKioKKworICAxLiBQb21lcml0ZSBrdXJzb3IgbmEgcHJ2aSBzbGVkZeZpIHJlZCBvem5h6GVuIHNhIC0tLT4uCisKKyAgMi4gT3RrdWNhanRlICBkZCAgZGEgaXpicmmaZXRlIHJlZCBpIHNtZXN0aXRlIGdhIHUgVmltIHJlZ2lzdGFyLgorCisgIDMuIFBvbWVyaXRlIGt1cnNvciBuYSByZWQgYyksIElaTkFEIG1lc3RhIGdkZSB0cmViYSBwb3N0YXZpdGkgaXpicmlzYW4gcmVkLgorCisgIDQuIE90a3VjYWp0ZSAgcCAgZGEgcG9zdGF2aXRlIHJlZCBpc3BvZCBrdXJzb3JhLgorCisgIDUuIFBvbmF2bGphanRlIGtvcmFrZSAyIGRvIDQgZGEgYmlzdGUgcG9zdGF2aWxpIHN2ZSBsaW5pamUgdSBwcmF2aWxub20KKyAgICAgcmVkb3NsZWR1LgorCistLS0+IGQpIHByZWJpamVuYSCadGFwYS4KKy0tLT4gYikgdXpkYSBvZCBrYW5hcGEsCistLS0+IGMpIGEgYmnoIG1pIGplIG9kIG/oaW5hCistLS0+IGEpIFNlZGxvIG1pIGplIG9kIG1hcmFtZSwKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgICAgIExla2NpamEgMy4yOiBLT01BTkRBIFpBTUVORQorCisKKyAgICAgICoqIE90a3VjYWp0ZSAgcnggIGRhIHphbWVuaXRlIHpuYWsgaXNwb2Qga3Vyc29yYSBzbG92b20gIHggLiAqKgorCisgIDEuIFBvbWVyaXRlIGt1cnNvciBuYSBwcnZpIHNsZWRl5mkgcmVkIG96bmHoZW4gc2EgLS0tPi4KKworICAyLiBQb21lcml0ZSBrdXJzb3IgdGFrbyBkYSBzZSBuYWxhemkgbmEgcHJ2b2ogZ3JlmmNpLgorCisgIDMuIE90a3VjYWp0ZSAgciAgaSBvbmRhIHpuYWsga29qaSB0cmViYSBkYSB0dSBzdG9qaS4KKworICA0LiBQb25hdmxqYWp0ZSBrb3Jha2UgMiBpIDMgc3ZlIGRvayBwcnZpIHJlZCBuZSBidWRlCisgICAgIGlzdGkga2FvIGRydWdpLgorCistLS0+ICBLZWRpIGp1IG92ZWogcmVkIHVnYZplbiwgbmFrbyBqZSBwcm90cmVzYW8gcHVzdGGabmUgdGVzdGVyZSEKKy0tLT4gIEthZGEgamUgb3ZhaiByZWQgdW5vmmVuLCBuZWtvIGplIHByaXRpc2thbyBwb2dyZZpuZSB0YXN0ZXJlIQorCisgIDUuIFByZfBpdGUgbmEgbGVrY2lqdSAzLjIuCisKK05BUE9NRU5BOiAgU2V0aXRlIHNlIGRhIHRyZWJhIGRhIHXoaXRlIHZlnmJhbmplbSwgbmUgcGFt5mVuamVtLgorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgTGVrY2lqYSAzLjM6IE9QRVJBVE9SIElaTUVORQorCisKKwkgICoqIFphIGl6bWVudSB0ZWtzdGEgZG8ga3JhamEgcmXoaSwgb3RrdWNhanRlICBjZSAgLioqCisKKyAgMS4gUG9tZXJpdGUga3Vyc29yIG5hIHBydmkgc2xlZGXmaSByZWQgb3puYehlbiBzYSAtLS0+LgorCisgIDIuIFBvc3Rhdml0ZSBrdXJzb3IgbmEgIGEgIHUgIHJha2R1ci4KKworICAzLiBPdGt1Y2FqdGUgIGNlICBpIGlzcHJhdml0ZSByZeggKHUgb3ZvbSBzbHXoYWp1IG90a3VjYWp0ZSAgZWQgICkuCisKKyAgNC4gUHJpdGlzbml0ZSA8RVNDPiBpIHBvbWVyaXRlIGt1cnNvciBuYSBzbGVkZeZpIHpuYWsga29qaQorICAgICB0cmViYSBpc3ByYXZpdGkuCisKKyAgNS4gUG9uYXZsamFqdGUga29yYWtlIDMgaSA0IHN2ZSBkb2sgcHJ2YSByZehlbmljYSBuZSBidWRlIGlzdGEKKyAgICAga2FvIGRydWdhLgorCistLS0+IE92YWogcmFrZHVyIGltYSBuZWtvbGlrbyByZWpnYSBrb2plIHRyZWZsamEgaXNwcnBpa2F0aSBvcGVyYWdyb20gaXptZW5lLgorLS0tPiBPdmFqIHJlZCBpbWEgbmVrb2xpa28gcmXoaSBrb2plIHRyZWJhIGlzcHJhdml0aSBvcGVyYXRvcm9tIGl6bWVuZS4KKworVW/oaXRlIGRhICBjZSAgYnJpmmUgcmXoIGkgcG9zdGF2bGphIGVkaXRvciB1IEluc2VydCBtb2QuCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCSAgICAgICAgIExla2NpamEgMy40OiBEQUxKRSBJWk1FTkUgVVBPVFJFQk9NIGMKKworCisgICAgKiogS29tYW5kYSBpem1lbmUgc2Uga29yaXN0aSBzYSBpc3RpbSBwb2tyZXRpbWEga2FvIGkgYnJpc2FuamUuICoqCisKKyAgMS4gT3BlcmF0b3IgaXptZW5lIHNlIGtvcmlzdGkgbmEgaXN0aSBuYehpbiBrYW8gaSBvcGVyYXRvciBicmlzYW5qYToKKworICAgICAgICAgYyAgICBbYnJval0gICBwb2tyZXQKKworICAyLiBQb2tyZXRpIHN1IGlzdGksIHJlY2ltbzogICB3IChyZegpIGkgICQgKGtyYWogcmVkYSkuCisKKyAgMy4gUG9tZXJpdGUga3Vyc29yIG5hIHBydmkgc2xlZGXmaSByZWQgb3puYehlbiBzYSAtLS0+LgorCisgIDQuIFBvbWVyaXRlIGt1cnNvciBuYSBwcnZ1IGdyZZprdS4KKworICA1LiBPdGt1Y2FqdGUgIGMkICBpIHVuZXNpdGUgb3N0YXRhayByZWRhIHRha28gZGEgYnVkZSBpc3RpIGthbworICAgICBkcnVnaSByZWQsIHBhIHByaXRpc25pdGUgPEVTQz4uCisKKy0tLT4gS3JhaiBvdm9nIHJlZGEgdHJlYmEgaXptZW5pdGkgdGFrbyBkYSBpemdsZWRhIGthbyByZWQgaXNwb2QuCistLS0+IEtyYWogb3ZvZyByZWRhIHRyZWJhIGlzcHJhdml0aSBrb3JpmuZlbmplbSBjJCBrb21hbmRlLgorCitOQVBPTUVOQTogIFphIGlzcHJhdmxqYW5qZSBncmWaYWthIG1vnmV0ZSBrb3Jpc3RpdGkgQmFja3NwYWNlIC4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICAgICAgUkVaSU1FIGxla2NpamUgMworCisKKyAgMS4gWmEgcG9zdGF2bGphbmplIHRla3N0YSBrb2ppIHN0ZSB1cHJhdm8gaXpicmlzYWxpLCBwcml0aXNuaXRlICBwIC4gT3ZvCisgICAgIHBvc3RhdmxqYSB0ZWtzdCBJWkEga3Vyc29yYSAoYWtvIGplIGJpbyBpemJyaXNhbiBqZWRhbiBpbGkgdmmaZSByZWRvdmEKKyAgICAgc2Fkcp5haiDmZSBkb+ZpIG5hIHJlZCBpc3BvZCBrdXJzb3JhKS4KKworICAyLiBaYSB6YW1lbnUgem5ha2EgbmEga29tZSBzZSBuYWxhemkga3Vyc29yLCBwcml0aXNuaXRlICByICBpIG9uZGEKKyAgICAgnmVsamVuaSB6bmFrLgorCisgIDMuIE9wZXJhdG9yIGl6bWVuZSBkb3p2b2xqYXZhIHByb21lbnUgdGVrc3RhIG9kIGt1cnNvcmEgZG8gcG96aWNpamUgZ2RlCisgICAgIHNlIHphdnKaYXZhIHBva3JldC4gIFByaW1lcmEgcmFkaSwga3VjYWp0ZSAgY2UgIHphIGl6bWVudSBvZCBrdXJzb3JhIGRvCisgICAgIGtyYWphIHJl6GksIGlsaSAgYyQgIHphIGl6bWVudSBvZCBrdXJzb3JhIGRvIGtyYWphIHJlZGEuCisKKyAgNC4gT2JsaWsgb3BlcmFjaWplIGl6bWVuZSBqZToKKworCSBjICAgW2Jyb2pdICAgcG9rcmV0CisKK1ByZfBpdGUgbmEgbmFyZWRudSBsZWtjaWp1LgorCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJICAgICAgTGVrY2lqYSA0LjE6IFBPWklDSUpBIEtVUlNPUkEgSSBTVEFUVVMgRkFKTEEKKworICAqKiBQcml0aXNuaXRlIENUUkwtRyB6YSBwcmlrYXogcG96aWNpamUga3Vyc29yYSB1IHRla3N0dSBpIHN0YXR1cyBmYWpsYS4KKyAgICAgUHJpdGlzbml0ZSAgRyAgemEgcG9tZXJhbmplIGt1cnNvcmEgbmEgbmVraSByZWQgdSB0ZWtzdHUuICoqCisKK05BUE9NRU5BOiAgUHJv6Gl0YWp0ZSBjZWx1IGxla2NpanUgcHJlIGl6dm/wZW5qYSBiaWxvIGtvZyBrb3Jha2EhIQorCisgIDEuIERynml0ZSB0YXN0ZXIgQ1RSTCBpIHByaXRpc25pdGUgIGcgLiAgT3ZvIHpvdmVtbyBDVFJMLUcuCisgICAgIEVkaXRvciDmZSBuYSBkbnUgZWtyYW5hIGlzcGlzYXRpIHBvcnVrdSBzYSBpbWVub20gZmFqbGEgaSBwb3ppY2lqb20KKyAgICAga3Vyc29yYSB1IHRla3N0dS4gIFphcGFtdGl0ZSBicm9qIHJlZGEgemEgMy4ga29yYWsuCisKK05BUE9NRU5BOiAgVSBkb25qZW0gZGVzbm9tIHVnbHUgbW+eZSBzZSB2aWRldGkgcG96aWNpanUga3Vyc29yYSBha28gamUKKyAgICAgICAgICAgdWtsanXoZW5hIG9wY2lqYSAncnVsZXInICh2aWRpICA6aGVscCBydWxlciAgaWxpIGxla2NpanUgNi41LikKKworICAyLiBQcml0aXNuaXRlICBHICB6YSBwb21lcmFuamUga3Vyc29yYSBuYSBrcmFqIHRla3N0YS4KKyAgICAgUHJpdGlzbml0ZSAgMUcgIGlsaSAgZ2cgIHphIHBvbXJhbmplIGt1cnNvcmEgbmEgcG/oZXRhayB0ZWtzdGEuCisKKyAgMy4gT3RrdWNhanRlIGJyb2ogcmVkYSBuYSBrb21lIHN0ZSBtYWxvcHJlIGJpbGkgaSBvbmRhICBHIC4gIEt1cnNvcgorICAgICDmZSBzZSB2cmF0aXRpIG5hIHJlZCBuYSBrb21lIGplIGJpbyBrYWQgc3RlIG90a3VjYWxpIENUUkwtRy4KKworICA0LiBBa28gc3RlIHNwcmVtbmksIGl6dnKaaXRlIGtvcmFrZSBvZCAxIGRvIDMuCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgTGVrY2lqYSA0LjI6IEtPTUFOREUgUFJFVFJBjklWQU5KQQorCisgICAgICAgKiogT3RrdWNhanRlICAvICBpIG9uZGEgaXpyYXoga29qaSCeZWxpdGUgZGEgcG90cmGeaXRlLiAqKgorCisgIDEuIFUgTm9ybWFsIG1vZHUgb3RrdWNhanRlIHpuYWsgIC8gLiAgUHJpbWlldGl0ZSBkYSBzZSB6bmFrIHBvamF2aW8KKyAgICAgemFqZWRubyBzYSBrdXJzb3JvbSBuYSBkbnUgZWtyYW5hIGthbyBpIGtvZCBrb21hbmRlICA6IC4KKworICAyLiBTYWRhIG90a3VjYWp0ZSAnZ3JycmWaa2EnIDxFTlRFUj4uICAoQmV6IHJhem1ha2EgaSBuYXZvZG5pa2EuKQorICAgICBUbyBqZSByZegga29qdSB0cmGeaXRlLgorCisgIDMuIFphIHBvbm92bm8gdHJhnmVuamUgaXN0b2cgaXpyYXphLCBvdGt1Y2FqdGUgIG4gLgorICAgICBaYSB0cmGeZW5qZSBpc3RvZyBpenJhemEgdSBzdXByb3Rub20gc21lcnUsIG90a3VjYWp0ZSAgTiAuCisKKyAgNC4gWmEgdHJhnmVuamUgaXpyYXphIHVuYXRyYWcsIGtvcmlzdGl0ZSAgPyAgdW1lc3RvICAvIC4KKworICA1LiBaYSBwb3ZyYXRhayBuYSBwcmV0aG9kbnUgcG96aWNpanUgb3RrdWNhanRlIENUUkwtTyAoZHKeaXRlIENUUkwgZG9rCisgICAgIHByaXRpc2thdGUgTyApLiAgUG9uYXZsamFqdGUgemEgcmFuaWplIHBvemljaWplLiAgQ1RSTC1JIGlkZSBuYXByZWQuCisKKy0tLT4gImdycnJlmmthIiBqZSBwb2dyZZpubzsgdW1lc3RvIGdycnJlmmthIHRyZWJhIGRhIHN0b2ppIGdyZZprYS4KKworTkFQT01FTkE6ICBBa28gcHJldHJhZ2EgZG/wZSBkbyBrcmFqYSB0ZWtzdGEgdHJhnmVuamUg5mUgc2UgbmFzdGF2aXRpIG9kCisJICAgbmplZ292b2cgcG/oZXRrYSBvc2ltIGFrbyBqZSBvcGNpamEgJ3dyYXBzY2FuJyBpc2tsanXoZW5hLgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgTGVrY2lqYSA0LjM6IFRSQY5FTkpFIFBBUkEgWkFHUkFERQorCisKKwkqKiBPdGt1Y2FqdGUgICUgIHphIG5hbGGeZW5qZSBwYXJhICksIF0gaWxpIH0gLiAqKgorCisgIDEuIFBvc3Rhdml0ZSBrdXJzb3IgbmEgYmlsbyBrb2p1IG9kICAoICwgIFsgIGlsaSAgeworICAgICBvdHZvcmVuaWggemFncmFkYSB1IHJlZHUgb3puYehlbm9tIHNhIC0tLT4uCisKKyAgMi4gT3RrdWNhanRlIHpuYWsgICUgLgorCisgIDMuIEt1cnNvciDmZSBzZSBwb21lcml0aSBuYSBvZGdvdmFyYWp15nUgemF0dm9yZW51IHphZ3JhZHUuCisKKyAgNC4gT3RrdWNhanRlICAlICBkYSBwb21lcml0ZSBrdXJzb3IgbmEgcHJ2dSB6YWdyYWR1IHUgcGFydS4KKworICAgICAgNS4gUG9tZXJpdGUga3Vyc29yIG5hIG5la3Ugb2QgKCwpLFssXSx7IGlsaSB9IGkgcG9ub3ZpdGUga29tYW5kdSAgJSAuCisKKy0tLT4gUmVkICggdGVzdGlyYW5qYSBvYmnobmloICggWyB1Z2xhc3RpaCBdIGkgeyB2aXRp6GFzdGloIH0gemFncmFkYS4pKQorCisKK05BUE9NRU5BOiAgVnJsbyBrb3Jpc25vIHUgaXNwcmF2bGphbmp1IGtvZGEgc2EgcmFzcGFyZW5pbSB6YWdyYWRhbWEhCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgIExla2NpamEgNC40OiBLT01BTkRBIFpBTUVORQorCisKKyAgICAgICAqKiBPdGt1Y2FqdGUgIDpzL3N0YXJvL25vdm8vZyAgZGEgemFtZW5pdGUgJ3N0YXJvJyB6YSAnbm92bycuICoqCisKKyAgMS4gUG9tZXJpdGUga3Vyc29yIG5hIHJlZCBvem5h6GVuIHNhIC0tLT4uCisKKyAgMi4gT3RrdWNhanRlICA6cy9yZGkvcmkvIDxFTlRFUj4gLiAgUHJpbWV0aXRlIGRhIG92YSBrb21hbmRhIHphbWVuanVqZQorICAgICBzYW1vIHBydm8gInJkaSIgdSByZWR1LgorCisgIDMuIE90a3VjYWp0ZSAgOnMvcmRpL3JpL2cgLiAgRG9kYXZhbmplIG9wY2lqZSAgZyAgem5h6GkgZGEg5mUgc2Uga29tYW5kYQorICAgICBpenZymml0aSB1IGNlbG9tIHJlZHUsIHphbWVub20gc3ZpaCBwb2phdmEgbml6YSAicmRpIi4KKworLS0tPiByZGliYSByZGliaSBncmRpemUgcmVwLgorCisgIDQuIFphIHphbWVudSBzdmloIGl6cmF6YSBpem1l8HUgbmVrYSBkdmEgcmVkYSwKKyAgICAgb3RrdWNhanRlIDojLCNzL3N0YXJvL25vdm8vZyAgIGdkZSBzdSAjLCMga3Jham5qaSBicm9qZXZpIHJlZG92YSB1IG9wc2VndSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUga29tZSDmZSBzZSBvYmF2aXRpIHphbWVuYS4KKyAgICAgT3RrdWNhanRlIDolcy9zdGFyby9ub3ZvL2cgICAgIHphIHphbWVudSBzdmloIGl6cmF6YSB1IGNlbG9tIHRla3N0dS4KKyAgICAgT3RrdWNhanRlIDolcy9zdGFyby9ub3ZvL2djICAgIHphIG5hbGGeZW5qZSBzdmloIGl6cmF6YSB1IHRla3N0dSBpCisgICAgIAkJCSAgICAgICAgICAgIHBvdHZyZHUgemFtZW5lLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSAgICAgIFJFWklNRSBsZWtjaWplIDQKKworCisgIDEuIENUUkwtRyAgcHJpa2F6dWplIHBvemljaWp1IGt1cnNvcmEgdSB0ZWtzdHUgaSBzdGF0dXMgZmFqbGEuCisgICAgICAgICAgICAgRyAgcG9tZXJhIGt1cnNvciBuYSBrcmFqIHRla3N0YS4KKyAgICAgYnJvaiAgICBHICBwb21lcmEga3Vyc29yIG5hIG5hdmVkZW5pIHJlZC4KKyAgICAgICAgICAgIGdnICBwb21lcmEga3Vyc29yIG5hIHBydmkgcmVkIHRla3N0YS4KKworICAyLiBLdWNhbmplbSAgLyAgc2EgaXpyYXpvbSB0YWogaXpyYXogc2UgdHJhnmkgVU5BUFJFRC4KKyAgICAgS3VjYW5qZW0gID8gIHNhIGl6cmF6b20gdGFqIGl6cmF6IHNlIHRyYZ5pIFVOQVpBRC4KKyAgICAgUG9zbGUga29tYW5kZSB0cmGeZW5qYSBrb3Jpc3RpdGUgIG4gIHphIG5hbGGeZW5qZSBpenJhemEgdSBpc3RvbQorICAgICBzbWVydSwgYSAgTiAgemEgbmFsYZ5lbmplIHUgc3Vwcm90bm9tIHNtZXJ1LgorICAgICBDVFJMLU8gdnJh5mEga3Vyc29yIG5hIHByZXRob2RudSBwb3ppY2lqdSwgYSBDVFJMLUkgbmEgbmFyZWRudS4KKworICAzLiBLdWNhbmplbSAgJSAga2FkIGplIGt1cnNvciBuYSB6YWdyYWRpIG9uIHNlIHBvbWVyYSBuYSBuamVuIHBhci4KKworICA0LiBaYSB6YW1lbnUgcHJ2b2cgaXpyYXphIHN0YXJvIHphIGl6cmF6IG5vdm8gICAgICAgICAgICA6cy9zdGFyby9ub3ZvLworICAgICBaYSB6YW1lbnUgc3ZpaCBpenJhemEgdSBjZWxvbSByZWR1ICAgICAgICAgICAgICAgICAgICA6cy9zdGFyby9ub3ZvL2cKKyAgICAgWmEgemFtZW51IHN2aWggaXpyYXphIHUgb3BzZWd1IGxpbmlqYSAjLCMgICAgICAgICAgICAgOiMsI3Mvc3Rhcm8vbm92by9nCisgICAgIFphIHphbWVudSB1IGNlbG9tIHRla3N0dSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDolcy9zdGFyby9ub3ZvL2cKKyAgICAgWmEgcG90dnJkdSBzdmFrZSB6YW1lbmUgZG9kYWp0ZSAnYycJCSAgIDolcy9zdGFyby9ub3ZvL2djCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQlMZWtjaWphIDUuMTogSVpWUopBVkFOSkUgU1BPTEpBik5KSUggS09NQU5ESQorCisKKyAgKiogT3RrdWNhanRlICA6ISAgcGEgc3BvbGphmm5qdSBrb21hbmR1IGtvanUgnmVsaXRlIGRhIGl6dnKaaXRlLiAqKgorCisgIDEuIE90a3VjYWp0ZSBwb3puYXR1IGtvbWFuZHUgIDogIGRhIGJpc3RlIG5hbWVzdGlsaSBrdXJzb3IgbmEgZG5vCisgICAgIGVrcmFuYS4gIFRpbWUgb21vZ3XmYXZhdGUgdW5vcyBrb21hbmRlIHUga29tYW5kbm9qIGxpbmlqaSBlZGl0b3JhLgorCisgIDIuIE90a3VjYWp0ZSB6bmFrICAhICAodXp2aehuaWspLiAgT3ZpbWUgb21vZ3XmYXZhdGUKKyAgICAgaXp2cpphdmFuamUgYmlsbyBrb2plIHNwb2xqYZpuamUga29tYW5kZS4KKworICAzLiBLYW8gcHJpbWVyIG90a3VjYWp0ZSAgIGxzICAgcG9zbGUgISBpIHByaXRpc25pdGUgPEVOVEVSPi4gIE92byDmZQorICAgICBwcmlrYXphdGkgc2Fkcp5haiBkaXJla3RvcmlqdW1hLCBrYW8gZGEgc3RlIG5hIGtvbWFuZG5vbSBwcm9tcHR1LgorICAgICBPdGt1Y2FqdGUgICA6IWRpciAgIGFrbyAgIDohbHMgICBuZSByYWRpLgorCitOQVBPTUVOQTogIE5hIG92YWogbmHoaW4gbW9ndeZlIGplIGl6dnKaaXRpIGJpbG8ga29qdSBzcG9samGabmp1IGtvbWFuZHUsCisgICAgICAgICAgIHphamVkbm8gc2EgbmplbmltIGFyZ3VtZW50aW1hLgorCitOQVBPTUVOQTogIFN2ZSAgOiAga29tYW5kZSBzZSBpenZymmF2YWp1IHBvmnRvIHByaXRpc25ldGUgPEVOVEVSPiAuCisJICAgVSBkYWxqZW0gdGVrc3R1IHRvIG5l5mVtbyB1dmVrIG5hcG9taW5qYXRpLgorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICBMZWtjaWphIDUuMjogVkmKRSBPIFNOSU1BTkpVIEZBSkxPVkEKKworICAgICAgICAgICAqKiBaYSBzbmltYW5qZSBwcm9tZW5hLCBvdGt1Y2FqdGUgIDp3IElNRV9GQUpMQSAuICoqCisKKyAgMS4gT3RrdWNhanRlICA6IWRpciAgaWxpICA6IWxzICB6YSBwcmVnbGVkIHNhZHKeYWphIGRpcmVrdG9yaWp1bWEuCisgICAgIFZl5iB6bmF0ZSBkYSBtb3JhdGUgcHJpdGlzbnV0aSA8RU5URVI+IHBvc2xlIHRvZ2EuCisKKyAgMi4gSXphYmVyaXRlIGltZSBmYWpsYSBrb2ppIGpvmiBuZSBwb3N0b2ppLCBucHIuIFRFU1QuCisKKyAgMy4gT3RrdWNhanRlOgkgOncgVEVTVCAgIChnZGUgamUgVEVTVCBpbWUga29qZSBzdGUgaXphYnJhbGkuKQorCisgIDQuIFRpbWUg5mV0ZSBzbmltaXRpIGNlbyBmYWpsIChWaW0gVHV0b3IpIHBvZCBpbWVub20gVEVTVC4KKyAgICAgWmEgcHJvdmVydSwgb3RrdWNhanRlIG9wZXQgIDohZGlyICBpbGkgIDohbHMgemEgcHJlZ2xlZAorICAgICBzYWRynmFqYSBkaXJla3RvcmlqdW1hLgorCitOQVBPTUVOQTogIEFrbyBiaXN0ZSBuYXB1c3RpbGkgVmltIGkgcG9ub3ZvIGdhIHBva3JlbnVsaSBzYSB2aW0gVEVTVCAsCisgICAgICAgICAgIHRla3N0IGJpIGJpbyB0YehuYSBrb3BpamEgb3ZvZyBmYWpsYSB1IHRyZW51dGt1IGthZCBzdGUKKwkgICBnYSBzbmltaWxpLgorCisgIDUuIEl6YnJpmml0ZSBmYWpsIHRha28gmnRvIOZldGUgb3RrdWNhdGkgKE1TLURPUyk6CTohZGVsIFRFU1QKKwkJCQkgICAgICAgICBpbGkgKFVuaXgpOgk6IXJtIFRFU1QKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgTGVrY2lqYSA1LjM6IFNOSU1BTkpFIE9aTkHIRU5PRyBURUtTVEEKKworCisgICAqKiBEYSBiaXN0ZSBzbmltaWxpIGRlbyB0ZWtzdGEsIG90a3VjYWp0ZSAgdiAgcG9rcmV0ICA6dyBJTUVfRkFKTEEgKioKKworICAxLiBQb21lcml0ZSBrdXJzb3IgbmEgb3Z1IGxpbmlqdS4KKworICAyLiBQcml0aXNuaXRlICB2ICBpIHBvbWVyaXRlIGt1cnNvciBwZXQgcmVkb3ZhIGlzcG9kLiAgUHJpbWV0aXRlIGRhIGplCisgICAgIHRla3N0IG96bmHoZW4gaW52ZXJ6bm8uCisKKyAgMy4gUHJpdGlzbml0ZSAgOiAuICBOYSBkbnUgZWtyYW5hIHBvamF2aeZlIHNlICA6JzwsJz4gLgorCisgIDQuIE90a3VjYWp0ZSAgdyBURVNUICAsIGdkZSBqZSBURVNUIGltZSBmYWpsYSBrb2ppIGpvmiBuZSBwb3N0b2ppLgorICAgICBQcm92ZXJpdGUgZGEgemFpc3RhIHBpmmUgIDonPCwnPncgVEVTVCAgcHJlIG5lZ28gmnRvIHByaXRpc25ldGUgPEVOVEVSPi4KKworICA1LiBWaW0g5mUgc25pbWl0aSBvem5h6GVuaSB0ZWtzdCB1IFRFU1QuICBQcm92ZXJpdGUgc2EgIDohZGlyICBpbGkgICFscyAuCisgICAgIE5lbW9qdGUgam+aIGJyaXNhdGkgZmFqbCEgIEtvcmlzdGnmZW1vIGdhIHUgbmFyZWRub2ogbGVrY2lqaS4KKworTkFQT01FTkE6ICBLb21hbmRhICB2ICB6YXBv6GluamUgdml6dWVsbm8gb3puYehhdmFuamUuICBNb55ldGUgcG9tZXJhdGkga3Vyc29yCisgICAgICAgICAgIGkgdGFrbyBtZW5qYXRpIHZlbGnoaW51IG96bmHoZW5vZyB0ZWtzdGEuICBPbmRhIG1vnmV0ZSB1cG90cmViaXRpCisgICAgICAgICAgIG9wZXJhdG9yZSBuYWQgdGVrc3RvbS4gIE5hIHByaW1lciwgIGQgIOZlIGl6YnJpc2F0aSBvem5h6GVuaSB0ZWtzdC4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgIExla2NpamEgNS40OiBVyElUQVZBTkpFIEZBSkxBIFUgVEVLU1QKKworCisgICAgICAgKiogWmEgdWJhY2l2YW5qZSBzYWRynmFqYSBmYWpsYSwgb3RrdWNhanRlICA6ciBJTUVfRkFKTEEgICoqCisKKyAgMS4gUG9zdGF2aXRlIGt1cnNvciBpem5hZCBvdmUgbGluaWplLgorCitOQVBPTUVOQTogIFBvmnRvIGl6dnKaaXRlIDIuIGtvcmFrIHZpZGXmZXRlIHRla3N0IGl6IGxla2NpamUgNS4zLiAgVGFkYQorICAgICAgICAgICBwb21lcml0ZSBrdXJzb3IgRE9MRSBkYSBiaXN0ZSBwb25vdm8gdmlkZWxpIG92dSBsZWtjaWp1LgorCisgIDIuIFXoaXRhanRlIGZhamwgVEVTVCBrb3Jpc3Rl5mkga29tYW5kdSAgOnIgVEVTVCAgZ2RlIGplIFRFU1QgaW1lIGZhamxhCisgICAgIGtvamUgc3RlIGtvcmlzdGlsaSB1IHByZXRob2Rub2ogbGVrY2lqaS4gIFNhZHKeYWogdehpdGFub2cgZmFqbGEgamUKKyAgICAgdWJh6GVuIGlzcG9kIGt1cnNvcmEuCisKKyAgMy4gRGEgYmlzdGUgcHJvdmVyaWxpIGRhIGplIGZhamwgdehpdGFuLCB2cmF0aXRlIGt1cnNvciB1bmF6YWQgaQorICAgICBwcmltZXRpdGUgZHZlIGtvcGlqZSBsZWtjaWplIDUuMywgb3JpZ2luYWxudSBpIG9udSBpeiBmYWpsYS4KKworTkFQT01FTkE6ICBUYWtv8GUgbW+eZXRlIHXoaXRhdGkgaXpsYXogc3BvbGphmm5qZSBrb21hbmRlLiAgTmEgcHJpbWVyLAorCSAgIDpyICFscyAg5mUgdehpdGF0aSBpemxheiBrb21hbmRlICBscyAgaSBwb3N0YXZpdGkgZ2EgaXNwb2QKKyAgICAgICAgICAga3Vyc29yYS4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSAgICAgIFJFWklNRSBsZWtjaWplIDUKKworCisgIDEuICA6IWtvbWFuZGEgIGl6dnKaYXZhIHNwb2xqYZpuanUga29tYW5kdS4KKworICAgICAgS29yaXNuaSBwcmltZXJpOgorCSAoTVMtRE9TKQkgIChVbml4KQorCSAgOiFkaXIJCSAgIDohbHMJCSAgIC0gIHByZWdsZWQgc2Fkcp5hamEgZGlyZWt0b3JpanVtYS4KKwkgIDohZGVsIEZBSkwgICAgICAgOiFybSBGQUpMICAgICAgIC0gIGJyaZplIGZhamwgRkFKTC4KKworICAyLiAgOncgRkFKTCAgemFwaXN1amUgdHJlbnV0bmkgdGVrc3QgbmEgZGlzayBwb2QgaW1lbm9tIEZBSkwuCisKKyAgMy4gIHYgIHBva3JldCAgOncgSU1FX0ZBSkxBICBzbmltYSB2aXp1ZWxubyBvem5h6GVuZSByZWRvdmUgdSBmYWpsCisgICAgICBJTUVfRkFKTEEuCisKKyAgNC4gIDpyIElNRV9GQUpMQSAgdehpdGF2YSBmYWpsIElNRV9GQUpMQSBzYSBkaXNrYSBpIHN0YXZsamEKKyAgICAgIG5qZWdvdiBzYWRynmFqIGlzcG9kIGt1cnNvcmEuCisKKyAgNS4gIDpyICFkaXIgIHXoaXRhdmEgaXpsYXoga29tYW5kZSBkaXIgaSBwb3N0YXZsamEgZ2EgaXNwb2Qga3Vyc29yYS4KKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJIExla2NpamEgNi4xOiBLT01BTkRBIE9UVk9SSQorCisKKwkqKiBQcml0aXNuaXRlICBvICBkYSBiaXN0ZSBvdHZvcmlsaSByZWQgaXNwb2Qga3Vyc29yYQorCSAgIGkgcHJlmmxpIHUgSW5zZXJ0IG1vZC4gKioKKworICAxLiBQb21lcml0ZSBrdXJzb3IgbmEgc2xlZGXmaSByZWQgb3puYehlbiBzYSAtLS0+LgorCisgIDIuIE90a3VjYWp0ZSBtYWxvICBvICBkYSBiaXN0ZSBvdHZvcmlsaSBub3ZpIHJlZCBJU1BPRCBrdXJzb3JhCisgICAgIGkgcHJlmmxpIHUgSW5zZXJ0IG1vZC4KKworICAzLiBPdGt1Y2FqdGUgbmVraSB0ZWtzdCBpIG9uZGEgcHJpdGlzbml0ZSA8RVNDPiBkYSBiaXN0ZSBpemGabGkKKyAgICAgaXogSW5zZXJ0IG1vZGEuCisKKy0tLT4gS2FkIHByaXRpc25ldGUgIG8gIGt1cnNvciBwcmVsYXppIHUgbm92b290dm9yZW5pIHJlZCB1IEluc2VydCBtb2R1LgorCisgIDQuIFphIG90dmFyYW5qZSByZWRhIElaTkFEIGt1cnNvcmEsIHVtZXN0byBtYWxvZyBvdGt1Y2FqdGUgdmVsaWtvIE8gLgorICAgICBJc3Byb2JhanRlIG5hIGRvbmplbSByZWR1IG96bmHoZW5vbSBzYSAtLS0+LgorCistLS0+IE90dm9yaXRlIHJlZCBpem5hZCBvdm9nIGt1Y2FuamVtIHZlbGlrb2cgIE8gIGRvayBqZSBrdXJzb3IgdSBvdm9tIHJlZHUuCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQlMZWtjaWphIDYuMjogS09NQU5EQSBET0RBSgorCisKKwkgICAgICoqIE90a3VjYWp0ZSAgYSAgemEgZG9kYXZhbmplIHRla3N0YSBJWkEga3Vyc29yYS4gKioKKworICAxLiBQb21lcml0ZSBrdXJzb3IgbmEgcG/oZXRhayBzbGVkZeZlZyByZWRhIG96bmHoZW5vZyBzYSAtLS0+LgorICAKKyAgMi4gS3VjYWp0ZSAgZSAgZG9rIGt1cnNvciBuZSBkb/BlIG5hIGtyYWogcmXoaSAgcmUgLgorCisgIDMuIE90a3VjYWp0ZSAgYSAgKG1hbG8pIGRhIGJpc3RlIGRvZGFsaSB0ZWtzdCBJWkEga3Vyc29yYS4KKworICA0LiBEb3B1bml0ZSByZegga2FvIJp0byBqZSB1IHJlZHUgaXNwb2QuICBQcml0aXNuaXRlIDxFU0M+IHphIGl6bGF6YWsKKyAgICAgaXogSW5zZXJ0IG1vZGEuCisKKyAgNS4gU2EgIGUgIHByZfBpdGUgbmEgbmFyZWRudSBuZXBvdHB1bnUgcmXoIGkgcG9ub3ZpdGUga29yYWtlIDMgaSA0LgorICAKKy0tLT4gT3ZhaiByZSBvbW9ndeZhdmEgdmUgZG9kYXYgdGVrc3RhIHUgbmVrb20gcmVkdS4KKy0tLT4gT3ZhaiByZWQgb21vZ3XmYXZhIHZlnmJhbmplIGRvZGF2YW5qYSB0ZWtzdGEgdSBuZWtvbSByZWR1LgorCitOQVBPTUVOQTogIEtvbWFuZGUgYSwgaSwgaSAgQSAgYWt0aXZpcmFqdSBpc3RpIEluc2VydCBtb2QsIGplZGluYQorICAgICAgICAgICByYXpsaWthIGplIHUgcG96aWNpamkgb2Qga29qZSDmZSBzZSB0ZWtzdCB1YmFjaXZhdGkuCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgTGVrY2lqYSA2LjM6IERSVUdJIE5ByElOIFpBTUVORQorCisKKyAgICAgICoqIE90a3VjYWp0ZSB2ZWxpa28gIFIgIGRhIGJpc3RlIHphbWVuaWxpIHZpmmUgb2QgamVkbm9nIHpuYWthLiAqKgorCisgIDEuIFBvbWVyaXRlIGt1cnNvciBuYSBwcnZpIHNsZWRl5mkgcmVkIG96bmHoZW4gc2EgLS0tPi4KKyAgICAgUG9tZXJpdGUga3Vyc29yIG5hIHBv6GV0YWsgcHJ2b2cgIHh4eCAuCisKKyAgMi4gUHJpdGlzbml0ZSAgUiAgaSBvdGt1Y2FqdGUgYnJvaiBrb2ppIGplIHJlZCBpc3BvZCwKKyAgICAgdGFrbyBkYSB6YW1lbmkgeHh4IC4KKworICAzLiBQcml0aXNuaXRlIDxFU0M+IHphIGl6bGF6YWsgaXogUmVwbGFjZSBtb2RhLgorICAgICBQcmltZXRpdGUgZGEgamUgb3N0YXRhayByZWRhIG9zdGFvIG5lcHJvbWVuamVuLgorCisgIDQuIFBvbm92aXRlIGtvcmFrZSBkYSBiaXN0ZSB6YW1lbmlsaSBkcnVnbyB4eHguCisKKy0tLT4gRG9kYXZhbmplIDEyMyBuYSB4eHggZGFqZSB4eHguCistLS0+IERvZGF2YW5qZSAxMjMgbmEgNDU2IGRhamUgNTc5LgorCitOQVBPTUVOQTogIFJlcGxhY2UgbW9kIGplIGthbyBJbnNlcnQgbW9kLCBzIHRvbSByYXpsaWtvbSCadG8gc3Zha2kKKyAgICAgICAgICAgdW5ldGkgem5hayBicmmaZSB2ZeYgcG9zdG9qZeZpLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJTGVrY2lqYSA2LjQ6IEtPUElSQU5KRSBJIExFUExKRU5KRSBURUtTVEEKKworCisgICAgKiogS29yaXN0aXRlIG9wZXJhdG9yICB5ICB6YSBrb3BpcmFuamUgYSAgcCAgemEgbGVwbGplbmplIHRla3N0YS4gKioKKworICAxLiBQb21lcml0ZSBrdXJzb3IgbmEgcmVkIHNhIC0tLT4gIGkgcG9zdGF2aXRlIGt1cnNvciBwb3NsZSAiYSkiLgorICAKKyAgMi4gQWt0aXZpcmFqdGUgVmlzdWFsIG1vZCBzYSAgdiAgaSBwb21lcml0ZSBrdXJzb3Igc3ZlIGRvIGlzcHJlZCAicHJ2aSIuCisgIAorICAzLiBQcml0aXNuaXRlICB5ICBkYSBiaXN0ZSBrb3BpcmFsaSBvem5h6GVuaSB0ZWtzdCB1IGludGVybmkgYmFmZXIuCisKKyAgNC4gUG9tZXJpdGUga3Vyc29yIGRvIGtyYWphIHNsZWRl5mVnIHJlZGE6ICBqJAorCisgIDUuIFByaXRpc25pdGUgIHAgIGRhIGJpc3RlIHphbGVwaWxpIHRla3N0LiAgT25kYSBvdGt1Y2FqdGU6ICBhIGRydWdpIDxFU0M+IC4KKworICA2LiBVcG90cmViaXRlIFZpc3VhbCBtb2QgZGEgb3puYehpdGUgIiByZWQuIiwga29waXJhanRlIHNhICB5ICwga3Vyc29yCisgICAgIHBvbWVyaXRlIG5hIGtyYWogc2xlZGXmZWcgcmVkYSBzYSAgaiQgIGkgdGFtbyB6YWxlcGl0ZSB0ZWtzdCBzYSAgcCAuCisKKy0tLT4gIGEpIG92byBqZSBwcnZpIHJlZC4KKyAgICAgIGIpCisKK05BUE9NRU5BOiAgdGFrb/BlIG1vnmV0ZSBrb3Jpc3RpdGkgIHkgIGthbyBvcGVyYXRvcjsgIHl3ICBrb3BpcmEgamVkbnUgcmXoLgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICBMZWtjaWphIDYuNTogUE9TVEFWTEpBTkpFIE9QQ0lKQQorCisKKyAqKiBQb3N0YXZpdGUgb3BjaWp1IHRha28gZGEgdHJhnmVuamUgaSB6YW1lbmEgaWdub3JpmnUgdmVsaehpbnUgc2xvdmEgKioKKworICAxLiBQb3RyYZ5pdGUgcmXoICdyYXpsaWthJzogIC9yYXpsaWthIDxFTlRFUj4KKyAgICAgUG9ub3ZpdGUgbmVrb2xpa28gcHV0YSBwcml0aXNrb20gbmEgIG4gLgorCisgIDIuIEFrdGl2aXJhanRlIG9wY2lqdSAnaWMnIChJZ25vcmUgY2FzZSk6ICA6c2V0IGljCisKKyAgMy4gUG9ub3ZvIHBvdHJhnml0ZSByZeggJ3Jhemxpa2EnIHByaXRpc2tvbSBuYSAgbgorICAgICBQcmltZXRpdGUgZGEgc3Ugc2FkYSBwcm9uYfBlbmkgaSBSQVpMSUtBIGkgUmF6bGlrYS4KKworICA0LiBBa3RpdmlyYWp0ZSBvcGNpamUgJ2hsc2VhcmNoJyBpICdpbmNzZWFyY2gnOiAgOnNldCBobHMgaXMKKworICA1LiBQb25vdm8gb3RrdWNhanRlIGtvbWFuZHUgdHJhnmVuamEgaSB1b+hpdGUgcmF6bGlrZTogIC9yYXpsaWthIDxFTlRFUj4KKworICA2LiBaYSBkZWFrdGl2aXJhbmplIG9wY2lqZSAgaWMgIGt1Y2FqdGU6ICA6c2V0IG5vaWMKKworTkFQT01FTkE6ICBaYSBuZW96bmHoYXZhbmplIHByb25h8GVuaWggaXpyYXphIG90a3VjYWp0ZTogIDpub2hsc2VhcmNoCitOQVBPTUVOQTogIEFrbyCeZWxpdGUgZGEgbmUgcmF6bGlrdWpldGUgdmVsaehpbnUgc2xvdmEgdSBzYW1vIGplZG5vaiBrb21hbmRpCisJICAgdHJhnmVuamEsIGRvZGFqdGUgIFxjICB1IGl6cmF6OiAgL3Jhemxpa2FcYyA8RU5URVI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSAgICAgIFJFWklNRSBsZWtjaWplIDYKKworICAxLiBQcml0aXNuaXRlICBvICB6YSBvdHZhcmFuamUgcmVkYSBJU1BPRCBrdXJzb3JhIGkgcHJlbGF6YWsgdSBJbnNlcnQgbW9kLgorICAgICBQcml0aXNuaXRlICBPICB6YSBvdHZhcmFuamUgcmVkYSBJWk5BRCBrdXJzb3JhLgorCisgIDIuIFByaXRpc25pdGUgIGEgIHphIHVub3MgdGVrc3RhIElaQSBrdXJzb3JhLgorICAgICBQcml0aXNuaXRlICBBICB6YSB1bm9zIHRla3N0YSBuYSBrcmFqdSByZWRhLgorCisgIDMuIEtvbWFuZGEgIGUgIHBvbWVyYSBrdXJzb3IgbmEga3JhaiByZehpLgorCisgIDQuIE9wZXJhdG9yICB5ICBrb3BpcmEgdGVrc3QsICBwICBnYSBsZXBpLgorCisgIDUuIEt1Y2FuamUgdmVsaWtvZyAgUiAgYWt0aXZpcmEgUmVwbGFjZSBtb2QgZG9rIG5lIHByaXRpc25ldGUgPEVTQz4gLgorCisgIDYuIEt1Y2FuamUgIjpzZXQgeHh4IiBha3RpdmlyYSBvcGNpanUgInh4eCIuICBOZWtlIG9wY2lqZSBzdToKKyAgCSdpYycgJ2lnbm9yZWNhc2UnCW5lIHJhemxpa3VqZSB2ZWxpa2EvbWFsYSBzbG92YSBwcmkgdHJhnmVuanUKKwknaXMnICdpbmNzZWFyY2gnCXByaWthenVqZSBwcm9uYfBlbiB0ZWtzdCBkb2sga3VjYXRlIGl6cmF6CisJJ2hscycgJ2hsc2VhcmNoJwlvem5h6GF2YSBpbnZlcnpubyBzdmUgcHJvbmHwZW5lIGl6cmF6ZQorICAgICBNb55ldGUga29yaXN0aXRlIGR1Z28gaWxpIGtyYXRrbyBpbWUgb3BjaWplLgorCisgIDcuIElzcHJlZCBpbWVuYSBvcGNpamUgc3Rhdml0ZSAibm8iIGRhIGplIGRlYWt0aXZpcmF0ZTogIDpzZXQgbm9pYworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgICAgIExla2NpamEgNy4xOiBET0JJSkFOSkUgUE9NT8ZJCisKKworCQkgICAqKiBLb3Jpc3RpdGUgb24tbGluZSBzaXN0ZW0gemEgcG9tb+YgKioKKworICBWaW0gaW1hIGRldGFsamFuIG9uLWxpbmUgc2lzdGVtIHphIHBvbW/mLiAgWmEgcG/oZXRhaywgcG9rdZphanRlIG5lmnRvCisgIG9kIHNsZWRl5mVnOgorCS0gcHJpdGlzbml0ZSB0YXN0ZXIgPEhFTFA+IChha28gZ2EgaW1hdGUgbmEgdGFzdGF0dXJpKQorCS0gcHJpdGlzbml0ZSB0YXN0ZXIgPEYxPiAoYWtvIGdhIGltYXRlIG5hIHRhc3RhdHVyaSkKKwktIG90a3VjYWp0ZSAgOmhlbHAgPEVOVEVSPgorCisgIFByb+hpdGFqdGUgdGVrc3QgdSBwcm96b3J1IHBvbW/maSBkYSBiaXN0ZSBuYXXoaWxpIHBvbW/mIHJhZGkuCisgIEt1Y2FuamVtICBDVFJMLVcgQ1RSTC1XICBwcmVsYXppdGUgaXogamVkbm9nIHByb3pvcmEgdSBkcnVnaS4KKyAgT3RrdWNhanRlICA6cSA8RU5URVI+ICBkYSB6YXR2b3JpdGUgcHJvem9yIHBvbW/maS4KKworICBQb21v5iBvIHByYWt0aehubyBiaWxvIGtvam9qIHRlbWkgbW+eZXRlIGRvYml0aSBkb2RhdmFuamVtIGFyZ3VtZW50YQorICBrb21hbmRpICI6aGVscCIuICBQb2t1mmFqdGUgb3ZvIChuZSB6YWJvcmF2aXRlIDxFTlRFUj4gbmEga3JhanUpOgorCisJOmhlbHAgdworCTpoZWxwIGNfQ1RSTC1ECisJOmhlbHAgaW5zZXJ0LWluZGV4CisJOmhlbHAgdXNlci1tYW51YWwKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQlMZWtjaWphIDcuMjogUFJBVkxKRU5KRSBTVEFSVE5PRyBTS1JJUFRBCisKKworCQkgICAqKiBBa3RpdmlyYWp0ZSBtb2d15m5vc3RpIGVkaXRvcmEgKioKKworICBWaW0gaW1hIG1ub2dvIHZpmmUgbW9ndeZub3N0aSBuZWdvIFZpLCBhbGkgdmXmaW5hIG5pamUgYXV0b21hdHNraQorICBha3RpdmlyYW5hLiAgWmEgZG9kYXRuZSBtb2d15m5vc3RpIG5hcHJhdml0ZSAidmltcmMiIGZhamwuCisKKyAgMS4gT3R2b3JpdGUgInZpbXJjIiBmYWpsLiAgT3ZvIHphdmlzaSBvZCB2YZplZyBzaXN0ZW1hOgorCTplIH4vLnZpbXJjCQl6YSBVbml4CisJOmUgJFZJTS9fdmltcmMJCXphIE1TLVdpbmRvd3MKKworICAyLiBPbmRhIHXoaXRhanRlIHByaW1lciBzYWRynmFqYSAidmltcmMiIGZhamxhOgorCTpyICRWSU1SVU5USU1FL3ZpbXJjX2V4YW1wbGUudmltCisKKyAgMy4gU25pbWl0ZSBmYWpsIHNhOgorCTp3CisKKyAgU2xlZGXmaSBwdXQga2FkYSBwb2tyZW5ldGUgVmltLCBib2plbmplIHNpbnRha3NlIHRla3N0YSBiaeZlCisgIGFrdGl2aXJhbm8uIFN2YSBzdm9qYSBwb2RlmmF2YW5qYSBtb55ldGUgZG9kYXRpIHUgInZpbXJjIiBmYWpsLgorICBaYSB2aZplIGluZm9ybWFjaWphIG90a3VjYWp0ZSAgOmhlbHAgdmltcmMtaW50cm8KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgTGVrY2lqYSA3LjM6IEFVVE9NQVRTS08gRE9WUopBVkFOSkUKKworCisJKiogRG92cpphdmFuamUga29tYW5kbmUgbGluaWplIHNhIENUUkwtRCBpIDxUQUI+ICoqCisKKyAgMS4gUG9kZXNpdGUgVmltIGRhIG5lIGJ1ZGUgdSBWaS1rb21wYXRpYmlsbm9tIG1vZHU6ICA6c2V0IG5vY3AKKworICAyLiBQb2dsZWRhanRlIGtvamkgZmFqbG92aSBwb3N0b2plIHUgZGlyZWt0b3JpanVtdTogIDohbHMgIGlsaSAgOiFkaXIKKworICAzLiBPdGt1Y2FqdGUgcG/oZXRhayBrb21hbmRlOiAgOmUKKworICA0LiBPdGt1Y2FqdGUgIENUUkwtRCAgaSBWaW0g5mUgcHJpa2F6YXRpIHNwaXNhayBrb21hbmRpIGtvamUgcG/oaW5qdSBzYSAiZSIuCisKKyAgNS4gUHJpdGlzbml0ZSA8VEFCPiAgaSBWaW0g5mUgZG9wdW5pdGkgaW1lIGtvbWFuZGUgdSAiOmVkaXQiLgorCisgIDYuIERvZGFqdGUgcmF6bWFrIGkgcG/oZXRhayBpbWVuYSBwb3N0b2pl5mVnIGZhamxhOiAgOmVkaXQgRkEKKworICA3LiBQcml0aXNuaXRlIDxUQUI+LiAgVmltIOZlIGRvcHVuaXRpIGltZSBmYWpsYSAoYWtvIGplIGplZGluc3R2ZW5vKS4KKworTkFQT01FTkE6ICBNb2d15mUgamUgZG9wdW5pdGkgbW5vZ2Uga29tYW5kZS4gIFNhbW8gcHJvYmFqdGUgQ1RSTC1EIGkgPFRBQj4uCisgICAgICAgICAgIE5hcm/oaXRvIGplIGtvcmlzbm8gemEgIDpoZWxwICBrb21hbmRlLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSAgICAgIFJFWklNRSBsZWtjaWplIDcKKworCisgIDEuIE90a3VjYWp0ZSAgOmhlbHAgIGlsaSBwcml0aXNuaXRlIDxGMT4gaWxpIDxIZWxwPiAgemEgcG9tb+YuCisKKyAgMi4gT3RrdWNhanRlICA6aGVscCBrb21hbmRhICBiaXN0ZSBkb2JpbGkgcG9tb+YgemEgdHUga29tYW5kdS4KKworICAzLiBPdGt1Y2FqdGUgIENUUkwtVyBDVFJMLVcgIHphIHByZWxhemFrIHUgZHJ1Z2kgcHJvem9yLgorCisgIDQuIE90a3VjYWp0ZSAgOnEgIGRhIHphdHZvcml0ZSBwcm96b3IgcG9tb+ZpLgorCisgIDUuIE5hcHJhdml0ZSB2aW1yYyBzdGFydG5pIHNrcmlwdCB6YSBha3RpdmlyYW5qZSBwb2RlmmF2YW5qYSBrb2phCisgICAgIHZhbSBvZGdvdmFyYWp1LgorCisgIDYuIERvayBrdWNhdGUgbmVrdSBvZCAgOiAga29tYW5kaSwgcHJpdGlzbml0ZSBDVFJMLUQgZGEgYmlzdGUgdmlkZWxpIG1vZ3XmZQorICAgICB2cmVkbm9zdGkuICBQcml0aXNuaXRlIDxUQUI+IGRhIG9kYWJlcmV0ZSBqZWRudSBvZCBuamloLgorCisKKworCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisgIE92aW0gamUgcHJpcnXobmlrIHphdnKaZW4uICBOamVnb3YgY2lsaiBqZSBiaW8ga3JhdGFrIHByZWdsZWQgVmltIGVkaXRvcmEsCisgIGtvbGlrbyBkYSBvbW9ndeZpIG5qZWdvdm8gcmVsYXRpdm5vIGplZG5vc3Rhdm5vIGtvcmma5mVuamUuICBQcmlydehuaWsgbmlqZQorICBwb3RwdW4sIGplciBWaW0gaW1hIG1ub2dvIHZpmmUga29tYW5kaS4gIEthbyBzbGVkZeZlLCBwcm/oaXRhanRlIHByaXJ16G5pazoKKyAgIjpoZWxwIHVzZXItbWFudWFsIi4KKworICBaYSBkYWxqZSDoaXRhbmplIGkgdehlbmplLCBwcmVwb3J16HVqZW1vIGtuamlndToKKwlWaW0gLSBWaSBJbXByb3ZlZCAtIGJ5IFN0ZXZlIE91YWxsaW5lCisJSXpkYXZh6DogTmV3IFJpZGVycworICBQcnZhIGtuamlnYSBwb3RwdW5vIHBvc3Zl5mVuYSBWaW0tdS4gIE5hcm/oaXRvIGtvcmlzbmEgemEgcG/oZXRuaWtlLgorICBJbWEgbW5vmnR2byBwcmltZXJhIGkgc2xpa2EuCisgIFZpZGl0ZSBodHRwOi8vaWNjZi1ob2xsYW5kLm9yZy9jbGljazUuaHRtbAorCisgIFNsZWRl5mEga25qaWdhIGplIHN0YXJpamEgaSB2aZplIGdvdm9yaSBvIFZpLXUgbmVnbyBvIFZpbS11LCBhbGkgamUgdGFrb/BlCisgIHByZXBvcnXodWplbW86CisJTGVhcm5pbmcgdGhlIFZpIEVkaXRvciAtIGJ5IExpbmRhIExhbWIKKwlJemRhdmHoOiBPJ1JlaWxseSAmIEFzc29jaWF0ZXMgSW5jLgorICBEb2JyYSBrbmppZ2EgaXoga29qZSBtb55ldGUgc2F6bmF0aSBza29ybyBzdmUgmnRvIG1vnmV0ZSByYWRpdGkgdSBWaS1qdS4KKyAgimVzdG8gaXpkYW5qZSBpbWEgaSBpbmZvcm1hY2lqYSBvIFZpbS11LgorCisgIE92YWogcHJpcnXobmlrIHN1IG5hcGlzYWxpOiBNaWNoYWVsIEMuIFBpZXJjZSBpIFJvYmVydCBLLiBXYXJlLAorICBDb2xvcmFkbyBTY2hvb2wgb2YgTWluZXMga29yaXN0ZeZpIGlkZWplIENoYXJsZXNhIFNtaXRoYSwKKyAgQ29sb3JhZG8gU3RhdGUgVW5pdmVyc2l0eS4gIEUtbWFpbDogYndhcmVAbWluZXMuY29sb3JhZG8uZWR1LgorCisgIFByaWxhZ2/wYXZhbmplIHphIFZpbSB1cmFkaW8gamUgQnJhbSBNb29sZW5hYXIuCisKKyAgUHJldm9kIG5hIHNycHNraTogSXZhbiBOZWpnZWJhdWVyIDxpYW5AdW5zLmFjLnJzPgorICBWZXJ6aWphIDEuMCwgbWFqL2p1bmkgMjAxNC4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvci5zci51dGYtOCBiL3J1bnRpbWUvdHV0b3IvdHV0b3Iuc3IudXRmLTgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkxMTVkOAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3Iuc3IudXRmLTgKQEAgLTAsMCArMSw5NzEgQEAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKz0gICAgRCBvIGIgciBvIGQgbyDFoSBsIGkgICB1ICAgVklNICAgcCByIGkgciB1IMSNIG4gaSBrICAtICAgIFZlcnppamEgMS43ICAgICAgPQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgIFZpbSBqZSBtb8SHYW4gZWRpdG9yIHNhIG1ub2dvIGtvbWFuZGksIHN1dmnFoWUgZGEgYmlzbW8gaWggb3ZkZSBzdmUKKyAgICAgb3Bpc2FsaS4gIFByaXJ1xI1uaWsgamUgemFtacWhbGplbiBkYSBvcGnFoWUgZG92b2xqbm8ga29tYW5kaSBkYSBiaXN0ZQorICAgICBtb2dsaSBsYWdvZG5vIGRhIGtvcmlzdGl0ZSBWaW0ga2FvIGVkaXRvciBvcMWhdGUgbmFtZW5lLgorCisgICAgIFByaWJsacW+bm8gdnJlbWUgcG90cmVibm8gemEgdXNwZcWhYW4gemF2csWhZXRhayBwcmlydcSNbmlrYSBqZSBpem1lxJF1CisgICAgIDI1IGkgMzAgbWludXRhLCB1IHphdmlzbm9zdGkgb2QgdnJlbWVuYSBwb3Ryb8WhZW5vZyBuYSB2ZcW+YnUuCisKKyAgICAgVVBPWk9SRU5KRToKKyAgICAgS29tYW5kZSB1IGxla2NpamFtYSDEh2UgbWVuamF0aSB0ZWtzdC4gIElza29waXJhanRlIG92YWogZmFqbCBpCisgICAgIHZlxb5iYWp0ZSBuYSBrb3BpamkgKGFrbyBzdGUgcG9rcmVudWxpICJ2aW10dXRvciIgb3ZvIGplIHZlxIcga29waWphKS4KKworICAgICBWYcW+bm8gamUgdXBhbXRpdGkgZGEgamUgb3ZhaiBwcmlydcSNbmlrIHphbWnFoWxqZW4gemEgYWt0aXZudSB2ZcW+YnUuCisgICAgIFRvIHpuYcSNaSBkYSBtb3JhdGUgdXBvdHJlYmxqYXZhdGkga29tYW5kZSBvIGtvamltYSDEjWl0YXRlIGRhIGJpc3RlCisgICAgIGloIG5hdcSNaWxpLiAgQWtvIHNhbW8gxI1pdGF0ZSB0ZWtzdCwgemFib3JhdmnEh2V0ZSBrb21hbmRlIQorCisgICAgIEFrbyBqZSBDYXBzIExvY2sgdWtsanXEjWVuIElTS0xKVcSMSVRFIGdhLiAgUHJpdGlzbml0ZSB0YXN0ZXIgIGogIGRvdm9sam5vCisgICAgIHB1dGEgZGEgbGVrY2lqYSAxLjEgY2VsYSBzdGFuZSBuYSBla3Jhbi4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgIExla2NpamEgMS4xOiAgUE9NRVJBTkpFIEtVUlNPUkEKKworCisgKiogWmEgcG9tZXJhbmplIGt1cnNvcmEsIHByaXRpc2thanRlIHRhc3RlcmUgaCxqLGssbCBrYWtvIGplIHByaWthemFubyAqKgorCSAgICAgXgorCSAgICAgawkJICAgIFNhdmV0OiBoIGplIHMgbGV2ZSBzdHJhbmUgaSBwb21lcmEga3Vyc29yIHUgbGV2by4KKyAgICAgICA8IGgJIGwgPgkJICAgbCBqZSBzIGRlc25lIHN0cmFuZSBpIHBvbWVyYSBrdXJzb3IgdSBkZXNuby4KKwkgICAgIGogICAgICAgICAgICAgICAgICAgICBqIGl6Z2xlZGEga2FvIHN0cmVsaWNhIG5hbmnFvmUuCisJICAgICB2CisgIDEuIFBvbWVyYWp0ZSBrdXJzb3IgcG8gZWtyYW51IGRvayBzZSBuZSBuYXZpa25ldGUgbmEga29tYW5kZS4KKworICAyLiBQcml0aXNuaXRlIHRhc3RlciAoaikgZG9rIG5lIHBvxI1uZSBkYSBzZSBwb25hdmxqYS4KKyAgICAgU2FkYSB6bmF0ZSBrYWtvIGRhIGRvxJFldGUgZG8gbmFyZWRuZSBsZWtjaWplLgorCisgIDMuIEtvcmlzdGXEh2kgdGFzdGVyIGogcHJlxJFpdGUgbmEgbGVrY2lqdSAxLjIuCisKK05BUE9NRU5BOiAgQWtvIG5pc3RlIHNpZ3VybmkgxaF0YSBzdGUgemFwcmF2byBwcml0aXNudWxpLCBwcml0aXNuaXRlIDxFU0M+CisgICAgICAgICAgIHphIHByZWxhemFrIHUgTm9ybWFsIG1vZCBpIHBva3XFoWFqdGUgcG9ub3ZvLgorCitOQVBPTUVOQTogIFN0cmVsaWNlIHRha2/EkWUgcG9tZXJhanUga3Vyc29yLCBhbGkga29yacWhxIdlbmplIHRhc3RlcmEgaGprbCBqZQorICAgICAgICAgICB6bmF0bm8gYnLFvmUsIGthZCBzZSBqZWRub20gbmF2aWtuZXRlIG5hIG5qaWguICBaYWlzdGEhCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICAgTGVrY2lqYSAxLjI6IElaTEFaQUsgSVogVklNLWEKKworCisgICEhIFVQT1pPUkVOSkU6IFByZSBpenZvxJFlbmphIGJpbG8ga29nIGtvcmFrYSwgcHJvxI1pdGFqdGUgY2VsdSBsZWtjaWp1ISEKKworICAxLiBQcml0aXNuaXRlIDxFU0M+IChlZGl0b3IgamUgc2FkYSB1IE5vcm1hbCBtb2R1KS4KKworICAyLiBPdGt1Y2FqdGU6CTpxISA8RU5URVI+LgorICAgICBPdmltZSBzZSBpemxhemkgaXogZWRpdG9yYSwgc2EgR1VCSVRLT00gc3ZpaCBpem1lbmEuCisKKyAgMy4gS2FkYSBzZSBwb2phdmkga29tYW5kbmkgcHJvbXB0LCB1bmVzaXRlIGtvbWFuZHUga29qYSBqZSBwb2tyZW51bGEKKyAgICAgb3ZhaiBwcmlydcSNbmlrOgkJdmltdHV0b3IgPEVOVEVSPgorCisgIDQuIEFrbyBzdGUgdXBhbXRpbGkgb3ZlIGtvcmFrZSwgaXp2csWhaXRlIGloIHJlZG9tIG9kIDEgZG8gMyBkYSBiaXN0ZQorICAgICBpemHFoWxpIGl6IGVkaXRvcmEgaSBwb25vdm8gZ2EgcG9rcmVudWxpLgorCitOQVBPTUVOQTogIDpxISA8RU5URVI+ICBwb25pxaF0YXZhIHN2ZSBpem1lbmUga29qZSBzdGUgbmFwcmF2aWxpLgorICAgICAgICAgICBVIG5hcmVkbmltIGxla2NpamFtYSBuYXXEjWnEh2V0ZSBrYWtvIGRhIHNhxI11dmF0ZSBpem1lbmUuCisKKyAgNS4gUG9tZXJpdGUga3Vyc29yIG5hIGxla2NpanUgMS4zLgorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgTGVrY2lqYSAxLjM6IElaTUVOQSBURUtTVEEgLSBCUklTQU5KRQorCisKKwkgICAgICAqKiBQcml0aXNuaXRlICB4ICB6YSBicmlzYW5qZSB6bmFrYSBwb2Qga3Vyc29yb20uICoqCisKKyAgMS4gUG9tZXJpdGUga3Vyc29yIG5hIHJlZCBvem5hxI1lbiBzYSAtLS0+LgorCisgIDIuIERhIGJpc3RlIGlzcHJhdmlsaSBncmXFoWtlLCBwb21lcmFqdGUga3Vyc29yIGRvayBzZQorICAgICBuZSBuYcSRZSBuYSBzbG92dSBrb2plIHRyZWJhIGl6YnJpc2F0aS4KKworICAzLiBQcml0aXNuaXRlIHRhc3RlciAgeCAgZGEgaXpicmnFoWV0ZSBuZcW+ZWxqZW5vIHNsb3ZvLgorCisgIDQuIFBvbmF2bGphanRlIGtvcmFrZSBvZCAyIGRvIDQgZG9rIG5lIGlzcHJhdml0ZSBzdmUgZ3JlxaFrZS4KKworLS0tPiBSUlJpYmFhIHJpaWJpIGdyaXp6emUgcnJyZWVwcC4KKworICA1LiBLYWQgaXNwcmF2aXRlIHJlZCwgcHJlxJFpdGUgbmEgbGVrY2lqdSAxLjQuCisKK05BUE9NRU5BOiAgRG9rIGtvcmlzdGl0ZSBwcmlydcSNbmlrLCBuZW1vanRlIHXEjWl0aSBrb21hbmRlIG5hcGFtZXQsCisgICAgICAgICAgIHZlxIcgdmXFvmJhanRlIG5qaWhvdnUgcHJpbWVudS4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJIExla2NpamEgMS40OiBJWk1FTkEgVEVLU1RBIC0gVUJBQ0lWQU5KRQorCisKKwkgICoqIFByaXRpc25pdGUgIGkgIHphIHViYWNpdmFuamUgdGVrc3RhIGlzcHJlZCBrdXJzb3JhLiAqKgorCisgIDEuIFBvbWVyaXRlIGt1cnNvciBuYSBwcnZpIHNsZWRlxIdpIHJlZCBvem5hxI1lbiBzYSAtLS0+LgorCisgIDIuIERhIGJpc3RlIHRla3N0IHBydm9nIHJlZGEgaXpqZWRuYcSNaWxpIHMgdGVrc3RvbSBkcnVnb2csIG5hbWVzdGl0ZQorICAgICBrdXJzb3IgbmEgcHJ2aSB6bmFrIFBPU0xFIGtvZyDEh2V0ZSB1YmFjaXRpIHBvdHJlYmFuIHRla3N0LgorCisgIDMuIFByaXRpc25pdGUgIGkgIHBhIHVuZXNpdGUgcG90cmVibmUgZG9wdW5lLgorCisgIDQuIFBvIGlzcHJhdmNpIHN2YWtlIGdyZcWha2UgcHJpdGlzbml0ZSA8RVNDPiBkYSBzZSB2cmF0aXRlIHUgTm9ybWFsIG1vZC4KKyAgICAgUG9ub3ZpdGUga29yYWtlIG9kIDIgZG8gNCBkYSBiaXN0ZSBpc3ByYXZpbGkgY2VsdSByZcSNZW5pY3UuCisKKy0tLT4gRG8gdGVrYSBuZW9qZSB2IHJlZC4KKy0tLT4gRGVvIHRla3N0YSBuZWRvc3RhamUgaXogb3ZvZyByZWRhLgorCisgIDUuIFByZcSRaXRlIG5hIHNsZWRlxId1IGxla2NpanUuCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgIExla2NpamEgMS41OiBJWk1FTkEgVEVLU1RBIC0gRE9EQVZBTkpFCisKKworCSAgICAgICAgICAgKiogUHJpdGlzbml0ZSAgQSAgemEgZG9kYXZhbmplIHRla3N0YS4gKioKKworICAxLiBQb21lcml0ZSBrdXJzb3IgbmEgcHJ2aSBzbGVkZcSHaSByZWQgb3puYcSNZW4gc2EgLS0tPi4KKyAgICAgTmlqZSB2YcW+bm8gZ2RlIHNlIG5hbGF6aSBrdXJzb3IgdSB0b20gcmVkdS4KKworICAyLiBQcml0aXNuaXRlICBBICBpIHVuZXNpdGUgZG9kYXRuaSB0ZWtzdC4KKworICAzLiBQb8WhdG8gc3RlIGRvZGFsaSB0ZWtzdCwgcHJpdGlzbml0ZSA8RVNDPiB6YSBwb3ZyYXRhayB1CisgICAgIE5vcm1hbCBtb2QuCisKKyAgNC4gUG9tZXJpdGUga3Vyc29yIG5hIGRydWdpIHJlZCBvem5hxI1lbiBzYSAtLS0+IGkgcG9uYXZsamFqdGUKKyAgICAga29yYWtlIDIgaSAzIGRvayBuZSBpc3ByYXZpdGUgdGVrc3QuCisKKy0tLT4gRGVvIHRla3N0YSBuZWRvc3RhamUgdQorICAgICBEZW8gdGVrc3RhIG5lZG9zdGFqZSB1IG92b20gcmVkdS4KKy0tLT4gRGVvIHRla3N0YSBuZWRvc3RhamUKKyAgICAgRGVvIHRla3N0YSBuZWRvc3RhamUgaSBvdmRlLgorCisgIDUuIFByZcSRaXRlIG5hIGxla2NpanUgMS42Lgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgTGVrY2lqYSAxLjY6IElaTUVOQSBGQUpMQQorCisKKyAgICAgKiogVXBvdHJlYml0ZSAgOndxICB6YSBzbmltYW5qZSB0ZWtzdGEgaSBpemxhemFrIGl6IGVkaXRvcmEuICoqCisKKyAgISEgVVBPWk9SRU5KRTogUHJlIGl6dm/EkWVuamEgYmlsbyBrb2cga29yYWthLCBwcm/EjWl0YWp0ZSBjZWx1IGxla2NpanUhIQorCisgIDEuIEl6YcSRaXRlIGl6IGVkaXRvcmEga2FvIHUgbGVrY2lqaSAxLjI6ICA6cSEKKworICAyLiBOYSBrb21hbmRub20gcHJvbXB0dSB1bmVzaXRlIHNsZWRlxId1IGtvbWFuZHU6ICB2aW0gdHV0b3IgPEVOVEVSPgorICAgICAndmltJyBqZSBrb21hbmRhIHphIHBva3JldGFuamEgVmltIGVkaXRvcmEsICd0dXRvcicgamUgaW1lIGZhamxhIGtvamkKKyAgICAgxb5lbGl0ZSBkYSBtZW5qYXRlLiAgS29yaXN0aXRlIGZhamwga29qaSBpbWF0ZSBwcmF2byBkYSBtZW5qYXRlLgorCisgIDMuIFViYWN1anRlIGkgYnJpxaFpdGUgdGVrc3Qga2FvIHUgcHJldGhvZG5pbSBsZWtjaWphbWEuCisKKyAgNC4gU25pbWl0ZSBpem1lbmplbmkgdGVrc3QgaSBpemHEkWl0ZSBpeiBWaW0tYTogIDp3cSA8RU5URVI+CisKKyAgNS4gUG9ub3ZvIHBva3Jlbml0ZSB2aW10dXRvciBpIHByb8SNaXRhanRlIHJlemltZSBrb2ppIHNsZWRpLgorCisgIDYuIFBvxaF0byBwcm/EjWl0YXRlIGtvcmFrZSBpem5hZCBpIHUgcG90cHVub3N0aSBpaCByYXp1bWV0ZToKKyAgICAgaXp2csWhaXRlIGloLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSAgICAgIFJFWklNRSBsZWtjaWplIDEgCisKKworICAxLiBLdXJzb3Igc2UgcG9tZXJhIHN0cmVsaWNhbWEgaWxpIHBvbW/Eh3UgdGFzdGVyYSBoamtsIC4KKwloIChsZXZvKQlqIChkb2xlKQlrIChnb3JlKQlsIChkZXNubykKKworICAyLiBaYSBwb2tyZXRhbmplIFZpbS1hIGl6IHNoZWxsLWE6ICB2aW0gSU1FX0ZBSkxBIDxFTlRFUj4KKworICAzLiBJemxhejoJPEVTQz4JOnEhIDxFTlRFUj4gCXN2ZSBwcm9tZW5lIHN1IGl6Z3VibGplbmUuCisgICAgICAgSUxJOgk8RVNDPgk6d3EgPEVOVEVSPiAJcHJvbWVuZSBzdSBzYcSNdXZhbmUuCisKKyAgNC4gQnJpc2FuamUgem5ha2EgbmEga29tZSBzZSBuYWxhemkga3Vyc29yOiAgeAorCisgIDUuIFViYWNpdmFuamEgaWxpIGRvZGF2YW5qZSB0ZWtzdGE6CisJIGkgICB1bmVzaXRlIHRla3N0IDxFU0M+CXVub3MgaXNwcmVkIGt1cnNvcmEKKwkgQSAgIHVuZXNpdGUgdGVrc3QgPEVTQz4JZG9kYXZhbmplIG5hIGtyYWp1IHJlZGEKKworTkFQT01FTkE6ICBQcml0aXNrb20gbmEgPEVTQz4gcHJlYmFjdWpldGUgVmltIHUgTm9ybWFsIG1vZCBpCisgICAgICAgICAgIHByZWtpZGF0ZSBuZcW+ZWxqZW51IGlsaSBkZWxpbWnEjW5vIGl6dnLFoWVudSBrb21hbmR1LgorCitOYXN0YXZpdGUgc2EgbGVrY2lqb20gMi4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQlMZWtjaWphIDIuMTogTkFSRURCRSBCUklTQU5KQQorCisKKwkJICoqIE90a3VjYWp0ZSAgZHcgIHphIGJyaXNhbmplIHJlxI1pLiAqKgorCisgIDEuIFByaXRpc25pdGUgIDxFU0M+ICBkYSBiaXN0ZSBiaWxpIHNpZ3VybmkgZGEgc3RlIHUgTm9ybWFsIG1vZHUuCisKKyAgMi4gUG9tZXJpdGUga3Vyc29yIG5hIHJlZCBvem5hxI1lbiBzYSAtLS0+LgorCisgIDMuIFBvbWVyaXRlIGt1cnNvciBuYSBwb8SNZXRhayByZcSNaSBrb2p1IHRyZWJhIGl6YnJpc2F0aS4KKworICA0LiBPdGt1Y2FqdGUgIGR3ICBkYSBiaXN0ZSB1a2xvbmlsaSByZcSNLgorCitOQVBPTUVOQTogIFNsb3ZvICBkICDEh2Ugc2UgcG9qYXZpdGkgbmEgZG51IGVrcmFuYSBrYWQgZ2Egb3RrdWNhdGUuICBWaW0gxI1la2EKKwkgICBkYSBvdGt1Y2F0ZSAgdyAuICBBa28gamUgcHJpa2F6YW5vIG5la28gZHJ1Z28gc2xvdm8sIHBvZ3JlxaFpbGkgc3RlIHUKKwkgICBrdWNhbmp1OyBwcml0aXNuaXRlIDxFU0M+IGkgcG9rdcWhYWp0ZSBwb25vdm8uICAoQWtvIHNlIG5lIHBvamF2aQorCSAgIG5pxaF0YSwgbW/FvmRhIGplIGlza2xqdcSNZW5hIG9wY2lqYSAnc2hvd2NtZCc6IHZpZGkgbGVrY2lqdSA2LjUuKQorCistLS0+IE5la2UgcmXEjWkgc21lxaFubyBuZSBwcmlwYWRhanUgbmEgcGFwaXIgb3ZvaiByZcSNZW5pY2kuCisKKyAgNS4gUG9uYXZsamFqdGUga29yYWtlIDMgaSA0IGRvayBuZSBpc3ByYXZpdGUgcmXEjWVuaWN1LCBwYQorICAgICBwcmXEkWl0ZSBuYSBsZWtjaWp1IDIuMi4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgICBMZWtjaWphIDIuMjogSk/FoCBCUklTQU5KQQorCisKKyAgICAgICAqKiBPdGt1Y2FqdGUgIGQkICB6YSBicmlzYW5qZSB6bmFrb3ZhIGRvIGtyYWphIHJlZGEuICoqCisKKyAgMS4gUHJpdGlzbml0ZSAgPEVTQz4gIGRhIGJpc3RlIGJpbGkgc2lndXJuaSBkYSBzdGUgdSBOb3JtYWwgbW9kdS4KKworICAyLiBQb21lcml0ZSBrdXJzb3IgbmEgcmVkIG96bmHEjWVuIHNhICAtLS0+LgorCisgIDMuIFBvbWVyaXRlIGt1cnNvciBkbyBrcmFqYSBpc3ByYXZub2cgZGVsYSByZcSNZW5pY2UKKyAgICAgKFBPU0xFIHBydmUgLiApLgorCisgIDQuIE90a3VjYWp0ZSAgZCQgIHphIGJyaXNhbmplIG9zdGF0a2EgcmVkYS4KKworLS0tPiBOZWtvIGplIHVuZW8ga3JhaiBvdm9nIHJlZGEgZHZhcHV0LiBrcmFqIG92b2cgcmVkYSBkdmFwdXQuCisKKyAgNS4gUHJlxJFpdGUgbmEgbGVrY2lqdSAyLjMgemEgcG9kcm9ibmlqZSBvYmphxaFuamVuamUuCisKKworCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJICAgICAgTGVrY2lqYSAyLjM6IE8gT1BFUkFUT1JJTUEgSSBQT0tSRVRJTUEKKworCisgIE1ub2dlIGtvbWFuZGUgemEgaXptZW51IHRla3N0YSBzYXN0b2plIHNlIG9kIG9wZXJhdG9yYSBpIHBva3JldGEuCisgIE9ibGlrIGtvbWFuZGUgYnJpc2FuamEgc2EgIGQgIG9wZXJhdG9yb20gamUgc2xlZGXEh2k6CisKKyAgCWQgICBwb2tyZXQKKworICBQcmkgxI1lbXUgamU6CisgICAgZCAgICAgIC0gb3BlcmF0b3IgYnJpc2FuamEuCisgICAgcG9rcmV0IC0gb25vIG5hIMSNZW11IMSHZSBzZSBvcGVyYWNpamEgaXp2csWhYXZhdGkgKG9waXNhbm8gdSBuYXN0YXZrdSkuCisKKyAgS3JhdGFrIHNwaXNhayBwb2tyZXRhOgorICAgIHcgLSBzdmUgZG8gcG/EjWV0a2Egc2xlZGXEh2UgcmXEjWksIE5FIFVLTEpVxIxVSlXEhkkgcHJ2byBzbG92by4KKyAgICBlIC0gc3ZlIGRvIGtyYWphIHRla3XEh2UgcmXEjWksIFVLTEpVxIxVSlXEhkkgcG9zbGVkbmplIHNsb3ZvLgorICAgICQgLSBzdmUgZG8ga3JhamUgcmVkYSwgVUtMSlXEjFVKVcSGSSBwb3NsZWRuamUgc2xvdm8uCisKKyAgS3VjYW5qZW0gIGRlICBicmlzYcSHZSBzZSB0ZWtzdCBvZCBrdXJzb3JhIGRvIGtyYWphIHJlxI1pLgorCitOQVBPTUVOQTogIFByaXRpc2tvbSBzYW1vIG5hIHRhc3RlciBwb2tyZXRhIGRvayBzdGUgdSBOb3JtYWwgbW9kdSwgYmV6CisgICAgICAgICAgIG9wZXJhdG9yYSwga3Vyc29yIHNlIHBvbWVyYSBrYW8gxaF0byBqZSBvcGlzYW5vLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICBMZWtjaWphIDIuNDogS09SScWgxIZFTkpFIEJST0pBTkpBIFpBIFBPS1JFVEUKKworCisgICoqIFVub8WhZW5qZW0gbmVrb2cgYnJvamEgcHJlIHBva3JldGEsIHBva3JldCBzZSBpenZyxaFhdmEgdGFqIGJyb2ogcHV0YS4gKioKKworICAxLiBQb21lcml0ZSBrdXJzb3IgbmEgcmVkIG96bmHEjWVuIHNhIC0tLT4uCisKKyAgMi4gT3RrdWNhanRlICAydyAgZGEgcG9tZXJpdGUga3Vyc29yIGR2ZSByZcSNaSBuYXByZWQuCisKKyAgMy4gT3RrdWNhanRlICAzZSAgZGEgcG9tZXJpdGUga3Vyc29yIG5hIGtyYWogdHJlxIdlIHJlxI1pIG5hcHJlZC4KKworICA0LiBPdGt1Y2FqdGUgIDAgIChudWx1KSBkYSBwb21lcml0ZSBrdXJzb3IgbmEgcG/EjWV0YWsgcmVkYS4KKworICA1LiBQb25vdml0ZSBrb3Jha2UgMiBpIDMgcyBuZWtpbSBkcnVnaW0gYnJvamV2aW1hLgorCistLS0+IFJlxI1lbmljYSBzYSByZcSNaW1hIHBvIGtvam9qIG1vxb5ldGUgcG9tZXJhdGkga3Vyc29yLgorCisgIDYuIFByZcSRaXRlIG5hIGxla2NpanUgMi41LgorCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKyAgICAgICAgICAgICBMZWtjaWphIDIuNTogS09SScWgxIZFTkpFIEJST0pBTkpBIFpBIFZFxIZFIEJSSVNBTkpFCisKKworICAqKiBVbm/FoWVuamUgbmVrb2cgYnJvamEgcyBvcGVyYXRvcm9tIHBvbmF2bGphIG9wZXJhdG9yIHRhaiBicm9qIHB1dGEuICoqCisKKyAgVSBrb21iaW5hY2lqaSBvcGVyYXRvcmEgYnJpc2FuamEgcyBwb2tyZXRpbWEgc3BvbWVudXRpbSBpem5hZAorICBtb8W+ZXRlIHVuZXRpIGJyb2ogcHJlIHBva3JldGEgZGEgYmlzdGUgaXpicmlzYWxpIHZpxaFlIHpuYWtvdmE6CisKKwkgZCAgIGJyb2ogICBwb2tyZXQKKworICAxLiBQb21lcml0ZSBrdXJzb3IgbmEgcHJ2byBzbG92byB1IHJlxI1pIHMgVkVMSUtJTSBTTE9WSU1BIHUgcmVkdQorICAgICBvem5hxI1lbm9tIHNhIC0tLT4uCisKKyAgMi4gT3RrdWNhanRlICBkMncgIGRhIGl6YnJpxaFldGUgZHZlIHJlxI1pIHNhIFZFTElLSU0gU0xPVklNQQorCisgIDMuIFBvbm92aXRlIGtvcmFrZSAxIGkgMiBzYSByYXpsacSNaXRpbSBicm9qZXZpbWEgZGEgaXpicmnFoWV0ZQorICAgICB1emFzdG9wbmUgcmXEjWkgc2EgVkVMSUtJTSBTTE9WSU1BIGtvcmnFocSHZW5qZW0gc2FtbyBqZWRuZSBrb21hbmRlLgorCistLS0+IG92YWogQUJDxIzEhiBExJBFIHJlZCBGR0hJIEpLIExNTiBPUCBzIHJlxI1pbWEgamUgUlPFoCBUVVZaxb0gaXNwcmF2bGplbi4KKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgIExla2NpamEgMi42OiBPUEVSQUNJSkUgTkFEIFJFRE9WSU1BCisKKworCSAgICAgICAqKiBPdGt1Y2FqdGUgIGRkICB6YSBicmlzYW5qZSBjZWxvZyByZWRhLiAqKgorCisgIFpib2cgdcSNZXN0YWxvc3RpIGJyaXNhbmphIGNlbGloIHJlZG92YSwgYXV0b3JpIFZpLWphIG9kbHXEjWlsaSBzdSBkYQorICBqZSBsYWvFoWUgYnJpc2F0aSByZWRvdmUgYWtvIHNlIG90a3VjYSAgZCAgZHZhcHV0LgorCisgIDEuIFBvbWVyaXRlIGt1cnNvciBuYSBkcnVnaSByZWQgdSBkb25qb2ogc3Ryb2ZpLgorICAyLiBPdGt1Y2FqdGUgIGRkICBkYSBnYSBpemJyacWhZXRlLgorICAzLiBQb21lcml0ZSBrdXJzb3IgbmEgxI1ldHZydGkgcmVkLgorICA0LiBPdGt1Y2FqdGUgICAyZGQgICBkYSBiaXN0ZSBpemJyaXNhbGkgZHZhIHJlZGEuCisKKy0tLT4gIDEpICBTZWRsbyBtaSBqZSBvZCBtYXJhbWUsCistLS0+ICAyKSAgYmxhdG8gbmEgc3ZlIHN0cmFuZSwKKy0tLT4gIDMpICB1emRhIG9kIGthbmFwYSwKKy0tLT4gIDQpICBhdXRvIG1pIGplIG92ZGUsCistLS0+ICA1KSAgc2F0b3ZpIHBva2F6dWp1IHZyZW1lLAorLS0tPiAgNikgIGEgYmnEjSBtaSBqZSBvZCBvxI1pbmEKKy0tLT4gIDcpICBwcmViaWplbmEgxaF0YXBhLgorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgICBMZWtjaWphIDIuNzogUE9OScWgVEFWQU5KRSBQUk9NRU5BCisKKworICAqKiBQcml0aXNuaXRlICB1ICB6YSBwb25pxaF0YXZhbmplIHBvc2xlZG5qZSBrb21hbmRlLCAgVSAgemEgY2VvIHJlZC4gKioKKworICAxLiBQb21lcml0ZSBrdXJzb3IgbmEgcmVkIG96bmHEjWVuIHNhIC0tLT4gaSBwb3N0YXZpdGUgZ2EgbmEgbWVzdG8KKyAgICAgcHJ2ZSBncmXFoWtlLgorICAyLiBPdGt1Y2FqdGUgIHggIGRhIGl6YnJpxaFldGUgcHJ2aSBuZcW+ZWxqZW5pIHpuYWsuCisgIDMuIE90a3VjYWp0ZSAgdSAgZGEgcG9uacWhdGl0ZSBwb3NsZWRuanUgaXp2csWhZW51IGtvbWFuZHUuCisgIDQuIFNhZCBpc3ByYXZpdGUgc3ZlIGdyZcWha2UgdSByZWR1IGtvcmlzdGXEh2kga29tYW5kdSAgeCAgLgorICA1LiBPdGt1Y2FqdGUgdmVsaWtvICBVICBkYSBiaXN0ZSB2cmF0aWxpIHNhZHLFvmFqIHJlZGEgdSBwcnZvYml0bm8KKyAgICAgc3RhbmplLgorICA2LiBPbmRhIG90a3VjYWp0ZSAgdSAgbmVrb2xpa28gcHV0YSBkYSBiaXN0ZSBwb25pxaF0aWxpICBVCisgICAgIGkgcHJldGhvZG5lIGtvbWFuZGUuCisgIDcuIFNhZCBvdGt1Y2FqdGUgQ1RSTC1SIChkcsW+ZcSHaSAgQ1RSTCAgZG9rIHByaXRpc2thdGUgUikKKyAgICAgbmVrb2xpa28gcHV0YSBkYSBiaXN0ZSB2cmF0aWxpIGl6bWVuZSAocG9uacWhdGlsaSBwb25pxaF0YXZhbmphKS4KKworLS0tPiBJaWlzc3ByYXZpdGUgZ3JlxaFrZSB1dSBvdnZvbSByZWR1IGlpIHBvb25pxaF0aXRlZWUgaWguCisKKyAgOC4gT3ZvIHN1IHZlb21hIGtvcmlzbmUga29tYW5kZS4gIFByZcSRaXRlIG5hIHJlemltZSBsZWtjaWplIDIuCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgICAgICBSRVpJTUUgbGVrY2lqZSAyCisKKworICAxLiBCcmlzYW5qZSBvZCBrdXJzb3JhIGRvIHNsZWRlxIdlIHJlxI1pOglkdworICAyLiBCcmlzYW5qZSBvZCBrdXJzb3JhIGRvIGtyYWphIHJlZGE6CQlkJAorICAzLiBCcmlzYW5qZSBjZWxvZyByZWRhOgkJCWRkCisKKyAgNC4gWmEgcG9uYXZsamFuamUgcG9rcmV0YSBwcmV0aG9kbm8gdW5lc2l0ZSBicm9qOiAgMncKKyAgNS4gT2JsaWsga29tYW5kZSB6YSBpem1lbnU6CisgICAgICAgICAgICAgICBvcGVyYXRvciAgIFticm9qXSAgIHBva3JldAorICAgICBnZGUgamU6CisgICAgICAgb3BlcmF0b3IgLSDFoXRhIHVyYWRpdGksIHJlY2ltbyAgZCAgemEgYnJpc2FuamUKKyAgICAgICBbYnJval0gICAtIG5lb2JhdmV6YW4gYnJvaiBwb25hdmxqYW5qYSBwb2tyZXRhCisgICAgICAgcG9rcmV0ICAgLSBrcmV0YW5qZSBwbyB0ZWtzdHUgbmEga29tZSBzZSByYWRpLAorICAgICAgICAgICAgICAgICAga2FvIMWhdG8gamU6IHcgKHJlxI0pLCAkIChrcmFqIHJlZGEpLCBpdGQuCisKKyAgNi4gUG9tZXJhbmplIGt1cnNvcmEgbmEgcG/EjWV0YWsgcmVkYTogIDAKKworICA3LiBaYSBwb25pxaF0YXZhbmplIHByZXRob2RuaWggaXptZW5hLCBwcml0aXNuaXRlOgl1ICAobWFsbyB1KQorICAgICBaYSBwb25pxaF0YXZhbmplIHN2aWggcHJvbWVuYSB1IHJlZHUsIHByaXRpc25pdGU6CVUgICh2ZWxpa28gVSkKKyAgICAgWmEgdnJhxIdhbmphIHByb21lbmEsIG90a3VjYWp0ZToJCQlDVFJMLVIKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgICBMZWtjaWphIDMuMTogS09NQU5EQSBQT1NUQVZMSkFOSkEKKworCisgICoqIE90a3VjYWp0ZSAgcCAgZGEgcG9zdGF2aXRlIHByZXRob2RubyBpemJyaXNhbiB0ZWtzdCBpemEga3Vyc29yYS4gKioKKworICAxLiBQb21lcml0ZSBrdXJzb3IgbmEgcHJ2aSBzbGVkZcSHaSByZWQgb3puYcSNZW4gc2EgLS0tPi4KKworICAyLiBPdGt1Y2FqdGUgIGRkICBkYSBpemJyacWhZXRlIHJlZCBpIHNtZXN0aXRlIGdhIHUgVmltIHJlZ2lzdGFyLgorCisgIDMuIFBvbWVyaXRlIGt1cnNvciBuYSByZWQgYyksIElaTkFEIG1lc3RhIGdkZSB0cmViYSBwb3N0YXZpdGkgaXpicmlzYW4gcmVkLgorCisgIDQuIE90a3VjYWp0ZSAgcCAgZGEgcG9zdGF2aXRlIHJlZCBpc3BvZCBrdXJzb3JhLgorCisgIDUuIFBvbmF2bGphanRlIGtvcmFrZSAyIGRvIDQgZGEgYmlzdGUgcG9zdGF2aWxpIHN2ZSBsaW5pamUgdSBwcmF2aWxub20KKyAgICAgcmVkb3NsZWR1LgorCistLS0+IGQpIHByZWJpamVuYSDFoXRhcGEuCistLS0+IGIpIHV6ZGEgb2Qga2FuYXBhLAorLS0tPiBjKSBhIGJpxI0gbWkgamUgb2Qgb8SNaW5hCistLS0+IGEpIFNlZGxvIG1pIGplIG9kIG1hcmFtZSwKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgICAgIExla2NpamEgMy4yOiBLT01BTkRBIFpBTUVORQorCisKKyAgICAgICoqIE90a3VjYWp0ZSAgcnggIGRhIHphbWVuaXRlIHpuYWsgaXNwb2Qga3Vyc29yYSBzbG92b20gIHggLiAqKgorCisgIDEuIFBvbWVyaXRlIGt1cnNvciBuYSBwcnZpIHNsZWRlxIdpIHJlZCBvem5hxI1lbiBzYSAtLS0+LgorCisgIDIuIFBvbWVyaXRlIGt1cnNvciB0YWtvIGRhIHNlIG5hbGF6aSBuYSBwcnZvaiBncmXFoWNpLgorCisgIDMuIE90a3VjYWp0ZSAgciAgaSBvbmRhIHpuYWsga29qaSB0cmViYSBkYSB0dSBzdG9qaS4KKworICA0LiBQb25hdmxqYWp0ZSBrb3Jha2UgMiBpIDMgc3ZlIGRvayBwcnZpIHJlZCBuZSBidWRlCisgICAgIGlzdGkga2FvIGRydWdpLgorCistLS0+ICBLZWRpIGp1IG92ZWogcmVkIHVnYcWhZW4sIG5ha28gamUgcHJvdHJlc2FvIHB1c3RhxaFuZSB0ZXN0ZXJlIQorLS0tPiAgS2FkYSBqZSBvdmFqIHJlZCB1bm/FoWVuLCBuZWtvIGplIHByaXRpc2thbyBwb2dyZcWhbmUgdGFzdGVyZSEKKworICA1LiBQcmXEkWl0ZSBuYSBsZWtjaWp1IDMuMi4KKworTkFQT01FTkE6ICBTZXRpdGUgc2UgZGEgdHJlYmEgZGEgdcSNaXRlIHZlxb5iYW5qZW0sIG5lIHBhbcSHZW5qZW0uCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICBMZWtjaWphIDMuMzogT1BFUkFUT1IgSVpNRU5FCisKKworCSAgKiogWmEgaXptZW51IHRla3N0YSBkbyBrcmFqYSByZcSNaSwgb3RrdWNhanRlICBjZSAgLioqCisKKyAgMS4gUG9tZXJpdGUga3Vyc29yIG5hIHBydmkgc2xlZGXEh2kgcmVkIG96bmHEjWVuIHNhIC0tLT4uCisKKyAgMi4gUG9zdGF2aXRlIGt1cnNvciBuYSAgYSAgdSAgcmFrZHVyLgorCisgIDMuIE90a3VjYWp0ZSAgY2UgIGkgaXNwcmF2aXRlIHJlxI0gKHUgb3ZvbSBzbHXEjWFqdSBvdGt1Y2FqdGUgIGVkICApLgorCisgIDQuIFByaXRpc25pdGUgPEVTQz4gaSBwb21lcml0ZSBrdXJzb3IgbmEgc2xlZGXEh2kgem5hayBrb2ppCisgICAgIHRyZWJhIGlzcHJhdml0aS4KKworICA1LiBQb25hdmxqYWp0ZSBrb3Jha2UgMyBpIDQgc3ZlIGRvayBwcnZhIHJlxI1lbmljYSBuZSBidWRlIGlzdGEKKyAgICAga2FvIGRydWdhLgorCistLS0+IE92YWogcmFrZHVyIGltYSBuZWtvbGlrbyByZWpnYSBrb2plIHRyZWZsamEgaXNwcnBpa2F0aSBvcGVyYWdyb20gaXptZW5lLgorLS0tPiBPdmFqIHJlZCBpbWEgbmVrb2xpa28gcmXEjWkga29qZSB0cmViYSBpc3ByYXZpdGkgb3BlcmF0b3JvbSBpem1lbmUuCisKK1VvxI1pdGUgZGEgIGNlICBicmnFoWUgcmXEjSBpIHBvc3RhdmxqYSBlZGl0b3IgdSBJbnNlcnQgbW9kLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkgICAgICAgICBMZWtjaWphIDMuNDogREFMSkUgSVpNRU5FIFVQT1RSRUJPTSBjCisKKworICAgICoqIEtvbWFuZGEgaXptZW5lIHNlIGtvcmlzdGkgc2EgaXN0aW0gcG9rcmV0aW1hIGthbyBpIGJyaXNhbmplLiAqKgorCisgIDEuIE9wZXJhdG9yIGl6bWVuZSBzZSBrb3Jpc3RpIG5hIGlzdGkgbmHEjWluIGthbyBpIG9wZXJhdG9yIGJyaXNhbmphOgorCisgICAgICAgICBjICAgIFticm9qXSAgIHBva3JldAorCisgIDIuIFBva3JldGkgc3UgaXN0aSwgcmVjaW1vOiAgIHcgKHJlxI0pIGkgICQgKGtyYWogcmVkYSkuCisKKyAgMy4gUG9tZXJpdGUga3Vyc29yIG5hIHBydmkgc2xlZGXEh2kgcmVkIG96bmHEjWVuIHNhIC0tLT4uCisKKyAgNC4gUG9tZXJpdGUga3Vyc29yIG5hIHBydnUgZ3JlxaFrdS4KKworICA1LiBPdGt1Y2FqdGUgIGMkICBpIHVuZXNpdGUgb3N0YXRhayByZWRhIHRha28gZGEgYnVkZSBpc3RpIGthbworICAgICBkcnVnaSByZWQsIHBhIHByaXRpc25pdGUgPEVTQz4uCisKKy0tLT4gS3JhaiBvdm9nIHJlZGEgdHJlYmEgaXptZW5pdGkgdGFrbyBkYSBpemdsZWRhIGthbyByZWQgaXNwb2QuCistLS0+IEtyYWogb3ZvZyByZWRhIHRyZWJhIGlzcHJhdml0aSBrb3JpxaHEh2VuamVtIGMkIGtvbWFuZGUuCisKK05BUE9NRU5BOiAgWmEgaXNwcmF2bGphbmplIGdyZcWhYWthIG1vxb5ldGUga29yaXN0aXRpIEJhY2tzcGFjZSAuCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSAgICAgIFJFWklNRSBsZWtjaWplIDMKKworCisgIDEuIFphIHBvc3RhdmxqYW5qZSB0ZWtzdGEga29qaSBzdGUgdXByYXZvIGl6YnJpc2FsaSwgcHJpdGlzbml0ZSAgcCAuIE92bworICAgICBwb3N0YXZsamEgdGVrc3QgSVpBIGt1cnNvcmEgKGFrbyBqZSBiaW8gaXpicmlzYW4gamVkYW4gaWxpIHZpxaFlIHJlZG92YQorICAgICBzYWRyxb5haiDEh2UgZG/Eh2kgbmEgcmVkIGlzcG9kIGt1cnNvcmEpLgorCisgIDIuIFphIHphbWVudSB6bmFrYSBuYSBrb21lIHNlIG5hbGF6aSBrdXJzb3IsIHByaXRpc25pdGUgIHIgIGkgb25kYQorICAgICDFvmVsamVuaSB6bmFrLgorCisgIDMuIE9wZXJhdG9yIGl6bWVuZSBkb3p2b2xqYXZhIHByb21lbnUgdGVrc3RhIG9kIGt1cnNvcmEgZG8gcG96aWNpamUgZ2RlCisgICAgIHNlIHphdnLFoWF2YSBwb2tyZXQuICBQcmltZXJhIHJhZGksIGt1Y2FqdGUgIGNlICB6YSBpem1lbnUgb2Qga3Vyc29yYSBkbworICAgICBrcmFqYSByZcSNaSwgaWxpICBjJCAgemEgaXptZW51IG9kIGt1cnNvcmEgZG8ga3JhamEgcmVkYS4KKworICA0LiBPYmxpayBvcGVyYWNpamUgaXptZW5lIGplOgorCisJIGMgICBbYnJval0gICBwb2tyZXQKKworUHJlxJFpdGUgbmEgbmFyZWRudSBsZWtjaWp1LgorCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJICAgICAgTGVrY2lqYSA0LjE6IFBPWklDSUpBIEtVUlNPUkEgSSBTVEFUVVMgRkFKTEEKKworICAqKiBQcml0aXNuaXRlIENUUkwtRyB6YSBwcmlrYXogcG96aWNpamUga3Vyc29yYSB1IHRla3N0dSBpIHN0YXR1cyBmYWpsYS4KKyAgICAgUHJpdGlzbml0ZSAgRyAgemEgcG9tZXJhbmplIGt1cnNvcmEgbmEgbmVraSByZWQgdSB0ZWtzdHUuICoqCisKK05BUE9NRU5BOiAgUHJvxI1pdGFqdGUgY2VsdSBsZWtjaWp1IHByZSBpenZvxJFlbmphIGJpbG8ga29nIGtvcmFrYSEhCisKKyAgMS4gRHLFvml0ZSB0YXN0ZXIgQ1RSTCBpIHByaXRpc25pdGUgIGcgLiAgT3ZvIHpvdmVtbyBDVFJMLUcuCisgICAgIEVkaXRvciDEh2UgbmEgZG51IGVrcmFuYSBpc3Bpc2F0aSBwb3J1a3Ugc2EgaW1lbm9tIGZhamxhIGkgcG96aWNpam9tCisgICAgIGt1cnNvcmEgdSB0ZWtzdHUuICBaYXBhbXRpdGUgYnJvaiByZWRhIHphIDMuIGtvcmFrLgorCitOQVBPTUVOQTogIFUgZG9uamVtIGRlc25vbSB1Z2x1IG1vxb5lIHNlIHZpZGV0aSBwb3ppY2lqdSBrdXJzb3JhIGFrbyBqZQorICAgICAgICAgICB1a2xqdcSNZW5hIG9wY2lqYSAncnVsZXInICh2aWRpICA6aGVscCBydWxlciAgaWxpIGxla2NpanUgNi41LikKKworICAyLiBQcml0aXNuaXRlICBHICB6YSBwb21lcmFuamUga3Vyc29yYSBuYSBrcmFqIHRla3N0YS4KKyAgICAgUHJpdGlzbml0ZSAgMUcgIGlsaSAgZ2cgIHphIHBvbXJhbmplIGt1cnNvcmEgbmEgcG/EjWV0YWsgdGVrc3RhLgorCisgIDMuIE90a3VjYWp0ZSBicm9qIHJlZGEgbmEga29tZSBzdGUgbWFsb3ByZSBiaWxpIGkgb25kYSAgRyAuICBLdXJzb3IKKyAgICAgxIdlIHNlIHZyYXRpdGkgbmEgcmVkIG5hIGtvbWUgamUgYmlvIGthZCBzdGUgb3RrdWNhbGkgQ1RSTC1HLgorCisgIDQuIEFrbyBzdGUgc3ByZW1uaSwgaXp2csWhaXRlIGtvcmFrZSBvZCAxIGRvIDMuCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgTGVrY2lqYSA0LjI6IEtPTUFOREUgUFJFVFJBxb1JVkFOSkEKKworICAgICAgICoqIE90a3VjYWp0ZSAgLyAgaSBvbmRhIGl6cmF6IGtvamkgxb5lbGl0ZSBkYSBwb3RyYcW+aXRlLiAqKgorCisgIDEuIFUgTm9ybWFsIG1vZHUgb3RrdWNhanRlIHpuYWsgIC8gLiAgUHJpbWlldGl0ZSBkYSBzZSB6bmFrIHBvamF2aW8KKyAgICAgemFqZWRubyBzYSBrdXJzb3JvbSBuYSBkbnUgZWtyYW5hIGthbyBpIGtvZCBrb21hbmRlICA6IC4KKworICAyLiBTYWRhIG90a3VjYWp0ZSAnZ3JycmXFoWthJyA8RU5URVI+LiAgKEJleiByYXptYWthIGkgbmF2b2RuaWthLikKKyAgICAgVG8gamUgcmXEjSBrb2p1IHRyYcW+aXRlLgorCisgIDMuIFphIHBvbm92bm8gdHJhxb5lbmplIGlzdG9nIGl6cmF6YSwgb3RrdWNhanRlICBuIC4KKyAgICAgWmEgdHJhxb5lbmplIGlzdG9nIGl6cmF6YSB1IHN1cHJvdG5vbSBzbWVydSwgb3RrdWNhanRlICBOIC4KKworICA0LiBaYSB0cmHFvmVuamUgaXpyYXphIHVuYXRyYWcsIGtvcmlzdGl0ZSAgPyAgdW1lc3RvICAvIC4KKworICA1LiBaYSBwb3ZyYXRhayBuYSBwcmV0aG9kbnUgcG96aWNpanUgb3RrdWNhanRlIENUUkwtTyAoZHLFvml0ZSBDVFJMIGRvaworICAgICBwcml0aXNrYXRlIE8gKS4gIFBvbmF2bGphanRlIHphIHJhbmlqZSBwb3ppY2lqZS4gIENUUkwtSSBpZGUgbmFwcmVkLgorCistLS0+ICJncnJyZcWha2EiIGplIHBvZ3JlxaFubzsgdW1lc3RvIGdycnJlxaFrYSB0cmViYSBkYSBzdG9qaSBncmXFoWthLgorCitOQVBPTUVOQTogIEFrbyBwcmV0cmFnYSBkb8SRZSBkbyBrcmFqYSB0ZWtzdGEgdHJhxb5lbmplIMSHZSBzZSBuYXN0YXZpdGkgb2QKKwkgICBuamVnb3ZvZyBwb8SNZXRrYSBvc2ltIGFrbyBqZSBvcGNpamEgJ3dyYXBzY2FuJyBpc2tsanXEjWVuYS4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgIExla2NpamEgNC4zOiBUUkHFvUVOSkUgUEFSQSBaQUdSQURFCisKKworCSoqIE90a3VjYWp0ZSAgJSAgemEgbmFsYcW+ZW5qZSBwYXJhICksIF0gaWxpIH0gLiAqKgorCisgIDEuIFBvc3Rhdml0ZSBrdXJzb3IgbmEgYmlsbyBrb2p1IG9kICAoICwgIFsgIGlsaSAgeworICAgICBvdHZvcmVuaWggemFncmFkYSB1IHJlZHUgb3puYcSNZW5vbSBzYSAtLS0+LgorCisgIDIuIE90a3VjYWp0ZSB6bmFrICAlIC4KKworICAzLiBLdXJzb3IgxIdlIHNlIHBvbWVyaXRpIG5hIG9kZ292YXJhanXEh3UgemF0dm9yZW51IHphZ3JhZHUuCisKKyAgNC4gT3RrdWNhanRlICAlICBkYSBwb21lcml0ZSBrdXJzb3IgbmEgcHJ2dSB6YWdyYWR1IHUgcGFydS4KKworICAgICAgNS4gUG9tZXJpdGUga3Vyc29yIG5hIG5la3Ugb2QgKCwpLFssXSx7IGlsaSB9IGkgcG9ub3ZpdGUga29tYW5kdSAgJSAuCisKKy0tLT4gUmVkICggdGVzdGlyYW5qYSBvYmnEjW5paCAoIFsgdWdsYXN0aWggXSBpIHsgdml0acSNYXN0aWggfSB6YWdyYWRhLikpCisKKworTkFQT01FTkE6ICBWcmxvIGtvcmlzbm8gdSBpc3ByYXZsamFuanUga29kYSBzYSByYXNwYXJlbmltIHphZ3JhZGFtYSEKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgICAgTGVrY2lqYSA0LjQ6IEtPTUFOREEgWkFNRU5FCisKKworICAgICAgICoqIE90a3VjYWp0ZSAgOnMvc3Rhcm8vbm92by9nICBkYSB6YW1lbml0ZSAnc3Rhcm8nIHphICdub3ZvJy4gKioKKworICAxLiBQb21lcml0ZSBrdXJzb3IgbmEgcmVkIG96bmHEjWVuIHNhIC0tLT4uCisKKyAgMi4gT3RrdWNhanRlICA6cy9yZGkvcmkvIDxFTlRFUj4gLiAgUHJpbWV0aXRlIGRhIG92YSBrb21hbmRhIHphbWVuanVqZQorICAgICBzYW1vIHBydm8gInJkaSIgdSByZWR1LgorCisgIDMuIE90a3VjYWp0ZSAgOnMvcmRpL3JpL2cgLiAgRG9kYXZhbmplIG9wY2lqZSAgZyAgem5hxI1pIGRhIMSHZSBzZSBrb21hbmRhCisgICAgIGl6dnLFoWl0aSB1IGNlbG9tIHJlZHUsIHphbWVub20gc3ZpaCBwb2phdmEgbml6YSAicmRpIi4KKworLS0tPiByZGliYSByZGliaSBncmRpemUgcmVwLgorCisgIDQuIFphIHphbWVudSBzdmloIGl6cmF6YSBpem1lxJF1IG5la2EgZHZhIHJlZGEsCisgICAgIG90a3VjYWp0ZSA6Iywjcy9zdGFyby9ub3ZvL2cgICBnZGUgc3UgIywjIGtyYWpuamkgYnJvamV2aSByZWRvdmEgdSBvcHNlZ3UgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1IGtvbWUgxIdlIHNlIG9iYXZpdGkgemFtZW5hLgorICAgICBPdGt1Y2FqdGUgOiVzL3N0YXJvL25vdm8vZyAgICAgemEgemFtZW51IHN2aWggaXpyYXphIHUgY2Vsb20gdGVrc3R1LgorICAgICBPdGt1Y2FqdGUgOiVzL3N0YXJvL25vdm8vZ2MgICAgemEgbmFsYcW+ZW5qZSBzdmloIGl6cmF6YSB1IHRla3N0dSBpCisgICAgIAkJCSAgICAgICAgICAgIHBvdHZyZHUgemFtZW5lLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSAgICAgIFJFWklNRSBsZWtjaWplIDQKKworCisgIDEuIENUUkwtRyAgcHJpa2F6dWplIHBvemljaWp1IGt1cnNvcmEgdSB0ZWtzdHUgaSBzdGF0dXMgZmFqbGEuCisgICAgICAgICAgICAgRyAgcG9tZXJhIGt1cnNvciBuYSBrcmFqIHRla3N0YS4KKyAgICAgYnJvaiAgICBHICBwb21lcmEga3Vyc29yIG5hIG5hdmVkZW5pIHJlZC4KKyAgICAgICAgICAgIGdnICBwb21lcmEga3Vyc29yIG5hIHBydmkgcmVkIHRla3N0YS4KKworICAyLiBLdWNhbmplbSAgLyAgc2EgaXpyYXpvbSB0YWogaXpyYXogc2UgdHJhxb5pIFVOQVBSRUQuCisgICAgIEt1Y2FuamVtICA/ICBzYSBpenJhem9tIHRhaiBpenJheiBzZSB0cmHFvmkgVU5BWkFELgorICAgICBQb3NsZSBrb21hbmRlIHRyYcW+ZW5qYSBrb3Jpc3RpdGUgIG4gIHphIG5hbGHFvmVuamUgaXpyYXphIHUgaXN0b20KKyAgICAgc21lcnUsIGEgIE4gIHphIG5hbGHFvmVuamUgdSBzdXByb3Rub20gc21lcnUuCisgICAgIENUUkwtTyB2cmHEh2Ega3Vyc29yIG5hIHByZXRob2RudSBwb3ppY2lqdSwgYSBDVFJMLUkgbmEgbmFyZWRudS4KKworICAzLiBLdWNhbmplbSAgJSAga2FkIGplIGt1cnNvciBuYSB6YWdyYWRpIG9uIHNlIHBvbWVyYSBuYSBuamVuIHBhci4KKworICA0LiBaYSB6YW1lbnUgcHJ2b2cgaXpyYXphIHN0YXJvIHphIGl6cmF6IG5vdm8gICAgICAgICAgICA6cy9zdGFyby9ub3ZvLworICAgICBaYSB6YW1lbnUgc3ZpaCBpenJhemEgdSBjZWxvbSByZWR1ICAgICAgICAgICAgICAgICAgICA6cy9zdGFyby9ub3ZvL2cKKyAgICAgWmEgemFtZW51IHN2aWggaXpyYXphIHUgb3BzZWd1IGxpbmlqYSAjLCMgICAgICAgICAgICAgOiMsI3Mvc3Rhcm8vbm92by9nCisgICAgIFphIHphbWVudSB1IGNlbG9tIHRla3N0dSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDolcy9zdGFyby9ub3ZvL2cKKyAgICAgWmEgcG90dnJkdSBzdmFrZSB6YW1lbmUgZG9kYWp0ZSAnYycJCSAgIDolcy9zdGFyby9ub3ZvL2djCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQlMZWtjaWphIDUuMTogSVpWUsWgQVZBTkpFIFNQT0xKQcWgTkpJSCBLT01BTkRJCisKKworICAqKiBPdGt1Y2FqdGUgIDohICBwYSBzcG9samHFoW5qdSBrb21hbmR1IGtvanUgxb5lbGl0ZSBkYSBpenZyxaFpdGUuICoqCisKKyAgMS4gT3RrdWNhanRlIHBvem5hdHUga29tYW5kdSAgOiAgZGEgYmlzdGUgbmFtZXN0aWxpIGt1cnNvciBuYSBkbm8KKyAgICAgZWtyYW5hLiAgVGltZSBvbW9ndcSHYXZhdGUgdW5vcyBrb21hbmRlIHUga29tYW5kbm9qIGxpbmlqaSBlZGl0b3JhLgorCisgIDIuIE90a3VjYWp0ZSB6bmFrICAhICAodXp2acSNbmlrKS4gIE92aW1lIG9tb2d1xIdhdmF0ZQorICAgICBpenZyxaFhdmFuamUgYmlsbyBrb2plIHNwb2xqYcWhbmplIGtvbWFuZGUuCisKKyAgMy4gS2FvIHByaW1lciBvdGt1Y2FqdGUgICBscyAgIHBvc2xlICEgaSBwcml0aXNuaXRlIDxFTlRFUj4uICBPdm8gxIdlCisgICAgIHByaWthemF0aSBzYWRyxb5haiBkaXJla3RvcmlqdW1hLCBrYW8gZGEgc3RlIG5hIGtvbWFuZG5vbSBwcm9tcHR1LgorICAgICBPdGt1Y2FqdGUgICA6IWRpciAgIGFrbyAgIDohbHMgICBuZSByYWRpLgorCitOQVBPTUVOQTogIE5hIG92YWogbmHEjWluIG1vZ3XEh2UgamUgaXp2csWhaXRpIGJpbG8ga29qdSBzcG9samHFoW5qdSBrb21hbmR1LAorICAgICAgICAgICB6YWplZG5vIHNhIG5qZW5pbSBhcmd1bWVudGltYS4KKworTkFQT01FTkE6ICBTdmUgIDogIGtvbWFuZGUgc2UgaXp2csWhYXZhanUgcG/FoXRvIHByaXRpc25ldGUgPEVOVEVSPiAuCisJICAgVSBkYWxqZW0gdGVrc3R1IHRvIG5lxIdlbW8gdXZlayBuYXBvbWluamF0aS4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgTGVrY2lqYSA1LjI6IFZJxaBFIE8gU05JTUFOSlUgRkFKTE9WQQorCisgICAgICAgICAgICoqIFphIHNuaW1hbmplIHByb21lbmEsIG90a3VjYWp0ZSAgOncgSU1FX0ZBSkxBIC4gKioKKworICAxLiBPdGt1Y2FqdGUgIDohZGlyICBpbGkgIDohbHMgIHphIHByZWdsZWQgc2FkcsW+YWphIGRpcmVrdG9yaWp1bWEuCisgICAgIFZlxIcgem5hdGUgZGEgbW9yYXRlIHByaXRpc251dGkgPEVOVEVSPiBwb3NsZSB0b2dhLgorCisgIDIuIEl6YWJlcml0ZSBpbWUgZmFqbGEga29qaSBqb8WhIG5lIHBvc3RvamksIG5wci4gVEVTVC4KKworICAzLiBPdGt1Y2FqdGU6CSA6dyBURVNUICAgKGdkZSBqZSBURVNUIGltZSBrb2plIHN0ZSBpemFicmFsaS4pCisKKyAgNC4gVGltZSDEh2V0ZSBzbmltaXRpIGNlbyBmYWpsIChWaW0gVHV0b3IpIHBvZCBpbWVub20gVEVTVC4KKyAgICAgWmEgcHJvdmVydSwgb3RrdWNhanRlIG9wZXQgIDohZGlyICBpbGkgIDohbHMgemEgcHJlZ2xlZAorICAgICBzYWRyxb5hamEgZGlyZWt0b3JpanVtYS4KKworTkFQT01FTkE6ICBBa28gYmlzdGUgbmFwdXN0aWxpIFZpbSBpIHBvbm92byBnYSBwb2tyZW51bGkgc2EgdmltIFRFU1QgLAorICAgICAgICAgICB0ZWtzdCBiaSBiaW8gdGHEjW5hIGtvcGlqYSBvdm9nIGZhamxhIHUgdHJlbnV0a3Uga2FkIHN0ZQorCSAgIGdhIHNuaW1pbGkuCisKKyAgNS4gSXpicmnFoWl0ZSBmYWpsIHRha28gxaF0byDEh2V0ZSBvdGt1Y2F0aSAoTVMtRE9TKToJOiFkZWwgVEVTVAorCQkJCSAgICAgICAgIGlsaSAoVW5peCk6CTohcm0gVEVTVAorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICBMZWtjaWphIDUuMzogU05JTUFOSkUgT1pOQcSMRU5PRyBURUtTVEEKKworCisgICAqKiBEYSBiaXN0ZSBzbmltaWxpIGRlbyB0ZWtzdGEsIG90a3VjYWp0ZSAgdiAgcG9rcmV0ICA6dyBJTUVfRkFKTEEgKioKKworICAxLiBQb21lcml0ZSBrdXJzb3IgbmEgb3Z1IGxpbmlqdS4KKworICAyLiBQcml0aXNuaXRlICB2ICBpIHBvbWVyaXRlIGt1cnNvciBwZXQgcmVkb3ZhIGlzcG9kLiAgUHJpbWV0aXRlIGRhIGplCisgICAgIHRla3N0IG96bmHEjWVuIGludmVyem5vLgorCisgIDMuIFByaXRpc25pdGUgIDogLiAgTmEgZG51IGVrcmFuYSBwb2phdmnEh2Ugc2UgIDonPCwnPiAuCisKKyAgNC4gT3RrdWNhanRlICB3IFRFU1QgICwgZ2RlIGplIFRFU1QgaW1lIGZhamxhIGtvamkgam/FoSBuZSBwb3N0b2ppLgorICAgICBQcm92ZXJpdGUgZGEgemFpc3RhIHBpxaFlICA6JzwsJz53IFRFU1QgIHByZSBuZWdvIMWhdG8gcHJpdGlzbmV0ZSA8RU5URVI+LgorCisgIDUuIFZpbSDEh2Ugc25pbWl0aSBvem5hxI1lbmkgdGVrc3QgdSBURVNULiAgUHJvdmVyaXRlIHNhICA6IWRpciAgaWxpICAhbHMgLgorICAgICBOZW1vanRlIGpvxaEgYnJpc2F0aSBmYWpsISAgS29yaXN0acSHZW1vIGdhIHUgbmFyZWRub2ogbGVrY2lqaS4KKworTkFQT01FTkE6ICBLb21hbmRhICB2ICB6YXBvxI1pbmplIHZpenVlbG5vIG96bmHEjWF2YW5qZS4gIE1vxb5ldGUgcG9tZXJhdGkga3Vyc29yCisgICAgICAgICAgIGkgdGFrbyBtZW5qYXRpIHZlbGnEjWludSBvem5hxI1lbm9nIHRla3N0YS4gIE9uZGEgbW/FvmV0ZSB1cG90cmViaXRpCisgICAgICAgICAgIG9wZXJhdG9yZSBuYWQgdGVrc3RvbS4gIE5hIHByaW1lciwgIGQgIMSHZSBpemJyaXNhdGkgb3puYcSNZW5pIHRla3N0LgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgTGVrY2lqYSA1LjQ6IFXEjElUQVZBTkpFIEZBSkxBIFUgVEVLU1QKKworCisgICAgICAgKiogWmEgdWJhY2l2YW5qZSBzYWRyxb5hamEgZmFqbGEsIG90a3VjYWp0ZSAgOnIgSU1FX0ZBSkxBICAqKgorCisgIDEuIFBvc3Rhdml0ZSBrdXJzb3IgaXpuYWQgb3ZlIGxpbmlqZS4KKworTkFQT01FTkE6ICBQb8WhdG8gaXp2csWhaXRlIDIuIGtvcmFrIHZpZGXEh2V0ZSB0ZWtzdCBpeiBsZWtjaWplIDUuMy4gIFRhZGEKKyAgICAgICAgICAgcG9tZXJpdGUga3Vyc29yIERPTEUgZGEgYmlzdGUgcG9ub3ZvIHZpZGVsaSBvdnUgbGVrY2lqdS4KKworICAyLiBVxI1pdGFqdGUgZmFqbCBURVNUIGtvcmlzdGXEh2kga29tYW5kdSAgOnIgVEVTVCAgZ2RlIGplIFRFU1QgaW1lIGZhamxhCisgICAgIGtvamUgc3RlIGtvcmlzdGlsaSB1IHByZXRob2Rub2ogbGVrY2lqaS4gIFNhZHLFvmFqIHXEjWl0YW5vZyBmYWpsYSBqZQorICAgICB1YmHEjWVuIGlzcG9kIGt1cnNvcmEuCisKKyAgMy4gRGEgYmlzdGUgcHJvdmVyaWxpIGRhIGplIGZhamwgdcSNaXRhbiwgdnJhdGl0ZSBrdXJzb3IgdW5hemFkIGkKKyAgICAgcHJpbWV0aXRlIGR2ZSBrb3BpamUgbGVrY2lqZSA1LjMsIG9yaWdpbmFsbnUgaSBvbnUgaXogZmFqbGEuCisKK05BUE9NRU5BOiAgVGFrb8SRZSBtb8W+ZXRlIHXEjWl0YXRpIGl6bGF6IHNwb2xqYcWhbmplIGtvbWFuZGUuICBOYSBwcmltZXIsCisJICAgOnIgIWxzICDEh2UgdcSNaXRhdGkgaXpsYXoga29tYW5kZSAgbHMgIGkgcG9zdGF2aXRpIGdhIGlzcG9kCisgICAgICAgICAgIGt1cnNvcmEuCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgICAgICBSRVpJTUUgbGVrY2lqZSA1CisKKworICAxLiAgOiFrb21hbmRhICBpenZyxaFhdmEgc3BvbGphxaFuanUga29tYW5kdS4KKworICAgICAgS29yaXNuaSBwcmltZXJpOgorCSAoTVMtRE9TKQkgIChVbml4KQorCSAgOiFkaXIJCSAgIDohbHMJCSAgIC0gIHByZWdsZWQgc2FkcsW+YWphIGRpcmVrdG9yaWp1bWEuCisJICA6IWRlbCBGQUpMICAgICAgIDohcm0gRkFKTCAgICAgICAtICBicmnFoWUgZmFqbCBGQUpMLgorCisgIDIuICA6dyBGQUpMICB6YXBpc3VqZSB0cmVudXRuaSB0ZWtzdCBuYSBkaXNrIHBvZCBpbWVub20gRkFKTC4KKworICAzLiAgdiAgcG9rcmV0ICA6dyBJTUVfRkFKTEEgIHNuaW1hIHZpenVlbG5vIG96bmHEjWVuZSByZWRvdmUgdSBmYWpsCisgICAgICBJTUVfRkFKTEEuCisKKyAgNC4gIDpyIElNRV9GQUpMQSAgdcSNaXRhdmEgZmFqbCBJTUVfRkFKTEEgc2EgZGlza2EgaSBzdGF2bGphCisgICAgICBuamVnb3Ygc2FkcsW+YWogaXNwb2Qga3Vyc29yYS4KKworICA1LiAgOnIgIWRpciAgdcSNaXRhdmEgaXpsYXoga29tYW5kZSBkaXIgaSBwb3N0YXZsamEgZ2EgaXNwb2Qga3Vyc29yYS4KKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJIExla2NpamEgNi4xOiBLT01BTkRBIE9UVk9SSQorCisKKwkqKiBQcml0aXNuaXRlICBvICBkYSBiaXN0ZSBvdHZvcmlsaSByZWQgaXNwb2Qga3Vyc29yYQorCSAgIGkgcHJlxaFsaSB1IEluc2VydCBtb2QuICoqCisKKyAgMS4gUG9tZXJpdGUga3Vyc29yIG5hIHNsZWRlxIdpIHJlZCBvem5hxI1lbiBzYSAtLS0+LgorCisgIDIuIE90a3VjYWp0ZSBtYWxvICBvICBkYSBiaXN0ZSBvdHZvcmlsaSBub3ZpIHJlZCBJU1BPRCBrdXJzb3JhCisgICAgIGkgcHJlxaFsaSB1IEluc2VydCBtb2QuCisKKyAgMy4gT3RrdWNhanRlIG5la2kgdGVrc3QgaSBvbmRhIHByaXRpc25pdGUgPEVTQz4gZGEgYmlzdGUgaXphxaFsaQorICAgICBpeiBJbnNlcnQgbW9kYS4KKworLS0tPiBLYWQgcHJpdGlzbmV0ZSAgbyAga3Vyc29yIHByZWxhemkgdSBub3Zvb3R2b3JlbmkgcmVkIHUgSW5zZXJ0IG1vZHUuCisKKyAgNC4gWmEgb3R2YXJhbmplIHJlZGEgSVpOQUQga3Vyc29yYSwgdW1lc3RvIG1hbG9nIG90a3VjYWp0ZSB2ZWxpa28gTyAuCisgICAgIElzcHJvYmFqdGUgbmEgZG9uamVtIHJlZHUgb3puYcSNZW5vbSBzYSAtLS0+LgorCistLS0+IE90dm9yaXRlIHJlZCBpem5hZCBvdm9nIGt1Y2FuamVtIHZlbGlrb2cgIE8gIGRvayBqZSBrdXJzb3IgdSBvdm9tIHJlZHUuCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQlMZWtjaWphIDYuMjogS09NQU5EQSBET0RBSgorCisKKwkgICAgICoqIE90a3VjYWp0ZSAgYSAgemEgZG9kYXZhbmplIHRla3N0YSBJWkEga3Vyc29yYS4gKioKKworICAxLiBQb21lcml0ZSBrdXJzb3IgbmEgcG/EjWV0YWsgc2xlZGXEh2VnIHJlZGEgb3puYcSNZW5vZyBzYSAtLS0+LgorICAKKyAgMi4gS3VjYWp0ZSAgZSAgZG9rIGt1cnNvciBuZSBkb8SRZSBuYSBrcmFqIHJlxI1pICByZSAuCisKKyAgMy4gT3RrdWNhanRlICBhICAobWFsbykgZGEgYmlzdGUgZG9kYWxpIHRla3N0IElaQSBrdXJzb3JhLgorCisgIDQuIERvcHVuaXRlIHJlxI0ga2FvIMWhdG8gamUgdSByZWR1IGlzcG9kLiAgUHJpdGlzbml0ZSA8RVNDPiB6YSBpemxhemFrCisgICAgIGl6IEluc2VydCBtb2RhLgorCisgIDUuIFNhICBlICBwcmXEkWl0ZSBuYSBuYXJlZG51IG5lcG90cHVudSByZcSNIGkgcG9ub3ZpdGUga29yYWtlIDMgaSA0LgorICAKKy0tLT4gT3ZhaiByZSBvbW9ndcSHYXZhIHZlIGRvZGF2IHRla3N0YSB1IG5la29tIHJlZHUuCistLS0+IE92YWogcmVkIG9tb2d1xIdhdmEgdmXFvmJhbmplIGRvZGF2YW5qYSB0ZWtzdGEgdSBuZWtvbSByZWR1LgorCitOQVBPTUVOQTogIEtvbWFuZGUgYSwgaSwgaSAgQSAgYWt0aXZpcmFqdSBpc3RpIEluc2VydCBtb2QsIGplZGluYQorICAgICAgICAgICByYXpsaWthIGplIHUgcG96aWNpamkgb2Qga29qZSDEh2Ugc2UgdGVrc3QgdWJhY2l2YXRpLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgIExla2NpamEgNi4zOiBEUlVHSSBOQcSMSU4gWkFNRU5FCisKKworICAgICAgKiogT3RrdWNhanRlIHZlbGlrbyAgUiAgZGEgYmlzdGUgemFtZW5pbGkgdmnFoWUgb2QgamVkbm9nIHpuYWthLiAqKgorCisgIDEuIFBvbWVyaXRlIGt1cnNvciBuYSBwcnZpIHNsZWRlxIdpIHJlZCBvem5hxI1lbiBzYSAtLS0+LgorICAgICBQb21lcml0ZSBrdXJzb3IgbmEgcG/EjWV0YWsgcHJ2b2cgIHh4eCAuCisKKyAgMi4gUHJpdGlzbml0ZSAgUiAgaSBvdGt1Y2FqdGUgYnJvaiBrb2ppIGplIHJlZCBpc3BvZCwKKyAgICAgdGFrbyBkYSB6YW1lbmkgeHh4IC4KKworICAzLiBQcml0aXNuaXRlIDxFU0M+IHphIGl6bGF6YWsgaXogUmVwbGFjZSBtb2RhLgorICAgICBQcmltZXRpdGUgZGEgamUgb3N0YXRhayByZWRhIG9zdGFvIG5lcHJvbWVuamVuLgorCisgIDQuIFBvbm92aXRlIGtvcmFrZSBkYSBiaXN0ZSB6YW1lbmlsaSBkcnVnbyB4eHguCisKKy0tLT4gRG9kYXZhbmplIDEyMyBuYSB4eHggZGFqZSB4eHguCistLS0+IERvZGF2YW5qZSAxMjMgbmEgNDU2IGRhamUgNTc5LgorCitOQVBPTUVOQTogIFJlcGxhY2UgbW9kIGplIGthbyBJbnNlcnQgbW9kLCBzIHRvbSByYXpsaWtvbSDFoXRvIHN2YWtpCisgICAgICAgICAgIHVuZXRpIHpuYWsgYnJpxaFlIHZlxIcgcG9zdG9qZcSHaS4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCUxla2NpamEgNi40OiBLT1BJUkFOSkUgSSBMRVBMSkVOSkUgVEVLU1RBCisKKworICAgICoqIEtvcmlzdGl0ZSBvcGVyYXRvciAgeSAgemEga29waXJhbmplIGEgIHAgIHphIGxlcGxqZW5qZSB0ZWtzdGEuICoqCisKKyAgMS4gUG9tZXJpdGUga3Vyc29yIG5hIHJlZCBzYSAtLS0+ICBpIHBvc3Rhdml0ZSBrdXJzb3IgcG9zbGUgImEpIi4KKyAgCisgIDIuIEFrdGl2aXJhanRlIFZpc3VhbCBtb2Qgc2EgIHYgIGkgcG9tZXJpdGUga3Vyc29yIHN2ZSBkbyBpc3ByZWQgInBydmkiLgorICAKKyAgMy4gUHJpdGlzbml0ZSAgeSAgZGEgYmlzdGUga29waXJhbGkgb3puYcSNZW5pIHRla3N0IHUgaW50ZXJuaSBiYWZlci4KKworICA0LiBQb21lcml0ZSBrdXJzb3IgZG8ga3JhamEgc2xlZGXEh2VnIHJlZGE6ICBqJAorCisgIDUuIFByaXRpc25pdGUgIHAgIGRhIGJpc3RlIHphbGVwaWxpIHRla3N0LiAgT25kYSBvdGt1Y2FqdGU6ICBhIGRydWdpIDxFU0M+IC4KKworICA2LiBVcG90cmViaXRlIFZpc3VhbCBtb2QgZGEgb3puYcSNaXRlICIgcmVkLiIsIGtvcGlyYWp0ZSBzYSAgeSAsIGt1cnNvcgorICAgICBwb21lcml0ZSBuYSBrcmFqIHNsZWRlxIdlZyByZWRhIHNhICBqJCAgaSB0YW1vIHphbGVwaXRlIHRla3N0IHNhICBwIC4KKworLS0tPiAgYSkgb3ZvIGplIHBydmkgcmVkLgorICAgICAgYikKKworTkFQT01FTkE6ICB0YWtvxJFlIG1vxb5ldGUga29yaXN0aXRpICB5ICBrYW8gb3BlcmF0b3I7ICB5dyAga29waXJhIGplZG51IHJlxI0uCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgIExla2NpamEgNi41OiBQT1NUQVZMSkFOSkUgT1BDSUpBCisKKworICoqIFBvc3Rhdml0ZSBvcGNpanUgdGFrbyBkYSB0cmHFvmVuamUgaSB6YW1lbmEgaWdub3JpxaF1IHZlbGnEjWludSBzbG92YSAqKgorCisgIDEuIFBvdHJhxb5pdGUgcmXEjSAncmF6bGlrYSc6ICAvcmF6bGlrYSA8RU5URVI+CisgICAgIFBvbm92aXRlIG5la29saWtvIHB1dGEgcHJpdGlza29tIG5hICBuIC4KKworICAyLiBBa3RpdmlyYWp0ZSBvcGNpanUgJ2ljJyAoSWdub3JlIGNhc2UpOiAgOnNldCBpYworCisgIDMuIFBvbm92byBwb3RyYcW+aXRlIHJlxI0gJ3Jhemxpa2EnIHByaXRpc2tvbSBuYSAgbgorICAgICBQcmltZXRpdGUgZGEgc3Ugc2FkYSBwcm9uYcSRZW5pIGkgUkFaTElLQSBpIFJhemxpa2EuCisKKyAgNC4gQWt0aXZpcmFqdGUgb3BjaWplICdobHNlYXJjaCcgaSAnaW5jc2VhcmNoJzogIDpzZXQgaGxzIGlzCisKKyAgNS4gUG9ub3ZvIG90a3VjYWp0ZSBrb21hbmR1IHRyYcW+ZW5qYSBpIHVvxI1pdGUgcmF6bGlrZTogIC9yYXpsaWthIDxFTlRFUj4KKworICA2LiBaYSBkZWFrdGl2aXJhbmplIG9wY2lqZSAgaWMgIGt1Y2FqdGU6ICA6c2V0IG5vaWMKKworTkFQT01FTkE6ICBaYSBuZW96bmHEjWF2YW5qZSBwcm9uYcSRZW5paCBpenJhemEgb3RrdWNhanRlOiAgOm5vaGxzZWFyY2gKK05BUE9NRU5BOiAgQWtvIMW+ZWxpdGUgZGEgbmUgcmF6bGlrdWpldGUgdmVsacSNaW51IHNsb3ZhIHUgc2FtbyBqZWRub2oga29tYW5kaQorCSAgIHRyYcW+ZW5qYSwgZG9kYWp0ZSAgXGMgIHUgaXpyYXo6ICAvcmF6bGlrYVxjIDxFTlRFUj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICAgICAgUkVaSU1FIGxla2NpamUgNgorCisgIDEuIFByaXRpc25pdGUgIG8gIHphIG90dmFyYW5qZSByZWRhIElTUE9EIGt1cnNvcmEgaSBwcmVsYXphayB1IEluc2VydCBtb2QuCisgICAgIFByaXRpc25pdGUgIE8gIHphIG90dmFyYW5qZSByZWRhIElaTkFEIGt1cnNvcmEuCisKKyAgMi4gUHJpdGlzbml0ZSAgYSAgemEgdW5vcyB0ZWtzdGEgSVpBIGt1cnNvcmEuCisgICAgIFByaXRpc25pdGUgIEEgIHphIHVub3MgdGVrc3RhIG5hIGtyYWp1IHJlZGEuCisKKyAgMy4gS29tYW5kYSAgZSAgcG9tZXJhIGt1cnNvciBuYSBrcmFqIHJlxI1pLgorCisgIDQuIE9wZXJhdG9yICB5ICBrb3BpcmEgdGVrc3QsICBwICBnYSBsZXBpLgorCisgIDUuIEt1Y2FuamUgdmVsaWtvZyAgUiAgYWt0aXZpcmEgUmVwbGFjZSBtb2QgZG9rIG5lIHByaXRpc25ldGUgPEVTQz4gLgorCisgIDYuIEt1Y2FuamUgIjpzZXQgeHh4IiBha3RpdmlyYSBvcGNpanUgInh4eCIuICBOZWtlIG9wY2lqZSBzdToKKyAgCSdpYycgJ2lnbm9yZWNhc2UnCW5lIHJhemxpa3VqZSB2ZWxpa2EvbWFsYSBzbG92YSBwcmkgdHJhxb5lbmp1CisJJ2lzJyAnaW5jc2VhcmNoJwlwcmlrYXp1amUgcHJvbmHEkWVuIHRla3N0IGRvayBrdWNhdGUgaXpyYXoKKwknaGxzJyAnaGxzZWFyY2gnCW96bmHEjWF2YSBpbnZlcnpubyBzdmUgcHJvbmHEkWVuZSBpenJhemUKKyAgICAgTW/FvmV0ZSBrb3Jpc3RpdGUgZHVnbyBpbGkga3JhdGtvIGltZSBvcGNpamUuCisKKyAgNy4gSXNwcmVkIGltZW5hIG9wY2lqZSBzdGF2aXRlICJubyIgZGEgamUgZGVha3RpdmlyYXRlOiAgOnNldCBub2ljCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgICAgTGVrY2lqYSA3LjE6IERPQklKQU5KRSBQT01PxIZJCisKKworCQkgICAqKiBLb3Jpc3RpdGUgb24tbGluZSBzaXN0ZW0gemEgcG9tb8SHICoqCisKKyAgVmltIGltYSBkZXRhbGphbiBvbi1saW5lIHNpc3RlbSB6YSBwb21vxIcuICBaYSBwb8SNZXRhaywgcG9rdcWhYWp0ZSBuZcWhdG8KKyAgb2Qgc2xlZGXEh2VnOgorCS0gcHJpdGlzbml0ZSB0YXN0ZXIgPEhFTFA+IChha28gZ2EgaW1hdGUgbmEgdGFzdGF0dXJpKQorCS0gcHJpdGlzbml0ZSB0YXN0ZXIgPEYxPiAoYWtvIGdhIGltYXRlIG5hIHRhc3RhdHVyaSkKKwktIG90a3VjYWp0ZSAgOmhlbHAgPEVOVEVSPgorCisgIFByb8SNaXRhanRlIHRla3N0IHUgcHJvem9ydSBwb21vxIdpIGRhIGJpc3RlIG5hdcSNaWxpIHBvbW/EhyByYWRpLgorICBLdWNhbmplbSAgQ1RSTC1XIENUUkwtVyAgcHJlbGF6aXRlIGl6IGplZG5vZyBwcm96b3JhIHUgZHJ1Z2kuCisgIE90a3VjYWp0ZSAgOnEgPEVOVEVSPiAgZGEgemF0dm9yaXRlIHByb3pvciBwb21vxIdpLgorCisgIFBvbW/EhyBvIHByYWt0acSNbm8gYmlsbyBrb2pvaiB0ZW1pIG1vxb5ldGUgZG9iaXRpIGRvZGF2YW5qZW0gYXJndW1lbnRhCisgIGtvbWFuZGkgIjpoZWxwIi4gIFBva3XFoWFqdGUgb3ZvIChuZSB6YWJvcmF2aXRlIDxFTlRFUj4gbmEga3JhanUpOgorCisJOmhlbHAgdworCTpoZWxwIGNfQ1RSTC1ECisJOmhlbHAgaW5zZXJ0LWluZGV4CisJOmhlbHAgdXNlci1tYW51YWwKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQlMZWtjaWphIDcuMjogUFJBVkxKRU5KRSBTVEFSVE5PRyBTS1JJUFRBCisKKworCQkgICAqKiBBa3RpdmlyYWp0ZSBtb2d1xIdub3N0aSBlZGl0b3JhICoqCisKKyAgVmltIGltYSBtbm9nbyB2acWhZSBtb2d1xIdub3N0aSBuZWdvIFZpLCBhbGkgdmXEh2luYSBuaWplIGF1dG9tYXRza2kKKyAgYWt0aXZpcmFuYS4gIFphIGRvZGF0bmUgbW9ndcSHbm9zdGkgbmFwcmF2aXRlICJ2aW1yYyIgZmFqbC4KKworICAxLiBPdHZvcml0ZSAidmltcmMiIGZhamwuICBPdm8gemF2aXNpIG9kIHZhxaFlZyBzaXN0ZW1hOgorCTplIH4vLnZpbXJjCQl6YSBVbml4CisJOmUgJFZJTS9fdmltcmMJCXphIE1TLVdpbmRvd3MKKworICAyLiBPbmRhIHXEjWl0YWp0ZSBwcmltZXIgc2FkcsW+YWphICJ2aW1yYyIgZmFqbGE6CisJOnIgJFZJTVJVTlRJTUUvdmltcmNfZXhhbXBsZS52aW0KKworICAzLiBTbmltaXRlIGZhamwgc2E6CisJOncKKworICBTbGVkZcSHaSBwdXQga2FkYSBwb2tyZW5ldGUgVmltLCBib2plbmplIHNpbnRha3NlIHRla3N0YSBiacSHZQorICBha3RpdmlyYW5vLiBTdmEgc3ZvamEgcG9kZcWhYXZhbmphIG1vxb5ldGUgZG9kYXRpIHUgInZpbXJjIiBmYWpsLgorICBaYSB2acWhZSBpbmZvcm1hY2lqYSBvdGt1Y2FqdGUgIDpoZWxwIHZpbXJjLWludHJvCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgIExla2NpamEgNy4zOiBBVVRPTUFUU0tPIERPVlLFoEFWQU5KRQorCisKKwkqKiBEb3ZyxaFhdmFuamUga29tYW5kbmUgbGluaWplIHNhIENUUkwtRCBpIDxUQUI+ICoqCisKKyAgMS4gUG9kZXNpdGUgVmltIGRhIG5lIGJ1ZGUgdSBWaS1rb21wYXRpYmlsbm9tIG1vZHU6ICA6c2V0IG5vY3AKKworICAyLiBQb2dsZWRhanRlIGtvamkgZmFqbG92aSBwb3N0b2plIHUgZGlyZWt0b3JpanVtdTogIDohbHMgIGlsaSAgOiFkaXIKKworICAzLiBPdGt1Y2FqdGUgcG/EjWV0YWsga29tYW5kZTogIDplCisKKyAgNC4gT3RrdWNhanRlICBDVFJMLUQgIGkgVmltIMSHZSBwcmlrYXphdGkgc3Bpc2FrIGtvbWFuZGkga29qZSBwb8SNaW5qdSBzYSAiZSIuCisKKyAgNS4gUHJpdGlzbml0ZSA8VEFCPiAgaSBWaW0gxIdlIGRvcHVuaXRpIGltZSBrb21hbmRlIHUgIjplZGl0Ii4KKworICA2LiBEb2RhanRlIHJhem1hayBpIHBvxI1ldGFrIGltZW5hIHBvc3RvamXEh2VnIGZhamxhOiAgOmVkaXQgRkEKKworICA3LiBQcml0aXNuaXRlIDxUQUI+LiAgVmltIMSHZSBkb3B1bml0aSBpbWUgZmFqbGEgKGFrbyBqZSBqZWRpbnN0dmVubykuCisKK05BUE9NRU5BOiAgTW9ndcSHZSBqZSBkb3B1bml0aSBtbm9nZSBrb21hbmRlLiAgU2FtbyBwcm9iYWp0ZSBDVFJMLUQgaSA8VEFCPi4KKyAgICAgICAgICAgTmFyb8SNaXRvIGplIGtvcmlzbm8gemEgIDpoZWxwICBrb21hbmRlLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSAgICAgIFJFWklNRSBsZWtjaWplIDcKKworCisgIDEuIE90a3VjYWp0ZSAgOmhlbHAgIGlsaSBwcml0aXNuaXRlIDxGMT4gaWxpIDxIZWxwPiAgemEgcG9tb8SHLgorCisgIDIuIE90a3VjYWp0ZSAgOmhlbHAga29tYW5kYSAgYmlzdGUgZG9iaWxpIHBvbW/EhyB6YSB0dSBrb21hbmR1LgorCisgIDMuIE90a3VjYWp0ZSAgQ1RSTC1XIENUUkwtVyAgemEgcHJlbGF6YWsgdSBkcnVnaSBwcm96b3IuCisKKyAgNC4gT3RrdWNhanRlICA6cSAgZGEgemF0dm9yaXRlIHByb3pvciBwb21vxIdpLgorCisgIDUuIE5hcHJhdml0ZSB2aW1yYyBzdGFydG5pIHNrcmlwdCB6YSBha3RpdmlyYW5qZSBwb2RlxaFhdmFuamEga29qYQorICAgICB2YW0gb2Rnb3ZhcmFqdS4KKworICA2LiBEb2sga3VjYXRlIG5la3Ugb2QgIDogIGtvbWFuZGksIHByaXRpc25pdGUgQ1RSTC1EIGRhIGJpc3RlIHZpZGVsaSBtb2d1xIdlCisgICAgIHZyZWRub3N0aS4gIFByaXRpc25pdGUgPFRBQj4gZGEgb2RhYmVyZXRlIGplZG51IG9kIG5qaWguCisKKworCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKyAgT3ZpbSBqZSBwcmlydcSNbmlrIHphdnLFoWVuLiAgTmplZ292IGNpbGogamUgYmlvIGtyYXRhayBwcmVnbGVkIFZpbSBlZGl0b3JhLAorICBrb2xpa28gZGEgb21vZ3XEh2kgbmplZ292byByZWxhdGl2bm8gamVkbm9zdGF2bm8ga29yacWhxIdlbmplLiAgUHJpcnXEjW5payBuaWplCisgIHBvdHB1biwgamVyIFZpbSBpbWEgbW5vZ28gdmnFoWUga29tYW5kaS4gIEthbyBzbGVkZcSHZSwgcHJvxI1pdGFqdGUgcHJpcnXEjW5pazoKKyAgIjpoZWxwIHVzZXItbWFudWFsIi4KKworICBaYSBkYWxqZSDEjWl0YW5qZSBpIHXEjWVuamUsIHByZXBvcnXEjXVqZW1vIGtuamlndToKKwlWaW0gLSBWaSBJbXByb3ZlZCAtIGJ5IFN0ZXZlIE91YWxsaW5lCisJSXpkYXZhxI06IE5ldyBSaWRlcnMKKyAgUHJ2YSBrbmppZ2EgcG90cHVubyBwb3N2ZcSHZW5hIFZpbS11LiAgTmFyb8SNaXRvIGtvcmlzbmEgemEgcG/EjWV0bmlrZS4KKyAgSW1hIG1ub8WhdHZvIHByaW1lcmEgaSBzbGlrYS4KKyAgVmlkaXRlIGh0dHA6Ly9pY2NmLWhvbGxhbmQub3JnL2NsaWNrNS5odG1sCisKKyAgU2xlZGXEh2Ega25qaWdhIGplIHN0YXJpamEgaSB2acWhZSBnb3ZvcmkgbyBWaS11IG5lZ28gbyBWaW0tdSwgYWxpIGplIHRha2/EkWUKKyAgcHJlcG9ydcSNdWplbW86CisJTGVhcm5pbmcgdGhlIFZpIEVkaXRvciAtIGJ5IExpbmRhIExhbWIKKwlJemRhdmHEjTogTydSZWlsbHkgJiBBc3NvY2lhdGVzIEluYy4KKyAgRG9icmEga25qaWdhIGl6IGtvamUgbW/FvmV0ZSBzYXpuYXRpIHNrb3JvIHN2ZSDFoXRvIG1vxb5ldGUgcmFkaXRpIHUgVmktanUuCisgIMWgZXN0byBpemRhbmplIGltYSBpIGluZm9ybWFjaWphIG8gVmltLXUuCisKKyAgT3ZhaiBwcmlydcSNbmlrIHN1IG5hcGlzYWxpOiBNaWNoYWVsIEMuIFBpZXJjZSBpIFJvYmVydCBLLiBXYXJlLAorICBDb2xvcmFkbyBTY2hvb2wgb2YgTWluZXMga29yaXN0ZcSHaSBpZGVqZSBDaGFybGVzYSBTbWl0aGEsCisgIENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkuICBFLW1haWw6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdS4KKworICBQcmlsYWdvxJFhdmFuamUgemEgVmltIHVyYWRpbyBqZSBCcmFtIE1vb2xlbmFhci4KKworICBQcmV2b2QgbmEgc3Jwc2tpOiBJdmFuIE5lamdlYmF1ZXIgPGlhbkB1bnMuYWMucnM+CisgIFZlcnppamEgMS4wLCBtYWovanVuaSAyMDE0Lgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLnZpbSBiL3J1bnRpbWUvdHV0b3IvdHV0b3IudmltCmluZGV4IGE0OGZmNmEuLmMzMTllMDAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IudmltCisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gdHV0b3Igc3VwcG9ydCBmaWxlCiAiIEF1dGhvcjogRWR1YXJkbyBGLiBBbWF0cmlhIDxlZmVybmExQHBsYXRlYS5wbnRpYy5tZWMuZXM+CiAiIE1haW50YWluZXI6IEJyYW0gTW9vbGVuYWFyCi0iIExhc3QgQ2hhbmdlOgkyMDEyIFNlcCAyMQorIiBMYXN0IENoYW5nZToJMjAxNCBKdW4gMjUKIAogIiBUaGlzIFZpbSBzY3JpcHQgaXMgdXNlZCBmb3IgZGV0ZWN0aW5nIGlmIGEgdHJhbnNsYXRpb24gb2YgdGhlCiAiIHR1dG9yIGZpbGUgZXhpc3QsIGkuZS4sIGEgdHV0b3IueHggZmlsZSwgd2hlcmUgeHggaXMgdGhlIGxhbmd1YWdlLgpAQCAtMzYsNiArMzYsOCBAQAogICAgICAgbGV0IHM6ZXh0ID0gIi5wbCIKICAgICBlbHNlaWYgczpsYW5nID1+ICJTbG92YWsiCiAgICAgICBsZXQgczpleHQgPSAiLnNrIgorICAgIGVsc2VpZiBzOmxhbmcgPX4gIlNlcmJpYW4iCisgICAgICBsZXQgczpleHQgPSAiLnNyIgogICAgIGVsc2VpZiBzOmxhbmcgPX4gIkN6ZWNoIgogICAgICAgbGV0IHM6ZXh0ID0gIi5jcyIKICAgICBlbHNlaWYgczpsYW5nID1+ICJEdXRjaCIKQEAgLTEyMiw2ICsxMjQsMTUgQEAKICAgZW5kaWYKIGVuZGlmCiAKKyIgVGhlIFNsb3ZhayB0dXRvciBpcyBhdmFpbGFibGUgaW4gdHdvIGVuY29kaW5ncywgZ3Vlc3Mgd2hpY2ggb25lIHRvIHVzZQorIiBOb3RlIHRoYXQgdGhlIHV0Zi04IHZlcnNpb24gaXMgdGhlIG9yaWdpbmFsLCB0aGUgY3AxMjUwIHZlcnNpb24gaXMgY3JlYXRlZAorIiBmcm9tIGl0LgoraWYgczpleHQgPX4/ICdcLnNyJworICBpZiAmZW5jID1+IDEyNTAKKyAgICBsZXQgczpleHQgPSAiLnNyLmNwMTI1MCIKKyAgZW5kaWYKK2VuZGlmCisKICIgVGhlIEN6ZWNoIHR1dG9yIGlzIGF2YWlsYWJsZSBpbiB0aHJlZSBlbmNvZGluZ3MsIGd1ZXNzIHdoaWNoIG9uZSB0byB1c2UKIGlmIHM6ZXh0ID1+PyAnXC5jcycKICAgaWYgJmVuYyA9fiAxMjUwCmRpZmYgLS1naXQgYS9zcmMvcG8vcGwuVVRGLTgucG8gYi9zcmMvcG8vcGwuVVRGLTgucG8KaW5kZXggMWQxYjliMy4uNTExZDUzMiAxMDA2NDQKLS0tIGEvc3JjL3BvL3BsLlVURi04LnBvCisrKyBiL3NyYy9wby9wbC5VVEYtOC5wbwpAQCAtMTIsNiArMTIsNyBAQAogIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEzLTA3LTA2IDE5OjMzKzAyMDBcbiIKICJQTy1SZXZpc2lvbi1EYXRlOiAyMDEwLTA4LTEwIDE4OjE1KzAyMDBcbiIKICJMYXN0LVRyYW5zbGF0b3I6IE1pa29sYWogTWFjaG93c2tpIDxtaWttYWNoQHdwLnBsPlxuIgorIkxhbmd1YWdlLVRlYW06IFxuIgogIkxhbmd1YWdlOiBwbFxuIgogIk1JTUUtVmVyc2lvbjogMS4wXG4iCiAiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04XG4iCmRpZmYgLS1naXQgYS9zcmMvcG8vcGwuY3AxMjUwLnBvIGIvc3JjL3BvL3BsLmNwMTI1MC5wbwppbmRleCBjZGMxMWI5Li44NmMwNGI3IDEwMDY0NAotLS0gYS9zcmMvcG8vcGwuY3AxMjUwLnBvCisrKyBiL3NyYy9wby9wbC5jcDEyNTAucG8KQEAgLTEyLDYgKzEyLDcgQEAKICJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMy0wNy0wNiAxOTozMyswMjAwXG4iCiAiUE8tUmV2aXNpb24tRGF0ZTogMjAxMC0wOC0xMCAxODoxNSswMjAwXG4iCiAiTGFzdC1UcmFuc2xhdG9yOiBNaWtvbGFqIE1hY2hvd3NraSA8bWlrbWFjaEB3cC5wbD5cbiIKKyJMYW5ndWFnZS1UZWFtOiBcbiIKICJMYW5ndWFnZTogcGxcbiIKICJNSU1FLVZlcnNpb246IDEuMFxuIgogIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1jcDEyNTBcbiIKZGlmZiAtLWdpdCBhL3NyYy9wby9wbC5wbyBiL3NyYy9wby9wbC5wbwppbmRleCA0NzM5MTk3Li41NjBjYWRkIDEwMDY0NAotLS0gYS9zcmMvcG8vcGwucG8KKysrIGIvc3JjL3BvL3BsLnBvCkBAIC0xMiw2ICsxMiw3IEBACiAiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTMtMDctMDYgMTk6MzMrMDIwMFxuIgogIlBPLVJldmlzaW9uLURhdGU6IDIwMTAtMDgtMTAgMTg6MTUrMDIwMFxuIgogIkxhc3QtVHJhbnNsYXRvcjogTWlrb2xhaiBNYWNob3dza2kgPG1pa21hY2hAd3AucGw+XG4iCisiTGFuZ3VhZ2UtVGVhbTogXG4iCiAiTGFuZ3VhZ2U6IHBsXG4iCiAiTUlNRS1WZXJzaW9uOiAxLjBcbiIKICJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMlxuIgo=