;ō ųū@c@sLdZdkZd„Zd„Zd„ZdkZeidƒiZ[dS(s(Substitution support for ZConfig values.NcCsĄd|joŒd}|}xu|omt|ƒ\}}}}||7}|o@|i|ƒ}|t jot i ||ƒ‚n||7}qqW|Sn|SdS(s.Interpolate variables from `mapping` into `s`.s$sN( sssresultsrests_splitspsnamesnamecasesmappingsgetsvsNonesZConfigsSubstitutionReplacementError(sssmappingsnamesrestspsresultsvsnamecase((sV/mnt/gmirror/ports/devel/py-zconfig/work/ZConfig-2.3.1/Support/ZConfig/substitution.pys substitutes   cCs/t|ƒ}|o|iƒ|jSntSdS(s/Return True iff s is a valid substitution name.N(s _name_matchsssmsgroupsFalse(sssm((sV/mnt/gmirror/ports/devel/py-zconfig/work/ZConfig-2.3.1/Support/ZConfig/substitution.pysisname%s  cCs”d|jos|idƒ}||d|d!}|djotidƒ‚n|djo$||d tt||dfSn|| }|djo€t||dƒ}| otidƒ‚n|i dƒ}|i ƒd}|i d |dƒ otid |ƒ‚qbnJt||dƒ}| otid ƒ‚n|i dƒ}|i ƒ}||iƒ|||fSn|tttfSdS( Ns$iiss!illegal lone '$' at end of sources{s'${' not followed by nameis}s'${%s' not followed by '}'s'$' not followed by '$' or name(sssfindsiscsZConfigsSubstitutionSyntaxErrorsNonesprefixs _name_matchsmsgroupsnamesends startswithslower(ssscsnamesismsprefix((sV/mnt/gmirror/ports/devel/py-zconfig/work/ZConfig-2.3.1/Support/ZConfig/substitution.pys_split.s.   $   s[a-zA-Z_][a-zA-Z0-9_]*( s__doc__sZConfigs substitutesisnames_splitsrescompilesmatchs _name_match(sisnamesres _name_matchsZConfigs substitutes_split((sV/mnt/gmirror/ports/devel/py-zconfig/work/ZConfig-2.3.1/Support/ZConfig/substitution.pys?s   &