\d6ddlZejdZddZdZdZdZdZdZd Z d Z d Z d Z eee e e e d Z iZGddZddZddZddZddZdS)Nz`('[^']*'|\"[^\"]*\"|::|//?|\.\.|\(\)|!=|[/.*:\[\]\(\)@=])|((?:\{[^}]+\})?[^/\[\]\(\)@!=\s]+)|\s+c#K|r|dnd}d}t|D]}|\}}|r|ddkrsd|vrW|dd\}} |st|d||d|fVn6#t$rt d|zdwxYw|r|s |d|d|fVn|Vd}|V|d k}dS) NFr{:}z!prefix %r not found in prefix map@)getxpath_tokenizer_refindallsplitKeyError SyntaxError) pattern namespacesdefault_namespaceparsing_attributetokenttypetagprefixuris &..\python\lib\xml\etree\ElementPath.pyxpath_tokenizerrJsY.8B r***d#++G44-- s  -3q6S==czz!iiQ// ^%'&%Z-?-?-?!EEEEEE^^^%&IF&RSSY]]^" +< e):):):CC@@@@@@ %  KKK %  %--s +BB%cv|j}|/ix|_}|jD] }|D]}|||< |SN) parent_maprootiter)contextrpes rget_parent_mapr#bs_#J*,,Z""$$ " "A " " ! 1  " c:|dddkp |dddkS)N{*}}*rs r_is_wildcard_tagr,ls' rr7e  /s233x4//r$cttcdkrfd}ndkrfd}ndddkr<ddtt dddfd}nPd dd kr0dd tdtfd }nt d |S)Nz{*}*c3@K|D]}|jr|VdSrr+)r resultelem _isinstance_strs rselectz_prepare_tag..selectvs@  ;tx..JJJ  r$z{}*c3\K|D]%}|j}|r|ddkr|V&dS)Nrrr+)r r/r0el_tagr1r2s rr3z_prepare_tag..select|sS  ;vt,,c1A1AJJJ  r$r&r'c3hK|D]+}|j}|ks|r|kr|V,dSrr+) r r/r0r5r1r2no_nssuffixrs rr3z_prepare_tag..selectsY  S==KK$=$==&-SYBYBYJJJ  r$r(r)c3\K|D]%}|j}|r|kr|V&dSrr+)r r/r0r5r1r2nsns_onlys rr3z_prepare_tag..selectsS  ;vt,,B1F1FJJJ  r$zinternal parser error, got ) isinstancestrslicelen RuntimeError)rr3r1r2r8r<r=r9s` @@@@@@r _prepare_tagrCpsi"CK f}}                RaRE  QRRs6{{lD))!""g           RSST   "Xc"gg&&          >>>??? Mr$c|dtrtfd}ndddkr ddfd}|S)Nrc4d}|||S)Nc3$K|D] }|Ed{V dSrr*)r/r0s r select_childz3prepare_child..select..select_childs2"$$D#OOOOOOOO$$r$r*r r/rG select_tags rr3zprepare_child..selects0 $ $ $:g||F';';<< K|D]}|D]}|jkr|VdSrr+r r/r0r"rs rr3zprepare_child..selectsI    Au||   r$)r,rCnextrr3rIrs @@r prepare_childrOs (C !#&&  = = = = = = rr7d??abb'C     Mr$c d}|S)Nc3$K|D] }|Ed{V dSrr*)r r/r0s rr3zprepare_star..selects2  DOOOOOOOO  r$r*rNrr3s r prepare_starrSs Mr$c d}|S)Nc3K|Ed{VdSrr*)r r/s rr3zprepare_self..selects$r$r*rRs r prepare_selfrVs Mr$c$ |}n#t$rYdSwxYw|ddkrdn |ds |dntdtrtfd}ndddkr ddfd}|S) Nr*rzinvalid descendantc4d}|||S)Nc3RK|D]!}|D] }||ur|V "dSrr)r/r0r"s rrGz8prepare_descendant..select..select_childsN"$$D!YY[[$$D=="#GGG$$$r$r*rHs rr3z"prepare_descendant..selects0 $ $ $ :g||F';';<< .selectsQ  3  A}}   r$) StopIterationrr,rCrMs @@rprepare_descendantr^s  Qx3 1X0Ah./// !#&&  = = = = = = rr7d??abb'C     Ms  c d}|S)Nc3hKt|}i}|D]}||vr||}||vr d||<|VdSr)r#)r r/r result_mapr0parents rr3zprepare_parent..selectse#G,,   ! !Dz!!#D)++)-Jv& LLL  ! !r$r*rRs rprepare_parentrcs ! ! ! Mr$c g}g} |}n#t$rYdSwxYw|ddkrnl|dkr2|dr$|ddddvrd|dddf}||dpd||dd |}|d kr|dfd }|S|d ks|d kr$|d|d  fd} fd}d|vr|n|S|dkr*tjd|ds|dfd}|S|dks-|dks'|dks|dkrLtjd|ds1|d|d r  fd} fd}n fd} fd}d|vr|n|S|dks |dks|dkr|dkr.t |ddz dkrt dnp|ddkrt d|dkrM t |d dz n#t$rt d!wxYwd"krt d#ndfd$}|St d%)&Nrr])rrz'"'r:-rz@-c3HK|D]}||VdSrr )r r/r0keys rr3z!prepare_predicate..selects:  88C==,JJJ  r$z@-='z@-!='c3PK|D]}|kr|V dSrri)r r/r0rjvalues rr3z!prepare_predicate..selects?  88C==E))JJJ  r$c3XK|D]#}|x} |kr|V$dSrri)r r/r0 attr_valuerjrls rselect_negatedz)prepare_predicate..select_negatedsI  "&((3--/J<uATATJJJ  r$z!=z\-?\d+$c3HK|D]}||VdSr)find)r r/r0rs rr3z!prepare_predicate..selects:  99S>>-JJJ  r$z.='z.!='z-='z-!='c3K|D]K}|D]3}d|kr|Vn4LdSNr)r joinitertextr r/r0r"rrls rr3z!prepare_predicate..selectsn"""D!\\#..""771::<<00E99"&JJJ!E:""r$c3K|D]K}|D]3}d|kr|Vn4LdSrs)iterfindrtrurvs rroz)prepare_predicate..select_negated"sn"""D!]]3//""771::<<00E99"&JJJ!E:""r$c3tK|D]1}d|kr|V2dSrsrtrur r/r0rls rr3z!prepare_predicate..select)I"##Dwwt}}//588" ##r$c3tK|D]1}d|kr|V2dSrsrzr{s rroz)prepare_predicate..select_negated-r|r$z-()z-()-zXPath position >= 1 expectedlastzunsupported functionr6zunsupported expressionr(z)XPath offset from last() must be negativec3Kt|}|D]W} ||}t||j}||ur|VA#tt f$rYTwxYwdSr)r#listr r IndexErrorr)r r/rr0rbelemsindexs rr3z!prepare_predicate..selectEs'00J  '-F !9!9::EU|t++" "H-D  s=AA*)A*zinvalid predicate)r]appendrtrematchintr ValueError) rNr signature predicater3rorrjrrls @@@@rprepare_predicatersII # DFFEE    FF  8s??  H    8 (a! --q!B$'EqS)))q""" # ""IDl      Fi722l"             "&!2!2~~>CYq\ B Bl      EY&00 %  9#6#6HZ166$7l"   # " " " " " "  " " " " " " " # # # # # # # # # #"&!2!2~~>C9--f1D1D    ! %%)Eqyy!"@AAA|v%%!"8999F""@ ! --1EE!@@@%&>???@2::%&QRRR      ) * **s  $$6HH))rrX.z..z//[ceZdZdZdZdS)_SelectorContextNc||_dSr)r)selfrs r__init__z_SelectorContext.__init__`s  r$)__name__ __module__ __qualname__rrr*r$rrr^s(Jr$rcZ|dddkr|dz}|f}|r1|tt|z } t|}n.#t$r t tdkrt|dddkrtdtt||j } |}n#t$rYYdSwxYwg} | t|d||n#t$rtddwxYw |}|ddkr |}n#t$rYnwxYw|t|<YnwxYw|g}t|}|D]} | ||}|S) Nr:/rXdrz#cannot use absolute path on elementrz invalid path)tuplesorteditems_cacherrAclearrrr__next__r]ropsr) r0pathr cache_keyselectorrNrr/r r3s rrxrxhs  BCCyCczI7U6*"2"2"4"455666 %)$ %%% v;;   LLNNN 8s??CDD DOD*5566? DFFEE    FFF   <E!H dE : :;;;;  < < <!.11t; < 8s?? DFFE      %y-%0VFt$$G))(( Mss AA;F C! F! C0+F/C00F7/D'&F'EF E'&F' E41F3E44FFc@tt|||dSr)rNrxr0rrs rrqrqs tZ00$ 7 77r$c>tt|||Sr)rrxrs rr r s tZ00 1 11r$c tt|||}|jdS|jS#t$r|cYSwxYwrs)rNrxtextr])r0rdefaultrs rfindtextrsYHT44455 9 2y s%00 ??r)NN)rcompiler rr#r,rCrOrSrVr^rcrrrrrxrqr rr*r$rrstv RZ    ----0000&&&R&  >   n+n+n+b        ''''X8888 2222 r$