REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 43.65 KB
Close
/opt/alt/python310/lib64/python3.10/logging/__pycache__/handlers.cpython-310.pyc
Text
Base64
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UwApC9oLU01UUEhhbmRsZXJ6SwogICAgQSBoYW5kbGVyIGNsYXNzIHdoaWNoIHNlbmRzIGFuIFNNVFAgZW1haWwgZm9yIGVhY2ggbG9nZ2luZyBldmVudC4KICAgIE7nAAAAAAAAFEBjCAAAAAAAAAAAAAAACAAAAAQAAABDAAAAc4oAAAB0AGoBoAJ8AKEBAQB0A3wBdAR0BWYCgwJyFHwBXAJ8AF8GfABfB24HfAFkAQICfABfBnwAXwd0A3wFdAR0BWYCgwJyKXwFXAJ8AF8IfABfCW4DZAF8AF8IfAJ8AF8KdAN8A3QLgwJyN3wDZwF9A3wDfABfDHwEfABfDXwGfABfDnwHfABfD2QBUwApAmF4AwAACiAgICAgICAgSW5pdGlhbGl6ZSB0aGUgaGFuZGxlci4KCiAgICAgICAgSW5pdGlhbGl6ZSB0aGUgaW5zdGFuY2Ugd2l0aCB0aGUgZnJvbSBhbmQgdG8gYWRkcmVzc2VzIGFuZCBzdWJqZWN0CiAgICAgICAgbGluZSBvZiB0aGUgZW1haWwuIFRvIHNwZWNpZnkgYSBub24tc3RhbmRhcmQgU01UUCBwb3J0LCB1c2UgdGhlCiAgICAgICAgKGhvc3QsIHBvcnQpIHR1cGxlIGZvcm1hdCBmb3IgdGhlIG1haWxob3N0IGFyZ3VtZW50LiBUbyBzcGVjaWZ5CiAgICAgICAgYXV0aGVudGljYXRpb24gY3JlZGVudGlhbHMsIHN1cHBseSBhICh1c2VybmFtZSwgcGFzc3dvcmQpIHR1cGxlCiAgICAgICAgZm9yIHRoZSBjcmVkZW50aWFscyBhcmd1bWVudC4gVG8gc3BlY2lmeSB0aGUgdXNlIG9mIGEgc2VjdXJlCiAgICAgICAgcHJvdG9jb2wgKFRMUyksIHBhc3MgaW4gYSB0dXBsZSBmb3IgdGhlIHNlY3VyZSBhcmd1bWVudC4gVGhpcyB3aWxsCiAgICAgICAgb25seSBiZSB1c2VkIHdoZW4gYXV0aGVudGljYXRpb24gY3JlZGVudGlhbHMgYXJlIHN1cHBsaWVkLiBUaGUgdHVwbGUKICAgICAgICB3aWxsIGJlIGVpdGhlciBhbiBlbXB0eSB0dXBsZSwgb3IgYSBzaW5nbGUtdmFsdWUgdHVwbGUgd2l0aCB0aGUgbmFt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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 9
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
config.cpython-310.opt-1.pyc
22.63 KB
lrw-r--r--
2026-01-09 14:06:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
config.cpython-310.opt-2.pyc
18.75 KB
lrw-r--r--
2026-01-09 14:06:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
config.cpython-310.pyc
22.66 KB
lrw-r--r--
2026-01-09 14:06:34
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.cpython-310.opt-1.pyc
43.65 KB
lrw-r--r--
2026-01-09 14:06:34
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.cpython-310.opt-2.pyc
25.54 KB
lrw-r--r--
2026-01-09 14:06:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.cpython-310.pyc
43.65 KB
lrw-r--r--
2026-01-09 14:06:34
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-310.opt-1.pyc
65.32 KB
lrw-r--r--
2026-01-09 14:06:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-310.opt-2.pyc
37.01 KB
lrw-r--r--
2026-01-09 14:06:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-310.pyc
65.34 KB
lrw-r--r--
2026-01-09 14:06:34
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).