REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 64.93 KB
Close
/opt/alt/python37/lib/python3.7/site-packages/pip/_vendor/__pycache__/ipaddress.cpython-37.pyc
Text
Base64
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ODo6MS8xMjgnKSwKICAgICAgICAgICAgICAgICBpcF9uZXR3b3JrKCcyMDAxOmRiODo6Mi8xMjcnKSwKICAgICAgICAgICAgICAgICBpcF9uZXR3b3JrKCcyMDAxOmRiODo6NC8xMjYnKSwKICAgICAgICAgICAgICAgICBpcF9uZXR3b3JrKCcyMDAxOmRiODo6OC8xMjUnKSwKICAgICAgICAgICAgICAgICAuLi4KICAgICAgICAgICAgICAgICBpcF9uZXR3b3JrKCcyMDAxOmRiODo4MDAwOjovMzMnKV0KCiAgICAgICAgQXJnczoKICAgICAgICAgICAgb3RoZXI6IEFuIElQdjROZXR3b3JrIG9yIElQdjZOZXR3b3JrIG9iamVjdCBvZiB0aGUgc2FtZSB0eXBlLgoKICAgICAgICBSZXR1cm5zOgogICAgICAgICAgICBBbiBpdGVyYXRvciBvZiB0aGUgSVB2KDR8NilOZXR3b3JrIG9iamVjdHMgd2hpY2ggaXMgc2VsZgogICAgICAgICAgICBtaW51cyBvdGhlci4KCiAgICAgICAgUmFpc2VzOgogICAgICAgICAgICBUeXBlRXJyb3I6IElmIHNlbGYgYW5kIG90aGVyIGFyZSBvZiBkaWZmZXJpbmcgYWRkcmVzcwogICAgICAgICAgICAgIHZlcnNpb25zLCBvciBpZiBvdGhlciBpcyBub3QgYSBuZXR3b3JrIG9iamVjdC4KICAgICAgICAgICAgVmFsdWVFcnJvcjogSWYgb3RoZXIgaXMgbm90IGNvbXBsZXRlbHkgY29udGFpbmVkIGJ5IHNlbGYuCgogICAgICAgIHolJXMgYW5kICVzIGFyZSBub3Qgb2YgdGhlIHNhbWUgdmVyc2lvbnoaJXMgaXMgbm90IGEgbmV0d29yayBvYmplY3R6FiVzIG5vdCBjb250YWluZWQgaW4gJXNOegUlcy8lc3ozRXJyb3IgcGVyZm9ybWluZyBleGNsdXNpb246IHMxOiAlcyBzMjogJXMgb3RoZXI6ICVzKQtyeAAAAHJhAAAAcg8AAAByggAAANoJc3VibmV0X29mcj8AAAByqAAAAHJ7AAAAcpQAAABydAAAAHIOAAAAKQRyKQAAAHIqAAAA2gJzMdoCczJyAwAAAHIDAAAAcgUA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awJyDnwAUwB8AmQCawlyQnwCfABqAGsEcih0AWQDgwGCAXwBZARrA3I4dAFkBYMBggF8AGoAfAIYAH0BfABqAnwBGAB9A3wDZAFrAHJmdAFkBnwAagJ8AWYCFgCDAYIBfACgA3QEfABqBYMBdAR8AGoGgwF8AT4AQAB8A2YCoQFTACkHYcsCAABUaGUgc3VwZXJuZXQgY29udGFpbmluZyB0aGUgY3VycmVudCBuZXR3b3JrLgoKICAgICAgICBBcmdzOgogICAgICAgICAgICBwcmVmaXhsZW5fZGlmZjogQW4gaW50ZWdlciwgdGhlIGFtb3VudCB0aGUgcHJlZml4IGxlbmd0aCBvZgogICAgICAgICAgICAgIHRoZSBuZXR3b3JrIHNob3VsZCBiZSBkZWNyZWFzZWQgYnkuICBGb3IgZXhhbXBsZSwgZ2l2ZW4gYQogICAgICAgICAgICAgIC8yNCBuZXR3b3JrIGFuZCBhIHByZWZpeGxlbl9kaWZmIG9mIDMsIGEgc3VwZXJuZXQgd2l0aCBhCiAgICAgICAgICAgICAgLzIxIG5ldG1hc2sgaXMgcmV0dXJuZWQuCgogICAgICAgIFJldHVybnM6CiAgICAgICAgICAgIEFuIElQdjQgbmV0d29yayBvYmplY3QuCgogICAgICAgIFJhaXNlczoKICAgICAgICAgICAgVmFsdWVFcnJvcjogSWYgc2VsZi5wcmVmaXhsZW4gLSBwcmVmaXhsZW5fZGlmZiA8IDAuIEkuZS4sIHlvdSBoYXZlCiAgICAgICAgICAgICAgYSBuZWdhdGl2ZSBwcmVmaXggbGVuZ3RoLgogICAgICAgICAgICAgICAgT1IKICAgICAgICAgICAgSWYgcHJlZml4bGVuX2RpZmYgYW5kIG5ld19wcmVmaXggYXJlIGJvdGggc2V0IG9yIG5ld19wcmVmaXggaXMgYQogICAgICAgICAgICAgIGxhcmdlciBudW1iZXIgdGhhbiB0aGUgY3VycmVudCBwcmVmaXggKGxhcmdlciBudW1iZXIgbWVhbnMgYQogICAgICAgICAgICAgIHNtYWxsZXIgbmV0d29yaykKCiAgICAgICAgcgEAAABOehpuZXcgcHJlZml4IG11c3QgYmUgc2hvcnRlcnIjAAAAeihjYW5ub3Qg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ICAgICAgICAgICcxOTIuMC4yLjAvMjQnCiAgICAgICAgICAgICAgJzE5Mi4wLjIuMC8yNTUuMjU1LjI1NS4wJwogICAgICAgICAgICAgICcxOTIuMC4wLjIvMC4wLjAuMjU1JwogICAgICAgICAgICAgIGFyZSBhbGwgZnVuY3Rpb25hbGx5IHRoZSBzYW1lIGluIElQdjQuIFNpbWlsYXJseSwKICAgICAgICAgICAgICAnMTkyLjAuMi4xJwogICAgICAgICAgICAgICcxOTIuMC4yLjEvMjU1LjI1NS4yNTUuMjU1JwogICAgICAgICAgICAgICcxOTIuMC4yLjEvMzInCiAgICAgICAgICAgICAgYXJlIGFsc28gZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQuIFRoYXQgaXMgdG8gc2F5LCBmYWlsaW5nIHRvCiAgICAgICAgICAgICAgcHJvdmlkZSBhIHN1Ym5ldG1hc2sgd2lsbCBjcmVhdGUgYW4gb2JqZWN0IHdpdGggYSBtYXNrIG9mIC8zMi4KCiAgICAgICAgICAgICAgSWYgdGhlIG1hc2sgKHBvcnRpb24gYWZ0ZXIgdGhlIC8gaW4gdGhlIGFyZ3VtZW50KSBpcyBnaXZlbiBpbgogICAgICAgICAgICAgIGRvdHRlZCBxdWFkIGZvcm0sIGl0IGlzIHRyZWF0ZWQgYXMgYSBuZXRtYXNrIGlmIGl0IHN0YXJ0cyB3aXRoIGEKICAgICAgICAgICAgICBub24temVybyBmaWVsZCAoZS5nLiAvMjU1LjAuMC4wID09IC84KSBhbmQgYXMgYSBob3N0bWFzayBpZiBpdAogICAgICAgICAgICAgIHN0YXJ0cyB3aXRoIGEgemVybyBmaWVsZCAoZS5nLiAwLjI1NS4yNTUuMjU1ID09IC84KSwgd2l0aCB0aGUKICAgICAgICAgICAgICBzaW5nbGUgZXhjZXB0aW9uIG9mIGFuIGFsbC16ZXJvIG1hc2sgd2hpY2ggaXMgdHJlYXRlZCBhcyBhCiAgICAgICAgICAgICAgbmV0bWFzayA9PSAvMC4gSWYgbm8gbWFzayBpcyBnaXZlbiwgYSBkZWZhdWx0IG9mIC8zMiBpcyB1c2VkLgoKICAgICAgICAgICAgICBBZGRpdGlvbmFsbHksIGFuIGludGVnZXIgY2FuIGJlIHBhc3NlZCwgc28KICAgICAgICAgICAgICBJUHY0TmV0d29yaygnMTkyLjAuMi4xJykgPT0gSVB2NE5ldHdvcmsoMzIyMTIyNTk4NSkKICAgICAgICAgICAgICBvciwgbW9yZSBnZW5lcmFsbHkKICAgICAgICAgICAgICBJUHY0SW50ZXJmYWNlKGludChJUHY0SW50ZXJmYWNlKCcxOTIuMC4yLjEnKSkpID09CiAgICAgICAgICAgICAgICBJUHY0SW50ZXJmYWNlKCcxOTIuMC4yLjEnKQoKICAgICAgICBSYWlzZXM6CiAgICAgICAgICAgIEFkZHJlc3NWYWx1ZUVycm9yOiBJZiBpcGFkZHJlc3MgaXNuJ3QgYSB2YWxpZCBJUHY0IGFkZHJlc3MuCiAgICAgICAgICAgIE5ldG1hc2tWYWx1ZUVycm9yOiBJZiB0aGUgbmV0bWFzayBpc24ndCB2YWxpZCBmb3IKICAgICAgICAgICAgICBhbiBJUHY0IGFkZHJlc3MuCiAgICAgICAgICAgIFZhbHVlRXJyb3I6IElmIHN0cmljdCBpcyBUcnVlIGFuZCBhIG5ldHdvcmsgYWRkcmVzcyBpcyBub3QKICAgICAgICAgICAgICBzdXBwbGllZC4KCiAgICAgICAgTnIjAAAAcgEAAAB6FCVzIGhhcyBob3N0IGJpdHMgc2V0chYAAAApE3KCAAAAcrYAAAByDwAAAHIQAAAAcj4AAAByPAAAAHJ7AAAAcucAAAByYwAAAHLAAAAAcnkAAAByCQEAAHJPAAAAcqIAAAByPwAAAHJRAAAAcqUAAAByvAAAAHK7AAAAKQZyKQAAAHJAAAAAckQAAABy5gAAAHL/AAAAclAAAAByAwAAAHIDAAAAcgUAAABytgAAACoGAABzQgAAAAAlDAMOAQoBBAEQAgQCCgEMAQoDBgEOARIBCgESAQQBDgIEARABBAQIARQCDAEKAgYBEgIGARYBCgEMAQoBEAISAXoUSVB2NE5ldHdvcmsuX19pbml0X19jAQAAAAAAAAABAAAAAwAAAEMAAABzJgAAAHwAagB0AWQBgwFrBm8afABqAnQBZAGDAWsGDABvJHwAagMMAFMAKQJ6uVRlc3QgaWYgdGhpcyBhZGRyZXNzIGlzIGFsbG9jYXRlZCBmb3IgcHVibGljIG5ldHdvcmtzLgoKICAgICAgICBSZXR1cm5zOgogICAgICAgICAgICBBIGJvb2xlYW4sIFRydWUgaWYgdGhlIGFkZHJlc3MgaXMgbm90IHJlc2VydmVkIHBlcgogICAgICAgICAgICBpYW5hLWlwdjQtc3BlY2lhbC1yZWdpc3RyeS4KCiAgICAgICAgeg0xMDAuNjQuMC4wLzEwKQRyewAAAHJCAAAAcnIAAABy2AAAACkBcikAAAByAwAAAHIDAAAAcgUAAABy2QAAAH8GAABzBgAAAAAJDgEQAXoVSVB2NE5ldHdvcmsuaXNfZ2xvYmFsTikBVCkJcjQAAAByNQAAAHI2AAAAcjoAAAByPAAAAHK3AAAAcrYAAAByqgAAAHLZAAAAcgMAAAByAwAAAHIDAAAAcgUAAAByQgAAABsGAABzCAAAAAgLBAIEAgpVckIAAABjAAAAAAAAAAAAAAAADwAAAEAAAABzlAAAAGUAWgFkAFoCZQNkAYMBWgRlA2QCgwFaBWUDZAODAVoGZQNkBIMBWgdlA2QFgwFlA2QGgwFlA2QCgwFlA2QBgwFlA2QHgwFlA2QIgwFlA2QJgwFlA2QKgwFlA2QLgwFlA2QMgwFlA2QNgwFlA2QOgwFlA2QPgwFlA2QQgwFnDloIZQNkD4MBWgllCmQRgwFaC2QSUwApE9oOX0lQdjRDb25zdGFudHN6DjE2OS4yNTQuMC4wLzE2egsxMjcuMC4wLjAvOHoLMjI0LjAuMC4wLzR6DTEwMC42NC4wLjAvMTB6CTAuMC4wLjAvOHoKMTAuMC4wLjAvOHoNMTcyLjE2LjAuMC8xMnoMMTkyLjAuMC4wLzI5eg4xOTIuMC4wLjE3MC8zMXoMMTkyLjAuMi4wLzI0eg4xOTIuMTY4LjAuMC8xNnoNMTk4LjE4LjAuMC8xNXoPMTk4LjUxLjEwMC4wLzI0eg4yMDMuMC4xMTMuMC8yNHoLMjQwLjAuMC4wLzR6EjI1NS4yNTUuMjU1LjI1NS8zMnoHMC4wLjAuME4pDHI0AAAAcjUAAAByNgAAAHJCAAAAcggBAAByBwEAAHIFAQAAcgQBAAByAwEAAHIBAQAAcjwAAAByBgEAAHIDAAAAcgMAAAByAwAAAHIFAAAAcgwBAACNBgAAcygAAAAIAggCCAIIAggDBgEGAQYBBgEGAQYBBgEGAQYBBgEGAQYBBgEKAwgCcgwBAABjAAAAAAAAAAAAAAAABAAAAEAAAABzngAAAGUAWgFkAFoCZAFaA2QCWgRkA1oFZARlBhMAZAUYAFoHZAZaCGUJZAeDAVoKZQZaC2kAWgxlDWQIZAmEAIMBWg5lDWQKZAuEAIMBWg9lDWQMZA2EAIMBWhBlDWQOZA+EAIMBWhFlDWQbZBFkEoQBgwFaEmQTZBSEAFoTZBVkFoQAWhRlFWQXZBiEAIMBWhZlFWQZZBqEAIMBWhdkEFMAKRzaB19CYXNlVjZ6eUJhc2UgSVB2NiBvYmplY3QuCgogICAgVGhlIGZvbGxvd2luZyBtZXRob2RzIGFyZSB1c2VkIGJ5IElQdjYgb2JqZWN0cyBpbiBib3RoIHNpbmdsZSBJUAogICAgYWRkcmVzc2VzIGFuZCBuZXR3b3Jrcy4KCiAgICByAwAAAHJfAAAAchYAAAByIwAAAHINAAAA2hYwMTIzNDU2Nzg5QUJDREVGYWJjZGVmYwIAAAAAAAAABAAAAAQAAABDAAAAc0oAAAB8AXwAagBrB3JAdAF8AXQCgwJyGnwBfQJuCnwAoAN8AaEBfQJ0BHwAoAV8AqEBgwF9A3wDfAJmAnwAagB8ATwAfABqAHwBGQBTACkBYQ8BAABNYWtlIGEgKG5ldG1hc2ssIHByZWZpeF9sZW4pIHR1cGxlIGZyb20gdGhlIGdpdmVuIGFyZ3VtZW50LgoKICAgICAgICBBcmd1bWVudCBjYW4gYmU6CiAgICAgICAgLSBhbiBpbnRlZ2VyICh0aGUgcHJlZml4IGxlbmd0aCkKICAgICAgICAtIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgcHJlZml4IGxlbmd0aCAoZS5nLiAiMjQiKQogICAgICAgIC0gYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBwcmVmaXggbmV0bWFzayAoZS5nLiAiMjU1LjI1NS4yNTUuMCIpCiAgICAgICAgKQZy5QAAAHIPAAAAchAAAABypAAAAHI9AAAAcpUAAAApBHKTAAAAcuYAAABylAAAAHLAAAAAcgMAAAByAwAAAHIFAAAAcucAAADEBgAAcw4AAAAACQoBCgEGAgoBDgEOAXoVX0Jhc2VWNi5fbWFrZV9uZXRtYXNrYwIAAAAAAAAADgAAAAoAAABDAAAAc+ICAAB8AXMMdABkAYMBggF8AaABZAKhAX0CZAN9A3QCfAKDAXwDawByOmQEfAN8AWYCFgB9BHQAfASDAYIBZAV8AmQGGQBrBnK0eRJ0A3wCoAShAIMBagV9BVcAbjIEAHQAawpyigEAfQYBAHoUdABkB3wGfAFmAhYAgwGCAVcAZAhkCH0GfgZYAFkAbgJYAHwCoAZkCXwFZAo/AGQLQAAWAKEBAQB8AqAGZAl8BWQLQAAWAKEBAQB8AGoHZAwXAH0HdAJ8AoMBfAdrBHLiZA18B2QMGAB8AWYCFgB9BHQAfASDAYIBZAh9CHhAdAhkDHQCfAKDAWQMGACDAkQAXSp9CXwCfAkZAHP6fAhkCGsJkAFyIGQOfAEWAH0EdAB8BIMBggF8CX0IcfpXAHwIZAhrCZABcsp8CH0KdAJ8AoMBfAgYAGQMGAB9C3wCZA8ZAJABc258CmQMOAB9CnwKkAFybmQQfQR0AHwEfAEWAIMBggF8AmQGGQCQAXOWfAtkDDgAfQt8C5ABcpZkEX0EdAB8BHwBFgCDAYIBfABqB3wKfAsXABgAfQx8DGQMawCQAnI0ZBJ9BHQAfAR8AGoHZAwYAHwBZgIWAIMBggFuanQCfAKDAXwAagdrA5ABcvBkE30EdAB8BHwAagd8AWYCFgCDAYIBfAJkDxkAkAJzCmQQfQR0AHwEfAEWAIMBggF8AmQGGQCQAnMkZBF9BHQAfAR8ARYAgwGCAXQCfAKDAX0KZA99C2QPfQx5dGQPfQ14LHQJfAqDAUQAXSB9CXwNZApLAH0NfA18AKAKfAJ8CRkAoQFPAH0NkAJxRFcAfA1kCnwMFABLAH0NeDB0CXwLCwBkD4MCRABdIH0JfA1kCksAfQ18DXwAoAp8AnwJGQChAU8AfQ2QAnGCVwB8DVMABAB0C2sKkAJy3AEAfQYBAHoUdABkB3wGfAFmAhYAgwGCAVcAZAhkCH0GfgZYAFkAbgJYAGQIUwApFHr5VHVybiBhbiBJUHY2IGlwX3N0ciBpbnRvIGFuIGludGVnZXIuCgogICAgICAgIEFyZ3M6CiAgICAgICAgICAgIGlwX3N0cjogQSBzdHJpbmcsIHRoZSBJUHY2IGlwX3N0ci4KCiAgICAgICAgUmV0dXJuczoKICAgICAgICAgICAg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ZWZpeC9uZXRtYXNrLgogICAgICAgICAgICAgICcyMDAxOmRiODo6LzEyOCcKICAgICAgICAgICAgICAnMjAwMTpkYjg6MDAwMDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDAvMTI4JwogICAgICAgICAgICAgICcyMDAxOmRiODo6JwogICAgICAgICAgICAgIGFyZSBhbGwgZnVuY3Rpb25hbGx5IHRoZSBzYW1lIGluIElQdjYuICBUaGF0IGlzIHRvIHNheSwKICAgICAgICAgICAgICBmYWlsaW5nIHRvIHByb3ZpZGUgYSBzdWJuZXRtYXNrIHdpbGwgY3JlYXRlIGFuIG9iamVjdCB3aXRoCiAgICAgICAgICAgICAgYSBtYXNrIG9mIC8xMjguCgogICAgICAgICAgICAgIEFkZGl0aW9uYWxseSwgYW4gaW50ZWdlciBjYW4gYmUgcGFzc2VkLCBzbwogICAgICAgICAgICAgIElQdjZOZXR3b3JrKCcyMDAxOmRiODo6JykgPT0KICAgICAgICAgICAgICAgIElQdjZOZXR3b3JrKDQyNTQwNzY2NDExMjgyNTkyODU2OTAzOTg0OTUxNjUzODI2NTYwKQogICAgICAgICAgICAgIG9yLCBtb3JlIGdlbmVyYWxseQogICAgICAgICAgICAgIElQdjZOZXR3b3JrKGludChJUHY2TmV0d29yaygnMjAwMTpkYjg6OicpKSkgPT0KICAgICAgICAgICAgICAgIElQdjZOZXR3b3JrKCcyMDAxOmRiODo6JykKCiAgICAgICAgICAgIHN0cmljdDogQSBib29sZWFuLiBJZiB0cnVlLCBlbnN1cmUgdGhhdCB3ZSBoYXZlIGJlZW4gcGFzc2VkCiAgICAgICAgICAgICAgQSB0cnVlIG5ldHdvcmsgYWRkcmVzcywgZWcsIDIwMDE6ZGI4OjoxMDAwLzEyNCBhbmQgbm90IGFuCiAgICAgICAgICAgICAgSVAgYWRkcmVzcyBvbiBhIG5ldHdvcmssIGVnLCAyMDAxOmRiODo6MS8xMjQuCgogICAgICAgIFJhaXNlczoKICAgICAgICAgICAgQWRkcmVzc1ZhbHVlRXJyb3I6IElmIGFkZHJlc3MgaXNuJ3QgYSB2YWxpZCBJUHY2IGFkZHJlc3Mu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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 8
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
appdirs.cpython-37.pyc
21.05 KB
lrw-r--r--
2023-11-13 21:31:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
contextlib2.cpython-37.pyc
15.04 KB
lrw-r--r--
2023-11-13 21:31:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
distro.cpython-37.pyc
35.81 KB
lrw-r--r--
2023-11-13 21:31:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ipaddress.cpython-37.pyc
64.93 KB
lrw-r--r--
2023-11-13 21:31:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
pyparsing.cpython-37.pyc
236.85 KB
lrw-r--r--
2023-11-13 21:31:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
retrying.cpython-37.pyc
7.93 KB
lrw-r--r--
2023-11-13 21:31:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
six.cpython-37.pyc
26.31 KB
lrw-r--r--
2023-11-13 21:31:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-37.pyc
2.93 KB
lrw-r--r--
2023-11-13 21:31:06
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).