REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 67.17 KB
Close
//opt/alt/python34/lib64/python3.4/test/support/__pycache__/__init__.cpython-34.pyo
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).