REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 67.22 KB
Close
/opt/alt/python34/lib64/python3.4/test/support/__pycache__/__init__.cpython-34.pyc
Text
Base64
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ZFAAhAAAZFAAgwIAWucAZCMBZCQBhAAAWugAZCUBZCYBhAAAWukAZAQAUygzAQAAejdTdXBwb3J0aW5nIGRlZmluaXRpb25zIGZvciB0aGUgUHl0aG9uIHJlZ3Jlc3Npb24gdGVzdHMuegx0ZXN0LnN1cHBvcnR6LnN1cHBvcnQgbXVzdCBiZSBpbXBvcnRlZCBmcm9tIHRoZSB0ZXN0IHBhY2thZ2XpAAAAAE7aDVBJUEVfTUFYX1NJWkXaB3ZlcmJvc2XaCm1heF9tZW11c2XaDXVzZV9yZXNvdXJjZXPaCGZhaWxmYXN02gVFcnJvctoKVGVzdEZhaWxlZNoOUmVzb3VyY2VEZW5pZWTaDWltcG9ydF9tb2R1bGXaE2ltcG9ydF9mcmVzaF9tb2R1bGXaC0NsZWFuSW1wb3J02gZ1bmxvYWTaBmZvcmdldNoWcmVjb3JkX29yaWdpbmFsX3N0ZG91dNoTZ2V0X29yaWdpbmFsX3N0ZG91dNoPY2FwdHVyZWRfc3Rkb3V02g5jYXB0dXJlZF9zdGRpbtoPY2FwdHVyZWRfc3RkZXJy2gZURVNURk7aCFNBVkVEQ1dE2gZ1bmxpbmvaBnJtdHJlZdoIdGVtcF9jd2TaCGZpbmRmaWxl2hFjcmVhdGVfZW1wdHlfZmlsZdoLY2FuX3N5bWxpbmvaFmZzX2lzX2Nhc2VfaW5zZW5zaXRpdmXaE2lzX3Jlc291cmNlX2VuYWJsZWTaCHJlcXVpcmVz2hhyZXF1aXJlc19mcmVlYnNkX3ZlcnNpb27aFnJlcXVpcmVzX2xpbnV4X3ZlcnNpb27aEHJlcXVpcmVzX21hY192ZXLaEmNoZWNrX3N5bnRheF9lcnJvctoRVHJhbnNpZW50UmVzb3VyY2XaCHRpbWVfb3V02hFzb2NrZXRfcGVlcl9yZXNldNoSaW9lcnJvcl9wZWVyX3Jlc2V02hJ0cmFuc2llbnRfaW50ZXJuZXTaD0Jhc2ljVGVzdFJ1bm5lctoMcnVuX3VuaXR0ZXN02gtydW5fZG9jdGVzdNoTc2tpcF91bmxlc3Nfc3ltbGlua9oNcmVxdWlyZXNfZ3ppcNoMcmVxdWlyZXNfYnoy2g1yZXF1aXJlc19sem1h2gpiaWdtZW10ZXN02hBiaWdhZGRyc3BhY2V0ZXN02gxjcHl0aG9uX29ubHnaDWdldF9hdHRyaWJ1dGXaEXJlcXVpcmVzX0lFRUVfNzU02hFza2lwX3VubGVzc194YXR0ctoNcmVxdWlyZXNfemxpYtoSYW50aWNpcGF0ZV9mYWlsdXJl2hJsb2FkX3BhY2thZ2VfdGVzdHPaCWlzX2p5dGhvbtoRY2hlY2tfaW1wbF9kZXRhaWzaBEhPU1TaDElQVjZfRU5BQkxFRNoQZmluZF91bnVzZWRfcG9ydNoJYmluZF9wb3J02hBvcGVuX3VybHJlc291cmNl2gp0ZW1wX3VtYXNr2g1yZWFwX2NoaWxkcmVu2gtUZXN0SGFuZGxlctoPdGhyZWFkaW5nX3NldHVw2hF0aHJlYWRpbmdfY2xlYW51cNoMcmVhcF90aHJlYWRz2g1zdGFydF90aHJlYWRz2g5jaGVja193YXJuaW5nc9oTRW52aXJvbm1lbnRWYXJHdWFyZNoPcnVuX3dpdGhfbG9jYWxl2glzd2FwX2l0ZW3aCXN3YXBfYXR0ctoHTWF0Y2hlctoMc2V0X21lbWxpbWl02hNTdXBwcmVzc0NyYXNoUmVwb3J02ghzb3J0ZGljdNoLcnVuX3dpdGhfdHpjAAAAAAAAAAAAAAAAAQAAAEAAAABzFgAAAGUAAFoBAGQAAFoCAGQBAFoDAGQCAFMpA3IHAAAAeipCYXNlIGNsYXNzIGZvciByZWdyZXNzaW9uIHRlc3QgZXhjZXB0aW9ucy5OKQTaCF9fbmFtZV9f2gpfX21vZHVsZV9f2gxfX3F1YWxuYW1lX1/aB19fZG9jX1+pAHJUAAAAclQAAAD6Oi9vcHQvYWx0L3B5dGhvbjM0L2xpYjY0L3B5dGhvbjMuNC90ZXN0L3N1cHBvcnQvX19pbml0X18ucHlyBwAAAGwAAABzAgAAAAwBYwAAAAAAAAAAAAAAAAEAAABAAAAAcxYAAABlAABaAQBkAABaAgBkAQBaAwBkAgBTKQNyCAAAAHoMVGVzdCBmYWlsZWQuTikEclAAAAByUQAAAHJSAAAAclMAAAByVAAAAHJUAAAAclQAAAByVQAAAHIIAAAAbwAAAHMCAAAADAFjAAAAAAAAAAAAAAAAAQAAAEAAAABzFgAAAGUAAFoBAGQAAFoCAGQBAFoDAGQCAFMpA3IJAAAAeuBUZXN0IHNraXBwZWQgYmVjYXVzZSBpdCByZXF1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b2R1bGUgZnJvbSBzeXMubW9kdWxlcyBiZWZvcmUgZG9pbmcgdGhlIGltcG9ydC4KICAgIE5vdGUgdGhhdCB1bmxpa2UgcmVsb2FkLCB0aGUgb3JpZ2luYWwgbW9kdWxlIGlzIG5vdCBhZmZlY3RlZCBieQogICAgdGhpcyBvcGVyYXRpb24uCgogICAgKmZyZXNoKiBpcyBhbiBpdGVyYWJsZSBvZiBhZGRpdGlvbmFsIG1vZHVsZSBuYW1lcyB0aGF0IGFyZSBhbHNvIHJlbW92ZWQKICAgIGZyb20gdGhlIHN5cy5tb2R1bGVzIGNhY2hlIGJlZm9yZSBkb2luZyB0aGUgaW1wb3J0LgoKICAgICpibG9ja2VkKiBpcyBhbiBpdGVyYWJsZSBvZiBtb2R1bGUgbmFtZXMgdGhhdCBhcmUgcmVwbGFjZWQgd2l0aCBOb25lCiAgICBpbiB0aGUgbW9kdWxlIGNhY2hlIGR1cmluZyB0aGUgaW1wb3J0IHRvIGVuc3VyZSB0aGF0IGF0dGVtcHRzIHRvIGltcG9ydAogICAgdGhlbSByYWlzZSBJbXBvcnRFcnJvci4KCiAgICBUaGUgbmFtZWQgbW9kdWxlIGFuZCBhbnkgbW9kdWxlcyBuYW1lZCBpbiB0aGUgKmZyZXNoKiBhbmQgKmJsb2NrZWQqCiAgICBwYXJhbWV0ZXJzIGFyZSBzYXZlZCBiZWZvcmUgc3RhcnRpbmcgdGhlIGltcG9ydCBhbmQgdGhlbiByZWluc2VydGVkIGludG8KICAgIHN5cy5tb2R1bGVzIHdoZW4gdGhlIGZyZXNoIGltcG9ydCBpcyBjb21wbGV0ZS4KCiAgICBNb2R1bGUgYW5kIHBhY2thZ2UgZGVwcmVjYXRpb24gbWVzc2FnZXMgYXJlIHN1cHByZXNzZWQgZHVyaW5nIHRoaXMgaW1wb3J0CiAgICBpZiAqZGVwcmVjYXRlZCogaXMgVHJ1ZS4KCiAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmFpc2UgSW1wb3J0RXJyb3IgaWYgdGhlIG5hbWVkIG1vZHVsZSBjYW5ub3QgYmUKICAgIGltcG9ydGVkLgogICAgTikKclsAAABybwAAAHJxAAAA2gZhcHBlbmRyXQAAAHIKAAAAcl4AAADaBWl0ZW1zcl8AAABy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ICAgIHNlcnZlciBzb2NrZXQgbmVlZHMgdG8gYmUgYm91bmQgdG8gYSBwYXJ0aWN1bGFyIHBvcnQgZm9yIHRoZSBkdXJhdGlvbiBvZgogICAgdGhlIHRlc3QuICBXaGljaCBvbmUgdG8gdXNlIGRlcGVuZHMgb24gd2hldGhlciB0aGUgY2FsbGluZyBjb2RlIGlzIGNyZWF0aW5nCiAgICBhIHB5dGhvbiBzb2NrZXQsIG9yIGlmIGFuIHVudXNlZCBwb3J0IG5lZWRzIHRvIGJlIHByb3ZpZGVkIGluIGEgY29uc3RydWN0b3IKICAgIG9yIHBhc3NlZCB0byBhbiBleHRlcm5hbCBwcm9ncmFtIChpLmUuIHRoZSAtYWNjZXB0IGFyZ3VtZW50IHRvIG9wZW5zc2wncwogICAgc19zZXJ2ZXIgbW9kZSkuICBBbHdheXMgcHJlZmVyIGJpbmRfcG9ydCgpIG92ZXIgZmluZF91bnVzZWRfcG9ydCgpIHdoZXJlCiAgICBwb3NzaWJsZS4gIEhhcmQgY29kZWQgcG9ydHMgc2hvdWxkICpORVZFUiogYmUgdXNlZC4gIEFzIHNvb24gYXMgYSBzZXJ2ZXIKICAgIHNvY2tldCBpcyBib3VuZCB0byBhIGhhcmQgY29kZWQgcG9ydCwgdGhlIGFiaWxpdHkgdG8gcnVuIG11bHRpcGxlIGluc3RhbmNlcwogICAgb2YgdGhlIHRlc3Qgc2ltdWx0YW5lb3VzbHkgb24gdGhlIHNhbWUgaG9zdCBpcyBjb21wcm9taXNlZCwgd2hpY2ggbWFrZXMgdGhlCiAgICB0ZXN0IGEgdGlja2luZyB0aW1lIGJvbWIgaW4gYSBidWlsZGJvdCBlbnZpcm9ubWVudC4gT24gVW5peCBidWlsZGJvdHMsIHRoaXMKICAgIG1heSBzaW1wbHkgbWFuaWZlc3QgYXMgYSBmYWlsZWQgdGVzdCwgd2hpY2ggY2FuIGJlIHJlY292ZXJlZCBmcm9tIHdpdGhvdXQKICAgIGludGVydmVudGlvbiBpbiBtb3N0IGNhc2VzLCBidXQgb24gV2luZG93cywgdGhlIGVudGlyZSBweXRob24gcHJvY2VzcyBjYW4KICAgIGNvbXBsZXRlbHkgYW5kIHV0dGVybHkgd2VkZ2UsIHJlcXVpcmluZyBzb21lb25lIHRvIGxvZyBpbiB0byB0aGUgYnVpbGRib3QKICAgIGFuZCBtYW51YWxseSBraWxsIHRoZSBhZmZlY3RlZCBwcm9jZXNzLgoKICAgIChUaGlzIGlzIGVhc3kgdG8gcmVwcm9kdWNlIG9uIFdpbmRvd3MsIHVuZm9ydHVuYXRlbHksIGFuZCBjYW4gYmUgdHJhY2VkIHRvCiAgICB0aGUgU09fUkVVU0VBRERSIHNvY2tldCBvcHRpb24gaGF2aW5nIGRpZmZlcmVudCBzZW1hbnRpY3Mgb24gV2luZG93cyB2ZXJzdXMKICAgIFVuaXgvTGludXguICBPbiBVbml4LCB5b3UgY2FuJ3QgaGF2ZSB0d28gQUZfSU5FVCBTT0NLX1NUUkVBTSBzb2NrZXRzIGJpbmQsCiAgICBsaXN0ZW4gYW5kIHRoZW4gYWNjZXB0IGNvbm5lY3Rpb25zIG9uIGlkZW50aWNhbCBob3N0L3BvcnRzLiAgQW4gRUFERFJJTlVTRQogICAgT1NFcnJvciB3aWxsIGJlIHJhaXNlZCBhdCBzb21lIHBvaW50IChkZXBlbmRpbmcgb24gdGhlIHBsYXRmb3JtIGFuZAogICAgdGhlIG9yZGVyIGJpbmQgYW5kIGxpc3RlbiB3ZXJlIGNhbGxlZCBvbiBlYWNoIHNvY2tldCkuCgogICAgSG93ZXZlciwgb24gV2luZG93cywgaWYgU09fUkVVU0VBRERSIGlzIHNldCBvbiB0aGUgc29ja2V0cywgbm8gRUFERFJJTlVTRQogICAgd2lsbCBldmVyIGJlIHJhaXNlZCB3aGVuIGF0dGVtcHRpbmcgdG8gYmluZCB0d28gaWRlbnRpY2FsIGhvc3QvcG9ydHMuIFdoZW4KICAgIGFjY2VwdCgpIGlzIGNhbGxlZCBvbiBlYWNoIHNvY2tldCwgdGhlIHNlY29uZCBjYWxsZXIncyBwcm9jZXNzIHdpbGwgc3RlYWwKICAgIHRoZSBwb3J0IGZyb20gdGhlIGZpcnN0IGNhbGxlciwgbGVhdmluZyB0aGVtIGJvdGggaW4gYW4gYXdrd2FyZGx5IHdlZGdlZAogICAgc3RhdGUgd2hlcmUgdGhleSdsbCBubyBsb25nZXIgcmVzcG9uZCB0byBhbnkgc2lnbmFscyBvciBncmFjZWZ1bCBraWxscywgYW5kCiAgICBtdXN0IGJlIGZvcmNpYmx5IGtpbGxlZCB2aWEgT3BlblByb2Nlc3MoKS9UZXJtaW5hdGVQcm9jZXNzKCkuCgogICAgVGhlIHNvbHV0aW9uIG9uIFdpbmRvd3MgaXMgdG8gdXNlIHRoZSBTT19FWENMVVNJVkVBRERSVVNFIHNvY2tldCBvcHRpb24KICAgIGluc3RlYWQgb2YgU09fUkVVU0VBRERSLCB3aGljaCBlZmZlY3RpdmVseSBhZmZvcmRzIHRoZSBzYW1lIHNlbWFudGljcyBhcwogICAgU09fUkVVU0VBRERSIG9uIFVuaXguICBHaXZlbiB0aGUgcHJvcGVuc2l0eSBvZiBVbml4IGRldmVsb3BlcnMgaW4gdGhlIE9wZW4KICAgIFNvdXJjZSB3b3JsZCBjb21wYXJlZCB0byBXaW5kb3dzIG9uZXMsIHRoaXMgaXMgYSBjb21tb24gbWlzdGFrZS4gIEEgcXVpY2sKICAgIGxvb2sgb3ZlciBPcGVuU1NMJ3MgMC45LjhnIHNvdXJjZSBzaG93cyB0aGF0IHRoZXkgdXNlIFNPX1JFVVNFQUREUiB3aGVuCiAgICBvcGVuc3NsLmV4ZSBpcyBjYWxsZWQgd2l0aCB0aGUgJ3Nfc2VydmVyJyBvcHRpb24sIGZvciBleGFtcGxlLiBTZWUKICAgIGh0dHA6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUyNTUwIGZvciBtb3JlIGluZm8uICBUaGUgZm9sbG93aW5nIHNpdGUgYWxzbwogICAgaGFzIGEgdmVyeSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBhYm91dCB0aGUgaW1wbGljYXRpb25zIG9mIGJvdGggUkVVU0VBRERSCiAgICBhbmQgRVhDTFVTSVZFQUREUlVTRSBvbiBXaW5kb3dzOgogICAgaHR0cDovL21zZG4yLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczc0MDYyMShWUy44NSkuYXNweCkKCiAgICBYWFg6IGFsdGhvdWdoIHRoaXMgYXBwcm9hY2ggaXMgYSB2YXN0IGltcHJvdmVtZW50IG9uIHByZXZpb3VzIGF0dGVtcHRzIHRvCiAgICBlbGljaXQgdW51c2VkIHBvcnRzLCBpdCByZXN0cyBoZWF2aWx5IG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIGVwaGVtZXJhbAogICAgcG9ydCByZXR1cm5lZCB0byB1cyBieSB0aGUgT1Mgd29uJ3QgaW1tZWRpYXRlbHkgYmUgZGlzaGVkIGJhY2sgb3V0IHRvIHNvbWUKICAgIG90aGVyIHByb2Nlc3Mgd2hlbiB3ZSBjbG9zZSBhbmQgZGVsZXRlIG91ciB0ZW1wb3Jhcnkgc29ja2V0IGJ1dCBiZWZvcmUgb3VyCiAgICBjYWxsaW5nIGNvZGUgaGFzIGEgY2hhbmNlIHRvIGJpbmQgdGhlIHJldHVybmVkIHBvcnQuICBXZSBjYW4gZGVhbCB3aXRoIHRoaXMKICAgIGlzc3VlIGlmL3doZW4gd2UgY29tZSBhY3Jvc3MgaXQuCiAgICApA9oGc29ja2V0cj0AAADaBWNsb3NlKQTaBmZhbWlseVoIc29ja3R5cGVaCHRlbXBzb2Nr2gRwb3J0clQAAAByVAAAAHJVAAAAcjwAAABEAgAAcwoAAAAAOBIBDAEKAQMBYwIAAAAAAAAAAwAAAAwAAABDAAAAcx8BAAB8AABqAAB0AQBqAgBrAgBy+AB8AABqAwB0AQBqBABrAgBy+AB0BQB0AQBkAQCDAgByYwB8AABqBgB0AQBqBwB0AQBqCACDAgBkAgBrAgByYwB0CQBkAwCDAQCCAQBxYwBuAAB0BQB0AQBkBACDAgByygBkBQB0CgBqCwBrBwByygB5MQB8AABqBgB0AQBqBwB0AQBqDACDAgBkAgBrAgBysQB0CQBkBgCDAQCCAQBuAABXccoABHQNAGsKAHLGAAEBAVlxygBYbgAAdAUAdAEAZAcAgwIAcvgAfAAAag4AdAEAagcAdAEAag8AZAIAgwMAAXH4AG4AAHwAAGoQAHwBAGQIAGYCAIMBAAF8AABqEQCDAABkAgAZfQIAfAIAUykJYSUDAABCaW5kIHRoZSBzb2NrZXQgdG8gYSBmcmVlIHBvcnQgYW5kIHJldHVybiB0aGUgcG9ydCBudW1iZXIuICBSZWxpZXMgb24KICAgIGVwaGVtZXJhbCBwb3J0cyBpbiBvcmRlciB0byBlbnN1cmUgd2UgYXJlIHVzaW5nIGFuIHVuYm91bmQgcG9ydC4gIFRoaXMgaXMKICAgIGltcG9ydGFudCBhcyBtYW55IHRlc3RzIG1heSBiZSBydW5uaW5nIHNpbXVsdGFuZW91c2x5LCBlc3BlY2lhbGx5IGluIGEKICAgIGJ1aWxkYm90IGVudmlyb25tZW50LiAgVGhpcyBtZXRob2QgcmFpc2VzIGFuIGV4Y2VwdGlvbiBpZiB0aGUgc29jay5mYW1pbHkKICAgIGlzIEFGX0lORVQgYW5kIHNvY2sudHlwZSBpcyBTT0NLX1NUUkVBTSwgKmFuZCogdGhlIHNvY2tldCBoYXMgU09fUkVVU0VBRERSCiAgICBvciBTT19SRVVTRVBPUlQgc2V0IG9uIGl0LiAgVGVzdHMgc2hvdWxkICpuZXZlciogc2V0IHRoZXNlIHNvY2tldCBvcHRpb25zCiAgICBmb3IgVENQL0lQIHNvY2tldHMuICBUaGUgb25seSBjYXNlIGZvciBzZXR0aW5nIHRoZXNlIG9wdGlvbnMgaXMgdGVzdGluZwogICAgbXVsdGljYXN0aW5nIHZpYSBtdWx0aXBsZSBVRFAgc29ja2V0cy4KCiAgICBBZGRpdGlvbmFsbHksIGlmIHRoZSBTT19FWENMVVNJVkVBRERSVVNFIHNvY2tldCBvcHRpb24gaXMgYXZhaWxhYmxlIChpLmUuCiAgICBvbiBXaW5kb3dzKSwgaXQgd2lsbCBiZSBzZXQgb24gdGhlIHNvY2tldC4gIFRoaXMgd2lsbCBwcmV2ZW50IGFueW9uZSBlbHNlCiAgICBmcm9tIGJpbmQoKSdpbmcgdG8gb3VyIGhvc3QvcG9ydCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSB0ZXN0LgogICAg2gxTT19SRVVTRUFERFJygAAAAHpIdGVzdHMgc2hvdWxkIG5ldmVyIHNldCB0aGUgU09fUkVVU0VBRERSIHNvY2tldCBvcHRpb24gb24gVENQL0lQIHNvY2tldHMh2gxTT19SRVVTRVBPUlRaF1dJVEhJTl9QWVRIT05fUlBNX0JVSUxEekh0ZXN0cyBzaG91bGQgbmV2ZXIgc2V0IHRoZSBTT19SRVVTRVBPUlQgc29ja2V0IG9wdGlvbiBvbiBUQ1AvSVAgc29ja2V0cyHaE1NPX0VYQ0xVU0lWRUFERFJVU0VyAQAA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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 2
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
__init__.cpython-34.pyc
67.22 KB
lrw-r--r--
2024-04-17 17:10:09
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-34.pyo
67.17 KB
lrw-r--r--
2024-04-17 17:10:05
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).