�ɲɾ�����ӯ�����һ��ˣ��������С���˴��ͣ�������P���ҹ��ñ˽��ά�Բ��������˸߸ԣ�������ơ��ҹ��ñ�����ά�Բ���ˡ���˳^�ӣ������ӡ� ���ͯj�ӣ��ƺ���ӣ� ? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!PK,2]ÒD ÒTT)__pycache__/__init__.cpython-36.opt-1.pycnu„[µü¤3 B;ˆW!ã @sRddlmZmZmZddlmZeZyddlmZWne k rHYnXeZdS)é)Úabsolute_importÚdivisionÚunicode_literalsé)ÚTrieN) Z __future__rrrÚpyrZPyTrieZdatrieZDATrieÚ ImportError©r r ú/usr/lib/python3.6/__init__.pyÚs PK,2]õ¼„yWW#__pycache__/py.cpython-36.opt-1.pycnu„[µü¤3 B;ˆWãã@sLddlmZmZmZddlmZddlmZddlm Z Gdd„de ƒZ dS) é)Úabsolute_importÚdivisionÚunicode_literals)Ú text_type)Ú bisect_lefté)ÚTriec@sFeZdZdd„Zdd„Zdd„Zdd„Zd d „Zdd d „Zdd„Z d S)rcCsJtdd„|jƒDƒƒstdƒ‚||_t|jƒƒ|_d|_dt|ƒf|_dS)Ncss|]}t|tƒVqdS)N)Ú isinstancer)Ú.0Úx©r ú/usr/lib/python3.6/py.pyú sz Trie.__init__..zAll keys must be stringsÚr) ÚallÚkeysÚ TypeErrorÚ_dataÚsortedÚ_keysÚ _cachestrÚlenÚ _cachepoints)ÚselfÚdatar r r Ú__init__ s z Trie.__init__cCs ||jkS)N)r)rÚkeyr r r Ú __contains__szTrie.__contains__cCs t|jƒS)N)rr)rr r r Ú__len__sz Trie.__len__cCs t|jƒS)N)Úiterr)rr r r Ú__iter__sz Trie.__iter__cCs |j|S)N)r)rrr r r Ú __getitem__szTrie.__getitem__NcCs¸|dks|dks|j r"t|jƒS|j|jƒrN|j\}}t|j|||ƒ}}nt|j|ƒ}}tƒ}|t|jƒkrv|Sx,|j|j|ƒr¢|j|j|ƒ|d7}qxW||_||f|_|S)Nrr)rÚsetÚ startswithrrrrÚadd)rÚprefixÚloÚhiÚstartÚirr r r rs     z Trie.keyscCsd||jkrdS|j|jƒr6|j\}}t|j|||ƒ}n t|j|ƒ}|t|jƒkrTdS|j|j|ƒS)NTF)rr#rrrrr)rr%r&r'r)r r r Úhas_keys_with_prefix6s    zTrie.has_keys_with_prefix)N) Ú__name__Ú __module__Ú __qualname__rrrr r!rr*r r r r r s  rN) Z __future__rrrZsixrZbisectrZ_baserZABCTrier r r r Ús   PK,2]pn•••&__pycache__/_base.cpython-36.opt-1.pycnu„[µü¤3 B;ˆWÓã@s4ddlmZmZmZddlmZGdd„deƒZdS)é)Úabsolute_importÚdivisionÚunicode_literals)ÚMappingcs:eZdZdZd ‡fdd„ Zdd„Zdd„Zd d „Z‡ZS) ÚTriezAbstract base class for triesNcs4tt|ƒjƒ}ˆdkrt|ƒSt‡fdd„|DƒƒS)Ncsg|]}|jˆƒr|‘qS©)Ú startswith)Ú.0Úx)Úprefixrú/usr/lib/python3.6/_base.pyú szTrie.keys..)ÚsuperrÚkeysÚset)Úselfr r)Ú __class__)r r r sz Trie.keyscCs$x|jƒD]}|j|ƒr dSq WdS)NTF)rr)rr Úkeyrrr Úhas_keys_with_prefixs zTrie.has_keys_with_prefixcCsT||kr |Sx:tdt|ƒdƒD]$}|d| …|kr |d| …Sq Wt|ƒ‚dS)Né)ÚrangeÚlenÚKeyError)rr Úirrr Úlongest_prefixs zTrie.longest_prefixcCs|j|ƒ}|||fS)N)r)rr Zlprefixrrr Úlongest_prefix_item$s zTrie.longest_prefix_item)N) Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrrÚ __classcell__rr)rr rs   rN)Z __future__rrrÚ collectionsrrrrrr Ús PK,2]Ö ®ŠŠ!__pycache__/datrie.cpython-36.pycnu„[µü¤3 B;ˆWŽã@sLddlmZmZmZddlmZddlmZddl mZ Gdd„de ƒZdS)é)Úabsolute_importÚdivisionÚunicode_literals)ÚTrie)Ú text_typeéc@sVeZdZdd„Zdd„Zdd„Zdd„Zd d „Zdd d „Zdd„Z dd„Z dd„Z d S)rcCsvtƒ}x:|jƒD].}t|tƒs&tdƒ‚x|D]}|j|ƒq,WqWtdj|ƒƒ|_x|j ƒD]\}}||j|<q\WdS)NzAll keys must be stringsÚ) ÚsetÚkeysÚ isinstancerÚ TypeErrorÚaddÚDATrieÚjoinÚ_dataÚitems)ÚselfÚdataÚcharsÚkeyÚcharÚvalue©rú/usr/lib/python3.6/datrie.pyÚ__init__ s  z Trie.__init__cCs ||jkS)N)r)rrrrrÚ __contains__szTrie.__contains__cCs t|jƒS)N)Úlenr)rrrrÚ__len__sz Trie.__len__cCs tƒ‚dS)N)ÚNotImplementedError)rrrrÚ__iter__sz Trie.__iter__cCs |j|S)N)r)rrrrrÚ __getitem__szTrie.__getitem__NcCs |jj|ƒS)N)rr )rÚprefixrrrr "sz Trie.keyscCs |jj|ƒS)N)rÚhas_keys_with_prefix)rr!rrrr"%szTrie.has_keys_with_prefixcCs |jj|ƒS)N)rÚlongest_prefix)rr!rrrr#(szTrie.longest_prefixcCs |jj|ƒS)N)rÚlongest_prefix_item)rr!rrrr$+szTrie.longest_prefix_item)N) Ú__name__Ú __module__Ú __qualname__rrrrr r r"r#r$rrrrr s  rN) Z __future__rrrZdatrierrZsixrZ_baseZABCTrierrrrÚs   PK,2]Ö ®ŠŠ'__pycache__/datrie.cpython-36.opt-1.pycnu„[µü¤3 B;ˆWŽã@sLddlmZmZmZddlmZddlmZddl mZ Gdd„de ƒZdS)é)Úabsolute_importÚdivisionÚunicode_literals)ÚTrie)Ú text_typeéc@sVeZdZdd„Zdd„Zdd„Zdd„Zd d „Zdd d „Zdd„Z dd„Z dd„Z d S)rcCsvtƒ}x:|jƒD].}t|tƒs&tdƒ‚x|D]}|j|ƒq,WqWtdj|ƒƒ|_x|j ƒD]\}}||j|<q\WdS)NzAll keys must be stringsÚ) ÚsetÚkeysÚ isinstancerÚ TypeErrorÚaddÚDATrieÚjoinÚ_dataÚitems)ÚselfÚdataÚcharsÚkeyÚcharÚvalue©rú/usr/lib/python3.6/datrie.pyÚ__init__ s  z Trie.__init__cCs ||jkS)N)r)rrrrrÚ __contains__szTrie.__contains__cCs t|jƒS)N)Úlenr)rrrrÚ__len__sz Trie.__len__cCs tƒ‚dS)N)ÚNotImplementedError)rrrrÚ__iter__sz Trie.__iter__cCs |j|S)N)r)rrrrrÚ __getitem__szTrie.__getitem__NcCs |jj|ƒS)N)rr )rÚprefixrrrr "sz Trie.keyscCs |jj|ƒS)N)rÚhas_keys_with_prefix)rr!rrrr"%szTrie.has_keys_with_prefixcCs |jj|ƒS)N)rÚlongest_prefix)rr!rrrr#(szTrie.longest_prefixcCs |jj|ƒS)N)rÚlongest_prefix_item)rr!rrrr$+szTrie.longest_prefix_item)N) Ú__name__Ú __module__Ú __qualname__rrrrr r r"r#r$rrrrr s  rN) Z __future__rrrZdatrierrZsixrZ_baseZABCTrierrrrÚs   PK,2]õ¼„yWW__pycache__/py.cpython-36.pycnu„[µü¤3 B;ˆWãã@sLddlmZmZmZddlmZddlmZddlm Z Gdd„de ƒZ dS) é)Úabsolute_importÚdivisionÚunicode_literals)Ú text_type)Ú bisect_lefté)ÚTriec@sFeZdZdd„Zdd„Zdd„Zdd„Zd d „Zdd d „Zdd„Z d S)rcCsJtdd„|jƒDƒƒstdƒ‚||_t|jƒƒ|_d|_dt|ƒf|_dS)Ncss|]}t|tƒVqdS)N)Ú isinstancer)Ú.0Úx©r ú/usr/lib/python3.6/py.pyú sz Trie.__init__..zAll keys must be stringsÚr) ÚallÚkeysÚ TypeErrorÚ_dataÚsortedÚ_keysÚ _cachestrÚlenÚ _cachepoints)ÚselfÚdatar r r Ú__init__ s z Trie.__init__cCs ||jkS)N)r)rÚkeyr r r Ú __contains__szTrie.__contains__cCs t|jƒS)N)rr)rr r r Ú__len__sz Trie.__len__cCs t|jƒS)N)Úiterr)rr r r Ú__iter__sz Trie.__iter__cCs |j|S)N)r)rrr r r Ú __getitem__szTrie.__getitem__NcCs¸|dks|dks|j r"t|jƒS|j|jƒrN|j\}}t|j|||ƒ}}nt|j|ƒ}}tƒ}|t|jƒkrv|Sx,|j|j|ƒr¢|j|j|ƒ|d7}qxW||_||f|_|S)Nrr)rÚsetÚ startswithrrrrÚadd)rÚprefixÚloÚhiÚstartÚirr r r rs     z Trie.keyscCsd||jkrdS|j|jƒr6|j\}}t|j|||ƒ}n t|j|ƒ}|t|jƒkrTdS|j|j|ƒS)NTF)rr#rrrrr)rr%r&r'r)r r r Úhas_keys_with_prefix6s    zTrie.has_keys_with_prefix)N) Ú__name__Ú __module__Ú __qualname__rrrr r!rr*r r r r r s  rN) Z __future__rrrZsixrZbisectrZ_baserZABCTrier r r r Ús   PK,2]pn••• __pycache__/_base.cpython-36.pycnu„[µü¤3 B;ˆWÓã@s4ddlmZmZmZddlmZGdd„deƒZdS)é)Úabsolute_importÚdivisionÚunicode_literals)ÚMappingcs:eZdZdZd ‡fdd„ Zdd„Zdd„Zd d „Z‡ZS) ÚTriezAbstract base class for triesNcs4tt|ƒjƒ}ˆdkrt|ƒSt‡fdd„|DƒƒS)Ncsg|]}|jˆƒr|‘qS©)Ú startswith)Ú.0Úx)Úprefixrú/usr/lib/python3.6/_base.pyú szTrie.keys..)ÚsuperrÚkeysÚset)Úselfr r)Ú __class__)r r r sz Trie.keyscCs$x|jƒD]}|j|ƒr dSq WdS)NTF)rr)rr Úkeyrrr Úhas_keys_with_prefixs zTrie.has_keys_with_prefixcCsT||kr |Sx:tdt|ƒdƒD]$}|d| …|kr |d| …Sq Wt|ƒ‚dS)Né)ÚrangeÚlenÚKeyError)rr Úirrr Úlongest_prefixs zTrie.longest_prefixcCs|j|ƒ}|||fS)N)r)rr Zlprefixrrr Úlongest_prefix_item$s zTrie.longest_prefix_item)N) Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrrÚ __classcell__rr)rr rs   rN)Z __future__rrrÚ collectionsrrrrrr Ús PK,2]ÒD ÒTT#__pycache__/__init__.cpython-36.pycnu„[µü¤3 B;ˆW!ã @sRddlmZmZmZddlmZeZyddlmZWne k rHYnXeZdS)é)Úabsolute_importÚdivisionÚunicode_literalsé)ÚTrieN) Z __future__rrrÚpyrZPyTrieZdatrieZDATrieÚ ImportError©r r ú/usr/lib/python3.6/__init__.pyÚs PK,2]Ì•>–ÓÓ_base.pynu„[µü¤from __future__ import absolute_import, division, unicode_literals from collections import Mapping class Trie(Mapping): """Abstract base class for tries""" def keys(self, prefix=None): # pylint:disable=arguments-differ keys = super(Trie, self).keys() if prefix is None: return set(keys) # Python 2.6: no set comprehensions return set([x for x in keys if x.startswith(prefix)]) def has_keys_with_prefix(self, prefix): for key in self.keys(): if key.startswith(prefix): return True return False def longest_prefix(self, prefix): if prefix in self: return prefix for i in range(1, len(prefix) + 1): if prefix[:-i] in self: return prefix[:-i] raise KeyError(prefix) def longest_prefix_item(self, prefix): lprefix = self.longest_prefix(prefix) return (lprefix, self[lprefix]) PK,2]¶‰ÑŽŽ datrie.pynu„[µü¤from __future__ import absolute_import, division, unicode_literals from datrie import Trie as DATrie from six import text_type from ._base import Trie as ABCTrie class Trie(ABCTrie): def __init__(self, data): chars = set() for key in data.keys(): if not isinstance(key, text_type): raise TypeError("All keys must be strings") for char in key: chars.add(char) self._data = DATrie("".join(chars)) for key, value in data.items(): self._data[key] = value def __contains__(self, key): return key in self._data def __len__(self): return len(self._data) def __iter__(self): raise NotImplementedError() def __getitem__(self, key): return self._data[key] def keys(self, prefix=None): return self._data.keys(prefix) def has_keys_with_prefix(self, prefix): return self._data.has_keys_with_prefix(prefix) def longest_prefix(self, prefix): return self._data.longest_prefix(prefix) def longest_prefix_item(self, prefix): return self._data.longest_prefix_item(prefix) PK,2]ïÓ¯!! __init__.pynu„[µü¤from __future__ import absolute_import, division, unicode_literals from .py import Trie as PyTrie Trie = PyTrie # pylint:disable=wrong-import-position try: from .datrie import Trie as DATrie except ImportError: pass else: Trie = DATrie # pylint:enable=wrong-import-position PK,2]\a0&ããpy.pynu„[µü¤from __future__ import absolute_import, division, unicode_literals from six import text_type from bisect import bisect_left from ._base import Trie as ABCTrie class Trie(ABCTrie): def __init__(self, data): if not all(isinstance(x, text_type) for x in data.keys()): raise TypeError("All keys must be strings") self._data = data self._keys = sorted(data.keys()) self._cachestr = "" self._cachepoints = (0, len(data)) def __contains__(self, key): return key in self._data def __len__(self): return len(self._data) def __iter__(self): return iter(self._data) def __getitem__(self, key): return self._data[key] def keys(self, prefix=None): if prefix is None or prefix == "" or not self._keys: return set(self._keys) if prefix.startswith(self._cachestr): lo, hi = self._cachepoints start = i = bisect_left(self._keys, prefix, lo, hi) else: start = i = bisect_left(self._keys, prefix) keys = set() if start == len(self._keys): return keys while self._keys[i].startswith(prefix): keys.add(self._keys[i]) i += 1 self._cachestr = prefix self._cachepoints = (start, i) return keys def has_keys_with_prefix(self, prefix): if prefix in self._data: return True if prefix.startswith(self._cachestr): lo, hi = self._cachepoints i = bisect_left(self._keys, prefix, lo, hi) else: i = bisect_left(self._keys, prefix) if i == len(self._keys): return False return self._keys[i].startswith(prefix) PK,2]ÒD ÒTT)__pycache__/__init__.cpython-36.opt-1.pycnu„[µü¤PK,2]õ¼„yWW#­__pycache__/py.cpython-36.opt-1.pycnu„[µü¤PK,2]pn•••&W __pycache__/_base.cpython-36.opt-1.pycnu„[µü¤PK,2]Ö ®ŠŠ!B__pycache__/datrie.cpython-36.pycnu„[µü¤PK,2]Ö ®ŠŠ'__pycache__/datrie.cpython-36.opt-1.pycnu„[µü¤PK,2]õ¼„yWWþ__pycache__/py.cpython-36.pycnu„[µü¤PK,2]pn••• ¢(__pycache__/_base.cpython-36.pycnu„[µü¤PK,2]ÒD ÒTT#‡.__pycache__/__init__.cpython-36.pycnu„[µü¤PK,2]Ì•>–ÓÓ.0_base.pynu„[µü¤PK,2]¶‰ÑŽŽ 94datrie.pynu„[µü¤PK,2]ïÓ¯!! 9__init__.pynu„[µü¤PK,2]\a0&ãã\:py.pynu„[µü¤PK ;tA