�ɲɾ�����ӯ�����һ��ˣ��������С���˴��ͣ�������P���ҹ��ñ˽��ά�Բ��������˸߸ԣ�������ơ��ҹ��ñ�����ά�Բ���ˡ���˳^�ӣ������ӡ� ���ͯj�ӣ��ƺ���ӣ� ? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!__pycache__/__init__.cpython-36.opt-1.pyc000064400000000524152530336550014110 0ustar003 B;W! @sRddlmZmZmZddlmZeZyddlmZWne k rHYnXeZdS))absolute_importdivisionunicode_literals)TrieN) Z __future__rrrpyrZPyTrieZdatrieZDATrie ImportErrorr r /usr/lib/python3.6/__init__.pys __pycache__/py.cpython-36.opt-1.pyc000064400000004127152530336550013004 0ustar003 B;W@sLddlmZmZmZddlmZddlmZddlm Z Gddde Z dS) )absolute_importdivisionunicode_literals) text_type) bisect_left)Triec@sFeZdZddZddZddZddZd d Zdd d ZddZ d S)rcCsJtdd|jDstd||_t|j|_d|_dt|f|_dS)Ncss|]}t|tVqdS)N) isinstancer).0xr /usr/lib/python3.6/py.py sz Trie.__init__..zAll keys must be stringsr) allkeys TypeError_datasorted_keys _cachestrlen _cachepoints)selfdatar r r __init__ s z Trie.__init__cCs ||jkS)N)r)rkeyr r r __contains__szTrie.__contains__cCs t|jS)N)rr)rr r r __len__sz Trie.__len__cCs t|jS)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|jS|j|jrN|j\}}t|j|||}}nt|j|}}t}|t|jkrv|Sx,|j|j|r|j|j||d7}qxW||_||f|_|S)Nrr)rset startswithrrrradd)rprefixlohistartirr r r rs     z Trie.keyscCsd||jkrdS|j|jr6|j\}}t|j|||}n t|j|}|t|jkrTdS|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   __pycache__/_base.cpython-36.opt-1.pyc000064400000002625152530336550013426 0ustar003 B;W@s4ddlmZmZmZddlmZGdddeZdS))absolute_importdivisionunicode_literals)Mappingcs:eZdZdZd fdd ZddZddZd d ZZS) TriezAbstract base class for triesNcs4tt|j}dkrt|Stfdd|DS)Ncsg|]}|jr|qS) startswith).0x)prefixr/usr/lib/python3.6/_base.py szTrie.keys..)superrkeysset)selfr r) __class__)r r r sz Trie.keyscCs$x|jD]}|j|r dSq WdS)NTF)rr)rr keyrrr has_keys_with_prefixs zTrie.has_keys_with_prefixcCsT||kr |Sx:tdt|dD]$}|d| |kr |d| Sq Wt|dS)N)rangelenKeyError)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 __pycache__/datrie.cpython-36.pyc000064400000003612152530336550012663 0ustar003 B;W@sLddlmZmZmZddlmZddlmZddl mZ Gddde ZdS))absolute_importdivisionunicode_literals)Trie) text_typec@sVeZdZddZddZddZddZd d Zdd d ZddZ ddZ ddZ d S)rcCsvt}x:|jD].}t|ts&tdx|D]}|j|q,WqWtdj||_x|j D]\}}||j|<q\WdS)NzAll keys must be strings) setkeys isinstancer TypeErroraddDATriejoin_dataitems)selfdatacharskeycharvaluer/usr/lib/python3.6/datrie.py__init__ s  z Trie.__init__cCs ||jkS)N)r)rrrrr __contains__szTrie.__contains__cCs t|jS)N)lenr)rrrr__len__sz Trie.__len__cCs tdS)N)NotImplementedError)rrrr__iter__sz Trie.__iter__cCs |j|S)N)r)rrrrr __getitem__szTrie.__getitem__NcCs |jj|S)N)rr )rprefixrrrr "sz Trie.keyscCs |jj|S)N)rhas_keys_with_prefix)rr!rrrr"%szTrie.has_keys_with_prefixcCs |jj|S)N)rlongest_prefix)rr!rrrr#(szTrie.longest_prefixcCs |jj|S)N)rlongest_prefix_item)rr!rrrr$+szTrie.longest_prefix_item)N) __name__ __module__ __qualname__rrrrr r r"r#r$rrrrr s  rN) Z __future__rrrZdatrierrZsixrZ_baseZABCTrierrrrs   __pycache__/datrie.cpython-36.opt-1.pyc000064400000003612152530336550013622 0ustar003 B;W@sLddlmZmZmZddlmZddlmZddl mZ Gddde ZdS))absolute_importdivisionunicode_literals)Trie) text_typec@sVeZdZddZddZddZddZd d Zdd d ZddZ ddZ ddZ d S)rcCsvt}x:|jD].}t|ts&tdx|D]}|j|q,WqWtdj||_x|j D]\}}||j|<q\WdS)NzAll keys must be strings) setkeys isinstancer TypeErroraddDATriejoin_dataitems)selfdatacharskeycharvaluer/usr/lib/python3.6/datrie.py__init__ s  z Trie.__init__cCs ||jkS)N)r)rrrrr __contains__szTrie.__contains__cCs t|jS)N)lenr)rrrr__len__sz Trie.__len__cCs tdS)N)NotImplementedError)rrrr__iter__sz Trie.__iter__cCs |j|S)N)r)rrrrr __getitem__szTrie.__getitem__NcCs |jj|S)N)rr )rprefixrrrr "sz Trie.keyscCs |jj|S)N)rhas_keys_with_prefix)rr!rrrr"%szTrie.has_keys_with_prefixcCs |jj|S)N)rlongest_prefix)rr!rrrr#(szTrie.longest_prefixcCs |jj|S)N)rlongest_prefix_item)rr!rrrr$+szTrie.longest_prefix_item)N) __name__ __module__ __qualname__rrrrr r r"r#r$rrrrr s  rN) Z __future__rrrZdatrierrZsixrZ_baseZABCTrierrrrs   __pycache__/py.cpython-36.pyc000064400000004127152530336550012045 0ustar003 B;W@sLddlmZmZmZddlmZddlmZddlm Z Gddde Z dS) )absolute_importdivisionunicode_literals) text_type) bisect_left)Triec@sFeZdZddZddZddZddZd d Zdd d ZddZ d S)rcCsJtdd|jDstd||_t|j|_d|_dt|f|_dS)Ncss|]}t|tVqdS)N) isinstancer).0xr /usr/lib/python3.6/py.py sz Trie.__init__..zAll keys must be stringsr) allkeys TypeError_datasorted_keys _cachestrlen _cachepoints)selfdatar r r __init__ s z Trie.__init__cCs ||jkS)N)r)rkeyr r r __contains__szTrie.__contains__cCs t|jS)N)rr)rr r r __len__sz Trie.__len__cCs t|jS)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|jS|j|jrN|j\}}t|j|||}}nt|j|}}t}|t|jkrv|Sx,|j|j|r|j|j||d7}qxW||_||f|_|S)Nrr)rset startswithrrrradd)rprefixlohistartirr r r rs     z Trie.keyscCsd||jkrdS|j|jr6|j\}}t|j|||}n t|j|}|t|jkrTdS|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   __pycache__/_base.cpython-36.pyc000064400000002625152530336550012467 0ustar003 B;W@s4ddlmZmZmZddlmZGdddeZdS))absolute_importdivisionunicode_literals)Mappingcs:eZdZdZd fdd ZddZddZd d ZZS) TriezAbstract base class for triesNcs4tt|j}dkrt|Stfdd|DS)Ncsg|]}|jr|qS) startswith).0x)prefixr/usr/lib/python3.6/_base.py szTrie.keys..)superrkeysset)selfr r) __class__)r r r sz Trie.keyscCs$x|jD]}|j|r dSq WdS)NTF)rr)rr keyrrr has_keys_with_prefixs zTrie.has_keys_with_prefixcCsT||kr |Sx:tdt|dD]$}|d| |kr |d| Sq Wt|dS)N)rangelenKeyError)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 __pycache__/__init__.cpython-36.pyc000064400000000524152530336550013151 0ustar003 B;W! @sRddlmZmZmZddlmZeZyddlmZWne k rHYnXeZdS))absolute_importdivisionunicode_literals)TrieN) Z __future__rrrpyrZPyTrieZdatrieZDATrie ImportErrorr r /usr/lib/python3.6/__init__.pys _base.py000064400000001723152530336550006201 0ustar00from __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]) datrie.py000064400000002232152530336550006374 0ustar00from __future__ import absolute_import, division, unicode_literals from datrie import Trie as DATrie from pip._vendor.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) __init__.py000064400000000441152530336550006663 0ustar00from __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 py.py000064400000003357152530336550005565 0ustar00from __future__ import absolute_import, division, unicode_literals from pip._vendor.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) datrie.pyo000064400000005333152535562620006564 0ustar00 abc@`sfddlmZmZmZddlmZddlmZddl mZ de fdYZdS(i(tabsolute_importtdivisiontunicode_literals(tTrie(t text_typeiRcB`s\eZdZdZdZdZdZd dZdZ dZ dZ RS( cC`st}xP|jD]B}t|ts:tdnx|D]}|j|qAWqWtdj||_x'|j D]\}}||j|s_base.pyo000064400000003342152535562620006363 0ustar00 abc@`sFddlmZmZmZddlmZdefdYZdS(i(tabsolute_importtdivisiontunicode_literals(tMappingtTriecB`s5eZdZddZdZdZdZRS(uAbstract base class for triescC`sWtt|j}|dkr+t|Stg|D]}|j|r5|^q5S(N(tsuperRtkeystNonetsett startswith(tselftprefixRtx((sD/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/_base.pyR s  cC`s.x'|jD]}|j|r tSq WtS(N(RR tTruetFalse(R R tkey((sD/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/_base.pythas_keys_with_prefixscC`s^||kr|Sx;tdt|dD] }|| |kr*|| Sq*Wt|dS(Ni(trangetlentKeyError(R R ti((sD/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/_base.pytlongest_prefixs    cC`s|j|}|||fS(N(R(R R tlprefix((sD/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/_base.pytlongest_prefix_item$sN(t__name__t __module__t__doc__RRRRR(((sD/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/_base.pyRs   N(t __future__RRRt collectionsRR(((sD/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/_base.pytsdatrie.pyc000064400000005333152535562620006550 0ustar00 abc@`sfddlmZmZmZddlmZddlmZddl mZ de fdYZdS(i(tabsolute_importtdivisiontunicode_literals(tTrie(t text_typeiRcB`s\eZdZdZdZdZdZd dZdZ dZ dZ RS( cC`st}xP|jD]B}t|ts:tdnx|D]}|j|qAWqWtdj||_x'|j D]\}}||j|spy.pyc000064400000005713152535562620005732 0ustar00 abc@`sfddlmZmZmZddlmZddlmZddlm Z de fdYZ dS( i(tabsolute_importtdivisiontunicode_literals(t text_type(t bisect_lefti(tTrieRcB`sJeZdZdZdZdZdZddZdZ RS(cC`sktd|jDs+tdn||_t|j|_d|_dt|f|_dS(Ncs`s|]}t|tVqdS(N(t isinstanceR(t.0tx((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pys suAll keys must be stringsui( talltkeyst TypeErrort_datatsortedt_keyst _cachestrtlent _cachepoints(tselftdata((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pyt__init__ s   cC`s ||jkS(N(R (Rtkey((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pyt __contains__scC`s t|jS(N(RR (R((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pyt__len__scC`s t|jS(N(titerR (R((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pyt__iter__scC`s |j|S(N(R (RR((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pyt __getitem__scC`s|dks"|dks"|j r/t|jS|j|jro|j\}}t|j|||}}nt|j|}}t}|t|jkr|Sx8|j|j|r|j|j||d7}qW||_||f|_|S(Nui( tNoneRtsett startswithRRRRtadd(RtprefixtlothitstarttiR ((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pyR s"   cC`s||jkrtS|j|jrO|j\}}t|j|||}nt|j|}|t|jkrztS|j|j|S(N( R tTrueRRRRRRtFalse(RRR R!R#((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pythas_keys_with_prefix6sN( t__name__t __module__RRRRRRR R&(((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pyR s     N( t __future__RRRtpip._vendor.sixRtbisectRt_baseRtABCTrie(((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pyts__init__.pyc000064400000000672152535562620007040 0ustar00 abc@`sdddlmZmZmZddlmZeZyddlmZWne k rYnXeZdS(i(tabsolute_importtdivisiontunicode_literalsi(tTrieN( t __future__RRRtpyRtPyTrietdatrietDATriet ImportError(((sG/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/__init__.pyts _base.pyc000064400000003342152535562620006347 0ustar00 abc@`sFddlmZmZmZddlmZdefdYZdS(i(tabsolute_importtdivisiontunicode_literals(tMappingtTriecB`s5eZdZddZdZdZdZRS(uAbstract base class for triescC`sWtt|j}|dkr+t|Stg|D]}|j|r5|^q5S(N(tsuperRtkeystNonetsett startswith(tselftprefixRtx((sD/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/_base.pyR s  cC`s.x'|jD]}|j|r tSq WtS(N(RR tTruetFalse(R R tkey((sD/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/_base.pythas_keys_with_prefixscC`s^||kr|Sx;tdt|dD] }|| |kr*|| Sq*Wt|dS(Ni(trangetlentKeyError(R R ti((sD/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/_base.pytlongest_prefixs    cC`s|j|}|||fS(N(R(R R tlprefix((sD/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/_base.pytlongest_prefix_item$sN(t__name__t __module__t__doc__RRRRR(((sD/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/_base.pyRs   N(t __future__RRRt collectionsRR(((sD/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/_base.pyts__init__.pyo000064400000000672152535562620007054 0ustar00 abc@`sdddlmZmZmZddlmZeZyddlmZWne k rYnXeZdS(i(tabsolute_importtdivisiontunicode_literalsi(tTrieN( t __future__RRRtpyRtPyTrietdatrietDATriet ImportError(((sG/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/__init__.pyts py.pyo000064400000005713152535562620005746 0ustar00 abc@`sfddlmZmZmZddlmZddlmZddlm Z de fdYZ dS( i(tabsolute_importtdivisiontunicode_literals(t text_type(t bisect_lefti(tTrieRcB`sJeZdZdZdZdZdZddZdZ RS(cC`sktd|jDs+tdn||_t|j|_d|_dt|f|_dS(Ncs`s|]}t|tVqdS(N(t isinstanceR(t.0tx((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pys suAll keys must be stringsui( talltkeyst TypeErrort_datatsortedt_keyst _cachestrtlent _cachepoints(tselftdata((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pyt__init__ s   cC`s ||jkS(N(R (Rtkey((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pyt __contains__scC`s t|jS(N(RR (R((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pyt__len__scC`s t|jS(N(titerR (R((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pyt__iter__scC`s |j|S(N(R (RR((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pyt __getitem__scC`s|dks"|dks"|j r/t|jS|j|jro|j\}}t|j|||}}nt|j|}}t}|t|jkr|Sx8|j|j|r|j|j||d7}qW||_||f|_|S(Nui( tNoneRtsett startswithRRRRtadd(RtprefixtlothitstarttiR ((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pyR s"   cC`s||jkrtS|j|jrO|j\}}t|j|||}nt|j|}|t|jkrztS|j|j|S(N( R tTrueRRRRRRtFalse(RRR R!R#((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pythas_keys_with_prefix6sN( t__name__t __module__RRRRRRR R&(((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pyR s     N( t __future__RRRtpip._vendor.sixRtbisectRt_baseRtABCTrie(((sA/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/_trie/py.pyts