REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 55.45 KB
Close
//opt/alt/python39/lib64/python3.9/xml/etree/__pycache__/ElementTree.cpython-39.pyc
Text
Base64
YQ0NCgAAAABYQz9opCIBAOMAAAAAAAAAAAAAAAAAAAAACAAAAEAAAABzigIAAGQAWgBnAGQBogFaAWQCWgJkA2QEbANaA2QDZARsBFoEZANkBGwFWgVkA2QEbAZaBmQDZARsB1oHZANkBGwIWgdkA2QEbAlaCWQFZAZsCm0LWgsBAEcAZAdkCIQAZAhlDIMDWg1kCWQKhABaDkcAZAtkDIQAZAyDAloPaQBmAWQNZA6EAVoQZF5kD2QQhAFaEWRfZBFkEoQBWhJlEloTRwBkE2QUhABkFIMCWhRHAGQVZBaEAGQWgwJaFWUJahZkF2QYhACDAVoXZGBkGWQahAFaGGQbZByEAFoZZB1aGnoMZRtlGoMBWhpXAG4UBABlHJAAef4BAAEAAQBZAG4CMABkHmQfhABaHWQgZCGEAFoeZRllHWUeZCKcA1ofZCNkJIQAWiBkJWQmZCdkKGQpZCpkK2QsnAdaIWUhZSBfIWQtZC6EAFoiZC9kMIQAWiNkMWQyhABaJGQzZDSEAFolZGFkBGQEZDVkNpwDZDdkOIQDWiZHAGQ5ZDqEAGQ6ZQZqJ4MDWihkYmQEZARkNWQ2nANkO2Q8hANaKWQ9ZD6EAFoqZGNkQGRBhAFaK2RkZEJkQ4QBWixkZWREZEWEAVotRwBkRmRHhABkR4MCWi5kZmRIZEmEAVovZGdkSmRLhAFaMGUvWjFkaGRMZE2EAVoyRwBkTmRPhABkT4MCWjNHAGRQZFGEAGRRgwJaNGRpZARkBGRSnAJkU2RUhANaNWUEoDZkVWUEajehAmo4WjlHAGRWZFeEAGRXgwJaOmRYZFmEAFo7ZFpkW4QAWjx6HGUPWj1kA2RcbD5UAGQDZF1sPm0/Wj8BAFcAbhQEAGVAkAJ5egEAAQABAFkAbgwwAGU/ZRFlEoMCAQBkBFMAKWphBgUAAExpZ2h0d2VpZ2h0IFhNTCBzdXBwb3J0IGZvciBQeXRob24uCgogWE1MIGlzIGFuIGluaGVyZW50bHkgaGllcmFyY2hpY2FsIGRhdGEgZm9ybWF0LCBhbmQgdGhlIG1vc3QgbmF0dXJhbCB3YXkgdG8KIHJlcHJlc2VudCBpdCBpcyB3aXRoIGEgdHJlZS4gIFRoaXMgbW9kdWxlIGhhcyB0d28gY2xhc3NlcyBmb3IgdGhpcyBwdXJwb3NlOgoKICAgIDEuIEVsZW1lbnRUcmVlIHJlcHJlc2VudHMgdGhlIHdob2xlIFhNTCBkb2N1bWVudCBhcyBhIHRyZWUgYW5kCgogICAgMi4gRWxlbWVudCByZXByZXNlbnRzIGEgc2luZ2xlIG5vZGUgaW4gdGhpcyB0cmVlLgoKIEludGVyYWN0aW9ucyB3aXRoIHRoZSB3aG9sZSBkb2N1bWVudCAocmVhZGluZyBhbmQgd3JpdGluZyB0by9mcm9tIGZpbGVzKSBhcmUKIHVzdWFsbHkgZG9uZSBvbiB0aGUgRWxlbWVudFRyZWUgbGV2ZWwuICBJbnRlcmFjdGlvbnMgd2l0aCBhIHNpbmdsZSBYTUwgZWxlbWVudAogYW5kIGl0cyBzdWItZWxlbWVudHMgYXJlIGRvbmUgb24gdGhlIEVsZW1lbnQgbGV2ZWwuCgogRWxlbWVudCBpcyBhIGZsZXhpYmxlIGNvbnRhaW5lciBvYmplY3QgZGVzaWduZWQgdG8gc3RvcmUgaGllcmFyY2hpY2FsIGRhdGEKIHN0cnVjdHVyZXMgaW4gbWVtb3J5LiBJdCBjYW4gYmUgZGVzY3JpYmVkIGFzIGEgY3Jvc3MgYmV0d2VlbiBhIGxpc3QgYW5kIGEKIGRpY3Rpb25hcnkuICBFYWNoIEVsZW1lbnQgaGFzIGEgbnVtYmVyIG9mIHByb3BlcnRpZXMgYXNzb2NpYXRlZCB3aXRoIGl0OgoKICAgICd0YWcnIC0gYSBzdHJpbmcgY29udGFpbmluZyB0aGUgZWxlbWVudCdzIG5hbWUuCgogICAgJ2F0dHJpYnV0ZXMnIC0gYSBQeXRob24gZGljdGlvbmFyeSBzdG9yaW5nIHRoZSBlbGVtZW50J3MgYXR0cmlidXRlcy4KCiAgICAndGV4dCcgLSBhIHN0cmluZyBjb250YWluaW5nIHRoZSBlbGVtZW50J3MgdGV4dCBjb250ZW50LgoKICAgICd0YWlsJyAtIGFuIG9wdGlvbmFsIHN0cmluZyBjb250YWluaW5nIHRleHQgYWZ0ZXIgdGhlIGVsZW1lbnQncyBlbmQgdGFnLgoKICAgIEFuZCBhIG51bWJlciBvZiBjaGlsZCBlbGVtZW50cyBzdG9yZWQgaW4gYSBQeXRob24gc2VxdWVuY2UuCgogVG8gY3JlYXRlIGFuIGVsZW1lbnQgaW5zdGFuY2UsIHVzZSB0aGUgRWxlbWVudCBjb25zdHJ1Y3RvciwKIG9yIHRoZSBTdWJFbGVtZW50IGZhY3RvcnkgZnVuY3Rpb24uCgogWW91IGNhbiBhbHNvIHVzZSB0aGUgRWxlbWVudFRyZWUgY2xhc3MgdG8gd3JhcCBhbiBlbGVtZW50IHN0cnVjdHVyZQogYW5kIGNvbnZlcnQgaXQgdG8gYW5kIGZyb20gWE1MLgoKKRraB0NvbW1lbnTaBGR1bXDaB0VsZW1lbnTaC0VsZW1lbnRUcmVl2gpmcm9tc3RyaW5n2g5mcm9tc3RyaW5nbGlzdNoGaW5kZW502glpc2VsZW1lbnTaCWl0ZXJwYXJzZdoFcGFyc2XaClBhcnNlRXJyb3LaAlBJ2hVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb27aBVFOYW1l2gpTdWJFbGVtZW502gh0b3N0cmluZ9oMdG9zdHJpbmdsaXN02gtUcmVlQnVpbGRlctoHVkVSU0lPTtoDWE1M2gVYTUxJRNoJWE1MUGFyc2Vy2g1YTUxQdWxsUGFyc2Vy2hJyZWdpc3Rlcl9uYW1lc3BhY2XaDGNhbm9uaWNhbGl6ZdoQQzE0TldyaXRlclRhcmdldHoFMS4zLjDpAAAAAE7pAQAAACkB2gtFbGVtZW50UGF0aGMAAAAAAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoCZAFaA2QCUwApA3ILAAAAeuxBbiBlcnJvciB3aGVuIHBhcnNpbmcgYW4gWE1MIGRvY3VtZW50LgoKICAgIEluIGFkZGl0aW9uIHRvIGl0cyBleGNlcHRpb24gdmFsdWUsIGEgUGFyc2VFcnJvciBjb250YWlucwogICAgdHdvIGV4dHJhIGF0dHJpYnV0ZXM6CiAgICAgICAgJ2NvZGUnICAgICAtIHRoZSBzcGVjaWZpYyBleGNlcHRpb24gY29kZQogICAgICAgICdwb3NpdGlvbicgLSB0aGUgbGluZSBhbmQgY29sdW1uIG9mIHRoZSBlcnJvcgoKICAgIE4pBNoIX19uYW1lX1/aCl9fbW9kdWxlX1/aDF9fcXVhbG5hbWVfX9oHX19kb2NfX6kAciIAAAByIgAAAPo6L29wdC9hbHQvcHl0aG9uMzkvbGliNjQvcHl0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WhBkHGQdhABaEWQDUwApIHIaAAAAYdgDAAAKICAgIENhbm9uaWNhbGl6YXRpb24gd3JpdGVyIHRhcmdldCBmb3IgdGhlIFhNTFBhcnNlci4KCiAgICBTZXJpYWxpc2VzIHBhcnNlIGV2ZW50cyB0byBYTUwgQzE0TiAyLjAuCgogICAgVGhlICp3cml0ZSogZnVuY3Rpb24gaXMgdXNlZCBmb3Igd3JpdGluZyBvdXQgdGhlIHJlc3VsdGluZyBkYXRhIHN0cmVhbQogICAgYXMgdGV4dCAobm90IGJ5dGVzKS4gIFRvIHdyaXRlIHRvIGEgZmlsZSwgb3BlbiBpdCBpbiB0ZXh0IG1vZGUgd2l0aCBlbmNvZGluZwogICAgInV0Zi04IiBhbmQgcGFzcyBpdHMgYGAud3JpdGVgYCBtZXRob2QuCgogICAgQ29uZmlndXJhdGlvbiBvcHRpb25zOgoKICAgIC0gKndpdGhfY29tbWVudHMqOiBzZXQgdG8gdHJ1ZSB0byBpbmNsdWRlIGNvbW1lbnRzCiAgICAtICpzdHJpcF90ZXh0Kjogc2V0IHRvIHRydWUgdG8gc3RyaXAgd2hpdGVzcGFjZSBiZWZvcmUgYW5kIGFmdGVyIHRleHQgY29udGVudAogICAgLSAqcmV3cml0ZV9wcmVmaXhlcyo6IHNldCB0byB0cnVlIHRvIHJlcGxhY2UgbmFtZXNwYWNlIHByZWZpeGVzIGJ5ICJue251bWJlcn0iCiAgICAtICpxbmFtZV9hd2FyZV90YWdzKjogYSBzZXQgb2YgcW5hbWUgYXdhcmUgdGFnIG5hbWVzIGluIHdoaWNoIHByZWZpeGVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIGJlIHJlcGxhY2VkIGluIHRleHQgY29udGVudAogICAgLSAqcW5hbWVfYXdhcmVfYXR0cnMqOiBhIHNldCBvZiBxbmFtZSBhd2FyZSBhdHRyaWJ1dGUgbmFtZXMgaW4gd2hpY2ggcHJlZml4ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIGJlIHJlcGxhY2VkIGluIHRleHQgY29udGVudAogICAgLSAqZXhjbHVkZV9hdHRycyo6IGEgc2V0IG9mIGF0dHJpYnV0ZSBu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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 15
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
cElementTree.cpython-39.opt-1.pyc
188 B
lrw-r--r--
2025-06-19 12:11:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cElementTree.cpython-39.opt-2.pyc
188 B
lrw-r--r--
2025-06-19 12:11:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cElementTree.cpython-39.pyc
188 B
lrw-r--r--
2025-06-19 12:11:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementInclude.cpython-39.opt-1.pyc
2.39 KB
lrw-r--r--
2025-06-19 12:11:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementInclude.cpython-39.opt-2.pyc
2.39 KB
lrw-r--r--
2025-06-19 12:11:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementInclude.cpython-39.pyc
2.39 KB
lrw-r--r--
2025-06-19 12:11:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementPath.cpython-39.opt-1.pyc
8.23 KB
lrw-r--r--
2025-06-19 12:11:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementPath.cpython-39.opt-2.pyc
8.23 KB
lrw-r--r--
2025-06-19 12:11:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementPath.cpython-39.pyc
8.23 KB
lrw-r--r--
2025-06-19 12:11:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementTree.cpython-39.opt-1.pyc
55.17 KB
lrw-r--r--
2025-06-19 12:11:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementTree.cpython-39.opt-2.pyc
36.76 KB
lrw-r--r--
2025-06-19 12:11:17
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementTree.cpython-39.pyc
55.45 KB
lrw-r--r--
2025-06-19 12:11:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-39.opt-1.pyc
146 B
lrw-r--r--
2025-06-19 12:11:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-39.opt-2.pyc
146 B
lrw-r--r--
2025-06-19 12:11:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-39.pyc
146 B
lrw-r--r--
2025-06-19 12:11:15
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).