8.2.34 | Linux | www-data (uid:33)
πŸ‘ View: punycode.py
πŸ“ /snap/core22/2437/lib/python3.10/encodings/punycode.py
""" Codec for the Punicode encoding, as specified in RFC 3492 Written by Martin v. LΓΆwis. """ import codecs ##################### Encoding ##################################### def segregate(str): """3.1 Basic code point segregation""" base = bytearray() extended = set() for c in str: if ord(c) < 128: base.append(ord(c)) else: extended.add(c) extended = sorted(extended) return bytes(base), extended def selective_len(str, max): """Return the length of str, considering only characters below max.""" res = 0 for c in str: if ord(c) < max: res += 1 return res def selective_find(str, char, index, pos): """Return a pair (index, pos), indicating the next occurrence of char in str. index is the position of the character considering only ordinals up to and including char, and pos is the position in the full string. index/pos is the starting position in the full string.""" l = len(str) while 1: pos += 1 if pos == l: return (-1, -1) c = str[pos] if c == char: return index+1, pos elif c < char: index += 1 def insertion_unsort(str, extended): """3.2 Insertion unsort coding""" oldchar = 0x80 result = [] oldindex = -1 for c in extended: index = pos = -1 char = ord(c) curlen = selective_len(str, char) delta = (curlen+1) * (char - oldchar) while 1: index,pos = selective_find(str,c,index,pos) if index == -1: break delta += index - oldindex result.append(delta-1) oldindex = index delta = 0 oldchar = char return result def T(j, bias): # Punycode parameters: tmin = 1, tmax = 26, base = 36 res = 36 * (j + 1) - bias if res < 1: return 1 if res > 26: return 26 return res digits = b"abcdefghijklmnopqrstuvwxyz0123456789" def generate_generalized_integer(N, bias): """3.3 Generalized variable-length integers""" result = bytearray() j = 0 while 1: t = T(j, bias) if N < t: result.append(digits[N]) return bytes(result) result.append(digits[t + ((N - t) % (36 - t))]) N = (N - t) // (36 - t) j += 1 def adapt(delta, first, numchars): if first: delta //= 700 else: delta //= 2 delta += delta // numchars # ((base - tmin) * tmax) // 2 == 455 divisions = 0 while delta > 455: delta = delta // 35 # base - tmin divisions += 36 bias = divisions + (36 * delta // (delta + 38)) return bias def generate_integers(baselen, deltas): """3.4 Bias adaptation""" # Punycode parameters: initial bias = 72, damp = 700, skew = 38 result = bytearray() bias = 72 for points, delta in enumerate(deltas): s = generate_generalized_integer(delta, bias) result.extend(s) bias = adapt(delta, points==0, baselen+points+1) return bytes(result) def punycode_encode(text): base, extended = segregate(text) deltas = insertion_unsort(text, extended) extended = generate_integers(len(base), deltas) if base: return base + b"-" + extended return extended ##################### Decoding ##################################### def decode_generalized_number(extended, extpos, bias, errors): """3.3 Generalized variable-length integers""" result = 0 w = 1 j = 0 while 1: try: char = ord(extended[extpos]) except IndexError: if errors == "strict": raise UnicodeError("incomplete punicode string") return extpos + 1, None extpos += 1 if 0x41 <= char <= 0x5A: # A-Z digit = char - 0x41 elif 0x30 <= char <= 0x39: digit = char - 22 # 0x30-26 elif errors == "strict": raise UnicodeError("Invalid extended code point '%s'" % extended[extpos-1]) else: return extpos, None t = T(j, bias) result += digit * w if digit < t: return extpos, result w = w * (36 - t) j += 1 def insertion_sort(base, extended, errors): """3.2 Insertion unsort coding""" char = 0x80 pos = -1 bias = 72 extpos = 0 while extpos < len(extended): newpos, delta = decode_generalized_number(extended, extpos, bias, errors) if delta is None: # There was an error in decoding. We can't continue because # synchronization is lost. return base pos += delta+1 char += pos // (len(base) + 1) if char > 0x10FFFF: if errors == "strict": raise UnicodeError("Invalid character U+%x" % char) char = ord('?') pos = pos % (len(base) + 1) base = base[:pos] + chr(char) + base[pos:] bias = adapt(delta, (extpos == 0), len(base)) extpos = newpos return base def punycode_decode(text, errors): if isinstance(text, str): text = text.encode("ascii") if isinstance(text, memoryview): text = bytes(text) pos = text.rfind(b"-") if pos == -1: base = "" extended = str(text, "ascii").upper() else: base = str(text[:pos], "ascii", errors) extended = str(text[pos+1:], "ascii").upper() return insertion_sort(base, extended, errors) ### Codec APIs class Codec(codecs.Codec): def encode(self, input, errors='strict'): res = punycode_encode(input) return res, len(input) def decode(self, input, errors='strict'): if errors not in ('strict', 'replace', 'ignore'): raise UnicodeError("Unsupported error handling "+errors) res = punycode_decode(input, errors) return res, len(input) class IncrementalEncoder(codecs.IncrementalEncoder): def encode(self, input, final=False): return punycode_encode(input) class IncrementalDecoder(codecs.IncrementalDecoder): def decode(self, input, final=False): if self.errors not in ('strict', 'replace', 'ignore'): raise UnicodeError("Unsupported error handling "+self.errors) return punycode_decode(input, self.errors) class StreamWriter(Codec,codecs.StreamWriter): pass class StreamReader(Codec,codecs.StreamReader): pass ### encodings module API def getregentry(): return codecs.CodecInfo( name='punycode', encode=Codec().encode, decode=Codec().decode, incrementalencoder=IncrementalEncoder, incrementaldecoder=IncrementalDecoder, streamwriter=StreamWriter, streamreader=StreamReader, )
← Back
πŸ’» Terminal
πŸ“€ Upload
πŸ“‚
Click or Drag & Drop
πŸ“ /snap/core22/2437/lib/python3.10/encodings
NameSizePermModifiedActions
πŸ“ __pycache__/-07552026-04-10 04:19πŸ—‘ Delete
__init__.py5.5K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
aliases.py15.3K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
ascii.py1.2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
base64_codec.py1.5K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
big5.py1019B06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
big5hkscs.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
bz2_codec.py2.2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
charmap.py2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp037.py12.8K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp1006.py13.3K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp1026.py12.8K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp1125.py33.8K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp1140.py12.8K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp1250.py13.4K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp1251.py13K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp1252.py13.2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp1253.py12.8K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp1254.py13.2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp1255.py12.2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp1256.py12.5K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp1257.py13.1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp1258.py13.1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp273.py13.8K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp424.py11.8K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp437.py33.8K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp500.py12.8K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp720.py13.4K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp737.py33.9K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp775.py33.7K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp850.py33.3K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp852.py34.2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp855.py33.1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp856.py12.1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp857.py33.1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp858.py33.2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp860.py33.9K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp861.py33.8K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp862.py32.6K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp863.py33.4K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp864.py32.9K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp865.py33.8K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp866.py33.6K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp869.py32.2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp874.py12.3K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp875.py12.6K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp932.py1023B06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp949.py1023B06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cp950.py1023B06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
euc_jis_2004.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
euc_jisx0213.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
euc_jp.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
euc_kr.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
gb18030.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
gb2312.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
gbk.py1015B06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
hex_codec.py1.5K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
hp_roman8.py13.2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
hz.py1011B06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
idna.py8.9K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso2022_jp.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso2022_jp_1.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso2022_jp_2.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso2022_jp_2004.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso2022_jp_3.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso2022_jp_ext.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso2022_kr.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso8859_1.py12.9K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso8859_10.py13.3K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso8859_11.py12K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso8859_13.py13K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso8859_14.py13.3K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso8859_15.py12.9K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso8859_16.py13.2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso8859_2.py13.1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso8859_3.py12.8K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso8859_4.py13.1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso8859_5.py12.7K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso8859_6.py10.6K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso8859_7.py12.5K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso8859_8.py10.8K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
iso8859_9.py12.8K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
johab.py1023B06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
koi8_r.py13.5K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
koi8_t.py12.9K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
koi8_u.py13.4K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
kz1048.py13.4K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
latin_1.py1.2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
mac_arabic.py35.6K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
mac_croatian.py13.3K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
mac_cyrillic.py13.1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
mac_farsi.py14.8K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
mac_greek.py13.4K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
mac_iceland.py13.2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
mac_latin2.py13.8K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
mac_roman.py13.2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
mac_romanian.py13.3K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
mac_turkish.py13.2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
mbcs.py1.2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
oem.py1019B06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
palmos.py13.2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
ptcp154.py13.7K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
punycode.py6.7K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
quopri_codec.py1.5K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
raw_unicode_escape.py1.3K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
rot_13.py2.4K07552026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
shift_jis.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
shift_jis_2004.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
shift_jisx0213.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
tis_620.py12K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
undefined.py1.3K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
unicode_escape.py1.3K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
utf_16.py5.1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
utf_16_be.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
utf_16_le.py1K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
utf_32.py5K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
utf_32_be.py930B06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
utf_32_le.py930B06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
utf_7.py946B06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
utf_8.py1005B06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
utf_8_sig.py4K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
uu_codec.py2.8K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
zlib_codec.py2.2K06442026-03-03 11:56πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del