BLUE
PHP 7.4.33
Path:
/lib/python3.10/logging/__pycache__
Run
Logout
Edit File
Size: 43.64 KB
Close
/lib/python3.10/logging/__pycache__/handlers.cpython-310.pyc
Text
Base64
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cnpLCiAgICBBIGhhbmRsZXIgY2xhc3Mgd2hpY2ggc2VuZHMgYW4gU01UUCBlbWFpbCBmb3IgZWFjaCBsb2dnaW5nIGV2ZW50LgogICAgTucAAAAAAAAUQGMIAAAAAAAAAAAAAAAIAAAABAAAAEMAAABzigAAAHQAagGgAnwAoQEBAHQDfAF0BHQFZgKDAnIUfAFcAnwAXwZ8AF8Hbgd8AWQBAgJ8AF8GfABfB3QDfAV0BHQFZgKDAnIpfAVcAnwAXwh8AF8JbgNkAXwAXwh8AnwAXwp0A3wDdAuDAnI3fANnAX0DfAN8AF8MfAR8AF8NfAZ8AF8OfAd8AF8PZAFTACkCYXgDAAAKICAgICAgICBJbml0aWFsaXplIHRoZSBoYW5kbGVyLgoKICAgICAgICBJbml0aWFsaXplIHRoZSBpbnN0YW5jZSB3aXRoIHRoZSBmcm9tIGFuZCB0byBhZGRyZXNzZXMgYW5kIHN1YmplY3QKICAgICAgICBsaW5lIG9mIHRoZSBlbWFpbC4gVG8gc3BlY2lmeSBhIG5vbi1zdGFuZGFyZCBTTVRQIHBvcnQsIHVzZSB0aGUKICAgICAgICAoaG9zdCwgcG9ydCkgdHVwbGUgZm9ybWF0IGZvciB0aGUgbWFpbGhvc3QgYXJndW1lbnQuIFRvIHNwZWNpZnkKICAgICAgICBhdXRoZW50aWNhdGlvbiBjcmVkZW50aWFscywgc3VwcGx5IGEgKHVzZXJuYW1lLCBwYXNzd29yZCkgdHVwbGUKICAgICAgICBmb3IgdGhlIGNyZWRlbnRpYWxzIGFyZ3VtZW50LiBUbyBzcGVjaWZ5IHRoZSB1c2Ugb2YgYSBzZWN1cmUKICAgICAgICBwcm90b2NvbCAoVExTKSwgcGFzcyBpbiBhIHR1cGxlIGZvciB0aGUgc2VjdXJlIGFyZ3VtZW50LiBUaGlzIHdpbGwKICAgICAgICBvbmx5IGJlIHVzZWQgd2hlbiBhdXRoZW50aWNhdGlvbiBjcmVkZW50aWFscyBhcmUgc3VwcGxpZWQuIFRoZSB0dXBsZQogICAgICAgIHdpbGwgYmUgZWl0aGVyIGFuIGVtcHR5IHR1cGxlLCBvciBhIHNpbmdsZS12YWx1ZSB0dXBsZSB3aXRoIHRoZSBuYW1lCiAgICAgICAgb2YgYSBr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AAByEgAAAHISAAAAchMAAADaDGdldE1lc3NhZ2VJRGQEAADzAgAAAAQIeh5OVEV2ZW50TG9nSGFuZGxlci5nZXRNZXNzYWdlSURjAgAAAAAAAAAAAAAAAgAAAAEAAABDAAAAcokBAAApAnqeCiAgICAgICAgUmV0dXJuIHRoZSBldmVudCBjYXRlZ29yeSBmb3IgdGhlIHJlY29yZC4KCiAgICAgICAgT3ZlcnJpZGUgdGhpcyBpZiB5b3Ugd2FudCB0byBzcGVjaWZ5IHlvdXIgb3duIGNhdGVnb3JpZXMuIFRoaXMgdmVyc2lvbgogICAgICAgIHJldHVybnMgMC4KICAgICAgICByAQAAAHISAAAAchkAAAByEgAAAHISAAAAchMAAADaEGdldEV2ZW50Q2F0ZWdvcnluBAAAcwIAAAAEB3oiTlRFdmVudExvZ0hhbmRsZXIuZ2V0RXZlbnRDYXRlZ29yeWMCAAAAAAAAAAAAAAACAAAABAAAAEMAAABzEgAAAHwAagCgAXwBagJ8AGoDoQJTACkBYeUBAAAKICAgICAgICBSZXR1cm4gdGhlIGV2ZW50IHR5cGUgZm9yIHRoZSByZWNvcmQuCgogICAgICAgIE92ZXJyaWRlIHRoaXMgaWYgeW91IHdhbnQgdG8gc3BlY2lmeSB5b3VyIG93biB0eXBlcy4gVGhpcyB2ZXJzaW9uIGRvZXMKICAgICAgICBhIG1hcHBpbmcgdXNpbmcgdGhlIGhhbmRsZXIncyB0eXBlbWFwIGF0dHJpYnV0ZSwgd2hpY2ggaXMgc2V0IHVwIGluCiAgICAgICAgX19pbml0X18oKSB0byBhIGRpY3Rpb25hcnkgd2hpY2ggY29udGFpbnMgbWFwcGluZ3MgZm9yIERFQlVHLCBJTkZPLAogICAgICAgIFdBUk5JTkcsIEVSUk9SIGFuZCBDUklUSUNBTC4gSWYgeW91IGFyZSB1c2luZyB5b3VyIG93biBsZXZlbHMgeW91IHdpbGwKICAgICAgICBlaXRoZXIgbmVlZCB0byBvdmVycmlkZSB0aGlzIG1ldGhvZCBvciBwbGFjZSBhIHN1aXRhYmxlIGRpY3Rpb25hcnkgaW4KICAgICAgICB0aGUgaGFuZGxlcidzIHR5cGVtYXAgYXR0cmlidXRlLgogICAgICAgICkEcoYBAAByKAEAANoHbGV2ZWxub3KDAQAAchkAAAByEgAAAHISAAAAchMAAADaDGdldEV2ZW50VHlwZXcEAABzAgAAABILeh5OVEV2ZW50TG9nSGFuZGxlci5nZXRFdmVudFR5cGVjAgAAAAAAAAAAAAAABgAAAAgAAABDAAAAc3AAAAB8AGoAcjZ6I3wAoAF8AaEBfQJ8AKACfAGhAX0DfACgA3wBoQF9BHwAoAR8AaEBfQV8AGoAoAV8AGoGfAJ8A3wEfAVnAaEFAQBXAGQBUwAEAHQHeTUBAAEAAQB8AKAIfAGhAQEAWQBkAVMAdwBkAVMAKQJ6lAogICAgICAgIEVtaXQgYSByZWNvcmQuCgogICAgICAgIERldGVybWluZSB0aGUgbWVzc2FnZSBJRCwgZXZlbnQgY2F0ZWdvcnkgYW5kIGV2ZW50IHR5cGUuIFRoZW4KICAgICAgICBsb2cgdGhlIG1lc3NhZ2UgaW4gdGhlIE5UIGV2ZW50IGxvZy4KICAgICAgICBOKQlyfAEAAHKKAQAAcowBAAByjgEAAHJBAAAA2gtSZXBvcnRFdmVudHJ7AQAAchcAAAByGAAAACkGchAAAAByGgAAANoCaWTaA2NhdNoEdHlwZXJGAAAAchIAAAByEgAAAHITAAAAchYAAACEBAAAcxYAAAAGBwIBCgEKAQoBCgEeAQwBEAEC/wT5ehZOVEV2ZW50TG9nSGFuZGxlci5lbWl0YwEAAAAAAAAAAAAAAAEAAAADAAAAQwAAAHMQAAAAdABqAaACfAChAQEAZAFTACkCYVMBAAAKICAgICAgICBDbGVhbiB1cCB0aGlzIGhhbmRsZXIuCgogICAgICAgIFlvdSBjYW4gcmVtb3ZlIHRoZSBhcHBsaWNhdGlvbiBuYW1lIGZyb20gdGhlIHJlZ2lzdHJ5IGFzIGEKICAgICAgICBzb3VyY2Ugb2YgZXZlbnQgbG9nIGVudHJpZXMuIEhvd2V2ZXIsIGlmIHlvdSBkbyB0aGlzLCB5b3Ugd2lsbAogICAgICAgIG5vdCBiZSBhYmxlIHRvIHNlZSB0aGUgZXZlbnRzIGFzIHlvdSBpbnRlbmRlZCBpbiB0aGUgRXZlbnQgTG9nCiAgICAgICAgVmlld2VyIC0gaXQgbmVlZHMgdG8gYmUgYWJsZSB0byBhY2Nlc3MgdGhlIHJlZ2lzdHJ5IHRvIGdldCB0aGUKICAgICAgICBETEwgbmFtZS4KICAgICAgICBOKQNyDAAAAHKlAAAAcjcAAAByJgEAAHISAAAAchIAAAByEwAAAHI3AAAAlQQAAHMCAAAAEAt6F05URXZlbnRMb2dIYW5kbGVyLmNsb3NlKQJOcncBAAApCnIoAAAAcikAAAByKgAAAHIrAAAAcg4AAAByigEAAHKMAQAAco4BAAByFgAAAHI3AAAAchIAAAByEgAAAHISAAAAchMAAABydgEAADcEAABzEAAAAAgABAEKCQgjCAoICQgNDBFydgEAAGMAAAAAAAAAAAAAAAAAAAAAAwAAAEAAAABzNgAAAGUAWgFkAFoCZAFaAwkECQRkDWQFZAaEAVoEZAdkCIQAWgVkCWQKhABaBmQLZAyEAFoHZARTACkO2gtIVFRQSGFuZGxlcnpeCiAgICBBIGNsYXNzIHdoaWNoIHNlbmRzIHJlY29yZHMgdG8gYSB3ZWIgc2VydmVyLCB1c2luZyBlaXRoZXIgR0VUIG9yCiAgICBQT1NUIHNlbWFudGljcy4KICAgINoDR0VURk5jBwAAAAAAAAAAAAAABwAAAAMAAABDAAAAc2AAAAB0AGoBoAJ8AKEBAQB8A6ADoQB9A3wDZAF2AXISdARkAoMBggF8BHMcfAZkA3UBchx0BGQEgwGCAXwBfABfBXwCfABfBnwDfABfB3wEfABfCHwFfABfCXwGfABfCmQDUwApBXpyCiAgICAgICAgSW5pdGlhbGl6ZSB0aGUgaW5zdGFuY2Ugd2l0aCB0aGUgaG9zdCwgdGhlIHJlcXVlc3QgVVJMLCBhbmQgdGhlIG1ldGhvZAogICAgICAgICgiR0VUIiBvciAiUE9TVCIpCiAgICAgICAgKQJylAEAANoEUE9TVHoabWV0aG9kIG11c3QgYmUgR0VUIG9yIFBPU1ROejNjb250ZXh0IHBhcmFtZXRlciBvbmx5IG1ha2VzIHNlbnNlIHdpdGggc2VjdXJlPVRydWUpC3IMAAAAcqUAAAByDgAAAHJTAAAAclsAAABypgAAANoDdXJs2gZtZXRob2RyXwEAAHJgAQAA2gdjb250ZXh0KQdyEAAAAHKmAAAAcpYBAABylwEAAHJfAQAAcmABAABymAEAAHISAAAAchIAAAByEwAAAHIOAAAApwQAAHMYAAAADAYIAQgBCAEMAQgBBgIGAQYBBgEGAQoBehRIVFRQSGFuZGxlci5fX2luaXRfX2MCAAAAAAAAAAAAAAACAAAAAQAAAEMAAABzBgAAAHwBagBTACkBerMKICAgICAgICBEZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIG1hcHBpbmcgdGhlIGxvZyByZWNvcmQgaW50byBhIGRpY3QKICAgICAgICB0aGF0IGlzIHNlbnQgYXMgdGhlIENHSSBkYXRhLiBPdmVyd3JpdGUgaW4geW91ciBjbGFzcy4KICAgICAgICBDb250cmlidXRlZCBieSBGcmFueiBHbGFzbmVyLgogICAgICAgICkBcsUAAAByGQAAAHISAAAAchIAAAByEwAAANoMbWFwTG9nUmVjb3JkuwQAAHMCAAAABgZ6GEhUVFBIYW5kbGVyLm1hcExvZ1JlY29yZGMDAAAAAAAAAAAAAAAFAAAABAAAAEMAAABzMgAAAGQBZAJsAH0DfAJyEXwDagFqAnwBfABqA2QDjQJ9BHwEUwB8A2oBoAR8AaEBfQR8BFMAKQR6iwogICAgICAgIGdldCBhIEhUVFBbU11Db25uZWN0aW9uLgoKICAgICAgICBPdmVycmlkZSB3aGVuIGEgY3VzdG9tIGNvbm5lY3Rpb24gaXMgcmVxdWlyZWQsIGZvciBleGFtcGxlIGlmCiAgICAgICAgdGhlcmUgaXMgYSBwcm94eS4KICAgICAgICByAQAAAE4pAXKYAQAAKQXaC2h0dHAuY2xpZW502gZjbGllbnTaD0hUVFBTQ29ubmVjdGlvbnKYAQAA2g5IVFRQQ29ubmVjdGlvbikFchAAAABypgAAAHJfAQAA2gRodHRw2gpjb25uZWN0aW9uchIAAAByEgAAAHITAAAA2g1nZXRDb25uZWN0aW9uwwQAAHMMAAAACAcEARIBBAMM/wQBehlIVFRQSGFuZGxlci5nZXRDb25uZWN0aW9uYwIAAAAAAAAAAAAAAAsAAAAIAAAAQwAAAHNOAQAAepdkAWQCbAB9AnwAagF9A3wAoAJ8A3wAagOhAn0EfABqBH0FfAJqBaAGfACgB3wBoQGhAX0GfABqCGQDawJyNHwFoAlkBKEBZAFrBXIqZAV9B24CZAR9B3wFZAZ8B3wGZgIWABcAfQV8BKAKfABqCHwFoQIBAHwDoAlkB6EBfQh8CGQBawVySnwDZAJ8CIUCGQB9A3wAaghkCGsCcl98BKALZAlkCqECAQB8BKALZAt0DHQNfAaDAYMBoQIBAHwAag5ygGQBZAJsD30JZAx8AGoOFgCgEGQNoQF9CmQOfAmgEXwKoQGgEqEAoBNkD6EBFwB9CnwEoAtkEHwKoQIBAHwEoBShAAEAfABqCGQIawJykXwEoBV8BqAQZA2hAaEBAQB8BKAWoQABAFcAZAJTAAQAdBd5pgEAAQABAHwAoBh8AaEBAQBZAGQCUwB3ACkRemsKICAgICAgICBFbWl0IGEgcmVjb3JkLgoKICAgICAgICBTZW5kIHRoZSByZWNvcmQgdG8gdGhlIHdlYiBzZXJ2ZXIgYXMgYSBwZXJjZW50LWVuY29kZWQgZGljdGlvbmFyeQogICAgICAgIHIBAAAATnKUAQAA+gE/+gEmegQlYyVz+gE6cpUBAAB6DENvbnRlbnQtdHlwZXohYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkeg5Db250ZW50LWxlbmd0aHoFJXM6JXNyLQEAAHoGQmFzaWMg2gVhc2NpadoNQXV0aG9yaXphdGlvbikZ2gx1cmxsaWIucGFyc2VypgAAAHKgAQAAcl8BAABylgEAANoFcGFyc2XaCXVybGVuY29kZXKZAQAAcpcBAADaBGZpbmTaCnB1dHJlcXVlc3TaCXB1dGhlYWRlcnIWAQAAckQAAAByYAEAANoGYmFzZTY0cjEBAADaCWI2NGVuY29kZdoFc3RyaXDaBmRlY29kZdoKZW5kaGVhZGVyc3LAAAAA2gtnZXRyZXNwb25zZXIXAAAAchgAAAApC3IQAAAAchoAAADaBnVybGxpYnKmAAAAckgAAABylgEAANoEZGF0YdoDc2VwcjwAAAByrAEAAHKXAAAAchIAAAByEgAAAHITAAAAchYAAADRBAAAc0AAAAACBggBBgEOAQYBEgEKAQ4BBgEEAhABDgEKAwgBDAEKBAYBAgEE/xQCBgEIARABGAEMAQgBCgEQAQ4BDAEQAQL/ehBIVFRQSGFuZGxlci5lbWl0KQRylAEAAEZOTikIcigAAAByKQAAAHIqAAAAcisAAAByDgAAAHKZAQAAcqABAAByFgAAAHISAAAAchIAAAByEgAAAHITAAAAcpMBAACiBAAAcxAAAAAIAAQBAgQCAQr/CBQICAwOcpMBAABjAAAAAAAAAAAAAAAAAAAAAAIAAABAAAAAczgAAABlAFoBZABaAmQBWgNkAmQDhABaBGQEZAWEAFoFZAZkB4QAWgZkCGQJhABaB2QKZAuEAFoIZAxTACkN2hBCdWZmZXJpbmdIYW5kbGVyeuUKICBBIGhhbmRsZXIgY2xhc3Mgd2hpY2ggYnVmZmVycyBsb2dnaW5nIHJlY29yZHMgaW4gbWVtb3J5LiBXaGVuZXZlciBlYWNoCiAgcmVjb3JkIGlzIGFkZGVkIHRvIHRoZSBidWZmZXIsIGEgY2hlY2sgaXMgbWFkZSB0byBzZWUgaWYgdGhlIGJ1ZmZlciBzaG91bGQKICBiZSBmbHVzaGVkLiBJZiBpdCBzaG91bGQsIHRoZW4gZmx1c2goKSBpcyBleHBlY3RlZCB0byBkbyB3aGF0J3MgbmVlZGVkLgogICAgYwIAAAAAAAAAAAAAAAIAAAADAAAAQwAAAHMcAAAAdABqAaACfAChAQEAfAF8AF8DZwB8AF8EZAFTACkCej4KICAgICAgICBJbml0aWFsaXplIHRoZSBoYW5kbGVyIHdpdGggdGhlIGJ1ZmZlciBzaXplLgogICAgICAgIE4pBXIMAAAAcqUAAAByDgAAANoIY2FwYWNpdHnaBmJ1ZmZlcikCchAAAABytgEAAHISAAAAchIAAAByEwAAAHIOAAAAAgUAAHMGAAAADAQGAQoBehlCdWZmZXJpbmdIYW5kbGVyLl9faW5pdF9fYwIAAAAAAAAAAAAAAAIAAAACAAAAQwAAAHMQAAAAdAB8AGoBgwF8AGoCawVTACkBerwKICAgICAgICBTaG91bGQgdGhlIGhhbmRsZXIgZmx1c2ggaXRzIGJ1ZmZlcj8KCiAgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBidWZmZXIgaXMgdXAgdG8gY2FwYWNpdHkuIFRoaXMgbWV0aG9kIGNhbiBiZQogICAgICAgIG92ZXJyaWRkZW4gdG8gaW1wbGVtZW50IGN1c3RvbSBmbHVzaGluZyBzdHJhdGVnaWVzLgogICAgICAgICkDckQAAABytwEAAHK2AQAAchkAAAByEgAAAHISAAAAchMAAADaC3Nob3VsZEZsdXNoCgUAAHMCAAAAEAd6HEJ1ZmZlcmluZ0hhbmRsZXIuc2hvdWxkRmx1c2hjAgAAAAAAAAAAAAAAAgAAAAMAAABDAAAAcyYAAAB8AGoAoAF8AaEBAQB8AKACfAGhAXIRfACgA6EAAQBkAVMAZAFTACkCeoYKICAgICAgICBFbWl0IGEgcmVjb3JkLgoKICAgICAgICBBcHBlbmQgdGhlIHJlY29yZC4gSWYgc2hvdWxkRmx1c2goKSB0ZWxscyB1cyB0bywgY2FsbCBmbHVzaCgpIHRvIHByb2Nlc3MKICAgICAgICB0aGUgYnVmZmVyLgogICAgICAgIE4pBHK3AQAAcoYAAAByuAEAAHKiAAAAchkAAAByEgAAAHISAAAAchMAAAByFgAAABMFAABzCAAAAAwHCgEMAQT/ehVCdWZmZXJpbmdIYW5kbGVyLmVtaXRjAQAAAAAAAAAAAAAAAQAAAAgAAABDAAAAcywAAAB8AKAAoQABAHoMfABqAaACoQABAFcAfACgA6EAAQBkAVMAfACgA6EAAQB3ACkCencKICAgICAgICBPdmVycmlkZSB0byBpbXBsZW1lbnQgY3VzdG9tIGZsdXNoaW5nIGJlaGF2aW91ci4KCiAgICAgICAgVGhpcyB2ZXJzaW9uIGp1c3QgemFwcyB0aGUgYnVmZmVyIHRvIGVtcHR5LgogICAgICAgIE4pBHLSAAAAcrcBAADaBWNsZWFyctMAAAByJgEAAHISAAAAchIAAAByEwAAAHKiAAAAHgUAAHMIAAAACAYCAQwBFgJ6FkJ1ZmZlcmluZ0hhbmRsZXIuZmx1c2hjAQAAAAAAAAAAAAAAAQAAAAkAAABDAAAAcyoAAAB6DXwAoAChAAEAVwB0AWoCoAN8AKEBAQBkAVMAdAFqAqADfAChAQEAdwApAnpwCiAgICAgICAgQ2xvc2UgdGhlIGhhbmRsZXIuCgogICAgICAgIFRoaXMgdmVyc2lvbiBqdXN0IGZsdXNoZXMgYW5kIGNoYWlucyB0byB0aGUgcGFyZW50IGNsYXNzJyBjbG9zZSgpLgogICAgICAgIE4pBHKiAAAAcgwAAABypQAAAHI3AAAAciYBAAByEgAAAHISAAAAchMAAAByNwAAACoFAABzBgAAAAIGCgEeAnoWQnVmZmVyaW5nSGFuZGxlci5jbG9zZU4pCXIoAAAAcikAAAByKgAAAHIrAAAAcg4AAAByuAEAAHIWAAAAcqIAAAByNwAAAHISAAAAchIAAAByEgAAAHITAAAAcrUBAAD8BAAAcw4AAAAIAAQBCAUICAgJCAsMDHK1AQAAYwAAAAAAAAAAAAAAAAAAAAADAAAAQAAAAHNCAAAAZQBaAWQAWgJkAVoDZQRqBWQCZANmA2QEZAWEAVoGZAZkB4QAWgdkCGQJhABaCGQKZAuEAFoJZAxkDYQAWgpkAlMAKQ7aDU1lbW9yeUhhbmRsZXJ64gogICAgQSBoYW5kbGVyIGNsYXNzIHdoaWNoIGJ1ZmZlcnMgbG9nZ2luZyByZWNvcmRzIGluIG1lbW9yeSwgcGVyaW9kaWNhbGx5CiAgICBmbHVzaGluZyB0aGVtIHRvIGEgdGFyZ2V0IGhhbmRsZXIuIEZsdXNoaW5nIG9jY3VycyB3aGVuZXZlciB0aGUgYnVmZmVyCiAgICBpcyBmdWxsLCBvciB3aGVuIGFuIGV2ZW50IG9mIGEgY2VydGFpbiBzZXZlcml0eSBvciBncmVhdGVyIGlzIHNlZW4uCiAgICBOVGMFAAAAAAAAAAAAAAAFAAAABAAAAEMAAABzIgAAAHQAoAF8AHwBoQIBAHwCfABfAnwDfABfA3wEfABfBGQBUwApAmE7AgAACiAgICAgICAgSW5pdGlhbGl6ZSB0aGUgaGFuZGxlciB3aXRoIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGxldmVsIGF0IHdoaWNoCiAgICAgICAgZmx1c2hpbmcgc2hvdWxkIG9jY3VyIGFuZCBhbiBvcHRpb25hbCB0YXJnZXQuCgogICAgICAgIE5vdGUgdGhhdCB3aXRob3V0IGEgdGFyZ2V0IGJlaW5nIHNldCBlaXRoZXIgaGVyZSBvciB2aWEgc2V0VGFyZ2V0KCksCiAgICAgICAgYSBNZW1vcnlIYW5kbGVyIGlzIG5vIHVzZSB0byBhbnlvbmUhCgogICAgICAgIFRoZSBgYGZsdXNoT25DbG9zZWBgIGFyZ3VtZW50IGlzIGBgVHJ1ZWBgIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CiAgICAgICAgcmVhc29ucyAtIHRoZSBvbGQgYmVoYXZpb3VyIGlzIHRoYXQgd2hlbiB0aGUgaGFuZGxlciBpcyBjbG9zZWQsIHRoZQogICAgICAgIGJ1ZmZlciBpcyBmbHVzaGVkLCBldmVuIGlmIHRoZSBmbHVzaCBsZXZlbCBoYXNuJ3QgYmVlbiBleGNlZWRlZCBub3IgdGhlCiAgICAgICAgY2FwYWNpdHkgZXhjZWVkZWQuIFRvIHByZXZlbnQgdGhpcywgc2V0IGBgZmx1c2hPbkNsb3NlYGAgdG8gYGBGYWxzZWBgLgogICAgICAgIE4pBXK1AQAAcg4AAADaCmZsdXNoTGV2ZWzaBnRhcmdldNoMZmx1c2hPbkNsb3NlKQVyEAAAAHK2AQAAcrsBAAByvAEAAHK9AQAAchIAAAByEgAAAHITAAAAcg4AAAA7BQAAcwgAAAAMDgYBBgEKAnoWTWVtb3J5SGFuZGxlci5fX2luaXRfX2MCAAAAAAAAAAAAAAACAAAAAgAAAEMAAABzHAAAAHQAfABqAYMBfABqAmsFcA18AWoDfABqBGsFUwApAXpQCiAgICAgICAgQ2hlY2sgZm9yIGJ1ZmZlciBmdWxsIG9yIGEgcmVjb3JkIGF0IHRoZSBmbHVzaExldmVsIG9yIGhpZ2hlci4KICAgICAgICApBXJEAAAAcrcBAABytgEAAHKNAQAAcrsBAAByGQAAAHISAAAAchIAAAByEwAAAHK4AQAATwUAAHMGAAAAEAQKAQL/ehlNZW1vcnlIYW5kbGVyLnNob3VsZEZsdXNoYwIAAAAAAAAAAAAAAAIAAAAIAAAAQwAAAHMoAAAAfACgAKEAAQB6CnwBfABfAVcAfACgAqEAAQBkAVMAfACgAqEAAQB3ACkCejoKICAgICAgICBTZXQgdGhlIHRhcmdldCBoYW5kbGVyIGZvciB0aGlzIGhhbmRsZXIuCiAgICAgICAgTikDctIAAAByvAEAAHLTAAAAKQJyEAAAAHK8AQAAchIAAAByEgAAAHITAAAA2glzZXRUYXJnZXRWBQAAcwgAAAAIBAIBCAEWAnoXTWVtb3J5SGFuZGxlci5zZXRUYXJnZXRjAQAAAAAAAAAAAAAAAgAAAAgAAABDAAAAc1gAAAB8AKAAoQABAHoifABqAXIgfABqAkQAXQh9AXwAagGgA3wBoQEBAHELfABqAqAEoQABAFcAfACgBaEAAQBkAVMAVwB8AKAFoQABAGQBUwB8AKAFoQABAHcAKQJ67wogICAgICAgIEZvciBhIE1lbW9yeUhhbmRsZXIsIGZsdXNoaW5nIG1lYW5zIGp1c3Qgc2VuZGluZyB0aGUgYnVmZmVyZWQKICAgICAgICByZWNvcmRzIHRvIHRoZSB0YXJnZXQsIGlmIHRoZXJlIGlzIG9uZS4gT3ZlcnJpZGUgaWYgeW91IHdhbnQKICAgICAgICBkaWZmZXJlbnQgYmVoYXZpb3VyLgoKICAgICAgICBUaGUgcmVjb3JkIGJ1ZmZlciBpcyBhbHNvIGNsZWFyZWQgYnkgdGhpcyBvcGVyYXRpb24uCiAgICAgICAgTikGctIAAAByvAEAAHK3AQAA2gZoYW5kbGVyuQEAAHLTAAAAchkAAAByEgAAAHISAAAAchMAAAByogAAAGAFAABzEgAAAAgIAgEGAQoBDgEMAQwCAvsWBXoTTWVtb3J5SGFuZGxlci5mbHVzaGMBAAAAAAAAAAAAAAABAAAADgAAAEMAAABzdAAAAHohfABqAHIIfACgAaEAAQBXAHwAoAKhAAEAeg9kAXwAXwN0BKAFfAChAQEAVwB8AKAGoQABAGQBUwB8AKAGoQABAHcAfACgAqEAAQB6DmQBfABfA3QEoAV8AKEBAQBXAHwAoAahAAEAdwB8AKAGoQABAHcAKQJ6aQogICAgICAgIEZsdXNoLCBpZiBhcHByb3ByaWF0ZWx5IGNvbmZpZ3VyZWQsIHNldCB0aGUgdGFyZ2V0IHRvIE5vbmUgYW5kIGxvc2UgdGhlCiAgICAgICAgYnVmZmVyLgogICAgICAgIE4pB3K9AQAAcqIAAABy0gAAAHK8AQAAcrUBAAByNwAAAHLTAAAAciYBAAByEgAAAHISAAAAchMAAAByNwAAAHEFAABzHAAAAAIFBgEIAQKACAICAQYBDAEWAgj7AgEGAQwBFAJ6E01lbW9yeUhhbmRsZXIuY2xvc2UpC3IoAAAAcikAAAByKgAAAHIrAAAAcgwAAAByEAEAAHIOAAAAcrgBAAByvgEAAHKiAAAAcjcAAAByEgAAAHISAAAAchIAAAByEwAAAHK6AQAANQUAAHMSAAAACAAEAQYFAgEK/wgUCAcICgwRcroBAABjAAAAAAAAAAAAAAAAAAAAAAIAAABAAAAAczAAAABlAFoBZABaAmQBWgNkAmQDhABaBGQEZAWEAFoFZAZkB4QAWgZkCGQJhABaB2QKUwApC9oMUXVldWVIYW5kbGVyYYQBAAAKICAgIFRoaXMgaGFuZGxlciBzZW5kcyBldmVudHMgdG8gYSBxdWV1ZS4gVHlwaWNhbGx5LCBpdCB3b3VsZCBiZSB1c2VkIHRvZ2V0aGVyCiAgICB3aXRoIGEgbXVsdGlwcm9jZXNzaW5nIFF1ZXVlIHRvIGNlbnRyYWxpc2UgbG9nZ2luZyB0byBmaWxlIGluIG9uZSBwcm9jZXNzCiAgICAoaW4gYSBtdWx0aS1wcm9jZXNzIGFwcGxpY2F0aW9uKSwgc28gYXMgdG8gYXZvaWQgZmlsZSB3cml0ZSBjb250ZW50aW9uCiAgICBiZXR3ZWVuIHByb2Nlc3Nlcy4KCiAgICBUaGlzIGNvZGUgaXMgbmV3IGluIFB5dGhvbiAzLjIsIGJ1dCB0aGlzIGNsYXNzIGNhbiBiZSBjb3B5IHBhc3RlZCBpbnRvCiAgICB1c2VyIGNvZGUgZm9yIHVzZSB3aXRoIGVhcmxpZXIgUHl0aG9uIHZlcnNpb25zLgogICAgYwIAAAAAAAAAAAAAAAIAAAADAAAAQwAAAHMWAAAAdABqAaACfAChAQEAfAF8AF8DZAFTACkCekEKICAgICAgICBJbml0aWFsaXNlIGFuIGluc3RhbmNlLCB1c2luZyB0aGUgcGFzc2VkIHF1ZXVlLgogICAgICAgIE4pBHIMAAAAcqUAAAByDgAAANoFcXVldWUpAnIQAAAAcsEBAAByEgAAAHISAAAAchMAAAByDgAAAI0FAABzBAAAAAwECgF6FVF1ZXVlSGFuZGxlci5fX2luaXRfX2MCAAAAAAAAAAAAAAACAAAAAwAAAEMAAABzEAAAAHwAagCgAXwBoQEBAGQBUwApAnrRCiAgICAgICAgRW5xdWV1ZSBhIHJlY29yZC4KCiAgICAgICAgVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gdXNlcyBwdXRfbm93YWl0LiBZb3UgbWF5IHdhbnQgdG8gb3ZlcnJpZGUKICAgICAgICB0aGlzIG1ldGhvZCBpZiB5b3Ugd2FudCB0byB1c2UgYmxvY2tpbmcsIHRpbWVvdXRzIG9yIGN1c3RvbSBxdWV1ZQogICAgICAgIGltcGxlbWVudGF0aW9ucy4KICAgICAgICBOKQJywQEAANoKcHV0X25vd2FpdHIZAAAAchIAAAByEgAAAHITAAAA2gdlbnF1ZXVllAUAAHMCAAAAEAh6FFF1ZXVlSGFuZGxlci5lbnF1ZXVlYwIAAAAAAAAAAAAAAAMAAAADAAAAQwAAAHM8AAAAfACgAHwBoQF9AnQBoAF8AaEBfQF8AnwBXwJ8AnwBXwNkAXwBXwRkAXwBXwVkAXwBXwZkAXwBXwd8AVMAKQJhzgEAAAogICAgICAgIFByZXBhcmVzIGEgcmVjb3JkIGZvciBxdWV1aW5nLiBUaGUgb2JqZWN0IHJldHVybmVkIGJ5IHRoaXMgbWV0aG9kIGlzCiAgICAgICAgZW5xdWV1ZWQuCgogICAgICAgIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIGZvcm1hdHMgdGhlIHJlY29yZCB0byBtZXJnZSB0aGUgbWVzc2FnZQogICAgICAgIGFuZCBhcmd1bWVudHMsIGFuZCByZW1vdmVzIHVucGlja2xlYWJsZSBpdGVtcyBmcm9tIHRoZSByZWNvcmQKICAgICAgICBpbi1wbGFjZS4KCiAgICAgICAgWW91IG1pZ2h0IHdhbnQgdG8gb3ZlcnJpZGUgdGhpcyBtZXRob2QgaWYgeW91IHdhbnQgdG8gY29udmVydAogICAgICAgIHRoZSByZWNvcmQgdG8gYSBkaWN0IG9yIEpTT04gc3RyaW5nLCBvciBzZW5kIGEgbW9kaWZpZWQgY29weQogICAgICAgIG9mIHRoZSByZWNvcmQgd2hpbGUgbGVhdmluZyB0aGUgb3JpZ2luYWwgaW50YWN0LgogICAgICAgIE4pCHJBAAAA2gRjb3B5csMAAAByRgAAAHLBAAAAcsIAAADaCGV4Y190ZXh02gpzdGFja19pbmZvckUAAAByEgAAAHISAAAAchMAAADaB3ByZXBhcmWeBQAAcxIAAAAKEwoCBgEGAQYBBgEGAQYBBAF6FFF1ZXVlSGFuZGxlci5wcmVwYXJlYwIAAAAAAAAAAAAAAAIAAAAIAAAAQwAAAHM2AAAAegt8AKAAfACgAXwBoQGhAQEAVwBkAVMABAB0AnkaAQABAAEAfACgA3wBoQEBAFkAZAFTAHcAKQJ6bQogICAgICAgIEVtaXQgYSByZWNvcmQuCgogICAgICAgIFdyaXRlcyB0aGUgTG9nUmVjb3JkIHRvIHRoZSBxdWV1ZSwgcHJlcGFyaW5nIGl0IGZvciBwaWNrbGluZyBmaXJzdC4KICAgICAgICBOKQRywwEAAHLHAQAAchcAAAByGAAAAHIZAAAAchIAAAByEgAAAHITAAAAchYAAAC8BQAAcwoAAAACBhYBDAEQAQL/ehFRdWV1ZUhhbmRsZXIuZW1pdE4pCHIoAAAAcikAAAByKgAAAHIrAAAAcg4AAABywwEAAHLHAQAAchYAAAByEgAAAHISAAAAchIAAAByEwAAAHLAAQAAggUAAHMMAAAACAAEAQgKCAcICgwecsABAABjAAAAAAAAAAAAAAAAAAAAAAMAAABAAAAAc1oAAABlAFoBZABaAmQBWgNkAloEZANkBJwBZAVkBoQCWgVkB2QIhABaBmQJZAqEAFoHZAtkDIQAWghkDWQOhABaCWQPZBCEAFoKZBFkEoQAWgtkE2QUhABaDGQCUwApFdoNUXVldWVMaXN0ZW5lcnq9CiAgICBUaGlzIGNsYXNzIGltcGxlbWVudHMgYW4gaW50ZXJuYWwgdGhyZWFkZWQgbGlzdGVuZXIgd2hpY2ggd2F0Y2hlcyBmb3IKICAgIExvZ1JlY29yZHMgYmVpbmcgYWRkZWQgdG8gYSBxdWV1ZSwgcmVtb3ZlcyB0aGVtIGFuZCBwYXNzZXMgdGhlbSB0byBhCiAgICBsaXN0IG9mIGhhbmRsZXJzIGZvciBwcm9jZXNzaW5nLgogICAgTkYpAdoVcmVzcGVjdF9oYW5kbGVyX2xldmVsYwIAAAAAAAAAAQAAAAQAAAACAAAARwAAAHMcAAAAfAF8AF8AfAN8AF8BZAF8AF8CfAJ8AF8DZAFTACkCelcKICAgICAgICBJbml0aWFsaXNlIGFuIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBxdWV1ZSBhbmQKICAgICAgICBoYW5kbGVycy4KICAgICAgICBOKQRywQEAANoIaGFuZGxlcnPaB190aHJlYWRyyQEAACkEchAAAABywQEAAHLJAQAAcsoBAAByEgAAAHISAAAAchMAAAByDgAAANAFAABzCAAAAAYFBgEGAQoBehZRdWV1ZUxpc3RlbmVyLl9faW5pdF9fYwIAAAAAAAAAAAAAAAIAAAADAAAAQwAAAHMMAAAAfABqAKABfAGhAVMAKQF65QogICAgICAgIERlcXVldWUgYSByZWNvcmQgYW5kIHJldHVybiBpdCwgb3B0aW9uYWxseSBibG9ja2luZy4KCiAgICAgICAgVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gdXNlcyBnZXQuIFlvdSBtYXkgd2FudCB0byBvdmVycmlkZSB0aGlzIG1ldGhvZAogICAgICAgIGlmIHlvdSB3YW50IHRvIHVzZSB0aW1lb3V0cyBvciB3b3JrIHdpdGggY3VzdG9tIHF1ZXVlIGltcGxlbWVudGF0aW9ucy4KICAgICAgICApAnLBAQAAcigBAAApAnIQAAAA2gVibG9ja3ISAAAAchIAAAByEwAAANoHZGVxdWV1ZdoFAABzAgAAAAwHehVRdWV1ZUxpc3RlbmVyLmRlcXVldWVjAQAAAAAAAAAAAAAAAgAAAAMAAABDAAAAcyYAAAB0AGoBfABqAmQBjQEEAHwAXwN9AWQCfAFfBHwBoAWhAAEAZANTACkEeokKICAgICAgICBTdGFydCB0aGUgbGlzdGVuZXIuCgogICAgICAgIFRoaXMgc3RhcnRzIHVwIGEgYmFja2dyb3VuZCB0aHJlYWQgdG8gbW9uaXRvciB0aGUgcXVldWUgZm9yCiAgICAgICAgTG9nUmVjb3JkcyB0byBwcm9jZXNzLgogICAgICAgICkBcrwBAABUTikG2gl0aHJlYWRpbmfaBlRocmVhZNoIX21vbml0b3JyywEAAHL6AAAA2gVzdGFydCkCchAAAAByZQAAAHISAAAAchIAAAByEwAAAHLRAQAA4wUAAHMGAAAAFAcGAQwBehNRdWV1ZUxpc3RlbmVyLnN0YXJ0YwIAAAAAAAAAAAAAAAIAAAABAAAAQwAAAHMEAAAAfAFTACkBYQcBAAAKICAgICAgICBQcmVwYXJlIGEgcmVjb3JkIGZvciBoYW5kbGluZy4KCiAgICAgICAgVGhpcyBtZXRob2QganVzdCByZXR1cm5zIHRoZSBwYXNzZWQtaW4gcmVjb3JkLiBZb3UgbWF5IHdhbnQgdG8KICAgICAgICBvdmVycmlkZSB0aGlzIG1ldGhvZCBpZiB5b3UgbmVlZCB0byBkbyBhbnkgY3VzdG9tIG1hcnNoYWxsaW5nIG9yCiAgICAgICAgbWFuaXB1bGF0aW9uIG9mIHRoZSByZWNvcmQgYmVmb3JlIHBhc3NpbmcgaXQgdG8gdGhlIGhhbmRsZXJzLgogICAgICAgIHISAAAAchkAAAByEgAAAHISAAAAchMAAAByxwEAAO4FAAByiwEAAHoVUXVldWVMaXN0ZW5lci5wcmVwYXJlYwIAAAAAAAAAAAAAAAQAAAAEAAAAQwAAAHNAAAAAfACgAHwBoQF9AXwAagFEAF0VfQJ8AGoCcxBkAX0DbgZ8AWoDfAJqBGsFfQN8A3IdfAKgBXwBoQEBAHEIZAJTACkDenwKICAgICAgICBIYW5kbGUgYSByZWNvcmQuCgogICAgICAgIFRoaXMganVzdCBsb29wcyB0aHJvdWdoIHRoZSBoYW5kbGVycyBvZmZlcmluZyB0aGVtIHRoZSByZWNvcmQKICAgICAgICB0byBoYW5kbGUuCiAgICAgICAgVE4pBnLHAQAAcsoBAAByyQEAAHKNAQAA2gVsZXZlbHK/AQAAKQRyEAAAAHIaAAAA2gdoYW5kbGVy2gdwcm9jZXNzchIAAAByEgAAAHITAAAAcr8BAAD4BQAAcxIAAAAKBwoBBgEGAQwCBAEKAQKABPp6FFF1ZXVlTGlzdGVuZXIuaGFuZGxlYwEAAAAAAAAAAAAAAAQAAAAIAAAAQwAAAHNsAAAAfABqAH0BdAF8AWQBgwJ9AgkAeiB8AKACZAKhAX0DfAN8AGoDdQByHXwCchp8AaAEoQABAFcAZANTAHwAoAV8A6EBAQB8AnIofAGgBKEAAQBXAG4LBAB0AGoGeTQBAAEAAQBZAGQDUwB3AHEJKQR65gogICAgICAgIE1vbml0b3IgdGhlIHF1ZXVlIGZvciByZWNvcmRzLCBhbmQgYXNrIHRoZSBoYW5kbGVyCiAgICAgICAgdG8gZGVhbCB3aXRoIHRoZW0uCgogICAgICAgIFRoaXMgbWV0aG9kIHJ1bnMgb24gYSBzZXBhcmF0ZSwgaW50ZXJuYWwgdGhyZWFkLgogICAgICAgIFRoZSB0aHJlYWQgd2lsbCB0ZXJtaW5hdGUgaWYgaXQgc2VlcyBhIHNlbnRpbmVsIG9iamVjdCBpbiB0aGUgcXVldWUuCiAgICAgICAg2gl0YXNrX2RvbmVUTikHcsEBAADaB2hhc2F0dHJyzQEAANoJX3NlbnRpbmVsctUBAAByvwEAANoFRW1wdHkpBHIQAAAA2gFx2g1oYXNfdGFza19kb25lchoAAAByEgAAAHISAAAAchMAAABy0AEAAAgGAABzIgAAAAYICgECAQIBCgEKAQQBCAEGAQoBBAEIAQSADgEGAQL/AvZ6FlF1ZXVlTGlzdGVuZXIuX21vbml0b3JjAQAAAAAAAAAAAAAAAQAAAAMAAABDAAAAcxIAAAB8AGoAoAF8AGoCoQEBAGQBUwApAnrsCiAgICAgICAgVGhpcyBpcyB1c2VkIHRvIGVucXVldWUgdGhlIHNlbnRpbmVsIHJlY29yZC4KCiAgICAgICAgVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gdXNlcyBwdXRfbm93YWl0LiBZb3UgbWF5IHdhbnQgdG8gb3ZlcnJpZGUgdGhpcwogICAgICAgIG1ldGhvZCBpZiB5b3Ugd2FudCB0byB1c2UgdGltZW91dHMgb3Igd29yayB3aXRoIGN1c3RvbSBxdWV1ZQogICAgICAgIGltcGxlbWVudGF0aW9ucy4KICAgICAgICBOKQNywQEAAHLCAQAActcBAAByJgEAAHISAAAAchIAAAByEwAAANoQZW5xdWV1ZV9zZW50aW5lbB8GAABzAgAAABIIeh5RdWV1ZUxpc3RlbmVyLmVucXVldWVfc2VudGluZWxjAQAAAAAAAAAAAAAAAQAAAAIAAABDAAAAcxwAAAB8AKAAoQABAHwAagGgAqEAAQBkAXwAXwFkAVMAKQJhDQEAAAogICAgICAgIFN0b3AgdGhlIGxpc3RlbmVyLgoKICAgICAgICBUaGlzIGFza3MgdGhlIHRocmVhZCB0byB0ZXJtaW5hdGUsIGFuZCB0aGVuIHdhaXRzIGZvciBpdCB0byBkbyBzby4KICAgICAgICBOb3RlIHRoYXQgaWYgeW91IGRvbid0IGNhbGwgdGhpcyBiZWZvcmUgeW91ciBhcHBsaWNhdGlvbiBleGl0cywgdGhlcmUKICAgICAgICBtYXkgYmUgc29tZSByZWNvcmRzIHN0aWxsIGxlZnQgb24gdGhlIHF1ZXVlLCB3aGljaCB3b24ndCBiZSBwcm9jZXNzZWQuCiAgICAgICAgTikDctsBAAByywEAAHKHAAAAciYBAAByEgAAAHISAAAAchMAAADaBHN0b3ApBgAAcwYAAAAICAoBCgF6ElF1ZXVlTGlzdGVuZXIuc3RvcCkNcigAAAByKQAAAHIqAAAAcisAAABy1wEAAHIOAAAAcs0BAABy0QEAAHLHAQAAcr8BAABy0AEAAHLbAQAActwBAAByEgAAAHISAAAAchIAAAByEwAAAHLIAQAAyAUAAHMWAAAACAAEAQQFDgIICggJCAsICggQCBcMCnLIAQAAKShyKwAAAHIwAAAAcgwAAABysgAAAHIhAAAAcsgAAAByygAAAHJiAAAAcl4AAAByYQAAAHICAAAAcgMAAAByBAAAAHLBAQAAcs4BAAByxAEAANoYREVGQVVMVF9UQ1BfTE9HR0lOR19QT1JU2hhERUZBVUxUX1VEUF9MT0dHSU5HX1BPUlTaGURFRkFVTFRfSFRUUF9MT0dHSU5HX1BPUlTaGURFRkFVTFRfU09BUF9MT0dHSU5HX1BPUlRyUwEAANoPU1lTTE9HX1RDUF9QT1JUcm4AAAByDQAAAHIGAAAAciwAAAByRwAAAHKYAAAAcqUAAABypAAAAHLUAAAActkAAAByVAEAAHJ2AQAAcpMBAABytQEAAHK6AQAAcsABAADaBm9iamVjdHLIAQAAchIAAAByEgAAAHISAAAAchMAAADaCDxtb2R1bGU+AQAAAHM+AAAABBBACRQBCAEIAQgBBAYEAQQBBAEEAQQBBAISAhBKEFMAfxJ+EkoAfxAoEioAfwB/EgcSUBJrEloQORJNFEY=
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 3
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
config.cpython-310.pyc
22.64 KB
lrw-r--r--
2026-03-12 07:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.cpython-310.pyc
43.64 KB
lrw-r--r--
2026-03-12 07:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-310.pyc
65.32 KB
lrw-r--r--
2026-03-12 07:02:02
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).