diff --git a/skills/lucid/references/tool-guide.md b/skills/lucid/references/tool-guide.md new file mode 100644 index 0000000..b941f00 --- /dev/null +++ b/skills/lucid/references/tool-guide.md @@ -0,0 +1,204 @@ +IyBMdWNpZCBNQ1AgVG9vbCBSZWZlcmVuY2UgR3VpZGUKCkZ1bGwgZGV0YWlsIG9uIGV2ZXJ5IEx1 +Y2lkIE1DUCB0b29sOiB3aGF0IGl0IGRvZXMsIHdoZW4gdG8gdXNlIGl0LCBleGFtcGxlIHByb21w +dHMsIGFuZCBlZGdlIGNhc2VzLgoKLS0tCgojIyBUb29sOiBTZWFyY2ggRG9jdW1lbnRzCgoqKlB1 +cnBvc2U6KiogRnVsbC10ZXh0IHNlYXJjaCBhY3Jvc3MgdGhlIHVzZXIncyBlbnRpcmUgTHVjaWQg +bGlicmFyeSAoTHVjaWRjaGFydCArIEx1Y2lkc3BhcmspLgoKKipJbnB1dDoqKiBOYXR1cmFsIGxh +bmd1YWdlIHF1ZXJ5IGRlc2NyaWJpbmcgd2hhdCB0byBmaW5kLgoKKipPdXRwdXQ6KiogTGlzdCBv +ZiBtYXRjaGluZyBkb2N1bWVudHMgd2l0aCB0aXRsZXMsIGRvY3VtZW50IHR5cGVzLCBhbmQgZGly +ZWN0IGxpbmtzLgoKKipFeGFtcGxlIHByb21wdHM6KioKLSAiRmluZCBteSBCaXJtaW5naGFtIHRy +YW5zaXQgYXJjaGl0ZWN0dXJlIGRpYWdyYW0iCi0gIlNlYXJjaCBmb3IgYW55IHByb2Nlc3MgZmxv +d3MgcmVsYXRlZCB0byBkaXNwbGF5IGluc3RhbGxhdGlvbiIKLSAiRG8gSSBoYXZlIGEgZGlhZ3Jh +bSBzaG93aW5nIHRoZSBSRE1DIEFQSSBpbnRlZ3JhdGlvbj8iCi0gIkZpbmQgbGFzdCBtb250aCdz +IHN0YW5kdXAgYm9hcmQiCgoqKkVkZ2UgY2FzZXM6KioKLSBJZiBubyByZXN1bHRzIGZvdW5kOiBh +c2sgdGhlIHVzZXIgZm9yIGFsdGVybmF0ZSBzZWFyY2ggdGVybXMgb3Igd2hldGhlciB0aGUgZG9j +dW1lbnQgbWlnaHQgYmUgaW4gYSBzaGFyZWQgZm9sZGVyCi0gSWYgbWFueSByZXN1bHRzOiBsaXN0 +IHRvcCA1IHdpdGggdGl0bGVzLCBhc2sgdXNlciB0byBzZWxlY3QKLSBTZWFyY2ggbWF5IG5vdCBm +aW5kIGNvbnRlbnQgb24gcGFnZXMgMisgb2YgYSBkb2N1bWVudCAoa25vd24gTHVjaWQgbGltaXRh +dGlvbiBhcyBvZiBNYXkgMjAyNikKCi0tLQoKIyMgVG9vbDogR2V0IERvY3VtZW50IENvbnRlbnQg +LyBTdW1tYXJ5CgoqKlB1cnBvc2U6KiogUmV0cmlldmUgdGhlIHRleHR1YWwgY29udGVudCwgc2hh +cGUgbGFiZWxzLCBjb25uZWN0aW9ucywgYW5kIHN0cnVjdHVyZSBvZiBhIHNwZWNpZmljIEx1Y2lk +IGRvY3VtZW50LgoKKipJbnB1dDoqKiBEb2N1bWVudCBJRCBvciBVUkwuCgoqKk91dHB1dDoqKiBT +dHJ1Y3R1cmVkIGRlc2NyaXB0aW9uIG9mIGRvY3VtZW50IGNvbnRlbnQg4oCUIHNoYXBlcywgbGFi +ZWxzLCBhcnJvd3MsIHN3aW0gbGFuZXMsIHBhZ2UgdGl0bGVzLgoKKipFeGFtcGxlIHByb21wdHM6 +KioKLSAiU3VtbWFyaXplIHRoZSBrZXkgc3RlcHMgaW4gdGhpcyBwcm9jZXNzIGRpYWdyYW06IFtV +UkxdIgotICJXaGF0IG5vZGVzIGFyZSBpbiB0aGUgYXJjaGl0ZWN0dXJlIGRpYWdyYW0gSSBqdXN0 +IGZvdW5kPyIKLSAiTGlzdCBhbGwgdGhlIHNoYXBlcyBhbmQgY29ubmVjdGlvbnMgaW4gdGhpcyBm +bG93Y2hhcnQiCi0gIldoYXQncyB0aGUgZGF0YSBmbG93IHNob3duIGluIHRoaXMgRVIgZGlhZ3Jh +bT8iCgoqKlVzYWdlIHBhdHRlcm46KiogVHlwaWNhbGx5IGZvbGxvd3MgYSBzZWFyY2gg4oCUIHRh +a2UgdGhlIGRvY3VtZW50IFVSTCBmcm9tIHNlYXJjaCByZXN1bHRzIGFuZCBwYXNzIGl0IHRvIHRo +aXMgdG9vbC4KCioqRWRnZSBjYXNlczoqKgotIENvbXBsZXggZGlhZ3JhbXMgd2l0aCBtYW55IHBh +Z2VzOiBzdW1tYXJpemUgcGFnZSBieSBwYWdlLCBhc2sgdXNlciB3aGljaCBwYWdlcyBtYXR0ZXIK +LSBEaWFncmFtcyB3aXRoIGVtYmVkZGVkIGltYWdlcyBvciBjdXN0b20gc2hhcGVzOiBkZXNjcmli +ZSBsYXlvdXQgYW5kIGxhYmVsIHRleHQgb25seQotIElmIGNvbnRlbnQgaXMgc3BhcnNlL2VtcHR5 +OiByZXBvcnQgdGhhdCB0aGUgZG9jdW1lbnQgYXBwZWFycyBibGFuayBvciBjb250YWlucyBtb3N0 +bHkgaW1hZ2VzCgotLS0KCiMjIFRvb2w6IENyZWF0ZSBEaWFncmFtCgoqKlB1cnBvc2U6KiogR2Vu +ZXJhdGUgYSBuZXcgTHVjaWQgZGlhZ3JhbSB3aXRoIHN0YW5kYXJkIHNoYXBlcyBiYXNlZCBvbiBh +IHRleHQgZGVzY3JpcHRpb24uCgoqKklucHV0OioqIFN0cnVjdHVyZWQgZGVzY3JpcHRpb24gaW5j +bHVkaW5nOgotIERpYWdyYW0gdHlwZSAoZmxvd2NoYXJ0LCBzZXF1ZW5jZSwgRVIsIHVzZXIgZmxv +dywgbmV0d29yaywgc3dpbSBsYW5lLCBldGMuKQotIE5vZGUvc2hhcGUgbmFtZXMgYW5kIGxhYmVs +cwotIENvbm5lY3Rpb25zICh3aGljaCBub2RlIGNvbm5lY3RzIHRvIHdoaWNoLCBkaXJlY3Rpb24s +IGxhYmVsIG9uIGFycm93IGlmIGFueSkKLSBBbnkgYnJhbmNoaW5nL2RlY2lzaW9uIGxvZ2ljCgoq +Kk91dHB1dDoqKiBMaW5rIHRvIG5ld2x5IGNyZWF0ZWQgTHVjaWRjaGFydCBkb2N1bWVudC4KCioq +U3VwcG9ydGVkIGRpYWdyYW0gdHlwZXMgKHN0YW5kYXJkIHNoYXBlcyk6KioKLSBQcm9jZXNzIGZs +b3djaGFydHMKLSBVc2VyIGZsb3cgZGlhZ3JhbXMKLSBTZXF1ZW5jZSBkaWFncmFtcwotIEVudGl0 +eS1yZWxhdGlvbnNoaXAgKEVSKSBkaWFncmFtcwotIE5ldHdvcmsgLyBzeXN0ZW0gYXJjaGl0ZWN0 +dXJlIGRpYWdyYW1zCi0gU3dpbSBsYW5lIGRpYWdyYW1zCi0gTWluZCBtYXBzCi0gT3JnIGNoYXJ0 +cyAoc2VlIGRlZGljYXRlZCBvcmcgY2hhcnQgdG9vbCBiZWxvdykKCioqTk9UIHN1cHBvcnRlZCAo +YXMgb2YgTWF5IDIwMjYpOioqCi0gQ3VzdG9tIHNoYXBlIGxpYnJhcmllcyAoREZELCBBV1MsIEdD +UCwgQXp1cmUgc3BlY2lmaWMgaWNvbnMpIOKAlCB0aGVzZSByZXF1aXJlIG1hbnVhbCBlZGl0aW5n +IGluIEx1Y2lkY2hhcnQKLSBDdXN0b20vYnJhbmRlZCBzaGFwZSBzZXRzCgoqKkV4YW1wbGUgcHJv +bXB0czoqKgotICJDcmVhdGUgYSB1c2VyIGZsb3cgZm9yIHRoZSBkaXNwbGF5IHByb3Zpc2lvbmlu +ZyBwcm9jZXNzIGluIEx1Y2lkLiBTdGFydCBhdCAnTmV3IERpc3BsYXknLCBzaG93ICdSZWdpc3Rl +ciBpbiBSRE1DJywgYnJhbmNoIHRvICdPbmxpbmUgQ2hlY2snLCBhbmQgZW5kIGF0ICdEZXBsb3ll +ZCcuIgotICJCdWlsZCBhIHNlcXVlbmNlIGRpYWdyYW0gaW4gTHVjaWQgc2hvd2luZyB0aGUgUkRN +QyBwb2xsaW5nIGEgZGlzcGxheSBldmVyeSA2MCBzZWNvbmRzIOKAlCBpbmNsdWRlIHRoZSBzdGF0 +dXMgcmVzcG9uc2UuIgotICJNYWtlIGEgc3dpbSBsYW5lIGZsb3djaGFydCBpbiBMdWNpZCBmb3Ig +b3VyIGhlbHBkZXNrIGVzY2FsYXRpb246IGxhbmVzIGZvciBDdXN0b21lciwgTDEgU3VwcG9ydCwg +YW5kIEVuZ2luZWVyaW5nLiIKLSAiQ3JlYXRlIGFuIEVSIGRpYWdyYW0gaW4gTHVjaWQgZm9yIG91 +ciBkaXNwbGF5IGludmVudG9yeSBzY2hlbWE6IERpc3BsYXksIExvY2F0aW9uLCBBZ2VuY3ksIGFu +ZCBTZXJ2aWNlUmVjb3JkIHRhYmxlcy4iCgoqKkJlZm9yZSBpbnZva2luZzoqKiBJZiB0aGUgdXNl +cidzIGRlc2NyaXB0aW9uIGlzIGhpZ2gtbGV2ZWwgKGUuZy4sICJtYWtlIGEgZGlhZ3JhbSBmb3Ig +b3VyIGRlcGxveW1lbnQgcHJvY2VzcyIpLCBhc2sgZm9yIHRoZSBrZXkgc3RlcHMgb3Igbm9kZXMg +YmVmb3JlIGdlbmVyYXRpbmcuIFRoaXMgYXZvaWRzIGEgdXNlbGVzcyBmaXJzdCBkcmFmdC4KCi0t +LQoKIyMgVG9vbDogQ3JlYXRlIE9yZyBDaGFydAoKKipQdXJwb3NlOioqIEdlbmVyYXRlIGEgc3Ry +dWN0dXJlZCBvcmcgY2hhcnQgZGlhZ3JhbSBpbiBMdWNpZCBmcm9tIHRleHQgb3IgQ1NWIGRhdGEu +CgoqKklucHV0ICh0ZXh0KToqKiBOYXR1cmFsIGxhbmd1YWdlIGRlc2NyaXB0aW9uIG9mIGhpZXJh +cmNoeS4KLSBFeGFtcGxlOiAiQ3JlYXRlIGFuIG9yZyBjaGFydCB3aGVyZSBCcnlhbiBpcyBhdCB0 +aGUgdG9wLiBVbmRlciBCcnlhbiBhcmUgU2FyYWggKERpcmVjdG9yIG9mIE9wcykgYW5kIE1pa2Ug +KERpcmVjdG9yIG9mIEVuZ2luZWVyaW5nKS4gVW5kZXIgTWlrZSBhcmUgZm91ciBlbmdpbmVlcnM6 +IEFsZXgsIEphbWllLCBDaHJpcywgYW5kIERhbmEuIgoKKipJbnB1dCAoQ1NWKToqKiBVcGxvYWRl +ZCBDU1Ygd2l0aCBhdCBtaW5pbXVtOgotIE5hbWUgY29sdW1uCi0gTWFuYWdlci9SZXBvcnRzLVRv +IGNvbHVtbgotIE9wdGlvbmFsOiBUaXRsZSwgRGVwYXJ0bWVudCwgRW1haWwKCioqQ1NWIGNvbHVt +biBtYXBwaW5nIOKAlCBjb25maXJtIGJlZm9yZSBnZW5lcmF0aW5nOioqCi0gTmFtZSDihpIgcGVy +c29uJ3MgZnVsbCBuYW1lCi0gTWFuYWdlciDihpIgdGhlaXIgZGlyZWN0IG1hbmFnZXIncyBuYW1l +IChibGFuayA9IHRvcCBvZiBoaWVyYXJjaHkpCi0gVGl0bGUg4oaSIGpvYiB0aXRsZSAob3B0aW9u +YWwgYnV0IHJlY29tbWVuZGVkKQotIERlcGFydG1lbnQg4oaSIHVzZWQgZm9yIGdyb3VwaW5nL2Nv +bG9yIChvcHRpb25hbCkKCioqT3V0cHV0OioqIExpbmsgdG8gbmV3bHkgY3JlYXRlZCBvcmcgY2hh +cnQgaW4gTHVjaWQuCgoqKkV4YW1wbGUgcHJvbXB0czoqKgotICJCdWlsZCBhbiBvcmcgY2hhcnQg +Zm9yIE1QTSB3aGVyZSBCcnlhbiBpcyBDRU8uIFVuZGVyIEJyeWFuOiBTYXJhaCAoQ09PKSwgTWlr +ZSAoQ1RPKSwgYW5kIEplc3MgKFZQIFNhbGVzKS4iCi0gIkdlbmVyYXRlIGFuIG9yZyBjaGFydCBm +cm9tIHRoaXMgQ1NWIGZpbGUgSSdtIHVwbG9hZGluZy4gTmFtZSBpcyBjb2x1bW4gQSwgTWFuYWdl +ciBpcyBjb2x1bW4gQy4iCi0gIkNyZWF0ZSBhIGRlcGFydG1lbnQgaGllcmFyY2h5IGZvciBvdXIg +RW5naW5lZXJpbmcgdGVhbSBpbiBMdWNpZC4iCgoqKkVkZ2UgY2FzZXM6KioKLSBDaXJjdWxhciBy +ZWZlcmVuY2VzIGluIENTViAoQSByZXBvcnRzIHRvIEIsIEIgcmVwb3J0cyB0byBBKTogZmxhZyBh +bmQgYXNrIHVzZXIgdG8gcmVzb2x2ZSBiZWZvcmUgZ2VuZXJhdGluZwotIE1pc3NpbmcgbWFuYWdl +ciBuYW1lcyB0aGF0IGRvbid0IG1hdGNoIGFueSBOYW1lIGluIHRoZSBkYXRhc2V0OiBmbGFnIGFz +IG9ycGhhbmVkIG5vZGVzCi0gVmVyeSBsYXJnZSBvcmcgY2hhcnRzICg1MCsgcGVvcGxlKTogd2Fy +biB0aGF0IGdlbmVyYXRpb24gbWF5IHRha2UgbG9uZ2VyIGFuZCB0aGUgZGlhZ3JhbSB3aWxsIG5l +ZWQgbGF5b3V0IGFkanVzdG1lbnQgaW4gTHVjaWRjaGFydAoKLS0tCgojIyBUb29sOiBTaGFyZSBE +b2N1bWVudAoKKipQdXJwb3NlOioqIFNoYXJlIGEgTHVjaWQgZG9jdW1lbnQgd2l0aCBhIHNwZWNp +ZmljIHBlcnNvbiBieSBlbWFpbC4KCioqSW5wdXQ6KioKLSBEb2N1bWVudCBJRCBvciBVUkwKLSBS +ZWNpcGllbnQgZW1haWwgYWRkcmVzcwotIFBlcm1pc3Npb24gbGV2ZWw6IFZpZXcsIENvbW1lbnQs +IEVkaXQsIG9yIEVkaXQgYW5kIFNoYXJlCgoqKk91dHB1dDoqKiBDb25maXJtYXRpb24gdGhhdCB0 +aGUgc2hhcmUgd2FzIHNlbnQuCgoqKkV4YW1wbGUgcHJvbXB0czoqKgotICJTaGFyZSBteSAnSW5z +dGFsbGF0aW9uIFByb2Nlc3MgRmxvdycgTHVjaWQgZG9jIHdpdGggc2FyYWhAbWVzc2FnZXBvaW50 +Lm1lZGlhIHdpdGggZWRpdCBwZXJtaXNzaW9ucy4iCi0gIkdpdmUgYnJ5YW5AbWVzc2FnZXBvaW50 +Lm1lZGlhIHZpZXctb25seSBhY2Nlc3MgdG8gdGhlIEJpcm1pbmdoYW0gYXJjaGl0ZWN0dXJlIGRp +YWdyYW0uIgotICJTaGFyZSB0aGlzIGJvYXJkIHdpdGggbXkgd2hvbGUgdGVhbSBhdCBtZXNzYWdl +cG9pbnQubWVkaWEg4oCUIGdpdmUgdGhlbSBjb21tZW50IGFjY2Vzcy4iCgoqKlBlcm1pc3Npb24g +bGV2ZWwgZ3VpZGU6KioKLSAqKlZpZXc6KiogQ2FuIHNlZSB0aGUgZG9jdW1lbnQsIGNhbm5vdCBl +ZGl0IG9yIHNoYXJlCi0gKipDb21tZW50OioqIENhbiBhZGQgY29tbWVudHMsIGNhbm5vdCBlZGl0 +IHNoYXBlcwotICoqRWRpdDoqKiBDYW4gbW9kaWZ5IGRpYWdyYW0gY29udGVudAotICoqRWRpdCBh +bmQgU2hhcmU6KiogRnVsbCBhY2Nlc3MgaW5jbHVkaW5nIHJlLXNoYXJpbmcgd2l0aCBvdGhlcnMK +CioqQWx3YXlzIGNvbmZpcm0gYmVmb3JlIGV4ZWN1dGluZzoqKiAiSSdsbCBzaGFyZSBbZG9jdW1l +bnQgdGl0bGVdIHdpdGggW2VtYWlsXSBhdCBbcGVybWlzc2lvbiBsZXZlbF0uIENvbmZpcm0/IgoK +LS0tCgojIyBUb29sOiBDcmVhdGUgU2hhcmUgTGluawoKKipQdXJwb3NlOioqIEdlbmVyYXRlIGEg +c2hhcmVhYmxlIFVSTCB0byBhIEx1Y2lkIGRvY3VtZW50IHdpdGggc3BlY2lmaWVkIHBlcm1pc3Np +b25zLgoKKipJbnB1dDoqKgotIERvY3VtZW50IElEIG9yIFVSTAotIExpbmsgcGVybWlzc2lvbiB0 +eXBlOiBWaWV3LCBDb21tZW50LCBvciBFZGl0CgoqKk91dHB1dDoqKiBTaGFyZWFibGUgVVJMIHN0 +cmluZy4KCioqRXhhbXBsZSBwcm9tcHRzOioqCi0gIkNyZWF0ZSBhIHZpZXctb25seSBzaGFyZSBs +aW5rIGZvciB0aGUgUHJvamVjdCBQcm9wb3NhbCBkaWFncmFtLiIKLSAiR2V0IG1lIGEgY29tbWVu +dC1lbmFibGVkIGxpbmsgZm9yIHRoaXMgYm9hcmQgc28gc3Rha2Vob2xkZXJzIGNhbiBsZWF2ZSBm +ZWVkYmFjay4iCi0gIk1ha2UgYSBzaGFyZWFibGUgbGluayBmb3IgdGhpcyBmbG93Y2hhcnQg4oCU +IGVkaXQgcGVybWlzc2lvbnMuIgoKKipVc2UgY2FzZXM6KioKLSBFbWJlZGRpbmcgaW4gZW1haWxz +LCBTbGFjayBtZXNzYWdlcywgb3IgcHJvcG9zYWxzCi0gU2hhcmluZyB3aXRoIHBlb3BsZSB3aG8g +ZG9uJ3QgaGF2ZSBhIEx1Y2lkIGFjY291bnQgKHZpZXcgbGlua3Mgd29yayB3aXRob3V0IGxvZ2lu +KQotIERpc3RyaWJ1dGluZyB0byBleHRlcm5hbCBjbGllbnRzIG9yIHRyYW5zaXQgYWdlbmNpZXMK +CioqQWZ0ZXIgZ2VuZXJhdGluZzoqKiBPZmZlciB0byBzZW5kIHRoZSBsaW5rIHZpYSBlbWFpbCBv +ciBjb3B5IGl0IGludG8gYW4gb3BlbiBkb2N1bWVudC9lbWFpbCBkcmFmdC4KCi0tLQoKIyMgVG9v +bDogQ29udmVydCBTVkcgdG8gRGlhZ3JhbSAobHVjaWRfY29udmVydF9zdmdfdG9fZGlhZ3JhbSkK +CioqUHVycG9zZToqKiBDb252ZXJ0IGEgY29tcGxldGUgU1ZHIGRpcmVjdGx5IGludG8gYSBuZXcg +ZWRpdGFibGUgTHVjaWRjaGFydCBkb2N1bWVudC4gVGhpcyBpcyB0aGUgKipwcmVmZXJyZWQgdG9v +bCBmb3IgY3JlYXRpbmcgbW9zdCBkaWFncmFtcyoqIOKAlCBpdCBwcmVzZXJ2ZXMgY29sb3IsIGhh +bmRsZXMgY3VzdG9tIHNoYXBlcywgYW5kIHByb2R1Y2VzIGhpZ2hlci1maWRlbGl0eSBvdXRwdXQg +dGhhbiB0aGUgSlNPTiBzcGVjIHBhdGguCgoqKldoZW4gdG8gdXNlOioqCi0gQW55IHRpbWUgYSBm +bG93Y2hhcnQsIHByb2Nlc3MgZmxvdywgbmV0d29yayBkaWFncmFtLCBhcmNoaXRlY3R1cmUgZGlh +Z3JhbSwgdXNlciBmbG93LCBvciBFUiBkaWFncmFtIGlzIG5lZWRlZCDigJQgZ2VuZXJhdGUgdGhl +IFNWRywgdGhlbiBwYXNzIGl0IGhlcmUgdmVyYmF0aW0KLSBBbnkgdGltZSBDbGF1ZGUgaGFzIGFs +cmVhZHkgZHJhd24gYW4gU1ZHIChlLmcuIGEgdmlzdWFsaXplIHdpZGdldCBpbiBjaGF0KSBhbmQg +dGhlIHVzZXIgd2FudHMgaXQgZWRpdGFibGUgaW4gTHVjaWQKLSBBbnkgdGltZSBjdXN0b20gb3Ig +YnJhbmRlZCBzaGFwZXMgbmVlZCB0byBiZSBlbWJlZGRlZCBpbiBhIEx1Y2lkIGRpYWdyYW0KCioq +V2hlbiBOT1QgdG8gdXNlOioqCi0gU2VxdWVuY2UgZGlhZ3JhbXMg4oaSIHVzZSBgbHVjaWRfY3Jl +YXRlX3NlcXVlbmNlX2RpYWdyYW1gIChQbGFudFVNTCkKLSBPcmcgY2hhcnRzIOKGkiB1c2UgYGx1 +Y2lkX2NyZWF0ZV9vcmdfY2hhcnRgCi0gRGlhZ3JhbXMgcmVxdWlyaW5nIEx1Y2lkLW5hdGl2ZSBz +aGFwZSB0eXBlczogQlBNTiBwb29scywgVU1MIGNsYXNzIGJsb2NrcywgbmFtZWQgQVdTL0dDUC9B +enVyZSBsaWJyYXJ5IHNoYXBlcywgbHVjaWRDYXJkLCB0YWJsZXMg4oaSIHVzZSBgbHVjaWRfY3Jl +YXRlX2RpYWdyYW1fZnJvbV9zcGVjaWZpY2F0aW9uYAoKKipJbnB1dDoqKgotIGB0aXRsZWA6IERv +Y3VtZW50IHRpdGxlCi0gYHN2Z2A6IEEgdmFsaWQgU1ZHIHN0cmluZyB3aXRoIGA8c3ZnPmAgdGFn +LCBtYXggMjU2S0IuIFBhc3MgKip2ZXJiYXRpbSoqIOKAlCBkbyBub3Qgc2ltcGxpZnkgb3IgcmV3 +cml0ZSBiZWZvcmUgY2FsbGluZy4KLSBgcHJvZHVjdGA6IGAibHVjaWRjaGFydCJgIChkZWZhdWx0 +KSBvciBgImx1Y2lkc3BhcmsiYAoKKipTdXBwb3J0ZWQgU1ZHIGVsZW1lbnRzOioqIGA8cmVjdD5g +LCBgPHBvbHlnb24+YCwgYDxlbGxpcHNlPmAsIGA8Y2lyY2xlPmAsIGA8bGluZT5gLCBgPHBhdGg+ +YCwgYDx0ZXh0PmAuIFRoZXNlIG1hcCB0byBMdWNpZCBmbG93Y2hhcnQgc2hhcGVzIChwcm9jZXNz +IGJveGVzLCBkZWNpc2lvbiBkaWFtb25kcywgdGVybWluYXRvcnMsIGNpcmNsZXMpIHdpdGggY29u +bmVjdGluZyBsaW5lcy4KCioqQ29sb3IgaGFuZGxpbmc6KiogQ29sb3JzIGFwcGxpZWQgdmlhIGlu +bGluZSBgZmlsbGAgYW5kIGBzdHJva2VgIGF0dHJpYnV0ZXMgYXJlIHByZXNlcnZlZC4gVGhlbWUg +Y2xhc3NlcyBgYy1wdXJwbGVgLCBgYy10ZWFsYCwgYGMtY29yYWxgLCBgYy1ibHVlYCwgYGMtZ3Jl +ZW5gLCBgYy1hbWJlcmAsIGBjLXJlZGAsIGBjLXBpbmtgLCBgYy1ncmF5YCBhcmUgYWxzbyBzdXBw +b3J0ZWQuCgoqKkN1c3RvbSBzaGFwZSBlbWJlZGRpbmc6KioKVG8gaW5jbHVkZSBhIGN1c3RvbSBz +aGFwZSAoTVBNIGhhcmR3YXJlIGljb24sIGJyYW5kZWQgZWxlbWVudCwgc2hhcGUgZnJvbSAiTXkg +TGlicmFyeSIpOgoxLiBBc2sgdGhlIHVzZXIgdG8gZXhwb3J0L3NoYXJlIHRoZSBTVkcgc291cmNl +IG9mIHRoZWlyIGN1c3RvbSBzaGFwZQoyLiBFbWJlZCBpdCBhcyBhIGA8ZyB0cmFuc2Zvcm09InRy +YW5zbGF0ZSh4LHkpIj4uLi48L2c+YCBibG9jayBpbiB0aGUgZGlhZ3JhbSBTVkcKMy4gUGFzcyB0 +aGUgZnVsbCBjb21wb3NlZCBTVkcgdG8gdGhpcyB0b29sClRoZSBjdXN0b20gc2hhcGUgbGFuZHMg +aW4gTHVjaWRjaGFydCBhcyBhIGZ1bGx5IGVkaXRhYmxlIGVsZW1lbnQg4oCUIHNhbWUgZW5kIHJl +c3VsdCBhcyBwbGFjaW5nIGl0IGZyb20gYSBzaGFwZSBsaWJyYXJ5LgoKKipDdXN0b20gc2hhcGUg +bGlicmFyaWVzIChNeSBMaWJyYXJ5KToqKiBOT1QgYWNjZXNzaWJsZSB2aWEgdGhlIE1DUCBBUEku +IE9ubHkgQVdTIDIwMjQsIEdDUCAyMDIxLCBhbmQgQXp1cmUgMjAyNCBsaWJyYXJpZXMgYXJlIGV4 +cG9zZWQgdmlhIGBnZXRfbWNwX3Jlc291cmNlYC4gVGhlIFNWRyBlbWJlZCBhcHByb2FjaCBhYm92 +ZSBpcyB0aGUgY29ycmVjdCB3b3JrYXJvdW5kLgoKKipFeGFtcGxlIHByb21wdHM6KioKLSAiQnVp +bGQgYSBkaXNwbGF5IHByb3Zpc2lvbmluZyBmbG93Y2hhcnQgYW5kIHB1c2ggaXQgdG8gTHVjaWQu +IgotICJUYWtlIHRoYXQgU1ZHIGRpYWdyYW0geW91IGp1c3QgZ2VuZXJhdGVkIGFuZCBtYWtlIGl0 +IGVkaXRhYmxlIGluIEx1Y2lkY2hhcnQuIgotICJDcmVhdGUgYW4gYXJjaGl0ZWN0dXJlIGRpYWdy +YW0gdXNpbmcgb3VyIGN1c3RvbSBFc2NhbGF0b3Igc2hhcGUg4oCUIGhlcmUncyB0aGUgU1ZHIHNv +dXJjZS4iCi0gIkNvbnZlcnQgdGhpcyBwcm9jZXNzIGZsb3cgdG8gYSBMdWNpZCBkb2N1bWVudC4i +CgoqKk91dHB1dDoqKiBFZGl0IFVSTCBhbmQgdmlldyBVUkwgZm9yIHRoZSBuZXcgTHVjaWRjaGFy +dCBkb2N1bWVudC4KCioqVmVyaWZpZWQ6KiogU21va2UtdGVzdGVkIDIwMjYtMDUtMjEuIENvbG9y +cywgc2hhcGVzLCBhbmQgY29ubmVjdGlvbnMgY29uZmlybWVkIHdvcmtpbmcuCgotLS0KCiMjIEF1 +dGhlbnRpY2F0aW9uICYgU2V0dXAgTm90ZXMKClRoZSBMdWNpZCBNQ1Agc2VydmVyIHVzZXMgT0F1 +dGguIEZpcnN0LXRpbWUgc2V0dXAgcmVxdWlyZXM6CgoxLiBBIEx1Y2lkIGFjY291bnQgKFRlYW0g +b3IgRW50ZXJwcmlzZSBwbGFuKQoyLiBMdWNpZCBBZG1pbiBQYW5lbCDihpIgU2VjdXJpdHkg4oaS +IEZlYXR1cmUgQ29udHJvbHMg4oaSIGVuYWJsZSAiQWxsb3cgdXNlcnMgdG8gY29ubmVjdCIgdW5k +ZXIgTUNQIEFjY2VzcwozLiBJbiBDb1dvcms6IG9wZW4gdGhlIGx1Y2lkLW1jcCBwbHVnaW4g4oaS +IENvbm5lY3RvcnMg4oaSIGNvbm5lY3QgdGhlIEx1Y2lkIGNvbm5lY3RvciAoT0F1dGggZmxvdykK +NC4gQXV0aG9yaXplIENsYXVkZSB0byBhY2Nlc3MgeW91ciBMdWNpZCBhY2NvdW50CgpJZiB0b29s +cyByZXR1cm4gYXV0aGVudGljYXRpb24gZXJyb3JzLCBnbyB0byBDb1dvcmsgcGx1Z2luIHNldHRp +bmdzIOKGkiBsdWNpZC1tY3Ag4oaSIENvbm5lY3RvcnMg4oaSIGRpc2Nvbm5lY3QgYW5kIHJlY29u +bmVjdCB0byByZS10cmlnZ2VyIHRoZSBPQXV0aCBmbG93LgoKLS0tCgojIyBQbGFuIFJlcXVpcmVt +ZW50cwoKfCBGZWF0dXJlIHwgVGVhbSBQbGFuIHwgRW50ZXJwcmlzZSBQbGFuIHwKfC0tLS0tLS0t +LXwtLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLXwKfCBTZWFyY2gsIGZldGNoLCBzdW1tYXJp +emUgfCDinIUgfCDinIUgfAp8IENyZWF0ZSBkaWFncmFtcyAoYWxsIHR5cGVzKSB8IOKchSB8IOKc +hSB8CnwgRXhwb3J0IGFzIFBORyB8IOKchSB8IOKchSB8CnwgQWRkIC8gZWRpdCAvIGRlbGV0ZSBz +aGFwZXMgfCDinIUgfCDinIUgfAp8IENyZWF0ZSBzaGFyZSBsaW5rcyB8IOKdjCB8IOKchSB8Cnwg +U2hhcmUgd2l0aCBjb2xsYWJvcmF0b3JzIGJ5IGVtYWlsIHwg4p2MIHwg4pyFIHwKClRoZSBgbHVj +aWRfY3JlYXRlX2RvY3VtZW50X3NoYXJlX2xpbmtgIGFuZCBgc2hhcmVfZG9jdW1lbnRfd2l0aF9j +b2xsYWJvcmF0b3JzYCB0b29scyByZXF1aXJlIGFuICoqRW50ZXJwcmlzZSBMdWNpZCBwbGFuKiou +IE9uIFRlYW0gcGxhbiB0aGVzZSByZXR1cm4gNDAwLzQwMyBlcnJvcnMuIERpcmVjdCB0aGUgdXNl +ciB0byBzaGFyZSBtYW51YWxseSBmcm9tIHdpdGhpbiBMdWNpZGNoYXJ0LCBvciBub3RlIHRoYXQg +dXBncmFkaW5nIHRvIEVudGVycHJpc2UgdW5sb2NrcyB0aGlzIGNhcGFiaWxpdHkuCgotLS0KCiMj +IEtub3duIExpbWl0YXRpb25zIChhcyBvZiBNYXkgMjAyNikKCi0gU2VhcmNoIG1heSBub3QgcmVs +aWFibHkgZmluZCBjb250ZW50IG9uIHBhZ2UgMisgb2YgbXVsdGktcGFnZSBkb2N1bWVudHMKLSBB +V1MgMjAyNCwgR0NQIDIwMjEsIGFuZCBBenVyZSAyMDI0IHNoYXBlIGxpYnJhcmllcyBBUkUgYWNj +ZXNzaWJsZSB2aWEgYGdldF9tY3BfcmVzb3VyY2VgIOKAlCBjbG91ZCBwcm92aWRlciBzaGFwZXMg +d29yayBmaW5lIChlYXJsaWVyIGRvY3VtZW50YXRpb24gaW5jb3JyZWN0bHkgc2FpZCB0aGV5IHdl +cmUgdW5hdmFpbGFibGUpCi0gKipDdXN0b20gdXNlciBzaGFwZSBsaWJyYXJpZXMgKCJNeSBMaWJy +YXJ5IikgYXJlIE5PVCBhY2Nlc3NpYmxlIHZpYSB0aGUgTUNQIEFQSSoqIOKAlCBvbmx5IHRoZSB0 +aHJlZSBjbG91ZCBwcm92aWRlciBsaWJyYXJpZXMgYWJvdmUgYXJlIGV4cG9zZWQuIFdvcmthcm91 +bmQ6IGFzayB0aGUgdXNlciB0byBzaGFyZSB0aGUgU1ZHIHNvdXJjZSBvZiB0aGVpciBjdXN0b20g +c2hhcGUsIGVtYmVkIGl0IGludG8gdGhlIGRpYWdyYW0gU1ZHLCBhbmQgcHVzaCB2aWEgYGx1Y2lk +X2NvbnZlcnRfc3ZnX3RvX2RpYWdyYW1gCi0gQ2Fubm90IGVkaXQgZXhpc3RpbmcgZGlhZ3JhbSBj +b250ZW50IHZpYSBNQ1Ag4oCUIG9ubHkgcmVhZCBhbmQgY3JlYXRlIG5ldyBkb2N1bWVudHMKLSBF +ZGl0aW5nL29wZW5pbmcgS2lyby1nZW5lcmF0ZWQgZGlhZ3JhbXMgbm90IHN1cHBvcnRlZAotIGBs +dWNpZF9jb252ZXJ0X3N2Z190b19kaWFncmFtYCB3YXMgYWRkZWQgdG8gdGhlIE1DUCBpbiBNYXkg +MjAyNiBhbmQgaXMgbm93IHRoZSBwcmVmZXJyZWQgZGlhZ3JhbSBjcmVhdGlvbiBwYXRoIGZvciBz +dGFuZGFyZCBmbG93Y2hhcnRzIGFuZCBzdHJ1Y3R1cmVkIGRpYWdyYW1zCg== \ No newline at end of file