<<< Date Index >>>     <<< Thread Index >>>

mutt/2076: wish: complete tilde patterns



>Number:         2076
>Notify-List:    
>Category:       mutt
>Synopsis:       wish: complete tilde patterns
>Confidential:   no
>Severity:       minor
>Priority:       low
>Responsible:    mutt-dev
>State:          open
>Keywords:       
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Mon Sep 19 15:48:01 +0200 2005
>Originator:     Tamo
>Release:        1.5.11
>Organization:
http://www.momonga-linux.org/

>Environment:
any
>Description:

Just a wish.

I often forget which pattern is for enctypted messages,
and which is for signed. (Answers: ~G and ~g)

So, I just want <complete> function to complete patterns.
i.e., Press T, ~, and <Tab> to tag some messages.

>How-To-Repeat:

My situation:

Searching for an encrypted message, I push "l" key,
and...., oh well, what pattern should I use? "~g" or "~G"?
And press Ctrl-G and "!less /usr/share/doc/mutt/manual.txt"
to search for ~G..., oh wait, what message was I searching for?

>Fix:
Here is my patch.

>Add-To-Audit-Trail:

>Unformatted:
 ----gnatsweb-attachment----
 Content-Type: application/octet-stream; name="patch-1.5.11.tamo.patterns.3"
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment; filename="patch-1.5.11.tamo.patterns.3"
 
 ZGlmZiAtciAxZTFjN2M0Mzc5NzkgLXIgMTQ4MmQ3NDUwOTE2IGN1cnNfbGliLmMKLS0tIGEvY3Vy
 c19saWIuYwlNb24gU2VwIDE5IDA2OjIyOjU1IDIwMDUKKysrIGIvY3Vyc19saWIuYwlNb24gU2Vw
 IDE5IDEyOjIzOjUyIDIwMDUKQEAgLTEzMCw2ICsxMzAsNyBAQAogICAgIG11dHRfcmVmcmVzaCAo
 KTsKICAgICBnZXR5eCAoc3Rkc2NyLCB5LCB4KTsKICAgICByZXQgPSBfbXV0dF9lbnRlcl9zdHJp
 bmcgKGJ1ZiwgYnVmbGVuLCB5LCB4LCBjb21wbGV0ZSwgbXVsdGlwbGUsIGZpbGVzLCBudW1maWxl
 cywgZXMpOworICAgIGNvbXBsZXRlICY9IH4oTV9DTEVBUik7CiAgIH0KICAgd2hpbGUgKHJldCA9
 PSAxKTsKICAgQ0xFQVJMSU5FIChMSU5FUy0xKTsKLS0tIGEvY3Vyc19tYWluLmMJTW9uIFNlcCAx
 OSAwNjoyMjo1NSAyMDA1CisrKyBiL2N1cnNfbWFpbi5jCU1vbiBTZXAgMTkgMTI6MjM6NTIgMjAw
 NQpAQCAtODExLDcgKzgxMSw3IEBACiAKIAlDSEVDS19BVFRBQ0g7CiAJbXV0dF9wYXR0ZXJuX2Z1
 bmMgKE1fREVMRVRFLCBfKCJEZWxldGUgbWVzc2FnZXMgbWF0Y2hpbmc6ICIpKTsKLQltZW51LT5y
 ZWRyYXcgPSBSRURSQVdfSU5ERVggfCBSRURSQVdfU1RBVFVTOworCW1lbnUtPnJlZHJhdyA9IFJF
 RFJBV19GVUxMOwogCWJyZWFrOwogCiAjaWZkZWYgVVNFX1BPUApAQCAtODY2LDggKzg3NCw4IEBA
 CiAJICBtZW51LT5yZWRyYXcgPSBSRURSQVdfSU5ERVggfCBSRURSQVdfU1RBVFVTOwogCSAgaWYg
 KENvbnRleHQtPm1zZ2NvdW50ICYmIChTb3J0ICYgU09SVF9NQVNLKSA9PSBTT1JUX1RIUkVBRFMp
 CiAJICAgIG11dHRfZHJhd190cmVlIChDb250ZXh0KTsKLQkgIG1lbnUtPnJlZHJhdyA9IFJFRFJB
 V19GVUxMOwotCX0KKwl9CisJbWVudS0+cmVkcmF3ID0gUkVEUkFXX0ZVTEw7CiAJYnJlYWs7CSAg
 CiAKICAgICAgIGNhc2UgT1BfUVVJVDoKQEAgLTkxNSw2ICs5MjMsOCBAQAogCSAgbWVudS0+Y3Vy
 cmVudCA9IG1lbnUtPm9sZGN1cnJlbnQ7CiAJZWxzZQogCSAgbWVudS0+cmVkcmF3ID0gUkVEUkFX
 X01PVElPTjsKKwlpZiAob3AgPT0gT1BfU0VBUkNIIHx8IG9wID09IE9QX1NFQVJDSF9SRVZFUlNF
 KQorCSAgbWVudS0+cmVkcmF3ID0gUkVEUkFXX0ZVTEw7CiAJYnJlYWs7CiAKICAgICAgIGNhc2Ug
 T1BfU09SVDoKQEAgLTk2NCw3ICs5NzQsNyBAQAogCUNIRUNLX01TR0NPVU5UOwogICAgICAgICBD
 SEVDS19WSVNJQkxFOwogCW11dHRfcGF0dGVybl9mdW5jIChNX1RBRywgXygiVGFnIG1lc3NhZ2Vz
 IG1hdGNoaW5nOiAiKSk7Ci0JbWVudS0+cmVkcmF3ID0gUkVEUkFXX0lOREVYIHwgUkVEUkFXX1NU
 QVRVUzsKKwltZW51LT5yZWRyYXcgPSBSRURSQVdfRlVMTDsKIAlicmVhazsKIAogICAgICAgY2Fz
 ZSBPUF9NQUlOX1VOREVMRVRFX1BBVFRFUk46CkBAIC05NzcsMTYgKzk4NywxNiBAQAogQ0hFQ0tf
 SU1BUF9BQ0woSU1BUF9BQ0xfREVMRVRFKTsKICNlbmRpZgogCi0JaWYgKG11dHRfcGF0dGVybl9m
 dW5jIChNX1VOREVMRVRFLCBfKCJVbmRlbGV0ZSBtZXNzYWdlcyBtYXRjaGluZzogIikpID09IDAp
 Ci0JICBtZW51LT5yZWRyYXcgPSBSRURSQVdfSU5ERVggfCBSRURSQVdfU1RBVFVTOworCW11dHRf
 cGF0dGVybl9mdW5jIChNX1VOREVMRVRFLCBfKCJVbmRlbGV0ZSBtZXNzYWdlcyBtYXRjaGluZzog
 IikpOworCW1lbnUtPnJlZHJhdyA9IFJFRFJBV19GVUxMOwogCWJyZWFrOwogCiAgICAgICBjYXNl
 IE9QX01BSU5fVU5UQUdfUEFUVEVSTjoKIAogCUNIRUNLX01TR0NPVU5UOwogICAgICAgICBDSEVD
 S19WSVNJQkxFOwotCWlmIChtdXR0X3BhdHRlcm5fZnVuYyAoTV9VTlRBRywgXygiVW50YWcgbWVz
 c2FnZXMgbWF0Y2hpbmc6ICIpKSA9PSAwKQotCSAgbWVudS0+cmVkcmF3ID0gUkVEUkFXX0lOREVY
 IHwgUkVEUkFXX1NUQVRVUzsKKwltdXR0X3BhdHRlcm5fZnVuYyAoTV9VTlRBRywgXygiVW50YWcg
 bWVzc2FnZXMgbWF0Y2hpbmc6ICIpKTsKKwltZW51LT5yZWRyYXcgPSBSRURSQVdfRlVMTDsKIAli
 cmVhazsKIAogCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLXIgMWUxYzdjNDM3OTc5IC1yIDE0ODJkNzQ1
 MDkxNiBlbnRlci5jCi0tLSBhL2VudGVyLmMJTW9uIFNlcCAxOSAwNjoyMjo1NSAyMDA1CisrKyBi
 L2VudGVyLmMJTW9uIFNlcCAxOSAxMjoyMzo1MiAyMDA1CkBAIC01NjcsNiArNTY3LDE3IEBACiAJ
 ICAgIGVsc2UKIAkgICAgICBCRUVQICgpOyAvKiBsZXQgdGhlIHVzZXIga25vdyB0aGF0IG5vdGhp
 bmcgbWF0Y2hlZCAqLwogCSAgICByZXBsYWNlX3BhcnQgKHN0YXRlLCAwLCBidWYpOworCSAgfQor
 CSAgZWxzZSBpZiAoZmxhZ3MgJiBNX1BBVFRFUk4pCisJICB7CisJICAgIGlmICgoaSA9IHN0YXRl
 LT5jdXJwb3MpICYmIHN0YXRlLT53YnVmW2kgLSAxXSA9PSAnficpCisJICAgIHsKKwkgICAgICBp
 ZiAobXV0dF9hc2tfcGF0dGVybiAoYnVmLCBidWZsZW4pKQorCQlyZXBsYWNlX3BhcnQgKHN0YXRl
 LCBpLCBidWYpOworCSAgICAgIHJ2ID0gMTsKKwkgICAgICBnb3RvIGJ5ZTsKKwkgICAgfQorCSAg
 ICBnb3RvIHNlbGZfaW5zZXJ0OwogCSAgfQogCSAgZWxzZQogCSAgICBnb3RvIHNlbGZfaW5zZXJ0
 OwpkaWZmIC1yIDFlMWM3YzQzNzk3OSAtciAxNDgyZDc0NTA5MTYgcGF0dGVybi5jCi0tLSBhL3Bh
 dHRlcm4uYwlNb24gU2VwIDE5IDA2OjIyOjU1IDIwMDUKKysrIGIvcGF0dGVybi5jCU1vbiBTZXAg
 MTkgMTI6MjM6NTIgMjAwNQpAQCAtMjUsNiArMjUsOCBAQAogI2luY2x1ZGUgImtleW1hcC5oIgog
 I2luY2x1ZGUgIm1haWxib3guaCIKICNpbmNsdWRlICJjb3B5LmgiCisjaW5jbHVkZSAibXV0dF9t
 ZW51LmgiCisjaW5jbHVkZSAibXV0dF9jdXJzZXMuaCIKIAogI2luY2x1ZGUgPHN0cmluZy5oPgog
 I2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtNDUsNTYgKzQ3LDEwMSBAQAogc3RhdGljIGludCBlYXRf
 cmFuZ2UgKHBhdHRlcm5fdCAqcGF0LCBCVUZGRVIgKiwgQlVGRkVSICopOwogc3RhdGljIGludCBw
 YXRtYXRjaCAoY29uc3QgcGF0dGVybl90ICpwYXQsIGNvbnN0IGNoYXIgKmJ1Zik7CiAKKyNkZWZp
 bmUgRUFUX1JFR0VYUAkxCisjZGVmaW5lIEVBVF9EQVRFCTIKKyNkZWZpbmUgRUFUX1JBTkdFCTMK
 IHN0cnVjdCBwYXR0ZXJuX2ZsYWdzCiB7CiAgIGludCB0YWc7CS8qIGNoYXJhY3RlciB1c2VkIHRv
 IHJlcHJlc2VudCB0aGlzIG9wICovCiAgIGludCBvcDsJLyogb3BlcmF0aW9uIHRvIHBlcmZvcm0g
 Ki8KICAgaW50IGNsYXNzOwotICBpbnQgKCplYXRfYXJnKSAocGF0dGVybl90ICosIEJVRkZFUiAq
 LCBCVUZGRVIgKik7CisgIGludCBlYXRfYXJnOworICBjaGFyICpkZXNjOwogfQogRmxhZ3NbXSA9
 CiB7Ci0gIHsgJ0EnLCBNX0FMTCwJCQkwLAkJTlVMTCB9LAotICB7ICdiJywgTV9CT0RZLAkJTV9G
 VUxMX01TRywJZWF0X3JlZ2V4cCB9LAotICB7ICdCJywgTV9XSE9MRV9NU0csCQlNX0ZVTExfTVNH
 LAllYXRfcmVnZXhwIH0sCi0gIHsgJ2MnLCBNX0NDLAkJCTAsCQllYXRfcmVnZXhwIH0sCi0gIHsg
 J0MnLCBNX1JFQ0lQSUVOVCwJCTAsCQllYXRfcmVnZXhwIH0sCi0gIHsgJ2QnLCBNX0RBVEUsCQkw
 LAkJZWF0X2RhdGUgfSwKLSAgeyAnRCcsIE1fREVMRVRFRCwJCTAsCQlOVUxMIH0sCi0gIHsgJ2Un
 LCBNX1NFTkRFUiwJCTAsCQllYXRfcmVnZXhwIH0sCi0gIHsgJ0UnLCBNX0VYUElSRUQsCQkwLAkJ
 TlVMTCB9LAotICB7ICdmJywgTV9GUk9NLAkJMCwJCWVhdF9yZWdleHAgfSwKLSAgeyAnRicsIE1f
 RkxBRywJCTAsCQlOVUxMIH0sCi0gIHsgJ2cnLCBNX0NSWVBUX1NJR04sCQkwLAkJTlVMTCB9LAot
 ICB7ICdHJywgTV9DUllQVF9FTkNSWVBULAkwLAkJTlVMTCB9LAotICB7ICdoJywgTV9IRUFERVIs
 CQlNX0ZVTExfTVNHLAllYXRfcmVnZXhwIH0sCi0gIHsgJ0gnLCBNX0hPUk1FTCwJCTAsCQllYXRf
 cmVnZXhwIH0sCi0gIHsgJ2knLCBNX0lELAkJCTAsCQllYXRfcmVnZXhwIH0sCi0gIHsgJ2snLCBN
 X1BHUF9LRVksCQkwLAkJTlVMTCB9LAotICB7ICdsJywgTV9MSVNULAkJMCwJCU5VTEwgfSwKLSAg
 eyAnTCcsIE1fQUREUkVTUywJCTAsCQllYXRfcmVnZXhwIH0sCi0gIHsgJ20nLCBNX01FU1NBR0Us
 CQkwLAkJZWF0X3JhbmdlIH0sCi0gIHsgJ24nLCBNX1NDT1JFLAkJMCwJCWVhdF9yYW5nZSB9LAot
 ICB7ICdOJywgTV9ORVcsCQkJMCwJCU5VTEwgfSwKLSAgeyAnTycsIE1fT0xELAkJCTAsCQlOVUxM
 IH0sCi0gIHsgJ3AnLCBNX1BFUlNPTkFMX1JFQ0lQLAkwLAkJTlVMTCB9LAotICB7ICdQJywgTV9Q
 RVJTT05BTF9GUk9NLAkwLAkJTlVMTCB9LAotICB7ICdRJywgTV9SRVBMSUVELAkJMCwJCU5VTEwg
 fSwKLSAgeyAncicsIE1fREFURV9SRUNFSVZFRCwJMCwJCWVhdF9kYXRlIH0sCi0gIHsgJ1InLCBN
 X1JFQUQsCQkwLAkJTlVMTCB9LAotICB7ICdzJywgTV9TVUJKRUNULAkJMCwJCWVhdF9yZWdleHAg
 fSwKLSAgeyAnUycsIE1fU1VQRVJTRURFRCwJCTAsCQlOVUxMIH0sCi0gIHsgJ3QnLCBNX1RPLAkJ
 CTAsCQllYXRfcmVnZXhwIH0sCi0gIHsgJ1QnLCBNX1RBRywJCQkwLAkJTlVMTCB9LAotICB7ICd1
 JywgTV9TVUJTQ1JJQkVEX0xJU1QsCTAsCQlOVUxMIH0sCi0gIHsgJ1UnLCBNX1VOUkVBRCwJCTAs
 CQlOVUxMIH0sCi0gIHsgJ3YnLCBNX0NPTExBUFNFRCwJCTAsCQlOVUxMIH0sCi0gIHsgJ1YnLCBN
 X0NSWVBUX1ZFUklGSUVELAkwLAkJTlVMTCB9LAotICB7ICd4JywgTV9SRUZFUkVOQ0UsCQkwLAkJ
 ZWF0X3JlZ2V4cCB9LAotICB7ICd5JywgTV9YTEFCRUwsCQkwLAkJZWF0X3JlZ2V4cCB9LAotICB7
 ICd6JywgTV9TSVpFLAkJMCwJCWVhdF9yYW5nZSB9LAotICB7ICc9JywgTV9EVVBMSUNBVEVELAkJ
 MCwJCU5VTEwgfSwKLSAgeyAnJCcsIE1fVU5SRUZFUkVOQ0VELAkwLAkJTlVMTCB9LAorICB7ICdB
 JywgTV9BTEwsCQkJMCwJCTAsCisJTl8oImFsbCBtZXNzYWdlcyIpIH0sCisgIHsgJ2InLCBNX0JP
 RFksCQlNX0ZVTExfTVNHLAlFQVRfUkVHRVhQLAorCU5fKCJtZXNzYWdlcyB3aG9zZSBib2R5IG1h
 dGNoZXMgRVhQUiIpIH0sCisgIHsgJ0InLCBNX1dIT0xFX01TRywJCU1fRlVMTF9NU0csCUVBVF9S
 RUdFWFAsCisJTl8oIm1lc3NhZ2VzIHdob3NlIGJvZHkgb3IgaGVhZGVycyBtYXRjaCBFWFBSIikg
 fSwKKyAgeyAnYycsIE1fQ0MsCQkJMCwJCUVBVF9SRUdFWFAsCisJTl8oIm1lc3NhZ2VzIHdob3Nl
 IENDIGhlYWRlciBtYXRjaGVzIEVYUFIiKSB9LAorICB7ICdDJywgTV9SRUNJUElFTlQsCQkwLAkJ
 RUFUX1JFR0VYUCwKKwlOXygibWVzc2FnZXMgd2hvc2UgcmVjaXBpZW50IG1hdGNoZXMgRVhQUiIp
 IH0sCisgIHsgJ2QnLCBNX0RBVEUsCQkwLAkJRUFUX0RBVEUsCisJTl8oIm1lc3NhZ2VzIHNlbnQg
 aW4gREFURVJBTkdFIikgfSwKKyAgeyAnRCcsIE1fREVMRVRFRCwJCTAsCQkwLAorCU5fKCJkZWxl
 dGVkIG1lc3NhZ2VzIikgfSwKKyAgeyAnZScsIE1fU0VOREVSLAkJMCwJCUVBVF9SRUdFWFAsCisJ
 Tl8oIm1lc3NhZ2VzIHdob3NlIFNlbmRlciBoZWFkZXIgbWF0Y2hlcyBFWFBSIikgfSwKKyAgeyAn
 RScsIE1fRVhQSVJFRCwJCTAsCQkwLAorCU5fKCJleHBpcmVkIG1lc3NhZ2VzIikgfSwKKyAgeyAn
 ZicsIE1fRlJPTSwJCTAsCQlFQVRfUkVHRVhQLAorCU5fKCJtZXNzYWdlcyB3aG9zZSBGcm9tIGhl
 YWRlciBtYXRjaGVzIEVYUFIiKSB9LAorICB7ICdGJywgTV9GTEFHLAkJMCwJCTAsCisJTl8oImZs
 YWdnZWQgbWVzc2FnZXMiKSB9LAorICB7ICdnJywgTV9DUllQVF9TSUdOLCAJCTAsIAkJMCwKKwlO
 XygiY3J5cHRvZ3JhcGhpY2FsbHkgc2lnbmVkIG1lc3NhZ2VzIikgfSwKKyAgeyAnRycsIE1fQ1JZ
 UFRfRU5DUllQVCwJMCwgCQkwLAorCU5fKCJjcnlwdG9ncmFwaGljYWxseSBlbmNyeXB0ZWQgbWVz
 c2FnZXMiKSB9LAorICB7ICdoJywgTV9IRUFERVIsCQlNX0ZVTExfTVNHLAlFQVRfUkVHRVhQLAor
 CU5fKCJtZXNzYWdlcyB3aG9zZSBoZWFkZXIgbWF0Y2hlcyBFWFBSIikgfSwKKyAgeyAnSCcsIE1f
 SE9STUVMLAkJMCwJCUVBVF9SRUdFWFAsCisJTl8oIm1lc3NhZ2VzIHdob3NlIHNwYW0gdGFnIG1h
 dGNoZXMgRVhQUiIpIH0sCisgIHsgJ2knLCBNX0lELAkJCTAsCQlFQVRfUkVHRVhQLAorCU5fKCJt
 ZXNzYWdlcyB3aG9zZSBNZXNzYWdlLUlEIG1hdGNoZXMgRVhQUiIpIH0sCisgIHsgJ2snLCBNX1BH
 UF9LRVksIAkJMCwgCQkwLAorCU5fKCJtZXNzYWdlcyB3aGljaCBjb250YWluIFBHUCBrZXkiKSB9
 LAorICB7ICdsJywgTV9MSVNULAkJMCwJCTAsCisJTl8oIm1lc3NhZ2VzIGFkZHJlc3NlZCB0byBr
 bm93biBtYWlsaW5nIGxpc3RzIikgfSwKKyAgeyAnTCcsIE1fQUREUkVTUywJCTAsCQlFQVRfUkVH
 RVhQLAorCU5fKCJtZXNzYWdlcyB3aG9zZSBGcm9tL1NlbmRlci9Uby9DQyBtYXRjaGVzIEVYUFIi
 KSB9LAorICB7ICdtJywgTV9NRVNTQUdFLAkJMCwJCUVBVF9SQU5HRSwKKwlOXygibWVzc2FnZXMg
 d2hvc2UgbnVtYmVyIGlzIGluIFJBTkdFIikgfSwKKyAgeyAnbicsIE1fU0NPUkUsCQkwLAkJRUFU
 X1JBTkdFLAorCU5fKCJtZXNzYWdlcyB3aG9zZSBzY29yZSBpcyBpbiBSQU5HRSIpIH0sCisgIHsg
 J04nLCBNX05FVywJCQkwLAkJMCwKKwlOXygibmV3IG1lc3NhZ2VzIikgfSwKKyAgeyAnTycsIE1f
 T0xELAkJCTAsCQkwLAorCU5fKCJvbGQgbWVzc2FnZXMiKSB9LAorICB7ICdwJywgTV9QRVJTT05B
 TF9SRUNJUCwJMCwJCTAsCisJTl8oIm1lc3NhZ2VzIGFkZHJlc3NlZCB0byB5b3UiKSB9LAorICB7
 ICdQJywgTV9QRVJTT05BTF9GUk9NLAkwLAkJMCwKKwlOXygibWVzc2FnZXMgZnJvbSB5b3UiKSB9
 LAorICB7ICdRJywgTV9SRVBMSUVELAkJMCwJCTAsCisJTl8oIm1lc3NhZ2VzIHdoaWNoIGhhdmUg
 YmVlbiByZXBsaWVkIHRvIikgfSwKKyAgeyAncicsIE1fREFURV9SRUNFSVZFRCwJMCwJCUVBVF9E
 QVRFLAorCU5fKCJtZXNzYWdlcyByZWNlaXZlZCBpbiBEQVRFUkFOR0UiKSB9LAorICB7ICdSJywg
 TV9SRUFELAkJMCwJCTAsCisJTl8oImFscmVhZHkgcmVhZCBtZXNzYWdlcyIpIH0sCisgIHsgJ3Mn
 LCBNX1NVQkpFQ1QsCQkwLAkJRUFUX1JFR0VYUCwKKwlOXygibWVzc2FnZXMgd2hvc2UgU3ViamVj
 dCBoZWFkZXIgbWF0Y2hlcyBFWFBSIikgfSwKKyAgeyAnUycsIE1fU1VQRVJTRURFRCwJCTAsCQkw
 LAorCU5fKCJzdXBlcnNlZGVkIG1lc3NhZ2VzIikgfSwKKyAgeyAndCcsIE1fVE8sCQkJMCwJCUVB
 VF9SRUdFWFAsCisJTl8oIm1lc3NhZ2VzIHdob3NlIFRvIGhlYWRlciBtYXRjaGVzIEVYUFIiKSB9
 LAorICB7ICdUJywgTV9UQUcsCQkJMCwJCTAsCisJTl8oInRhZ2dlZCBtZXNzYWdlcyIpIH0sCisg
 IHsgJ3UnLCBNX1NVQlNDUklCRURfTElTVCwJMCwJCTAsCisJTl8oIm1lc3NhZ2VzIGFkZHJlc3Nl
 ZCB0byBzdWJzY3JpYmVkIG1haWxpbmcgbGlzdHMiKSB9LAorICB7ICdVJywgTV9VTlJFQUQsCQkw
 LAkJMCwKKwlOXygidW5yZWFkIG1lc3NhZ2VzIikgfSwKKyAgeyAndicsIE1fQ09MTEFQU0VELAkJ
 MCwJCTAsCisJTl8oIm1lc3NhZ2VzIGluIGNvbGxhcHNlZCB0aHJlYWRzIikgfSwKKyAgeyAnVics
 IE1fQ1JZUFRfVkVSSUZJRUQsCTAsCQkwLAorCU5fKCJjcnlwdG9ncmFwaGljYWxseSB2ZXJpZmll
 ZCBtZXNzYWdlcyIpIH0sCisgIHsgJ3gnLCBNX1JFRkVSRU5DRSwJCTAsCQlFQVRfUkVHRVhQLAor
 CU5fKCJtZXNzYWdlcyB3aG9zZSBSZWZlcmVuY2VzIGhlYWRlciBtYXRjaGVzIEVYUFIiKSB9LAor
 ICB7ICd5JywgTV9YTEFCRUwsCQkwLAkJRUFUX1JFR0VYUCwKKwlOXygibWVzc2FnZXMgd2hvc2Ug
 WC1MYWJlbCBoZWFkZXIgbWF0Y2hlcyBFWFBSIikgfSwKKyAgeyAneicsIE1fU0laRSwJCTAsCQlF
 QVRfUkFOR0UsCisJTl8oIm1lc3NhZ2VzIHdob3NlIHNpemUgaXMgaW4gUkFOR0UiKSB9LAorICB7
 ICc9JywgTV9EVVBMSUNBVEVELAkJMCwJCTAsCisJTl8oImR1cGxpY2F0ZWQgbWVzc2FnZXMiKSB9
 LAorICB7ICckJywgTV9VTlJFRkVSRU5DRUQsCTAsCQkwLAorCU5fKCJ1bnJlZmVyZW5jZWQgbWVz
 c2FnZXMiKSB9LAogICB7IDAgfQogfTsKIApAQCAtMjUxLDcgKzI5OCw3IEBACiAgIHJldHVybiBt
 YXRjaDsKIH0KIAotaW50IGVhdF9yZWdleHAgKHBhdHRlcm5fdCAqcGF0LCBCVUZGRVIgKnMsIEJV
 RkZFUiAqZXJyKQorc3RhdGljIGludCBlYXRfcmVnZXhwIChwYXR0ZXJuX3QgKnBhdCwgQlVGRkVS
 ICpzLCBCVUZGRVIgKmVycikKIHsKICAgQlVGRkVSIGJ1ZjsKICAgaW50IHI7CkBAIC0yOTIsNyAr
 MzM5LDcgQEAKICAgcmV0dXJuIDA7CiB9CiAKLWludCBlYXRfcmFuZ2UgKHBhdHRlcm5fdCAqcGF0
 LCBCVUZGRVIgKnMsIEJVRkZFUiAqZXJyKQorc3RhdGljIGludCBlYXRfcmFuZ2UgKHBhdHRlcm5f
 dCAqcGF0LCBCVUZGRVIgKnMsIEJVRkZFUiAqZXJyKQogewogICBjaGFyICp0bXA7CiAgIGludCBk
 b19leGNsdXNpdmUgPSAwOwpAQCAtODQ4LDEzICs4OTUsMjAgQEAKIAogCWlmIChlbnRyeS0+ZWF0
 X2FyZykKIAl7CisJICBpbnQgZWF0cnYgPSAwOwogCSAgaWYgKCEqcHMuZHB0cikKIAkgIHsKIAkg
 ICAgc25wcmludGYgKGVyci0+ZGF0YSwgZXJyLT5kc2l6ZSwgXygibWlzc2luZyBwYXJhbWV0ZXIi
 KSk7CiAJICAgIG11dHRfcGF0dGVybl9mcmVlICgmY3VybGlzdCk7CiAJICAgIHJldHVybiBOVUxM
 OwogCSAgfQotCSAgaWYgKGVudHJ5LT5lYXRfYXJnICh0bXAsICZwcywgZXJyKSA9PSAtMSkKKwkg
 IHN3aXRjaCAoZW50cnktPmVhdF9hcmcpCisJICB7CisJICAgIGNhc2UgRUFUX1JFR0VYUDogZWF0
 cnYgPSBlYXRfcmVnZXhwICh0bXAsICZwcywgZXJyKTsgYnJlYWs7CisJICAgIGNhc2UgRUFUX0RB
 VEU6IGVhdHJ2ID0gZWF0X2RhdGUgKHRtcCwgJnBzLCBlcnIpOyBicmVhazsKKwkgICAgY2FzZSBF
 QVRfUkFOR0U6IGVhdHJ2ID0gZWF0X3JhbmdlICh0bXAsICZwcywgZXJyKTsgYnJlYWs7CisJICB9
 CisJICBpZiAoZWF0cnYgPT0gLTEpCiAJICB7CiAJICAgIG11dHRfcGF0dGVybl9mcmVlICgmY3Vy
 bGlzdCk7CiAJICAgIHJldHVybiBOVUxMOwpAQCAtMTQwNSwzICsxNDU5LDEzNCBAQAogICBtdXR0
 X2Vycm9yIF8oIk5vdCBmb3VuZC4iKTsKICAgcmV0dXJuICgtMSk7CiB9CisKK3N0YXRpYyB2b2lk
 IHBhdHRlcm5fZW50cnkgKGNoYXIgKnMsIHNpemVfdCBsLCBNVVRUTUVOVSAqIG1lbnUsIGludCBu
 dW0pCit7CisgIExJU1QgKipQYXRUYWJsZSA9IChMSVNUICoqKSBtZW51LT5kYXRhOworCisgIG11
 dHRfZm9ybWF0X3N0cmluZyAocywgbCwgMCwgQ09MUywgMCwgJyAnLCBQYXRUYWJsZVtudW1dLT5k
 YXRhLAorCQkgICAgIG11dHRfc3RybGVuIChQYXRUYWJsZVtudW1dLT5kYXRhKSwgMCk7Cit9CisK
 K3N0YXRpYyBjaGFyIHBhdHRlcm5fbWVudSAoTElTVCAqcGF0cykKK3sKKyAgaW50IHBhdG1heCA9
 IDA7CisgIExJU1QgKipQYXRUYWJsZSA9IE5VTEw7CisgIE1VVFRNRU5VICptZW51OworICBpbnQg
 aSwgZG9uZSA9IDA7CisgIGNoYXIgaGVscHN0cltTSE9SVF9TVFJJTkddLCBidWZbTE9OR19TVFJJ
 TkddOworICBMSVNUICpwYXQ7CisgIGNoYXIgcnYgPSAwOworCisgIGZvciAoaSA9IDAsIHBhdCA9
 IHBhdHM7IHBhdDsgcGF0ID0gcGF0LT5uZXh0KQorICB7CisgICAgICBpZiAoaSA9PSBwYXRtYXgp
 CisgICAgICB7CisJcGF0bWF4ICs9IDU7CisJc2FmZV9yZWFsbG9jICgmUGF0VGFibGUsIHNpemVv
 ZiAoTElTVCAqKSAqIHBhdG1heCk7CisgICAgICB9CisgICAgICBQYXRUYWJsZVtpKytdID0gcGF0
 OworICB9CisKKyAgaGVscHN0clswXSA9IDA7CisgIG11dHRfbWFrZV9oZWxwIChidWYsIHNpemVv
 ZiAoYnVmKSwgXygiRXhpdCAgIiksIE1FTlVfR0VORVJJQywgT1BfRVhJVCk7CisgIHNhZmVfc3Ry
 Y2F0IChoZWxwc3RyLCBzaXplb2YgKGhlbHBzdHIpLCBidWYpOworICBtdXR0X21ha2VfaGVscCAo
 YnVmLCBzaXplb2YgKGJ1ZiksIF8oIlNlbGVjdCAgIiksIE1FTlVfR0VORVJJQywKKwkJICBPUF9H
 RU5FUklDX1NFTEVDVF9FTlRSWSk7CisgIHNhZmVfc3RyY2F0IChoZWxwc3RyLCBzaXplb2YgKGhl
 bHBzdHIpLCBidWYpOworICBtdXR0X21ha2VfaGVscCAoYnVmLCBzaXplb2YgKGJ1ZiksIF8oIkhl
 bHAiKSwgTUVOVV9HRU5FUklDLCBPUF9IRUxQKTsKKyAgc2FmZV9zdHJjYXQgKGhlbHBzdHIsIHNp
 emVvZiAoaGVscHN0ciksIGJ1Zik7CisKKyAgbWVudSA9IG11dHRfbmV3X21lbnUgKCk7CisgIG1l
 bnUtPm1heCA9IGk7CisgIG1lbnUtPm1ha2VfZW50cnkgPSBwYXR0ZXJuX2VudHJ5OworICBtZW51
 LT5tZW51ID0gTUVOVV9HRU5FUklDOworICBtZW51LT5oZWxwID0gaGVscHN0cjsKKyAgbWVudS0+
 ZGF0YSA9IFBhdFRhYmxlOworICBtZW51LT50aXRsZSA9IF8oIlBhdHRlcm5zIik7CisKKyAgbXV0
 dF9jbGVhcl9lcnJvciAoKTsKKworICB3aGlsZSAoIWRvbmUpCisgIHsKKyAgICBzd2l0Y2ggKG11
 dHRfbWVudUxvb3AgKG1lbnUpKQorICAgIHsKKyAgICBjYXNlIE9QX0dFTkVSSUNfU0VMRUNUX0VO
 VFJZOgorICAgICAgcnYgPSBQYXRUYWJsZVttZW51LT5jdXJyZW50XS0+ZGF0YVsxXTsKKyAgICAg
 IGRvbmUgPSAxOworICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE9QX0VYSVQ6CisgICAgICBydiA9
 IDA7CisgICAgICBkb25lID0gMTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgfQorCisgIG11dHRf
 bWVudURlc3Ryb3kgKCZtZW51KTsKKyAgRlJFRSAoJlBhdFRhYmxlKTsKKworICBzZXRfb3B0aW9u
 IChPUFRORUVEUkVEUkFXKTsKKworICByZXR1cm4gKHJ2KTsKK30KKworc3RhdGljIExJU1QgKmxp
 c3RfcGF0dGVybnMgKCkKK3sKKyAgTElTVCAqZmlyc3QgPSBOVUxMLCAqbGFzdCA9IE5VTEwsICpj
 dXIgPSBOVUxMOworICBpbnQgaTsKKworICBmb3IgKGkgPSAwOyBGbGFnc1tpXS50YWc7IGkrKykK
 KyAgeworICAgIGNoYXIgYnVmW0xPTkdfU1RSSU5HXTsKKyAgICBzd2l0Y2ggKEZsYWdzW2ldLmVh
 dF9hcmcpCisgICAgeworICAgIGNhc2UgRUFUX1JFR0VYUDoKKyAgICAgIHNucHJpbnRmIChidWYs
 IHNpemVvZiAoYnVmKSwgXygifiVjIEVYUFIgICAgICAgJXMiKSwKKyAgICAgICAgICAgICAgICAo
 Y2hhcikgRmxhZ3NbaV0udGFnLCBfKEZsYWdzW2ldLmRlc2MpKTsKKyAgICAgIGJyZWFrOworICAg
 IGNhc2UgRUFUX1JBTkdFOgorICAgICAgc25wcmludGYgKGJ1Ziwgc2l6ZW9mIChidWYpLCBfKCJ+
 JWMgUkFOR0UgICAgICAlcyIpLAorICAgICAgICAgICAgICAgIChjaGFyKSBGbGFnc1tpXS50YWcs
 IF8oRmxhZ3NbaV0uZGVzYykpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBFQVRfREFURToKKyAg
 ICAgIHNucHJpbnRmIChidWYsIHNpemVvZiAoYnVmKSwgXygifiVjIERBVEVSQU5HRSAgJXMiKSwK
 KyAgICAgICAgICAgICAgICAoY2hhcikgRmxhZ3NbaV0udGFnLCBfKEZsYWdzW2ldLmRlc2MpKTsK
 KyAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBzbnByaW50ZiAoYnVmLCBzaXplb2Yg
 KGJ1ZiksIF8oIn4lYyAgICAgICAgICAgICVzIiksCisgICAgICAgICAgICAgICAgKGNoYXIpIEZs
 YWdzW2ldLnRhZywgXyhGbGFnc1tpXS5kZXNjKSk7CisgICAgfQorICAgIGN1ciA9IChMSVNUICop
 IHNhZmVfY2FsbG9jICgxLCBzaXplb2YgKExJU1QpKTsKKyAgICBjdXItPmRhdGEgPSBzYWZlX3N0
 cmR1cCAoYnVmKTsKKyAgICBpZiAoIWZpcnN0KQorICAgICAgZmlyc3QgPSBjdXI7CisgICAgaWYg
 KGxhc3QpCisgICAgICBsYXN0LT5uZXh0ID0gY3VyOworICAgIGxhc3QgPSBjdXI7CisgIH0KKyAg
 aWYgKGN1cikKKyAgICBjdXItPm5leHQgPSBOVUxMOworICByZXR1cm4gKGZpcnN0KTsKK30KKwor
 aW50IG11dHRfYXNrX3BhdHRlcm4gKGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1ZmxlbikKK3sKKyAgY2hh
 ciBjOworICBMSVNUICpsOworICBpbnQgcnYgPSAwOworCisgIGlmICghYnVmIHx8IGJ1ZmxlbiA8
 IDMpCisgICAgcmV0dXJuIDA7CisgIGlmICgobCA9IGxpc3RfcGF0dGVybnMoKSkpCisgIHsKKyAg
 ICBpZiAoKGMgPSBwYXR0ZXJuX21lbnUgKGwpKSkKKyAgICB7CisgICAgICBzcHJpbnRmIChidWYs
 ICIlYyAiLCBjKTsgLyogX19TUFJJTlRGX0NIRUNLRURfXyAqLworICAgICAgcnYgPSAxOworICAg
 IH0KKyAgICBtdXR0X2ZyZWVfbGlzdCAoJmwpOworICB9CisgIHJldHVybiBydjsKK30KKwotLS0g
 YS9wcm90b3MuaAlNb24gU2VwIDE5IDA2OjIyOjU1IDIwMDUKKysrIGIvcHJvdG9zLmgJTW9uIFNl
 cCAxOSAxMjoyMzo1MiAyMDA1CkBAIC0yNTcsNiArMjU4LDcgQEAKIGludCBtdXR0X2FkZHdjaCAo
 d2NoYXJfdCk7CiBpbnQgbXV0dF9hbGlhc19jb21wbGV0ZSAoY2hhciAqLCBzaXplX3QpOwogaW50
 IG11dHRfYWxsb2NfY29sb3IgKGludCBmZywgaW50IGJnKTsKK2ludCBtdXR0X2Fza19wYXR0ZXJu
 IChjaGFyICosIHNpemVfdCk7CiBpbnQgbXV0dF9hbnlfa2V5X3RvX2NvbnRpbnVlIChjb25zdCBj
 aGFyICopOwogaW50IG11dHRfYnVmZnlfY2hlY2sgKGludCk7CiBpbnQgbXV0dF9idWZmeV9ub3Rp
 ZnkgKHZvaWQpOwoK