Dc @sdZddklZeidjptdZeddddd d d d d ddg eddZdZ hdd<dd<dd<dd<dd<dd<dd <d!d"<d#d$<d%d&<d'd(<d)d*<d+d,<d-d.<d/d0<d1d2<d3d4<d5d6<d7d8<d9d:<d'd;<d<d=<d>d?<d@dA<dBdC<dDdE<dFdG<dHdI<dJdK<dLdM<dNdO<dPdQ<dRdS<dTdU<dVdW<dXdY<dZd[<d\d]<d^d_<d`da<dbdc<dTdd<dVde<dXdf<dZdg<d\dh<d^di<d`dj<dbdk<dldm<dndo<dpdq<drds<dtdu<dvdw<dxdy<dzd{<dld|<dnd}<dpd~<drd<dtd<dvd<dxd<dzd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<d#d<dd<dd<dd<d%d<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<d5d<dd<dd<dd<dd <d d <d d <dd<dd<dd<dd<dd<dd<dd<dd<dd<d d!<d"d#<d$d%<d&d'<d(d)<d d*<d+d,<d-d.<d/d0<d1d2<d3d4<d5d6<d7d8<d9d:<d7d;<d<d=<d>d?<d@dA<dBdC<dDdE<dBdF<dGdH<dIdJ<dKdL<dMdN<dOdP<dQdR<dSdT<dUdV<dWdX<dYdZ<d[d\<d]d^<d_d`<dadb<dcdd<dedf<dgdh<didj<dkdl<dmdn<dodp<dodq<drds<dtdu<dvdw<dxdy<dzd{<d|d}<dd~<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<d|d<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<d|d<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<d|d<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<d|d<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<d|d<dd<dd<dd<dd<dd<dd<dd<dd <dd <dd <dd <dd <dd<dd<dd<dd<dd<dd<dd<dd<d|d<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd <dd!<dd"<dd#<dd$<dd%<dd&<dd'<dd(<d|d)<dd*<dd+<dd,<dd-<dd.<dd/<dd0<dd1<dd2<dd3<dd4<dd5<dd6<dd7<dd8<dd9<dd:<dd;<dd<<dd=<dd><dd?<dd@<ddA<ddB<d|dC<ddD<ddE<ddF<ddG<ddH<ddI<ddJ<ddK<ddL<ddM<ddN<ddO<ddP<ddQ<ddR<ddS<ddT<ddU<ddV<ddW<ddX<ddY<ddZ<dd[<dd\<d|d]<dd^<dd_<dd`<dda<ddb<ddc<ddd<dde<ddf<ddg<ddh<ddi<ddj<ddk<ddl<ddm<ddn<ddo<ddp<ddq<ddr<dds<ddt<ddu<ddv<d|dw<ddx<ddy<ddz<dd{<dd|<dd}<dd~<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<d|d<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<d|d<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<d)d<dd<dd<d<d<dd<dd<d+d<dd<d7d<dd<dd<dd<dd<dd<d5d<d9d<d+d<d'd<dd<d-d<d3d<dd<dd<dd<d'd<dd<d)d<dd<dd<d<d<dd<dd<d+d<dd<d7d<dd<dd<dd<dd<dd<d5d<d9d<d+d<d'd<dd<d-d<d3d<dd<dd<dd<d'd<dd<d)d<dd<dd<d<d <dd <dd <d+d <dd <d7d<dd<dd<dd<dd<dd<d5d<d9d<d+d<d'd<dd<d-d<d3d<dd<dd<dd<d'd<dd<d)d <dd!<dd"<d<d#<dd$<dd%<d+d&<dd'<d7d(<dd)<dd*<dd+<dd,<dd-<d5d.<d9d/<d+d0<d'd1<dd2<d-d3<d3d4<dd5<dd6<dd7<d'd8<dd9<d)d:<dd;<dd<<d<d=<dd><dd?<d+d@<ddA<d7dB<ddC<ddD<ddE<ddF<ddG<d5dH<d9dI<d+dJ<d'dK<ddL<d-dM<d3dN<ddO<ddP<ddQ<d'dR!i?!udiE!uhpaiq3uauis3uoviu3upai3unai3uμai3umai3ukai3ukbi3umbi3ugbi3upfi3unfi3uμfi3uhzi3ukhzi3umhzi3ughzi3uthzi3i3ukpai3umpai3ugpai3upvi3unvi3uμvi3umvi3ukvi3i3upwi3unwi3uμwi3umwi3ukwi3i3ukωi3umωi3ubqi3uc∕kgi3uco.i3udbi3ugyi3uhpi3ukki3ukmi3uphi3uppmi3upri3usvi3uwbi3uffiufiiufliuffiiuffliustiiuմնiuմեiuմիiuվնiuմխiuaiiiiiiugiiiuji uki i i i uoiiiiiutiuuiuviuwiuxiuyiii4i5i6i7i8i9i:i;i<i=i>i?i@iAiBiCiDiEiFiGiHiIiJiKiLiMihiiijikiliminioipiqirisitiuiviwixiyizi{i|i}i~iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii i i iiiiiiiiiiiiiii8i9i;i<i=i>i@iAiBiCiDiFiJiKiLiMiNiOiPiliminioipiqirisitiuiviwixiyizi{i|i}i~iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii i i i i iiiiiiiiiiiiiiiiiii i!i<i=i>i?i@iAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUipiqirisitiuiviwixiyizi{i|i}i~iiiiiiiiiiiuαiiiuδiiuζiuηiiiiuλiiuνiuξiuοiiiiiuτiiiuχiuψiuωiiiiiiiiiiiiiiiiiiiiiiiiiiii iiiii i!i"i#i$i%i&i'i(i)i*i+i,i-i.i/i0i1i2i3i4iGiViWiXiYiZi[i\i]i^i_i`iaibicidieifigihiiijikiliminiiiiiiiiiiiiiiiiiiiiiiiiiiicCs4tit|}|dj o|Sn|iS(N(t b3_exceptionstgetRtNonetlower(Rtr((sstringprep.pyct map_table_b3s cCs}t|}tid|}dig}|D]}|t|q/~}tid|}||jo|Sn|SdS(NtNFKCu(RRt normalizetjoin(tataltbt_[1]tchtblR((sstringprep.pyct map_table_b2s 0 cCs |djS(Nu ((R((sstringprep.pyct in_table_c11scCs ti|djo |djS(NtZsu (RR(R((sstringprep.pyct in_table_c12scCsti|djS(NR(RR(R((sstringprep.pyctin_table_c11_c12scCs&t|djoti|djS(NitCc(RRR(R((sstringprep.pyct in_table_c21siiii( i) id ij ip iiisi{cCsIt|}|djotSnti|djotSn|tjS(NiR(RRRRtTruet c22_specials(RR((sstringprep.pyct in_table_c22s   cCs&ti|djpt|tjS(NR(RRRR"(R((sstringprep.pyctin_table_c21_c22scCsti|djS(NtCo(RR(R((sstringprep.pyct in_table_c3scCsJt|}|djotSn|djotSnt|d@djS(Niiii(ii(RRR!(RR((sstringprep.pyct in_table_c4s    cCsti|djS(NtCs(RR(R((sstringprep.pyct in_table_c5sicCst|tjS(N(Rtc6_set(R((sstringprep.pyct in_table_c6si/i/cCst|tjS(N(Rtc7_set(R((sstringprep.pyct in_table_c7si@iAi i i* i/ cCst|tjS(N(Rtc8_set(R((sstringprep.pyct in_table_c8sii icCst|tjS(N(Rtc9_set(R((sstringprep.pyct in_table_c9scCsti|djS(NtRtAL(R2sAL(Rt bidirectional(R((sstringprep.pyct in_table_d1 scCsti|djS(NtL(RR4(R((sstringprep.pyct in_table_d2sN(!t__doc__RRtunidata_versiontAssertionErrorRtsettrangeR R R RRRRRR R"R#R$R&R'R)R*R+R,R-R.R/R0R1R5R7(((sstringprep.pycss~ : $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     X       2