Re: Infix/postfix/nary redefinition issue (was loading to_poly_solve has side-effect).
serge de marre <[email protected]> Tue, 28 Jul 2026 14:33:38 +0200
| Newsgroups | gmane.comp.mathematics.maxima.general |
|---|---|
| Message-ID | <CAON_BKxbLq5+KAJRYGRC_m=wGWr4imdbCeze0nwMp3eiQDo9eg@mail.gmail.com> |
--0000000000000d67d80657ab0da3 Content-Type: multipart/alternative; boundary="0000000000000d67d70657ab0da1" --0000000000000d67d70657ab0da1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi David, Thanks for taking the time to look into this. I've attached 2 files: a diff (comparing to 60186bb22) of the work: * changes to src/defcal.lisp and src/nparse.lisp (the proposed fix) * tests/rtest_operators.mac * change to src/testsuite.lisp to actually run rtest_operators.mac (I'm not sure if this is needed ?) I've also added a handover document that you can give to claude, and then interact with it to find out more details (that can be useful in your review process). serge On Tue, Jul 28, 2026 at 1:29=E2=80=AFPM David Scherfgen <d.scherfgen@google= mail.com> wrote: > Great! Please share Claude's fix in whatever way is the most convenient > for you, and I will give it another review and integrate it. > > serge de marre <[email protected]> schrieb am Di., 28. Juli 2026, 13:05: > >> Hi all, >> >> Turns out the issue has nothing to do with to_poly_solve itself, but wit= h >> operator (re)definitions. >> it's not just with nary, but also with prefix, postfix, infix, nofix and >> matchfix. >> I've added a bug entry in sourceforge ( Maxima -- GPL CAS based on >> DOE-MACSYMA / Bugs / #4883 Redefining an operator to be infix/postfix/na= ry >> causes a parser bug <https://sourceforge.net/p/maxima/bugs/4883/> ) , >> with steps to reproduce. >> I've also attached a testcase to that sourceforge issue, a testcase that >> currently fails and that should pass (I think). >> I've used claude to assist with the investigation (and the writing of th= e >> test), and it suggested 2 fixes that I can provide (or I could create a >> pull request), >> The fixes make the provided testcase pass, as well as the 19700+ tests o= f >> the current run_testsuite(share_tests=3Dtrue); >> >> serge >> _______________________________________________ >> Maxima-discuss mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/maxima-discuss >> > --0000000000000d67d70657ab0da1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">Hi David,<div><br></div><div>Thanks for taking the time to= look into this.</div><div>I've attached 2 files: a diff (comparing to= =C2=A060186bb22) of the work:=C2=A0</div><div>*=C2=A0<span style=3D"backgro= und-color:transparent">=C2=A0changes to src/defcal.lisp and src/nparse.lisp= =C2=A0(the proposed fix)</span></div><div>* tests/rtest_operators.mac</div>= <div>* change to src/testsuite.lisp to actually run rtest_operators.mac (I&= #39;m not sure if this is needed ?)</div><div>I've also added a handove= r document that you can give to claude, and then interact with it to find o= ut more details (that can be useful in your review process).</div><div><br>= </div><div>serge</div></div><br><div class=3D"gmail_quote gmail_quote_conta= iner"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Jul 28, 2026 at 1:29=E2= =80=AFPM David Scherfgen <<a href=3D"mailto:[email protected]">= [email protected]</a>> wrote:<br></div><blockquote class=3D"gma= il_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,2= 04,204);padding-left:1ex"><div dir=3D"auto">Great! Please share Claude'= s fix in whatever way is the most convenient for you, and I will give it an= other review and integrate it.</div><br><div class=3D"gmail_quote"><div dir= =3D"ltr" class=3D"gmail_attr">serge de marre <<a href=3D"mailto:sdemarre= @gmail.com" target=3D"_blank">[email protected]</a>> schrieb am Di., 28= . Juli 2026, 13:05:<br></div><blockquote class=3D"gmail_quote" style=3D"mar= gin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1= ex"><div dir=3D"ltr"><div id=3D"m_-3318829815725664550m_-640002428975278414= 7gmail-:2i6" aria-label=3D"Message Body" role=3D"textbox" aria-multiline=3D= "true" style=3D"direction:ltr;min-height:85px" aria-controls=3D":2kv" aria-= expanded=3D"false"><div id=3D"m_-3318829815725664550m_-6400024289752784147g= mail-:2i6" aria-label=3D"Message Body" role=3D"textbox" aria-multiline=3D"t= rue" style=3D"direction:ltr;min-height:85px" aria-controls=3D":2kv" aria-ex= panded=3D"false">Hi all,<div><br></div><div>Turns out the issue has nothing= to do with to_poly_solve itself, but with operator (re)definitions.</div><= div>it's not just with nary, but also with prefix, postfix, infix, nofi= x and matchfix.</div><div>I've added a bug entry in sourceforge ( <a href=3D"https://sourceforge.net/p/maxima/bugs/4883/" rel=3D"noreferrer" = target=3D"_blank">Maxima -- GPL CAS based on DOE-MACSYMA / Bugs / #4883 Red= efining an operator to be infix/postfix/nary causes a parser bug</a>=C2=A0)= , with steps to reproduce.</div><div>I've also attached a testcase=C2= =A0to that sourceforge issue, a testcase that currently fails and that shou= ld pass (I think).</div><div>I've used claude to assist with the invest= igation (and the writing of the test), and it suggested 2 fixes that I can = provide (or I could create a pull request),</div><div>The fixes make the pr= ovided testcase pass, as well as the 19700+ tests of the current run_testsu= ite(share_tests=3Dtrue);</div><div><br></div><div>serge</div></div></div></= div> _______________________________________________<br> Maxima-discuss mailing list<br> <a href=3D"mailto:[email protected]" rel=3D"noreferrer" = target=3D"_blank">[email protected]</a><br> <a href=3D"https://lists.sourceforge.net/lists/listinfo/maxima-discuss" rel= =3D"noreferrer noreferrer" target=3D"_blank">https://lists.sourceforge.net/= lists/listinfo/maxima-discuss</a><br> </blockquote></div> </blockquote></div> --0000000000000d67d70657ab0da1-- --0000000000000d67d80657ab0da3 Content-Type: application/octet-stream; name="maxima-4883.patch" Content-Disposition: attachment; filename="maxima-4883.patch" Content-Transfer-Encoding: base64 Content-ID: <f_ms4mywt70> X-Attachment-Id: f_ms4mywt70 ZGlmZiAtLWdpdCBhL3NyYy9kZWZjYWwubGlzcCBiL3NyYy9kZWZjYWwubGlzcAppbmRleCA4OGNh YWIzNTEuLjk1ZTNhY2VhNyAxMDA2NDQKLS0tIGEvc3JjL2RlZmNhbC5saXNwCisrKyBiL3NyYy9k ZWZjYWwubGlzcApAQCAtNzEsNyArNzEsMTUgQEAKICAgKCpkZWZpbmUtaW5pdGlhbC1zeW1ib2xz IChkZWxldGUgb3ByIHN5bWJvbHMtZGVmaW5lZCA6dGVzdCAjJ2VxdWFsKSkpCiAKIChkZWZ1biBk ZWZpbmUtc3ltYm9sICh4KQotICAoKmRlZmluZS1pbml0aWFsLXN5bWJvbHMgKGNvbnMgeCBzeW1i b2xzLWRlZmluZWQpKQorICA7OyBPbmx5IGV4dGVuZCBTWU1CT0xTLURFRklORUQgd2hlbiBYIGlz IG5vdCBhbHJlYWR5IGtub3duLiBBZGRpbmcgYQorICA7OyBkdXBsaWNhdGUgZW50cnkgbWFrZXMg Q1NUUlNFVFVQIGJ1aWxkIGEgZGVnZW5lcmF0ZSBub2RlIGNhcnJ5aW5nIGEKKyAgOzsgc3B1cmlv dXMgZW1wdHkgYnJhbmNoLCBlLmcuIGRlY2xhcmluZyAiJW9yIiB0d2ljZSB0dXJucworICA7OyAg ICgjXCUgI1xvICNcciAoQU5TICQlT1IpKQorICA7OyBpbnRvCisgIDs7ICAgKCNcJSAjXG8gI1xy IChBTlMgJCVPUikgKChBTlMgJCVPUikpKQorICA7OyB3aGljaCBwdXNoZXMgUkVBRC1DT01NQU5E LVRPS0VOLUFVWCBvdXQgb2YgaXRzIGxlYWYgY2FzZS4KKyAgKHVubGVzcyAobWVtYmVyIHggc3lt Ym9scy1kZWZpbmVkIDp0ZXN0ICMnZXF1YWwpCisgICAgKCpkZWZpbmUtaW5pdGlhbC1zeW1ib2xz IChjb25zIHggc3ltYm9scy1kZWZpbmVkKSkpCiAgIChzeW1ib2xjb25jICckIChtYXliZS1pbnZl cnQtc3RyaW5nLWNhc2UgeCkpKQogCiAoZGVmdW4gY3N0cnNldHVwIChhcmcpCmRpZmYgLS1naXQg YS9zcmMvbnBhcnNlLmxpc3AgYi9zcmMvbnBhcnNlLmxpc3AKaW5kZXggYzE1MWNjNjM2Li5jZTkx ZDU2NGUgMTAwNjQ0Ci0tLSBhL3NyYy9ucGFyc2UubGlzcAorKysgYi9zcmMvbnBhcnNlLmxpc3AK QEAgLTI4MSw2ICsyODEsMTYgQEAKIAkJICAgICAgICAgICAgIChjYWRyIChjYWRyIGxpcykpKSkp CiAJICAgICAgICAgKHQKIAkJICAobGV0ICgocmVzICAgKGFuZCAoZXFsIChjYXIgKGNhZHIgbGlz KSkgJ2FucykKKwkJICAgICAgICAgICAgICAgICAgICA7OyBTYW1lIGRlbGltaXRlciBjaGVjayBh cyB0aGUgbGVhZiBjYXNlCisJCSAgICAgICAgICAgICAgICAgICAgOzsgYWJvdmU6IGFuIG9wZXJh dG9yIHdob3NlIG5hbWUgc3RhcnRzIHdpdGgKKwkJICAgICAgICAgICAgICAgICAgICA7OyBhbiBh bHBoYWJldGljIGNoYXJhY3RlciBtdXN0IGJlIGZvbGxvd2VkCisJCSAgICAgICAgICAgICAgICAg ICAgOzsgYnkgd2hpdGVzcGFjZSwgb3RoZXJ3aXNlICVvcmIgaGFzIHRvIGJlCisJCSAgICAgICAg ICAgICAgICAgICAgOzsgcmVhZCBhcyB0aGUgc3ltYm9sICVvcmIgcmF0aGVyIHRoYW4gYXMKKwkJ ICAgICAgICAgICAgICAgICAgICA7OyB0aGUgb3BlcmF0b3IgJW9yIGFwcGxpZWQgdG8gYi4gUmVh Y2hhYmxlCisJCSAgICAgICAgICAgICAgICAgICAgOzsgd2hlbmV2ZXIgb25lIG9wZXJhdG9yIG5h bWUgaXMgYSBzdHJpY3QKKwkJICAgICAgICAgICAgICAgICAgICA7OyBwcmVmaXggb2YgYW5vdGhl ciwgZS5nLiAlb3IgYW5kICVvcmUuCisJCSAgICAgICAgICAgICAgICAgICAgKG9yIChub3QgKGFs cGhhYmV0cCAoY2FkciAoZXhwbG9kZW4gKGNhZHIgKGNhZHIgbGlzKSkpKSkpCisJCSAgICAgICAg ICAgICAgICAgICAgICAgIChtZW1iZXIgKHBhcnNlLXR5aXBlZWspICp3aGl0ZXNwYWNlLWNoYXJz KikpCiAJCQkJICAgIChjYWRyIChjYWRyIGxpcykpKSkKIAkJCShjb20tdG9rZW4gKHJlYWQtY29t bWFuZC10b2tlbi1hdXggKGNkZHIgbGlzKSApKSkKIAkJICAgIChzZXRxIHJlc3VsdCAob3IgY29t LXRva2VuIHJlcwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzdWl0ZS5saXNwIGIvc3JjL3Rlc3RzdWl0 ZS5saXNwCmluZGV4IDI3ZTBkMzVjZS4uOTgxMDkzNWRkIDEwMDY0NAotLS0gYS9zcmMvdGVzdHN1 aXRlLmxpc3AKKysrIGIvc3JjL3Rlc3RzdWl0ZS5saXNwCkBAIC05NCw2ICs5NCw3IEBACiAJICgo bWxpc3Qgc2ltcCkgODggOTEgOTcgMTA0IDEyOCAxMjkpKQogICAgICAgICAoKG1saXN0IHNpbXAp ICJydGVzdF9kb3QiKQogICAgICAgICAicnRlc3RfbXNldCIKKyAgICAgICAgInJ0ZXN0X29wZXJh dG9ycyIKICAgICAgICAgInJ0ZXN0X2Jvb2xlYW4iCiAgICAgICAgICJydGVzdF9yb3VuZCIKICAg ICAgICAgKChtbGlzdCBzaW1wKSAicnRlc3RfbWFwIgpkaWZmIC0tZ2l0IGEvdGVzdHMvcnRlc3Rf b3BlcmF0b3JzLm1hYyBiL3Rlc3RzL3J0ZXN0X29wZXJhdG9ycy5tYWMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwLi4wN2RkYzU0NzUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0 cy9ydGVzdF9vcGVyYXRvcnMubWFjCkBAIC0wLDAgKzEsMTkwIEBACisvKiBUZXN0cyBmb3IgdGhl IHN5bnRheC1leHRlbnNpb24gZnVuY3Rpb25zIHByZWZpeCwgaW5maXgsIG5hcnksIHBvc3RmaXgs CisgICBub2ZpeCBhbmQgbWF0Y2hmaXguCisKKyAgIFJlZGVjbGFyaW5nIGFuIG9wZXJhdG9yLCBv ciBkZWNsYXJpbmcgdHdvIG9wZXJhdG9ycyB3aGVyZSBvbmUgbmFtZSBpcyBhCisgICBzdHJpY3Qg cHJlZml4IG9mIHRoZSBvdGhlciwgdXNlZCB0byBjb3JydXB0IHRoZSB0b2tlbml6ZXIncyBvcGVy YXRvciB0cmllCisgICBzbyB0aGF0IGFuIG9yZGluYXJ5IGlkZW50aWZpZXIgYmVnaW5uaW5nIHdp dGggdGhlIG9wZXJhdG9yIG5hbWUgd2FzIHNwbGl0CisgICBpbnRvIHRoZSBvcGVyYXRvciBwbHVz IHRoZSByZXN0LiAgRm9yIGV4YW1wbGUsIGFmdGVyIG5hcnkoIiVvciIpIGhhZCBiZWVuCisgICBy dW4gdHdpY2UgLS0gd2hpY2ggaGFwcGVucyB3aGVuIHRvX3BvbHlfc29sdmUgaXMgbG9hZGVkIHR3 aWNlLCBzaW5jZSBpdAorICAgYWxpYXNlcyB0b19wb2x5X3NvbHZlIHRvICVzb2x2ZSAtLSB0aGUg aWRlbnRpZmllciAlb3JiIHdhcyB0b2tlbml6ZWQgYXMKKyAgICVvciBmb2xsb3dlZCBieSBiLCBn aXZpbmcgImluY29ycmVjdCBzeW50YXg6ICVvciBpcyBub3QgYSBwcmVmaXggb3BlcmF0b3IiLgor CisgICBOT1RFIE9OIFNUWUxFOiBldmVyeSBvcGVyYXRvciBuYW1lIGFuZCBldmVyeSBleHByZXNz aW9uIHRoYXQgdXNlcyBvbmUgaXMKKyAgIHdyaXR0ZW4gaW5zaWRlIGEgc3RyaW5nIGFuZCBleGVy Y2lzZWQgdGhyb3VnaCBwYXJzZV9zdHJpbmcvZXZhbF9zdHJpbmcsCisgICBuZXZlciBpbiB0aGlz IGZpbGUncyBvd24gc3ludGF4LiAgVHdvIHJlYXNvbnM6CisKKyAgICAgMS4gRGVjbGFyaW5nIGFu IG9wZXJhdG9yIGNoYW5nZXMgaG93IHRoZSAqcmVzdCogb2YgdGhpcyBmaWxlIGlzIHJlYWQsCisg ICAgICAgIGJlY2F1c2UgYmF0Y2ggcGFyc2VzIG9uZSBzdGF0ZW1lbnQgYXQgYSB0aW1lLiAgS2Vl cGluZyB0aGUgbmFtZXMgaW4KKyAgICAgICAgc3RyaW5ncyBtYWtlcyBlYWNoIHRlc3QgaW5kZXBl bmRlbnQgb2YgdGhlIG9uZXMgYmVmb3JlIGl0LgorCisgICAgIDIuIEEgdG9rZW5pemVyIHJlZ3Jl c3Npb24gaXMgYSByZWFkIGVycm9yLCBhbmQgYSByZWFkIGVycm9yIGluIHRoZSBmaWxlCisgICAg ICAgIGl0c2VsZiB3b3VsZCBhYm9ydCB0aGUgd2hvbGUgZmlsZSByYXRoZXIgdGhhbiBmYWlsIG9u ZSB0ZXN0LiAgSW5zaWRlCisgICAgICAgIGV2YWxfc3RyaW5nIHRoZSBzYW1lIGZhaWx1cmUgaXMg YW4gb3JkaW5hcnkgTWF4aW1hIGVycm9yIGNvbmZpbmVkIHRvCisgICAgICAgIGEgc2luZ2xlIHRl c3QsIHNvIHRoZSByZXN0IG9mIHRoZSBmaWxlIHN0aWxsIHJ1bnMgYW5kIHRoZSBoYXJuZXNzCisg ICAgICAgIHJlcG9ydHMgZXhhY3RseSB3aGljaCBjYXNlcyBicm9rZS4gKi8KKworKGtpbGwoYWxs KSwgbG9hZCgiZXZhbF9zdHJpbmciKSwgMCk7CiswJAorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBE ZWNsYXJpbmcgYW4gb3BlcmF0b3IgdHdpY2UgbXVzdCBub3QgY2hhbmdlIGhvdyBhIGxvbmdlciBp ZGVudGlmaWVyCisgICBiZWdpbm5pbmcgd2l0aCB0aGF0IG9wZXJhdG9yIG5hbWUgaXMgdG9rZW5p emVkLiAgQWxsIHNpeCBkZWNsYXJhdG9ycworICAgcm91dGUgdGhyb3VnaCBkZWYtb3BlcmF0b3Ig LT4gZGVmaW5lLXN5bWJvbCwgc28gYWxsIHNpeCBhcmUgYWZmZWN0ZWQuCisgICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tICovCisKKyhldmFsX3N0cmluZygicGZ4Zm9vKGEsYikgOj0gYStiIiksIHByZWZpeCgicGZ4 IiksIHByZWZpeCgicGZ4IiksCisgZXZhbF9zdHJpbmcoInBmeGZvbygxLDMpIikpOworNCQKKwor KGV2YWxfc3RyaW5nKCJpZnhmb28oYSxiKSA6PSBhK2IiKSwgaW5maXgoImlmeCIpLCBpbmZpeCgi aWZ4IiksCisgZXZhbF9zdHJpbmcoImlmeGZvbygxLDMpIikpOworNCQKKworKGV2YWxfc3RyaW5n KCJucnlmb28oYSxiKSA6PSBhK2IiKSwgbmFyeSgibnJ5IiksIG5hcnkoIm5yeSIpLAorIGV2YWxf c3RyaW5nKCJucnlmb28oMSwzKSIpKTsKKzQkCisKKyhldmFsX3N0cmluZygicHN4Zm9vKGEsYikg Oj0gYStiIiksIHBvc3RmaXgoInBzeCIpLCBwb3N0Zml4KCJwc3giKSwKKyBldmFsX3N0cmluZygi cHN4Zm9vKDEsMykiKSk7Cis0JAorCisoZXZhbF9zdHJpbmcoIm5meGZvbyhhLGIpIDo9IGErYiIp LCBub2ZpeCgibmZ4IiksIG5vZml4KCJuZngiKSwKKyBldmFsX3N0cmluZygibmZ4Zm9vKDEsMyki KSk7Cis0JAorCisoZXZhbF9zdHJpbmcoIm1meGZvbyhhLGIpIDo9IGErYiIpLCBtYXRjaGZpeCgi bWZ4IiwieGZtIiksIG1hdGNoZml4KCJtZngiLCJ4Zm0iKSwKKyBldmFsX3N0cmluZygibWZ4Zm9v KDEsMykiKSk7Cis0JAorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAuLi4gYW5kIHRoZSBvcGVyYXRv ciBpdHNlbGYgbXVzdCBzdGlsbCBwYXJzZSBhZnRlciBiZWluZyBkZWNsYXJlZCB0d2ljZS4KKyAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gKi8KKworc3RyaW5nKHBhcnNlX3N0cmluZygicGZ4IHgiKSk7CisicGZ4 IHgiJAorCitzdHJpbmcocGFyc2Vfc3RyaW5nKCJhIGlmeCBiIikpOworImEgaWZ4IGIiJAorCitz dHJpbmcocGFyc2Vfc3RyaW5nKCJhIG5yeSBiIG5yeSBjIikpOworImEgbnJ5IGIgbnJ5IGMiJAor CitzdHJpbmcocGFyc2Vfc3RyaW5nKCJhIHBzeCIpKTsKKyJhIHBzeCIkCisKK3N0cmluZyhwYXJz ZV9zdHJpbmcoIm5meCIpKTsKKyJuZngiJAorCitzdHJpbmcocGFyc2Vfc3RyaW5nKCJtZnggYSxi IHhmbSIpKTsKKyJtZnhhLGJ4Zm0iJAorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBUd28gZGlzdGlu Y3Qgb3BlcmF0b3JzIHdoZXJlIG9uZSBuYW1lIGlzIGEgc3RyaWN0IHByZWZpeCBvZiB0aGUgb3Ro ZXIuCisgICBUaGlzIHJlYWNoZXMgdGhlIHNhbWUgdG9rZW5pemVyIGRlZmVjdCB3aXRoIG5vIHJl ZGVjbGFyYXRpb24gaW52b2x2ZWQ6CisgICB0aGUgbm9kZSBmb3IgImNmeCIgY2FycmllcyBib3Ro IGFuIGFuc3dlciBhbmQgYSBicmFuY2ggZm9yICJjZnhsIiwgd2hpY2gKKyAgIHVzZWQgdG8gYnlw YXNzIHRoZSBjaGVjayB0aGF0IGFuIG9wZXJhdG9yIHN0YXJ0aW5nIHdpdGggYW4gYWxwaGFiZXRp YworICAgY2hhcmFjdGVyIG11c3QgYmUgZm9sbG93ZWQgYnkgd2hpdGVzcGFjZS4KKyAgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gKi8KKworKGV2YWxfc3RyaW5nKCJjZnhmb28oYSxiKSA6PSBhK2IiKSwgaW5maXgo ImNmeCIpLCBpbmZpeCgiY2Z4bCIpLAorIGV2YWxfc3RyaW5nKCJjZnhmb28oMSwzKSIpKTsKKzQk CisKK3N0cmluZyhwYXJzZV9zdHJpbmcoImEgY2Z4IGIiKSk7CisiYSBjZnggYiIkCisKK3N0cmlu ZyhwYXJzZV9zdHJpbmcoImEgY2Z4bCBiIikpOworImEgY2Z4bCBiIiQKKworLyogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgVGhlIHJlcG9ydGVkIGNhc2U6IG5hbWVzIGJlZ2lubmluZyB3aXRoICUsIGFzIHVz ZWQgYnkgdG9fcG9seV9zb2x2ZSwKKyAgIHdoaWNoIGRlY2xhcmVzIG5hcnkoIiVhbmQiKSBhbmQg bmFyeSgiJW9yIikuCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKyhldmFsX3N0cmluZygiJW9yZm9v KGEsYikgOj0gYStiIiksIG5hcnkoIiVvciIpLCBuYXJ5KCIlb3IiKSwKKyBldmFsX3N0cmluZygi JW9yZm9vKDEsMykiKSk7Cis0JAorCitzdHJpbmcocGFyc2Vfc3RyaW5nKCJhICVvciBiIikpOwor ImEgJW9yIGIiJAorCisoZXZhbF9zdHJpbmcoIiVhbmZvbyhhLGIpIDo9IGErYiIpLCBuYXJ5KCIl YW4iKSwgbmFyeSgiJWFuZSIpLAorIGV2YWxfc3RyaW5nKCIlYW5mb28oMSwzKSIpKTsKKzQkCisK Ky8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgIFJlZGVjbGFyaW5nIGFuIG9wZXJhdG9yIG11c3Qgc3RpbGwg dGFrZSBlZmZlY3QuICBUaGVzZSBndWFyZCBhZ2FpbnN0IGEKKyAgIGZpeCB0aGF0IHN1cHByZXNz ZXMgdGhlIGR1cGxpY2F0ZSB0b28gYWdncmVzc2l2ZWx5OiB0aGUgb3BlcmF0b3IgdHJpZQorICAg bWFwcyBhIGNoYXJhY3RlciBzZXF1ZW5jZSB0byBhIHN5bWJvbCBhbmQgY2FycmllcyBubyB0eXBl IG9yIGJpbmRpbmcKKyAgIHBvd2VyLCBzbyByZWJ1aWxkaW5nIGl0IGlzIGEgbm8tb3AsIGJ1dCB0 aGUgcHJvcGVydGllcyBzZXQgYnkKKyAgIGRlZi1vcGVyYXRvciBtdXN0IHN0aWxsIGJlIHVwZGF0 ZWQgb24gZXZlcnkgY2FsbC4KKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyogcHJlZml4IHJlZGVj bGFyZWQgYXMgaW5maXggKi8KKyhwcmVmaXgoInJkZiIpLCBzdHJpbmcocGFyc2Vfc3RyaW5nKCJy ZGYgeCIpKSk7CisicmRmIHgiJAorCisoaW5maXgoInJkZiIpLCBzdHJpbmcocGFyc2Vfc3RyaW5n KCJhIHJkZiBiIikpKTsKKyJhIHJkZiBiIiQKKworLyogYmluZGluZyBwb3dlcnM6IGF0IDExMCB0 aGUgb3BlcmF0b3IgYmluZHMgdGlnaHRlciB0aGFuICssIGF0IDkwIGxvb3NlciAqLworKGluZml4 KCJicHgiLDExMCwxMTApLCBzdHJpbmcocGFyc2Vfc3RyaW5nKCJhIGJweCBiICsgYyIpKSk7Cisi YythIGJweCBiIiQKKworKGluZml4KCJicHgiLDkwLDkwKSwgc3RyaW5nKHBhcnNlX3N0cmluZygi YSBicHggYiArIGMiKSkpOworImEgYnB4IGMrYiIkCisKKy8qIGFzc29jaWF0aXZpdHkgZm9sbG93 cyBmcm9tIHRoZSBiaW5kaW5nIHBvd2VyczogbGJwPHJicCBpcyBsZWZ0CisgICBhc3NvY2lhdGl2 ZSwgc28gdGhlIGxlZnQgb3BlcmFuZCBvZiB0aGUgb3V0ZXIgb3BlcmF0b3IgaXMgImEgYXB5IGIi OworICAgbGJwPnJicCBpcyByaWdodCBhc3NvY2lhdGl2ZSwgc28gaXQgaXMganVzdCAiYSIgKi8K KyhpbmZpeCgiYXB5IiwxMDAsMTAxKSwgc3RyaW5nKGZpcnN0KGFyZ3MocGFyc2Vfc3RyaW5nKCJh IGFweSBiIGFweSBjIikpKSkpOworImEgYXB5IGIiJAorCisoaW5maXgoImFweSIsMTAxLDEwMCks IHN0cmluZyhmaXJzdChhcmdzKHBhcnNlX3N0cmluZygiYSBhcHkgYiBhcHkgYyIpKSkpKTsKKyJh IiQKKworLyogYSBtYXRjaGZpeCBvcGVyYXRvciBtYXkgYmUgZ2l2ZW4gYSBuZXcgcmlnaHQgZGVs aW1pdGVyICovCisobWF0Y2hmaXgoImRseCIsInhsZCIpLCBzdHJpbmcocGFyc2Vfc3RyaW5nKCJk bHggYSxiIHhsZCIpKSk7CisiZGx4YSxieGxkIiQKKworKG1hdGNoZml4KCJkbHgiLCJ4ZGwiKSwg c3RyaW5nKHBhcnNlX3N0cmluZygiZGx4IGEsYiB4ZGwiKSkpOworImRseGEsYnhkbCIkCisKKy8q IGtpbGwgYW5kIHJlZGVjbGFyZSAqLworKGV2YWxfc3RyaW5nKCJrbHhmb28oYSxiKSA6PSBhK2Ii KSwgaW5maXgoImtseCIpLCBpbmZpeCgia2x4IiksCisgZXZhbF9zdHJpbmcoImtseGZvbygxLDMp IikpOworNCQKKworKGtpbGwoImtseCIpLCBldmFsX3N0cmluZygia2x4Zm9vKDEsMykiKSk7Cis0 JAorCisoaW5maXgoImtseCIpLCBzdHJpbmcocGFyc2Vfc3RyaW5nKCJhIGtseCBiIikpKTsKKyJh IGtseCBiIiQKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUmVtb3ZlIHRoZSBvcGVyYXRvcnMgZGVj bGFyZWQgYWJvdmUgc28gdGhhdCB0aGV5IGNhbm5vdCBhZmZlY3QgYW55IHRlc3QKKyAgIGZpbGUg cnVuIGFmdGVyIHRoaXMgb25lLCBhbmQgY2hlY2sgdGhhdCBhbiBpZGVudGlmaWVyIGJlZ2lubmlu ZyB3aXRoIGEKKyAgIGZvcm1lciBvcGVyYXRvciBuYW1lIGlzIHJlYWQgYXMgYSBwbGFpbiBzeW1i b2wgYWdhaW4uCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qIGtpbGwgZG9lcyBub3QgZXZhbHVh dGUgaXRzIGFyZ3VtZW50LCBzbyBraWxsKHMpIGluc2lkZSB0aGUgbGFtYmRhIHdvdWxkCisgICBr aWxsIHRoZSBzeW1ib2wgcyBpdHNlbGYgYW5kIGxlYXZlIHRoZSBvcGVyYXRvcnMgaW4gcGxhY2U7 IGFwcGx5IHN1cHBsaWVzCisgICB0aGUgdmFsdWUgb2YgcyBpbnN0ZWFkICovCisobWFwKGxhbWJk YShbc10sIGFwcGx5KGtpbGwsIFtzXSkpLAorICAgICBbInBmeCIsImlmeCIsIm5yeSIsInBzeCIs Im5meCIsIm1meCIsInhmbSIsImNmeCIsImNmeGwiLCIlb3IiLCIlYW4iLAorICAgICAgIiVhbmUi LCJyZGYiLCJicHgiLCJhcHkiLCJkbHgiLCJ4bGQiLCJ4ZGwiLCJrbHgiXSksIDApOworMCQKKwor LyogdGhlIG9wZXJhdG9ycyByZWFsbHkgYXJlIGdvbmU6IGFuIGV4cHJlc3Npb24gdGhhdCB1c2Vk IG9uZSBubyBsb25nZXIKKyAgIHBhcnNlcywgc28gZXJyY2F0Y2ggcmV0dXJucyB0aGUgZW1wdHkg bGlzdCAqLworZXJyY2F0Y2gocGFyc2Vfc3RyaW5nKCJhIGlmeCBiIikpOworW10kCisKK2VycmNh dGNoKHBhcnNlX3N0cmluZygibWZ4IGEsYiB4Zm0iKSk7CitbXSQKKworKGV2YWxfc3RyaW5nKCJw ZnhiYXIoYSxiKSA6PSBhK2IiKSwgZXZhbF9zdHJpbmcoInBmeGJhcigxLDMpIikpOworNCQKKwor KGtpbGwoYWxsKSwgMCk7CiswJAo= --0000000000000d67d80657ab0da3 Content-Type: text/markdown; charset="UTF-8"; name="handover-4883.md" Content-Disposition: attachment; filename="handover-4883.md" Content-Transfer-Encoding: base64 Content-ID: <f_ms4mz0fv1> X-Attachment-Id: f_ms4mz0fv1 IyBIYW5kb3ZlciDigJQgU291cmNlRm9yZ2UgdGlja2V0ICM0ODgzCgpNYXhpbWEgdG9rZW5pemVy OiByZWRlY2xhcmluZyBhbiBvcGVyYXRvciBjb3JydXB0cyB0aGUgb3BlcmF0b3IgdHJpZSBhbmQK c3BsaXRzIG9yZGluYXJ5IGlkZW50aWZpZXJzLgoKU3RhdHVzOiAqKnJvb3QgY2F1c2UgZm91bmQs IGZpeGVkLCB0ZXN0ZWQsIHZlcmlmaWVkIG9uIGEgZnVsbCByZWJ1aWxkLioqClJlbWFpbmluZyB3 b3JrOiB3cml0ZSB0aGUgdXBzdHJlYW0gYnVnIHJlcG9ydCAoZHJhZnQgZ3VpZGFuY2UgYXQgdGhl IGVuZCkuCgotLS0KCiMjIDEuIFRoZSByZXBvcnRlZCBzeW1wdG9tCgpgYGBtYXhpbWEKJW9yYihh LGIpIDo9IGErYjsKJW9yYigxLDMpOyAgICAgICAgICAgICAgLyogNCDigJQgZmluZSAqLwpsb2Fk KHRvX3BvbHlfc29sdmUpOwolb3JiKDEsMyk7ICAgICAgICAgICAgICAvKiA0IOKAlCBzdGlsbCBm aW5lICovCmxvYWQodG9fcG9seV9zb2x2ZSk7ICAgIC8qIHNlY29uZCBsb2FkICovCiVvcmIoMSwz KTsgICAgICAgICAgICAgIC8qIGluY29ycmVjdCBzeW50YXg6ICVvciBpcyBub3QgYSBwcmVmaXgg b3BlcmF0b3IgKi8KYGBgCgpUaGUgdXNlcidzIG93biBmdW5jdGlvbiBgJW9yYmAgc3RvcHMgcGFy c2luZyBhZnRlciBgdG9fcG9seV9zb2x2ZWAgaXMgbG9hZGVkCmEgKnNlY29uZCogdGltZS4gVGhl IHBhcnNlciBoYXMgc3BsaXQgdGhlIGlkZW50aWZpZXIgYCVvcmJgIGludG8gdGhlIG9wZXJhdG9y CmAlb3JgIGZvbGxvd2VkIGJ5IGBiYC4KClR3byB0aGluZ3MgbWFrZSB0aGlzIGVhc3kgdG8gaGl0 IGJ5IGFjY2lkZW50OgoKLSBgdG9fcG9seV9zb2x2ZS5tYWNgIGFsaWFzZXMgYHRvX3BvbHlfc29s dmVgIHRvIGAlc29sdmVgLCBzbyBhIHNlY29uZAogIGBsb2FkKHRvX3BvbHlfc29sdmUpYCBkb2Vz IG5vdCBsb29rIGxpa2UgYSByZWxvYWQuIEluIGEgYmF0Y2ggZWNobyBpdCBldmVuCiAgcHJpbnRz IGFzIGBsb2FkKCVzb2x2ZSlgLgotIGB0b19wb2x5X3NvbHZlX2V4dHJhLmxpc3BgIGRlY2xhcmVz IHR3byBvcGVyYXRvcnMgdGhpcyB3YXksIGF0IGxpbmVzIDIzIGFuZAogIDczOiBgKG1mdW5jYWxs ICckbmFyeSAiJWFuZCIpYCBhbmQgYChtZnVuY2FsbCAnJG5hcnkgIiVvciIpYC4gU28gYCVhbmRg CiAgaXMgYWZmZWN0ZWQgaWRlbnRpY2FsbHkg4oCUIGAlYW5kYmAgYnJlYWtzIHRoZSBzYW1lIHdh eS4gTm90aGluZyBhYm91dCBgJW9yYAogIGlzIHNwZWNpYWwuCgpOb3RlIHRoZSByZXBvcnRlZCBl cnJvciBsb2NhdGlvbiAoYHRvX3BvbHlfc29sdmUubWFjOjY6M2ApIGlzIG1pc2xlYWRpbmc6IHRo ZQpmaWxlbmFtZSBpcyBzdGFsZSBmcm9tIHRoZSBgbG9hZGAsIHRoZSBsaW5lL2NvbHVtbiByZWZl ciB0byB0aGUgdXNlcidzIGZpbGUuCgotLS0KCiMjIDIuIE1pbmltYWwgcmVwcm9kdWNlcnMKCk5v IHBhY2thZ2VzIG5lZWRlZC4gVHdvICppbmRlcGVuZGVudCogcmVwcm9kdWNlcnMsIGJlY2F1c2Ug dGhlcmUgYXJlIHR3bwpkaXN0aW5jdCBkZWZlY3RzOgoKKipBIOKAlCByZWRlY2xhcmluZyB0aGUg c2FtZSBvcGVyYXRvciAobmVlZHMgYm90aCBkZWZlY3RzKToqKgoKYGBgbWF4aW1hCiVvcmIoYSxi KSA6PSBhK2I7Cm5hcnkoIiVvciIpOwpuYXJ5KCIlb3IiKTsgICAgIC8qIHRoZSBzZWNvbmQgZGVj bGFyYXRpb24gaXMgd2hhdCBicmVha3MgaXQgKi8KJW9yYigxLDMpOyAgICAgICAvKiBpbmNvcnJl Y3Qgc3ludGF4OiAlb3IgaXMgbm90IGEgcHJlZml4IG9wZXJhdG9yICovCmBgYAoKKipCIOKAlCB0 d28gb3BlcmF0b3JzLCBvbmUgbmFtZSBhIHN0cmljdCBwcmVmaXggb2YgdGhlIG90aGVyIChkZWZl Y3QgMiBhbG9uZSwKbm8gcmVkZWNsYXJhdGlvbik6KioKCmBgYG1heGltYQolb3JiKGEsYikgOj0g YStiOwpuYXJ5KCIlb3IiKTsKbmFyeSgiJW9yZSIpOwolb3JiKDEsMyk7ICAgICAgIC8qIHNhbWUg ZXJyb3IgKi8KYGBgCgpCIGlzIHRoZSBiZXR0ZXIgcmVwcm9kdWNlciB0byBsZWFkIHdpdGggdXBz dHJlYW06IGl0IHNob3dzIHRoZSB0b2tlbml6ZXIKZGVmZWN0IG9uIGl0cyBvd24sIHdpdGggZWFj aCBvcGVyYXRvciBkZWNsYXJlZCBleGFjdGx5IG9uY2UuCgoqKkFsbCBzaXggZGVjbGFyYXRvcnMg YXJlIGFmZmVjdGVkKiogKHRoZXkgYWxsIHJvdXRlIHRocm91Z2ggYGRlZi1vcGVyYXRvcmAK4oaS IGBkZWZpbmUtc3ltYm9sYCkuIERlY2xhcmluZyB0d2ljZSwgdGhlbiBldmFsdWF0aW5nIGB6emIo MSwzKWAgd2hlcmUKYHp6YihhLGIpOj1hK2JgOgoKfCBkZWNsYXJhdG9yIHwgdW5wYXRjaGVkIGJl aGF2aW91ciB8CnwtLS18LS0tfAp8IGBwcmVmaXgoInp6IilgIHwgKipzaWxlbnRseSB3cm9uZyoq OiByZXR1cm5zIGB6eiBiKDEsMylgLCBubyBlcnJvciB8CnwgYGluZml4KCJ6eiIpYCB8IGB6eiBp cyBub3QgYSBwcmVmaXggb3BlcmF0b3JgIHwKfCBgbmFyeSgienoiKWAgfCBgenogaXMgbm90IGEg cHJlZml4IG9wZXJhdG9yYCB8CnwgYHBvc3RmaXgoInp6IilgIHwgYHp6IGlzIG5vdCBhIHByZWZp eCBvcGVyYXRvcmAgfAp8IGBub2ZpeCgienoiKWAgfCBgYiBpcyBub3QgYSBwcmVmaXggb3BlcmF0 b3JgIHwKfCBgbWF0Y2hmaXgoInp6IiwicXEiKWAgfCBgTWlzc2luZyBxcWAgfAoKVGhlIGBwcmVm aXhgIGNhc2UgaXMgdGhlIHdvcnN0IGFuZCBpcyB0aGUgc3Ryb25nZXN0IGFyZ3VtZW50IHVwc3Ry ZWFtOiBpdApwcm9kdWNlcyBhIHdyb25nIGFuc3dlciB3aXRoIG5vIGRpYWdub3N0aWMgYXQgYWxs LgoKLS0tCgojIyAzLiBSb290IGNhdXNlIOKAlCB0d28gY29tcG9zaW5nIGRlZmVjdHMKClRoZSB0 b2tlbml6ZXIgbWF0Y2hlcyBtdWx0aS1jaGFyYWN0ZXIgb3BlcmF0b3JzIHdpdGggYSBjaGFyYWN0 ZXIgdHJpZQooIkNTVFIiLCB0aGUgZ2xvYmFsIGBtYWNzeW1hLW9wZXJhdG9yc2ApLCBidWlsdCBi eSBgY3N0cnNldHVwYCBmcm9tIHRoZSBsaXN0CmBzeW1ib2xzLWRlZmluZWRgLgoKIyMjIERlZmVj dCAxIOKAlCBgc3JjL2RlZmNhbC5saXNwOjczYCwgYGRlZmluZS1zeW1ib2xgCgpgYGBsaXNwCihk ZWZ1biBkZWZpbmUtc3ltYm9sICh4KQogICgqZGVmaW5lLWluaXRpYWwtc3ltYm9scyAoY29ucyB4 IHN5bWJvbHMtZGVmaW5lZCkpICAgOyBubyBkdXBsaWNhdGUgY2hlY2sKYGBgCgpSZS1kZWNsYXJp bmcgY29uc2VzIHRoZSBuYW1lIG9uIGFnYWluIGFuZCByZWJ1aWxkcyB0aGUgdHJpZSwgcHJvZHVj aW5nIGEKZGVnZW5lcmF0ZSBub2RlIHdpdGggYSBzcHVyaW91cyBlbXB0eSBicmFuY2g6CgpgYGAK YWZ0ZXIgMXggbmFyeSgiJW9yIik6ICAoI1wlICNcbyAjXHIgKEFOUyAkJU9SKSkKYWZ0ZXIgMngg bmFyeSgiJW9yIik6ICAoI1wlICNcbyAjXHIgKEFOUyAkJU9SKSAoKEFOUyAkJU9SKSkpCmBgYAoK IyMjIERlZmVjdCAyIOKAlCBgc3JjL25wYXJzZS5saXNwOjI0OGAsIGByZWFkLWNvbW1hbmQtdG9r ZW4tYXV4YAoKQW4gb3BlcmF0b3Igd2hvc2UgbmFtZSBzdGFydHMgd2l0aCBhbiBhbHBoYWJldGlj IGNoYXJhY3RlciAoYCVgIGFuZCBgX2AKY291bnQgYXMgYWxwaGFiZXRpYyBpbiBNYXhpbWEpIG11 c3QgYmUgZm9sbG93ZWQgYnkgd2hpdGVzcGFjZSB0byBiZSB0cmVhdGVkCmFzIGFuIG9wZXJhdG9y IOKAlCBvdGhlcndpc2UgYCVvcmJgIGhhcyB0byBmYWxsIGJhY2sgdG8gcmVhZGluZyBhIHBsYWlu IHN5bWJvbC4KVGhhdCBndWFyZCBleGlzdGVkICoqb25seSBpbiB0aGUgbGVhZiBicmFuY2gqKiBg KG51bGwgKGNkZHIgbGlzKSlgOgoKYGBgbGlzcAooKG51bGwgKGNkZHIgbGlzKSkKIChzZXRxIHJl c3VsdCAoYW5kIChlcWwgKGNhciAoY2FkciBsaXMpKSAnYW5zKQogICAgICAgICAgICAgICAgICAg KG9yIChub3QgKGFscGhhYmV0cCAoY2FkciAoZXhwbG9kZW4gKGNhZHIgKGNhZHIgbGlzKSkpKSkp CiAgICAgICAgICAgICAgICAgICAgICAgKG1lbWJlciAocGFyc2UtdHlpcGVlaykgKndoaXRlc3Bh Y2UtY2hhcnMqKSkgICA7IDwtLSBndWFyZAogICAgICAgICAgICAgICAgICAgKGNhZHIgKGNhZHIg bGlzKSkpKSkKKHQKIChsZXQgKChyZXMgKGFuZCAoZXFsIChjYXIgKGNhZHIgbGlzKSkgJ2FucykK ICAgICAgICAgICAgICAgICAoY2FkciAoY2FkciBsaXMpKSkpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDsgPC0tIG5vIGd1YXJkCiAgICAgICAuLi4KYGBgCgpUaGUgc3B1cmlvdXMg YnJhbmNoIGZyb20gZGVmZWN0IDEgcHVzaGVzIHRoZSBub2RlIG91dCBvZiB0aGUgbGVhZiBjYXNl IGludG8KdGhlIGAodCAuLi4pYCBjYXNlLCB0aGUgZ3VhcmQgaXMgc2tpcHBlZCwgYCVvcmJgIHRv a2VuaXplcyBhcyBgJW9yYCArIGBiYCwKYW5kIHRoZSBQcmF0dCBwYXJzZXIgdGhlbiByZXBvcnRz IHRoYXQgdGhlIG5hcnkgb3BlcmF0b3IgYCVvcmAgaXMgbm90IGEKcHJlZml4IG9wZXJhdG9yLiBS ZXByb2R1Y2VyIEIgcmVhY2hlcyB0aGUgc2FtZSBgKHQgLi4uKWAgY2FzZSBsZWdpdGltYXRlbHks CnZpYSBhIGdlbnVpbmUgcHJlZml4LXBhaXIgb2Ygb3BlcmF0b3IgbmFtZXMuCgojIyMgQ2FsbCBw YXRoICh2ZXJpZmllZCBieSBTQkNMIHRyYWNlKQoKYGBgCm5hcnkoIiVvciIpICAgICAgICAgICAg ICAgICAgICAgTWF4aW1hIGxldmVsCuKUlOKUgCAkTkFSWSAgICAgICAgICAgICAgICAgICAgICAg IG5wYXJzZS5saXNwOjE2NTMgIChkZWZtZnVuKQogICDilJTilIAgREVGLU9QRVJBVE9SICAgICAg ICAgICAgICBucGFyc2UubGlzcDoxNjg0CiAgICAgIOKUnOKUgCBERUZJTkUtU1lNQk9MICIlb3Ii ICAgIGRlZmNhbC5saXNwOjczICAgIOKGkCBkZWZlY3QgMQogICAgICDilIIgIOKUgiAgcmVhY2hl ZCBvbmx5IHZpYSAoaWYgKHN0cmluZ3Agb3ApIC4uLikgYXQgbnBhcnNlLmxpc3A6MTcwMAogICAg ICDilIIgIOKUlOKUgCAqREVGSU5FLUlOSVRJQUwtU1lNQk9MUyAgZGVmY2FsLmxpc3A6NTYKICAg ICAg4pSCICAgICDilJTilIAgQ1NUUlNFVFVQIOKGkiBBREQyQ1NUUiDihpIgQUREMkNTVFIxCiAg ICAgIOKUgiAgICAgICAg4oeSIHJlYnVpbGRzIG1hY3N5bWEtb3BlcmF0b3JzCiAgICAgIOKUlOKU gCBPUC1TRVRVUCAkJU9SICAgICAgICAgIG5wYXJzZS5saXNwOjE3MTggIChwcm9wZXJ0eSBsaXN0 LCBub3QgdGhlIHRyaWUpCmBgYAoKQ29uc3VtZXIgc2lkZSwgbXVjaCBsYXRlciwgYXQgcGFyc2Ug dGltZToKCmBgYApzY2FuLW9uZS10b2tlbi1nICBucGFyc2UubGlzcDo1NzgK4pSU4pSAIHJlYWQt Y29tbWFuZC10b2tlbiBtYWNzeW1hLW9wZXJhdG9ycyAgbnBhcnNlLmxpc3A6NTgzIOKGkiAxODQK ICAg4pSU4pSAIFJFQUQtQ09NTUFORC1UT0tFTi1BVVggICAgICAgICAgICAgbnBhcnNlLmxpc3A6 MjQ4ICDihpAgZGVmZWN0IDIKYGBgCgpUaGlzIHNwbGl0IGV4cGxhaW5zIHRoZSBkZWZlcnJlZCBm YWlsdXJlOiBgZGVmaW5lLXN5bWJvbGAgY29ycnVwdHMgdGhlIHRyaWUKc2hhcGUgYXQgKmRlY2xh cmF0aW9uKiB0aW1lLCBgcmVhZC1jb21tYW5kLXRva2VuLWF1eGAgbWlzcmVhZHMgaXQgYXQgdGhl CipuZXh0IHBhcnNlKi4KCiMjIyBIaXN0b3J5IChnaXQgYmxhbWUpCgotIGBkZWZpbmUtc3ltYm9s YCdzIG1pc3NpbmcgZGVkdXAgaXMgKipvcmlnaW5hbCoqIOKAlCB1bmNoYW5nZWQgaW4gdGhlIG9s ZGVzdAogIGNvbW1pdCBpbiB0aGUgcmVwbywgdGhlIGBtYXhpbWEtNS40YCBpbXBvcnQgKGA5ZTgz MjY1NzdgLCAyMDAwLTA1LTA4KS4KICBMYXRlciBibGFtZSBoaXRzIGFyZSBtYXNzIG1lY2hhbmlj YWwgcmV3cml0ZXMgKDIwMDQgZG93bmNhc2luZywgMjAwNwogIHN0cmluZ3MtYXMtbGlzcC1zdHJp bmdzKS4KLSBUaGUgYCh0IC4uLilgIGJyYW5jaCBkYXRlcyB0byBgZGNjMTgxZGM0MmAgKHdmcywg MjAwMS0wMy0yMikuCi0gKipUaGUgd2hpdGVzcGFjZSBndWFyZCB3YXMgYWRkZWQgYnkgYDY2ZjNm MzYwMWAgKGNyYXRlZ3VzLCAyMDEwLTA5LTI0KSoqLAogICJBIHByZWZpeCBvcGVyYXRvciB3aGlj aCBzdGFydHMgd2l0aCBhIGxpdGVyYWwgbXVzdCBiZSBmb2xsb3dlZCBieSBhCiAgd2hpdGVzcGFj ZSIsIGZvciBTRiBidWcgMjk3MDc5MiAoYGdyYWRlZihzKWAgd2l0aCB0aGUgdmVjdCBwYWNrYWdl KS4gVGhhdAogIGNvbW1pdCByZWluZGVudHMgdGhlIGAodGAgbGluZSAqaW1tZWRpYXRlbHkgYmVs b3cqIHRoZSBndWFyZCBpdCBhZGRlZCBhbmQKICBsZWF2ZXMgdGhlIGByZXNgIGJpbmRpbmcgYWxv bmUuCgoqKlNvIGRlZmVjdCAyIGlzIGFuIGluY29tcGxldGUgMjAxMCBmaXgsIG5vdCBhIG5vdmVs IGRlc2lnbiBxdWVzdGlvbi4qKiBGcmFtZQp0aGUgdXBzdHJlYW0gcmVwb3J0IGFzIGNvbXBsZXRp bmcgYDY2ZjNmMzYwMWAuIFRoYXQgY29tbWl0J3Mgbm90ZSAiTm8gcHJvYmxlbXMKd2l0aCB0aGUg dGVzdHN1aXRlIiBhbHNvIG1hdGNoZXMgb3VyIHJlc3VsdCDigJQgbm90aGluZyBpbiB0aGUgc3Vp dGUgZGVjbGFyZXMgYQpwcmVmaXgtY29sbGlkaW5nIGFscGhhYmV0aWMgb3BlcmF0b3IgcGFpci4K Ci0tLQoKIyMgNC4gVGhlIGZpeAoKU291cmNlIHRyZWU6IGAvaG9tZS9zZXJnZS9zcmMvZXh0ZXJu YWwvbWF4aW1hYCAoYnJhbmNoIGBtYXN0ZXJgLCBiYXNlIGNvbW1pdApgZTFkZmY1ZTNkYCkuIFR3 byBvbmUtbGluZSBsb2dpYyBjaGFuZ2VzIHBsdXMgY29tbWVudHM6CgoqKmBzcmMvZGVmY2FsLmxp c3A6ODFgKiog4oCUIHNraXAgdGhlIHJlYnVpbGQgd2hlbiB0aGUgbmFtZSBpcyBhbHJlYWR5IGtu b3duOgoKYGBgbGlzcAoodW5sZXNzIChtZW1iZXIgeCBzeW1ib2xzLWRlZmluZWQgOnRlc3QgIydl cXVhbCkKICAoKmRlZmluZS1pbml0aWFsLXN5bWJvbHMgKGNvbnMgeCBzeW1ib2xzLWRlZmluZWQp KSkKYGBgCgoqKmBzcmMvbnBhcnNlLmxpc3A6Mjg0YCoqIOKAlCBjb3B5IHRoZSBhbHBoYWJldGlj L3doaXRlc3BhY2UgZ3VhcmQgaW50byB0aGUKYCh0IC4uLilgIGJyYW5jaC4KCkluc3BlY3Qgd2l0 aCBgZ2l0IC1DIC9ob21lL3NlcmdlL3NyYy9leHRlcm5hbC9tYXhpbWEgZGlmZmAuCgojIyMgV2h5 IHRoZSBkZWR1cCBjYW5ub3QgYnJlYWsgbGVnaXRpbWF0ZSByZWRlZmluaXRpb24KClRoZSB0d28g Y29uY2VybnMgbGl2ZSBpbiBzZXBhcmF0ZSBwbGFjZXM6CgotIHRoZSB0cmllIG1hcHMgYSAqKmNo YXJhY3RlciBzZXF1ZW5jZSDihpIgc3ltYm9sKiogYW5kIGNhcnJpZXMgbm8gdHlwZSBvcgogIGJp bmRpbmcgcG93ZXI7Ci0gcHJlZml4L2luZml4L2JpbmRpbmcgcG93ZXJzIGxpdmUgb24gdGhlICoq cHJvcGVydHkgbGlzdCoqIChgbnVkYCwgYGxlZGAsCiAgYGxicGAsIGByYnBgKSwgc2V0IGJ5IGBk ZWYtb3BlcmF0b3JgJ3MgYHB1dHByb3BgIGNhbGxzIG9uICpldmVyeSogY2FsbCwKICB1bnRvdWNo ZWQgYnkgdGhlIHBhdGNoLgoKVmVyaWZpZWQg4oCUIHRoZSB0cmllIG5vZGUgaXMgaWRlbnRpY2Fs IGJlZm9yZSBhbmQgYWZ0ZXIgY2hhbmdpbmcgdGhlIHR5cGU6CgpgYGAKYWZ0ZXIgcHJlZml4KCJ6 eiIpOiAgKCNceiAjXHogKEFOUyAkWlopKQphZnRlciBpbmZpeCgienoiKTogICAoI1x6ICNceiAo QU5TICRaWikpCmBgYAoKUmVidWlsZGluZyBpdCBmb3IgYSBrbm93biBuYW1lIHdhcyBhbHdheXMg YSBuby1vcCwgd2hpY2ggaXMgZXhhY3RseSB3aHkKc2tpcHBpbmcgaXQgaXMgc2FmZS4gUmVkZWZp bml0aW9uIHdhcyByZS12ZXJpZmllZCBlbmQgdG8gZW5kICjCpzUpLgoKLS0tCgojIyA1LiBUZXN0 IGZpbGUgcHJvZHVjZWQKCmB0ZXN0cy9ydGVzdF9vcGVyYXRvcnMubWFjYCAoMTkwIGxpbmVzLCAz NSB0ZXN0cyksIHJlZ2lzdGVyZWQgYXQKYHNyYy90ZXN0c3VpdGUubGlzcDo5N2AuIE5vIGB0ZXN0 cy9NYWtlZmlsZS5hbWAgY2hhbmdlIG5lZWRlZCDigJQgaXQgcGlja3MgdXAKYCoubWFjYCBieSB3 aWxkY2FyZCAobGluZSA5MSkuCgojIyMgVGhlIGtleSB0ZWNobmlxdWUg4oCUIGhvdyB0byB0ZXN0 IGEgKnBhcnNlKiBmYWlsdXJlCgpgZXJyY2F0Y2hgIGFsb25lIGlzIHVzZWxlc3MgaGVyZTogdGhl IGZhaWx1cmUgaGFwcGVucyBhdCAqKnJlYWQqKiB0aW1lLCBzbyBhCnJlZ3Jlc3Npb24gd291bGQg YWJvcnQgdGhlIHdob2xlIHRlc3QgZmlsZSBpbnN0ZWFkIG9mIGZhaWxpbmcgb25lIHRlc3QuCgpU aGUgZml4IGlzIGBldmFsX3N0cmluZ2AgLyBgcGFyc2Vfc3RyaW5nYCAoYXV0b2xvYWRlZCBmcm9t CmBzaGFyZS9zdHJpbmdwcm9jYCksIHdoaWNoIG1vdmUgcGFyc2luZyB0byAqKmV2YWx1YXRpb24q KiB0aW1lOgoKYGBgbWF4aW1hCmVycmNhdGNoKGV2YWxfc3RyaW5nKCIxKyIpKSAgIOKfuSAgW10g ICAgIC8qIGNhdWdodDsgdGhlIGJhdGNoIHN1cnZpdmVzICovCmBgYAoKU28gdGhlIGZpbGUgZm9s bG93cyBvbmUgcnVsZTogKipldmVyeSBvcGVyYXRvciBuYW1lLCBhbmQgZXZlcnkgZXhwcmVzc2lv bgp1c2luZyBvbmUsIGlzIHdyaXR0ZW4gaW5zaWRlIGEgc3RyaW5nKiosIG5ldmVyIGluIHRoZSBm aWxlJ3Mgb3duIHN5bnRheC4KVHdvIHBheW9mZnM6CgoxLiAqKlN0YXRlbWVudCBpbmRlcGVuZGVu Y2UqKiDigJQgYGJhdGNoYCBwYXJzZXMgb25lIHN0YXRlbWVudCBhdCBhIHRpbWUsIHNvCiAgIGRl Y2xhcmluZyBhbiBvcGVyYXRvciBvbiBsaW5lIDUgd291bGQgb3RoZXJ3aXNlIGNoYW5nZSBob3cg bGluZSA5IGlzIHJlYWQuCjIuICoqQ29udGFpbmVkIGZhaWx1cmVzKiog4oCUIGEgdG9rZW5pemVy IHJlZ3Jlc3Npb24gYmVjb21lcyBhbiBvcmRpbmFyeQogICBNYXhpbWEgZXJyb3IgaW5zaWRlIG9u ZSB0ZXN0LCBzbyB0aGUgcmVzdCBvZiB0aGUgZmlsZSBzdGlsbCBydW5zIGFuZCB0aGUKICAgaGFy bmVzcyBuYW1lcyBleGFjdGx5IHdoaWNoIGNhc2VzIGJyb2tlLgoKQW55b25lIGV4dGVuZGluZyB0 aGlzIGZpbGUgbXVzdCBrZWVwIHRoYXQgcnVsZSBvciB0aGUgaXNvbGF0aW9uIGlzIGxvc3QuCgoj IyMgQ292ZXJhZ2UKCi0gYWxsIHNpeCBkZWNsYXJhdG9ycyDDlyAoZG91YmxlIGRlY2xhcmF0aW9u IGRvZXNuJ3QgYnJlYWsgYSBsb25nZXIKICBpZGVudGlmaWVyOyB0aGUgb3BlcmF0b3IgaXRzZWxm IHN0aWxsIHBhcnNlcyBhZnRlcndhcmRzKQotIHN0cmljdC1wcmVmaXggb3BlcmF0b3IgcGFpcnMs IG5vIHJlZGVjbGFyYXRpb24gKGRlZmVjdCAyIGFsb25lKQotIHRoZSBgJWAtcHJlZml4ZWQgYHRv X3BvbHlfc29sdmVgIHNoYXBlIChgJW9yYCwgYW5kIGAlYW5gL2AlYW5lYCkKLSByZWRlZmluaXRp b24gc3RpbGwgd29ya3M6IHByZWZpeOKGkmluZml4LCBwcmVjZWRlbmNlLCBhc3NvY2lhdGl2aXR5 LAogIG1hdGNoZml4IHJlLWRlbGltaXRpbmcsIGtpbGwvcmVkZWNsYXJlIOKAlCB0aGVzZSBndWFy ZCBhZ2FpbnN0IGEgZml4IHRoYXQKICBzdXBwcmVzc2VzIHRoZSBkdXBsaWNhdGUgdG9vIGFnZ3Jl c3NpdmVseQotIGNsZWFudXAsIHdpdGggYW4gYXNzZXJ0aW9uIHRoYXQgaXQgd29ya2VkCgojIyMg RGlzY3JpbWluYXRpb24gKHRoaXMgaXMgdGhlIGltcG9ydGFudCBiaXQpCgp8IHwgcGF0Y2hlZCB8 IHVucGF0Y2hlZCB8CnwtLS18LS0tfC0tLXwKfCBgYmF0Y2goInJ0ZXN0X29wZXJhdG9ycy5tYWMi LCB0ZXN0KWAgfCAqKjM1LzM1KiogfCAqKjI1LzM1KiosIGZhaWxlZCBgKDIgMyA0IDUgNiA3IDE0 IDE3IDE5IDI4KWAgfAoKVGhlIHVucGF0Y2hlZCBydW4gKipjb21wbGV0ZXMqKiDigJQgbm8gYWJv cnQg4oCUIHdoaWNoIGlzIHRoZSB3aG9sZSBwb2ludCBvZiB0aGUKYGV2YWxfc3RyaW5nYCBhcHBy b2FjaC4gQWxsIDEwIGZhaWx1cmVzIGFyZSBnZW51aW5lIGJ1ZyBtYW5pZmVzdGF0aW9ucwooMuKA kzcgdGhlIHNpeCBkZWNsYXJhdG9ycywgMTQgdGhlIHN0cmljdC1wcmVmaXggcGFpciwgMTcgYCVv cmAsIDE5IGAlYW5gLwpgJWFuZWAsIDI4IGtpbGwvcmVkZWNsYXJlKS4KCi0tLQoKIyMgNi4gVmVy aWZpY2F0aW9uIHN0YXR1cwoKKipGdWxsIHRlc3RzdWl0ZSBvbiBhIHByb3BlciByZWJ1aWxkIChy dW4gYnkgdGhlIHVzZXIpOiAxNCw3ODAgdGVzdHMsICJubwp1bmV4cGVjdGVkIGVycm9ycyBmb3Vu ZC4iKiogMTQsNzQ1IOKGkiAxNCw3ODAgY29uZmlybXMgYWxsIDM1IG5ldyB0ZXN0cyByYW4KYW5k IHBhc3NlZCwgd2l0aCBubyByZWdyZXNzaW9ucy4KCkVhcmxpZXIgcnVucyBhZ2FpbnN0IHRoZSAq aW5zdGFsbGVkKiBNYXhpbWEgd2l0aCB0aGUgZml4IGxvYWRlZCBhdCBydW50aW1lCmFsc28gc2hv d2VkIDE0LDc0NSB0ZXN0cywgbm8gcmVncmVzc2lvbnMsIHBlci1maWxlIHJlc3VsdHMgYnl0ZS1p ZGVudGljYWwgdG8KYmFzZWxpbmUgYWNyb3NzIGFsbCA3OCBmaWxlcy4KCi0tLQoKIyMgNy4gVHJh cHMgYW5kIGdvdGNoYXMgZGlzY292ZXJlZAoKV29ydGgga25vd2luZyBiZWZvcmUgeW91IHRvdWNo IGFueSBvZiB0aGlzLgoKKipgLS12ZXJ5LXF1aWV0YCBicmVha3MgYHJ0ZXN0M2AgcHJvYmxlbSAy MjIuKiogSXQgc2V0cyBgKmRpc3BsYXktbGFiZWxzLXAqYAp0byBgbmlsYCAoYHNyYy9pbml0LWNs Lmxpc3A6NTc1YCksIGFuZCBwcm9ibGVtIDIyMiB0ZXN0cyBleGFjdGx5IHRoYXQ6CmBwcmludF9z dHJpbmdfMmQoJz9tbGFiZWwoYSxiKSlgIGV4cGVjdHMgdGhlIGxhYmVsIGAoYSlgLCBidXQgd2l0 aCBsYWJlbHMKc3VwcHJlc3NlZCB0aGUgYG1sYWJlbGAgd3JhcHBlciByZW5kZXJzIGFzIG5vdGhp bmcuICoqRG8gbm90IHVzZQpgLS12ZXJ5LXF1aWV0YCB3aGVuIHJ1bm5pbmcgdGhlIHRlc3RzdWl0 ZS4qKiBJdCBjb3N0IHRpbWUgaGVyZS4KCioqYHJ0ZXN0M2AgcHJvYmxlbSAxNDYgaXMgYSByZWdp c3RlcmVkIGtub3duIGZhaWx1cmUqKiDigJQKYHNyYy90ZXN0c3VpdGUubGlzcDo2NGAsIGAoKG1s aXN0IHNpbXApICJydGVzdDMiICgobWxpc3Qgc2ltcCkgMTQ2KSlgLgpgcnVuX3Rlc3RzdWl0ZSgp YCBjb3VudHMgaXQgYXMgZXhwZWN0ZWQgYW5kIG5ldmVyIHJlcG9ydHMgaXQ7IGEgYmFyZQpgYmF0 Y2goLi4uLCB0ZXN0KWAgb24gcnRlc3QzIHdpbGwgc2hvdyBpdCBhcyBhIGZhaWx1cmUuCgoqKmBr aWxsYCBkb2VzIG5vdCBldmFsdWF0ZSBpdHMgYXJndW1lbnQuKiogYG1hcChsYW1iZGEoW3NdLCBr aWxsKHMpKSwgWy4uLl0pYApraWxscyB0aGUgc3ltYm9sIGBzYCBlYWNoIHRpbWUgYW5kIGlzIGEg Kipuby1vcCoqIOKAlCBpdCBzaWxlbnRseSBsZWZ0IGV2ZXJ5CmRlY2xhcmVkIG9wZXJhdG9yIGlu IHBsYWNlIGluIHRoZSBmaXJzdCBkcmFmdCBvZiB0aGUgdGVzdCBmaWxlLCB3aGljaCB3b3VsZApo YXZlIGxlYWtlZCBgJW9yYCwgYGlmeGAsIGBjZnhgIGV0Yy4gaW50byBldmVyeSBzdWJzZXF1ZW50 IGZpbGUgaW4gdGhlIHN1aXRlLgpVc2UgYGFwcGx5KGtpbGwsIFtzXSlgLiBUaGUgdGVzdCBmaWxl IG5vdyBhc3NlcnRzIHRoZSBjbGVhbnVwIHdvcmtlZCBhbmQgd2FzCmNoZWNrZWQgZm9yIHBvbGx1 dGlvbiBieSBydW5uaW5nIGBydGVzdF9vcGVyYXRvcnNgIHRoZW4gYHJ0ZXN0X2RvdGAgaW4gb25l CnNlc3Npb24gKDM1LzM1LCB0aGVuIDcyLzcyIG1hdGNoaW5nIGl0cyBjb250cm9sKS4KCioqYGtp bGwoenopYCBkb2Vzbid0IHBhcnNlIG9uY2UgYHp6YCBpcyBhbiBpbmZpeCBvcGVyYXRvcioqIOKA lCB1c2UKYGtpbGwoInp6IilgLiBTYW1lIGNhdXNlIGFzIMKnOC4xLgoKLS0tCgojIyA4LiBSZWxh dGVkIHByb2JsZW1zIGZvdW5kIGJ1dCBkZWxpYmVyYXRlbHkgTk9UIGZpeGVkCgpUaGVzZSBhcmUg cmVhbCwgYnV0IHNlcGFyYXRlIGZyb20gdGlja2V0ICM0ODgzLiBEbyBub3Qgc2lsZW50bHkgYnVu ZGxlIHRoZW0uCgojIyMgOC4xIGBuYXJ5KGYpYCB3aXRoIGEgYmFyZSBzeW1ib2wg4oCUIGRpZmZl cmVudCBidWcsIG5vdCBmaXhlZAoKYGBgbWF4aW1hCm5hcnkoZik7Cm5hcnkoZik7ICAgICAvKiBp bmNvcnJlY3Qgc3ludGF4OiBmIGlzIG5vdCBhIHByZWZpeCBvcGVyYXRvciAqLwpgYGAKCkZhaWxz IGlkZW50aWNhbGx5IHdpdGggYW5kIHdpdGhvdXQgdGhlIHBhdGNoLiBJdCBuZXZlciByZWFjaGVz CmBkZWZpbmUtc3ltYm9sYCBhdCBhbGwg4oCUIGBkZWYtb3BlcmF0b3JgIGd1YXJkcyB0aGF0IHdp dGgKYChpZiAoc3RyaW5ncCBvcCkgLi4uKWAgKG5wYXJzZS5saXNwOjE3MDApLCBzbyB0aGUgdHJp ZSBpcyB1bnRvdWNoZWQuCgpUaGUgcmVhbCBtZWNoYW5pc206IGFmdGVyIGEgc2luZ2xlIGBuYXJ5 KGYpYCwgdGhlIHN5bWJvbCBoYXMKYG51ZD1OSUwgbGVkPVQgbGJwPTE4MCByYnA9MTgwYC4gV2l0 aCBhIGxlZnQtZGVub3RhdGlvbiBidXQgbm8KbnVsbC1kZW5vdGF0aW9uLCBgZmAgaGFzIG5vIHBh cnNlIGluIHByZWZpeCBwb3NpdGlvbi4gVGhlIGRlY2lzaXZlIGV2aWRlbmNlCnRoYXQgcmVkZWNs YXJhdGlvbiBpcyBpcnJlbGV2YW50IOKAlCBhZnRlciAqKm9uZSoqIGBuYXJ5KGYpYCwgYSBwbGFp bgphc3NpZ25tZW50IGFscmVhZHkgZmFpbHM6CgpgYGBtYXhpbWEKbmFyeShmKSQKZyA6IGYkICAg ICAgIC8qIGluY29ycmVjdCBzeW50YXg6IGYgaXMgbm90IGEgcHJlZml4IG9wZXJhdG9yICovCmBg YAoKQ2FsbGluZyBgbmFyeShmKWAgdHdpY2UgaXMganVzdCB0aGUgbmV4dCBwbGFjZSB5b3UgaGFw cGVuIHRvIHdyaXRlIGJhcmUgYGZgLgpRdW90aW5nIGRvZXMgbm90IGhlbHAgKGBuYXJ5KCdmKWAg ZmFpbHMgaWRlbnRpY2FsbHkg4oCUIHRoZSBmYWlsdXJlIHByZWNlZGVzCnF1b3RpbmcpLiBXb3Jr YXJvdW5kOiB1c2UgdGhlIHN0cmluZyBmb3JtLCBgbmFyeSgiZiIpYC4KClRoaXMgaXMgYXJndWFi bHkgaW5oZXJlbnQgdG8gTWF4aW1hJ3Mgb3BlcmF0b3Ivc3ltYm9sIGR1YWxpdHk7ICJmaXhpbmci IGl0CndvdWxkIG1lYW4gZ2l2aW5nIGRlY2xhcmVkIG9wZXJhdG9ycyBhIGZhbGxiYWNrIG51ZCwg d2hpY2ggY2hhbmdlcyBob3cKYGEgZiBiYCB2cyBgZmAgYXJlIHJlYWQgaW4gZ2VuZXJhbC4gVHJl YXQgYXMgYSBkZXNpZ24gY29uc3RyYWludC4KCiMjIyA4LjIgUmVkZWZpbmluZyBhbiBvcGVyYXRv cidzIHR5cGUgbGVhdmVzIHRoZSBvbGQgZGVub3RhdGlvbiBhY3RpdmUKCmBkZWYtb3BlcmF0b3Jg IG9ubHkgZXZlciAqYWRkcyogcHJvcGVydGllcy4gQWZ0ZXIgYHByZWZpeCgienoiKWAgdGhlbgpg aW5maXgoInp6IilgLCB0aGUgc3ltYm9sIGhhcyAqKmJvdGgqKiBgbnVkPVRgIGFuZCBgbGVkPVRg LCBzbyBgenogYWAgc3RpbGwKcGFyc2VzIGFzIHByZWZpeCBhbmQgdGhlbiBmYWlscyBhdCBldmFs dWF0aW9uOgoKYGBgCnp6PzogZXhwZWN0ZWQgZXhhY3RseSAyPyBhcmd1bWVudHMgYnV0IGdvdCAx PzogW2FdCmBgYAoKUHJlLWV4aXN0aW5nOyB1bmNoYW5nZWQgYnkgdGhlIHBhdGNoLiBBIGJlaGF2 aW91cmFsIGNoYW5nZSB3aXRoIHJlYWwgYmxhc3QKcmFkaXVzIOKAlCBrZWVwIGl0IG91dCBvZiB0 aGUgdHdvLWxpbmUgZml4LgoKIyMjIDguMyBEb2N1bWVudGF0aW9uIGdhcAoKVGhlIGRvY3MgbmV2 ZXIgc3RhdGUgdGhlIHR5cGUgb2YgdGhlIG9wZXJhdG9yIGFyZ3VtZW50LiBgbmFyeWAncyBzaWdu YXR1cmUKaXMgYG5hcnkoQHZhcntvcH0pYCB3aXRoIG5vIHR5cGU7IHRoZSBwcm9zZSBvbmx5ICpp bGx1c3RyYXRlcyogd2l0aApgbmFyeSgieCIpYC4gQWxsIDEyIHdvcmtlZCBleGFtcGxlcyBpbiBg ZG9jL2luZm8vT3BlcmF0b3JzLnRleGlgIHVzZSBzdHJpbmdzCmFuZCBub25lIHVzZXMgYSBiYXJl IHN5bWJvbCDigJQgeWV0IGBtYXRjaGZpeGAgaXMgdGhlIG9ubHkgb25lIG9mIHRoZSBzaXggdGhh dApzYXlzIHNvIGV4cGxpY2l0bHkgKCJUaGUgZGVsaW1pdGVycyBhcmUgc3BlY2lmaWVkIGFzIHN0 cmluZ3MiLCBsaW5lcyAxODEyIGFuZAoxODE2KS4KCk1lYW53aGlsZSB0aGUgZG9jcyBwb3NpdGl2 ZWx5ICpzYW5jdGlvbiogcmVkZWNsYXJhdGlvbiwgd2hpY2ggaXMgd2hhdCBtYWtlcwp0aGlzIGEg YnVnIHJhdGhlciB0aGFuIGEgZG9jdW1lbnRlZCBzaGFycCBlZGdlOgoKLSBsaW5lIDE3OiAi4oCm b3IgdG8gKipyZWRlZmluZSB0aGUgcHJlY2VkZW5jZSBvZiBleGlzdGluZyBvcGVyYXRvcnMqKi4i Ci0gbGluZSAxODI3OiAiKipBbiBleGlzdGluZyBvcGVyYXRvciBtYXkgYmUgcmVkZWNsYXJlZCoq IGFzIGEgbWF0Y2hmaXgKICBvcGVyYXRvciB3aXRob3V0IGNoYW5naW5nIGl0cyBvdGhlciBwcm9w ZXJ0aWVzLiIKClN1Z2dlc3RlZDogc3RhdGUgdGhhdCBgb3BgIGlzIGEgc3RyaW5nIGZvciBgaW5m aXhgL2BuYXJ5YC9gcHJlZml4YC8KYHBvc3RmaXhgL2Bub2ZpeGAgYXMgYG1hdGNoZml4YCBhbHJl YWR5IGRvZXMsIGFuZCBub3RlIHdoYXQgcGFzc2luZyBhIHN5bWJvbApkb2VzIGluc3RlYWQgKMKn OC4xKS4gQ2hlYXA7IHJlYXNvbmFibGUgdG8gZm9sZCBpbnRvIHRoZSBzYW1lIHJlcG9ydC4KCi0t LQoKIyMgOS4gV2hlcmUgZXZlcnl0aGluZyBpcwoKYGBgCi9ob21lL3NlcmdlL3NyYy9leHRlcm5h bC9tYXhpbWEvICAgICAgICAgIG1heGltYSBzb3VyY2UgKGdpdCwgbWFzdGVyLCBiYXNlIGUxZGZm NWUzZCkK4pSc4pSA4pSAIHNyYy9kZWZjYWwubGlzcDo4MSAgICAgICAgICAgICAgICAgICAgZml4 IDEg4oCUIGRlZmluZS1zeW1ib2wgZGVkdXAK4pSc4pSA4pSAIHNyYy9ucGFyc2UubGlzcDoyODQg ICAgICAgICAgICAgICAgICAgZml4IDIg4oCUIHJlYWQtY29tbWFuZC10b2tlbi1hdXggZ3VhcmQK 4pSc4pSA4pSAIHNyYy90ZXN0c3VpdGUubGlzcDo5NyAgICAgICAgICAgICAgICAgInJ0ZXN0X29w ZXJhdG9ycyIgcmVnaXN0ZXJlZArilJTilIDilIAgdGVzdHMvcnRlc3Rfb3BlcmF0b3JzLm1hYyAg ICAgICAgICAgICBuZXcsIDM1IHRlc3RzCgovaG9tZS9zZXJnZS9sb2NhbC/igKYvYnJhbmNoXzVf NDlfYmFzZV8xMzhfZ2UxZGZmNWUzZC8gICBpbnN0YWxsZWQgbWF4aW1hCmBgYAoKV29ya2luZyB0 cmVlIGFsc28gaGFzIHVudHJhY2tlZCBidWlsZCBhcnRpZmFjdHMgdW5kZXIgYGRvYy9pbmZvL2Ag YW5kCmBpbnRlcmZhY2VzL2VtYWNzL2Ag4oCUIHByZS1leGlzdGluZywgdW5yZWxhdGVkLgoKVXNl ZnVsIGNvbW1hbmRzOgoKYGBgYmFzaApnaXQgLUMgL2hvbWUvc2VyZ2Uvc3JjL2V4dGVybmFsL21h eGltYSBkaWZmCm1heGltYSAtLWJhdGNoLXN0cmluZz0ncnVuX3Rlc3RzdWl0ZSgpJCcgICAgICAg ICAgICAgICAgICAgICAgICAjIE5PVCAtLXZlcnktcXVpZXQKbWF4aW1hIC0tYmF0Y2gtc3RyaW5n PSdiYXRjaCgidGVzdHMvcnRlc3Rfb3BlcmF0b3JzLm1hYyIsIHRlc3QpJCcKYGBgCgpJbnZlc3Rp Z2F0aW9uIHNjcmF0Y2ggZmlsZXMgKHJlcHJvZHVjZXJzLCB0aGUgcnVudGltZS1wYXRjaCBgZml4 Lmxpc3BgLAp0ZXN0c3VpdGUgbG9ncykgd2VyZSBsZWZ0IGluIHRoZSBzZXNzaW9uIHNjcmF0Y2hw YWQgdW5kZXIKYC90bXAvY2xhdWRlLTEwMDAvLWhvbWUtc2VyZ2Utc3JjLW1heGltYS/igKYvc2Ny YXRjaHBhZC9gLiBUaGV5IGFyZQpyZXByb2R1Y2libGUgZnJvbSB0aGlzIGRvY3VtZW50OyB0cmVh dCB0aGVtIGFzIGRpc3Bvc2FibGUuCgotLS0KCiMjIDEwLiBSZW1haW5pbmcgd29yayDigJQgdGhl IHVwc3RyZWFtIHJlcG9ydAoKTm90aGluZyBpcyBibG9ja2VkOyB0aGUgY29kZSBhbmQgdGVzdHMg YXJlIGRvbmUgYW5kIHZlcmlmaWVkLgoKU3VnZ2VzdGVkIGZyYW1pbmcgZm9yIFNGICM0ODgzOgoK MS4gKipMZWFkIHdpdGggdGhlIGBwcmVmaXhgIGNhc2UqKiDigJQgYSBzaWxlbnRseSB3cm9uZyBh bnN3ZXIgd2l0aCBubwogICBkaWFnbm9zdGljIGlzIG1vcmUgY29tcGVsbGluZyB0aGFuIGEgcGFy c2UgZXJyb3IuCjIuICoqVXNlIHJlcHJvZHVjZXIgQioqIChgbmFyeSgiJW9yIik7IG5hcnkoIiVv cmUiKTsgJW9yYigxLDMpO2ApIGFzIHRoZQogICBwcmltYXJ5LCBzaW5jZSBpdCBzaG93cyB0aGUg dG9rZW5pemVyIGRlZmVjdCB3aXRoIGVhY2ggb3BlcmF0b3IgZGVjbGFyZWQKICAgZXhhY3RseSBv bmNlIGFuZCBubyBkdXBsaWNhdGUgaW52b2x2ZWQuCjMuICoqQ2l0ZSBgNjZmM2YzNjAxYCAoMjAx MC0wOS0yNCkqKiDigJQgZGVmZWN0IDIgaXMgdGhhdCBmaXggbGVmdCB1bmRvbmUsIGluCiAgIHRo ZSBicmFuY2ggaW1tZWRpYXRlbHkgYmVsb3cgdGhlIG9uZSBpdCBwYXRjaGVkLiBUaGlzIHNob3Vs ZCBtYWtlIHJldmlldwogICBzdHJhaWdodGZvcndhcmQuCjQuICoqQ2l0ZSB0aGUgcmVhbC13b3Js ZCB0cmlnZ2VyKiog4oCUIGEgZG91YmxlIGBsb2FkKHRvX3BvbHlfc29sdmUpYCwgZWFzeSB0bwog ICBkbyBieSBhY2NpZGVudCBiZWNhdXNlIG9mIHRoZSBgdG9fcG9seV9zb2x2ZWAg4oaSIGAlc29s dmVgIGFsaWFzLgo1LiBNZW50aW9uIGAlYW5kYCBpcyBhZmZlY3RlZCBpZGVudGljYWxseSB0byBg JW9yYC4KNi4gT3B0aW9uYWxseSBpbmNsdWRlIHRoZSBkb2MgZml4ICjCpzguMykuIEtlZXAgwqc4 LjEgYW5kIMKnOC4yIG91dCwgb3IgZmlsZQogICB0aGVtIHNlcGFyYXRlbHkuCg== --0000000000000d67d80657ab0da3 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --0000000000000d67d80657ab0da3 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Maxima-discuss mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/maxima-discuss --0000000000000d67d80657ab0da3--