REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 84.32 KB
Close
/opt/hc_python/lib64/python3.12/site-packages/nose/ext/__pycache__/dtcompat.cpython-312.pyc
Text
Base64
yw0NCgAAAAD0ke9nK1gBAOMAAAAAAAAAAAAAAAALAAAAAAAAAPOgAwAAlwBkAFoAZAFaAWcAZAKiAVoCZANkBGwDWgNkA2QEbARaBGQDZARsBVoFZANkBGwGWgZkA2QEbAdaB2QDZARsCFoIZANkBGwJWglkA2QEbApaCmQDZARsC1oLZANkBGwMWgxkA2QEbA1aDWQDZARsDloOZANkBWwPbRBaEAEAAgBlDmoiAAAAAAAAAAAAAAAAAAAAAAAAZAZkB2USZRNkA6sFAAAAAAAAAQBpAFoUZAiEAFoVAgBlFWQJqwEAAAAAAABaFgIAZRVkCqsBAAAAAAAAWhcCAGUVZAurAQAAAAAAAFoYAgBlFWQMqwEAAAAAAABaGQIAZRVkDasBAAAAAAAAWhplFmUXegcAAGUYegcAAGUZegcAAGUaegcAAFobAgBlFWQOqwEAAAAAAABaHAIAZRVkD6sBAAAAAAAAWh0CAGUVZBCrAQAAAAAAAFoeAgBlFWQRqwEAAAAAAABaH2UcZR16BwAAZR56BwAAZR96BwAAWiBkElohZBNaImQUhABaI2QVhABaJGRGZBaEAVolZEdkF4QBWiZkGIQAWicCAEcAZBmEAGQaZRCrAwAAAAAAAFooZBuEAFopZByEAFoqAgBHAGQdhABkHmUMalYAAAAAAAAAAAAAAAAAAAAAAACrAwAAAAAAAFosZB+EAFotAgBHAGQghABkIasCAAAAAAAAWi4CAEcAZCKEAGQjqwIAAAAAAABaLwIARwBkJIQAZCWrAgAAAAAAAFowAgBHAGQmhABkJ6sCAAAAAAAAWjECAEcAZCiEAGQpqwIAAAAAAABaMgIARwBkKoQAZCurAgAAAAAAAFozAgBHAGQshABkLWU0qwMAAAAAAABaNQIARwBkLoQAZC9lNKsDAAAAAAAAWjYCAEcAZDCEAGQxZTKrAwAAAAAAAFo3ZARhOAkACQAJAGRIZDSEAVo5ZDJkBGQEZARkBGQyZANkBGQzAgBlMKsAAAAAAAAAZgpkNYQBWjoJAAkAZElkNoQBWjsCAEcAZDeEAGQ4qwIAAAAAAABaPGQDYT1kOYQAWj4CAEcAZDqEAGQ7ZQpqfgAAAAAAAAAAAAAAAAAAAAAAAKsDAAAAAAAAWkBkSmQ8hAFaQQIARwBkPYQAZD5lQKsDAAAAAAAAWkJkMmQEZAQCAGUwqwAAAAAAAABmBGQ/hAFaQ2RAhABaRGRBhABaRWRChABaRmRLZEOEAVpHZEtkRIQBWkhkTGRFhAFaSWkAWkp5BClNYcUEAABNb2R1bGUgZG9jdGVzdCAtLSBhIGZyYW1ld29yayBmb3IgcnVubmluZyBleGFtcGxlcyBpbiBkb2NzdHJpbmdzLgoKSW4gc2ltcGxlc3QgdXNlLCBlbmQgZWFjaCBtb2R1bGUgTSB0byBiZSB0ZXN0ZWQgd2l0aDoKCmRlZiBfdGVzdCgpOgogICAgaW1wb3J0IGRvY3Rlc3QKICAgIGRvY3Rlc3QudGVzdG1vZCgpCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgX3Rlc3QoKQoKVGhlbiBydW5uaW5nIHRoZSBtb2R1bGUgYXMgYSBzY3JpcHQgd2lsbCBjYXVzZSB0aGUgZXhhbXBsZXMgaW4gdGhlCmRvY3N0cmluZ3MgdG8gZ2V0IGV4ZWN1dGVkIGFuZCB2ZXJpZmllZDoKCnB5dGhvbiBNLnB5CgpUaGlzIHdvbid0IGRpc3BsYXkgYW55dGhpbmcgdW5sZXNzIGFuIGV4YW1wbGUgZmFpbHMsIGluIHdoaWNoIGNhc2UgdGhlCmZhaWxpbmcgZXhhbXBsZShzKSBhbmQgdGhlIGNhdXNlKHMpIG9mIHRoZSBmYWlsdXJlKHMpIGFyZSBwcmludGVkIHRvIHN0ZG91dAood2h5IG5vdCBzdGRlcnI/IGJlY2F1c2Ugc3RkZXJyIGlzIGEgbGFtZSBoYWNrIDwwLjIgd2luaz4pLCBhbmQgdGhlIGZpbmFsCmxpbmUgb2Ygb3V0cHV0IGlzICJUZXN0IGZhaWxlZC4iLgoKUnVuIGl0IHdpdGggdGhlIC12IHN3aXRjaCBpbnN0ZWFkOgoKcHl0aG9uIE0ucHkgLXYKCmFuZCBhIGRldGFpbGVkIHJlcG9ydCBvZiBhbGwgZXhhbXBsZXMgdHJpZWQgaXMgcHJpbnRlZCB0byBzdGRvdXQsIGFsb25nCndpdGggYXNzb3J0ZWQgc3VtbWFyaWVzIGF0IHRoZSBlbmQuCgpZb3UgY2FuIGZvcmNlIHZlcmJvc2UgbW9kZSBieSBwYXNzaW5nICJ2ZXJib3NlPVRydWUiIHRvIHRlc3Rtb2QsIG9yIHByb2hpYml0Cml0IGJ5IHBhc3NpbmcgInZlcmJvc2U9RmFsc2UiLiAgSW4gZWl0aGVyIG9mIHRob3NlIGNhc2VzLCBzeXMuYXJndiBpcyBub3QKZXhhbWluZWQgYnkgdGVzdG1vZC4KClRoZXJlIGFyZSBhIHZhcmlldHkgb2Ygb3RoZXIgd2F5cyB0byBydW4gZG9jdGVzdHMsIGluY2x1ZGluZyBpbnRlZ3JhdGlvbgp3aXRoIHRoZSB1bml0dGVzdCBmcmFtZXdvcmssIGFuZCBzdXBwb3J0IGZvciBydW5uaW5nIG5vbi1QeXRob24gdGV4dApmaWxlcyBjb250YWluaW5nIGRvY3Rlc3RzLiAgVGhlcmUgYXJlIGFsc28gbWFueSB3YXlzIHRvIG92ZXJyaWRlIHBhcnRzCm9mIGRvY3Rlc3QncyBkZWZhdWx0IGJlaGF2aW9ycy4gIFNlZSB0aGUgTGlicmFyeSBSZWZlcmVuY2UgTWFudWFsIGZvcgpkZXRhaWxzLgp6E3JlU3RydWN0dXJlZFRleHQgZW4pIdoTcmVnaXN0ZXJfb3B0aW9uZmxhZ9oWRE9OVF9BQ0NFUFRfVFJVRV9GT1JfMdoVRE9OVF9BQ0NFUFRfQkxBTktMSU5F2hROT1JNQUxJWkVfV0hJVEVTUEFDRdoIRUxMSVBTSVPaF0lHTk9SRV9FWENFUFRJT05fREVUQUlM2hBDT01QQVJJU09OX0ZMQUdT2gxSRVBPUlRfVURJRkbaDFJFUE9SVF9DRElGRtoMUkVQT1JUX05ESUZG2hlSRVBPUlRfT05MWV9GSVJTVF9GQUlMVVJF2g9SRVBPUlRJTkdfRkxBR1PaCmlzX3ByaXZhdGXaB0V4YW1wbGXaB0RvY1Rlc3TaDURvY1Rlc3RQYXJzZXLaDURvY1Rlc3RGaW5kZXLaDURvY1Rlc3RSdW5uZXLaDU91dHB1dENoZWNrZXLaDkRvY1Rlc3RGYWlsdXJl2hNVbmV4cGVjdGVkRXhjZXB0aW9u2gtEZWJ1Z1J1bm5lctoHdGVzdG1vZNoIdGVzdGZpbGXaFnJ1bl9kb2NzdHJpbmdfZXhhbXBsZXPaBlRlc3RlctoMRG9jVGVzdFN1aXRl2gxEb2NGaWxlU3VpdGXaGHNldF91bml0dGVzdF9yZXBvcnRmbGFnc9oUc2Ny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dHB1dCBmcm9tIHJ1bm5pbmcgdGhlIHNvdXJjZSBjb2RlIChlaXRoZXIKICAgICAgICBmcm9tIHN0ZG91dCwgb3IgYSB0cmFjZWJhY2sgaW4gY2FzZSBvZiBleGNlcHRpb24pLiAgYHdhbnRgIGVuZHMKICAgICAgICB3aXRoIGEgbmV3bGluZSB1bmxlc3MgaXQncyBlbXB0eSwgaW4gd2hpY2ggY2FzZSBpdCdzIGFuIGVtcHR5CiAgICAgICAgc3RyaW5nLiAgVGhlIGNvbnN0cnVjdG9yIGFkZHMgYSBuZXdsaW5lIGlmIG5lZWRlZC4KCiAgICAgIC0gZXhjX21zZzogVGhlIGV4Y2VwdGlvbiBtZXNzYWdlIGdlbmVyYXRlZCBieSB0aGUgZXhhbXBsZSwgaWYKICAgICAgICB0aGUgZXhhbXBsZSBpcyBleHBlY3RlZCB0byBnZW5lcmF0ZSBhbiBleGNlcHRpb247IG9yIGBOb25lYCBpZgogICAgICAgIGl0IGlzIG5vdCBleHBlY3RlZCB0byBnZW5lcmF0ZSBhbiBleGNlcHRpb24uICBUaGlzIGV4Y2VwdGlvbgogICAgICAgIG1lc3NhZ2UgaXMgY29tcGFyZWQgYWdhaW5zdCB0aGUgcmV0dXJuIHZhbHVlIG9mCiAgICAgICAgYHRyYWNlYmFjay5mb3JtYXRfZXhjZXB0aW9uX29ubHkoKWAuICBgZXhjX21zZ2AgZW5kcyB3aXRoIGEKICAgICAgICBuZXdsaW5lIHVubGVzcyBpdCdzIGBOb25lYC4gIFRoZSBjb25zdHJ1Y3RvciBhZGRzIGEgbmV3bGluZQogICAgICAgIGlmIG5lZWRlZC4KCiAgICAgIC0gbGluZW5vOiBUaGUgbGluZSBudW1iZXIgd2l0aGluIHRoZSBEb2NUZXN0IHN0cmluZyBjb250YWluaW5nCiAgICAgICAgdGhpcyBFeGFtcGxlIHdoZXJlIHRoZSBFeGFtcGxlIGJlZ2lucy4gIFRoaXMgbGluZSBudW1iZXIgaXMKICAgICAgICB6ZXJvLWJhc2VkLCB3aXRoIHJlc3BlY3QgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgRG9jVGVzdC4KCiAgICAgIC0gaW5kZW50OiBUaGUgZXhhbXBsZSdzIGlu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ICAgICAgICAgICBbIF0qICBcLlwuXC4gLiopKikgICMgUFMyIGxpbmVzCiAgICAgICAgXG4/CiAgICAgICAgIyBXYW50IGNvbnNpc3RzIG9mIGFueSBub24tYmxhbmsgbGluZXMgdGhhdCBkbyBub3Qgc3RhcnQgd2l0aCBQUzEuCiAgICAgICAgKD9QPHdhbnQ+ICg/Oig/IVsgXSokKSAgICAjIE5vdCBhIGJsYW5rIGxpbmUKICAgICAgICAgICAgICAgICAgICAgKD8hWyBdKj4+PikgICMgTm90IGEgbGluZSBzdGFydGluZyB3aXRoIFBTMQogICAgICAgICAgICAgICAgICAgICAuKiRcbj8gICAgICAgIyBCdXQgYW55IG90aGVyIGxpbmUKICAgICAgICAgICAgICAgICAgKSopCiAgICAgICAgYd8BAAAKICAgICAgICAjIEdyYWIgdGhlIHRyYWNlYmFjayBoZWFkZXIuICBEaWZmZXJlbnQgdmVyc2lvbnMgb2YgUHl0aG9uIGhhdmUKICAgICAgICAjIHNhaWQgZGlmZmVyZW50IHRoaW5ncyBvbiB0aGUgZmlyc3QgdHJhY2ViYWNrIGxpbmUuCiAgICAgICAgXig/UDxoZHI+IFRyYWNlYmFja1wgXCgKICAgICAgICAgICAgKD86IG1vc3RcIHJlY2VudFwgY2FsbFwgbGFzdAogICAgICAgICAgICB8ICAgaW5uZXJtb3N0XCBsYXN0CiAgICAgICAgICAgICkgXCkgOgogICAgICAgICkKICAgICAgICBccyogJCAgICAgICAgICAgICAgICAjIHRvc3MgdHJhaWxpbmcgd2hpdGVzcGFjZSBvbiB0aGUgaGVhZGVyLgogICAgICAgICg/UDxzdGFjaz4gLio/KSAgICAgICMgZG9uJ3QgYmxpbms6IGFic29yYiBzdHVmZiB1bnRpbC4uLgogICAgICAgIF4gKD9QPG1zZz4gXHcrIC4qKSAgICMgICAgIGEgbGluZSAqc3RhcnRzKiB3aXRoIGFscGhhbnVtLgogICAgICAgIHoMXlsgXSooIy4qKT8kYwMAAAAAAAAAAAAAAA8AAAADAAAA8wwDAACXAHwBagEAAAAAAAAAAAAAAAAAAAAAAACrAAAAAAAAAH0BfABqAwAAAAAA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fABfAwAAAAAAAAAAfAR8AF8EAAAAAAAAAAB5ASkCYXQCAAAKICAgICAgICBDcmVhdGUgYSBuZXcgZG9jdGVzdCBmaW5kZXIuCgogICAgICAgIFRoZSBvcHRpb25hbCBhcmd1bWVudCBgcGFyc2VyYCBzcGVjaWZpZXMgYSBjbGFzcyBvcgogICAgICAgIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gY3JlYXRlIG5ldyBEb2NUZXN0IG9iamVjdHMgKG9yCiAgICAgICAgb2JqZWN0cyB0aGF0IGltcGxlbWVudCB0aGUgc2FtZSBpbnRlcmZhY2UgYXMgRG9jVGVzdCkuICBUaGUKICAgICAgICBzaWduYXR1cmUgZm9yIHRoaXMgZmFjdG9yeSBmdW5jdGlvbiBzaG91bGQgbWF0Y2ggdGhlIHNpZ25hdHVyZQogICAgICAgIG9mIHRoZSBEb2NUZXN0IGNvbnN0cnVjdG9yLgoKICAgICAgICBJZiB0aGUgb3B0aW9uYWwgYXJndW1lbnQgYHJlY3Vyc2VgIGlzIGZhbHNlLCB0aGVuIGBmaW5kYCB3aWxsCiAgICAgICAgb25seSBleGFtaW5lIHRoZSBnaXZlbiBvYmplY3QsIGFuZCBub3QgYW55IGNvbnRhaW5lZCBvYmplY3RzLgoKICAgICAgICBJZiB0aGUgb3B0aW9uYWwgYXJndW1lbnQgYGV4Y2x1ZGVfZW1wdHlgIGlzIGZhbHNlLCB0aGVuIGBmaW5kYAogICAgICAgIHdpbGwgaW5jbHVkZSB0ZXN0cyBmb3Igb2JqZWN0cyB3aXRoIGVtcHR5IGRvY3N0cmluZ3MuCiAgICAgICAgTikF2gdfcGFyc2Vy2ghfdmVyYm9zZdoIX3JlY3Vyc2XaDl9leGNsdWRlX2VtcHR52gtfbmFtZWZpbHRlcikGcnAAAADaB3ZlcmJvc2XaBnBhcnNlctoHcmVjdXJzZXICAQAA2g1leGNsdWRlX2VtcHR5cwYAAAAgICAgICByLAAAAHKRAAAAehZEb2NUZXN0RmluZGVyLl9faW5pdF9f3wIAAHMrAAAAgADwIgAYHogEjAzYGB+IBIwN2BgfiASMDdgeK4gE1Agb8AYAHCeIBNUIGHItAAAAYwYAAAAAAAAAAAAAAAkAAAADAAAA8xwCAACXAHwCgCZ0AQAAAAAAAAAAfAFkAmQBqwMAAAAAAAB9AnwCgBd0AwAAAAAAAAAAZAN0BQAAAAAAAAAAfAGrAQAAAAAAAJsCnQKrAQAAAAAAAIIBfANkBHUAcgNkAX0Dbhd8A4AVdAcAAAAAAAAAAGoIAAAAAAAAAAAAAAAAAAAAAAAAfAGrAQAAAAAAAH0DCQB0BwAAAAAAAAAAagoAAAAAAAAAAAAAAAAAAAAAAAB8AasBAAAAAAAAeAFzFQEAdAcAAAAAAAAAAGoMAAAAAAAAAAAAAAAAAAAAAAAAfAGrAQAAAAAAAH0GdA8AAAAAAAAAAGoQAAAAAAAAAAAAAAAAAAAAAAAAfAarAQAAAAAAAH0HfAdzAmQBfQd8BIAgfAOAA2kAfQRuK3wDahQAAAAAAAAAAAAAAAAAAAAAAABqFwAAAAAAAAAAAAAAAAAAAAAAAKsAAAAAAAAAfQRuEHwEahcAAAAAAAAAAAAAAAAAAAAAAACrAAAAAAAAAH0EfAWBEXwEahkAAAAAAAAAAAAAAAAAAAAAAAB8BasBAAAAAAAAAQBnAH0IfABqGwAAAAAAAAAAAAAAAAAAAAAAAHwIfAF8AnwDfAd8BGkAqwcAAAAAAAABAHwIah0AAAAAAAAAAAAAAAAAAAAAAACrAAAAAAAAAAEAfAhTACMAdBIAAAAAAAAAACQAcgUBAGQBfQdZAIx9dwB4A1kAdwEpBWFqBgAACiAgICAgICAgUmV0dXJuIGEgbGlzdCBvZiB0aGUgRG9jVGVzdHMgdGhhdCBhcmUgZGVmaW5lZCBieSB0aGUgZ2l2ZW4KICAgICAgICBvYmplY3QncyBkb2NzdHJpbmcsIG9yIGJ5IGFueSBvZiBpdHMgY29udGFpbmVkIG9iamVjdHMnCiAgICAgICAgZG9jc3RyaW5ncy4KCiAgICAgICAgVGhlIG9wdGlvbmFsIHBhcmFtZXRlciBgbW9kdWxlYCBpcyB0aGUgbW9kdWxlIHRoYXQgY29udGFpbnMKICAgICAgICB0aGUgZ2l2ZW4gb2JqZWN0LiAgSWYgdGhlIG1vZHVsZSBpcyBub3Qgc3BlY2lmaWVkIG9yIGlzIE5vbmUsIHRoZW4KICAgICAgICB0aGUgdGVzdCBmaW5kZXIgd2lsbCBhdHRlbXB0IHRvIGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5lIHRoZQogICAgICAgIGNvcnJlY3QgbW9kdWxlLiAgVGhlIG9iamVjdCdzIG1vZHVsZSBpcyB1c2VkOgoKICAgICAgICAgICAgLSBBcyBhIGRlZmF1bHQgbmFtZXNwYWNlLCBpZiBgZ2xvYnNgIGlzIG5vdCBzcGVjaWZpZWQuCiAgICAgICAgICAgIC0gVG8gcHJldmVudCB0aGUgRG9jVGVzdEZpbmRlciBmcm9tIGV4dHJhY3RpbmcgRG9jVGVzdHMKICAgICAgICAgICAgICBmcm9tIG9iamVjdHMgdGhhdCBhcmUgaW1wb3J0ZWQgZnJvbSBvdGhlciBtb2R1bGVzLgogICAgICAgICAgICAtIFRvIGZpbmQgdGhlIG5hbWUgb2YgdGhlIGZpbGUgY29udGFpbmluZyB0aGUgb2JqZWN0LgogICAgICAgICAgICAtIFRvIGhlbHAgZmluZCB0aGUgbGluZSBudW1iZXIgb2YgdGhlIG9iamVjdCB3aXRoaW4gaXRzCiAgICAgICAgICAgICAgZmlsZS4KCiAgICAgICAgQ29udGFpbmVkIG9iamVjdHMgd2hvc2UgbW9kdWxlIGRvZXMgbm90IG1hdGNoIGBtb2R1bGVgIGFyZSBpZ25vcmVkLgoKICAgICAgICBJZiBgbW9kdWxlYCBpcyBGYWxzZSwgbm8gYXR0ZW1wdCB0byBmaW5kIHRoZSBtb2R1bGUgd2lsbCBiZSBtYWRlLgogICAgICAgIFRoaXMgaXMgb2JzY3VyZSwgb2YgdXNlIG1vc3RseSBpbiB0ZXN0czogIGlmIGBtb2R1bGVgIGlzIEZhbHNlLCBvcgogICAgICAgIGlzIE5vbmUgYnV0IGNhbm5vdCBiZSBmb3VuZCBhdXRvbWF0aWNhbGx5LCB0aGVuIGFsbCBvYmplY3RzIGFyZQogICAgICAgIGNvbnNpZGVyZWQgdG8gYmVsb25nIHRvIHRoZSAobm9uLWV4aXN0ZW50KSBtb2R1bGUsIHNvIGFsbCBjb250YWluZWQKICAgICAgICBvYmplY3RzIHdpbGwgKHJlY3Vyc2l2ZWx5KSBiZSBzZWFyY2hlZCBmb3IgZG9jdGVzdHMuCgogICAgICAgIFRoZSBnbG9iYWxzIGZvciBlYWNoIERvY1Rlc3Qg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AAAAAAB8C2omAAAAAAAAAAAAAAAAAAAAAAAAZgJTACkHYeULAABtPU5vbmUsIG5hbWU9Tm9uZSwgZ2xvYnM9Tm9uZSwgdmVyYm9zZT1Ob25lLCBpc3ByaXZhdGU9Tm9uZSwKICAgICAgIHJlcG9ydD1UcnVlLCBvcHRpb25mbGFncz0wLCBleHRyYWdsb2JzPU5vbmUsIHJhaXNlX29uX2Vycm9yPUZhbHNlLAogICAgICAgZXhjbHVkZV9lbXB0eT1GYWxzZQoKICAgIFRlc3QgZXhhbXBsZXMgaW4gZG9jc3RyaW5ncyBpbiBmdW5jdGlvbnMgYW5kIGNsYXNzZXMgcmVhY2hhYmxlCiAgICBmcm9tIG1vZHVsZSBtIChvciB0aGUgY3VycmVudCBtb2R1bGUgaWYgbSBpcyBub3Qgc3VwcGxpZWQpLCBzdGFydGluZwogICAgd2l0aCBtLl9fZG9jX18uICBVbmxlc3MgaXNwcml2YXRlIGlzIHNwZWNpZmllZCwgcHJpdmF0ZSBuYW1lcwogICAgYXJlIG5vdCBza2lwcGVkLgoKICAgIEFsc28gdGVzdCBleGFtcGxlcyByZWFjaGFibGUgZnJvbSBkaWN0IG0uX190ZXN0X18gaWYgaXQgZXhpc3RzIGFuZCBpcwogICAgbm90IE5vbmUuICBtLl9fdGVzdF9fIG1hcHMgbmFtZXMgdG8gZnVuY3Rpb25zLCBjbGFzc2VzIGFuZCBzdHJpbmdzOwogICAgZnVuY3Rpb24gYW5kIGNsYXNzIGRvY3N0cmluZ3MgYXJlIHRlc3RlZCBldmVuIGlmIHRoZSBuYW1lIGlzIHByaXZhdGU7CiAgICBzdHJpbmdzIGFyZSB0ZXN0ZWQgZGlyZWN0bHksIGFzIGlmIHRoZXkgd2VyZSBkb2NzdHJpbmdzLgoKICAgIFJldHVybiAoI2ZhaWx1cmVzLCAjdGVzdHMpLgoKICAgIFNlZSBkb2N0ZXN0Ll9fZG9jX18gZm9yIGFuIG92ZXJ2aWV3LgoKICAgIE9wdGlvbmFsIGtleXdvcmQgYXJnICJuYW1lIiBnaXZlcyB0aGUgbmFtZSBvZiB0aGUgbW9kdWxlOyBieSBkZWZhdWx0CiAgICB1c2UgbS5fX25hbWVfXy4KCiAgICBPcHRpb25hbCBrZXl3b3JkIGFyZyAiZ2xvYnMiIGdpdmVzIGEgZGljdCB0byBiZSB1c2VkIGFzIHRoZSBnbG9iYWxzCiAgICB3aGVuIGV4ZWN1dGluZyBleGFtcGxlczsgYnkgZGVmYXVsdCwgdXNlIG0uX19kaWN0X18uICBBIGNvcHkgb2YgdGhpcwogICAgZGljdCBpcyBhY3R1YWxseSB1c2VkIGZvciBlYWNoIGRvY3N0cmluZywgc28gdGhhdCBlYWNoIGRvY3N0cmluZydzCiAgICBleGFtcGxlcyBzdGFydCB3aXRoIGEgY2xlYW4gc2xhdGUuCgogICAgT3B0aW9uYWwga2V5d29yZCBhcmcgImV4dHJhZ2xvYnMiIGdpdmVzIGEgZGljdGlvbmFyeSB0aGF0IHNob3VsZCBiZQogICAgbWVyZ2VkIGludG8gdGhlIGdsb2JhbHMgdGhhdCBhcmUgdXNlZCB0byBleGVjdXRlIGV4YW1wbGVzLiAgQnkKICAgIGRlZmF1bHQsIG5vIGV4dHJhIGdsb2JhbHMgYXJlIHVzZWQuICBUaGlzIGlzIG5ldyBpbiAyLjQuCgogICAgT3B0aW9uYWwga2V5d29yZCBhcmcgInZlcmJvc2UiIHByaW50cyBsb3RzIG9mIHN0dWZmIGlmIHRydWUsIHByaW50cwogICAgb25seSBmYWlsdXJlcyBpZiBmYWxzZTsgYnkgZGVmYXVsdCwgaXQncyB0cnVlIGlmZiAiLXYiIGlzIGluIHN5cy5hcmd2LgoKICAgIE9wdGlvbmFsIGtleXdvcmQgYXJnICJyZXBvcnQiIHByaW50cyBhIHN1bW1hcnkgYXQgdGhlIGVuZCB3aGVuIHRydWUsCiAgICBlbHNlIHByaW50cyBub3RoaW5nIGF0IHRoZSBlbmQuICBJbiB2ZXJib3NlIG1vZGUsIHRoZSBzdW1tYXJ5IGlzCiAgICBkZXRhaWxlZCwgZWxzZSB2ZXJ5IGJyaWVmIChpbiBmYWN0LCBlbXB0eSBpZiBhbGwgdGVzdHMgcGFzc2VkKS4KCiAgICBPcHRpb25hbCBrZXl3b3JkIGFyZyAib3B0aW9uZmxhZ3MiIG9yJ3MgdG9nZXRoZXIgbW9kdWxlIGNvbnN0YW50cywKICAgIGFuZCBkZWZhdWx0cyB0byAwLiAgVGhpcyBpcyBuZXcgaW4gMi4zLiAgUG9zc2libGUgdmFsdWVzIChzZWUgdGhlCiAgICBkb2NzIGZvciBkZXRhaWxzKToKCiAgICAgICAgRE9OVF9BQ0NFUFRfVFJVRV9GT1JfMQogICAgICAgIERPTlRfQUNDRVBUX0JMQU5LTElORQogICAgICAgIE5PUk1BTElaRV9XSElURVNQQUNFCiAgICAgICAgRUxMSVBTSVMKICAgICAgICBJR05PUkVfRVhDRVBUSU9OX0RFVEFJTAogICAgICAgIFJFUE9SVF9VRElGRgogICAgICAgIFJFUE9SVF9DRElGRgogICAgICAgIFJFUE9SVF9ORElGRgogICAgICAgIFJFUE9SVF9PTkxZX0ZJUlNUX0ZBSUxVUkUKCiAgICBPcHRpb25hbCBrZXl3b3JkIGFyZyAicmFpc2Vfb25fZXJyb3IiIHJhaXNlcyBhbiBleGNlcHRpb24gb24gdGhlCiAgICBmaXJzdCB1bmV4cGVjdGVkIGV4Y2VwdGlvbiBvciBmYWlsdXJlLiBUaGlzIGFsbG93cyBmYWlsdXJlcyB0byBiZQogICAgcG9zdC1tb3J0ZW0gZGVidWdnZWQuCgogICAgRGVwcmVjYXRlZCBpbiBQeXRob24gMi40OgogICAgT3B0aW9uYWwga2V5d29yZCBhcmcgImlzcHJpdmF0ZSIgc3BlY2lmaWVzIGEgZnVuY3Rpb24gdXNlZCB0bwogICAgZGV0ZXJtaW5lIHdoZXRoZXIgYSBuYW1lIGlzIHByaXZhdGUuICBUaGUgZGVmYXVsdCBmdW5jdGlvbiBpcwogICAgdHJlYXQgYWxsIGZ1bmN0aW9ucyBhcyBwdWJsaWMuICBPcHRpb25hbGx5LCAiaXNwcml2YXRlIiBjYW4gYmUKICAgIHNldCB0byBkb2N0ZXN0LmlzX3ByaXZhdGUgdG8gc2tpcCBvdmVyIGZ1bmN0aW9ucyBtYXJrZWQgYXMgcHJpdmF0ZQogICAgdXNpbmcgdGhlIHVuZGVyc2NvcmUgbmFtaW5nIGNvbnZlbnRpb247IHNlZSBpdHMgZG9jcyBmb3IgZGV0YWlscy4KCiAgICBBZHZhbmNlZCB0b21mb29sZXJ5OiAgdGVzdG1vZCBydW5zIG1ldGhvZHMgb2YgYSBsb2NhbCBpbnN0YW5j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dmUiIGlzIFRydWUgKHRoZSBkZWZhdWx0KSwgdGhlbiAiZmlsZW5hbWUiCiAgICAgICAgIHNwZWNpZmllcyBhIG1vZHVsZS1yZWxhdGl2ZSBwYXRoLiAgQnkgZGVmYXVsdCwgdGhpcyBwYXRoIGlzCiAgICAgICAgIHJlbGF0aXZlIHRvIHRoZSBjYWxsaW5nIG1vZHVsZSdzIGRpcmVjdG9yeTsgYnV0IGlmIHRoZQogICAgICAgICAicGFja2FnZSIgYXJndW1lbnQgaXMgc3BlY2lmaWVkLCB0aGVuIGl0IGlzIHJlbGF0aXZlIHRvIHRoYXQKICAgICAgICAgcGFja2FnZS4gIFRvIGVuc3VyZSBvcy1pbmRlcGVuZGVuY2UsICJmaWxlbmFtZSIgc2hvdWxkIHVzZQogICAgICAgICAiLyIgY2hhcmFjdGVycyB0byBzZXBhcmF0ZSBwYXRoIHNlZ21lbnRzLCBhbmQgc2hvdWxkIG5vdAogICAgICAgICBiZSBhbiBhYnNvbHV0ZSBwYXRoIChpLmUuLCBpdCBtYXkgbm90IGJlZ2luIHdpdGggIi8iKS4KCiAgICAgIC0gSWYgIm1vZHVsZV9yZWxhdGl2ZSIgaXMgRmFsc2UsIHRoZW4gImZpbGVuYW1lIiBzcGVjaWZpZXMgYW4KICAgICAgICBvcy1zcGVjaWZpYyBwYXRoLiAgVGhlIHBhdGggbWF5IGJlIGFic29sdXRlIG9yIHJlbGF0aXZlICh0bwogICAgICAgIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5KS4KCiAgICBPcHRpb25hbCBrZXl3b3JkIGFyZyAibmFtZSIgZ2l2ZXMgdGhlIG5hbWUgb2YgdGhlIHRlc3Q7IGJ5IGRlZmF1bHQKICAgIHVzZSB0aGUgZmlsZSdzIGJhc2VuYW1lLgoKICAgIE9wdGlvbmFsIGtleXdvcmQgYXJndW1lbnQgInBhY2thZ2UiIGlzIGEgUHl0aG9uIHBhY2thZ2Ugb3IgdGhlCiAgICBuYW1lIG9mIGEgUHl0aG9uIHBhY2thZ2Ugd2hvc2UgZGlyZWN0b3J5IHNob3VsZCBiZSB1c2VkIGFzIHRoZQogICAgYmFzZSBkaXJlY3RvcnkgZm9yIGEgbW9kdWxlIHJlbGF0aXZlIGZpbGVuYW1lLiAgSWYgbm8gcGFja2FnZSBpcwogICAgc3BlY2lmaWVkLCB0aGVuIHRoZSBjYWxsaW5nIG1vZHVsZSdzIGRpcmVjdG9yeSBpcyB1c2VkIGFzIHRoZSBiYXNlCiAgICBkaXJlY3RvcnkgZm9yIG1vZHVsZSByZWxhdGl2ZSBmaWxlbmFtZXMuICBJdCBpcyBhbiBlcnJvciB0bwogICAgc3BlY2lmeSAicGFja2FnZSIgaWYgIm1vZHVsZV9yZWxhdGl2ZSIgaXMgRmFsc2UuCgogICAgT3B0aW9uYWwga2V5d29yZCBhcmcgImdsb2JzIiBnaXZlcyBhIGRpY3QgdG8gYmUgdXNlZCBhcyB0aGUgZ2xvYmFscwogICAgd2hlbiBleGVjdXRpbmcgZXhhbXBsZXM7IGJ5IGRlZmF1bHQsIHVzZSB7fS4gIEEgY29weSBvZiB0aGlzIGRpY3QKICAgIGlzIGFjdHVhbGx5IHVzZWQgZm9yIGVhY2ggZG9jc3RyaW5nLCBzbyB0aGF0IGVhY2ggZG9jc3RyaW5nJ3MKICAgIGV4YW1wbGVzIHN0YXJ0IHdpdGggYSBjbGVhbiBzbGF0ZS4KCiAgICBPcHRpb25hbCBrZXl3b3JkIGFyZyAiZXh0cmFnbG9icyIgZ2l2ZXMgYSBkaWN0aW9uYXJ5IHRoYXQgc2hvdWxkIGJlCiAgICBtZXJnZWQgaW50byB0aGUgZ2xvYmFscyB0aGF0IGFyZSB1c2VkIHRvIGV4ZWN1dGUgZXhhbXBsZXMuICBCeQogICAgZGVmYXVsdCwgbm8gZXh0cmEgZ2xvYmFscyBhcmUgdXNlZC4KCiAgICBPcHRpb25hbCBrZXl3b3JkIGFyZyAidmVyYm9zZSIgcHJpbnRzIGxvdHMgb2Ygc3R1ZmYgaWYgdHJ1ZSwgcHJpbnRzCiAgICBvbmx5IGZhaWx1cmVzIGlmIGZhbHNlOyBieSBkZWZhdWx0LCBpdCdzIHRydWUgaWZmICItdiIgaXMgaW4gc3lzLmFyZ3YuCgogICAgT3B0aW9uYWwga2V5d29yZCBhcmcgInJlcG9ydCIgcHJpbnRzIGEgc3VtbWFyeSBhdCB0aGUgZW5kIHdoZW4gdHJ1ZSwKICAgIGVsc2UgcHJpbnRzIG5vdGhpbmcgYXQgdGhlIGVuZC4gIEluIHZlcmJvc2UgbW9kZSwgdGhlIHN1bW1hcnkgaXMKICAgIGRldGFpbGVkLCBlbHNlIHZlcnkgYnJpZWYgKGluIGZhY3QsIGVtcHR5IGlmIGFsbCB0ZXN0cyBwYXNzZWQpLgoKICAgIE9wdGlvbmFsIGtleXdvcmQgYXJnICJvcHRpb25mbGFncyIgb3IncyB0b2dldGhlciBtb2R1bGUgY29uc3RhbnRzLAogICAgYW5kIGRlZmF1bHRzIHRvIDAuICBQb3NzaWJsZSB2YWx1ZXMgKHNlZSB0aGUgZG9jcyBmb3IgZGV0YWlscyk6CgogICAgICAgIERPTlRfQUNDRVBUX1RSVUVfRk9SXzEKICAgICAgICBET05UX0FDQ0VQVF9CTEFOS0xJTkUKICAgICAgICBOT1JNQUxJWkVfV0hJVEVTUEFDRQogICAgICAgIEVMTElQU0lTCiAgICAgICAgSUdOT1JFX0VYQ0VQVElPTl9ERVRBSUwKICAgICAgICBSRVBPUlRfVURJRkYKICAgICAgICBSRVBPUlRfQ0RJRkYKICAgICAgICBSRVBPUlRfTkRJRkYKICAgICAgICBSRVBPUlRfT05MWV9GSVJTVF9GQUlMVVJFCgogICAgT3B0aW9uYWwga2V5d29yZCBhcmcgInJhaXNlX29uX2Vycm9yIiByYWlzZXMgYW4gZXhjZXB0aW9uIG9uIHRoZQogICAgZmlyc3QgdW5leHBlY3RlZCBleGNlcHRpb24gb3IgZmFpbHVyZS4gVGhpcyBhbGxvd3MgZmFpbHVyZXMgdG8gYmUKICAgIHBvc3QtbW9ydGVtIGRlYnVnZ2VkLgoKICAgIE9wdGlvbmFsIGtleXdvcmQgYXJnICJwYXJzZXIiIHNwZWNpZmllcyBhIERvY1Rlc3RQYXJzZXIgKG9yCiAgICBzdWJjbGFzcykgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBleHRyYWN0IHRlc3RzIGZyb20gdGhlIGZpbGVzLgoKICAgIEFkdmFuY2VkIHRvbWZvb2xlcnk6ICB0ZXN0bW9kIHJ1bnMgbWV0aG9kcyBvZiBhIGxvY2FsIGluc3RhbmNlIG9mCiAgICBjbGFzcyBkb2N0ZXN0LlRlc3RlciwgdGhlbiBtZXJnZXMgdGhlIHJlc3VsdHMgaW50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bnRhdGlvbiBzdHJpbmcgaW4gYSBtb2R1bGUgdGhhdAogICAgY29udGFpbnMgZG9jdGVzdCB0ZXN0cyB0byBhIHVuaXR0ZXN0IHRlc3QgY2FzZS4gIElmIGFueSBvZiB0aGUKICAgIHRlc3RzIGluIGEgZG9jIHN0cmluZyBmYWlsLCB0aGVuIHRoZSB0ZXN0IGNhc2UgZmFpbHMuICBBbiBleGNlcHRpb24KICAgIGlzIHJhaXNlZCBzaG93aW5nIHRoZSBuYW1lIG9mIHRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlIHRlc3QgYW5kIGEKICAgIChzb21ldGltZXMgYXBwcm94aW1hdGUpIGxpbmUgbnVtYmVyLgoKICAgIFRoZSBgbW9kdWxlYCBhcmd1bWVudCBwcm92aWRlcyB0aGUgbW9kdWxlIHRvIGJlIHRlc3RlZC4gIFRoZSBhcmd1bWVudAogICAgY2FuIGJlIGVpdGhlciBhIG1vZHVsZSBvciBhIG1vZHVsZSBuYW1lLgoKICAgIElmIG5vIGFyZ3VtZW50IGlzIGdpdmVuLCB0aGUgY2FsbGluZyBtb2R1bGUgaXMgdXNlZC4KCiAgICBBIG51bWJlciBvZiBvcHRpb25zIG1heSBiZSBwcm92aWRlZCBhcyBrZXl3b3JkIGFyZ3VtZW50czoKCiAgICBzZXRVcAogICAgICBBIHNldC11cCBmdW5jdGlvbi4gIFRoaXMgaXMgY2FsbGVkIGJlZm9yZSBydW5uaW5nIHRoZQogICAgICB0ZXN0cyBpbiBlYWNoIGZpbGUuIFRoZSBzZXRVcCBmdW5jdGlvbiB3aWxsIGJlIHBhc3NlZCBhIERvY1Rlc3QKICAgICAgb2JqZWN0LiAgVGhlIHNldFVwIGZ1bmN0aW9uIGNhbiBhY2Nlc3MgdGhlIHRlc3QgZ2xvYmFscyBhcyB0aGUKICAgICAgZ2xvYnMgYXR0cmlidXRlIG9mIHRoZSB0ZXN0IHBhc3NlZC4KCiAgICB0ZWFyRG93bgogICAgICBBIHRlYXItZG93biBmdW5jdGlvbi4gIFRoaXMgaXMgY2FsbGVkIGFmdGVyIHJ1bm5pbmcgdGhlCiAgICAgIHRlc3RzIGluIGVhY2ggZmlsZS4gIFRoZSB0ZWFyRG93biBmdW5jdGlvbiB3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b24gdGhlIGtleXdvcmQgYXJndW1lbnQKICAgICJtb2R1bGVfcmVsYXRpdmUiLgoKICAgIEEgbnVtYmVyIG9mIG9wdGlvbnMgbWF5IGJlIHByb3ZpZGVkIGFzIGtleXdvcmQgYXJndW1lbnRzOgoKICAgIG1vZHVsZV9yZWxhdGl2ZQogICAgICBJZiAibW9kdWxlX3JlbGF0aXZlIiBpcyBUcnVlLCB0aGVuIHRoZSBnaXZlbiBmaWxlIHBhdGhzIGFyZQogICAgICBpbnRlcnByZXRlZCBhcyBvcy1pbmRlcGVuZGVudCBtb2R1bGUtcmVsYXRpdmUgcGF0aHMuICBCeQogICAgICBkZWZhdWx0LCB0aGVzZSBwYXRocyBhcmUgcmVsYXRpdmUgdG8gdGhlIGNhbGxpbmcgbW9kdWxlJ3MKICAgICAgZGlyZWN0b3J5OyBidXQgaWYgdGhlICJwYWNrYWdlIiBhcmd1bWVudCBpcyBzcGVjaWZpZWQsIHRoZW4KICAgICAgdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhhdCBwYWNrYWdlLiAgVG8gZW5zdXJlIG9zLWluZGVwZW5kZW5jZSwKICAgICAgImZpbGVuYW1lIiBzaG91bGQgdXNlICIvIiBjaGFyYWN0ZXJzIHRvIHNlcGFyYXRlIHBhdGgKICAgICAgc2VnbWVudHMsIGFuZCBtYXkgbm90IGJlIGFuIGFic29sdXRlIHBhdGggKGkuZS4sIGl0IG1heSBub3QKICAgICAgYmVnaW4gd2l0aCAiLyIpLgoKICAgICAgSWYgIm1vZHVsZV9yZWxhdGl2ZSIgaXMgRmFsc2UsIHRoZW4gdGhlIGdpdmVuIGZpbGUgcGF0aHMgYXJlCiAgICAgIGludGVycHJldGVkIGFzIG9zLXNwZWNpZmljIHBhdGhzLiAgVGhlc2UgcGF0aHMgbWF5IGJlIGFic29sdXRlCiAgICAgIG9yIHJlbGF0aXZlICh0byB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSkuCgogICAgcGFja2FnZQogICAgICBBIFB5dGhvbiBwYWNrYWdlIG9yIHRoZSBuYW1lIG9mIGEgUHl0aG9uIHBhY2thZ2Ugd2hvc2UgZGlyZWN0b3J5CiAgICAgIHNob3VsZCBiZSB1c2VkIGFzIHRoZSBiYXNlIGRpcmVjdG9yeSBmb3IgbW9kdWxlIHJlbGF0aXZlIHBhdGhzLgogICAgICBJZiAicGFja2FnZSIgaXMgbm90IHNwZWNpZmllZCwgdGhlbiB0aGUgY2FsbGluZyBtb2R1bGUncwogICAgICBkaXJlY3RvcnkgaXMgdXNlZCBhcyB0aGUgYmFzZSBkaXJlY3RvcnkgZm9yIG1vZHVsZSByZWxhdGl2ZQogICAgICBmaWxlbmFtZXMuICBJdCBpcyBhbiBlcnJvciB0byBzcGVjaWZ5ICJwYWNrYWdlIiBpZgogICAgICAibW9kdWxlX3JlbGF0aXZlIiBpcyBGYWxzZS4KCiAgICBzZXRVcAogICAgICBBIHNldC11cCBmdW5jdGlvbi4gIFRoaXMgaXMgY2FsbGVkIGJlZm9yZSBydW5uaW5nIHRoZQogICAgICB0ZXN0cyBpbiBlYWNoIGZpbGUuIFRoZSBzZXRVcCBmdW5jdGlvbiB3aWxsIGJlIHBhc3NlZCBhIERvY1Rlc3QKICAgICAgb2JqZWN0LiAgVGhlIHNldFVwIGZ1bmN0aW9uIGNhbiBhY2Nlc3MgdGhlIHRlc3QgZ2xvYmFscyBhcyB0aGUKICAgICAgZ2xvYnMgYXR0cmlidXRlIG9mIHRoZSB0ZXN0IHBhc3NlZC4KCiAgICB0ZWFyRG93bgogICAgICBBIHRlYXItZG93biBmdW5jdGlvbi4gIFRoaXMgaXMgY2FsbGVkIGFmdGVyIHJ1bm5pbmcgdGhlCiAgICAgIHRlc3RzIGluIGVhY2ggZmlsZS4gIFRoZSB0ZWFyRG93biBmdW5jdGlvbiB3aWxsIGJlIHBhc3NlZCBhIERvY1Rlc3QKICAgICAgb2JqZWN0LiAgVGhlIHRlYXJEb3duIGZ1bmN0aW9uIGNhbiBhY2Nlc3MgdGhlIHRlc3QgZ2xvYmFscyBhcyB0aGUKICAgICAgZ2xvYnMgYXR0cmlidXRlIG9mIHRoZSB0ZXN0IHBhc3NlZC4KCiAgICBnbG9icwogICAgICBBIGRpY3Rpb25hcnkgY29udGFpbmluZyBpbml0aWFsIGdsb2JhbCB2YXJpYWJsZXMgZm9yIHRoZSB0ZXN0cy4KCiAgICBvcHRpb25mbGFncwogICAgICBBIHNldCBv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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
dtcompat.cpython-312.pyc
84.32 KB
lrw-r--r--
2025-04-04 08:01:56
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-312.pyc
204 B
lrw-r--r--
2025-04-04 08:01:56
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).