o ?Og@s dZgdZdZddlZddlZddlZddZz ddlmZmZWne y4dd Zd d ZYnweZ Gd d d e Z Gddde Z Gddde ZGddde ZGddde ZGdddeZGdddZGdddeZGdddeZddZd d!Zee d"fee d"fee d#fee d$fd%Zd&d'Zd(d)Zd*ZGd+d,d,Zd-Zd.ZGd/d0d0Z Gd1d2d2Z!Gd3d4d4e!Z"Gd5d6d6e!Z#d7d8Z$eZ%dS)9z1.5.3)Option make_option SUPPRESS_HELPSUPPRESS_USAGEValuesOptionContainer OptionGroup OptionParser HelpFormatterIndentedHelpFormatterTitledHelpFormatter OptParseError OptionErrorOptionConflictErrorOptionValueErrorBadOptionError check_choicea" Copyright (c) 2001-2006 Gregory P. Ward. All rights reserved. Copyright (c) 2002-2006 Python Software Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. NcCsd|jjt||fS)Nz<%s at 0x%x: %s>) __class____name__idselfr//opt/alt/python310/lib64/python3.10/optparse.py_reprOr)gettextngettextcCs|SNr)messagerrrr\srcCs|dkr|S|SNr)ZsingularZpluralnrrrr_src@seZdZddZddZdS)r cC ||_dSrmsgrr%rrr__init__h zOptParseError.__init__cC|jSrr$rrrr__str__kzOptParseError.__str__Nr __module__ __qualname__r'r*rrrrr gs r c@eZdZ ddZddZdS)r cCs||_t||_dSr)r%str option_id)rr%optionrrrr'uszOptionError.__init__cCs|jr d|j|jfS|jS)Nz option %s: %s)r1r%rrrrr*yszOptionError.__str__Nr,rrrrr os r c@ eZdZdS)rNrr-r.rrrrrrc@r3)rNr4rrrrrr5rc@r/)rcCr#r)opt_strrr6rrrr'r(zBadOptionError.__init__cCstd|jS)Nzno such option: %s)_r6rrrrr*zBadOptionError.__str__Nr,rrrrrs rc@r/)AmbiguousOptionErrorcCst||||_dSr)rr' possibilities)rr6r;rrrr's  zAmbiguousOptionError.__init__cCstd|jd|jfS)Nzambiguous option: %s (%s?), )r8r6joinr;rrrrr*szAmbiguousOptionError.__str__Nr,rrrrr:s r:c@seZdZ dZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd S)!r Znonec Csd|_||_|dur%z ttjd}Wn ttfy d}Ynw|d8}||_t|t |d|d|_ |_ d|_ d|_ d|_||_d|_i|_d|_d|_dS) NZCOLUMNSPrz%defaultz%s %sz%s=%s)parserindent_incrementintosenvironKeyError ValueErrorwidthminmax help_positionmax_help_positioncurrent_indentlevel help_width short_first default_tagoption_strings_short_opt_fmt _long_opt_fmtrrBrLrHrPrrrr's(  zHelpFormatter.__init__cCr#r)rArrArrr set_parserr(zHelpFormatter.set_parsercC&|dvr td|d|d|_dS)N) z/invalid metavar delimiter for short options: %r%s)rGrSrZdelimrrrset_short_opt_delimiter z%HelpFormatter.set_short_opt_delimitercCrX)N)=rZz.invalid metavar delimiter for long options: %rr[)rGrTr\rrrset_long_opt_delimiterr^z$HelpFormatter.set_long_opt_delimitercCs"|j|j7_|jd7_dSr rMrBrNrrrrindentszHelpFormatter.indentcCs"|j|j8_|jd8_dSr rarrrrdedentszHelpFormatter.dedentcCtdNzsubclasses must implementNotImplementedErrorrusagerrr format_usagezHelpFormatter.format_usagecCrdrerfrZheadingrrrformat_headingrkzHelpFormatter.format_headingcCs0 t|j|jd}d|j}tj||||dS)N rZ)Zinitial_indentZsubsequent_indent)rJrHrMtextwrapZfill)rtextZ text_widthrbrrr _format_texts zHelpFormatter._format_textcCs|r ||dSdSN rYrqr descriptionrrrformat_descriptionsz HelpFormatter.format_descriptioncCs|r d||dSdSrrrt)repilogrrr format_epilogszHelpFormatter.format_epilogcCsP|jdus|js |jS|jj|j}|tus|dur|j}|j|jt |Sr) rArQhelpdefaultsgetdest NO_DEFAULTNO_DEFAULT_VALUEreplacer0)rr2Z default_valuerrrexpand_defaults zHelpFormatter.expand_defaultcsg}j|}jjd}t||kr!djd|f}j}n djd||f}d}|||jr]|}t|j }|d|d|df| fdd|ddDn |d d krh|d d |S) Nr?%*s%s rYz %*s%-*s rcsg|] }djd|fqS)rrY)rK).0linerrr Esz/HelpFormatter.format_option..r!rs) rRrKrMlenappendrzrroZwraprOextendr=)rr2resultoptsZ opt_widthZ indent_firstZ help_textZ help_linesrrr format_option(s&        zHelpFormatter.format_optioncCs|d}|jD]}||}||j|<t|t||j}q ||jD]}|jD]}||}||j|<t|t||j}q,q'||t |d|j |_ t|j |j d|_ dS)Nrr?rn)rb option_listformat_option_stringsrRrJrrM option_groupsrcrIrLrKrHrO)rrAZmax_lenoptZstringsgrouprrrstore_option_stringsKs"       z"HelpFormatter.store_option_stringscsv |r$|jp |jfdd|jD}fdd|jD}n|j}|j}jr2||}n||}d|S)Ncg|] }j|fqSr)rS)rZsoptmetavarrrrraz7HelpFormatter.format_option_strings..crr)rT)rZloptrrrrcrr<) takes_valuerr}upper _short_opts _long_optsrPr=)rr2Z short_optsZ long_optsrrrrr]s    z#HelpFormatter.format_option_stringsN)rr-r.rr'rWr]r`rbrcrjrmrqrwryrrrrrrrrr s$)  # r c@s0eZdZ    d ddZddZd d ZdS) r r?Nr!cCt|||||dSrr r'rUrrrr't zIndentedHelpFormatter.__init__cCs td|S)Nz Usage: %s )r8rhrrrrj| z"IndentedHelpFormatter.format_usagecCsd|jd|fS)Nz%*s%s: rY)rMrlrrrrmz$IndentedHelpFormatter.format_heading)r?rNr!rr-r.r'rjrmrrrrr p  r c@s0eZdZ    d ddZddZdd ZdS) r rrNcCrrrrUrrrr'rzTitledHelpFormatter.__init__cCsd|td|fS)Nz%s %s ZUsage)rmr8rhrrrrjrz TitledHelpFormatter.format_usagecCsd|d|jt|fS)Nz%s %s z=-)rNrrlrrrrmsz"TitledHelpFormatter.format_heading)rrNrrrrrrr rr cCsh|dddkr d}n"|dddkr"d}|ddp d}n |dddkr-d}nd}|||S) Nr?Z0xZ0b0r! )lower)valtyperadixrrr _parse_nums rcCs t|tSr)rrC)rrrr _parse_intr(rZintegerzfloating-pointcomplex)rClongfloatrcCs>t|j\}}z||WStyttd|||fw)Nzoption %s: invalid %s value: %r) _builtin_cvtrrGrr8)r2rvalueZcvtZwhatrrr check_builtins  rcCs6||jvr|Sdtt|j}ttd|||f)Nr<z.option %s: invalid choice: %r (choose from %s))choicesr=mapreprrr8)r2rrrrrrrs r)ZNOZDEFAULTc@seZdZ gdZdZdZdZdZdZdZ e e e e e dZ d Z d d Zd d ZddZddZddZddZddZddZddZddZddZeeeeeeegZ d d!ZeZd"d#Zd$d%Zd&d'Zd(d)Zd*d+Z d,d-Z!d S).r) actionrr}defaultnargsconstrcallback callback_argscallback_kwargsrzr) store store_const store_true store_falser append_constcountrrzversion)rrrrrrr)rrr)rr)rr)stringrCrrrchoice)rCrrrrNcOsBg|_g|_||}|||||jD]}||qdSr)rr_check_opt_strings_set_opt_strings _set_attrs CHECK_METHODS)rrattrscheckerrrrr'4s     zOption.__init__cCsdd|D}|s td|S)NcSsg|]}|r|qSrr)rrrrrrKz-Option._check_opt_strings..z+at least one option string must be supplied) TypeError)rrrrrrGszOption._check_opt_stringscCs|D]J}t|dkrtd||t|dkr1|ddkr#|ddks*td|||j|q|dddkr?|ddksFtd|||j|qdS) Nr?z>invalid option string %r: must be at least two characters longr-r!zMinvalid short option string %r: must be of the form -x, (x any non-dash char)--zGinvalid long option string %r: must start with --, followed by non-dash)rr rrr)rrrrrrrPs4  zOption._set_opt_stringscCsv|jD]#}||vrt||||||=q|dkr t||tqt||dq|r9t|}tdd||dS)Nrzinvalid keyword arguments: %sr<)ATTRSsetattrr~sortedkeysr r=)rrattrrrrres   zOption._set_attrscCs4|jdur d|_dS|j|jvrtd|j|dS)Nrzinvalid action: %r)rACTIONSr rrrr _check_actionxs   zOption._check_actioncCs|jdur|j|jvr|jdurd|_dSd|_dSdSt|jtr'|jj|_|jdkr/d|_|j|jvr=td|j||j|jvrKtd|j|dS)Nrrr0zinvalid option type: %rz$must not supply a type for action %r) rrALWAYS_TYPED_ACTIONSr isinstancerTYPESr TYPED_ACTIONSrrrr _check_type~s"          zOption._check_typecCsr|jdkr*|jdurtd|t|jttfs(tdtt|jdd|dS|jdur7td|j|dS)Nrz/must supply a list of choices for type 'choice'z1choices must be a list of strings ('%s' supplied)'r!z#must not supply choices for type %r)rrr rtuplelistr0splitrrrr _check_choices$    zOption._check_choicecCsf|j|jvp |jdu}|jdur/|r1|jr%|jddddd|_dS|jdd|_dSdSdS)Nrr?rr8r!)r STORE_ACTIONSrr}rrr)rrrrr _check_dests  zOption._check_destcCs.|j|jvr|jdurtd|j|dSdS)Nz*'const' must not be supplied for action %r)r CONST_ACTIONSrr rrrr _check_consts zOption._check_constcCsB|j|jvr|jdurd|_dSdS|jdurtd|j|dS)Nr!z*'nargs' must not be supplied for action %r)rrrr rrrr _check_nargss    zOption._check_nargscCs|jdkr.)rrr)rrrrrr convert_values   zOption.convert_valuecCs$|||}||j|j||||Sr)r take_actionrr})rrrvaluesrArrrprocesss zOption.processc CsH|dkr t|||d S|dkrt|||jd S|dkr%t||dd S|dkr1t||dd S|dkr@||g|d S|dkrP||g|jd S|d krbt||||d d d S|d kr|jpjd }|jpoi}|j||||g|Ri|d S|dkr||d S|dkr| |d St d|j )NrrrTrFrrrrr!rrrzrzunknown action %r) rr ensure_valuerrrr print_helpexit print_versionrGr) rrr}rrrrAargskwargsrrrrsF      zOption.take_action)"rr-r.rrrrrrrrrrrr'rrrrrrrrrrr*r__repr__rrrrrrrrrrrsV       rZ SUPPRESSHELPZ SUPPRESSUSAGEc@s^eZdZdddZddZeZddZdd Zd d Z d d Z dddZ dddZ ddZ dS)rNcCs*|r|D] \}}t|||qdSdSr)itemsr)rr{rrrrrr'9s zValues.__init__cCs t|jSr)r0__dict__rrrrr*>r(zValues.__str__cCs.t|tr |j|jkSt|tr|j|kStSr)rrrrNotImplemented)rotherrrr__eq__Cs    z Values.__eq__cCs8 t|D]}||vr||}|durt|||qdSr)dirr)rrrZdvalrrr_update_carefulKs  zValues._update_carefulcCs |j|dSr)rupdate)rrrrr _update_looseXszValues._update_loosecCs8|dkr ||dS|dkr||dStd|)NcarefulZloosezinvalid update mode: %r)rrrG)rrmoderrr_update`s  zValues._updatercCs&t|tj|}|t||dSr) __import__sysmodulesrvars)rmodnamermodrrr read_modulehs zValues.read_modulecCs&i}tt|||||dSr)execopenreadr)rfilenamerr rrr read_filemszValues.read_filecCs.t||r t||durt|||t||Sr)hasattrgetattrr)rrrrrrrrs  zValues.ensure_valuer)r)rr-r.r'r*rrrrrrr rrrrrrr7s     rc@seZdZ ddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!S)"rcCs&|||_||||dSr)_create_option_list option_classset_conflict_handlerset_description)rrconflict_handlerrvrrrr's zOptionContainer.__init__cCsi|_i|_i|_dSr _short_opt _long_optr{rrrr_create_option_mappingss z'OptionContainer._create_option_mappingscCs|j|_|j|_|j|_dSrrrVrrr_share_option_mappingss z&OptionContainer._share_option_mappingscCs|dvr td|||_dS)N)errorresolvez$invalid conflict_resolution value %r)rGr)rhandlerrrrrs  z$OptionContainer.set_conflict_handlercCr#rrvrurrrrr(zOptionContainer.set_descriptioncCr)rr"rrrrget_descriptionr+zOptionContainer.get_descriptioncCs |`|`|`dSrrrrrrdestroyszOptionContainer.destroycCsg}|jD]}||jvr|||j|fq|jD]}||jvr+|||j|fq|rv|j}|dkrDtdddd|D||dkrx|D]/\}}|dr^|j ||j|=n |j ||j|=|jsu|jsu|j j |qJdSdSdS)Nrz conflicting option string(s): %sr<cSsg|]}|dqS)rr)rcorrrrrz3OptionContainer._check_conflict..r r) rrrrrrrr= startswithremove containerr)rr2Z conflict_optsrr!Zc_optionrrr_check_conflicts>          zOptionContainer._check_conflictcOs t|dtr|j|i|}nt|dkr)|s)|d}t|ts(td|ntd|||j|||_ |j D]}||j |<q>|j D]}||j |<qI|jdurp|jturd|j|j|j<|S|j|jvrpd|j|j<|S)Nrr!znot an Option instance: %rinvalid arguments)rr0rrrrr)rrr(rrrrr}rr~r{)rrrr2rrrr add_options.           zOptionContainer.add_optioncCs|D]}||qdSr)r+)rrr2rrr add_optionss zOptionContainer.add_optionscCs|j|p |j|Sr)rr|rr7rrr get_options  zOptionContainer.get_optioncCs||jvp ||jvSr)rrr7rrr has_option s zOptionContainer.has_optioncCsn|j|}|dur|j|}|durtd||jD]}|j|=q|jD]}|j|=q'|jj|dS)Nzno such option %r) rr|rrGrrr(rr')rr6r2rrrr remove_options       zOptionContainer.remove_optioncCs>|jsdSg}|jD]}|jtur|||q d|SNrY)rrzrrrr=)r formatterrr2rrrformat_option_helps   z"OptionContainer.format_option_helpcCs||Sr)rwr#rr1rrrrw(r9z"OptionContainer.format_descriptioncCs:g}|jr ||||jr|||d|S)Nrs)rvrrwrr2r=rr1rrrr format_help+s  zOptionContainer.format_helpN)rr-r.r'rrrrr#r$r)r+r,r-r.r/r2rwr5rrrrrxs$    rc@s6eZdZd ddZddZddZdd Zd d ZdS) rNcCs$||_t||j|j|||_dSr)rArr'rrtitle)rrAr6rvrrrr'6s   zOptionGroup.__init__cCsg|_||jdSr)rrrArrrrr<szOptionGroup._create_option_listcCr#r)r6)rr6rrr set_title@r(zOptionGroup.set_titlecCs t||`dSr)rr$rrrrrr$Cs zOptionGroup.destroycCs0||j}||t||7}||Sr)rmr6rbrr5rcr4rrrr5Js zOptionGroup.format_helpr)rr-r.r'rr7r$r5rrrrr4s   rc @s`eZdZ gZddedddddddf ddZddZdd Zd d Zd d Z dOddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'ZdPd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9ZdQd;d<Z d=d>Z!d?d@Z"dRdAdBZ#dCdDZ$dRdEdFZ%dRdGdHZ&dIdJZ'dRdKdLZ(dRdMdNZ)dS)SrNrTc Csrt||||||| |_||_d|_d|_|dur t}||_|j || |_ |j ||d| dS)NT)add_help) rr' set_usageprograllow_interspersed_argsprocess_default_valuesr r1rWrx_populate_option_list_init_parsing_state) rrirrrrrvr1Zadd_help_optionr:rxrrrr's"    zOptionParser.__init__cCs0 t||jD]}|q |`|`|`dSr)rr$rrr1)rrrrrr$s   zOptionParser.destroycCsg|_g|_|dSr)rrrrrrrrs z OptionParser._create_option_listcCs|jdddtdddS)Nz-hz--helprzzshow this help message and exitrrzr+r8rrrr_add_help_options zOptionParser._add_help_optioncCs|jddtdddS)Nz --versionrz&show program's version number and exitr?r@rrrr_add_version_options z OptionParser._add_version_optioncCsB|jr ||j|r|||jr||r|dSdSr)standard_option_listr,rrBrA)rrr8rrrr=s   z"OptionParser._populate_option_listcCsd|_d|_d|_dSr)rargslargsrrrrrr>s z OptionParser._init_parsing_statecCsR|dur td|_dS|turd|_dS|dr$|dd|_dS||_dS)Nz%prog [options]zusage: )r8rirrr&rhrrrr9s  zOptionParser.set_usagecC d|_dS)NTr;rrrrenable_interspersed_args z%OptionParser.enable_interspersed_argscCrG)NFrHrrrrdisable_interspersed_argsrJz&OptionParser.disable_interspersed_argscCr#r)r<)rrrrrset_process_default_values r(z'OptionParser.set_process_default_valuescCs||j|<dSr)r{)rr}rrrr set_defaultr9zOptionParser.set_defaultcKs|j|dSr)r{r)rrrrr set_defaultsrzOptionParser.set_defaultscCs*|jdd}|jD]}||jq |Sr)rrr)rZoptionsrrrr_get_all_optionss zOptionParser._get_all_optionscCs`|jst|jS|j}|D]}||j}t|tr+| }| ||||j<qt|Sr) r<rr{copyrOr|r}rr0rr)rr{r2rr6rrrget_default_valuess     zOptionParser.get_default_valuescOst|dtrt|g|Ri|}n%t|dkr4|s4|d}t|ts*td||j|ur3tdntd|j||S)Nrr!znot an OptionGroup instance: %rz"invalid OptionGroup (wrong parser)r*) rr0rrrrArGrr)rrrrrrradd_option_group+s    zOptionParser.add_option_groupcCs0|j|p |j|}|r|j|ur|jSdSr)rr|rr()rr6r2rrrget_option_group;s  zOptionParser.get_option_groupcCs"|dur tjddS|ddSr )rargv)rrrrr _get_argsEs zOptionParser._get_argsc Cs ||}|dur|}||_g|_}||_z ||||}Wnttfy=}z |t |WYd}~nd}~ww||}| ||Sr) rUrQrDrEr _process_argsrrrr0 check_values)rrrrDrEstoperrrrr parse_argsKs   zOptionParser.parse_argscCs ||fSrr)rrrrrrrWrs zOptionParser.check_valuescCs |rF|d}|dkr|d=dS|dddkr|||n#|dddkr4t|dkr4|||n|jr@|||d=ndS|sdSdS)Nrrr?r!r)_process_long_optr_process_short_optsr;r)rrErDrargrrrrVs   zOptionParser._process_argscCs t||jSr) _match_abbrevr)rrrrr_match_long_opts zOptionParser._match_long_optc Cs|d}d|vr|dd\}}|d|d}n|}d}||}|j|}|r\|j}t||krD|t dd|||dn&|dkrN|d} nt |d|} |d|=n|rh|t d |nd} | || ||dS) Nrr_r!TF.%(option)s option requires %(number)d argument/%(option)s option requires %(number)d argumentsr2Znumberz%s option does not take a value) poprinsertr_rrrrrrrr8r) rrDrr]rZnext_argZhad_explicit_valuer2rrrrrr[s6       zOptionParser._process_long_optc Cs|d}d}d}|ddD]k}d|}|j|}|d7}|s%t||rk|t|kr;|d||dd}|j} t|| krS|t dd| || dn| dkr]|d} nt |d| } |d| =nd} | || |||rzdSqdS) NrFr!rTr`rarb) rcrr|rrrrdrrrrr) rrDrr]rXiZchrr2rrrrrr\s@      z OptionParser._process_short_optscCs"|jdurtjtjdS|jSr)r:rDpathbasenamerrTrrrr get_prog_names zOptionParser.get_prog_namecCs|d|S)Nz%prog)rrh)rsrrrexpand_prog_namerzOptionParser.expand_prog_namecCs ||jSr)rjrvrrrrr#rzOptionParser.get_descriptionrcCs|rtj|t|dSr)rstderrwriter)rZstatusr%rrrrs zOptionParser.exitcCs* |tj|dd||fdS)Nr?z%s: error: %s ) print_usagerrkrrhr&rrrrs zOptionParser.errorcCs|jr |j||jSdSr0)rir1rjrjrrrr get_usage#s  zOptionParser.get_usagecC |jrt||ddSdSN)file)riprintrnrrqrrrrm*szOptionParser.print_usagecCs|jr ||jSdSr0)rrjrrrr get_version6s zOptionParser.get_versioncCrorp)rrrrtrsrrrr<szOptionParser.print_versioncCs|dur|j}||g}||td||jr-|t|||d|j D]}|| ||dq0| d |ddS)NZOptionsrsrYr) r1rrrmr8rbrrr2rr5rcr=)rr1rrrrrr2Gs    zOptionParser.format_option_helpcCs ||jSr)ryrxr3rrrryXrzOptionParser.format_epilogcCsn|dur|j}g}|jr||d|jr"|||d||||||d|Srr) r1rirrnrvrwr2ryr=r4rrrr5[s zOptionParser.format_helpcCs" |durtj}||dSr)rstdoutrlr5rsrrrrgszOptionParser.print_help)T)NN)rNr)*rr-r.rCrr'r$rrArBr=r>r9rIrKrLrMrNrOrQrRrSrUrZrWrVr_r[r\rhrjr#rrrnrmrtrr2ryr5rrrrrrRsdD "     ' 3 $)      rcsV |vrSfdd|D}t|dkr|dS|s"t|t|)Ncsg|] }|r|qSr)r&)rZwordrirrrs z!_match_abbrev..r!r)rrrsortr:)riZwordmapr;rrvrr^ts  r^)& __version____all__Z __copyright__rrDrorrr ImportErrorr8 Exceptionr r rrrr:r r r rrrrrrrr~rrrrrrrr^rrrrrsd       P     uA=&