PKNDd 1nufhe/lwe_gpu.pyko8UK"{> KvM qwQ@IMXr+P"%RJR_,Q3ypW"v.W9Stm~VM^M^r1Aa&P@IX~tF,! 9C4G!N# @I D)C4<CbE l>ۏct1 I °\+@WJ.4M\D({we7#^5p23L 9#(K.;`~&w*բеDۖ0S;j_ 91z*;qMжefSm k>6ёu[ɵtt^ዿR?uQ|Ht?l_?F|&l5߃;\+$)ZZ_|˴KX%E Jce]!x1G:3uC>}֐BMY۔dK9Lbl=o]\!| S;{P9v$gfx\V614sF/S?|Z}Nv7866Dálqh0tG\iKD8(ϗh+i0ȁy to!梴#w0Z/ijg{ǂZ(;|whd&PKN5g nufhe/operators_integer.pyVmo6_qCAZ%N Y4pD\%Q )r,_f ;>xp!"4z`pӥ0_3e@ΡjKo嵒 JR+A˹Y1G dsic#o* ̒do#b6i!2,2^i -ӎ^RW]\IeF*.P+kxMxHfmc!#,R1( H94ϛ"BԅO_p~_'Ϩk;$Qօ@`Ilurr OzzLn'~89vn ̹a.,FϊcY3./!+d652K4:~iLGGG*^TM,p C<`J$ұjz3̕,!fH J L\/kI2A6|mZݚ+ dUƽv떡O緯?C-=P0VJ,YZWRevp0|I#*`pd7\1â` >Gc8m QQq".΂-| $VAn6HJ ڂwqǽS`g޿Q8DCa?LG=}&Wmm\"0$񍬺6U1uܭ~3´hкIOk?VTZ,*lt rE)A>'>A~hv8|2 rt6Q"YOV/y{KN3<<(k3 %"Yk秏ݝޑwi0ډ&ǖ-`uY]UފG7—n#{Ur؛ RqGɓo|9NjGt"Ox}灃[4In.nBhׅQ2j.{ }p1KhèbX J ^ #θ/E+4 /dYӸ"Y$0|13C8`*i;C8dITwo:Ll c1Db(˲lR/9 RO. k4!}ֆ`Ǖ6 EnSFss@+ts3)4sIsml;$V,C47Cwu^`8=Eb$޴M~i'LNz0j60F5;n^xHTMg"vZƸڥeVXkg)oA2j2*`uɊᐶ57}'u.߿PKN=]j Pnufhe/bootstrap.pyYms6_tb՝ʮz[ԓI9|%T$#@ɺN-^He;wd"] .X-b)`|Yu-`"(*Y}_lQ$IJBDlL`*JS.JV% &[KUĒ e>|$9)0Ј@;$1Rd< @P@(/aMJpZoafB]+$n! D9lyk` 4W@k(4@IR.J@Z|=G<@ZdD"(m*\lQuO1=?pu=]><=Lnz?t3OwJƷ:0&")6?b89jư F0^R/Hۺb ~f-c8Bh.aV)eUFJIG2z ٜ?=qA2@m4Sm2]f}^ߢbK_>10~6X(ZL!5͆hwϟV}?Ebdu~UbD2##Hr1R-!6z4;Dr_Ԓ|sɣr[4Z qVG~&[8S=GhQNpknӞe #j-:e _1v̑+2QJb_2FsvEQՙBJirG ]\M?5fh4Ҁs8gL >o2R$JktC"~8sJ`L+#AUYKҐ=ڳ 홷j8GM^$de.Jet )IrJL&'WͶH3aUPc V؇#  pKKUd؎Ϛ\wl8qǥqp[IwR4C gX۸ `^6oA"BUav-/ksaK"2ݮ/iA,b1KN> lZ5h!zb2L-rLYUԪ-5EbR*x&DF+|(:6"k19N*Z}߇3-]P=50w8gjch$ɪ'E[ua^bum+\sl!M8?]>NDuC䟆bzqr3=27Ew9?C%G|3gdF;#[+\mݻ3EPf›7oFp Z[uP/+t hMI9JyB=^ cO: yTt=U;=,= bJ:;i=iݵw"ߐm?Z᫸F`GGIL~nufhe/tgsw_gpu.makomo0SF+ʠbꓔ>Dc#jv`Bh7u{)ؾ;рWZ$f>hT @i jY1K<"*lf%x +Ue c,wbr:Wd5w[\ pj&aXLB_L13v;&ERe\:Q*k :װ@mh wTmP94uTZ.5;DVj*'G)Iǥ&Y!N6o;Dw'lSER2,+w .5~ݑ h7!0(~q8]tF ijKTF i僧$-Pcʧ-;(ÕKT-PyP((GC(5ϸ @<ꙃ@[qJw7ש>^Q3٭p՞-@6NX )nX67VžvFQrØSPVjyW_JO)Yt^1O0]踜KbLU6W6 &:*a?eumPַb[;DbHx +}&Q6 QP ]h!r]2"ښSjk*ڶ\jOƓQSRxAGW)%&&B5:naqTsVo~ە"`ǩ ɤ(>~'-hBK'p]R,.1fŘ^~jr013\r\ b3RUK^qkX|{[ R-᪆3!1[FpF˶䮦$FgNWft5hŌ.}tQd)J>ߜ}ѯ/_~tq9:Eo]nƗg_>nϷ!BTEGl`LI3^,F3@!M."(s2HhaPYL̄(r yrzBѻp00(ǼZ )I9 #i>c;-52Q ٪F9Yɗ%_2pRdFs\9V9[$cT7dβ"\><%$lcTyzcJʫḺ2}Aת~`S+@p٤}mbJ*2Ԩw$;8֫t}?t5Je;88hyѼ'/_PO8OktPH;7L/5kH@dmkAY{N_h¤DVě03'k. =FZfֱ`]{NZ;kCOܩhkcO~V@7Y7'Ac)J Ha@-޶+W[r&nOt[8:t! v<.-lL܆E QF8Gߏ[MSy֥tr9W`,؍Y3F|dw=@o$ J"AZH>n -Nݶ$Iաvj{a~i E؜U΁۫Ւl|!cZkbC>,EFrOmx xiSG5@ڛMVK92)8JtZ^wm(EA<Ѭ-]hA ԯ?m߅18KRMzZ\hz } 8MuX3ǾUae#W}59[12Ci'n`vofޠcƀcmE9ͮ{Qo[n ԏXnY:o*ڐ!٣qD 5ZOw`%g;ܵk\8D9'pyjzrm#!M\VdubbNvfE ??O}?0`|,ncmVoߺ[;u dQ,Ӎi%fAsS*JHoatBuK8v ԇy{AG|#z܍D kQȭc!9l ڇ966ۨ÷j*pt PKN0тunufhe/numeric_functions_cpu.pyRMo@+FR ZRM%jʼnԱ0V䓵E}gQU{潙j;͏pϰrQ7 57Pq@ߖi {QƧTiN9(%7Vd2QU# 9Y[#XԍuqG;^3/PF}Xx+، `YӻjCw]J|PBfl v "j.{Z&BwB2z搮vfYw_(֊^oZJ+}L@boqPKtMAU1]Pb_9Yu0fJ;3N`)lA%u fXFY`hjF4e E̥/c=e8M!Iâ>f4F 5rkDj4NPOZ/RP5x_1Hn{@\ڎVϬ6H/ԏ֪7)a8p3Q{3|xo5Kz_!jNˋ7PKNO7+ nufhe/tgsw.pyXmo6_qhUJ\vaa^4 DYj$Q#nw>_sOGpƒ-־̄pmQ~ B 7!\ N=Z~ٚHxR̓,ɃU*ђ!bnm >Jcr>Iy$KSNBIWaUXP Y=>ua( `# v X>GpØ Rf"-DVݑWęa%1M a-,͖.az}w|zep>Rm)0@'"t4|~ 5̮f{bo0|9;v~fqn,EQ^$Х1c:" ]#Ŵ:4xD\, m,B(D`3,& Zǩzj#b={d<ʕ>,OT$:QHfeXI<\il{=,\P8v TtpC[^m D\FbA0t,bVrQs_e!dl_hm"3,^'i L]5i|VriIZUkݢâ$١ek*f.P )oGOT%_#9!"y2.8mz}}ģb4^KG+k%쐭G=2swÁv4U!e ,Ҵ0cli [^fZʾ* ct/f@M"BnjX:fyJD#]we5|[]~ai(w/0i5-FU\u0P&w&-'p@tEMe1c~8)m&mzԐa'V7 &#b'1 AZY'Y%@mF3~GX],=jͷ7UքjP(W{9gn G9k gwCB]PHrUګsM5 1FT*Km""l|%euH#K89{BڄOZi?dF~&u#O&i<rbiF4'`T`uzC桂́*vMgn/{X#/15lƐ[U*e;Ӯ*i qu ,ueh,FvCW;z[ko)jȖµvt=Q2͇$Vyw^rʊ 5.Bř=\6Zjpq,WQ ;D~OU;YERv8i(&报ܡ[_Ksxrʳ=-5Hj] p2HxUQ@\7f@s)TIo͌Fk:-@ן<+ƌfh<,vxiVԇv&bcSv[ J[ s]^^;rXH˂]p{ _L7qj<|tԇ'N.|h* )v5+C'Te Ǧ^w څT}Ǜe`Pk{ j{:Um4P5c s_ԯ跸ȯ[/h?T}7*_PKNPhԄ !nufhe/polynomial_transform_ntt.pyVmoF _A$"A0/[8(DY:ӻIb0}#!>t#*`0<:f&PN BH0BR$[P"c`#2YLBZ< -eItQc>ͮ&(Y 2>\pȳYQ40`b\ `"i.\-JErQ9 (f6%Ԙu1ӍeM$DJDH8%B0bH>N?\/`<|<[ܼ!] -H|Ɯ)&!{6.n?L۫+|.b<凫.RH;rC P3"NE"v>[Bzz"YnB"6ENݝJ2Wa\_R"lnP5_w)^P.k/t`ryIqueRa$Z O'όK\cӸڻLR/X8j/ =qPz =r)xbhyx;b4+)<'_'Ys&B` mnhʙe :In!9xOO[LX$'k{NX@ڟwb=e]8YMJGllVju^j PnG=|cV!|$Sn9jGRGX;`^ilL =CK{ZxIJw3_{rU{>]G_9av9|2`_?VpF#0I(P[SKeΞ+%nKQ="j柷d3~i>c\: æDAqbyl㯮ScUhUL*9F~lS.3OnGiڧeq+ǣ;Dցq`NO sWq++8r|_n, Mˌ+7!]/dQ*Mwzq7X.6- Fꈫ䵢hnޗ@kwVaUbHQ-AѮ~0mʂFU{VG0NnQnM}B mJv;z ,@$Ɋ:vg黆NkAk*A3vF=VcꍨQ rԳVmeo-#/Df|dJ!]ng0aih 9 nufhe/lwe.pyko6 ơ++~9NksAZJY+fH=&937C\ŮUE |䦾+VN'~Y[в"dbv(eI(#"_T[Z)5IhFJ6*y\W@"4?K|20TgsVjHʵuǛGM%o޾y}wrǐ)v! T(߃9pɊn5a||Q#Рi-۪ʫ`﫪*ٳv.:TN&GGGwĻf8|4/2/Ouss^')k&z]&EA,0I9 i_]ԑ̐SӚ^XWB&܉RTI0m` w/"|RᆭnY,jzv٣,)wEռkכ 2!K4*p[apy@:(sMlș%4szI.J(ɪےU59L b:lAg"\B Y,P)YH5SI;Ddr&i )mUzkja.k#XR]b $<+b1_.;zlL/~i$1N7+YUMIF9;S4!ik;r,fhLa|[+-x_HfsJW(ɽ+}zBC@0׋`G|͍jwX2FG&=eo;R`ml}!s_5:Gc~j‚Wlݸ(})@ζ$])CJp:s?Nu.0A׌lSCbχ%[)-l& ھbbw6gpP.IytL||l=ƙ٭ -j- C^90K8IU . repe*2 tַ0$}u0qtؚ]`N1a7t.|?5zZ74] ;̰ RC(ͦ+5mټ4IV|Q|ňl$ Mp^XW̫=9k ;9i'@YYuUr6C(ke3%"| fXе%Sz-qi@Uł.EPQ5 K–]:k%UCrO.5Mn^;BO +*XGsbxy-5by=B_:̎NHוF"Yَ4j-d%+G|͉AFƉ4. |<a<1 eU;:7װ!-R<^Qӻб9I0+nYe =%S߲ZRy%a/q5Oڗc2IN߸$hv' MHAjcn*5ܑ1_`+Tm>/KKNb+1q} "m} oj!!(/z-UQlu͘Q h76hA eÿGZp;Գl0&̩ t/O\xj6iJfGk@lHw&u믚 Ͻ<9-ݲύPus x>hS*ndFD[.z;v<h d8V} G. ԰йTuh KvnVL=bC\6i=[~N:C^%W*($V0ªd|s%uZudiwWe#!B~&7D?7ZNé?~d ÉOղPP, B "o{n؆ {nM^=vlXeE+3J9&% U O^ R՚3[[{}giJuǛ;U=EO!Qk+37@M6ӀO_'od?u税~y}d]AZ?:uzJ ݅yj rgQoaWW?O宧B.u-}.+2[@G7$B^?;oJnOsUnv[%M{܇0̫y/6~l1bl J(W* %X?'f0(QR>~?.[x?k9vo2PKN&nufhe/numeric_functions.pySn0}WTT4/+"Z"x&V;);Njoy9sTӢQ?}j:8 @.JL[P9HsZBʧm4`LLYBdW*|G0td,G+l(Qn[nE 0o L<L2+ kxFm W{(Bf=m eqA@H5,a 4_%0aX g Z(!.LI#p7^nbcz;M&d6^.ar!̇d:Z0_-q DO /vH -f^: 1+3i)g %#{gJ%vB=JHĦ,e{`Wnmm~4q!]t/;IȎU.r*#$e ; 1e&w25vDig.5猨EXk'jGKUU;q۬G*n֤͋{VdocBcXAAew9pojJ~EZ4U{1'>RI&RBNBEOˡF^h~*2@ٍU&lC}ӹЧ:-] |x9W"7^e[Z{k\iCrj#Xl82z ߷>=Wi02acza飘1_PKNk8N nufhe/polynomials_gpu.makoUQo6~ׯ84 md/C19lȓ@K'M $e0w,IEۇ Ahur}5g~o/~a_j`q)4L[P)"Ͱ}ȵkpT#Q]1WVLƄeɤ4,Tӵ㡵B&f¸Pn~8(Q3b&x onzWd\X1g@٪vwvycnMIaNh`MޟkBE LDsf4\7G/U9/3eXr\]ju @<ͺP,bq?Kkmw*PC5ܒ.}z\һljq~9,WsSp^A>'k[_{_z;YKu%wSv :!\m˂P׍/PKNI RO &nufhe/api_low_level.pyZ[o۸~ ڇځ\MiڴAb'h'>緟Dr=7lK$qf8o.j[u֐"WX=z:zJdsFE놈)UƢnźjƈfCk6#[ђf)M͗mBPԤ)_mA  @K~yNήnnή_~&ċ* lilAuw7П\\ίޒO7\/?^{TsY\ he)‚s=R@6||!=J Uû`6"{n!D&+N(Y4,%7 bj>X xoK4p* 4$QU񏗰{ xںٹp̷dE%NUtCK VN#%/:E\C8%'JK*$&$^BV\p~+qg{pw2Fv0&x_@v]"j|r^TQB6)GO_oVp "@ȃa\OߗVҏΣSЯF/@4 W R5 5 U# Uͱyam?3$i ؑq?O^T{)qcƾJӝi `hG2bky=$NC=5^9OӞ=35p2sbjִuIpqVovӁPAdk~wYX:gZ?09=ՒG5d;=q"q pr501XR{pv?hvF3cfQ@333lO}N&Y|o fGy̌x^@2c,%0p#mk^fWX5WZ_Z&Rg zoXdZpbd/T^\\)\5w%kg5"tc5?;Ԡ&PF dNɰj-(ܩ9y kU?)cnzB?6xct -Ph9sPYs<.'cJ601S'>;b_>ENjfhd>` yt\5@0 qO:(؅h͚{l%{yˤH CVS-xx+`7rO\]VF:hN oC_(C۵U1Fк[.~k>Et Mt_L{Sw47?f(\ ajvQ)~tz qGF5[~ע N:.>.yS r5Qj -7&f% (X ,<'DEJ*ZpfpR0)N3# A=?^5X7{I\y*S:LB5OZZůF&s]E"J 03ziO˗=!؟+}yE(]VքiciTDc*r_~O +f'{Ӱ&I qA.ZLHKfAjԥێ UDm>jZKv5@6pvb3~EoðH~Dd8hϺSJ4`,CY,:=EE[DZaiK l_lO*I[=P;(z)z!oR_PKN4 p nufhe/polynomials_gpu.pyVQo6~ׯ8$:UYӗ!xFH]qE&"BIq,KK,;Fj-~}LѶQ{9sn L[P21ڟZ4[;L#Q0װU%$LƔdRiXg[OLQ,qqˇ|@ K J(brLa`ícp0[Er%C@N^Pz ^rYG[*[@\ {|` \V*() !!-|?~~p_p2lm_FBp4vK l<Gn?`l>= g0}M?DH!Y*`qar b~3`BU!KHƤ,eC0D\_^n6h%HեA埑QIQbyVkß%$GQPúGQRjGj]Ɯj(u>e ! %ڙm 2Rr!6RE?(Ӗ\j 4#J5O⬔ Ԃ͕.Ҿ癭pJlZs&NUGL$% MW}vB)՛ "i6l\ 1 :x k.K+P5Fa1Yq)Zv qT*5nqS/EHs=|KIk%@xp+I"]+CJ5j+QH188*ǠfLY U<; np[CGj UwԐno=tb5-Xpv u @Ovmd> jЯ>MߎL/):Mʹ~}D0j-|uE=35!dBPA~Ͻ׉oMK{_ m jT-K.Ҙ֖l~Kېl^hDžCLٵmq·+xQ-jvCsBVb1ޚ;wRiZdϣZg:{g<= <^J%Uo8v;-{O}[u6&5BO]q0/N9ڢ`o[5l6ԲҪ/PKNٌ4̴nufhe/lwe_gpu.makoX[o8~W*i3\:/$ΠUUĀKH8e=ǹC^4F4>swف \Fb<87p£DH  YC0>FyEh(d0Yď`a>D2=+ Yђppls\ íiDN !K8e,o8G| Ђ<< $;.ct+/]ž!z4AHYx撏Ewnй^s=?$Y)@d+b~DEt^u\v>\ޠ{~w]s !,a]3{LDv `rc`Y<a^xH$2 b $}j?Ǹts$gSM*d)'efLK$-x2k[ l2*fZM#i&S Q=;մ?SƊ>trsDyTX82 |0U jT!O3%ĈςE"^8GR<̨8׾MȈoZOysZ)EQ@UoOT<킧]s׭'HR|}ɻID_; J3aK!m۬KClT\ ,6.I e{3EěmxP5=/儅$ 5|nD5&sIa_T a*mocn)i>ֲ#nAL[_UDުS%<ҬV~|c*~A:&IIVk{w0],PW_ridX |ul0KJ\*V'D"fHJɑ[o7 ؼ,mޮ!oXW5}ljorҚćҝ[ìsrwavR'qDmY5}@v_>.kpC?PKN+ 6%nufhe/utils.py}MO0 8Ja$4]5:%qqqZ.70Z@ace[PΩ?;>~3!9*rp䡮]_,b<[(bN눴{" !ȝhKvwǧ-mi͛Hw"X3Z#A)Al'%!(˥ xhXG uFER7]0<-$hP(';oG #"eȳ7,N(I'2LUxL<# LuS͘?ƥ}B>L~PKNǠ nufhe/random_numbers.pyXko_1Q\W--1dAŠ\J[\uwi_rIQ$ٙYб^Z,:xZJD;tTrUHu%#SUKl^QHn$s <))댚HDiCT ^U& $'MiY?]Й]BQ4W:NjHRỡ{i,m" Igc /5mVT偗zo(h.2! K_ί|sMe2N.nUIB>Q5LoX1p+닓+:< ]N7'S^~:I$%>;`&Pm|tZXVdiM]R9(tBvBvfi7$ tneEU',O͛7y}.e":.ZxRN%˱\s` M/""64 5]$H6Q4꩚tX uI%`6DXhHO -TJDS q,SmB4pm/aǞց@Jq<,xAö<5*^GDyrTV(5 ,VЯڄw>_ b]$OZ*'Om4iwn[-ux_*,evmEJUNlXxt17f3g-ߜWx"P6I 9Ǟ6LIy^9+5'[d2>a +D OjUyFA|+'u[Hr@TVND{Q}L4l[Y侴dGP Zæd/W 5{6׺hbG5զ=(`~ gȳOj!SoC { 2y & oX<Q|_`kp2}?_%I„Qgoȼ(tk`1C*h)-tѝ\SS7Q*e7ohc@j+t'75Txs:_ 4u)+>|u{q'{}Wkdp59ZGD1Ȧ~Ͳ!ۈ5ZP{Pf5BdPn0 \^@ׂJw*+|;l̸}JH"lLVio& ,l;գL3ƒkhx[.ϳM_kZJ݆7wὬ2A{UfM{ׄ}Cfml[io'=$+ilMk !"1W|X"6 UiQcFr3ҏ6dICˌ^y&dt8}|jgJ=,]Yy;W<_`4esoF>n?OK @^.Ie ~ox&nȧR-cbJFu A>Tf>+c7>/[}3~z3xI{=BOMۣMD]‰3O\#_;) F;mqd=66=$V<@x^?oцz}ơIɆ8c)6)ay'Bh|\2a2pGfcE)"_9E뚙:n2~aS;NEa޷CYۡ?x%V򙻱j=X"vj`%( ҁTLle3wѰtt&U, 9>!~5U:8 N * WL[PHVf4"ٚi|k\+Wņ lGOG>I;tT=e 7@Q~ܴo(:6i'44b*`^+9FB\^[ӶSN{KK:9&N=a ahVٗQoPKN缾 r!nufhe/blind_rotate.makoYmS:_@.!z?씗\.`;(Cs$˖c;ngv=-%G)[[, Rbpj~g,lm?r3L|4II4!|2c=sEDӄh0FD4I4ao2$aiRBC%$<>Y"C%$1$%XO]r] F(l#b<28Hq<\<iʣKMK6K)=C=bh >32l27dp|F/G8E0As@K`> A.7W ȧfxv{9OO{\3d!O@K) VwGf]7J\p獇 ԏ©fQ%!V&KIN`e;J'dߜs%=`/\ -WzcAx)z285rheK~mL2  P8ڀRQE3'+g[zsRMTq&>%1^h@{X8ҭ :jFZe/ud"XV9 v:U=dpts;t>ܼ~>Rx!ɒCJ#(;:x8P .`*'H 佞2p\F*Fs/a7b%Q +&CH~q/,7PW uZ!dγ; #,h8S!1A\$r^a>bP/%'EKJՅXցt}}u_LQ`ȊcK> &䚢aj]R,5U^{T`%T(yD*3<g@t} #Q(#|VASwppyΡNMhÐo 'HqȆ׍'kœjSP&`V4ڎ[9bIr.΋|QO5)r* ǤAU)U%BYN 'yVE+ێ vw킦UpemH0pX|iP9`SƌzqLc<%Gvfը}e:vA><喪l<)Qy*HezBqW؆@QPЇ u)sJm~iӍY#i&ZR5Xq暴oxSf5na-@c{-3YPEnRFu.*U'i6O^Xe`j{?Sv|*n*`67mKmp WN^RCĐMs=K[œJ'@q$ [~1\҅u(^uo; COFֲT/W!}=MM[XWZ6HdY{z!s^ʮd)U$fF2P*]xVk4da֩4J VG̰ *knyv zQ|C<4=[ͦ4Yh*$-&0wrUWQMi5.䑥+}\GɆG"~ i}xƪ0/v W[51ۻ;ll Qk^E)ۇp*$J<3¹]&xۻ'h89éUN :*xjy6J뎤]BCFWzV{#%e7eٯNH۫FM84qkzmyvt=abЍ{;Zb^Ւ7J h/*[pcT#RKe2UZiW%\SWSP@S f0}M=9椐_6.CFhi a;wċAHFz}fCm$$bcr">65~{E bzC(̶qbDHiRPEP( P-Y)7ȟM&,@Wƻ.Et4ga 6P:3S%Rm93Q @* YMXJT\;wN#1 -7]) ̆IIOK,x|ZR[Q3X7Pw\$KZ2{Gejx^[F!U;%ZLX:?-s^.ӅaUYxK{.dABn]T,5No9%q*oߘtm~›z-/[G+mf _- [*WvG˗'rI,^(؆48EI+m N-X߂m{lh3- PKNC V !nufhe/polynomial_transform_fft.pyVmkF_1\Z!'.n|gH8\q4vU7,%Q^[Fxgg^vF0JEb=:bT!)s D'o幒 2+D26KV Pqm 0uLF<^ "B&A02m?*¤0Ogy BK eu(SʩYA"#^ BjkF,bQFHu4h"KbLO:r/DKko(%QYjb%3oôTBFE6JsFwV˄-{D:r6x]z * !}RA6+UM“цJ;QZVT 2qOZ@BS(ΟCI}m X@b=* >9uʲ9U+H {<0}$ koR~@B.p{ֹw~ xUoT`0:{9]E ܎v^C/&-lHMLMbagN@S $hTX(g|Ù~U]FO!#g36m0 x Keu&. 9|X}h>~*Y>rOwPtd{_6tȾ>Wݒ<p: Yǔ5GQ!}.ΆڎA7wl|XPZCiW: &:Qdt3g&L=UibZ#}0׃O]KVFSvפ76w?PKN6  nufhe/tlwe_gpu.makoU[oH~W5@B_VҤAM U}G<J{05IW/kE=s滜99LO#nvIrrB0 'L!ias?"Qr  ͂)Lg1( 6{!,,ZRL<\ZZKiKe_>' cTL kFvEGVhn%3e䴯`J;rl s1c+=W'KssH&("HBj SѰ _{㻇#|uC?~P$P|NK,IEr3}oH&7ߌFp0pN! & 0B+ -3)*Q4 5HդN9R}szx OsK$QIM"#c}j-4NRM[b[WF,Wĸ?QIW u*Lt}GpSXﻬx rnPTW*p'܋Y9tf5mz&rQ]my$vBQ]P͛v/2EȚh(uVnٙ)*F1߸Y3䡮z tU73`Z=-z:KAvKhʚ3[)ngp^ex~֤]_~g.arڳYaovF-D!{Vf,Nm ,_PKNp -nufhe/blind_rotate.py]o6ݿ>DNm含 dӤ n{b(˒JR~PDJ\w ə|pW䲬<[,%.ooNחj-3AY(/YW\pF9gr.7s-kЂpfB,%PiɺLR]dD2x~+9PX3r#?V.KeO< @׫˟#Oof U@#C\Y2I\42s ,Oɒ>10k²'̀b$N xV)}"RVtJ8"`2Eɜk`'[4Ho}YZjpK䢀l[1@^P p+K@/ijc>]oqȾ)uoݑVN DrF>9c)qVO>xDnŃ`wiEyj%4g 9(?R]n%P v>nh<[w96pݹf3 x*ӛ5y  bQT&ВiKmƬT0zuhOQΕ23ą=f-SFgF|Np| ^RBBFM'6R$)5S}HbXt (kt.{9@r ; )}5KP1퐔cZV4 k|<-F\uGDiOҙw%ng)OKwU.tl̃|[ﵑ zt4>gM)R 1S'gCwǾC5s v?{qAe Xڰ@dPKNVA"nufhe/tlwe_gpu.pyY[o~d(i] ''idAE h'(S7P.d~Ep.8FRsяpm%0[2 sS|I6_R~ dIR|'$A#&`BI Hp+RDTZRPT֣~҄ MXHIf"4G-F3\hw\pK{k*$> #6C-E9- %%Oњ% DY#Ly{(io+~z{{z=Ҫ%ǷtM Il M$jQ۳ߐW..gwwpNvvyn|;E|wЁUŲ+nDdqK!ekE @3Ab,r v!^*ʓgd>"~'t pLUL悯{Jj_20CIleo*&$ۤH҈qL!^88i~t>Bpd2DtAA깧3 Y2r$PHSy)')+"kG"ຕpmI]b(Wn:P-o<&\1ĘʳS#4nA-m_z:ޏZgkvN%%ؤ*h<lO`n̓w)o7eŽgtNZw譟覤2!-{ws5[~D; BxQ`Dȝ _A[eqa}g=;x!>߶R Ao^jM7ŴXRT-’0zSPXfM_,II?~vv JCùy9P@]Yerhnu[ugyPʗof:ʫ_8/]K ` nsg!'r\>^hiNߞsy%fQ(B<(qB4s^yk? {|}}EtymW dM7gۺsnƴzoMix2u3b rWU-Z3+$ΰ0)^KYfƨSR/?Vhs">hN,Wᄅ,OXQgl26sxB0 S}B [<]~[d'd|lu&X#䌀)'zKG6.(~.g\arzqw=fq,iWu$xYF5F"^׌0".U!R`S,}Pϙ֥n6`U@)A/%ʱd_ear89FSМX*/&y,:8k u88l %B܇iߟ7֥B,&1{JӚ.2q36JQJTXhEKqEۃ^3\͙H)n:` a US4Uި:?@Z Z#&0nlwUYZ>z{ǮـW\ǫh+qҔE5/G-I޺1W>undkzb ҔH@.Usuo=@=j3m (bl%Z+on?kv :v]vaw_~m|;]}uugUvmgcazT;8/-bB)OWAgu>ϻ4 7tx^H.ֱ=&Q[ͭaL>/V eM_ua3~Yؗ٫ MVmʭڱ'lݞwѴotgʍz)Ic>%1zg+2,ebՁ5W#yP5qEiqٻ`c91mijWuzurjz8Lyt6w{'z9+ E}r{cAXw;cUf#߱%9PKN6nufhe/api_high_level.py[Ys8~@! 3RuqmqT%A$$qMF;5۷qP,g=8<ݍ} 9ʗDg1hζUG'G'fK FߒV5 ›Ŋ%}YeEH#R, ؘlECRIŲ\U>ojTʳע"k-G XE#5Nj[qVт\6"Oɧ+9Pk /sG"pOފ0FDIDkT"a1% f$J00m sFM1@K~= 9B~=:h땀iN,r` s(:0O0ok9%W7gN ! b0~m;`4/p͊,(IH xB!:b,Q\u)ǯ_o6dɛDTׅf"_M$țu=ZTb "-7IaOvMLiF&̧L xRFG~͇_RPH?fi?+D[j[42f.غ4EU-Yf^SZ.#'Ґ4Kb 0–[W q*eS0MibTVӝfgz*WR1(c 2hK17K.㱲M%J{hj2+q@VoE3MWB2Jv1/m;Ckt*` V׶P-Vtثs7r[ aZ<3qZP)dz E(wf&Km,72R`AH2C[v]~_y<1R0N:& a_v,%B\l1)!+,;<ǑkZ}ZoG 4ϢxȨ >FD auwM)Re V EF9T*wZ-}{QP J1)^*FPT1$P.B.3,lIB֦qY޴k,̘=TG<}?l~.*T8N#o '/— B2ω&rB~텪$?8 ݜTO=aI`7XU|x`nډrO q.Y@35*Z=bآl_s9 $sk;-60_s1ԘP<;[k!6Vwn>msl`V#2=Ћ] @7œcxpsDhךןq%W$d[f.bM ݦ`YڨC^ 2n)ѷ&X/w[uB-Mexܬg1|Ӧr^t.7Ƶm mCŗXVVІ+5*dw]Cf \U&ڂ&ߜZmDlIAU4WZ++Z,j݇cӰMQA]7vMM #zG4n ZN2Ə0Cz[(iCc Q}IbٸZĆ_bF"WB1PNi>P(1 -wie17L42!UI']VO62Pm匐[vSq器dSƕvbhmd.rk੃^X^e?ľ+ɞq[4q)#5It1} ]vDRdyZrldMm>i]w&cko}/ kn{;] D (L^U OlZz9!Wm=$n[Ǎ]%Jli}V({w, ]bW423k$]zɊJlLBӽClGbg5gS$lkX|"XuqoV$xxf3=)]vI:, JPX1A+Þ$؍O13IՕnG:}Vig'(Yu|#R<+<\7yw8骻:~hϳv~/FY'52<GSWѻH|j#:[hW]j nʂi{yfm B6cj8gGˆh:Bov+:)#<%x3|f \k&1T{*<~}9LP9{oKo.gLs\}#Is>w'Yh6dg) d;s}+p1Y~6sz ۮ'p&Ʃbla}}]5I7ocٮ6q\ɱQUBjcQ<M@#;..2>hq 0|ֆȪR$ͼSm<0RJny,-6A)/"::ĻSyujME5ok ca`|4Nɪ:,g7[?# ֝:K%A#%߭ZT[p8Mr<,M^qP`v=4"# Z&0ǹ8=^J^^GPzHyz}=z>zy׭dp|GY9 (]2 sr3'Wa`Egxtj((/J#H *&]=;z75ڭ8ME>;궦IB"鏢ԧ7oZʑlt8*=҇B|&3yŠ> =-mVnKz=ugtvmTd}(L4u؎#@*&uIkR6U)$;n%ZXV_vO(v#8X `/+&Aջ;ܻc@O=ѻd9 t>o;plDҘfa18ꞸQwg;po |cKِWogg^z|:; lS Y}sG3؏)HLdpa}/!ֱ p}uR>>bWb Lu2Za>unWő~7ب O(˪Z"Jٓa_0duZP&*2K4HDeِ+y˧ي>qF(o6Jft+3,@fo%0gЍpRW 3w%EF iҵkKJ+?pkTSRaj,JX2]~[-i<{/|<[>XWjx;$0j2r-3n?LorvXݜt?/xN:%Z'Ÿa:h`NHe0N f*R<3ƚ|/A3Pچ {l!M, G\mG~OUjߧ0zJqe}4s!r9D=fzW7Nt!NM.F^RXTl#р 9 ]宭aטw$4uG[2v/(,8 Nxr3<...s#$B5қ2l< GozmX>UbѰaaNx}sɪ& L [ 1tW^:, WNuj iqDRf_65gR(SRtl.D7֛&i%ǣQݎ2%>t]9ۭCNESh!M8 ;gz6HIah3q&sV箯oNޗ@!P(?&:Y_ǗP<?;_PKNb§X anufhe/gates.py\mo8_u>Tjmv».Mmp$εAQشDۼʒz7CoIdE { OX6il&`NUH%sRH0&~4F`" cDc5"C}"˥|)@Y@SL5eD118޻$3 ꑳhq%#f9e.!$8B .b Q|_#C LH')b~5E-H" .GUF~]}x)0͹#dȫK>ߝ^IwE>tϻ/0VMep$ :089ކB.V -$J]s |$QP0"v(D jWO5A # o47?/jǫ&#/^ \X q[&<}6yݵr2 Cf&ωiP.sfbVM3cӬ$bB>,I~H@ i^:xFd'WmoK6K6ַjC{dmuF*$E AQ m7Hp&i8sK45Lw7s֮S9]3eΗ TL ~S ;T'}:2s b?%Mק-~Ǫ3%8gD :a;H+IJjeJ# { F"C%V*\ SL*BXwߪv΅i;f5u İ81! 3fj*jA@k/a^ +]dڄ@t;tzboV:3'))^V/uCSD`uhmPX|u9 MZ^w t8j8U\H1,q84cmfq*(_|=Q. ~4s@maPb(,X+JQ`yNjSs |h՛k9NWT6SFl .f~$|gg}LX4@  a.c6R4Lf^Q`h8X @Q v>Kia&K~F!w-̒![FgFo5c-$z&ok99\ANa7rHUON.7+#uԥtȚ6wt;R6'KιkL %@RC GN}H16~c1%0GH"%s2+n_n5tu`lbk9Ƈj lr uzAAsY&v4 rͨ3E_XX6?q5 <58(5֤40CXs4$5NF8S,sP?)Ph>nY5P #m?\>t]}tXr~,5ۑ]K/%jW`}]`bXghE-jל̣tcggu;QEd$zE1&;& ZK|£W\LnMgͷ`W>݊+J2 S,[1oLm2:i6O< W9 x2Jm2 8ƓDe,V\Ky`Fd{˻{N$"W D q3يЁ ஔ](FcBb?c;i|g(yLAg6ΘJ YMsrXF2ުl=(b+r-yh%;>ޞ]-?ZU;QpqI0NOooٟ/?\.?A~vqz{w.o9]^8e77wo Jۮw`P.#] Ԑ, ٖ\>dc5mcBv d)1 |smN>y~tT[H'M6Rgc{ws $kȜ,H`HxC H.Mwrq"KDjHp^]ǍCsY6,9F957qZ+ʆ=]pwOZ6Z9Yx v2*YPT|mgPq뉚A"rۆvnۺ{42EGE1ZRHi~.,rAJouRC0-Eku!R*ѝ߽, mbWigY"Z F2 %DѤۇE0EoOj=7g P(-7DA7[F~zHK`Mk'BȶAPءYc hq8FpT-F`@Lu"!õMʖ@95.h˾]hMk&n8vjN;{(Bezw$F]Ya:'acoFh^k5zF Dfkt'3J #8K2Dl޾Sףh3B8iయ^xq! 8pGK0s" 4DKQk>iG>iG6aLa9xP <G#;mT{I@\ڬSfEͶo]*疿֔ÙWPQKڑ */,P fN?Ȅɳ;i[1ath.TV\ўEt*.,ft-2:9+y}jތ}%Jx xt# q( ㌝jٞGR퇦^=/h' PY/@Ge]ͶN/1tT _G ó4vzHiBtZU3SoOr'F[}*W3]K2gr9؛g_dsLf/蘽~kq qB3(xV,"[WX3,G<;:nB_ 0{wGSˢdI!7c69oEMJ7ǻf:̇[cҎ5[c0[?M7 J<+I#f4 Epc )ׂpC5N1m%2er+xD޷[4xHf,mf.q݂`y`KXb8\,nyEK Uv(ƅ}tjb&"H#RZCċAHr 'ۇ]PeI&z~|l$/}cQlF!Ty,V2#:!gHR%A\MnVRIVHeƙ ZS V3A/fDoQ R1*CtqXjYonWg tLj |X)5ש+Ō@󿑔 ~^ih'o;ZB&'iI W+5MP?;VᕌHZ)唉SR8#Κ~E)om\ aBSMK3ƺF(`Qd%u4N;ȃ .QV?s>Ǎ34VjlwRZKC RVVr'MК0f4ڣ24MOf;&u>muGȧpթhmw{s`6Ikٌtt⫷Wa肅X5u~_s _~%}u1OQ~ YH}nXف;I7R,9LTYGIJe, 6K)YaOiKk/0*E;{wz8^8;mЁ<_SN{TE*}KNԳGsRwڈz=sZ֝У>D~9|sNO لuo?(lCOW{2чӛ2 c9zx|V?PKNq{D nufhe/numeric_functions_gpu.pyUo6␬yr ÐC p窤lr"\xF aba G<]+\*neE)8SNI[t"}}鯋b};La9] <G' )_M! HiHH gcoH ό8P2k2$BRvϭ-xnLVX$f!W\$Q)T(e1O="̆2*SQS!sw\я{&X\4?Hah(: n:3O`ͫ\ w-x$"͛tW2+_`_Y:`s ?cʀ ͣ$ 63l2+Lgy<.xZ2hb"\X!\8@X>]~{Xd'd|&tx Nb)H:|_}%_t9^,n̗ӫwk`($PC4 ]HԤL RY FzfLURH¦Y8I1ϷۭNsWIeQJ$c'YaY )scU 94 P4( -ŸeRL8kJH"hM˲B`yřjT|CsPaM7%ڃ%Z|@c,_PV) q]vxpT b_P ]IkR*Ea3\XoDkAc㖸wO0r^ogxO;<@$1'|,ɀBMBP}CO FW\*<0b>k{l5­HxO-8Y !U5_# v&ZOǬFU#~>a ϣe5r>i;/}9 PH/"z#ѫ%k2ONUdoT]A$$L4k|3~gOނ (uw)rU=֧{.Fq&v=jƽw浐nɛcԒ6_yMh|wJ&h/>J®vȦ6w3x:cI.*RSy3W{<-K/ʽySjtfoS~fsԬޙMOUiyDyǧPKNQ nufhe/tlwe.pyYKs6Wtbq.[u*ʸx\&C8 X_ IRTTe h M.p?යܕ)d Iذ~D((MJv|+HI6R| bR JuPR$\@١ P)EE.{T uba1-$Lik-F3,((Ƌ(yOTH|F^}QllsuQ-筃 Nyޤ({fYk * P‡wWpq>\_ܮ>iUq>Zˌ`IBt[z.Wחo.ݻj(dPEX&k?b:%Z%'i){B9C$xmѰkDWH4_R\>??ۢ ؞fyM8zj⢒p 6Utzb֒ŏuEd#xa/hft\w2V$kK 3E .1$%R61JE1Ybo!G[`q,WBp8Q %Ix!hhTL[9fgN3#[ сNl1qs'03ׅ_`dt^l!+xA?SiK"Ώ;%f~}tcьZУ]X!k[.7}B5| m˪-gfTʕ`Oef^rT]~.hd23"n XTZ lBXXpED>Fּw81!Q]ZFNSF#+鼱 j|h L!%ɽ.g]IP>Of`.'Ÿ~fyC.C҄_qIJоM/0<}anPZ&"4YE.teKMҕ6 kK7hFwVs_` *Qa8GBڡ5⽀q ,bqء}:^vhw[_~S"&`١{ exz2Vnd5U.i^y OJ/zK$ K`ztmF>rF*L?M׽(PZ pqo3 MᯎUE7W%_Q4tDh{pIACQs6%Ըab14b:\Y;l<9LS5?6kk=Ndd@_\AEp4mSKV^y50oaOMa>"bt+kb@PK:9zn4ӼΉ5$9lZ@UC=w~6$}0"}8.oŹ{6[i'}P-6/9rl'3X-^ "J}&c(e a_k֏Q}uG~4~i#4q!_vi(K+ IÉ0C$I"ŏx!y%b/=y|ak釽EljOY ҳ7@Husl>3|n DQ,]oiAy%W/i}g=-g+<,존={6Somg5v4D4{Cc|:r9ϓ}feoO=ᯛ 8xŧ +ZM`Y Kc)@Jס\lsiYP!j/m]opj!ػRTdkH6Maqw ISp9/PKN]*o &4nufhe/transform/ntt.makoZ{sHO jN1s^?tǺC`Sv ǬV'D43f`ny0PM;=eZѲabipNrp35f;f2{*\4oV >>`@E4㌙}.8ɆN`[(Xuuq݆{f;8r#<Aur)h ՍY7{nrckQ$8  < =#O"*Monכo[/JL %_js4$\KdQJ:J)w:pjCrzӨ}# !QcN7L{ 0mSaz:y$D5,sD8h0<8huΧbq6FWQ8œBD5]&3 .5{j~a`MDSj8/%D^)p*L (߹H-oP]#u "X#J~`c!\lB6uOC"p4kMru@$셵'r=S ^s>J f3/yeCbpxY<786~2_PD`z9$ Z n YB9)Rp \Ƙ?:j٦!u ~gfch5#)p tߺg-?M76tU@M{fxб:.{ufu ҁvwL>z{ Z缡4 M&iuCqZi6nΔ|Af r-3jx{נg(4ۨH*9t.i#qtMi[[eq&iȾ6QWpV_ȜD _/e%u?*&sjv8̣nUyEݺRt kSQ BtH&skH=ưvgn@S qWszYc9}7 %1ljHo@+~KtC ǸMJ] = ZK[{&+G8qR_$C,}J)ŚP@?ȯ j%wc5TTY?f R%ģS6-Wsim[,${Z3^՛0<̱="tGӳz \z.ޕ|ի/ro|dh 6\.Ge4{*jҵX3SУyHb 1b?> `[dӍG){샤r6h;B'} |Mմ5kmMUNۓ}{p(݉PHj$:n^ޣn+wA~VJ>OPHP CA~Fx*"\\ˇCZ>b,TQM@Pc)iW+OJ8A%:z#1HQOPE iaš\ک2 i>&KV*/I?YK!Y l/dl+&S5lѳ"R^)_4jRJpxCI%#&P D[G'E0tK,-iNñ?=^8J%xcLJF55Q_P A}}oّW{N8"]8OZ+g+UUV>dWW];w<@ih5~r9Ƭ;#5f1xYwl̺3jc] Cܶ&3gb~L6g DH1\}[OZX8c uWWUW/ؑ=9p‘J_&#Y{c#ehH/[L{hcl4pt}l49zp=fl1![}aHg] n߰׺;.iة-Wg Wܑg]=N+;UdIw\j`(9+hr0{`wL͋fIgEG$I0Mՙ," h޶ߜ\F{۸lAcod]Iie,o#x:m]!Iݼb'痬.׭%8jґ- ,Qf =0@w0.pgHtÓD4Ӷ$&4 ̵l\`rywwk< LN:,!Tƺ |梖&a`=@{x fƦ'oBf, =k]D˘ggN$k'%Q0L;cCY_j4gd0@`wa:,H@)p?2dcȭ]V@β8}]3)مOVHmcC I.9SR$N O.|l W79 b!J gl欐aG3-n##W -)l؃3n)C(ۼ:?hHwthqI΁ -9&^Qu뼍/gĽ{m]5qٺB͜\]tNtk MU3ɎS wA{}PQAG7q&>07||~sI3, ڝߚ)|4ѷXtJH7h=oU0s"-1F@3FP aQ If+.i_4~+"3{ };;a1H[jp-4õk~Xqqp좡w` 8j.Y6(*fEo % !(:;^]nv~Q~ o}~Meg'oSߎx6 E?l3IuѲ$tu&Ƀ"{ R͠U ˫O) tqT߼E 1սIcN|pض?>eeP)E6lyR~z:V#l'T qpVĚ2E.C˂&Q"T`T-`A `D[pryG|*G9dcmZiY^}[ Z vw-E,pL_,_z=fʇryc3AGn (q53 ?{}qTBm(>#t.a {fa vn985 ےzvXy{vK`&dxCOz%@qfb#<8q@7"RֳPޜ]^ Z:  eB1lǵ\_KUWkbXߦ/K z|lډPHsiB#3(~$cqs @FXUT /zD{ROָ"JND|aW!,Q.Kh FlR{֙gDZ ,085@}'6C"s\K$Kb~Zd""; ,4r5+sꊉbt1H-T0E!4g߈^<+¸ցu:>Lc}{dpbM#O*gSHaYo 3$ݫXbxK5Ͽ'ZAt0nlņV`%FgnO]u(D5" [%epǛWbIZ"e!pRO@<omn4l.Mq0VI .S%2T2`cGapCG!+cob.'yR.QX$,iH)"楪Ws>øJLqz <.)"oT&x8MI9J+_%d\Mw~ĨxCqUztH7VңC}_XI1Wg_f6ɚhN6mmƕc 2qlvf[FpHkh V8;P76ߚYU->owg;}蒷 xaj[V/g.XesgɭvDtaؔ讀I4oSghAxr͏K@7j";) 4c## C%+#~|{Sfz|/tXS5vfx4zOow#7b#ݜp3LellJU%, N`=ǺTỔLT2H_'EX'J7u &Wo.!th LOBږQ|< ݨNZS&huV Z#il"f).1Eks.x_ {DPELixƍٰ\OC^JS6v)pJӾ=Jb&jnoTb(_E-йq!.մP, RU['i)|MwmgaiřcxX+'Dž aX235*oAⳝ}6Nb}g'x=ԇ ¿H?N`Il Fȣw>0~<#hOOP*^kaGB6.᥂Xg ǐ\VÇX^ */ *E!$?y\ [AkTAgR>HNl&xIvCӒ981M#NUɖo1<4F){I\!,Bd9b@奴2BdUwԀdj6F`QjMFwjCals>o `waOiA*LXJL#-%l$§63<Ρ#Tb x@ o¯`K!p?jIq7aU0aϪ3p1J0\0)?q2*0 Ѹ]דu\,C?(*:{hq]z싇,k4Ÿ R.?h_9ًIq>x2IL񘴏H RuA.-D "ַS"IYX֝vsiV] TG; g 0ZKd}NN(JHC˄vK[Ze^ף#[ǏW"^ZIV@T yњhYy^iRYEQkXǚpNghѕcg5PUGjUn!"HԩcV-^rIמJ Te ckÍ%m"2WMSZ!.2a9DW故r dQ:*ĹB?o樱U_F(N:RY,g(%HJc<{SՕ(/HVxaVL%eB]ow"y0h!$C%j/?Z=\v[ H0Tg9!oiD!/>o+Rt^3S-2[\B {_Y.ǪUV0kuo?U ϊjtDOX΀Փ<&8pd9G*< ,(*EC[b#5+s$~Xő/1c:fi<Կ <hx|ΎWD/U:TU[a#"]C ѻQ1AO,ԇea{K {!\i O@RԖ\//OGV(Q"XBØWXW+3W|egϓ&o ^BW1s-2E "J}T$>oy,< I ƿŒpmۼ4 P9t>ɴ+[xUJ?-N?e/ $dP[/ $neĝ?+=1^0Ycq}#A0*KC N '/ >/ )[0[[ pqpJ*!-UXR˨CH-zu˷;|_/nn.w Z3p+d)I%XA0|"5kts 8.~;WwO ]׋vGt+( b SiHg)œDZ'R=.A9 gz&0 LH9 ܘE?<\.YZ2=;K!Ǟ!$by$yN_ ]"K<+"s:F<=tl#11IH! CH'wTi_=4F*Uf4sG!=8KYGХR%.O 1r2Fn$ki vZےCaA~Ƥ Szk*N E!-)*"It=T]˸;ZĹR*XAlIvܽ_ιKiEk:?m9?jC.wA&Uث 8L 047"Hކ(f/9Z.sn=:Ph{7 bV7Dl=I7wyV:L6R'ǤRQ.$sMIr#S s^"˕’3d &1J0UfnMLyսWA% "]h1$eaasux`[vUz20a?*rÏ,6("#@ mX$㩠U0o mSOG3;ڜ2z_^vn meٴvdڭufg/GIo @tQYfFY4*µ?p%f@1C?u@~!58?JCE25ѮmB )m-C[R@@iU, xi ;hI(]ST=>,U^.8H?s!@v3H_zg94\iDnֵ; )}ֽ~lo>zZI=b.l!}xpՅɍn>=aVu)IĪtM \}8ߩg298ppF3,-%GS!ۺ52YTѲn[4ե#Cc8| ˾aن\.a%rXϔ_if(%яg{fY{PKNPnufhe/transform/fft.pyWmo6_q@?TTv,^R7pADY(Q#8ޯQ夝6ûs8^m:aar|FTތ&b B))DIFm[IbJJAP3؋ |SZL#c!! KYP :O4p94QlVTDx40&`iܔ `)h&(C'*% ц0D9`,Ɂ#i"H!S4̸ .7n`oz:hO@bq$I#gXuyuCܬ.nn`u ^7W5\߮\7ԐBnü:j¸*|TȌ'e){B^|lkd}"K,PHHTnnr;FdqINQbL_Gqey(COr2Mfo Fbs Ka,3Wl ha=Rh=IC {8u|I3q")۩Xg# {VsULZ*|V*")?yM`:D^ ˬU&Is'ŪV vzaϩ~90J0o[j`< cn0鉧A(NG󬌔[϶Keɐ%pci2Oi댴 Xʱc %mǶk,W}l _y;.FlΤpU@+O@ӽrdϜj<>{(D*u]nMi.) <Um<-ocknAt%Q|Nrd:+z{KOgo)4Z=HG(|a֌&'Gr 8{POKGxhN{UA'*8ΫkjiCX/5zoYgE݉C@`UThc ΂ !gU0gN-ӛ7#},*a?ڹr<̬dcWu?FmAEaFda7$!vX 7rqnMUCvȧJyZVKS[-!e&xCmzzߺ[=D߶^ y5->?Q +S&p뷽,'NV:l@CXn4>Dɘ1MzN aӿpsoY!31tR_:?2p+K>гy أPKN}V!nufhe/transform/arithmetic.pyYO#ae)+tۮCp,*E=ۡﳓ-j =xq.i73_tNh 53]'QUcMThJD SdBy5)9PlhE9i1S&x,Q_X2xO*X$P\I9ڮco~_yg" \sbXَԷf™EpS!3 7 +JKT$3yX؊Ȫ:rg$rg8#x ,>BȚY۷_}ߏA֤p Of0py= >8}~:;]ٷ.qw~r{qܥ 86qAcntwSYS9qq\"d>pBvB;i/1#}7[hI5J#zk@H$ѤS\嬕l\YT_t1J%6MqF;8Rg2 <(cZәȅggiƇ<7Gy4-屌QX~Y,?cيs^ #j郶dBi̵ɼ.VHos>":(j|_M%1*Yo." ]aM$WcVfΫW&eTfoA5'Ǻxtgu2v0/qDo9NV2iJ d$_k.MFs%s!G ;[VH>jifǂ)4$\$Br5,y^Z)%Nݹ~hq4*&- ݩDr=ax]ZtYXK? :uA-lJZrqn!BIcNX cen(S;'$93M: P ٝA& Ck옊9,c}Da 2.<-)T L=c+eCoaPdv KD©ٰ l&6H1? mm`ۆQʣ; ʠ,sV}ǀfٵD#fxpWǩR.,㹱"Ђ+뮷W GeFO@<@Ăwbru6Ё>=$ǯR~s_`P{XB }q~ X` Wj{|IU\񳷐&QZS}7Yaj?si>BSIXgew9~u3^kw;hh5YFZ**^H;#kf=˟./[}'e8c?/J &J"cN5`rg`;,j|O]!:,Ar0"w|sW5~RtI6i3g=ꫝډvڊA@Vt^~Zme#gw}vg 6)9![WrPKNdB$nufhe/transform/fft.makoZmsH_ѵ+/lg%؇\>@L"$N ~=w!NQqt3_t2e _)M-)q#)`L-=7\xJIL\cƅ.!9c4\F .1\:\0͊1x6 lJwC>EGХ#b{ ܚxSbP܇vаcP\wቸ,#`s9S5XU4ԙcDS41.e#U&P ~@ h% lnQq>ݿ UZ;םA}w7}hm?\w[}ܵwE)*aM jyazg05xDfax܈a9Dq"ѹa%ɷSޛJe\'츓[*ʒ$`ȯǬj%cR~yW%j+l='^yĿd{1fUMNPyic{ 3~#&p\5hou;םvnzwQo?H'7[݄Hq`J17xm]et;?ˆTq\^Ӣ:Cy/Z#w’ $*? 0jMeYdƖcF 5\bX\\8:=v“CM\l) Y#!LNK1{j0 q06T yׂ#!%04O  !f=9\]6긜WrT59)WMzNܞ:RE 0?U5X j|MKõzB߉kKK2xoO5Tɳ`r< Ĥ ǻfPV83̅.l8<dyնO20maJyp+Mu[x"%\oZ+tB4R8m^*o Sț2}w~G)swL眴5oStL)s [f.5ekUk<R,TA$'>//ESUz^ڱb6K[{U : xV; /"ugF^q&ZlFN 0.8;%ߵNI}GJ^.MZ`(Dg>3^t'yb>?tqܜ{sQG6~gؓ1"#;\F'Ÿ́&ZuL7 ZVQw4tqKNI8OGopooݔV0y'B8G'EcSsռ>Ęg&&5ǀc իZʔBH~-~8d2}%h>3>ᦛ>"([>BnSy%)rNϦb0PjZEu~.k^hoif΂WFRݺd:#yRT@]@Sa1eӾj13} gX1)stO&tgդKz'Wj\uzl m ±ijNl񂍑 qDnm_c.,VdA Y} \Pp 啢e of[Z{6hbWH'~u.qr+zyֽm) )0c1܇FZ`~@:v۝9pr}RW<ќ`膹~ ~~*|GDmO^м.h6ۑEU7ްYh^]%Vy'PKNx nufhe/transform/ntt.pyXmOH_1RUaܼ8QJ*eu:gzפ_35&PR333㾃hr85 a6+wub%< #u<'K\(w,0f0\Ec6df"*-#/xm0b|[ ,HB P~\,~]l~?f׳OUeH| 9cL+#ӯh1bqb1?0rv WWoz7H1? =LϔC|)Y}bxO 3C 72u" HY RyoR$(^ Du:Q$ͮXŌ#ފ<+g'u.wAja҂o)r#5SkRIȅ,ξ]]g0ãq0P+9> RK*QvbXCƦnHuGEB_ktlzrnCM[((Lۊ("Dv ]gJH G,$YP{T;~H8{.rŒs#ddӽl[84\XƬuqL]G.\2TĢQ&:4 ]V8`LƥeE3, co-;4u[m04 &33IQ֩N\&` ~7ޣGv;-pԖ>4ajH|{EU=/QLP9X/[ $VPP7fm"c^Z~^~X{=Mjwkmㆭ9vf"Gd.HxcdVm<{xha^exv7D_06 XWTX+ tV=t 9}\۱NQtd+s{!(5l^>0:4<ʏ*Y5hᅮ0_,( A9WcHBh^p@s ]%d F%J?dl"dbjJI|ҕq͑٢i}p h@#IbS^4ZfzV1s}VW>njbCNRgrXON^,W4{=zھf{\:3%*q_p xv=4Zvg`f݌$hlomJ0[,LJ+ֳ[RϣʘUO#Z0{ڡǕkrUSQN`VxtmI_d\vK- -%֧2r.DEk? T4H>Dx 2k!3r}㥹c49Vb3RRӔR} jo]IuadO+GȮ>vLM 0&MO7M{@[>~˪(4ݢgmdX6fWenY&oWI߱ ٚ %ZZ)N"._Z˦o/7Ph76PKNpnufhe/transform/computation.pyWKo6W vZPnldq FH*;dGsL|q{ƈe /]y)r40υLH.q3PecF/ _y ՙ[s%$\TXgĢt䀫\XTdRhz;Ǘ' P.HV$,'~xkaךpZE >mM4xh:3ytB]ySuA ηR2"o70{olr7d]i_FB 3܆/Ҙys{3&p}3>> &0on'3xx=?NcGO6CLq!m}g %f2"5AJ8$H3ReuBm]Hn(?r {y~^*cmш\)U*6_ŋqX i^Gѫv"˔Cr_lBCY^hd(]Nh#EEěh4~}̧0RR)97`Wc!&[ sU1^F@O0&p(V9wIl Ji|K%Z5IH@i:y , ̎/4b֘C7o:Iޏtt;}8[h #`@6F+z'3ITKGae/\UBOO*(\05XGo?6G{[ުEy|sOfթxW6u|88K:gjYFS a)&2e|:8r<*G"cou1eq*ON^9 \M@;{ZBN=SoL3Z8!|p0+3&/U;euUZ҉h=@x7ϫ?S&H5ZE/t);6Uk[@tQU? PKNo,@x nufhe/transform/computation.makoWs6_񮁫I$]Rr(iId [d+16u+"ZJ6_hpMxs|\evp,7"RA]DDR% h&)%fHz KGBgJK65ri XT^PT,en>\RI8SL-0ƙHL4a (y T*Okd-sp6%5Q8k]􁅖{!"h#bEg1o zWw7&wg T,8CfKP/Qa4?IprNpr5z=&eo7 0F5τxfa&'0 qb=Pj "[7$b "-i؞q[y,sޮ5|$WJcmbj B+!O=NdV (%X?n <,|ul5KGsBR+7r\Kҵ%qYl¡@9~mbf%K,Jln?c LaTلx}SEeʉʖݠXlb$1JD);F$2#4cip\mgF؟ ?$yڱ梑>'1dT[ة5ۍS͢6-( >a`$X)o\OY:mו+8=v aR%]ev򴸛-UPV0~tҭr6mn\pYZ`mѲ\L[m9ߛ_^ #K\|]8l+u}W?s># uKy/PKN^- %nufhe-0.0.3.dist-info/DESCRIPTION.rst PKN&?[#nufhe-0.0.3.dist-info/metadata.json}Rn0 AO-(Nam+0= LպLFi[vLJ<fAkc38+@iנFCv4jVH] Cέ̉e&rpTTG. fj 8Jv:<jܣ.]*Mw1+A uwÜsP۬)+ 9ޗ|Z]\='#`k:>f+U%(z-vL&0Hg*v٦Qd++3@F.P:|'mO¬K?ٌ_{`dz1 PKN~)nufhe-0.0.3.dist-info/RECORD}GlS5<䰘9H$$m(2(~W{ek:oM;gE (r oE y!#z]˼ʛ( 2(ʼoHCY^F')ⴂ<Ԗ!D L_3;߀hZ r DSaFcY^Xp/6 n [VqݺޑDv!{Ȅ+g@%S_UбQX疝90]|^60n!`E^ޮPIŰk $B,1@wM?ʮ 0.VVSֿAryX#L^%$m ȇx#/+a˱7D ̓0A<ϣV G^#N0#tKGvۯ1Q0s{C s(|q?܊^zbu"S:<˚@<2A _{8nد;ĩ%K䝓*0HWH݃_M؝;aM[XVtraI~c=7(E;~v7-Bt 9F$ PDAjh8`D[.KJf;}j{ _94%0 />Uj:F. gꠕ)ԟ@{Kˁ/_TumK{CppqQ7gtgc7;GVUQ Ӽ+#<Aޭr;8T}Q+  y4%鎖MD5ix6LZ4Vx=C(}Q9X1+38L|\0+Zb!`Ѽ䕼p*:N;F@R񴵜ms}ctVyInR`HORK?)=t ZrxmYٮFs1rsk= "~$-8YU9+k*xZ_u=XIaOy;}BqV9cf(qg #k3d(C;juO#HDWJ;@!?~ԅ^)oVG!ls`$=#Drv4kX8MWZ#,nh[qW֔;r%eZ-_ɋpq"?*5OOC\g9ė*)5WKjQLHX 9ϕk 0e֗Ws ֙EMa诘PNENeSs;12-Vtx)֌_ " @Wް 2iV!ZY̘( ==;J:IQKD~Ǿ]n?)j .X2.5 |K (!5:{-@?bmëAZ0/Br%{e:$;]UWI݅b6ng9z8{u{s]W4쑌!HKʂ.^ '\lglM eDz;jTUUۆnW3GGݓ1zf?/Yo ȌNs.J-؂ yLrS1vǞl'P=)(p#zT3nĞ]&^ͭk<{5gTu\FZk"܎k㏲0K?-e)X]FUjQnp1{#1&ɕFHPKNDd 1nufhe/lwe_gpu.pyPKN5g  nufhe/operators_integer.pyPKN=]j Pnufhe/bootstrap.pyPKNN>~Dnufhe/tgsw_gpu.makoPKN,7Fo8nufhe/__init__.pyPKNjX nufhe/lwe_cpu.pyPKN$nufhe/tgsw_gpu.pyPKN0тu-nufhe/numeric_functions_cpu.pyPKNO7+ /nufhe/tgsw.pyPKNPhԄ !6nufhe/polynomial_transform_ntt.pyPKN*> 9 ;nufhe/lwe.pyPKN&Jnufhe/numeric_functions.pyPKNk8N DMnufhe/polynomials_gpu.makoPKNI RO &Pnufhe/api_low_level.pyPKN4 p M[nufhe/polynomials_gpu.pyPKNٌ4̴6`nufhe/lwe_gpu.makoPKN+ 6%gnufhe/utils.pyPKNǠ |hnufhe/random_numbers.pyPKN pnufhe/polynomial_transform.pyPKN缾 r!snufhe/blind_rotate.makoPKN`Z}nufhe/polynomials_cpu.pyPKNC V !]nufhe/polynomial_transform_fft.pyPKN6  5nufhe/tlwe_gpu.makoPKNp -nufhe/blind_rotate.pyPKNVA"nufhe/tlwe_gpu.pyPKN0?~@nufhe/polynomials.pyPKN6Xnufhe/api_high_level.pyPKNd"nufhe/computation_cache.pyPKNb§X anufhe/gates.pyPKNe` 'nufhe/performance.pyPKN\yT 5nufhe/tgsw_cpu.pyPKNq{D nufhe/numeric_functions_gpu.pyPKNf_  8nufhe/tlwe_cpu.pyPKNQ nufhe/tlwe.pyPKN]*o &4vnufhe/transform/ntt.makoPKNp;2-}nufhe/transform/arithmetic.makoPKN.jnufhe/transform/__init__.pyPKNγ Fnufhe/transform/ntt_cpu.pyPKNP:nufhe/transform/fft.pyPKN}V!nufhe/transform/arithmetic.pyPKNdB$knufhe/transform/fft.makoPKNx $nufhe/transform/ntt.pyPKNp+nufhe/transform/computation.pyPKNo,@x 1nufhe/transform/computation.makoPKN^- %~6nufhe-0.0.3.dist-info/DESCRIPTION.rstPKN&?[#6nufhe-0.0.3.dist-info/metadata.jsonPKN#8nufhe-0.0.3.dist-info/top_level.txtPKN29nufhe-0.0.3.dist-info/zip-safePKN!P\\R9nufhe-0.0.3.dist-info/WHEELPKNW9nufhe-0.0.3.dist-info/METADATAPKN~)z;nufhe-0.0.3.dist-info/RECORDPK33 D