REDROOM
PHP 8.3.31
Path:
Logout
Edit File
Size: 52.43 KB
Close
/opt/alt/python311/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/helpers.cpython-311.pyc
Text
Base64
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dCBzaG91bGQgYmUgYSBweXBhcnNpbmcgZXhwcmVzc2lvbgogICAgdGhhdCBwcm9kdWNlcyBhbiBpbnRlZ2VyIHZhbHVlLgoKICAgIEV4YW1wbGU6OgoKICAgICAgICBjb3VudGVkX2FycmF5KFdvcmQoYWxwaGFzKSkucGFyc2Vfc3RyaW5nKCcyIGFiIGNkIGVmJykgICMgLT4gWydhYicsICdjZCddCgogICAgICAgICMgaW4gdGhpcyBwYXJzZXIsIHRoZSBsZWFkaW5nIGludGVnZXIgdmFsdWUgaXMgZ2l2ZW4gaW4gYmluYXJ5LAogICAgICAgICMgJzEwJyBpbmRpY2F0aW5nIHRoYXQgMiB2YWx1ZXMgYXJlIGluIHRoZSBhcnJheQogICAgICAgIGJpbmFyeV9jb25zdGFudCA9IFdvcmQoJzAxJykuc2V0X3BhcnNlX2FjdGlvbihsYW1iZGEgdDogaW50KHRbMF0sIDIpKQogICAgICAgIGNvdW50ZWRfYXJyYXkoV29yZChhbHBoYXMpLCBpbnRfZXhwcj1iaW5hcnlfY29uc3RhbnQpLnBhcnNlX3N0cmluZygnMTAgYWIgY2QgZWYnKSAgIyAtPiBbJ2FiJywgJ2NkJ10KCiAgICAgICAgIyBpZiBvdGhlciBmaWVsZHMgbXVzdCBiZSBwYXJzZWQgYWZ0ZXIgdGhlIGNvdW50IGJ1dCBiZWZvcmUgdGhlCiAgICAgICAgIyBsaXN0IGl0ZW1zLCBnaXZlIHRoZSBmaWVsZHMgcmVzdWx0cyBuYW1lcyBhbmQgdGhleSB3aWxsCiAgICAgICAgIyBiZSBwcmVzZXJ2ZWQgaW4gdGhlIHJldHVybmVkIFBhcnNlUmVzdWx0czoKICAgICAgICBjb3VudF93aXRoX21ldGFkYXRhID0gaW50ZWdlciArIFdvcmQoYWxwaGFzKSgidHlwZSIpCiAgICAgICAgdHlwZWRfYXJyYXkgPSBjb3VudGVkX2FycmF5KFdvcmQoYWxwaGFudW1zKSwgaW50X2V4cHI9Y291bnRfd2l0aF9tZXRhZGF0YSkoIml0ZW1zIikKICAgICAgICByZXN1bHQgPSB0eXBlZF9hcnJheS5wYXJzZV9zdHJpbmcoIjMgYm9vbCBUcnVlIFRydWUgRmFsc2UiKQog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2gNrZXnaBXZhbHVlYwIAAAAAAAAAAAAAAAgAAAADAAAA81oAAACXAHQBAAAAAAAAAAAAAHQDAAAAAAAAAAAAAHQFAAAAAAAAAAAAAHwAfAF6AAAApgEAAKsBAAAAAAAAAACmAQAAqwEAAAAAAAAAAKYBAACrAQAAAAAAAAAAUwApAWH4BQAASGVscGVyIHRvIGVhc2lseSBhbmQgY2xlYXJseSBkZWZpbmUgYSBkaWN0aW9uYXJ5IGJ5IHNwZWNpZnlpbmcKICAgIHRoZSByZXNwZWN0aXZlIHBhdHRlcm5zIGZvciB0aGUga2V5IGFuZCB2YWx1ZS4gIFRha2VzIGNhcmUgb2YKICAgIGRlZmluaW5nIHRoZSA6Y2xhc3M6YERpY3RgLCA6Y2xhc3M6YFplcm9Pck1vcmVgLCBhbmQKICAgIDpjbGFzczpgR3JvdXBgIHRva2VucyBpbiB0aGUgcHJvcGVyIG9yZGVyLiAgVGhlIGtleSBwYXR0ZXJuCiAgICBjYW4gaW5jbHVkZSBkZWxpbWl0aW5nIG1hcmtlcnMgb3IgcHVuY3R1YXRpb24sIGFzIGxvbmcgYXMgdGhleSBhcmUKICAgIHN1cHByZXNzZWQsIHRoZXJlYnkgbGVhdmluZyB0aGUgc2lnbmlmaWNhbnQga2V5IHRleHQuICBUaGUgdmFsdWUKICAgIHBhdHRlcm4gY2FuIGluY2x1ZGUgbmFtZWQgcmVzdWx0cywgc28gdGhhdCB0aGUgOmNsYXNzOmBEaWN0YCByZXN1bHRzCiAgICBjYW4gaW5jbHVkZSBuYW1lZCB0b2tlbiBmaWVsZHMuCgogICAgRXhhbXBsZTo6CgogICAgICAgIHRleHQgPSAic2hhcGU6IFNRVUFSRSBwb3NuOiB1cHBlciBsZWZ0IGNvbG9yOiBsaWdodCBibHVlIHRleHR1cmU6IGJ1cmxhcCIKICAgICAgICBhdHRyX2V4cHIgPSAobGFiZWwgKyBTdXBwcmVzcygnOicpICsgT25lT3JNb3JlKGRhdGFfd29yZCwgc3RvcF9vbj1sYWJlbCkuc2V0X3BhcnNlX2FjdGlvbignICcuam9pbikpCiAgICAgICAgcHJpbnQoYXR0cl9leHByWzEsIC4uLl0ucGFyc2Vfc3RyaW5nKHRleHQpLmR1bXAoKSkKCiAgICAgICAgYXR0cl9sYWJlbCA9IGxhYmVsCiAgICAgICAgYXR0cl92YWx1ZSA9IFN1cHByZXNzKCc6JykgKyBPbmVPck1vcmUoZGF0YV93b3JkLCBzdG9wX29uPWxhYmVsKS5zZXRfcGFyc2VfYWN0aW9uKCcgJy5qb2luKQoKICAgICAgICAjIHNpbWlsYXIgdG8gRGljdCwgYnV0IHNpbXBsZXIgY2FsbCBmb3JtYXQKICAgICAgICByZXN1bHQgPSBkaWN0X29mKGF0dHJfbGFiZWwsIGF0dHJfdmFsdWUpLnBhcnNlX3N0cmluZyh0ZXh0KQogICAgICAgIHByaW50KHJlc3VsdC5kdW1wKCkpCiAgICAgICAgcHJpbnQocmVzdWx0WydzaGFwZSddKQogICAgICAgIHByaW50KHJlc3VsdC5zaGFwZSkgICMgb2JqZWN0IGF0dHJpYnV0ZSBhY2Nlc3Mgd29ya3MgdG9vCiAgICAgICAgcHJpbnQocmVzdWx0LmFzX2RpY3QoKSkKCiAgICBwcmludHM6OgoKICAgICAgICBbWydzaGFwZScsICdTUVVBUkUnXSwgWydwb3NuJywgJ3VwcGVyIGxlZnQnXSwgWydjb2xvcicsICdsaWdodCBibHVlJ10sIFsndGV4dHVyZScsICdidXJsYXAnXV0KICAgICAgICAtIGNvbG9yOiAnbGlnaHQgYmx1ZScKICAgICAgICAtIHBvc246ICd1cHBlciBsZWZ0JwogICAgICAgIC0gc2hhcGU6ICdTUVVBUkUnCiAgICAgICAgLSB0ZXh0dXJlOiAnYnVybGFwJwogICAgICAgIFNRVUFSRQogICAgICAgIFNRVUFSRQogICAgICAgIHsnY29sb3InOiAnbGlnaHQgYmx1ZScsICdzaGFwZSc6ICdTUVVBUkUnLCAncG9zbic6ICd1cHBlciBsZWZ0JywgJ3RleHR1cmUnOiAnYnVybGFwJ30KICAgICkD2gREaWN02glPbmVPck1vcmXaBUdyb3VwKQJynwAAAHKgAAAAcwIAAAAgIHIjAAAA2gdkaWN0X29mcqUAAABHAQAAcycAAACAAPVKAQAMEJUJnSWgA6BloQvRGizUGizREC3UEC3RCy7UCy7QBC5yJQAAACkB2ghhc1N0cmluZ9oJYXNfc3Ry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IG9wZW5pbmcgY2hhcmFjdGVyIGZvciBhIG5lc3RlZCBsaXN0CiAgICAgIChkZWZhdWx0PSBgYCIoImBgKTsgY2FuIGFsc28gYmUgYSBweXBhcnNpbmcgZXhwcmVzc2lvbgogICAgLSBgYGNsb3NlcmBgIC0gY2xvc2luZyBjaGFyYWN0ZXIgZm9yIGEgbmVzdGVkIGxpc3QKICAgICAgKGRlZmF1bHQ9IGBgIikiYGApOyBjYW4gYWxzbyBiZSBhIHB5cGFyc2luZyBleHByZXNzaW9uCiAgICAtIGBgY29udGVudGBgIC0gZXhwcmVzc2lvbiBmb3IgaXRlbXMgd2l0aGluIHRoZSBuZXN0ZWQgbGlzdHMKICAgICAgKGRlZmF1bHQ9IGBgTm9uZWBgKQogICAgLSBgYGlnbm9yZV9leHByYGAgLSBleHByZXNzaW9uIGZvciBpZ25vcmluZyBvcGVuaW5nIGFuZCBjbG9zaW5nIGRlbGltaXRlcnMKICAgICAgKGRlZmF1bHQ9IDpjbGFzczpgcXVvdGVkX3N0cmluZ2ApCiAgICAtIGBgaWdub3JlRXhwcmBgIC0gdGhpcyBwcmUtUEVQOCBhcmd1bWVudCBpcyByZXRhaW5lZCBmb3IgY29tcGF0aWJpbGl0eQogICAgICBidXQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UKCiAgICBJZiBhbiBleHByZXNzaW9uIGlzIG5vdCBwcm92aWRlZCBmb3IgdGhlIGNvbnRlbnQgYXJndW1lbnQsIHRoZQogICAgbmVzdGVkIGV4cHJlc3Npb24gd2lsbCBjYXB0dXJlIGFsbCB3aGl0ZXNwYWNlLWRlbGltaXRlZCBjb250ZW50CiAgICBiZXR3ZWVuIGRlbGltaXRlcnMgYXMgYSBsaXN0IG9mIHNlcGFyYXRlIHZhbHVlcy4KCiAgICBVc2UgdGhlIGBgaWdub3JlX2V4cHJgYCBhcmd1bWVudCB0byBkZWZpbmUgZXhwcmVzc2lvbnMgdGhhdCBtYXkKICAgIGNvbnRhaW4gb3BlbmluZyBvciBjbG9zaW5nIGNoYXJhY3RlcnMgdGhhdCBzaG91bGQgbm90IGJlIHRyZWF0ZWQgYXMKICAgIG9wZW5pbmcgb3IgY2xvc2luZyBjaGFyYWN0ZXJzIGZvciBuZXN0aW5nLCBzdWNoIGFzIHF1b3RlZF9zdHJpbmcgb3IKICAgIGEgY29tbWVudCBleHByZXNzaW9uLiAgU3BlY2lmeSBtdWx0aXBsZSBleHByZXNzaW9ucyB1c2luZyBhbgogICAgOmNsYXNzOmBPcmAgb3IgOmNsYXNzOmBNYXRjaEZpcnN0YC4gVGhlIGRlZmF1bHQgaXMKICAgIDpjbGFzczpgcXVvdGVkX3N0cmluZ2AsIGJ1dCBpZiBubyBleHByZXNzaW9ucyBhcmUgdG8gYmUgaWdub3JlZCwgdGhlbgogICAgcGFzcyBgYE5vbmVgYCBmb3IgdGhpcyBhcmd1bWVudC4KCiAgICBFeGFtcGxlOjoKCiAgICAgICAgZGF0YV90eXBlID0gb25lX29mKCJ2b2lkIGludCBzaG9ydCBsb25nIGNoYXIgZmxvYXQgZG91YmxlIikKICAgICAgICBkZWNsX2RhdGFfdHlwZSA9IENvbWJpbmUoZGF0YV90eXBlICsgT3B0KFdvcmQoJyonKSkpCiAgICAgICAgaWRlbnQgPSBXb3JkKGFscGhhcysnXycsIGFscGhhbnVtcysnXycpCiAgICAgICAgbnVtYmVyID0gcHlwYXJzaW5nX2NvbW1vbi5udW1iZXIKICAgICAgICBhcmcgPSBHcm91cChkZWNsX2RhdGFfdHlwZSArIGlkZW50KQogICAgICAgIExQQVIsIFJQQVIgPSBtYXAoU3VwcHJlc3MsICIoKSIpCgogICAgICAgIGNvZGVfYm9keSA9IG5lc3RlZF9leHByKCd7JywgJ30nLCBpZ25vcmVfZXhwcj0ocXVvdGVkX3N0cmluZyB8IGNfc3R5bGVfY29tbWVudCkpCgogICAgICAgIGNfZnVuY3Rpb24gPSAoZGVjbF9kYXRhX3R5cGUoInR5cGUiKQogICAgICAgICAgICAgICAgICAgICAgKyBpZGVudCgibmFtZSIpCiAgICAgICAgICAgICAgICAgICAgICArIExQQVIgKyBPcHQoZGVsaW1pdGVkX2xpc3QoYXJnKSwgW10pKCJhcmdzIikgKyBSUEFSCiAgICAgICAgICAgICAgICAgICAgICArIGNvZGVfYm9keSgiYm9keSIpKQogICAgICAgIGNfZnVuY3Rpb24uaWdub3JlKGNfc3R5bGVfY29tbWVudCkKCiAgICAgICAgc291cmNlX2NvZGUgPSAnJycKICAgICAgICAgICAgaW50IGlzX29kZChpbnQgeCkgewogICAgICAgICAgICAgICAgcmV0dXJuICh4JTIpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpbnQgZGVjX3RvX2hleChjaGFyIGhjaGFyKSB7CiAgICAgICAgICAgICAgICBpZiAoaGNoYXIgPj0gJzAnICYmIGhjaGFyIDw9ICc5JykgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAob3JkKGhjaGFyKS1vcmQoJzAnKSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAoMTArb3JkKGhjaGFyKS1vcmQoJ0EnKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAnJycKICAgICAgICBmb3IgZnVuYyBpbiBjX2Z1bmN0aW9uLnNlYXJjaF9zdHJpbmcoc291cmNlX2NvZGUpOgogICAgICAgICAgICBwcmludCgiJShuYW1lKXMgKCUodHlwZSlzKSBhcmdzOiAlKGFyZ3MpcyIgJSBmdW5jKQoKCiAgICBwcmludHM6OgoKICAgICAgICBpc19vZGQgKGludCkgYXJnczogW1snaW50JywgJ3gnXV0KICAgICAgICBkZWNfdG9faGV4IChpbnQpIGFyZ3M6IFtbJ2NoYXInLCAnaGNoYXInXV0KICAgIHoub3BlbmluZyBhbmQgY2xvc2luZyBzdHJpbmdzIGNhbm5vdCBiZSB0aGUgc2FtZU5yAwAAACkB2gVleGFjdGMBAAAAAAAAAAAAAAACAAAAEwAAAPM2AAAAlwB8AGQBGQAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAACmAAAAqwAAAAAAAAAAAFMAcioAAACpAdoFc3RyaXByNAAAAHMBAAAAIHIjAAAAcjUAAAB6HW5lc3RlZF9leHByLjxsb2NhbHM+LjxsYW1iZGE+KAIAAPMSAAAAgACwEbAxtBS3GrIasRy0HIAAciUAAABjAQAAAAAAAAAAAAAAAgAAABMAAADz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dmVuIGEgdGFnIG5hbWUuIE1hdGNoZXMgdGFncyBpbiBlaXRoZXIgdXBwZXIgb3IgbG93ZXIgY2FzZSwKICAgIGF0dHJpYnV0ZXMgd2l0aCBuYW1lc3BhY2VzIGFuZCB3aXRoIHF1b3RlZCBvciB1bnF1b3RlZCB2YWx1ZXMuCgogICAgRXhhbXBsZTo6CgogICAgICAgIHRleHQgPSAnPHRkPk1vcmUgaW5mbyBhdCB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3B5cGFyc2luZy9weXBhcnNpbmcvd2lraSI+cHlwYXJzaW5nPC9hPiB3aWtpIHBhZ2U8L3RkPicKICAgICAgICAjIG1ha2VfaHRtbF90YWdzIHJldHVybnMgcHlwYXJzaW5nIGV4cHJlc3Npb25zIGZvciB0aGUgb3BlbmluZyBhbmQKICAgICAgICAjIGNsb3NpbmcgdGFncyBhcyBhIDItdHVwbGUKICAgICAgICBhLCBhX2VuZCA9IG1ha2VfaHRtbF90YWdzKCJBIikKICAgICAgICBsaW5rX2V4cHIgPSBhICsgU2tpcFRvKGFfZW5kKSgibGlua190ZXh0IikgKyBhX2VuZAoKICAgICAgICBmb3IgbGluayBpbiBsaW5rX2V4cHIuc2VhcmNoX3N0cmluZyh0ZXh0KToKICAgICAgICAgICAgIyBhdHRyaWJ1dGVzIGluIHRoZSA8QT4gdGFnIChsaWtlICJocmVmIiBzaG93biBoZXJlKSBhcmUKICAgICAgICAgICAgIyBhbHNvIGFjY2Vzc2libGUgYXMgbmFtZWQgcmVzdWx0cwogICAgICAgICAgICBwcmludChsaW5rLmxpbmtfdGV4dCwgJy0+JywgbGluay5ocmVmKQoKICAgIHByaW50czo6CgogICAgICAgIHB5cGFyc2luZyAtPiBodHRwczovL2dpdGh1Yi5jb20vcHlwYXJzaW5nL3B5cGFyc2luZy93aWtpCiAgICBGqQFyBQEAAKkBcgYBAABzAQAAACByIwAAANoObWFrZV9odG1sX3RhZ3NyCgEAAIgCAABzFAAAAIAA9TAADBWQV5hl0Qsk1Ask0AQkciUAAABjAQAAAAAAAAAAAAAABAAAAAMAAADzIgAAAJcAdAEAAAAAAAAAAAAAfABk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ZSBleGFtcGxlIGJlbG93KS4KCiAgICBOb3RlOiBpZiB5b3UgZGVmaW5lIGEgZGVlcCBvcGVyYXRvciBsaXN0LCB5b3UgbWF5IHNlZSBwZXJmb3JtYW5jZQogICAgaXNzdWVzIHdoZW4gdXNpbmcgaW5maXhfbm90YXRpb24uIFNlZQogICAgOmNsYXNzOmBQYXJzZXJFbGVtZW50LmVuYWJsZV9wYWNrcmF0YCBmb3IgYSBtZWNoYW5pc20gdG8gcG90ZW50aWFsbHkKICAgIGltcHJvdmUgeW91ciBwYXJzZXIgcGVyZm9ybWFuY2UuCgogICAgUGFyYW1ldGVyczoKICAgIC0gYGBiYXNlX2V4cHJgYCAtIGV4cHJlc3Npb24gcmVwcmVzZW50aW5nIHRoZSBtb3N0IGJhc2ljIG9wZXJhbmQgdG8KICAgICAgYmUgdXNlZCBpbiB0aGUgZXhwcmVzc2lvbgogICAgLSBgYG9wX2xpc3RgYCAtIGxpc3Qgb2YgdHVwbGVzLCBvbmUgZm9yIGVhY2ggb3BlcmF0b3IgcHJlY2VkZW5jZSBsZXZlbAogICAgICBpbiB0aGUgZXhwcmVzc2lvbiBncmFtbWFyOyBlYWNoIHR1cGxlIGlzIG9mIHRoZSBmb3JtIGBgKG9wX2V4cHIsCiAgICAgIG51bV9vcGVyYW5kcywgcmlnaHRfbGVmdF9hc3NvYywgKG9wdGlvbmFsKXBhcnNlX2FjdGlvbilgYCwgd2hlcmU6CgogICAgICAtIGBgb3BfZXhwcmBgIGlzIHRoZSBweXBhcnNpbmcgZXhwcmVzc2lvbiBmb3IgdGhlIG9wZXJhdG9yOyBtYXkgYWxzbwogICAgICAgIGJlIGEgc3RyaW5nLCB3aGljaCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIExpdGVyYWw7IGlmIGBgbnVtX29wZXJhbmRzYGAKICAgICAgICBpcyAzLCBgYG9wX2V4cHJgYCBpcyBhIHR1cGxlIG9mIHR3byBleHByZXNzaW9ucywgZm9yIHRoZSB0d28KICAgICAgICBvcGVyYXRvcnMgc2VwYXJhdGluZyB0aGUgMyB0ZXJtcwogICAgICAtIGBgbnVtX29wZXJhbmRzYGAgaXMgdGhlIG51bWJlciBvZiB0ZXJtcyBmb3IgdGhpcyBvcGVyYXRvciAobXVzdCBiZSAxLAogICAgICAgIDIsIG9yIDMpCiAgICAgIC0gYGByaWdodF9sZWZ0X2Fzc29jYGAgaXMgdGhlIGluZGljYXRvciB3aGV0aGVyIHRoZSBvcGVyYXRvciBpcyByaWdodAogICAgICAgIG9yIGxlZnQgYXNzb2NpYXRpdmUsIHVzaW5nIHRoZSBweXBhcnNpbmctZGVmaW5lZCBjb25zdGFudHMKICAgICAgICBgYE9wQXNzb2MuUklHSFRgYCBhbmQgYGBPcEFzc29jLkxFRlRgYC4KICAgICAgLSBgYHBhcnNlX2FjdGlvbmBgIGlzIHRoZSBwYXJzZSBhY3Rpb24gdG8gYmUgYXNzb2NpYXRlZCB3aXRoCiAgICAgICAgZXhwcmVzc2lvbnMgbWF0Y2hpbmcgdGhpcyBvcGVyYXRvciBleHByZXNzaW9uICh0aGUgcGFyc2UgYWN0aW9uCiAgICAgICAgdHVwbGUgbWVtYmVyIG1heSBiZSBvbWl0dGVkKTsgaWYgdGhlIHBhcnNlIGFjdGlvbiBpcyBwYXNzZWQKICAgICAgICBhIHR1cGxlIG9yIGxpc3Qgb2YgZnVuY3Rpb25zLCB0aGlzIGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZwogICAgICAgIGBgc2V0X3BhcnNlX2FjdGlvbigqZm4pYGAKICAgICAgICAoOmNsYXNzOmBQYXJzZXJFbGVtZW50LnNldF9wYXJzZV9hY3Rpb25gKQogICAgLSBgYGxwYXJgYCAtIGV4cHJlc3Npb24gZm9yIG1hdGNoaW5nIGxlZnQtcGFyZW50aGVzZXM7IGlmIHBhc3NlZCBhcyBhCiAgICAgIHN0ciwgdGhlbiB3aWxsIGJlIHBhcnNlZCBhcyBTdXBwcmVzcyhscGFyKS4gSWYgbHBhciBpcyBwYXNzZWQgYXMKICAgICAgYW4gZXhwcmVzc2lvbiAoc3VjaCBhcyBgYExpdGVyYWwoJygnKWBgKSwgdGhlbiBpdCB3aWxsIGJlIGtlcHQgaW4KICAgICAgdGhlIHBhcnNlZCByZXN1bHRzLCBhbmQgZ3JvdXBlZCB3aXRoIHRoZW0uIChkZWZhdWx0PSBgYFN1cHByZXNzKCcoJylgYCkKICAgIC0gYGBycGFyYGAgLSBleHByZXNzaW9uIGZvciBtYXRjaGluZyByaWdodC1wYXJlbnRoZXNlczsgaWYgcGFzc2VkIGFzIGEKICAgICAgc3RyLCB0aGVuIHdpbGwgYmUgcGFyc2VkIGFzIFN1cHByZXNzKHJwYXIpLiBJZiBycGFyIGlzIHBhc3NlZCBhcwogICAgICBhbiBleHByZXNzaW9uIChzdWNoIGFzIGBgTGl0ZXJhbCgnKScpYGApLCB0aGVuIGl0IHdpbGwgYmUga2VwdCBpbgogICAgICB0aGUgcGFyc2VkIHJlc3VsdHMsIGFuZCBncm91cGVkIHdpdGggdGhlbS4gKGRlZmF1bHQ9IGBgU3VwcHJlc3MoJyknKWBgKQoKICAgIEV4YW1wbGU6OgoKICAgICAgICAjIHNpbXBsZSBleGFtcGxlIG9mIGZvdXItZnVuY3Rpb24gYXJpdGhtZXRpYyB3aXRoIGludHMgYW5kCiAgICAgICAgIyB2YXJpYWJsZSBuYW1lcwogICAgICAgIGludGVnZXIgPSBweXBhcnNpbmdfY29tbW9uLnNpZ25lZF9pbnRlZ2VyCiAgICAgICAgdmFybmFtZSA9IHB5cGFyc2luZ19jb21tb24uaWRlbnRpZmllcgoKICAgICAgICBhcml0aF9leHByID0gaW5maXhfbm90YXRpb24oaW50ZWdlciB8IHZhcm5hbWUsCiAgICAgICAgICAgIFsKICAgICAgICAgICAgKCctJywgMSwgT3BBc3NvYy5SSUdIVCksCiAgICAgICAgICAgIChvbmVfb2YoJyogLycpLCAyLCBPcEFzc29jLkxFRlQpLAogICAgICAgICAgICAob25lX29mKCcrIC0nKSwgMiwgT3BBc3NvYy5MRUZUKSwKICAgICAgICAgICAgXSkKCiAgICAgICAgYXJpdGhfZXhwci5ydW5fdGVzdHMoJycnCiAgICAgICAgICAgIDUrMyo2CiAgICAgICAgICAgICg1KzMpKjYKICAgICAgICAgICAgLTItLTExCiAgICAgICAgICAgICcnJywgZnVsbF9kdW1wPUZhbHNlKQoKICAgIHByaW50czo6CgogICAgICAgIDUrMyo2CiAgICAgICAgW1s1LCAnKycsIFszLCAnKicsIDZdXV0KCiAgICAgICAgKDUrMykqNgogICAgICAgIFtbWzUsICcrJywgM10sICcqJywgNl1dCgogICAgICAgIC0yLS0xMQogICAgICAgIFtbWyctJywgMl0sICctJywgWyctJywgMTFdXV0KICAgIGMAAAAAAAAAAAAAAAACAAAAAAAAAPMWAAAAlwBlAFoBZABaAmQEZAKEAVoDZANTACkF+htpbmZpeF9ub3RhdGlvbi48bG9jYWxzPi5fRkJUYwQAAAAAAAAAAAAAAAQAAAATAAAA80AAAACXAHwAagAAAAAAAAAAAKABAAAAAAAAAAAAAAAAAAAAAAAAAAB8AXwCpgIAAKsCAAAAAAAAAAABAHwCZwBmAlMAckEAAAApAnILAAAA2gl0cnlfcGFyc2UpBNoEc2VsZtoIaW5zdHJpbmdyqgAAANoJZG9BY3Rpb25zcwQAAAAgICAgciMAAADaCXBhcnNlSW1wbHolaW5maXhfbm90YXRpb24uPGxvY2Fscz4uX0ZCLnBhcnNlSW1wbCgDAABzIwAAAIAA2AwQjEnXDB/SDB+gCKgj0Qwu1Awu0Awu2BMWmAKQN4hOciUAAABOqQFUKQRyGwEAAHIcAQAAch0BAAByLAEAAHJqAAAAciUAAAByIwAAANoDX0ZCciYBAAAnAwAAcygAAACAAIAAgACAAIAA8AICCRvwAAIJG/AAAgkb8AACCRvwAAIJG/AAAgkbciUAAAByLgEAAHoLRm9sbG93ZWRCeT5yQQAAAE7pBAAAAOkDAAAAcmAAAAB6QGlmIG51bXRlcm1zPTMsIG9wRXhwciBtdXN0IGJlIGEgdHVwbGUgb3IgbGlzdCBvZiB0d28gZXhwcmVzc2lvbnN6CXt9e30gdGVybXoHe30gdGVybXIDAAAAejZvcGVyYXRvciBtdXN0IGJlIHVuYXJ5ICgxKSwgYmluYXJ5ICgyKSwgb3IgdGVybmFyeSAoMyl6Mm9wZXJhdG9yIG11c3QgaW5kaWNhdGUgcmlnaHQgb3IgbGVmdCBhc3NvY2lhdGl2aXR5KQJyAwAAAC4pAnJgAAAALikZ2gpGb2xsb3dlZEJ5chsBAAByOAAAAHIUAAAAchkAAAByHAAAAHKkAAAAcowAAAByFQAAAHIWAAAAchcAAADaBXR1cGxlcogAAAByRgAAAHIdAAAAchgAAAByGgEAAHIeAQAAch8BAAByIAAAAHKjAAAAch4AAAByCwAAAHI7AAAA2gdzZXROYW1lKRJyIAEAAHIhAQAAciIBAAByIwEAAHIuAQAAcp0AAADaCGxhc3RFeHBycpcAAADaB29wZXJEZWbaBm9wRXhwctoFYXJpdHnaDnJpZ2h0TGVmdEFzc29j2gJwYdoHb3BFeHByMdoHb3BFeHByMtoJdGVybV9uYW1l2gh0aGlzRXhwcnK6AAAAcxIAAAAgICAgICAgICAgICAgICAgICByIwAAANoOaW5maXhfbm90YXRpb25yPgEAANYCAABz1AQAAIAA8GICAwUb8AADBRvwAAMFG/AAAwUb8AADBRuNavEAAwUb9AADBRvwAAMFG/AKABQhgEOETOUKEYkpjCmAQ90HEZAknQPRBxzUBxzwAAEFHt0PF5gEiX6MfogE3QcRkCSdA9EHHNQHHPAAAQUe3Q8XmASJfox+iAT1BgANF5B0nVjRDCbUDCbwAAMFM606sGS9SNErRdQrRfAAAwUz2BMcnXWgVKhDoVqwJNElNtEfN9QfN9ETN4gIiAjgExygBKBzoQqoVNEgMdETMogI5RYfoAfRFijUFijwADwFHPEAPAUciQqIAYg32C00sHfRLT7AAsARwALULEPRCCmIBpAFkH6gct0LFZBmnWjRCyfUCyfwAAEJP90VItcVNtIVNrB20RU+1BU+iEbYCxCQQYo6iDrdEx2YZqV1rWSgbdETNNQTNPAAAw0SvQO4RrkLvAvAcdI4SNA4SN0WINgUVvEDAhcS9AACFxLwAAIREvAGACAm0QwciEeQV9gYI9cYKtIYKqg3sEfRGDzUGDyISYhJ4Bgh1xgo0hgoqBbRGDDUGDCISeAPEJBFiH+If4p/iH+YUYp/iH+If4h/3RIc0B1V0RJW1BJW0AxW4AsZpSekLLUHtA3QIT7QCz7QCz7dEhzQHVHRElLUElLQDFLlHCOZSZxJ1xwu0hwuqHnRHDnUHDmICNgLGZ1XnFzQCynQCynYDxSYAYp6iHrYHB+YQ6AIqDbRIDHRHDLUHDK1Vbg4wGbIVsRu0TtU0TVV1DVV0RxVkAmRCdgRFpghkhqQGtgTGdATJdggI6ADoEiodtEkNbgI0SRA0SBB1CBBxUXYGCCgRqhY0SQ1sHbUIz7RGD7xAwJFARb0AAJFARbxAAIhFpBJkUnwCAAhJKADoEioeNEkN9EgONQgOL01wBjIJtRBUdE7UtQ7UtEgUpBJkUnYERaYIZIakBrYHB+YQ9gUHJh30RQmqBjRFDGwR9EUO7ho0RRG8QMCHRL0AAIdEuUUGZgopVmod7gY0S9BwEfRL0vIaNEvVtElV9QlV9EaV9EUWNQUWPEFAh1ZAZAJ+PAGAA4cnXecfdANLNANLNgPFJgBinqIeuUXIaAmrSPRFy7UFy7wAAERKd0dIKAWmVucW5BG2BwfmEOgBqQLqGjRIDbRHDfUHDe9JcAGyBjRQFHROlLUOlLRHFKQCZAJ2BEWmCGSGpAa2BMZ0BMl2CAjoAOgSKh20SQ1uAjRJEDRIEHUIEHFRdgYIKBGqFjRJDWwdtQjPtEYPvEDAkUBFvQAAkUBFvEAAiEWkEmQSfAIACEkoAOgSKh40SQ30SA41CA4vTXYGCCgOKhG1CMz0Rgz8QMCPBb0AAI8FvEAAiEWkEmQSfAGABIXmCGSGpAa2BwfmEPYFByYd9EUJqgY0RQxsEfRFDu4aNEURvEDAh0S9AACHRLlFBmYKKBX0RosqHjRGje4J9EaQcBI0RpM0RRN1BRN8QUCHU4BkAnwBgAMDvAABAkv3Q8ZmCKddaVkmG3RDyzUDyzwAAMNL9gQKpAJ1BAqqELQEC/QEC/QEC/gEBnXECrSECqoMtEQLtQQLtAQLtgIEJBpoCjRFirXFTPSFTOwSdEVPtQVPtEIPogI2BMbiAiJCNgEB4hI0QQUgEPYCw6ASnIlAAAAYwQAAAAAAAAAAAAAAAkAAAADAAAA84AEAACHAYcDhwyXAIkDoAAAAAAAAAAAAAAAAAAAAAAAAAAAAIkBZAFkAYUCGQAAAAAAAAAAAKYBAACrAQAAAAAAAAAAAQCIA4gBZgJkAoQIigyIAWYBZAOECH0EiAFmAWQEhAh9BYgBZgFkBYQIfQZ0AwAAAAAAAAAAAAB0BQAAAAAAAAAAAACmAAAAqwAAAAAAAAAAAKADAAAAAAAAAAAAAAAAAAAAAAAAAABkBqYBAACrAQAAAAAAAAAAoAQAAAAAAAAAAAAAAAAAAAAAAAAAAKYAAACrAAAAAAAAAAAApgEAAKsBAAAAAAAAAAB9B3QLAAAAAAAAAAAAAKYAAACrAAAAAAAAAAAAdAsAAAAAAAAAAAAApgAAAKsAAAAAAAAAAACgBgAAAAAAAAAAAAAAAAAAAAAAAAAAfAWmAQAAqwEAAAAAAAAAAHoAAACgBwAAAAAAAAAAAAAAAAAAAAAAAAAAZAemAQAAqwEAAAAAAAAAAH0IdAsAAAAAAAAAAAAApgAAAKsAAAAAAAAAAACgBgAAAAAAAAAAAAAAAAAAAAAAAAAAfASmAQAAqwEAAAAAAAAAAKAHAAAAAAAAAAAAAAAAAAAAAAAAAABkCKYBAACrAQAAAAAAAAAAfQl0CwAAAAAAAAAAAACmAAAAqwAAAAAAAAAAAKAGAAAAAAAAAAAAAAAAAAAAAAAAAAB8BqYBAACrAQAAAAAAAAAAoAcAAAAAAAAAAAAAAAAAAAAAAAAAAGQJpgEAAKsBAAAAAAAAAAB9CnwCclN0EQAAAAAAAAAAAAB0EwAAAAAAAAAAAAB8B6YBAACrAQAAAAAAAAAAfAh6AAAAdAMAAAAAAAAAAAAAfAl0EQAAAAAAAAAAAAB8AKYBAACrAQAAAAAAAAAAegAAAHQTAAAAAAAAAAAAAHwHpgEAAKsBAAAAAAAAAAB6AAAApgEAAKsBAAAAAAAAAAB6AAAAfAp6AAAApgEAAKsBAAAAAAAAAAB9C25cdBEAAAAAAAAAAAAAdBMAAAAAAAAAAAAAfAemAQAAqwEAAAAAAAAAAHQDAAAAAAAAAAAAAHwJdBEAAAAAAAAAAAAAfACmAQAAqwEAAAAAAAAAAHoAAAB0EwAAAAAAAAAAAAB8B6YBAACrAQAAAAAAAAAAegAAAKYBAACrAQAAAAAAAAAAegAAAHQTAAAAAAAAAAAAAHwKpgEAAKsBAAAAAAAAAAB6AAAApgEAAKsBAAAAAAAAAAB9C3wLoAoAAAAAAAAAAAAAAAAAAAAAAAAAAIgDZgFkCoQIpgEAAKsBAAAAAAAAAAABAHwLoAsAAAAAAAAAAAAAAAAAAAAAAAAAAIgMZgFkC4QIpgEAAKsBAAAAAAAAAAABAHwAoAwAAAAAAAAAAAAAAAAAAAAAAAAAAHQaAAAAAAAAAAAAAHQFAAAAAAAAAAAAAKYAAACrAAAAAAAAAAAAegAAAKYBAACrAQAAAAAAAAAAAQB8C6AHAAAAAAAAAAAAAAAAAAAAAAAAAABkDKYBAACrAQAAAAAAAAAAUwApDWGRCQAACiAgICAoREVQUkVDQVRFRCAtIHVzZSBJbmRlbnRlZEJsb2NrIGNsYXNzIGluc3RlYWQpCiAgICBIZWxwZXIgbWV0aG9kIGZvciBkZWZpbmluZyBzcGFjZS1kZWxpbWl0ZWQgaW5kZW50YXRpb24gYmxvY2tzLAogICAgc3VjaCBhcyB0aG9zZSB1c2VkIHRvIGRlZmluZSBibG9jayBzdGF0ZW1lbnRzIGluIFB5dGhvbiBzb3VyY2UgY29kZS4KCiAgICBQYXJhbWV0ZXJzOgoKICAgIC0gYGBibG9ja1N0YXRlbWVudEV4cHJgYCAtIGV4cHJlc3Npb24gZGVmaW5pbmcgc3ludGF4IG9mIHN0YXRlbWVudCB0aGF0CiAgICAgIGlzIHJlcGVhdGVkIHdpdGhpbiB0aGUgaW5kZW50ZWQgYmxvY2sKICAgIC0gYGBpbmRlbnRTdGFja2BgIC0gbGlzdCBjcmVhdGVkIGJ5IGNhbGxlciB0byBtYW5hZ2UgaW5kZW50YXRpb24gc3RhY2sKICAgICAgKG11bHRpcGxlIGBgc3RhdGVtZW50V2l0aEluZGVudGVkQmxvY2tgYCBleHByZXNzaW9ucyB3aXRoaW4gYSBzaW5nbGUKICAgICAgZ3JhbW1hciBzaG91bGQgc2hhcmUgYSBjb21tb24gYGBpbmRlbnRTdGFja2BgKQogICAgLSBgYGluZGVudGBgIC0gYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgYmxvY2sgbXVzdCBiZSBpbmRlbnRlZCBiZXlvbmQKICAgICAgdGhlIGN1cnJlbnQgbGV2ZWw7IHNldCB0byBgYEZhbHNlYGAgZm9yIGJsb2NrIG9mIGxlZnQtbW9zdCBzdGF0ZW1lbnRzCiAgICAgIChkZWZhdWx0PSBgYFRydWVgYCkKCiAgICBBIHZhbGlkIGJsb2NrIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgYGBibG9ja1N0YXRlbWVudGBgLgoKICAgIChOb3RlIHRoYXQgaW5kZW50ZWRCbG9jayB1c2VzIGludGVybmFsIHBhcnNlIGFjdGlvbnMgd2hpY2ggbWFrZSBpdAogICAgaW5jb21wYXRpYmxlIHdpdGggcGFja3JhdCBwYXJzaW5nLikKCiAgICBFeGFtcGxlOjoKCiAgICAgICAgZGF0YSA9ICcnJwogICAgICAgIGRlZiBBKHopOgogICAgICAgICAgQTEKICAgICAgICAgIEIgPSAxMDAKICAgICAgICAgIEcgPSBBMgogICAgICAgICAgQTIKICAgICAgICAgIEEzCiAgICAgICAgQgogICAgICAgIGRlZiBCQihhLGIsYyk6CiAgICAgICAgICBCQjEKICAgICAgICAgIGRlZiBCQkEoKToKICAgICAgICAgICAgYmJhMQogICAgICAgICAgICBiYmEyCiAgICAgICAgICAgIGJiYTMKICAgICAgICBDCiAgICAgICAgRAogICAgICAgIGRlZiBzcGFtKHgseSk6CiAgICAgICAgICAgICBkZWYgZWdncyh6KToKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgJycnCgoKICAgICAgICBpbmRlbnRTdGFjayA9IFsxXQogICAgICAgIHN0bXQgPSBGb3J3YXJkKCkKCiAgICAgICAgaWRlbnRpZmllciA9IFdvcmQoYWxwaGFzLCBhbHBoYW51bXMpCiAgICAgICAgZnVuY0RlY2wgPSAoImRlZiIgKyBpZGVudGlmaWVyICsgR3JvdXAoIigiICsgT3B0KGRlbGltaXRlZExpc3QoaWRlbnRpZmllcikpICsgIikiKSArICI6IikKICAgICAgICBmdW5jX2JvZHkgPSBpbmRlbnRlZEJsb2NrKHN0bXQsIGluZGVudFN0YWNrKQogICAgICAgIGZ1bmNEZWYgPSBHcm91cChmdW5jRGVjbCArIGZ1bmNfYm9keSkKCiAgICAgICAgcnZhbHVlID0gRm9yd2FyZCgpCiAgICAgICAgZnVuY0NhbGwgPSBHcm91cChpZGVudGlmaWVyICsgIigiICsgT3B0KGRlbGltaXRlZExpc3QocnZhbHVlKSkgKyAiKSIpCiAgICAgICAgcnZhbHVlIDw8IChmdW5jQ2FsbCB8IGlkZW50aWZpZXIgfCBXb3JkKG51bXMpKQogICAgICAgIGFzc2lnbm1lbnQgPSBHcm91cChpZGVudGlmaWVyICsgIj0iICsgcnZhbHVlKQogICAgICAgIHN0bXQgPDwgKGZ1bmNEZWYgfCBhc3NpZ25tZW50IHwgaWRlbnRpZmllcikKCiAgICAgICAgbW9kdWxlX2JvZHkgPSBzdG10WzEsIC4uLl0KCiAgICAgICAgcGFyc2VUcmVlID0gbW9kdWxlX2JvZHkucGFyc2VTdHJpbmcoZGF0YSkKICAgICAgICBwYXJzZVRyZWUucHByaW50KCkKCiAgICBwcmludHM6OgoKICAgICAgICBbWydkZWYnLAogICAgICAgICAgJ0EnLAogICAgICAgICAgWycoJywgJ3onLCAnKSddLAogICAgICAgICAgJzonLAogICAgICAgICAgW1snQTEnXSwgW1snQicsICc9JywgJzEwMCddXSwgW1snRycsICc9JywgJ0EyJ11dLCBbJ0EyJ10sIFsnQTMnXV1dLAogICAgICAgICAnQicsCiAgICAgICAgIFsnZGVmJywKICAgICAgICAgICdCQicsCiAgICAgICAgICBbJygnLCAnYScsICdiJywgJ2MnLCAnKSddLAogICAgICAgICAgJzonLAogICAgICAgICAgW1snQkIxJ10sIFtbJ2RlZicsICdCQkEnLCBbJygnLCAnKSddLCAnOicsIFtbJ2JiYTEnXSwgWydiYmEyJ10sIFsnYmJhMyddXV1dXV0sCiAgICAgICAgICdDJywKICAgICAgICAgJ0QnLAogICAgICAgICBbJ2RlZicsCiAgICAgICAgICAnc3BhbScsCiAgICAgICAgICBbJygnLCAneCcsICd5JywgJyknXSwKICAgICAgICAgICc6JywKICAgICAgICAgIFtbWydkZWYnLCAnZWdncycsIFsnKCcsICd6JywgJyknXSwgJzonLCBbWydwYXNzJ11dXV1dXV0KICAgIE5jAAAAAAAAAAAAAAAABAAAABMAAADzIgAAAJUClwCJAGQBGQAAAAAAAAAAAIkBZABkAIUCPAAAAGQAUwCpAk7p/////3JqAAAAKQLaDWJhY2t1cF9zdGFja3PaC2luZGVudFN0YWNrcwIAAACAgHIjAAAA2gtyZXNldF9zdGFja3oiaW5kZW50ZWRCbG9jay48bG9jYWxzPi5yZXNldF9zdGFja9MDAABzGQAAAPiAANgZJqBy1BkqiAuQQZBBkEGJDogOiA5yJQAAAGMDAAAAAAAAAAAAAAAFAAAAEwAAAPPGAAAAlQGXAHwBdAEAAAAAAAAAAAAAfACmAQAAqwEAAAAAAAAAAGsFAAAAAHICZABTAHQDAAAAAAAAAAAAAHwBfACmAgAAqwIAAAAA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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 10
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
actions.cpython-311.pyc
8.33 KB
lrw-r--r--
2023-11-13 22:03:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
common.cpython-311.pyc
14.50 KB
lrw-r--r--
2023-11-13 22:03:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
core.cpython-311.pyc
271.19 KB
lrw-r--r--
2023-11-13 22:03:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
exceptions.cpython-311.pyc
12.69 KB
lrw-r--r--
2023-11-13 22:03:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
helpers.cpython-311.pyc
52.43 KB
lrw-r--r--
2023-11-13 22:03:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
results.cpython-311.pyc
35.52 KB
lrw-r--r--
2023-11-13 22:03:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
testing.cpython-311.pyc
19.11 KB
lrw-r--r--
2023-11-13 22:03:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
unicode.cpython-311.pyc
15.07 KB
lrw-r--r--
2023-11-13 22:03:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
util.cpython-311.pyc
13.99 KB
lrw-r--r--
2023-11-13 22:03:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-311.pyc
8.21 KB
lrw-r--r--
2023-11-13 22:03:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).