[PATCH branch-1.6 v2 3/4] eval: Add eval64 builtin
Eric Blake via M4-patches <[email protected]> Sat, 17 May 2025 22:08:48 -0500
| Newsgroups | gmane.comp.gnu.m4.patches |
|---|---|
| Message-ID | <[email protected]> |
UE9TSVggc3RhdGVzIGluIG9uZSBwbGFjZSB0aGF0IG00IG11c3QgZG8gc2lnbmVkIG1hdGggd2l0 aCBhdCBsZWFzdAozMi1iaXQgcHJlY2lzaW9uOyBhbmQgaW4gYW5vdGhlciB0aGF0IG1hdGggbXVz dCBiZSBkb25lIHdpdGggYXQgbGVhc3QKJ3NpZ25lZCBsb25nJy4gIFdlIGNvbXBseSB3aXRoIHRo ZSBmb3JtZXIsIGJ1dCBub3QgdGhlIGxhdHRlciBvbgptb2Rlcm4gNjQtYml0IHBsYXRmb3Jtcywg d2hlcmUgJ3NpZ25lZCBsb25nJyBpcyA2NC1iaXQuICBXaGlsZSB3ZQpjb3VsZCB1bmlsYXRlcmFs bHkgY2hhbmdlIHRvIGp1c3QgNjQtYml0IG1hdGgsIHRoYXQgaXMgbW9yZSBsaWtlbHkgdG8KY2F1 c2UgYmFjay1jb21wYXQgaXNzdWVzIHdpdGggY29kZSB0aGF0IGhhcyBjb21lIHRvIGV4cGVjdCAz Mi1iaXQKbWF0aDsgYmV0dGVyIGlzIHRvIGdpdmUgc2NyaXB0cyB0aGUgb3B0aW9uIHRvIGNob29z ZSB3aGljaCB3aWR0aCB0aGV5CndhbnQsIGJ5IGludHJvZHVjaW5nIGEgbmV3IGJ1aWx0aW4uCgpT aW5jZSBvdGhlciBwbGFjZXMgaW4gbTQgZG8gbm90IGFsbG93IG1vcmUgdGhhbiAyRyBvZiBjb250 ZW50IGluIGEKc2luZ2xlIG1hY3JvIG5hbWUgb3IgYm9keSwgYW5kIG91dHB1dCBpbiByYWRpeCAx IGlzIGFscmVhZHkgYSBHTlUKZXh0ZW5zaW9uLCBJIG9wdGVkIHRvIG1ha2UgaXQgYW4gZXJyb3Ig dG8gdHJ5IGFuZCBhYnVzZSBldmFsNjQgdG8Kb3V0cHV0IHZhbHVlcyB3aXRoIG1hZ25pdHVkZSBt b3JlIHRoYW4gMkcuCgoqIHNyYy9ldmFsLmMgKElOVCwgVUlOVCwgU0hJRlRNQVNLLCBFVkFMVUFU RSk6IE5ldyBtYWNyb3MuCihldmFsX2xleCwgcHJpbWFyeSwgcGFyc2VfZXhwciwgZXZhbHVhdGUp OiBVc2UgdGhlbSB0byBhbGxvdyBib3RoCjMyLSBhbmQgNjQtIGJpdCBjb21waWxhdGlvbi4KKiBz cmMvZXZhbDY0LmM6IE5ldyBmaWxlLCBpbXBsZW1lbnRpbmcgZXZhbHVhdGU2NC4KKiBzcmMvTWFr ZWZpbGUuYW0gKG00X1NPVVJDRVMpOiBCdWlsZCBpdC4KKiBzcmMvbTQuaCAoZXZhbHVhdGU2NCk6 IE5ldyBwcm90b3R5cGUuCiogc3JjL2J1aWx0aW4uYyAoYnVpbHRpbl90YWIpOiBFeHBvc2UgbmV3 IGJ1aWx0aW4uCihudG9hKTogU3VwcG9ydCA2NC1iaXQgb3V0cHV0LgoobTRfZXZhbCk6IFNwbGl0 IGJvZHkuLi4KKGV2YWwpOiAuLi5pbnRvIG5ldyBoZWxwZXIuICBTd2l0Y2ggdG8gNjQtYml0IHN1 cHBvcnQsIGV4Y2VwdCB0aGF0CnJhZGl4IDEgaXMgc3RpbGwgY2FwcGVkIHRvIDJHLgoobTRfZXZh bDY0KTogTmV3IGZ1bmN0aW9uLgoqIGRvYy9tNC50ZXhpIChFdmFsKTogRG9jdW1lbnQgdGhpcywg aW5jbHVkaW5nIHNvbWUgZXhhbXBsZXMgdGhhdApnZXQgcnVuIGJ5IHRoZSB0ZXN0c3VpdGUuCiog TkVXUzogTGlrZXdpc2UuCi0tLQogTkVXUyAgICAgICAgICAgIHwgIDIgKysKIGRvYy9tNC50ZXhp ICAgICB8IDcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0KIHNyYy9NYWtlZmlsZS5hbSB8ICAyICstCiBzcmMvYnVpbHRpbi5jICAgfCAzNyArKysrKysr KysrKysrKysrKysrLS0tLS0tCiBzcmMvZXZhbC5jICAgICAgfCA2MyArKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvZXZhbDY0LmMgICAgfCAzOSArKysrKysr KysrKysrKysrKysrKysrKysrKysKIHNyYy9tNC5oICAgICAgICB8ICA5ICsrKysrLS0KIDcgZmls ZXMgY2hhbmdlZCwgMTY1IGluc2VydGlvbnMoKyksIDU5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyYy9ldmFsNjQuYwoKZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCmluZGV4IDBi NDk5YTIwLi5kZDNlYTA0YiAxMDA2NDQKLS0tIGEvTkVXUworKysgYi9ORVdTCkBAIC0xMzIsNiAr MTMyLDggQEAgR05VIE00IE5FV1MgLSBVc2VyIHZpc2libGUgY2hhbmdlcy4KICAgIGJ1aWx0aW4g bm93IHJlZnVzZXMgdG8gcmVjb2duaXplIGA9JyBhcyBhIHN5bm9ueW0gZm9yIGA9PScgKHRoaXMg aGFkCiAgICBlbWl0dGVkIGEgd2FybmluZyBzaW5jZSAxLjQuOGIpLgoKKyoqIEFkZCBhIG5ldyBg ZXZhbDY0JyBidWlsdGluIHRoYXQgb3BlcmF0ZXMgb24gNjQtYml0IGludGVnZXJzLgorCiAqKiBB IG51bWJlciBvZiBwb3J0YWJpbGl0eSBpbXByb3ZlbWVudHMgaW5oZXJpdGVkIGZyb20gZ251bGli LgoKCmRpZmYgLS1naXQgYS9kb2MvbTQudGV4aSBiL2RvYy9tNC50ZXhpCmluZGV4IDk3ZGE1NWRk Li5iMGEzNWVhZSAxMDA2NDQKLS0tIGEvZG9jL200LnRleGkKKysrIGIvZG9jL200LnRleGkKQEAg LTcwNzAsMTMgKzcwNzAsMTYgQEAgRXZhbAogSW50ZWdlciBleHByZXNzaW9ucyBhcmUgZXZhbHVh dGVkIHdpdGggQGNvZGV7ZXZhbH06CgogQGRlZmZuIEJ1aWx0aW4gZXZhbCAoQHZhcntleHByZXNz aW9ufSwgQGR2YXJ7cmFkaXgsIDEwfSwgQG92YXJ7d2lkdGh9KQorQGRlZmZueCBCdWlsdGluIGV2 YWw2NCAoQHZhcntleHByZXNzaW9ufSwgQGR2YXJ7cmFkaXgsIDEwfSwgQG92YXJ7d2lkdGh9KQog RXhwYW5kcyB0byB0aGUgdmFsdWUgb2YgQHZhcntleHByZXNzaW9ufS4gIFRoZSBleHBhbnNpb24g aXMgZW1wdHkKIGlmIGEgcHJvYmxlbSBpcyBlbmNvdW50ZXJlZCB3aGlsZSBwYXJzaW5nIHRoZSBh cmd1bWVudHMuICBJZiBzcGVjaWZpZWQsCiBAdmFye3JhZGl4fSBhbmQgQHZhcnt3aWR0aH0gY29u dHJvbCB0aGUgZm9ybWF0IG9mIHRoZSBvdXRwdXQuCgotQ2FsY3VsYXRpb25zIGFyZSBkb25lIHdp dGggMzItYml0IHNpZ25lZCBudW1iZXJzLiAgT3ZlcmZsb3cgc2lsZW50bHkKLXJlc3VsdHMgaW4g d3JhcGFyb3VuZC4gIEEgd2FybmluZyBpcyBpc3N1ZWQgaWYgZGl2aXNpb24gYnkgemVybyBpcwot YXR0ZW1wdGVkLCBvciBpZiBAdmFye2V4cHJlc3Npb259IGNvdWxkIG5vdCBiZSBwYXJzZWQuCitD YWxjdWxhdGlvbnMgYXJlIGRvbmUgd2l0aCAzMi1iaXQgc2lnbmVkIG51bWJlcnMgZm9yIEBjb2Rl e2V2YWx9LCBhbmQKKzY0LWJpdCBzaWduZWQgbnVtYmVycyBmb3IgQGNvZGV7ZXZhbDY0fSAodGhl IGxhdHRlciB3YXMgaW50cm9kdWNlZCBpbiBNNAorMS42KS4gIE92ZXJmbG93IHNpbGVudGx5IHJl c3VsdHMgaW4gd3JhcGFyb3VuZC4gIEEgd2FybmluZyBpcyBpc3N1ZWQgaWYKK2RpdmlzaW9uIGJ5 IHplcm8gaXMgYXR0ZW1wdGVkLCBvciBpZiBAdmFye2V4cHJlc3Npb259IGNvdWxkIG5vdCBiZQor cGFyc2VkLgoKIEV4cHJlc3Npb25zIGNhbiBjb250YWluIHRoZSBmb2xsb3dpbmcgb3BlcmF0b3Jz LCBsaXN0ZWQgaW4gb3JkZXIgb2YKIGRlY3JlYXNpbmcgcHJlY2VkZW5jZS4KQEAgLTcxMTIsNyAr NzExNSw3IEBAIEV2YWwKIENvbmRpdGlvbmFsIHRlcm5hcnkKIEBlbmQgdGFibGUKCi1UaGUgbWFj cm8gQGNvZGV7ZXZhbH0gaXMgcmVjb2duaXplZCBvbmx5IHdpdGggcGFyYW1ldGVycy4KK1RoZSBt YWNyb3MgQGNvZGV7ZXZhbH0gYW5kIEBjb2Rle2V2YWw2NH0gYXJlIHJlY29nbml6ZWQgb25seSB3 aXRoIHBhcmFtZXRlcnMuCiBAZW5kIGRlZmZuCgogQWxsIGJpbmFyeSBvcGVyYXRvcnMsIGV4Y2Vw dCBleHBvbmVudGlhdGlvbiwgYXJlIGxlZnQgYXNzb2NpYXRpdmUuICBDCkBAIC03MzI4LDMyICs3 MzMxLDU2IEBAIEV2YWwKIHBhc3NlZCB0byBAY29kZXtldmFsfS4KCiBTb21lIGNhbGN1bGF0aW9u cyBhcmUgbm90IHBvcnRhYmxlIHRvIG90aGVyIGltcGxlbWVudGF0aW9ucywgc2luY2UgdGhleQot aGF2ZSB1bmRlZmluZWQgc2VtYW50aWNzIGluIEMsIGJ1dCBHTlUgQGNvZGV7bTR9IGhhcwotd2Vs bC1kZWZpbmVkIGJlaGF2aW9yIG9uIG92ZXJmbG93LiAgV2hlbiBzaGlmdGluZywgYW4gb3V0LW9m LXJhbmdlIHNoaWZ0Ci1hbW91bnQgaXMgaW1wbGljaXRseSBicm91Z2h0IGludG8gdGhlIHJhbmdl IG9mIDMyLWJpdCBzaWduZWQgaW50ZWdlcnMKLXVzaW5nIGFuIGltcGxpY2l0IGJpdC13aXNlIGFu ZCB3aXRoIDB4MWYpLgoraGF2ZSB1bmRlZmluZWQgc2VtYW50aWNzIGluIEMsIGJ1dCBHTlUgQGNv ZGV7bTR9IGhhcyB3ZWxsLWRlZmluZWQKK2JlaGF2aW9yIG9uIG92ZXJmbG93LiAgV2hlbiBzaGlm dGluZywgYW4gb3V0LW9mLXJhbmdlIHNoaWZ0IGFtb3VudCBpcworaW1wbGljaXRseSBicm91Z2h0 IGludG8gdGhlIHJhbmdlIG9mIDMyLWJpdCBzaWduZWQgaW50ZWdlcnMgdXNpbmcgYW4KK2ltcGxp Y2l0IGJpdC13aXNlIGFuZCB3aXRoIDB4MWYpLiAgRm9yIEBjb2Rle2V2YWw2NH0sIHRoZSBpbXBs aWNpdCBtYXNrCitpcyAweDNmLiAgSG93ZXZlciwgb3V0cHV0IGluIHJhZGl4IDEgb25seSB3b3Jr cyBmb3Igc2lnbmVkIHZhbHVlcyB0aGF0CitmaXQgaW4gMzIgYml0cywgaW4gcGFydCBiZWNhdXNl IHRoZSBAdmFye3dpZHRofSBwYXJhbWV0ZXIgaXMgc3RpbGwKK2xpbWl0ZWQgdG8gMzIgYml0cy4K CiBAZXhhbXBsZQotZGVmaW5lKGBtYXhfaW50JywgZXZhbChgMHg3ZmZmZmZmZicpKQorZGVmaW5l KGBtYXhfaW50JywgZXZhbChgMHg3ZmZmZmZmZicpKWRubAorZGVmaW5lKGBtYXhfbG9uZycsIGV2 YWw2NChgMHg3ZmZmZmZmZmZmZmZmZmZmJykpCiBAcmVzdWx0e30KLWRlZmluZShgbWluX2ludCcs IGluY3IobWF4X2ludCkpCitkZWZpbmUoYG1pbl9pbnQnLCBpbmNyKG1heF9pbnQpKWRubAorZGVm aW5lKGBtaW5fbG9uZycsIGV2YWw2NChtYXhfbG9uZyArIDEpKQogQHJlc3VsdHt9Ci1ldmFsKG1p bl9pbnRgIDwgMCcpCi1AcmVzdWx0e30xCi1ldmFsKG1heF9pbnRgID4gMCcpCi1AcmVzdWx0e30x CitldmFsKG1pbl9pbnRgIDwgMCcpIGV2YWw2NChtaW5fbG9uZ2AgPCAwJykKK0ByZXN1bHR7fTEg MQorZXZhbChtYXhfaW50YCA+IDAnKSBldmFsNjQobWF4X2xvbmdgID4gMCcpCitAcmVzdWx0e30x IDEKIGlmZWxzZShldmFsKG1pbl9pbnRgIC8gLTEnKSwgbWluX2ludCwgYG92ZXJmbG93IG9jY3Vy cmVkJykKIEByZXN1bHR7fW92ZXJmbG93IG9jY3VycmVkCitpZmVsc2UoZXZhbDY0KG1pbl9sb25n YCAvIC0xJyksIG1pbl9sb25nLCBgb3ZlcmZsb3cgb2NjdXJyZWQnKQorQHJlc3VsdHt9b3ZlcmZs b3cgb2NjdXJyZWQKIG1pbl9pbnQKIEByZXN1bHR7fS0yMTQ3NDgzNjQ4Ci1ldmFsKGAweDgwMDAw MDAwICUgLTEnKQotQHJlc3VsdHt9MAotZXZhbChgLTQgPj4gMScpCi1AcmVzdWx0e30tMgotZXZh bChgLTQgPj4gLTMxJykKLUByZXN1bHR7fS0yCi1ldmFsKGAtNCA+PiAzMycpCi1AcmVzdWx0e30t MgorbWluX2xvbmcKK0ByZXN1bHR7fS05MjIzMzcyMDM2ODU0Nzc1ODA4CitldmFsKGAweDgwMDAw MDAwICUgLTEnKSBldmFsNjQoYDB4ODAwMDAwMDAwMDAwMDAwMCAlIC0xJykKK0ByZXN1bHR7fTAg MAorZXZhbChgLTQgPj4gMScpIGV2YWw2NChgLTQgPj4gMScpCitAcmVzdWx0e30tMiAtMgorZXZh bChgLTQgPj4gLTMxJykgZXZhbDY0KGAtNCA+PiAtNjMnKQorQHJlc3VsdHt9LTIgLTIKK2V2YWwo YC00ID4+IDMzJykgZXZhbDY0KGAtNCA+PiA2NScpCitAcmVzdWx0e30tMiAtMgorZXZhbDY0KGAw eDgwMDAwMDAwJywgYDEnKQorQGVycm9ye31tNDpzdGRpbjoxNTogd2FybmluZzogZXZhbDY0OiBt YWduaXR1ZGUgdG9vIGxhcmdlIGZvciBiYXNlIDE6IDIxNDc0ODM2NDgKK0ByZXN1bHR7fQorQGVu ZCBleGFtcGxlCisKK0lmIHlvdXIgc2NyaXB0IHdhbnRzIHRvIHVzZSBsYXJnZXIgbWF0aCBieSBk ZWZhdWx0LCBpdCBpcyBlYXN5IHRvCithcnJhbmdlIGZvciB0aGF0IHVwIGZyb250IHdpdGggQGNv ZGV7ZGVmbn06CisKK0BleGFtcGxlCitldmFsKGA5MDAwMCAqIDkwMDAwJykKK0ByZXN1bHR7fS00 ODk5MzQ1OTIKK2RlZmluZShgZXZhbCcsIGRlZm4oYGV2YWw2NCcpKQorQHJlc3VsdHt9CitldmFs KGA5MDAwMCAqIDkwMDAwJykKK0ByZXN1bHR7fTgxMDAwMDAwMDAKIEBlbmQgZXhhbXBsZQoKIElm IEB2YXJ7cmFkaXh9IGlzIHNwZWNpZmllZCwgaXQgc3BlY2lmaWVzIHRoZSByYWRpeCB0byBiZSB1 c2VkIGluIHRoZQpAQCAtNzQwNyw2ICs3NDM0LDcgQEAgRXZhbAogQHJlc3VsdHt9YQogQGVuZCBl eGFtcGxlCgorCiBAbm9kZSBTaGVsbCBjb21tYW5kcwogQGNoYXB0ZXIgTWFjcm9zIGZvciBydW5u aW5nIHNoZWxsIGNvbW1hbmRzCgpkaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxlLmFtIGIvc3JjL01h a2VmaWxlLmFtCmluZGV4IDBmNTY3MDEyLi4wOGY0OGFmZSAxMDA2NDQKLS0tIGEvc3JjL01ha2Vm aWxlLmFtCisrKyBiL3NyYy9NYWtlZmlsZS5hbQpAQCAtMjYsNyArMjYsNyBAQCBBTV9DRkxBR1Mg PSAkKFdBUk5fQ0ZMQUdTKSAkKFdFUlJPUl9DRkxBR1MpCiBBTV9MREZMQUdTID0gJChPUzJfTERG TEFHUykKIGJpbl9QUk9HUkFNUyA9IG00CiBub2luc3RfSEVBREVSUyA9IG00LmgKLW00X1NPVVJD RVMgPSBtNC5jIGJ1aWx0aW4uYyBkZWJ1Zy5jIGV2YWwuYyBmb3JtYXQuYyBmcmVlemUuYyBpbnB1 dC5jIFwKK200X1NPVVJDRVMgPSBtNC5jIGJ1aWx0aW4uYyBkZWJ1Zy5jIGV2YWwuYyBldmFsNjQu YyBmb3JtYXQuYyBmcmVlemUuYyBpbnB1dC5jIFwKIG1hY3JvLmMgb3V0cHV0LmMgcGF0aC5jIHN5 bXRhYi5jCiBMREFERCA9IC4uL2xpYi9saWJtNC5hICQoTElCTTRfTElCREVQUykgXAogICAkKENM T0NLX1RJTUVfTElCKSAkKEdFVExPQ0FMRU5BTUVfTF9MSUIpICQoR0VUUkFORE9NX0xJQikgXApk aWZmIC0tZ2l0IGEvc3JjL2J1aWx0aW4uYyBiL3NyYy9idWlsdGluLmMKaW5kZXggYmYwZDE3OTgu LmJiYTgwZTMzIDEwMDY0NAotLS0gYS9zcmMvYnVpbHRpbi5jCisrKyBiL3NyYy9idWlsdGluLmMK QEAgLTU3LDYgKzU3LDcgQEAgREVDTEFSRSAobTRfZHVtcGRlZik7CiBERUNMQVJFIChtNF9lcnJw cmludCk7CiBERUNMQVJFIChtNF9lc3lzY21kKTsKIERFQ0xBUkUgKG00X2V2YWwpOworREVDTEFS RSAobTRfZXZhbDY0KTsKIERFQ0xBUkUgKG00X2Zvcm1hdCk7CiBERUNMQVJFIChtNF9pZmRlZik7 CiBERUNMQVJFIChtNF9pZmVsc2UpOwpAQCAtMTA5LDYgKzExMCw3IEBAIHN0YXRpYyBidWlsdGlu IGNvbnN0IGJ1aWx0aW5fdGFiW10gPSB7CiAgIHsiZXJycHJpbnQiLCBmYWxzZSwgZmFsc2UsIHRy dWUsIG00X2VycnByaW50fSwKICAgeyJlc3lzY21kIiwgdHJ1ZSwgZmFsc2UsIHRydWUsIG00X2Vz eXNjbWR9LAogICB7ImV2YWwiLCBmYWxzZSwgZmFsc2UsIHRydWUsIG00X2V2YWx9LAorICB7ImV2 YWw2NCIsIHRydWUsIGZhbHNlLCB0cnVlLCBtNF9ldmFsNjR9LAogICB7ImZvcm1hdCIsIHRydWUs IGZhbHNlLCB0cnVlLCBtNF9mb3JtYXR9LAogICB7ImlmZGVmIiwgZmFsc2UsIHRydWUsIHRydWUs IG00X2lmZGVmfSwKICAgeyJpZmVsc2UiLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgbTRfaWZlbHNlfSwK QEAgLTU3MSwxMCArNTczLDEwIEBAIHN0YXRpYyBjaGFyIGNvbnN0IGRpZ2l0c1tdID0gIjAxMjM0 NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiI7CiAvKiBUaGUgZnVuY3Rpb24gbnRvYSAo KSBjb252ZXJ0cyBWQUxVRSB0byBhIHNpZ25lZCBBU0NJSQogICAgcmVwcmVzZW50YXRpb24gaW4g cmFkaXggUkFESVgsIHdpdGggdGhlIGVuZGluZyBcMCBpbiAqRU5ELiAgKi8KIHN0YXRpYyBjb25z dCBjaGFyICoKLW50b2EgKGludDMyX3QgdmFsdWUsIGludCByYWRpeCwgY29uc3QgY2hhciAqKmVu ZCkKK250b2EgKGludDY0X3QgdmFsdWUsIGludCByYWRpeCwgY29uc3QgY2hhciAqKmVuZCkKIHsK ICAgYm9vbCBuZWdhdGl2ZTsKLSAgdWludDMyX3QgdXZhbHVlOworICB1aW50NjRfdCB1dmFsdWU7 CiAgIC8qIFNpemVkIGZvciByYWRpeCAyLCBwbHVzIHNpZ24gYW5kIHRyYWlsaW5nIE5VTC4gICov CiAgIHN0YXRpYyBjaGFyIHN0cltzaXplb2YgKHZhbHVlKSAqIENIQVJfQklUICsgMl07CiAgIGNo YXIgKnMgPSAmc3RyW3NpemVvZiBzdHJdOwpAQCAtNTg1LDEyICs1ODcsMTIgQEAgbnRvYSAoaW50 MzJfdCB2YWx1ZSwgaW50IHJhZGl4LCBjb25zdCBjaGFyICoqZW5kKQogICBpZiAodmFsdWUgPCAw KQogICAgIHsKICAgICAgIG5lZ2F0aXZlID0gdHJ1ZTsKLSAgICAgIHV2YWx1ZSA9IC0odWludDMy X3QpIHZhbHVlOworICAgICAgdXZhbHVlID0gLSh1aW50NjRfdCkgdmFsdWU7CiAgICAgfQogICBl bHNlCiAgICAgewogICAgICAgbmVnYXRpdmUgPSBmYWxzZTsKLSAgICAgIHV2YWx1ZSA9ICh1aW50 MzJfdCkgdmFsdWU7CisgICAgICB1dmFsdWUgPSAodWludDY0X3QpIHZhbHVlOwogICAgIH0KCiAg IGRvCkBAIC0xMjUzLDEwICsxMjU1LDExIEBAIG00X3N5c3ZhbCAoc3RydWN0IG9ic3RhY2sgKm9i cywgaW50IGFyZ2MgTUFZQkVfVU5VU0VELAogICAgVGhlIGFjdHVhbCB3b3JrIGlzIGRvbmUgaW4g dGhlIGZ1bmN0aW9uIGV2YWx1YXRlICgpLCB3aGljaCBsaXZlcyBpbgogICAgZXZhbC5jLiAgKi8K IHN0YXRpYyB2b2lkCi1tNF9ldmFsIChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJnYywgbWFj cm9fYXJndW1lbnRzICphcmd2KQorZXZhbCAoc3RydWN0IG9ic3RhY2sgKm9icywgaW50IGFyZ2Ms IG1hY3JvX2FyZ3VtZW50cyAqYXJndiwKKyAgICAgIGJvb2wgZnVuYyAoY29uc3QgY2FsbF9pbmZv ICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90LCBpbnQ2NF90ICopKQogewogICBjb25zdCBjYWxsX2lu Zm8gKm1lID0gYXJnX2luZm8gKGFyZ3YpOwotICBpbnQzMl90IHZhbHVlID0gMDsKKyAgaW50NjRf dCB2YWx1ZSA9IDA7CiAgIGludCByYWRpeCA9IDEwOwogICBpbnQgbWluID0gMTsKICAgY29uc3Qg Y2hhciAqczsKQEAgLTEyODMsMTcgKzEyODYsMjMgQEAgbTRfZXZhbCAoc3RydWN0IG9ic3RhY2sg Km9icywgaW50IGFyZ2MsIG1hY3JvX2FyZ3VtZW50cyAqYXJndikKICAgICAgIHJldHVybjsKICAg ICB9CgotICBpZiAoZXZhbHVhdGUgKG1lLCBBUkcgKDEpLCBBUkdfTEVOICgxKSwgJnZhbHVlKSkK KyAgaWYgKGZ1bmMgKG1lLCBBUkcgKDEpLCBBUkdfTEVOICgxKSwgJnZhbHVlKSkKICAgICByZXR1 cm47CgogICBpZiAocmFkaXggPT0gMSkKICAgICB7CisgICAgICBpZiAodmFsdWUgPCBJTlRfTUlO IHx8IHZhbHVlID4gSU5UX01BWCkKKyAgICAgICAgeworICAgICAgICAgIG00X3dhcm4gKDAsIG1l LCBfKCJtYWduaXR1ZGUgdG9vIGxhcmdlIGZvciBiYXNlIDE6ICUiIFBSSWQ2NCksCisgICAgICAg ICAgICAgICAgICAgdmFsdWUpOworICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgICAg aWYgKHZhbHVlIDwgMCkKICAgICAgICAgewogICAgICAgICAgIG9ic3RhY2tfMWdyb3cgKG9icywg Jy0nKTsKICAgICAgICAgICB2YWx1ZSA9IC12YWx1ZTsKICAgICAgICAgfQotICAgICAgaWYgKHZh bHVlICsgMFUgPCBtaW4gKyAwVSkKKyAgICAgIGlmICh2YWx1ZSArIDBVTEwgPCBtaW4gKyAwVUxM KQogICAgICAgICB7CiAgICAgICAgICAgb2JzdGFja19ibGFuayAob2JzLCBtaW4gLSB2YWx1ZSk7 CiAgICAgICAgICAgbWVtc2V0ICgoY2hhciAqKSBvYnN0YWNrX25leHRfZnJlZSAob2JzKSAtICht aW4gLSB2YWx1ZSksICcwJywKQEAgLTEzMjEsNiArMTMzMCwxOCBAQCBtNF9ldmFsIChzdHJ1Y3Qg b2JzdGFjayAqb2JzLCBpbnQgYXJnYywgbWFjcm9fYXJndW1lbnRzICphcmd2KQogICBvYnN0YWNr X2dyb3cgKG9icywgcywgbGVuKTsKIH0KCitzdGF0aWMgdm9pZAorbTRfZXZhbCAoc3RydWN0IG9i c3RhY2sgKm9icywgaW50IGFyZ2MsIG1hY3JvX2FyZ3VtZW50cyAqYXJndikKK3sKKyAgZXZhbCAo b2JzLCBhcmdjLCBhcmd2LCBldmFsdWF0ZSk7Cit9CisKK3N0YXRpYyB2b2lkCittNF9ldmFsNjQg KHN0cnVjdCBvYnN0YWNrICpvYnMsIGludCBhcmdjLCBtYWNyb19hcmd1bWVudHMgKmFyZ3YpCit7 CisgIGV2YWwgKG9icywgYXJnYywgYXJndiwgZXZhbHVhdGU2NCk7Cit9CisKIHN0YXRpYyB2b2lk CiBtNF9pbmNyIChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJnYywgbWFjcm9fYXJndW1lbnRz ICphcmd2KQogewpkaWZmIC0tZ2l0IGEvc3JjL2V2YWwuYyBiL3NyYy9ldmFsLmMKaW5kZXggZTNi YjhiMmMuLjE4NDU0ZDdlIDEwMDY0NAotLS0gYS9zcmMvZXZhbC5jCisrKyBiL3NyYy9ldmFsLmMK QEAgLTIyLDkgKzIyLDE2IEBACiAvKiBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGZ1bmN0aW9ucyB0 byBldmFsdWF0ZSBpbnRlZ2VyIGV4cHJlc3Npb25zIGZvcgogICAgdGhlICJldmFsIiBtYWNyby4g IEl0IGlzIGEgbGl0dGxlLCBmYWlybHkgc2VsZi1jb250YWluZWQgbW9kdWxlLCB3aXRoCiAgICBp dHMgb3duIHNjYW5uZXIsIGFuZCBhIHJlY3Vyc2l2ZSBkZXNjZW50IHBhcnNlci4gIFRoZSBvbmx5 IGVudHJ5IHBvaW50Ci0gICBpcyBldmFsdWF0ZSAoKS4gICovCisgICBpcyBldmFsdWF0ZSAoKS4g IFRoaXMgZmlsZSBpcyBhbHNvIHVzZWQgdG8gaW1wbGVtZW50IGV2YWw2NC4gICovCgotI2luY2x1 ZGUgIm00LmgiCisjaWZuZGVmIEVWQUw2NAorIyBpbmNsdWRlICJtNC5oIgorCisjIGRlZmluZSBJ TlQgaW50MzJfdAorIyBkZWZpbmUgVUlOVCB1aW50MzJfdAorIyBkZWZpbmUgU0hJRlRNQVNLIDB4 MWYKKyMgZGVmaW5lIEVWQUxVQVRFIGV2YWx1YXRlCisjZW5kaWYgLyogIUVWQUw2NCAqLwoKIC8q IEV2YWx1YXRlcyB0b2tlbiB0eXBlcy4gICovCgpAQCAtODgsOCArOTUsOSBAQCB0eXBlZGVmIGVu dW0gZXZhbF9lcnJvcgogfQogZXZhbF9lcnJvcjsKCi1zdGF0aWMgZXZhbF9lcnJvciBwcmltYXJ5 IChpbnQzMl90ICopOwotc3RhdGljIGV2YWxfZXJyb3IgcGFyc2VfZXhwciAoaW50MzJfdCAqLCBl dmFsX2Vycm9yLCB1bnNpZ25lZCk7CisKK3N0YXRpYyBldmFsX2Vycm9yIHByaW1hcnkgKElOVCAq KTsKK3N0YXRpYyBldmFsX2Vycm9yIHBhcnNlX2V4cHIgKElOVCAqLCBldmFsX2Vycm9yLCB1bnNp Z25lZCk7CgogLyogTGV4aWNhbCBmdW5jdGlvbnMuICAqLwoKQEAgLTEyMSw3ICsxMjksNyBAQCBl dmFsX3VuZG8gKHZvaWQpCiAvKiBWQUwgaXMgbnVtZXJpY2FsIHZhbHVlLCBpZiBhbnkuICAqLwoK IHN0YXRpYyBldmFsX3Rva2VuCi1ldmFsX2xleCAoaW50MzJfdCAqdmFsKQorZXZhbF9sZXggKElO VCAqdmFsKQogewogICB3aGlsZSAoZXZhbF90ZXh0ICE9IGVuZF90ZXh0ICYmIGNfaXNzcGFjZSAo KmV2YWxfdGV4dCkpCiAgICAgZXZhbF90ZXh0Kys7CkBAIC0xNDAsNyArMTQ4LDcgQEAgZXZhbF9s ZXggKGludDMyX3QgKnZhbCkKICAgICAgIC8qIFRoZSBkb2N1bWVudGF0aW9uIHNheXMgdGhhdCAi b3ZlcmZsb3cgc2lsZW50bHkgcmVzdWx0cyBpbiB3cmFwYXJvdW5kIi4KICAgICAgICAgIFRoZXJl Zm9yZSB1c2UgYW4gdW5zaWduZWQgaW50ZWdlciB0eXBlIHRvIGF2b2lkIHVuZGVmaW5lZCBiZWhh dmlvdXIKICAgICAgICAgIHdoZW4gcGFyc2luZyAnLTIxNDc0ODM2NDgnLiAgKi8KLSAgICAgIHVp bnQzMl90IHZhbHVlOworICAgICAgVUlOVCB2YWx1ZTsKCiAgICAgICBpZiAoKmV2YWxfdGV4dCA9 PSAnMCcpCiAgICAgICAgIHsKQEAgLTMyMiwxMCArMzMwLDEwIEBAIGV2YWxfbGV4IChpbnQzMl90 ICp2YWwpCgogLyogUGFyc2UgYChleHByKScsIHVuYXJ5IG9wZXJhdG9ycywgYW5kIG51bWJlcnMu ICAqLwogc3RhdGljIGV2YWxfZXJyb3IKLXByaW1hcnkgKGludDMyX3QgKnYxKQorcHJpbWFyeSAo SU5UICp2MSkKIHsKICAgZXZhbF9lcnJvciBlcjsKLSAgaW50MzJfdCB2MjsKKyAgSU5UIHYyOwoK ICAgc3dpdGNoIChldmFsX2xleCAodjEpKQogICAgIHsKQEAgLTM2MCw3ICszNjgsNyBAQCBwcmlt YXJ5IChpbnQzMl90ICp2MSkKICAgICAgIHJldHVybiBwcmltYXJ5ICh2MSk7CiAgICAgY2FzZSBN SU5VUzoKICAgICAgIGVyID0gcHJpbWFyeSAodjEpOwotICAgICAgKnYxID0gKGludDMyX3QpIC0o dWludDMyX3QpICp2MTsKKyAgICAgICp2MSA9IChJTlQpIC0oVUlOVCkgKnYxOwogICAgICAgcmV0 dXJuIGVyOwogICAgIGNhc2UgTk9UOgogICAgICAgZXIgPSBwcmltYXJ5ICh2MSk7CkBAIC0zODgs MTcgKzM5NiwxNyBAQCBwcmltYXJ5IChpbnQzMl90ICp2MSkKCiAvKiBQYXJzZSBiaW5hcnkgb3Bl cmF0b3JzIHdpdGggYXQgbGVhc3QgTUlOX1BSRUMgcHJlY2VkZW5jZS4gICovCiBzdGF0aWMgZXZh bF9lcnJvcgotcGFyc2VfZXhwciAoaW50MzJfdCAqdjEsIGV2YWxfZXJyb3IgZXIsIHVuc2lnbmVk IG1pbl9wcmVjKQorcGFyc2VfZXhwciAoSU5UICp2MSwgZXZhbF9lcnJvciBlciwgdW5zaWduZWQg bWluX3ByZWMpCiB7CiAgIGV2YWxfdG9rZW4gZXQ7CiAgIGV2YWxfdG9rZW4gZXQyOwogICBldmFs X2Vycm9yIGVyMjsKICAgZXZhbF9lcnJvciBlcjM7Ci0gIGludDMyX3QgdjI7Ci0gIGludDMyX3Qg djM7Ci0gIHVpbnQzMl90IHUxOwotICB1aW50MzJfdCB1MjsKLSAgdWludDMyX3QgdTM7CisgIElO VCB2MjsKKyAgSU5UIHYzOworICBVSU5UIHUxOworICBVSU5UIHUyOworICBVSU5UIHUzOwoKICAg aWYgKGVyID49IFNZTlRBWF9FUlJPUikKICAgICByZXR1cm4gZXI7CkBAIC00NjAsMTQgKzQ2OCwx NCBAQCBwYXJzZV9leHByIChpbnQzMl90ICp2MSwgZXZhbF9lcnJvciBlciwgdW5zaWduZWQgbWlu X3ByZWMpCiAgICAgICAgICAgYnJlYWs7CgogICAgICAgICBjYXNlIFRJTUVTOgotICAgICAgICAg ICp2MSA9IChpbnQzMl90KSAoKHVpbnQzMl90KSAqdjEgKiAodWludDMyX3QpIHYyKTsKKyAgICAg ICAgICAqdjEgPSAoSU5UKSAoKFVJTlQpICp2MSAqIChVSU5UKSB2Mik7CiAgICAgICAgICAgYnJl YWs7CiAgICAgICAgIGNhc2UgRElWSURFOgogICAgICAgICAgIGlmICh2MiA9PSAwKQogICAgICAg ICAgICAgZXIgPSBESVZJREVfWkVSTzsKICAgICAgICAgICBlbHNlIGlmICh2MiA9PSAtMSkKICAg ICAgICAgICAgIC8qIEF2b2lkIG92ZXJmbG93LCBhbmQgdGhlIHg4NiBTSUdGUEUgb24gSU5UX01J TiAvIC0xLiAgKi8KLSAgICAgICAgICAgICp2MSA9IChpbnQzMl90KSAtKHVpbnQzMl90KSAqdjE7 CisgICAgICAgICAgICAqdjEgPSAoSU5UKSAtKFVJTlQpICp2MTsKICAgICAgICAgICBlbHNlCiAg ICAgICAgICAgICAqdjEgLz0gdjI7CiAgICAgICAgICAgYnJlYWs7CkBAIC00ODIsMjUgKzQ5MCwy NSBAQCBwYXJzZV9leHByIChpbnQzMl90ICp2MSwgZXZhbF9lcnJvciBlciwgdW5zaWduZWQgbWlu X3ByZWMpCiAgICAgICAgICAgYnJlYWs7CgogICAgICAgICBjYXNlIFBMVVM6Ci0gICAgICAgICAg KnYxID0gKGludDMyX3QpICgodWludDMyX3QpICp2MSArICh1aW50MzJfdCkgdjIpOworICAgICAg ICAgICp2MSA9IChJTlQpICgoVUlOVCkgKnYxICsgKFVJTlQpIHYyKTsKICAgICAgICAgICBicmVh azsKICAgICAgICAgY2FzZSBNSU5VUzoKLSAgICAgICAgICAqdjEgPSAoaW50MzJfdCkgKCh1aW50 MzJfdCkgKnYxIC0gKHVpbnQzMl90KSB2Mik7CisgICAgICAgICAgKnYxID0gKElOVCkgKChVSU5U KSAqdjEgLSAoVUlOVCkgdjIpOwogICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgY2FzZSBMU0hJ RlQ6CiAgICAgICAgICAgdTEgPSAqdjE7Ci0gICAgICAgICAgdTEgPDw9ICh1aW50MzJfdCkgKHYy ICYgMHgxZik7CisgICAgICAgICAgdTEgPDw9IChVSU5UKSAodjIgJiBTSElGVE1BU0spOwogICAg ICAgICAgICp2MSA9IHUxOwogICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFJTSElGVDoK ICAgICAgICAgICB1MSA9ICp2MSA8IDAgPyB+KnYxIDogKnYxOwotICAgICAgICAgIHUxID4+PSAo dWludDMyX3QpICh2MiAmIDB4MWYpOworICAgICAgICAgIHUxID4+PSAoVUlOVCkgKHYyICYgU0hJ RlRNQVNLKTsKICAgICAgICAgICAqdjEgPSAqdjEgPCAwID8gfnUxIDogdTE7CiAgICAgICAgICAg YnJlYWs7CiAgICAgICAgIGNhc2UgVVJTSElGVDoKICAgICAgICAgICB1MSA9ICp2MTsKLSAgICAg ICAgICB1MSA+Pj0gKHVpbnQzMl90KSAodjIgJiAweDFmKTsKKyAgICAgICAgICB1MSA+Pj0gKFVJ TlQpICh2MiAmIFNISUZUTUFTSyk7CiAgICAgICAgICAgKnYxID0gdTE7CiAgICAgICAgICAgYnJl YWs7CgpAQCAtNTg1LDE3ICs1OTMsMTkgQEAgcGFyc2VfZXhwciAoaW50MzJfdCAqdjEsIGV2YWxf ZXJyb3IgZXIsIHVuc2lnbmVkIG1pbl9wcmVjKQoKIC8qIE1haW4gZW50cnkgcG9pbnQsIGNhbGxl ZCBmcm9tICJldmFsIi4gICovCiBib29sCi1ldmFsdWF0ZSAoY29uc3QgY2FsbF9pbmZvICptZSwg Y29uc3QgY2hhciAqZXhwciwgc2l6ZV90IGxlbiwgaW50MzJfdCAqdmFsKQorRVZBTFVBVEUgKGNv bnN0IGNhbGxfaW5mbyAqbWUsIGNvbnN0IGNoYXIgKmV4cHIsIHNpemVfdCBsZW4sIGludDY0X3Qg KnB2YWwpCiB7CiAgIGV2YWxfZXJyb3IgZXJyOworICBJTlQgdmFsID0gMDsKCisgICpwdmFsID0g MDsKICAgZXZhbF9pbml0X2xleCAoZXhwciwgbGVuKTsKLSAgZXJyID0gcHJpbWFyeSAodmFsKTsK LSAgZXJyID0gcGFyc2VfZXhwciAodmFsLCBlcnIsIDEpOworICBlcnIgPSBwcmltYXJ5ICgmdmFs KTsKKyAgZXJyID0gcGFyc2VfZXhwciAoJnZhbCwgZXJyLCAxKTsKCiAgIGlmIChlcnIgPT0gTk9f RVJST1IgJiYgZXZhbF90ZXh0ICE9IGVuZF90ZXh0KQogICAgIHsKLSAgICAgIGlmIChldmFsX2xl eCAodmFsKSA9PSBCQURPUCkKKyAgICAgIGlmIChldmFsX2xleCAoJnZhbCkgPT0gQkFET1ApCiAg ICAgICAgIGVyciA9IElOVkFMSURfT1BFUkFUT1I7CiAgICAgICBlbHNlCiAgICAgICAgIGVyciA9 IEVYQ0VTU19JTlBVVDsKQEAgLTYwNyw2ICs2MTcsNyBAQCBldmFsdWF0ZSAoY29uc3QgY2FsbF9p bmZvICptZSwgY29uc3QgY2hhciAqZXhwciwgc2l6ZV90IGxlbiwgaW50MzJfdCAqdmFsKQogICAg IHsKICAgICAgIC8qIENhc2VzIHdoZXJlIHJlc3VsdCBpcyBwcmludGVkLiAgKi8KICAgICBjYXNl IE5PX0VSUk9SOgorICAgICAgKnB2YWwgPSB2YWw7CiAgICAgICByZXR1cm4gZmFsc2U7CgogICAg IGNhc2UgRU1QVFlfQVJHVU1FTlQ6CmRpZmYgLS1naXQgYS9zcmMvZXZhbDY0LmMgYi9zcmMvZXZh bDY0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjZkNWFlMWI3Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjL2V2YWw2NC5jCkBAIC0wLDAgKzEsMzkgQEAKKy8qIEdOVSBtNCAt LSBBIHNpbXBsZSBtYWNybyBwcm9jZXNzb3IKKworICAgQ29weXJpZ2h0IChDKSAxOTg5LTE5OTQs IDIwMDYtMjAxNCwgMjAxNi0yMDE3LCAyMDIwLTIwMjUgRnJlZQorICAgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgTTQuCisKKyAgIEdOVSBN NCBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 CisgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVy IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisKKyAgIEdOVSBNNCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCisqLworCisvKiBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGZ1bmN0aW9ucyB0byBldmFs dWF0ZSA2NC1iaXQgaW50ZWdlcgorICAgZXhwcmVzc2lvbnMgZm9yIHRoZSAiZXZhbDY0IiBtYWNy bywgYnkgcmV1c2luZyBjb2RlIGZyb20gZXZhbC4gIFRoZQorICAgb25seSBlbnRyeSBwb2ludCBp cyBldmFsdWF0ZTY0ICgpLiAgKi8KKworI2luY2x1ZGUgIm00LmgiCisKKyNkZWZpbmUgRVZBTDY0 CisjZGVmaW5lIElOVCBpbnQ2NF90CisjZGVmaW5lIFVJTlQgdWludDY0X3QKKyNkZWZpbmUgU0hJ RlRNQVNLIDB4M2YKKyNkZWZpbmUgRVZBTFVBVEUgZXZhbHVhdGU2NAorCisjaW5jbHVkZSAiZXZh bC5jIgorLyoKKyAgRGVmaW5lZCBieSBldmFsLmM6Citib29sCitldmFsdWF0ZTY0IChjb25zdCBj YWxsX2luZm8gKm1lLCBjb25zdCBjaGFyICpleHByLCBzaXplX3QgbGVuLCBJTlQgKnZhbCkKKyAq LwpkaWZmIC0tZ2l0IGEvc3JjL200LmggYi9zcmMvbTQuaAppbmRleCA3OWRjYTQzOC4uYzE3MzUz MTggMTAwNjQ0Ci0tLSBhL3NyYy9tNC5oCisrKyBiL3NyYy9tNC5oCkBAIC0yOSw2ICsyOSw3IEBA CiAjaW5jbHVkZSA8Yy1jdHlwZS5oPgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8ZXJy b3IuaD4KKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1 ZGUgPGxvY2FsZS5oPgogI2luY2x1ZGUgPHN0ZGJvb2wuaD4KQEAgLTU0Niw5ICs1NDcsMTMgQEAg ZXh0ZXJuIHZvaWQgaW5jbHVkZV9lbnZfaW5pdCAodm9pZCk7CiBleHRlcm4gdm9pZCBhZGRfaW5j bHVkZV9kaXJlY3RvcnkgKGNvbnN0IGNoYXIgKik7CiBleHRlcm4gRklMRSAqbTRfcGF0aF9zZWFy Y2ggKGNvbnN0IGNoYXIgKiwgYm9vbCwgY2hhciAqKik7CiAMCi0vKiBGaWxlOiBldmFsLmMgIC0t LSBleHByZXNzaW9uIGV2YWx1YXRpb24uICAqLworLyogRmlsZTogZXZhbC5jICAtLS0gMzItYml0 IGV4cHJlc3Npb24gZXZhbHVhdGlvbi4gICovCgotZXh0ZXJuIGJvb2wgZXZhbHVhdGUgKGNvbnN0 IGNhbGxfaW5mbyAqLCBjb25zdCBjaGFyICosIHNpemVfdCwgaW50MzJfdCAqKTsKK2V4dGVybiBi b29sIGV2YWx1YXRlIChjb25zdCBjYWxsX2luZm8gKiwgY29uc3QgY2hhciAqLCBzaXplX3QsIGlu dDY0X3QgKik7CisMCisvKiBGaWxlOiBldmFsNjQuYyAgLS0tIDY0LWJpdCBleHByZXNzaW9uIGV2 YWx1YXRpb24uICAqLworCitleHRlcm4gYm9vbCBldmFsdWF0ZTY0IChjb25zdCBjYWxsX2luZm8g KiwgY29uc3QgY2hhciAqLCBzaXplX3QsIGludDY0X3QgKik7CiAMCiAvKiBGaWxlOiBmb3JtYXQu YyAgLS0tIHByaW50ZiBsaWtlIGZvcm1hdHRpbmcuICAqLwoKLS0gCjIuNDkuMAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk00LXBhdGNoZXMgbWFpbGlu ZyBsaXN0Ck00LXBhdGNoZXNAZ251Lm9yZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9s aXN0aW5mby9tNC1wYXRjaGVzCg==