REDROOM
PHP 8.0.30
Path:
Logout
Edit File
Size: 67.29 KB
Close
/proc/thread-self/root/opt/alt/python37/lib/python3.7/site-packages/OpenSSL/__pycache__/SSL.cpython-37.pyc
Text
Base64
Qg0NCgAAAAB1xblZfjEBAOMAAAAAAAAAAAAAAAAIAAAAQAAAAHN4BAAAZABkAWwAWgBkAGQBbAFaAWQAZAJsAm0DWgMBAGQAZANsBG0FWgVtBloGAQBkAGQEbAdtCFoIbQlaCQEAZABkBWwKbQtaCwEAZABkBmwMbQ1aDQEAZABkB2wObQ9aDwEAZABkCGwQbRFaEm0TWhNtFFoUbRVaFQEAZABkCWwWbRdaGG0ZWhptG1ocbR1aHm0fWiBtIVoibSNaJG0lWiZtJ1ooAQBkAGQKbCltKloqbStaK20sWixtLVotbS5aLm0vWi8BAHkIZTBaMVcAbiQEAGUyawpy8AEAAQABAEcAZAtkDIQAZAxlM4MDWjFZAG4CWAB5CGU0WjVXAG4mBABlMmsKkAFyIAEAAQABAEcAZA1kDoQAZA5lM4MDWjVZAG4CWABlHmo2WjZlHmo3WjdlHmo4WjhlHmo5WjllHmo6WjplHmo7WjtlHmo8Wj1lHmo+Wj9kD1pAZBBaQWQRWkJkElpDZBNaRGQUWkVlHmpGWkdlHmpIWkllHmpKWktlHmpMWk1lHmpOWk9lHmpQWlFlHmpSWlNlHmpUWlVlHmpWWldlHmpYWlllHmpaWltlHmpcWl1lHmpeWl9lHmpgWmFlHmpiWmNlHmpkWmVlHmpmWmdlHmpoWmllHmpqWmtlHmpsWm1lHmpuWm9lHmpwWnFlHmpyWnNlHmp0WnVlHmp2WndlHmp4WnllHmp6WntlHmp8Wn1lHmp+Wn9lHmqAWoFlHmqCWoNlHmqEWoVlHmqGWodlHmqIWollHmqKWotlHmqMWo1lHmqOWo9lHmqQWpFlHmqSWpNlHmqUWpVlHmqWWpdlHmqYWpllHmqaWpplHmqbWptlHmqcWpxlHmqdkAJymGUeap5anmUeap9an2UeaqBaoGUeaqFaoWUeaqJaomUeaqNao2UeaqRapGUeaqVapWUeaqZapmUeaqdap2UeaqhaqGUeaqlaqWUeaqpaqmUeaqtaq2UeaqxarGUeaq1arWUeaq5armQVZBZkF2QYZBlnBVqvZBpnAVqwZBtasWQcWrJHAGQdZB6EAGQeZbODA1q0ZQZlGmW0gwJatWUgZbSDAVq2RwBkH2QghABkIGW0gwNat0cAZCFkIoQAZCJltIMDWrhHAGQjZCSEAGQkZbSDA1q5RwBkJWQm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bmVzIG9uZSBPQ1NQIGNhbGxiYWNrIGJ1dCB1c2VzIGl0IGluIHR3byBkaWZmZXJlbnQKICAgIHdheXMuIEZvciBzZXJ2ZXJzLCB0aGF0IGNhbGxiYWNrIGlzIGV4cGVjdGVkIHRvIHJldHJpZXZlIHNvbWUgT0NTUCBkYXRhIGFuZAogICAgaGFuZCBpdCB0byBPcGVuU1NMLCBhbmQgbWF5IHJldHVybiBvbmx5IFNTTF9UTFNFWFRfRVJSX09LLAogICAgU1NMX1RMU0VYVF9FUlJfRkFUQUwsIGFuZCBTU0xfVExTRVhUX0VSUl9OT0FDSy4gRm9yIGNsaWVudHMsIHRoYXQgY2FsbGJhY2sKICAgIGlzIGV4cGVjdGVkIHRvIGNoZWNrIHRoZSBPQ1NQIGRhdGEsIGFuZCByZXR1cm5zIGEgbmVnYXRpdmUgdmFsdWUgb24gZXJyb3IsCiAgICAwIGlmIHRoZSByZXNwb25zZSBpcyBub3QgYWNjZXB0YWJsZSwgb3IgcG9zaXRpdmUgaWYgaXQgaXMuIFRoZXNlIGFyZQogICAgbXV0dWFsbHkgZXhjbHVzaXZlIHJldHVybiBjb2RlIGJlaGF2aW91cnMsIGFuZCB0aGV5IG1lYW4gdGhhdCB3ZSBuZWVkIHR3bwogICAgaGVscGVycyBzbyB0aGF0IHdlIGFsd2F5cyByZXR1cm4gYW4gYXBwcm9wcmlhdGUgZXJyb3IgY29kZSBpZiB0aGUgdXNlcidzCiAgICBjb2RlIHRocm93cyBhbiBleGNlcHRpb24uCgogICAgR2l2ZW4gdGhhdCB3ZSBoYXZlIHRvIGhhdmUgdHdvIGhlbHBlcnMgYW55d2F5LCB0aGVzZSBoZWxwZXJzIGFyZSBhIGJpdCBtb3JlCiAgICBoZWxwZXJ5IHRoYW4gbW9zdDogc3BlY2lmaWNhbGx5LCB0aGV5IGhpZGUgYSBmZXcgbW9yZSBvZiB0aGUgT3BlblNTTAogICAgZnVuY3Rpb25zIHNvIHRoYXQgdGhlIHVzZXIgaGFzIGFuIGVhc2llciB0aW1lIHdyaXRpbmcgdGhlc2UgY2FsbGJhY2tzLgoKICAgIFRoaXMgaGVscGVyIGltcGxlbWVudHMgdGhlIGNsaWVudCBzaWRlLgogICAgYwIAAAAAAAAAAwAA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AF8VZAR8AF8WZAR8AF8XZAR8AF8YZAR8AF8ZZAR8AF8aZAR8AF8bZAR8AF8cZAR8AF8dZAR8AF8eZAR8AF8fZAR8AF8gfACgIXQJaiKhAQEAZARTACkFem8KICAgICAgICA6cGFyYW0gbWV0aG9kOiBPbmUgb2YgU1NMdjJfTUVUSE9ELCBTU0x2M19NRVRIT0QsIFNTTHYyM19NRVRIT0QsIG9yCiAgICAgICAgICAgIFRMU3YxX01FVEhPRC4KICAgICAgICB6GW1ldGhvZCBtdXN0IGJlIGFuIGludGVnZXJ6EE5vIHN1Y2ggcHJvdG9jb2xyJAAAAE4pI3JkAAAAcgsAAAByZgAAANoIX21ldGhvZHPaCEtleUVycm9ycnQAAADaD19vcGVuc3NsX2Fzc2VydHJIAAAAcmkAAAByOgAAAFoLU1NMX0NUWF9uZXfaAmdjWgxTU0xfQ1RYX2ZyZWVaFVNTTF9DVFhfc2V0X2VjZGhfYXV0b9oOQXR0cmlidXRlRXJyb3LaCF9jb250ZXh02hJfcGFzc3BocmFzZV9oZWxwZXLaFF9wYXNzcGhyYXNlX2NhbGxiYWNr2hRfcGFzc3BocmFzZV91c2VyZGF0YdoOX3ZlcmlmeV9oZWxwZXLaEF92ZXJpZnlfY2FsbGJhY2vaDl9pbmZvX2NhbGxiYWNr2htfdGxzZXh0X3NlcnZlcm5hbWVfY2FsbGJhY2vaCV9hcHBfZGF0YdoVX25wbl9hZHZlcnRpc2VfaGVscGVy2hdfbnBuX2FkdmVydGlzZV9jYWxsYmFja9oSX25wbl9zZWxlY3RfaGVscGVy2hRfbnBuX3NlbGVjdF9jYWxsYmFja9oTX2FscG5fc2VsZWN0X2hlbHBlctoVX2FscG5fc2VsZWN0X2NhbGxiYWNr2gxfb2NzcF9oZWxwZXLaDl9vY3NwX2NhbGxiYWNr2gpfb2NzcF9kYXRh2ghzZXRfbW9kZVodU1NMX01PREVfRU5BQkxFX1BBUlRJQUxfV1JJVEUpBnIzAAAA2gZtZXRob2RaC21ldGhvZF9mdW5jWgptZXRob2Rfb2Jq2gdjb250ZXh02gNyZXNyIQAAAHIhAAAAciIAAAByNAAAAGECAABzRgAAAAAFCgEIAgIBDgEOAQ4CBgEOAgoBDgEOBQIBDAEQAQ4BBgIGAQYBBgEG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bS1zcGVjaWZpYyBDQSBjZXJ0aWZpY2F0ZSBsb2NhdGlvbnMKCiAgICAgICAgOnJldHVybjogTm9uZQogICAgICAgIHIkAAAA2gVhc2NpaU4pEXI6AAAAWiBTU0xfQ1RYX3NldF9kZWZhdWx0X3ZlcmlmeV9wYXRoc3KOAAAAcosAAABySAAAAHJ5AAAAWh1YNTA5X2dldF9kZWZhdWx0X2NlcnRfZGlyX2VudtoGZGVjb2RlWh5YNTA5X2dldF9kZWZhdWx0X2NlcnRfZmlsZV9lbnbaE19jaGVja19lbnZfdmFyc19zZXRaGVg1MDlfZ2V0X2RlZmF1bHRfY2VydF9kaXJaGlg1MDlfZ2V0X2RlZmF1bHRfY2VydF9maWxl2h9fQ1JZUFRPR1JBUEhZX01BTllMSU5VWDFfQ0FfRElS2iBfQ1JZUFRPR1JBUEhZX01BTllMSU5VWDFfQ0FfRklMRdoeX2ZhbGxiYWNrX2RlZmF1bHRfdmVyaWZ5X3BhdGhz2htfQ0VSVElGSUNBVEVfRklMRV9MT0NBVElPTlPaG19DRVJUSUZJQ0FURV9QQVRIX0xPQ0FUSU9OUykGcjMAAADaCnNldF9yZXN1bHTaC2Rpcl9lbnZfdmFy2gxmaWxlX2Vudl92YXJaC2RlZmF1bHRfZGlyWgxkZWZhdWx0X2ZpbGVyIQAAAHIhAAAAciIAAADaGHNldF9kZWZhdWx0X3ZlcmlmeV9wYXRoc8gCAABzIAAAAAAKDAEMBgQBCgEGAQQBCgEGAQwBDgEOBQgBCAMEAQIBeiBDb250ZXh0LnNldF9kZWZhdWx0X3ZlcmlmeV9wYXRoc2MDAAAAAAAAAAMAAAADAAAAQwAAAHMgAAAAdABqAaACfAKhAWQBawlwHnQAagGgAnwBoQFkAWsJUwApAnpwCiAgICAgICAgQ2hlY2sgdG8gc2VlIGlmIHRoZSBkZWZhdWx0IGNlcnQgZGlyL2ZpbGUgZW52aXJvbm1lbnQgdmFycyBhcmUgcHJlc2VudC4KCiAgICAgICAgOnJldHVybjogYm9vbAogICAgICAgIE4pA9oCb3PaB2Vudmlyb27aA2dldCkDcjMAAABytwAAAHK4AAAAciEAAAByIQAAAHIiAAAAcrAAAADvAgAAcwQAAAAABxABehtDb250ZXh0Ll9jaGVja19lbnZf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ZSBzaWduZXJzIGZvciB0aGlzIHNlcnZlcgogICAgICAgIGNvbnRleHQuCgogICAgICAgIFRoaXMgbGlzdCBvZiBjZXJ0aWZpY2F0ZSBhdXRob3JpdGllcyB3aWxsIGJlIHNlbnQgdG8gdGhlIGNsaWVudCB3aGVuCiAgICAgICAgdGhlIHNlcnZlciByZXF1ZXN0cyBhIGNsaWVudCBjZXJ0aWZpY2F0ZS4KCiAgICAgICAgOnBhcmFtIGNlcnRpZmljYXRlX2F1dGhvcml0aWVzOiBhIHNlcXVlbmNlIG9mIFg1MDlOYW1lcy4KICAgICAgICA6cmV0dXJuOiBOb25lCiAgICAgICAgejNjbGllbnQgQ0FzIG11c3QgYmUgWDUwOU5hbWUgb2JqZWN0cywgbm90ICVzIG9iamVjdHNOKRJyOgAAAFoVc2tfWDUwOV9OQU1FX25ld19udWxscosAAABySAAAAHJpAAAAcmQAAAByGgAAAHJmAAAAcnsAAAByHgAAANoNWDUwOV9OQU1FX2R1cNoFX25hbWVaEXNrX1g1MDlfTkFNRV9wdXNo2g5YNTA5X05BTUVfZnJlZXI1AAAAWhFza19YNTA5X05BTUVfZnJlZXLSAAAAco4AAAApBnIzAAAAWhdjZXJ0aWZpY2F0ZV9hdXRob3JpdGllc1oKbmFtZV9zdGFja1oHY2FfbmFtZXLJAAAAWgtwdXNoX3Jlc3VsdHIhAAAAciEAAAByIgAAANoSc2V0X2NsaWVudF9jYV9saXN0HgQAAHMkAAAAAAsIAQ4CAgEKAQoBAgECAhADDAEOAQwBBAEKAQ4BBgEKAQgCehpDb250ZXh0LnNldF9jbGllbnRfY2FfbGlzdGMCAAAAAAAAAAMAAAAEAAAAQwAAAHMyAAAAdAB8AXQBgwJzEnQCZAGDAYIBdAOgBHwAagV8AWoGoQJ9AnQHfAJkAmsCgwEBAGQDUwApBGFJAQAACiAgICAgICAgQWRkIHRoZSBDQSBjZXJ0aWZpY2F0ZSB0byB0aGUgbGlzdCBvZiBwcmVmZXJyZWQgc2lnbmVycyBmb3IgdGhpcwogICAgICAgIGNvbnRleHQuCgogICAgICAgIFRoZSBsaXN0IG9mIGNlcnRpZmljYXRlIGF1dGhvcml0aWVzIHdpbGwgYmUgc2VudCB0byB0aGUg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TCAqLCBpbnQgKiwgdm9pZCAqKU4pB3IDAAAAckgAAAByRgAAAHKVAAAAcjoAAABaJlNTTF9DVFhfc2V0X3Rsc2V4dF9zZXJ2ZXJuYW1lX2NhbGxiYWNrco4AAAApA3IzAAAAckYAAAByRwAAAHIhAAAAKQFyRgAAAHIiAAAA2h5zZXRfdGxzZXh0X3NlcnZlcm5hbWVfY2FsbGJhY2utBAAAcwoAAAAACRQFBAEKAQQBeiZDb250ZXh0LnNldF90bHNleHRfc2VydmVybmFtZV9jYWxsYmFja2MCAAAAAAAAAAIAAAAFAAAAQwAAAHMsAAAAdAB8AYMBfABfAXwAagFqAnwAXwN0BKAFfABqBnwAagN0B2oIoQMBAGQBUwApAmHJAQAACiAgICAgICAgU3BlY2lmeSBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgd2hlbiBvZmZlcmluZyBgTmV4dAogICAgICAgIFByb3RvY29sIE5lZ290aWF0aW9uCiAgICAgICAgPGh0dHBzOi8vdGVjaG5vdGVzLmdvb2dsZWNvZGUuY29tL2dpdC9uZXh0cHJvdG9uZWcuaHRtbD5gXyBhcyBhIHNlcnZlci4KCiAgICAgICAgOnBhcmFtIGNhbGxiYWNrOiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24uICBJdCB3aWxsIGJlIGludm9rZWQgd2l0aCBvbmUKICAgICAgICAgICAgYXJndW1lbnQsIHRoZSBDb25uZWN0aW9uIGluc3RhbmNlLiAgSXQgc2hvdWxkIHJldHVybiBhIGxpc3Qgb2YKICAgICAgICAgICAgYnl0ZXN0cmluZ3MgcmVwcmVzZW50aW5nIHRoZSBhZHZlcnRpc2VkIHByb3RvY29scywgbGlrZQogICAgICAgICAgICBgYFtiJ2h0dHAvMS4xJywgYidzcGR5LzInXWBgLgogICAgICAgIE4pCXJJAAAAcpcAAAByRgAAAHKYAAAAcjoAAABaJVNTTF9DVFhfc2V0X25leHRfcHJvdG9zX2FkdmVydGlzZWRfY2JyjgAAAHJIAAAAcmkAAAApAnIzAAAAckYAAAByIQAAAHIhAAAAciIAAADaGnNldF9ucG5fYWR2ZXJ0aXNlX2NhbGxiYWNrwAQAAHMIAAAAAAwK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gwF9A3wAoAF8A3wCoQIBAGQBUwApAmH7AgAACiAgICAgICAgU2V0IGEgY2FsbGJhY2sgdG8gcHJvdmlkZSBPQ1NQIGRhdGEgdG8gYmUgc3RhcGxlZCB0byB0aGUgVExTIGhhbmRzaGFrZQogICAgICAgIG9uIHRoZSBzZXJ2ZXIgc2lkZS4KCiAgICAgICAgOnBhcmFtIGNhbGxiYWNrOiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24uIEl0IHdpbGwgYmUgaW52b2tlZCB3aXRoIHR3bwogICAgICAgICAgICBhcmd1bWVudHM6IHRoZSBDb25uZWN0aW9uLCBhbmQgdGhlIG9wdGlvbmFsIGFyYml0cmFyeSBkYXRhIHlvdSBoYXZlCiAgICAgICAgICAgIHByb3ZpZGVkLiBUaGUgY2FsbGJhY2sgbXVzdCByZXR1cm4gYSBieXRlc3RyaW5nIHRoYXQgY29udGFpbnMgdGhlCiAgICAgICAgICAgIE9DU1AgZGF0YSB0byBzdGFwbGUgdG8gdGhlIGhhbmRzaGFrZS4gSWYgbm8gT0NTUCBkYXRhIGlzIGF2YWlsYWJsZQogICAgICAgICAgICBmb3IgdGhpcyBjb25uZWN0aW9uLCByZXR1cm4gdGhlIGVtcHR5IGJ5dGVzdHJpbmcuCiAgICAgICAgOnBhcmFtIGRhdGE6IFNvbWUgb3BhcXVlIGRhdGEgdGhhdCB3aWxsIGJlIHBhc3NlZCBpbnRvIHRoZSBjYWxsYmFjawogICAgICAgICAgICBmdW5jdGlvbiB3aGVuIGNhbGxlZC4gVGhpcyBjYW4gYmUgdXNlZCB0byBhdm9pZCBuZWVkaW5nIHRvIGRvCiAgICAgICAgICAgIGNvbXBsZXggZGF0YSBsb29rdXBzIG9yIHRvIGtlZXAgdHJhY2sgb2Ygd2hhdCBjb250ZXh0IGlzIGJlaW5nCiAgICAgICAgICAgIHVzZWQuIFRoaXMgcGFyYW1ldGVyIGlzIG9wdGlvbmFsLgogICAgICAgIE4pAnJoAAAAcv0AAAApBHIzAAAAckYAAABybAAAAHL7AAAAciEAAAByIQAAAHIiAAAA2hhzZXRfb2NzcF9zZXJ2ZXJfY2FsbGJhY2saBQAAcwQAAAAADwgBeiBDb250ZXh0LnNldF9vY3NwX3NlcnZlcl9jYWxsYmFja2MDAAAAAAAAAAQAAAAEAAAAQwAAAHMYAAAAdAB8AYMBfQN8AKABfAN8AqECAQBkAVMAKQJhjQMAAAogICAgICAgIFNldCBhIGNhbGxiYWNrIHRvIHZhbGlkYXRlIE9DU1AgZGF0YSBzdGFwbGVkIHRvIHRoZSBUTFMgaGFuZHNoYWtlIG9uCiAgICAgICAgdGhlIGNsaWVudCBzaWRlLgoKICAgICAgICA6cGFyYW0gY2FsbGJhY2s6IFRoZSBjYWxsYmFjayBmdW5jdGlvbi4gSXQgd2lsbCBiZSBpbnZva2VkIHdpdGggdGhyZWUKICAgICAgICAgICAgYXJndW1lbnRzOiB0aGUgQ29ubmVjdGlvbiwgYSBieXRlc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHN0YXBsZWQgT0NTUAogICAgICAgICAgICBhc3NlcnRpb24sIGFuZCB0aGUgb3B0aW9uYWwgYXJiaXRyYXJ5IGRhdGEgeW91IGhhdmUgcHJvdmlkZWQuIFRoZQogICAgICAgICAgICBjYWxsYmFjayBtdXN0IHJldHVybiBhIGJvb2xlYW4gdGhhdCBpbmRpY2F0ZXMgdGhlIHJlc3VsdCBvZgogICAgICAgICAgICB2YWxpZGF0aW5nIHRoZSBPQ1NQIGRhdGE6IGBgVHJ1ZWBgIGlmIHRoZSBPQ1NQIGRhdGEgaXMgdmFsaWQgYW5kCiAgICAgICAgICAgIHRoZSBjZXJ0aWZpY2F0ZSBjYW4gYmUgdHJ1c3RlZCwgb3IgYGBGYWxzZWBgIGlmIGVpdGhlciB0aGUgT0NTUAogICAgICAgICAgICBkYXRhIGlzIGludmFsaWQgb3IgdGhlIGNlcnRpZmljYXRlIGhhcyBiZWVuIHJldm9rZWQuCiAgICAgICAgOnBhcmFtIGRhdGE6IFNvbWUgb3BhcXVlIGRhdGEgdGhhdCB3aWxsIGJlIHBhc3NlZCBpbnRvIHRoZSBjYWxsYmFjawogICAgICAgICAgICBmdW5jdGlvbiB3aGVuIGNhbGxlZC4gVGhpcyBjYW4gYmUgdXNlZCB0byBhdm9pZCBuZWVkaW5nIHRvIGRvCiAgICAgICAgICAgIGNvbXBsZXggZGF0YSBsb29rdXBzIG9yIHRvIGtlZXAgdHJhY2sgb2Ygd2hhdCBjb250ZXh0IGlzIGJlaW5nCiAgICAgICAgICAgIHVzZWQuIFRoaXMgcGFyYW1ldGVyIGlzIG9wdGlvbmFsLgogICAgICAgIE4pAnJuAAAAcv0AAAApBHIzAAAAckYAAABybAAAAHL7AAAAciEAAAByIQAAAHIiAAAA2hhzZXRfb2NzcF9jbGllbnRfY2FsbGJhY2ssBQAAcwQAAAAAEQgBeiBDb250ZXh0LnNldF9vY3NwX2NsaWVudF9jYWxsYmFjaykBTikBTikBTikBTik+ch4AAAByHwAAAHIgAAAAcisAAADaDFNTTHYyX01FVEhPRNoMU1NMdjNfTUVUSE9E2g1TU0x2MjNfTUVUSE9E2gxUTFN2MV9NRVRIT0TaDlRMU3YxXzFfTUVUSE9E2g5UTFN2MV8yX01FVEhPRHKJAAAA2gRkaWN02gVpdGVtc3I0AAAAcqcAAAByqwAAAHKtAAAAcrkAAABysAAAAHKzAAAAcsIAAAByFwAAAHLFAAAAcsYAAAByywAAAHLMAAAAcs0AAAByzgAAAHLPAAAActAAAABy0wAAAHLVAAAActcAAABy2AAAAHLZAAAActsAAABy3AAAAHLdAAAAcuAAAABy4QAAAHLkAAAAcugAAABy6QAAAHLrAAAAcuwAAABy7gAAAHLvAAAAcvAAAABy8gAAAHL0AAAAcqAAAADaDV9yZXF1aXJlc19zbmly9QAAANoNX3JlcXVpcmVzX25wbnL2AAAAcvcAAADaDl9yZXF1aXJlc19hbHBucvkAAABy+gAAAHL9AAAAcv4AAABy/wAAAHIhAAAAciEAAAByIQAAAHIiAAAAcoYAAABPAgAAc2wAAAAIBAQCBAEEAQQBBAEEAQgCAgEGAQ4DCDIKHAgHChIIJwgLCBQIEQwUCA4IEQgGDBUIDggJCA8IFAgNCAYIFQgMCAgICAgUCAwIEwgjCBIIDAgICA4ICAgJCA8IDAgMDBMMEQwQDBYMDwgUChJyhgAAAHo0Q29udGV4dFR5cGUgaGFzIGJlZW4gZGVwcmVjYXRlZCwgdXNlIENvbnRleHQgaW5zdGVhZGMAAAAAAAAAAAAAAAADAAAAQAAAAHP8AQAAZQBaAWQAWgJkAVoDZQSDAFoFZHRkA2QEhAFaBmQFZAaEAFoHZAdkCIQAWghkCWQKhABaCWQLZAyEAFoKZQtkDWQOhACDAVoMZQtkD2QQhACDAVoNZBFkEoQAWg5kdWQUZBWEAVoPZQ9aEGR2ZBZkF4QBWhFkd2QYZBmEAVoSZRJaE2R4ZBpkG4QBWhRkHGQdhABaFWQeZB+EAFoWZCBkIYQAWhdkImQjhABaGGQkZCWEAFoZZCZkJ4QAWhpkKGQphABaG2QqZCuEAFocZCxkLYQAWh1kLmQvhABaHmQwZDGEAFofZDJkM4QAWiBkNGQ1hABaIWQ2ZDeEAFoiZDhkOYQAWiNkOmQ7hABaJGQ8ZD2EAFolZD5kP4QAWiZkQGRBhABaJ2RCZEOEAFooZERkRYQAWilkRmRHhABaKmRIZEmEAForZEpkS4QAWixkTGRNhABaLWROZE+EAFouZFBkUYQAWi9kUmRThABaMGRUZFWEAFoxZFZkV4QAWjJkWGRZhABaM2RaZFuEAFo0ZFxkXYQAWjVkXmRfhABaNmRgZGGEAFo3ZGJkY4QAWjhkZGRlhABaOWRmZGeEAFo6ZGhkaYQAWjtkamRrhABaPGU9ZGxkbYQAgwFaPmU/ZG5kb4QAgwFaQGU/ZHBkcYQAgwFaQWRyZHOEAFpCZAJTACl5cjwAAAB6BQogICAgTmMDAAAAAAAAAAUAAAAFAAAAQwAAAHPyAAAAdAB8AXQBgwJzEnQCZAGDAYIBdAOgBHwBagWhAX0DdAagB3wDdANqCKECfABfCXwBfABfBWQCfABfCmQCfABfC2QCfABfDGQCfABfDXwAfABqDnwAagk8AHwCZAJrCHK8ZAJ8AF8PdAOgEHQDoBGhAKEBfABfEnQTfABqEnQGahRrA4MBAQB0A6AQdAOgEaEAoQF8AF8VdBN8AGoVdAZqFGsDgwEBAHQDoBZ8AGoJfABqEnwAahWhAwEAbjJkAnwAXxJkAnwAXxV8AnwAXw90A6AXfABqCXQYfABqD4MBoQJ9BHQTfARkA2sCgwEBAGQCUwApBHryCiAgICAgICAgQ3JlYXRlIGEgbmV3IENvbm5lY3Rpb24gb2JqZWN0LCB1c2luZyB0aGUgZ2l2ZW4gT3BlblNTTC5TU0wuQ29udGV4dAogICAgICAgIGluc3RhbmNlIGFuZCBzb2NrZXQuCgogICAgICAgIDpwYXJhbSBjb250ZXh0OiBBbiBTU0wgQ29udGV4dCB0byB1c2UgZm9yIHRo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AHIjAAAAWhZPUEVOU1NMX1ZFUlNJT05fTlVNQkVSWg5TU0xFQVlfVkVSU0lPTloNU1NMRUFZX0NGTEFHU1oPU1NMRUFZX1BMQVRGT1JNWgpTU0xFQVlfRElSWg9TU0xFQVlfQlVJTFRfT05aEVNTTF9TRU5UX1NIVVRET1dOWg1TRU5UX1NIVVRET1dOWhVTU0xfUkVDRUlWRURfU0hVVERPV05aEVJFQ0VJVkVEX1NIVVRET1dOcgABAAByAQEAAHICAQAAcgMBAAByBAEAAHIFAQAAWg9TU0xfT1BfTk9fU1NMdjJaC09QX05PX1NTTHYyWg9TU0xfT1BfTk9fU1NMdjNaC09QX05PX1NTTHYzWg9TU0xfT1BfTk9fVExTdjFaC09QX05PX1RMU3YxWhFTU0xfT1BfTk9fVExTdjFfMVoNT1BfTk9fVExTdjFfMVoRU1NMX09QX05PX1RMU3YxXzJaDU9QX05PX1RMU3YxXzJaGFNTTF9NT0RFX1JFTEVBU0VfQlVGRkVSU1oUTU9ERV9SRUxFQVNFX0JVRkZFUlNaFFNTTF9PUF9TSU5HTEVfREhfVVNFWhBPUF9TSU5HTEVfREhfVVNFWhZTU0xfT1BfU0lOR0xFX0VDREhfVVNFWhJPUF9TSU5HTEVfRUNESF9VU0VaFFNTTF9PUF9FUEhFTUVSQUxfUlNBWhBPUF9FUEhFTUVSQUxfUlNBWhxTU0xfT1BfTUlDUk9TT0ZUX1NFU1NfSURfQlVHWhhPUF9NSUNST1NPRlRfU0VTU19JRF9CVUdaHVNTTF9PUF9ORVRTQ0FQRV9DSEFMTEVOR0VfQlVHWhlPUF9ORVRTQ0FQRV9DSEFMTEVOR0VfQlVHWidTU0xfT1BfTkVUU0NBUEVfUkVVU0VfQ0lQSEVSX0NIQU5HRV9CVUdaI09QX05FVFNDQVBFX1JFVVNFX0NJUEhFUl9DSEFOR0VfQlVHWiJTU0xfT1BfU1NMUkVGMl9SRVVTRV9DRVJUX1RZUEVfQlVHWh5PUF9TU0xSRUYyX1JFVVNFX0NFUlRfVFlQRV9CVUdaIVNTTF9PUF9NSUNST1NPRlRfQklHX1NTTFYzX0JVRkZFUlodT1BfTUlDUk9TT0ZUX0JJR19TU0xWM19CVUZGRVJaHVNTTF9PUF9NU0lFX1NTTFYyX1JTQV9QQURESU5HWhlPUF9NU0lFX1NTTFYyX1JTQV9QQURESU5HWh9TU0xfT1BfU1NMRUFZXzA4MF9DTElFTlRfREhfQlVHWhtPUF9TU0xFQVlfMDgwX0NMSUVOVF9ESF9CVUdaEVNTTF9PUF9UTFNfRDVfQlVHWg1PUF9UTFNfRDVfQlVHWhxTU0xfT1BfVExTX0JMT0NLX1BBRERJTkdfQlVHWhhPUF9UTFNfQkxPQ0tfUEFERElOR19CVUdaIlNTTF9PUF9ET05UX0lOU0VSVF9FTVBUWV9GUkFHTUVOVFNaHk9QX0RPTlRfSU5TRVJUX0VNUFRZX0ZSQUdNRU5UU1ofU1NMX09QX0NJUEhFUl9TRVJWRVJfUFJFRkVSRU5DRVobT1BfQ0lQSEVSX1NFUlZFUl9QUkVGRVJFTkNFWhdTU0xfT1BfVExTX1JPTExCQUNLX0JVR1oTT1BfVExTX1JPTExCQUNLX0JVR1oUU1NMX09QX1BLQ1MxX0NIRUNLXzFaEE9QX1BLQ1MxX0NIRUNLXzFaFFNTTF9PUF9QS0NTMV9DSEVDS18yWhBPUF9QS0NTMV9DSEVDS18yWhlTU0xfT1BfTkVUU0NBUEVfQ0FfRE5fQlVHWhVPUF9ORVRTQ0FQRV9DQV9ETl9CVUdaJlNTTF9PUF9ORVRTQ0FQRV9ERU1PX0NJUEhFUl9DSEFOR0VfQlVHWiJPUF9ORVRTQ0FQRV9ERU1PX0NJUEhFUl9DSEFOR0VfQlVHWhVTU0xfT1BfTk9fQ09NUFJFU1NJT05aEU9QX05PX0NPTVBSRVNTSU9OWhNTU0xfT1BfTk9fUVVFUllfTVRVWg9PUF9OT19RVUVSWV9NVFVaFlNTTF9PUF9DT09LSUVfRVhDSEFOR0VaEk9QX0NPT0tJRV9FWENIQU5HRVoQU1NMX09QX05PX1RJQ0tFVFoMT1BfTk9fVElDS0VUWgpTU0xfT1BfQUxMWgZPUF9BTExaD1NTTF9WRVJJRllfUEVFUloLVkVSSUZZX1BFRVJaH1NTTF9WRVJJRllfRkFJTF9JRl9OT19QRUVSX0NFUlRaG1ZFUklGWV9GQUlMX0lGX05PX1BFRVJfQ0VSVFoWU1NMX1ZFUklGWV9DTElFTlRfT05DRVoSVkVSSUZZX0NMSUVOVF9PTkNFWg9TU0xfVkVSSUZZX05PTkVaC1ZFUklGWV9OT05FWhJTU0xfU0VTU19DQUNIRV9PRkZaDlNFU1NfQ0FDSEVfT0ZGWhVTU0xfU0VTU19DQUNIRV9DTElFTlRaEVNFU1NfQ0FDSEVfQ0xJRU5UWhVTU0xfU0VTU19DQUNIRV9TRVJWRVJaEVNFU1NfQ0FDSEVfU0VSVkVSWhNTU0xfU0VTU19DQUNIRV9CT1RIWg9TRVNTX0NBQ0hFX0JPVEhaHFNTTF9TRVNTX0NBQ0hFX05PX0FVVE9fQ0xFQVJaGFNFU1NfQ0FDSEVfTk9fQVVUT19DTEVBUlohU1NMX1NFU1NfQ0FDSEVfTk9fSU5URVJOQUxfTE9PS1VQWh1TRVNTX0NBQ0hFX05PX0lOVEVSTkFMX0xPT0tVUFogU1NMX1NFU1NfQ0FDSEVfTk9fSU5URVJOQUxfU1RPUkVaHFNFU1NfQ0FDSEVfTk9fSU5URVJOQUxfU1RPUkVaGlNTTF9TRVNTX0NBQ0hFX05PX0lOVEVSTkFMWhZTRVNTX0NBQ0hFX05PX0lOVEVSTkFMWg5TU0xfU1RfQ09OTkVDVFoNU1NMX1NUX0FDQ0VQVFoLU1NMX1NUX01BU0taF0NyeXB0b2dyYXBoeV9IQVNfU1NMX1NUWgtTU0xfU1RfSU5JVFoNU1NMX1NUX0JFRk9SRVoJU1NMX1NUX09LWhJTU0xfU1RfUkVORUdPVElBVEVaC1NTTF9DQl9MT09QWgtTU0xfQ0JfRVhJVFoLU1NMX0NCX1JFQURaDFNTTF9DQl9XUklURVoMU1NMX0NCX0FMRVJUWhFTU0xfQ0JfUkVBRF9BTEVSVFoSU1NMX0NCX1dSSVRFX0FMRVJUWhJTU0xfQ0JfQUNDRVBUX0xPT1BaElNTTF9DQl9BQ0NFUFRfRVhJVFoTU1NMX0NCX0NPTk5FQ1RfTE9PUFoTU1NMX0NCX0NPTk5FQ1RfRVhJVFoWU1NMX0NCX0hBTkRTSEFLRV9TVEFSVFoVU1NMX0NCX0hBTkRTSEFLRV9ET05FcrQAAABytQAAAHKxAAAAcrIAAAByPgAAAHIqAAAAcjUAAAByiwAAAHIsAAAAci0AAAByLgAAAHIvAAAAcjAAAAByMQAAAHI4AAAAckkAAAByWQAAAHJjAAAAcmgAAABybgAAAHJ4AAAAcnoAAAByhAAAAFodQ3J5cHRvZ3JhcGh5X0hBU19ORVhUUFJPVE9ORUdyCQEAAFoVQ3J5cHRvZ3JhcGh5X0hBU19BTFBOcgoBAABaIENyeXB0b2dyYXBoeV9IQVNfVExTRVhUX0hPU1ROQU1FcggBAAByhQAAAHKGAAAAch4AAADaEkRlcHJlY2F0aW9uV2FybmluZ1oLQ29udGV4dFR5cGVyPAAAAFoOQ29ubmVjdGlvblR5cGVaEFNTTF9saWJyYXJ5X2luaXRyIQAAAHIhAAAAciEAAAByIgAAANoIPG1vZHVsZT4BAAAAcyoBAAAIAQgBDAEQARABDAEMAgwCGAQsDCADAgEIAQ4BFgMCAQgBEAEWAwYBBgEGAQYBBgEGAgYBBgIEAQQBBAEEAQQBBAIGAQYBBgEGAQYCBgIGAQYBBgEGAQYCBgIGAQYBBgEGAQYBBgEGAQYBBgEGAQYBBgIGAgYCBgEGAQYCBgIGAQYBBgEGAgYBBgEGAQYBBgEGAQYBBgIGAQYBBgEIAQYBBgEGAQYCBgEGAQYBBgEGAQYBBgEGAQYBBgEGAQYBBgQCAQIBAgECAQYEBgUEAQQDEAYKAQgDEAQQBBAEEAQQBBAcECYQKRAxEDMQSBA7CBMICQgWAgEKBAIBCgQCAQoEEAQQfwB/AH8AfwB/AHcCAQQBCAQQfwB/AH8AfwB/AH8AeAIBBAECAQYF
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 14
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
crypto.cpython-37.opt-1.pyc
85.81 KB
lrw-r--r--
2021-07-08 08:11:29
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
crypto.cpython-37.pyc
85.81 KB
lrw-r--r--
2021-07-08 08:11:29
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
debug.cpython-37.opt-1.pyc
1.12 KB
lrw-r--r--
2021-07-08 08:11:29
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
debug.cpython-37.pyc
1.12 KB
lrw-r--r--
2021-07-08 08:11:29
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
SSL.cpython-37.opt-1.pyc
67.29 KB
lrw-r--r--
2021-07-08 08:11:29
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
SSL.cpython-37.pyc
67.29 KB
lrw-r--r--
2021-07-08 08:11:29
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
tsafe.cpython-37.opt-1.pyc
1.28 KB
lrw-r--r--
2021-07-08 08:11:29
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
tsafe.cpython-37.pyc
1.28 KB
lrw-r--r--
2021-07-08 08:11:29
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
version.cpython-37.opt-1.pyc
654 B
lrw-r--r--
2021-07-08 08:11:29
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
version.cpython-37.pyc
654 B
lrw-r--r--
2021-07-08 08:11:29
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
_util.cpython-37.opt-1.pyc
4.09 KB
lrw-r--r--
2021-07-08 08:11:29
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
_util.cpython-37.pyc
4.09 KB
lrw-r--r--
2021-07-08 08:11:29
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-37.opt-1.pyc
565 B
lrw-r--r--
2021-07-08 08:11:29
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-37.pyc
565 B
lrw-r--r--
2021-07-08 08:11:29
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).