From e14792f632b4c03e3da539c7314d7a7aec8c21ba Mon Sep 17 00:00:00 2001 From: Gary Snider <75227981+gsnider2195@users.noreply.github.com> Date: Wed, 13 Nov 2024 09:19:28 -0800 Subject: [PATCH 1/5] Added a web ui to render intended configurations (#827) Co-authored-by: Ken Celenza Co-authored-by: Jeff Kala <48843785+jeffkala@users.noreply.github.com> --- changes/827.added | 1 + .../generate-intended-config-ui-dark.png | Bin 0 -> 41359 bytes docs/images/generate-intended-config-ui.png | Bin 0 -> 41459 bytes docs/user/app_feature_intended.md | 20 ++-- nautobot_golden_config/api/serializers.py | 4 +- nautobot_golden_config/api/views.py | 25 +++-- nautobot_golden_config/forms.py | 10 ++ nautobot_golden_config/navigation.py | 11 ++ .../generate_intended_config.html | 96 ++++++++++++++++++ nautobot_golden_config/tests/test_api.py | 53 ++++------ nautobot_golden_config/urls.py | 1 + nautobot_golden_config/views.py | 16 ++- 12 files changed, 181 insertions(+), 56 deletions(-) create mode 100644 changes/827.added create mode 100644 docs/images/generate-intended-config-ui-dark.png create mode 100644 docs/images/generate-intended-config-ui.png create mode 100644 nautobot_golden_config/templates/nautobot_golden_config/generate_intended_config.html diff --git a/changes/827.added b/changes/827.added new file mode 100644 index 00000000..d2f8aec3 --- /dev/null +++ b/changes/827.added @@ -0,0 +1 @@ +Added a web ui for Jinja template developers to render intended configurations. diff --git a/docs/images/generate-intended-config-ui-dark.png b/docs/images/generate-intended-config-ui-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..7980b92c22ed5b8dfbc5a8e2a15f08187f66eeea GIT binary patch literal 41359 zcmeFZXH=72(*}x)8f*}dB1JTGq=-tdMi2F16;mGWf3Tt)kV7iO(vShfOSdm>jETY`&j41(G2-P4SY1^ajble)YXhwsIe}6v3zS;Q#pR zDbQEY4X6Oce@*#2+mquZXiywZ|3BCK^MMQse(C?(@f2uVl?0sU)^zXRbo^cP#!FB$ z-T%Gf&twva_FACz|4FC}2{>5b|6cK%_$k?(NpS!FV4b)n@?-ga%NDV^N5xXnzu2s3MP2M12R%@0$g=5eC72`{e^`-pcbNg!@F}KP@ z+XwUY^iESc7sfneN&bg*h(-6#hL7Pux`o<4AbvD`z%JJ?vn4> z`A2f#j(N6t`%j38%OwGSPa&P-+0LeIgu1DRb!>@Iq)nKh{8i_|UUIfesDHj`1i$qd z8q_=Pw@YDjE*SIBjR6T>Bu7r{n60S@pSk|`ekl7l=JT6giZk`_cKP-9h&rXLT+7&dlSrbFG?IG!;QsobFW=(#gkB40Uc zjFGSb1DfF8aw(R0FV*Ew=5s>ZGpuOHT>5!kbk#5XmBE{!MkUh}GIfY-=*AZ#+czek z*okM52fCMJc@wImkx4-$HHz)qGpBnmq`_!^c2xw?&b)Z|ep=!pIPdPJHj(E>PO^JR zjF%_Q%jTei`mYn`Cxfj-dZ4JKHxktM|GAF0VW%&1$UoRS1-7yJQGWg(^^mb7rSC4I zK#Q@c$q~1C6Djkhz4x2942nKM1V^0z?V7Lu7LROBcbgWNxJ^3iZ!(!Fev@fWwn8@S zw-rFJ`?#L9b|KEOuHv~M-o)qT3IT_t*@%0t^ zz1I!-_tUdhR`L0)P#1yLUrNa1hRcKr)BVnA)1$HC04lly;p2zy{nAIN2E(6%ejmqe z$mz=qkLrWf2@8Y`{a^mlhb_i0WLbZ8ArVhyn+^ozI8K=-WxNo$UqFp6Ps%(zBfUMj zK0dlYdk%?54+o?k)-q4%gby5H_KwN#`mQh^&8Yc>d#!BvVHayoGcjm78iGq~6LU`P zVIz#nN<@@CK~4*7Gq^xk0ntu%zI5%3&vkr*>~BMN0x|&d#gX$IU#3kD zeU0PVGK&#kc*Hu84xZB?W<7c)Z%kB6J^eAOR(~${$+4ykhJdK4&X*%LNeBxKhws8X zv1)<``NI&nVj>xw7B@t34T|ar^({gvBxi)VKyr3NbuQ&!yA|yVT+I?nQhL=e|J5xD zNc06E@18F;@#fL8IXCC&Dw#vRp2yQG*-U+Nejo3?ZAjRW|GaD>hE&mWBnV4ibNJQg zcoVuK2+E;7;ZOhMp6x)Oi?Xfqr`pdrU(irD4!pn22VJCFk4oojZ5)wHDa8uMB4}Js zuJq4j;2LPG?S4E*fp$H^6{P;)t3WK<=0I4z#V9Qm+GhbPO^2B_J=XuFR!oS}*fIxe z$U+A_6P!*Cj$H;&@O)=*$FZ2sR%gV7Ex$W%mldfTh8J^5ODifB4YpJGa6OJQX_#3| z1l!{%UF~Ym8bW@gD!1bf?pWZ9tgM%r!5d;7co-)LeT$;jQ}zu?-XZ%eu~d2ObZz?$ z1I7BOnxbf@!z0=5v0^VT1uFiCTl4(o+$44H zE`iCt6ojQH-;TLQ(^#~}r!C7KxdpnAk`fk4HYk(V0W*rQ&MSS@;ix{_)tD~MQS9n& z{R<(+!||S#gX`eDTKsvz6CH#HSTIrQho9Mw(bz9?~`R+fenlr;}_q7?SlO#&V&z9ocOP#7`$GN~A7nxmOjZ_+^ zE_}ky5q7<~c5uQ{d)2m+S#isVE>eMcLiB`~*>=_kVWIcrDxdxhfOz@$zlo<}Ik}A0pqL9$yW~9s#U`)B*`U_bbKwt3OE1z;)vB2B0nWnL?Ds*~8iBk6)sIhZ z53Gj}4;tKIoat}a?%di>3V-2P%fufWcX#K^TY@hP3z)NmB=e^E4mNz|CLW7Rh|l~w(`e>k-`hkH-U)w(r?2r@&z;2_ZAZE?J)e+{vgF%f#4#wP}R{a zo0A~=F!5(r+EuW19XH!2F~S&WEDN18DT?YOYj&+euQC31!H-!_T$U#o zt%;vG8==anSv(v%r=U6gB}6^fin~Fw$Dy^een^k`htHZ9H(5o^xYVImRCL10aqy~8 z*lr4DI7wwvI@?NXL9`t%{bVf@;)srQyamm43K*Py(jnKH*^+uENZ@TL7jtU7mj(?> z_0i*VCkOHz&|*>g8mb3@>ZO)wi5cKL0E4RH1PyYunWwApcuNzCTCxp`NT{823hFp~ zpv5^$*|Yp>H_bHIul_n5GH|QvsPx&K3-ZQ^b}jtTE|!~rOnoLNoQfeewVfYh{#gcw zigbmO69yg(UX-1*$Q7QAxjw5x8D(o+YQ<36x|w5Nb?^RHl@XZZ<1+6Mm7kiB=ntVm zw}krg=W*^K!Rl}&yH~dRSxxOpAhw=y7s;ts#aYgGX(0hb&bMmxjjyrOp0$6w(iZej?A z*+r1f2C6@p68-J68Wn!~32ta8DcMt*$F#mipS9F~M?sAjeoHMu2Jnzpc&p-+#=IT@ zc!WB1p>MeUrq_nJn!n!O#Iwr<(%Z#qeu)jga*e05mvT8&6o1D!beI1`P`&O~9vnd4 zUce5Uy5Mc%JWte0=0psB&fd6C+5th5WuV z9Wr(NX}$Hh-PG3jJjZVY(-`+6g>a)LP2-ti&hCebc6{SEB5!BDv6GvVZ z8fW_e#eFx8lt>Z_5M-Z_sVNPoA&xNtfwSmR&ft;_K&FNU#qVepxG$xD0&4oiGo|N= zV-6=q%?0aTEhL+BhXqE20k{8ua!=I#|5fSkKn4`>A&&qTzfD$GW2yFWb!l+X4RsyZ zH=XU-Tu02a{mnUzF=1NtLu;moM5Q6|mGEUhf!a$ynnRxb2Ute2tnZi-cF^qrG`*4s zYBsX9+Wd=<8q-J-w27?H|qo;6}4&o#hd^_dI11A zjz0*AIRAy*`^6I=cWZNim`OSTa>)RYBl~Y4XAHIyI{|XR5<7qO3wBxs0CH}p{~O5Z z{UNgkq9#e)1^{xu$ppOTzk%HU_sOiGME}m?)C|}2t&Emg?oI(opMcd1f5GZ)r_*Bc zZ#_QiVK!r)E%s&l@i?4_(EudOLCnnEcKt2JJxdKR43*8`SofS=!q{!X#cXY|{{B)l za_arw4+L0Ttni zdsImdAE*7_{mP(HN_+3W3n5aM^+3kwW2DFH!^dpU=wNmJhC`{ISr9&m#^HGBe}f?%k+yGvCb zu9oBpv2%3f?;58^zOYWJ+?(BvnjXm2GS;n+bZHk6MNUf;B)Q?dHLn!@kc6|H-)<8h zJh_i<3Bl@-1VvKLeKnula_pLaW%4f3UBpYBqE2J&Gmy<;?^Rb>c$6HXZt|pLRsDGy z>q;PmindE5xg`~YCc^QT03vt7Nq07TeemMMrYlEGD&%f zFe1PI5`2(Belx=noVR$CySAKG=~KP1Dp6LZltiVwsThQ1Vkm#W)dDPqB^Oij+mpP=KrCna??zUbk!`N|9 z=2a^V(h6y6H1`*!)7Da=g@lAYOSZ07v%{@|0nEK)l3`jo5(Tfbt4#=BKkio8zXHw+ z^Uwmr*bxwD5D8m*+dk1ak@)g~tRkJ>nb-aL5u&40gaYXdYUx>BgJ?5|C#Ljkf3q@Z z;FXRBLVvi)!MC`#{r;9(sXG?p5N+qRW?9bMO!E8LfSf$m;*bwvZTgiKTwt3~*U;Rf z(gW3Nf`EbSsw@Ptk+rv<5iGAFYHvvmDJwl}p6yPnz9@L<8~TBB&;C#9Tb%ocH*&r1 zI)xQ#`CVzKXRqv1Yo--wa|Cw=8QQN5R1QdCD^Hg~LZ>FJ9_6;ZUl_&gn`^d|DcMVY z&;VhM^ii+6Hm;iI?CxU>hN@j(oU-C~ag;CMr++>dKI&?|K$d+5PcG}M*W7{MV4y-f z8G@ZF^GV?N6zmWs_R4Z=`QGcHh1RU{+~JtbqHE4RNpoI?cU6@x9aa<{?YIofwhsoX zW9qLmNIx{6(SOuTvwr946UH%KD~$a{a_FmC={kJJg^Sz6NoX}B-1&uYw(|~OO z_L0m(lP`DXABd_!I=0PQp9eqxDxbNaxH`IUEpF92r6Tms&K_efmO%2o7>tl;QP`xj zF?o>NW1=jDZKm7vn+)5lswNa5c_loxR#O|_(rA$2wB&8wQ zV^+TL`WaL&YU#GYmyaDA>eF;lc@F)AZ0U!B@;W$|oQo#uZ1 z3pAx6j{;M!ks246dr-BA-$x*Z(&)y|Fdi(jKD7954fvW+~}?$+M;8pJCK=4RK- zYKo>u&Mx(DxxC3S=F*VA<{>@Wj9{2L5YUEy4_CrRQcU9O+08t=T> zw@u!)K}8J=6>CR_Rg}Hpe^bG4q-AKSRmn4^>L8w?@`JDP5z;^)$KQg>X=peCz9N^C z)e|-D{Gc^@a=A{$r{JKW-d=O6C7EFh*OA$v^k!Bp^oSyg(iC^3(XI1*&{UkQ7OP5{ zs2Vm_*}p3RL61ewNDvKT4QmNt2~#g&g9?=u$furvj9=goG7CF`*<*uwc@AYUCxW`m z2HkJt&zqC4HF}ch_olK8|dH>Lb@+|U18oq#!qs2 z?YUpMo5}e}AydN0s6FevOI`25Ww4y~ty@P*qt~&jao9VLHsy1rcB;e3_+f)X%v8T@ zyqBZ)E;0~WAJ_E578J7I ztUFc?n+rz6k8lPkO<#*;D#N??fuptAl8A5?TAO?$HFX%jX{QZpY4g9u;+M`&kb!aj{Z->AT2s2mVqiL`Jez zHPE|Ovqde^RxZatTnQ3Ab$pfTo|A^Ml#SfkQw^MZr(cga((d`#23zpKLwLTvFnkDm zoCA;t_ocO{dp{(L+BAf%RKu$rI|=rWT04}yQ!Kh%B}9AV_4Yy8+E1dAmeViSC2O{X zs0!|I@juEjAh-(5uL!1jhwcxVoVg>l!a!X}h`z6k3LdR(bCtk4tfWwc(0>S7)NfLv z0&`cWsITM!+u`DxeB;~9yy-e|l~&?{5bYJrgddQ-yrH9C1V)cZs5w<<{g#V{zl}5O z>&9?sL+aATKp8)EuK^1*v!#?U-R|(9D=0;U-4IAhS!vJ^@q!EcOOQofYKV}5D{C}U zhNw6;SY0YkhY!+nfr1MRqb0bSnFOO?K`oXOVA zp*n9YRabg9m#>n|Ict)=mV%(mlj*^E;R>Ag!w-`Tq=Dp_JqsG{D0HCsP{g#?!^;L&^7k(q}e6`0o zIZl352IbsAv&~YMmC96DHr3A&57$T&Tg!fhoOp%wkS_fX%i57YwZjv$_y(no$WZy;GVBFP85Fnp;6vzs4usGmWSDqCNi>3uy-y#U zmvx+!qbX)O$<9I6T&OU>%ApN=qIpI4S()97iz%~jmkd#x5&E*wm{tk4-w@;m(9jVa zaq6F390@56(8QtRZz;z~?P5piz-&EhTM&f$0D0RZs*~4nbu>y`n#SyEr$6kN?=Bc{m9wwKxz;6Y!H#A`{=iBZGN7G>hKQS9 zHl7CDK*xF=h&tqW!y~;QPICW%wj`br@*X9dat9?fqG!g&V(QIPy2=qu=b#O+9l%0 z6bckTtBqBG*s0Wbqk|BViY1e5g?Hs<^(o*oMsH@t?J;^=x9uEKp z2XLrLf-9@4++sxC*B`t8oP97oEr0!rxVZSBeUa0rF9GBMGvtiqOt6NiQ|yZ4NOo`rd^l$9ja@ zc0c4*=olkarO#1+1Fh6fQx$(xJ+3`uJJ&uj321;Q5C%G#c6O!fiJ8FnDS&V!^EHCh zFMq{k{Y=BsfYD2&?d(zqpU9;dFuxLy$b`ATc|oBVyN>zj_mv8UNf%F2_g?`{T2`3s zUK4dgnUtLi8WiX>++yq;mY~&!bdr&FU|>YG*bsK}g~4DH&r zY$Z?1sB>ng2=k_1_J-(6w1%lc9K9oM<0!K5wJ@`n?MK{><9JMeN98nDX>bkqc9(5a zd1;ulDB69YH9Kkfh=D;^Xz$U=q}kf}Oj~PZa!Nbj|81Ib*lq)Wu*$Df{#V;nz?z5z zt7TH4Lk1I#RXv+j*w>lhnw~xZ*oD}QDdse=V8V(6!H(spdyr0L%F6Uoh z(!IAyTLMzw?0xbB66@8vhq;?W!3GbdemeUr^-yc=lJv%Lu|q?reXCY4M`eBYMKK$_ z_NTUvUt>e1_a@)jk7eyn5O8=l9R3bByEW6$yyg)G3EwNM3J|T*$HQMY=>3d`&1rA# zu~*Z`z8SP_9@eXgwQ*dJ29(Ahuq}d@EDeYm$Hxbx>>SWJN?p8Pis`S`CemBm_o&hE z9YHXsxrF6hcUm>YK#+3bGzk>l&}XTo873E}ch{rk3fT2~I|@F4ZgWZJNmnfpa^ zUA4lNXtU;99W>E_A!-3`WedBwu!XQ%P~nKKm76mtQ7p9RLD*mCWQCWuvvbGBk!3c z$uZnGqJ zxss)VRmuG9q%Lew7izM>Owi!HeFXOpg^zrcWSMZaP>@bA{pL)mBHYQ^wDP;6181m2 zAkvz`Yrn)ClfA8?jiCZS4zCkvE%XLddnC2FT(XR_0w+ME0u#O zKtJOnUrT%MN`|GNEizKTFD^A{)J;gi%e1K;US(kMDP zq$3h!q0LTE#Z=Z)Zi`x!eojC`f`36^G!?q3QeWC!^n;zW*Y%_#*&F~B9e#{xa5l_^ zMd*&ncd|a!>dxk-%(cp}n8Wu-?oWTa$Dy65kfZ-XOO-KX?k#1lMgDj(@?cE(sC{p< zG^kYxtRor$OHcAL1Z-AH{*K@LaNiT$*m=i%Ne*`CsKgUMIhHnteU>IELtYKwqrLZK z7JWWF2g$rQ1tRF9%}iIKBIyP+&dPEUbh+`mWs#sv_=6>!yVH0>uQI00FlReduSTT6 zLn(FujChdfwMP5yIMhHeD9rrFBgKplxSw#LJy(fR9RNBtcsFP{a+WW&c?de*F5hYW zHDaXd$u(5R)Z;L*tzig6&3M(xSM1Cl;wcq97o7oDO+{T!e$4BzSx@~C=Ga;m)DC3S z`%;i0DPGxzGn!SB)N$J%so$-LO1VW{52<(u`{=NoKbjT46y;s^J~WT=lbY0lu9RVS zCDT?RtsmU+RrxVL)826K)Rhnbc}94V`%VL1@N!QQ4e`|C*?rrC)cc#>3{n8U8nF)C zLkxrtR>z$yw?;1?jEyvkQoNKw0OG-oKK~nwEXx5gPyL~a<4tvy8!;hyHLs}oMk=fZ z?gfloNYAvTh-U?KL$T&^I&l~M)4%|mOtvEEO@xe{_+y@`emZ;Ru`D^D!6tFb&Y>EO ze*m;!G{R3bf2MWxujZ4V_|OeONn%{|{yad6q)aC4?@2`h@ffToMwOT?xP29vf>!9i zLJXX=fX-(@7jn2XaX^XfC8$FC@ZObwV&Fy;5TmHHJ&OMWlL0b*0Ry2u9QuFbZxKLh zq5b^&C%rPiTYqFvrZj29lMx5{fG>C_&eHuU=>Tg)0|P3fh>^d$yajmk&rmV^%Nrv= zXpA!#6A^2?=Q!cbH`9Q~+t6!(H_u=1O#X=`ZlEVVvfz}|+zcc>3 zSNjAmRFFuh5)Xvrv@BHMKh4rIOaO&qs?kKANKR`2OkKJ}WC`dI0|*SG$|P?0lH|Wy zx_M5b=~M1W#G@b~4g7a&x~~|pnoANV@f=7<(@xl<`%CQqV(-5@zx9Fb22QVwQ2!G% zp8`>k{kwzR1z2rKMB_hwwX(n|3f%rn?EhvjQ2ot6DgZ=hB_sg%XTLw^{wvKJl>csY zUjh|m{8!B?3>u#KPdS8a53?}&=vHeO)5Y_<%%E_oU90fI`FsokgZ~0VBVTg0vOUYD zzkhl?jgBJs3t;vTSy@@x9#W;H&JWKhx@+0ZGbn7lZ5bgpJ0|+#=eL63e#2};y?@KI zi@~kDVaVAWr!(#-Lr*v#7pV0~!Z!-V$$w zQd`#;wPaIp@7e;;0_1I+ujQdSQ1TF!hnBtemuZU62EpnN#C(__XrSqv-s#Ofu){%l zez6}rM7w@CmJK>+_)&~4j_u_QsJHzk-p=#hZ{V^yQaPG`nq~kqk+1OBLXNY`mPJ(@ zcwbP&`_Q!%x1}LbeKaeGJq-^z7ZmNW-t>BUyxO_!Iobv0K$CbeHweUr8?Sgi?3Fai z`?@d1ryx`)HRAf7VJFV7Qbz0__NUH&P8pyh)tj-Eid+=f7$_5V$)L_D;W6fca;2O0kpO znE!#?a@P)y=#kn zFb_~R(2x(r`(1F?H-;K*2X}fGKbA!0x@jDhf#p|y0V#;Gsf`C~*nq*@vE}0zA-ikQ z_F}zZ_Vydz4w}dncy16Xc+RAwVi~JwPrK=11jF9k`MB9`kI*7`BA4Ovt@?$a7{jXw zahtRNIHm#%GIyP$eAEimWXh+#_4;WoY>Ks{Rkeom_Hyl~9w3wGcN zeQs*XN68&q);6>z`m3Ry_s3eHnq6090s^mf#Is=sfo2|Fqe8EE3p{;2>(pmkBUF?1 z5Yj4tD)V;JFToq zZB5>U7H(-LV2Ib?8>-PDP~E2&&M{RHrTOSaPT>26pRXR#kS4l0cBd64@YxlV!Kv0X zNgr^J-Kh8&y}RTp+k*?|+NM1Z1gV(xBca#7Jl5{P;$ zoSF|dGhjk%B2%(3f3RrZW}KL*kTXzU#R}cG%?whh#>2R52CEXO5?1b_=Y2-Er5I=U zj=kr%dcICtT@we&i&W^kql&$AhTVi;WjP?78rn=*4n(;2IVpp(_6#l^8gSml-~nRt zs!@zW9|49X6;Sn$=-y=_bv>2+YM|7OIgw0lSAQ5N0Uf06<`ic7nedD?`V40sC&=m8 zM6epN$dYhX*kaq{YMLMj*hQOK^^?NPrCJK$hjvb0(DmR^i=JC@Rvyx^q>{X*Ht83^ z9gel7E?G2hYeKt&y7t4hXnVT`m=pj zpvi}1v^5rdifnpTbo%c`lLP3LBp?tDAW4t;TUS{f;kll6js)47p5$c(?`O83= zAbjpRdo@Zk0s#=`M2_yOZ%?sZt7ij}I$6<&IXIzuy@i#{o-j-+OmWtco=oRMgAhWU=bj+fkIeDpf# z5aFYkVRlM~nv#u+rP``F1N`kLhnlLv!=W8@a5NIko1_%Nn#&U7#xCSq+d(!*%MI|t zL#xP>Tio?db1WHChj%9D)9??$2M!8*M zMv7w(t>1J$PvpU{a{%}+a1PZWN7B6d2%c~Hec^zs*H{qy4nD)rc40nkxy~MAvNjW4 za&tyK%zBd$xvpt5e4T&LqSdIQwYs!Vjy0MYTW!CHsn@@%xia~-Mo7z$HZf2=69I-? zg=jC1HUiM&B$^~4ZMlC^nt2z96@Jk?`8~a8^Wx=Xnbt{#r?jue{CUQ=lLidu;gIMQ z^8jTBtS+~Fu;dhQn67$WpfCYDz?O%`ug#8e?XXpf>etK- z83zM$5sv)|oYwtV)~V(uk%qai7d%betsziF1dviQh85U~>5c`f4>9`~StoNL_3=mU z>yF0dxRHgVBdN->ML{Q5K9^im`rODCkXNZyT00I?_;>f?x3IihC8 z+YOo=;LVTKgZHlDCW$pTQHW+cN9-)Jw}w^{$$2hhtQxiuMP(CHr)WwH;(kT}5pe2@ zTm&0gNu!}+RbMXkP4zL|2_4~99$Dw`rH;;>9UyC4mc~kq;+9oT;LefS+AUC1<<(K# z8)_YOQs4zgkjx5iRJHwJNCMiB;DlwTwKwnG0t2mlBZpqHIrCpd&Ja_xJFGy|oZ^!` zOmt)~PU3Wyx7ufj_@Uz@z3V~Sf1jul2f&m;4&x<%V%9GPfEt+pLfqvW zFEGWyLz98XitR%{!d;B2ZbaK=1&BOPP)v0txDn{R`_jqZz-Z#Rn0eB7S(KNVa+Yib zTg5-_J`*~fmFRE*2(KQM2&tYVT7hOA3bgKU)%GQ#>>bDo-hf=zzkgc))*kTrOSlB1 ztE+2G=0I9y6tmd1%G9wdhK7c{W&Z@T5)$q|K0R9~WJD%pD@%9ET)?A~(cVqt%~<=6MgxQ_yz4t71e+InEL*mY8E z;`_PA4xsR})LxN!woO}(b8)!)uJ}p+nX}X0lpA4X%ATf)md^+j$7j6Meo-4s?Ymsu zAT{oawQpZ45J~gXrWh)fqVfHBnF=f)TmOA(WCXOwSZjHEy53EL}4;vc({5Dc=w zr_>N)epP^h)-$1csj-7xYjKrM7N{VbE?+oE=c(*pZ97SK4pJ@j!Odc1b1Fg38tNau z`(UduyobL6d?b=25w1hBE42xg$Q5~{o$ktO>4Q%RKhk-kmhgsC2Se*e$bJ0z#l&%* z-L=C8U1m>{ zh{1`BG%5QnsI}^)PY{ooSr$?B%0fGi!_A%{%6xOV%m?0z+ZWpN_gZr<8L2re9f5xu z&aSjo<(z<~35|GZ92+QZXsE5BcYOA^Y7Bb*6Y%JU(m+o$x_T7s#nK`kPQO4&mqor66V>RnW5_=ON-wLaYyF9vH}gbE&1bRzzwBxdI~E1B1} z-tFY>#a#~x;?T_qVcI*=xRNVm<9HLuU;)pCB*odwqf=CJmmzyAZTpY~L}LH9tpcWy z+(VP&N19(+92QiJTT88s%~+kWU@W83WcK@BrTNP*kQROToSBS`YA#eZ%FL0mVL*5}3T>`io&)7FSj z6Z?9s2GE#Qk=dk*^8#wVMb*c$+8%4B-fM^W@Z;og|LjyBF@<|k^Q@jz-fM}>$X4-5 zFlG(W;CQ@Od^~m>l+r-#1t{*OWsncQetGSn$gL}U(c{DI!wB-jwnMzyQJI=wf3}+C z+FAOb3_m+@W{(w?EobB|@NB_r{%-0!dHcmvM<&OWLdZoW(*${eeN4V_E(U+BIN_<9 zcX`T9R6ecii5WZd+>M2XIbO%=hfVcIyI8m9!E>Ok8|DygYjG3hrk&w81gvR#&B)ie ztPe9&rp}ej0^p7i(PR3(VKbgcE*izy8vf>PM`slTVc;Qj&I`Ak6I2p3k!?4nbiA9? zg!uzN@Vi=2joi=#GN?Uk^nzupHq3n+*IE?PSN3ISy13b3s#TT~d71xn-`*`+G9CJ@ zQp?N<=XG(|gr(c^OLO3XB_@=sH9u!MrnWStAQ_!y3R5hTH4iJ z2-sTaF=f#W3Ps|P1nd^?YlAr6VqC}w3p2Q}ToN34g;C`83}VWA&#%X4x9l#s6RGJP z2t2_0P#LN%xp_oRs9;XH2!|6EqzU`BcDdB(75!zP(J<6he8{{NC;9%~v9sYtC5ZOY zSP4|oM%-A{y>#Y=t52?)VD+YrUtp3#HqL7HQ7DMIRxQRo6UBg(4wb8IqMV6q(eBbJ z(nWO~mE3S0U}aR38yRD^fJyZPxr|MXY(0$pk-u&rPNUTW=^2!=JiLpUKQWF#3H&xWd1uBQ3Ct}fT^PQ-Qo4~5|tw#qE<&XlB}+F5@s99 z4Dl}@deW+cdt;OZ8$Z~{Y~Q)M1XY4 zIQvd%1kYcCPE=?SvWtbylik+1M=xj?U>cM&{# zVpA9eVoMuKcALDG;<=PNN)QYPW(qMu!Q{wyZbCC5K?4{$7POtTcLNME0Etj{?LAy& zc6W3Cjas?&S)jbPC_A=tC+02i1MHOCuBOqv?v$D4EXg*0AN%6--m$)5gN{B=3JwO| z5`GYBt;~#T`H*DlIT=klMJe1M*gG5tyjL_g!Nonl+50(M;-F3Wd+io>HObgeG@^=~ zo_A1KHYajel$b{*A;rKRM~b514XD`48AZ#)I!bKZ4%L*9DB8{>SYI_KJyCuE%LLSx zYrc{V-lODh5v}-!INo3QGMK+Ok>DeqGJreF(r)~uY6f^y>54T3UZ|~r83==ft>U85 ztOYsF33kqgCM?d~havbtva*Zssikt#=G3SV%#g}2)$1OlBkYSl+)0#gIGqW*Y3wjQ zTj^qrC~bD-p?y=)6Moke6Rp%TG*+_=Tg=A%Ti}(Es*ZwN*9>;}G>~W@Y%W z+>#H!Yn*IObgEN?#qoizX>^gAcr4J@0W+U8K?v2rSc)~<`w|b;E%0dsK=m}H#fc&4 zjc2^Rioxo~p+a|Z$45us)id?*vDfL(^-wY9Hp>^-MODo#qJ}Wus_eTT+RB-0Nw$D0 z71iuvA8K?slWJ|i&~N2c^Brpz=wM0IE}zjy3O?hS=sG@gppR{<($O2c!q|Sq`a@m| z%pH?tNb?~#oHoWzw6+Z2Hs8|F@U*~q^19*B zg&UbwGntehY#W>mOEuvR{kCHBjrvF+Q5z=TgPjuJc3-kj5kMNG&K(vW1==r%Ofci( zqny2u^G4$7VW`c@OjM*%G*BdCk{9sLUC?ykxtMCC%854$E-jymNdX`4=gySP^A_(u zqCp_Crk>hPJ&ym8;&nUzOrW}8G$#?b0B_Oh$to_jx|G_RUvmvdcU`TGGx6j)>CacB zvV}z39K=!S+H^Z=v2z$yCO`S75n*-eJjq>NQpAG;un->oN|HcqDKzx$e zxCCG+*sqa>YL1HJCp!TOTi1om+<=E(>vQ}_(OTZ(>a$6`Y`)(3T|Yy|dcl>6+Nw?) z@nT!x{lbL5MHQLLm4FL3NqkL!YQau$Tn7=w=-&j8(5>08xvp}+yXK*~I8z@{BaD|v z-h{qrt(;fQMhknX?{lN*hH76Z>)QU@gYxRS`l7%$^i_Ao*RDXg9sQF`v zAg=^^0(jcqy*Nt*Jpa4I2cRwMgUk6uvgpWwfe4Y)zaO}s06jWMV4$}abms3DcYy%` z#Ca?+0HC8f8Spq`NF0bisa~~LUwTcPqE877u=!>`B3?P&lj@btuLu(&l>8r zCf^te^p!uAiN9d3CZ&q=e?mZmfkrNSPyzj3XlUrOo>Ih9&h8{ps_Wh>y+ZmT*=J5K zg&?M!9nV*UW(VuwhTTDNyuJ9?*a8m+MsZgj#u4OWA2pGEbd(uB7gthI;iB?79J#Ww z-jvJns=Vy^!b6b_Un-0ASZ%nov-3@c0M8cwSLeYtV9(z@J-=&+VnF+X&3Bv*)dTt$ z-nnwLb43^96XYIGF%4qcemqAY5R*wfoNA8AVSGaPN-jNuK5i+v{c1D)qi@U;67)`= zN3Y@sW7O6f){Ym|M_Pm@8i_ixw%d zE9IC=l)`n$dGL6h($@VZTkz-wqi%vW&%9g?T`T($w@^Ii?Q?`?Wro+FLDzzNU^I%5 z8=jgV8Mk^^DQ=l&*pHZ?n345Dfd+TEmscfZb5`{=sffxDaw3h!V%+Dn`&7x)ze%72 z*10xtg`3`{cX(ic-nYa$IdjvTLLlK+`tmZmDSH<{T)er{9TiNsRAf29SgGSEX2Ozd z-EieEp`eeNlqxL*$o5Gq#c)@3p!&qK3>u|0d}pufvx)E3P+1Zn(MZCIHF-+ z2#)>kHD$k=#VDP)rf6S!wB1@^(zTXmxD7W4;v!x~9Gz+f*gPMX8Mbem9nQyx+}^tc8wU?jdW33wVzd=AJJuicQB8UIY)C?L zVC;sWhZ9y(yOl=qpf>KSj4>n@4VcAE$ z&UOSiB&v%{TWl4tZ*XYiVd$8+k;0H)3cB9YNx-!R5Df7#l*v0EgKuRjP}rIe55L|~ zR0h%d%15bSeOdt26TWUC5hsMP<9?gr4wOT754QIhkUp#KUxCLgpM&`Y_qcA|YnDCK zo{D3GF4m{*`V7p9a`M2H3qP)TYkRK7q->ZcJ-G?}_y31#{D0be&#^o0rWv}A7Xm#AHS<4DKFUj%lBdxi&1Sa1s76-@Cxv8o2P!+m@RPkP}Rto*Tku%s8rT8=2~ttBxlY zX-L>Las_`~u`eBqysUm0?G19-AHo0|0+eO3t}X^q^;8Bi4NPLD)8?d0Y*YNpX*b`M zI?IbT(%+(6FXo}v2qX^vcCSjEy95>>llB4swIMBk3S9b`ZOJ$Ilz;b6z>mSPV&h>A z(7)yhUXEpJF5-Rb zo-BD_nS^%T(%4bhpy8mbptISZ7gK6@<0T#8F{_(+j%mIbA$2;F8YLolLD4M7X-Qw_ zs@BYQE3GOBM@_5GTOW#9H=wFlEnBD*SFq|2Q`?IT2@cnzcg|@@eBto@dLVzW40C#7 zkwE+A!!)^8eMZu(%e)H5J99O3N?igfh%A;2mR+?AI492WQ>LAl`{f728Ol+Os}bmu zHAOd0&MZu{n-Rkx_v_5P*$tMs-7VoewHs(K+XEWfV?x$)^uUlYvH~a9AajR1oQDae z@zV}u;q(X@y;dueXZI1CV49@>Wixuqr88_ssxH&HuZ7)TdsVqU|E^u)M(EqOj^)It zG%A8fQY8SEK{!_b)XPZ?#bHA0rJ9xiWb<%ntoYd~7`d6g2hV^tYVxu~0|yOL7gg1B zW!%0S6b1!Ekt^F&M;w_Le>Bcl%Cc^LEiCKx+-b6ptK_WS>zMnh_*`{ScSo;Fg(E%8 zLR(YL_JP5U^~jq`Tx13jn;G$17uX7Nb)FVrr#aaoy6%&uJ`!$h(B=>VZi=_C$dy(o zb!O}a#eHp$`rY?T5&06V(;y1q#;Ex8;M|JG-`-&3I6;n5+57cx2eaLb1JpWQ6wJPd zy8A3GU(*sg{Q_#Xz`uD=tKz7{AM|8$|MSH$@>ocg%(}=uQJ#UaS z??QP0s(eNH$1L|R5zdu9ci#kD%EV}F<=Q0d? zbxjm}wpFA0drwb~Kv~f)o*t!1RN!_-@#|otnCj{QG@(lYEpLNSb%sxh&&f4l-l(`Cfj-c1kO*zB&c0P-4s`+_h7E9i&CGb+-$6sr&ym0Ncz*y zZ=DGzwJ+wGN%FFZNZ(yJT^!F_lGoKEEu6TLlo%J7VOc0p?1Tleg5-0rymWV5Zu=PZ ztPNL_tF-JqG4zp8hF4%V^3s?h;_Vvqs@hW%UkKDCcFnc7ixHY$G26)QDr$4oYZwK` z0m&+HI7v|ot9>Ms!BNWtw~mpb|7d>&UxCDa?4yI1&Nx#+g9SH5u5{X`` zb*^5fI9@JS09Y1tkVDRrEK+N?-m+SVpDal080}MoD17}> zY@ISVJg^OLW;eZo)$w6V33S*JB{4&UgD0n;!xpMrt+*o$zWboJ;m))#asA;t10Iz?9TFt^2UAThX8mb&tK!%g0P07_i~4n zEsml4zoMc*(9{3Nn674fk)v#aRl6lbdzJH5He)MC#~U_7Wh5$Izogy%k$FHl+uhJ0 z`)R6A>|wz9P+C!n3-c1h5b*Y+`k=B$xa1?~HM2EJnB?(i&@ zX$d6OzOj8772T@-TcNsdDio>Fk^x2dHPcd^!hx9Az|In$ir@Xw^l|mO$}Q*FuHA1? zy26gD$#dz!Wk%DV;H(BJGXN)FUA2;C=WujdeNvK9oB?C0z6Ii~h8lQ~1^Q~Q)$BE( zG=Vx-uO-nhqaLms?{$)#d$+}OY=Ny9KxceAyn1(~9U-#YJVS4Ye{X6kq&qK91QgaG zZ(8no0TVDDeQ+5kb7R05G~Y$3t6h{>dD_?Ce>oTyN$OaB3H2dZv}U30-4E73?Eqj8 z)Jr}%4-x|Yvf)KYKc108GICvTvFAwj3V{iDlgyr#*tOXd+JEnJ#~gG)_KthO(|%J` z&g=QA6)&mT%68PrNV4wr^DO#y{UidCVtY&D_=GWA6)YT3*8;<*ck_Kl!yd>DIcq5= zO-J$!g4!3S+7hyb1@1p4si?Tr=a2x_)VF#?F?V)*=;S3;WWJ;!xK1>hwm<-psHt zN_zfpqp3QHc(V+;V5ZDx!&idV_?G8mjD^ilUg3a|wN{g&HrW>Wt%G!i^}(L0!Kl-F zdqQ5hn|}LLb*hy<8#+~b2?YyY%5xZac7o4%t`F;ODjEGd8gulA$nEs+w@(?!<#`L& zH1tw@TzXZw>|L^jG==NYVC`E0#uA`4>7g6Wqonb4xn18zJ}5SJ#Yb$?kEy-SmNBSg zE98#1yj;t$6epCJAUlE@2Bm_FFFh^=fGJ0yd)O`aGJbEp|L8vk~Z@-6R*_PG-G>H zbf~{|*~77gC(Q=4dBIN$>kO_fMXDx_tl2GCfD?tyzaYME>U}~hip6=WhFi`^&4A=H zTQ=s;GhhQm%2az@%`Cg7us@#UF=e>9>;ocoX5WUga&EZCc)1((Wi9ZdzS;V(mNt)~ zNA?6Bf(&UT8!LU+YjraBJyCb|G1$Q6RpI;`UWN7E&4Cc2rHf*d*gtdYIh95r1(#E0 zT39FNqY}vWHY|kO$#If4m(rL$LC@9CH_K#~TxJ`w-AA{VMT#Vntf)(CBCBtvEL+oE6zl&U^P5XJK5ye4Ky#DN^A=D`Og}@TD{8gv0EiKidGGS>+D_*j>NDP6WJD0r&Rt$3`vl%}W! zlYTX1Ye!1qN6S_LIFBJ{Vu{0+&{T~0Y|NO%yQVwkD&8@dXb@s3jeD;&bxk^BX7ijP zPABQ{K+*6ZI11##D5wjT2%~cJP*Z)oS~`5QH%LKvq19`7_Nv?SJqo`giz@tobn74k z*2SDTgo1ejx>LeP(N%lFcT#vO|Gp7XZ3|m)&4dMNd{E`VW1}EQ1tDBvYC6xdgP#@{ zDlkEb42D?FpiI4oEg(BN)qokChe4_HM#0xwWF}L=(RG-bNE>*l@q7&gV;NqJ2-VLb z*@(TW$Hr;3=}*qo_4m6a3C`zdNg4wx*u{Y0Cl=@X{3upZg|=n)V4Dx&`I>t?GEzVv zYpwMHa2@+vpd&QTQOXjbf%c1#E3r> z`^4KP-72X5shxIwK@X%~a8RnNAW03p+ERExNo0wMsR+v zn9&6Ctw@}#RK1?N&vuQXDQK`_pcq*Xf&2FwarPa4u*ep(NHP@i-Zj!Zr`)NAt()m= zorRz{o&H|kark?b+=I7F5x-XKJUYk!2-sP73e8xGfsnKD_&%D&T^-&UBd!h1?aUjP zN%6QhgVnjpqrZAURX+^e11jw2N@OQm$(Cxn9&sCF|VB>-@<7s*L+=?A@CtR#UD7V+UcMVkCMCZ-8 z)Pih~Kd%ul5)a^V+}drH^BJMtD%=)`{Dnwqc40Ob@5NTfY6%vToxv);VlS-|*&w-N zqE8E{u-+YrQbq@FEweB571-=#+r_MoWq|&cw#CCHuwNM#cx zCthaF-e=tvdM8eAw7Tr4-R~lDeMV<@&7gJ5%Oq9^FJ;wZ!3}~?cYXQrLccg^*5E*+ zra`ClQ7fFHg5I8t(c0fAXjvR9g`F z>lVH%NqZAr%-JJjV?h0j*6oUAmb`VJ%t1JdbuiQSyd07mw)Q#>lqoB4X$v~XQFq=6pCYS(BlG!U93dD(~!8KfVgRczW1h-V^ zL1j^hUwTj?kF^B;30#(nB+LKGTi%?fnWKn@E2L#Sfs2{4F)eha1hpPQKXYo zA>#AXgHC?}3I3N-aDJeZur447Sz|Z1G~(joeuMb_r%RrT3#q(No-MHH$y5?Vx)rfz znOdjY^~2z1X3RriUulAUfI^$j3rO|r$zE{*oz?^iCjzH=A2Q=OWd=Ps!~4jF*xusM z_pS}MoR1fmVGn+uMgBNT^m^TMWf^w==OQ2XYp10XBHD>jvbU!B2>w^+9ET?%Oy;s6 zuQ6%ZkPW06G=hU8fTuy1Dy*vRv-|mAf3z0 zW-m3?@#=HAQosHMw;rC%PP!uZpsqfxHtwX0%{|>8h}M0bXWv&UVhiEoAc|~CS)vU4 z$jKT-IiwK3yR79Yt{bt04l=nM7;B(Fga8R0H);lI&}g)Uk4H_P{aXyXB3l(jq!>i(9LVTN~s?4%1Dwv@q>K_)aRkkCQ2K zQenksXH~J$?8}#4lEB0j(^!k?ckcXBA$CJ$1&WfI23Ba7$bl!FXezr*IY;X5QVzTb zmu%^FPvx4nXl)IF@uo0YxSTR(ay_IW0f3Z2uuCgkRv*MK6D(|B3=M3nl4$LWhA9ZE4($kR#(`D00Ml+rw zrF##lKtQbHwv6p?H2tYousu+$4kE-RxSc1rSsJTU$1A$1{AHy2<5d$ia}xDD1_P?*gBb7=7teJt`6|ejKQ_8>M z1K-}yDj-Pfe_-{CU1o;GQvFA>$}D@zsyfQ7W}` z%yLb$^NOrT=Jpk3M1Y!xE2S_>0fdp;YXner6+=DcT=sDv$S=@sL=)rm8+B3KZtk5fkd0!57H|YNv zP(Mn5?`iCDnSp=#z_4J6&W3Ue;FQP5Gth=p+vIe-^{Rjk$N71f!tqda0Xybq-M4Xv zMUtA}fwI5)e{S!f0uRog#r5jn`GJz)O!(3%TqHGaSCQs8eghc0|G0yO5OVFEpi9SX ziYHDop{P#%XMX-~`s4rk^v78bGH{WJmD|=t^cO|ms!LE=Q%kBH%mSg%h@07`nY6e% zaJtGmOc?~hJieP?ivD>Ii4p{-Y7<5Ot2)Ukv^U)GAL)_P^S_!dCY%R8AgGAQXPd#J z@aB<`s--g5kEMfxPEY^`sI#PG?6rc8rm5pb50PRPhX*NIrKYx)KdG4$CK@{Cj`)mX zfA9LOLV?wUrGoP_m{?KA$?v<{^gRLH)^MdU*Y)X;3ONuskGa@$ygSk10lfqOztgnZ zQ6inSU!S*yC3nHEC5e#t#{ zme?6=f7wXqX*1Fmik%K^l}Xze-l%@EBQ)x@YGZ9|lGNqQmnP#iqu=e>)&-8HdWRxp zG75&|VuMCm&3DQ#ROF!7Y-S2`4UJk}Pm+5A;Jw1P0D)0RW%4=Wg;S#162)kMkNE5N zi+2Om1pa8#kXTKhESZSEC9~J)hPTOPf6`9>-*@d^k9BWAp|`&q zCDz97G(0t-x7=T_^V#761q3z1I9a5cf*NYRDG6ck!uO5FeU0 z;Tok}qv!9p7jC12mS4dH#=pHk&UQ^xdC zvCnM@(DzVUz11(`IQR_&ThZPsRj&EFzV+60Ve1~c&vkydaq>@muIBp&89 zTgmNO2G>sUcrAq9N0x&-sV2YM$T?R;)Ub}*N$5;eT)Imet{=Lc`Z&m)W|yiM(_mA$ z)wkBgB7-~X zGv1SpuPMW=^6!nNcOiz1_cQk<7AZ&Q_q_isr3>#kHforC3ki$CW-dR>57VIk5InTG zvcPG*G&iufWl@M$&C_*H+%oj@uH>Zgsm6%8=JI;o@X5tvLX{`W|EHGhDX27rh%mYD zojt_H#!wX(TSSu6_UU{RzUEQmA1f~;*@}%oknZj^Z>FT!Ck7R}b#j!%R@p{<^%Uny z{F@M>`uUVoyB|#UL$KEq10MXvOKc}6%Wm1=W@Y+@XAY_enljB8KB{+Y7jtc``fO_- z{(|(k6Nqtrg+|N`J~o%wb`_^i^xmH7uK^+c=$9LN-5ZNpU+mtk5gjU}L2ZNZ?qcO!Pg+J&5UuOnBcM=6=&#(7a0<)Br=mLW@mgW7z zV`3iFa~T;H_s{BrD=^S}StQC`#wFTqVeLI^rH}mw&GC5YNw^gV{f4A&l-3rOHiist zgL_Z9{xtKnfpdT-#D z&=1DqJj2^rR_e@n^?kfFQfzh0;&I?Ll0=7}RNg318nJLHedK(G3)(1xz5Q*nc11>U z*iFp)4Fk3D7+O*N9#9oUiCPM&p+1}LJ)3?8ST*XRJ?Y>A7rPXa5CBlUmuJxJS*oVq z3UJ=e!h+W!hFuSGDzQ9*-e1LsZ6kmQ@sqDiK2!#)2Ic7v$X$(~?5>2D^ghZ_&6L-( zECSVSmMHnplz*O+s=5=G{L6{|4T5+K!+NBvWfb$4@BW9+*(@0ezy zJ;-_L{mAM6#6zmr{VPCm_UDw7a1N6vcOS5Tng2vCskQcmlpwO1EZoD|KzDGt%LVa8 zhog|WBvOf)^Mg3a4= zYW*-VlU6SApZegw_Xyxb72Sg}A$OipViZX3M;Qde1e~r$U>XN{#$$7Wk(^u16vFpO zQ5s=tEIZaquQJbif&&K$pPwMwLA7_GFx4V3KAMbheI%~DA@>=}ce6Uj`SR!`g;REa1PggfD}el4f(6w3JoY>8ny|=B+M8(&IBJIETdy$yor$ewi0@88@=*>r|k$ z)Yfg9f=U`Vh<2D9-v?zFrgH*7Y_%!j+b)Wrj^{ryV_Q>67j^TE6MUSZGy`6*--Jz| zI?QfS5_Vp|u2B)*893~=3o5{-NgG?Xan#VNuBamRP4@Qwex}F%66l^RJ=H)O9_>&M z0_48Nu#!-gORfu!+jdmjD2JrS#;XacYCx`3(*h8RRdJ>`KX4lb&LNCiIP4`C8A8xbY1aZc=DKt>wb*DNx2T-lQo_?%Gg91FJl zYJm%ho`+~6&&$YY#Gty3=lx#)Cg%c>)^1bHRl>W$%6H$ePoBewLGLqHWRPyXkQiI( z8=Yzwn=N!wed+bdx0uONX}7&SD5zXBP9}9hF~_ICWRUkTkh*w|lQ2So7i~oc5yd{s`dC$08Mte~-U-qy&`DMXf zm65I69F%3_jR8UM%+YNDRvtHr`clr!-z-T{BQdE{bGLr*KmHss@@%TT#Eg^enj($y z`3=+ffroQ8Oly7KZt8q4+>MKb-b!CbKBi*?N^-|*y4J0i#u8B&R4bMVGlr~UvrZ6U zRm2Q#?;1?njDny!!(zilYL4|g1Fc3=dtU3V0qNE6x{TReS{?vPvVgnNRCoUJlAXpL z^?DPg#49{^y>|%4Y(h++eb@i`u|4uD+gka)s?e7GJd|L#GSQ;F32qg{-?nCC4%3X? z6VdJF^z&d;)92ghn1*p7W>TZ;0(q;cN|Y!JC3btgZ&AA!%j;^`l^J|!8!7{k%n?G@ z+gaWm>ys1{nMgMpcbVKp3>K7a(0|Hb$itU(I=+A3q6MLaYx9i71FO zE}t}{ZyJ+f_P<^ZECP2iU?sM{_dW_#_u4~n3WfBfpYG-{$-m-rR2F7cMCkCEiq#sd zz1S~ilm=X3YpCFoi7;=YYFWefFN7I3YR)7mlrO4MWxL?J;_WJvod@Ia*IQhT%z_~T zue95QT!wZEelh>_s^R|95u>t&j8{vk>NTUnXZQhmv*>;{u>;P^n`zp7 z#bYn!Ga@~Bet_aT$&8>^FKgLx*-o_s(7`6TLA-%Fql+QM*h<(Fc5a$LC6I|zFP)@i z`#~QZU7x6~HndIEP+`xs236*Z&@uJ%9Lw;!d{C@potK5vokUtDjp`KFNW{u*?q>PR zf(V0n+H`)22rm#-`qmq|DuYWwZI(TFrf(C(m5A4_clP%cw7gQQm zz=A)t*8Kh1F`}bO)l@Tm-&jmH5E71)N>HWNl(A1eLd{i|2v{a=W;KQMcEp4bsDMgW zLWWSGu53^X!%6_FkdG6*=|m`Gp@XK!N{0Q;Op3<5uwF}%dqZ9{( zzZm;!9k&|J%R#lDl1c8|5hvx>V0QXI(e15nLMm#y{=`XvXFvw7G;vNrhIc0Fv)+Zo zE@DvXA$7iKxn#k^TiitbdxPFrrA!}|8hO#ukxT6$a`Y{%gq^v7o25_y@WgC%6~kn< zAlTLsqvO-hots#5^{*;RJN+U?RuTICzmC8_;YtpvnYxi`e`PdTBok`aplUa6)zl!& zsl`~~`-_k1e3w_i#uYxV|tAu!y}dQ1w0eod5)&6HslkSj(ubLmm*cC-;o zGC|=&yy8wPD5Ecp0kWz5w4%1?yG&Bb`@bbGg3xCVpi0(r*g=BPfu67RfKr-EMr>0y zgz-`r9{o6StvZ4E%uSwdPHO9Dzz#h^Uz~f7ME(V((c6*Py7@ZRlHfX>*J{~9-qXid z2){hI<>)W)Ivrhfytj{8JpCC^EBL+X5pP26Q3r)6n9u2qQ zAKi-!zT9#iD2V$sbCbtKbm8ictIi6sX=l!}{<=K%^8woh1qFR{31h*0L;V<)1ZM}# z=FOYpoS-*4*+#jgJ2i{N6`4A8@ydn4? zRBBtj)k8&lIizB#OjLuxdA^UIF~R_O;v^nEjF{m^$TQ+BT7fBI2FYjOkvXOO$u3bl zFN+-GDv?F(W)=U%mG&>=1{kp~=nU$%j z6igslpc{TbTQd0so>T_jr8|`1Lx8+*9qhx2*_WSJ?zRe$s2fy^Z(Sl1S5pG-=kXP~bAzAs-hABe;R9lvH$T{$y#GHy2Y#Uay9;)#(yadzlRvE?>Q>n_vL7m>Jq+i-_!;*zvG z$ziwfqe!2ePwrqHU#eVAAUvt1PZEhiia1R_xV`!7MS(YVJ0>wP4{JHuJ$qXb)*X~( zhMNv@i13_mDYaDUUMhboF=y30VfS1>8QsB{sLuOdk~BiB3)s(Q##wPCcF^3P(OlN} z;nZHWaqafoXw0+iucwkST6sI>z@fJC#gEK=H%uM-3v52r$`S17(P-mi5T4p+t*F6c|J8-^!e87y_XM{kA z;dT|Ar8dIwpC>q589M?peuw@1v{dbB&6NzTw!R_@SEx`!9=xe*KKo#>_wP5ZEB&hV zJ!Ri>-=cne{E?Efvb!tVVueQ=(HYtdN;ZNe^8ivG7=_jJ58xY_SPf zejxjoG#GLNl*7~3nx4+=tc|{UY?7-I5(^i~9}^)!Y0wwSttwYA zOD12;C5*02K3`{_Nei!;0q83=5?`BBi)$*z`b5sNnduFmU!0AjLu7}iq|vm^)T-Rg z$f2<`eTSDhZmzARQvdV(f%LJzlN6Mb-w#cAp7B`Xv>nGwovHg$8E=Qx%&Am7zW#Y< zk(h}!Cl-%Hy>Eb&kQaW(2aeO+Ghqw<{{Cq+a3I)DUxaC6bYYR2t~c)<>JZ{5`pGyU z#V9cNsae*9u4VWUXX(!7fhN9x2tN>Wo))xdUoucDCFbOgR1HP#EEz8^-4(lfph)qn zdEZPvwybF@_ERY`V1c2A#Qey+j=F$oZ89u^AF1GJlzPw5zJkjOxosA>mla+oJL@{?R2aWYZ+kYFJ9~&kyqqp z>|)STqNgM$mMY_i2tMHOz5WtfPV=D%)X>i1M?m`ze>o6V_S>SH*%7?i+KR#xt(u}WT4NMJc&NjIsyV{}+p*nk%cB1z|tKt+Bk zahCo@vt*DCOn}(D;~wD2noM#IqZX#g$C5Ozy>`r$M_O-yIK$**Wb6G7Gq=_= zY9+$$W%**Ri`{uuru6{>$Z4RH;7&g|@bxK)rAllk&w~$Y9rVMDIFi+gBO>ub}wye824SwlRcRlRWQUbZ6{qn4{xccjkJW~8X8jm|6b6+@gQ-~EFU^m&~5 zDX75ENHg;Hr3}r^c5e-xs`%C;O-fErSmbGS4!35(YwgwTbs1^NSAfnr7{j+aK(zal zY)-ArPr1ZWN|mJaJZ;lp)Dp>=_f@~(mH$Kv)=i`h2WmQbA20B`2CB8NcRj6S8 zTa!Ym+h@T?VEu>|dxaz>!wB1}LtkTklT>QrY40P(F1y{G(boy0u08r*8x^Cp5-wYz z-PJYNFX%>aGtHYXky$^bMH##5DNU|SC3-I6{TK_Cpwl(9uYW5cvEHRwU_aI%->Z-h z7V1Fnc9LeRKD=me(eLNzoD^l>&qRCurEJvpC1JqSOKD#TDraPt~yN9IMsL#q3-a<04_iDX5p89nS~ z2h*;=$bjUOxlHu@PzEwGAV$@Jo^|`g4u^nD8M<8S%10DZ=Aomhaw~M(<9ACMR|`i| z9f9I6-q6CPc&x((#oz1hSKR4iH-bfeQO+a)ql^G*K)a)kn&NPEs1X2^c){HG8Zyi0 z3Xdm#o;^#KX>?ng;&06X)hzGGP7N*;^@fMO4U5)=FZ1`wq%soKD~Q3nXH+C%0#8{w zA0Bb8_BqtQI7ULiqbzahto^T*+h%ijKWv}K^bTKf@-l;!=y~?!IAz(Ua$*dUcPI94ED7qo^)65LGsmdLE1gJ9-0iN~{ z;N5-gr{>2Sb^#JmJAi_#e^&4vGDb4l3~;6qN&U@05*CThzyO7-Mh70bTUlN`Qs?VH zSh};_f6HA%a(ekYy#X_Y0El=!c*GCvk_Qq_O9(@Wuy#p~0OFN0C32v*D=-+USyPdj z@o))bu`wXCj9UpM{;bdSHZBfVj7|Sc;TICp-Q1gHfcml~`{2nF_Lr|-jjeU6hQ2s^ zQ4sO7#Jaa(e%=O@AIO<;ydraKT zOmFJa0f_0w%W$6Ssn0X2U=k}Io(B*#Ct~big98j02D_7UukIWi78DxV7(mWt+7iXh z5A2Q|`ilo3KciIAnimC~$*$b#^BTIrxc~is2+<*9me(-J^GVfF$I`3BNe}mEi{w zm_Q+|l6!}gF3Ezm5Th{-JDhSgd+=+$-H9)UUor<$8Cg}=0Okz({d~YPVkt7mx+ey@Vk7(fRrzL zxXKaEUI0@u5b1ab+8HDnOhC7)6ZMZ&<~dd{V!b;~hZvJMBL_%wVXDy6gLS9|4Nzd# zCgMm!m%;e!^TX(lDANMb6RCCNJp8UCgB)lb5);dG$k_lOiJZpDYp)Nvm5~N0$2tpH z9a6pw+L|lClaDBW29!_pzF9m{c?n>=BCC#qILf@Bwej15qv4<90F)oycM3S7oD3*G zml1k&NSOt+jm(1Q98nGflx6Zls*flit)Rm<0XHZ?Yn~wLBgz3lRyeK9*8-0y#{$Y$ zNAaLyjoB18%ISb)7ltbFw37J@r!mNV3j>DdT)H+eNKR~`)&mviWU6I0# z=RMT1*veeJg7<>Hilc<@%k@ZvV-2O(R>V`NK5$m+)ZO*G=L z$+RBBpwn%HQJI4|e8NRgwP})ll8yF;^-+Hr-ULc^9#D|VD6SNX+f7ZX!s+NL3VB9N z%u78ADS~7Vqtm@OFcz{q+dDh&n zt9Ur?CwwdM^)H|b2`vtxW^1-1Zq>soV-K*VZs=&41&&Jnr6;0D&dH~1#}b9>uw?RU zAVN$!GD*0$M_)LJ#{zcM$eiStIJ56)iNc84-vbGMt^JejNUn~!2L!AM?9D7(8NZMC zd`t>IfE}z6Q|&eXVuYmQ zt(*TllmkZmpPH3vbnSSlP-EB)@0*WRM6CDPt^aH`|MqsxBU3l8N?RtgmkOdylggC?CQTQvc)cb>+<>}WIuD(w0_(z$a{*{ z%xzT2v|h2jp)loDtZjj^|FOGwu}j}itUu@cJBn0`0RhxnC= zqfF4k=98Q&qwaNM*&emuGxI~ScH60X8(m5D>) zH1HXkw+z842;%8Nu-;l~V*%$R-d=o_P^dI1-FLoRi4N?J<(qhXWBkm!6hi>EtfN}(Mr+g1lc(UYfKUimh14_ZXWPJ zfrk%m<$T+<6~SNOVb&x!5cfOxcCm!Y&ODs|rfAXA&#}uT7r&p?qW9P41@{h#XuQw< zAXa?AaJTvve5YOJI~~{0Z|D7vc)%9}bjs(PIAfrxlb7&bweKxc)%>}OSdx1u!iU++ zZ-_NYGNI}~(U)_k3GT}WiMhzVd)ePvFprosDzNo#&+Q(?nyTi{nI0>J{7b<7!Ugp@ zncH`n%P#cGV4lsKAsaW($H|$-$y4c~l-^}aY~CzA*wKB86jh&-_v7$*tM;~Igtv0~ zK8^_u+I+S=rsfXq=Wn|p1;WYtacW@4Z2LnlIgPXHtBToriz)gh&!sw<#H!z#_5(=> zhA34Pr;R!mTZG4$wb`GJq)_hF5aVN7SOC4(dq=wg1m*jP*FLiLE+%2L=o^=W??h*K z!TQE%^^ae!cEfZQdy4`jj*Y7o^7Z;6;+29fCi_j%WjaB%PY=QCNjyIiVkz>pOCn(N z^ZiWfHknROn{(l!yj}bDxB;a{Y|xw!-5bVBd2v?=bxCQDv?3=!Vp&gq6G76K02HPO zx#6xCqt;%YRK~7y3C=`$A_u%sA+e4S{}{lOmk}Vd?r1TRSnnl4i*-~z%gAEv+Kfau{)X#T zpRY)YOD05RVVB5Kj#Ne#FwV1N6N2A@!Ilv^aUruzBG)>nl4v)KL@y=9wI`2YJckM1 zXHiKl06{9*dAOQFZ}^E<1Lm|=Ola2Hwoo?8)q0a1X(ijle>8u-pDBP9?1EiO1T+z3 z(=xEgGaKnbNo3K9B>Wh4MlHH}ajy|=e((OBu^@?ZZk@_v(NI=L%e$~h!W7wqVSyL@ z01@)?+ai#m`RCl)4W!8SZ%2v;)#X!XcZ9{Bt_$1Go#qv?_KLSFFq<8ex8UveF1?<; zckYYpI8BJNr)ow$aQTgx2ZzoEBWBQ)I`Z5YDigEhZZ{>Yxa#^wYiv4wU_s+zj*&4; zd#Gm4L-uIP`=$uYpXd*eqgjpL*BGgGe_E5CH1%1AxL(%2FkwvLgX!o|FPGg_A)@+r zZx;H&HOuQv}Jh4y^kVzdP1jEtpZ0dNbNqlua-vR=z zZFZx0n|M}wL6;xdT!*qL(KLf~Z|+=j$Q@jl82hk~*l$^EY2f3+7FKgJYMJa&SKzc+ zaypQ%M28BBbS(SFvhDuxv6tcO=9Z>+cE`TlKXP^-3(rd4Qy~Lsmz^Vl*o^i&QFdYLrM82TJu6fGIoz zp%LFw{Bl~UR26fs@WRF!3WH3o(XCV+DRZ!rxKOi$ymw(GeE}b~`2}qaN2o3&0Le3F z(ZV|Wsll-VPB?4gK{C+7r?hz>Pq3stz6Xg^>d&-Dg_%e?v|@g-g(jBSBNwUGpQyI( zslZ*z)}^r!&4^Sm=3v)%e==HEt@7^Sx#W)Qz0OsAB9uxoTUXPl+a`JFY^wD+RKTjM zfhtZ&he?5tKvAax%n*B-WWH3!wOh^4QT5^|o3xy1{16%I|K-F8aVdTzyC>2v0dJwk^2P44~f>-*P2Yh-7PjciiZZV&X} z%(`cit6(}NbFUm2{myv9Fw}|0mO9ek_rzWC8@;ZS;FviLImk1USAh~#QwKW7^_)qK zshr!}Q2zhtR=mjOQEgacO(q3SeJ%jQazNej02LyMvqXh_fmcQsXt6Z?qhkkHG4MxO z$+ZeYLJGVc9byc~W_q3fEtRiDLI~E!y1A@jDYYvzO?}%tb|z1jMTPe5;_cwY! zFKPJc(cv=?UH6lW5rYSMWPtRR7bdiElbqh_U`IXPp*JVSg(XO4+WV$#<$BU;N0PQn z^!B@w8m7H!r*J-bh98il#0P5xIay9|@u9uU=gTm@G50-ZYeP`-w5p+h;Qf1{rcYcZ z&kpPJlUC%H@iy%J8Ewcyj9$}lJ^P+l4sA$G7QGj)TYf=$$r;k^(DbN@1F~CIR?^@f z)9-4#dO#wN!Jcz_p6()e@D*&OnIWatKCaWQvOWJ+G zV&FFO+~5F3cKYm77R*nhF63ziYg*{qy~avxSrVlG%5^w9{uL&I{|UC9S0pjE7P z)dO=_WlMh|M5fDFQZWJT}#xk27*GAY>4&GxX{vV(_zQRZ)8s^)8$uhtvMhy?zuKsucCDfMvQu-J>!LX2-Og?! zT4%3Ei0^r#%po?_3?cE(GT*uBLp1k#eS&^Z?U!5X9(x3V4-~9T8Vg;32_((&SUuI+@LY0Y3#8H=-1BXx`EN9nJ#>nQm|6L^nKr*RW@lSTMxTNIpFZlpxR2@#$EG@ z81`+wuR22wE4KZRQ~$3I^J5J)>- zf12QEzK(WKfG3NAqUwn1sr@ffC-LebJeE%3ft!QlFR|x>$tX@0;5z~~$6W>L8+fEL o{SuEqi~Gy}%dq}`8_NDg5rd*Rnx15u?dNiNyhS9#R{K)+I_j5NGU9Bo!-v3}(;c}t#}V=DoS%I%8z|$&yGxJAV#yjL1B{w8^wXm+Z99)5Xl! zitb}yDS_uN+`%dOEUIpLc6}Y81WsoRul2NNzGPv#z;NK`bq2=Me=+>~pNB8JI|g!Q zXp=keKmG58OG1BfhYJ1YW3-o@fG~iZFZIbW{f|!q&$0af=l;Xq7ye(d%cW%Q^&VYW zc_MiLo3a!zt=v)BrAAPp?yPo1$u=A{`4dZ*xI4OuTFL3s6FES z6QfdyMrPT%OO%j>TH>x-rPutxFt0;l))~)|(CT9xw|*Pc$tTGUv>_Ef5#ZbBQoFlgJfVI^_O zeJ2_haypc9#478lWD33vj+_9#X^44A+6dv?gp-#6Sl+PX8jGTGh%$Bqv8 zWtd1qRF|9BE3uQ>@0I!K-??y!gORv1rTB1_>x+Q=15jl3fU(MPWr5#G;SQtqG;J6f zU{&%As$)rNNX)#rvXkk0xCo^u3$NyaZMJNjiQ-jPXxa`3(LiPV>A|(9a{mkNRN1+ol_DKP{5#3l7rw|w z2GHO6S7YB%tM`xIZolOxzkL8i7E11a`f4b*$$=z6dK}zNy`HSy^S3GlaV}l~PWQk! z(GZzcsiu52&A)2sujdvCkx9rFP=3ZOFAT>&`<+wY7%*B-nTJCIV;H>XPhZkuw7#f) z%bN-0tc9;S^m|&@Gns0>R-Q(Yc@NCdpT37=s<|Eia^Wbf@9!!n=HJE-Q9JhJ^+N&3 zx)Ng_{pm(A;F|EsVb-R60jJ&p6($?M0;j!hek;O`0d)>P#X}tJt0`QnUCx&k3tJI=Ix}&=#0_IRxQcEfBm}b>wT|+Vcf2~NnCSYQ#Rkga)Y5J}Zm=LmO}`>Aj;yvjYoLhR zCE!#kKEs$C@@6fLQri)xzVm%b+TB-owYn>?l;uRnIN}tuYMXA|J z-V0`xE`z00iovUjVZ4z=cyb8;RtS2@-lm+EHLe7lz<}>@ssk=n?v8~UFohSFYs5@P${M2QBThrLS-R{_+Cl`?s|7;ZD z$VHymUY|pAJcjP3pm*-6`7D5c8ztChE^D8Q*R%vV_fK=9VSR$r+?V%)&igObZz=$p zG3A(p-R=#iZcl{iE-E!8Z!a}((E2=ALv?}g#H6D*b(_U~+s1SC%=452Gli!&B4_}ec8BY9YQHjUW;vXyPb>?Xv$AxSrgHkv-c`y zzlnA)&N7QGyK{JdT&HQ{svzD9hf0h{`JEqV;YA5UPJ&wA?Y?@b_Fhcgkn%F)AXu=6 zMBVy4rB_yc&2TQmM{RIN(>(yB@fSB*tm};pE%$r^CfH^1iaUq>JU@ppOQ*O7cwOK) z{0T@Wu+bo%ycSX(rD}(D-y)omrsXrUQ~S$G8jP?osNMgdS<;Zvyia?DEL+^zwmR`! zz}|GG(_XBm4QmQNSW5uXA0szOa~dKOi0XlxO=1)mlMY#JZ`p=>7(&txNNI7t?^x8S zxDIyvTZ!xMH73KOD~QA(4-&qWlbU+mfb9(j;(|*uv6;;wpU!4?>p^y+6j$g zXKb-8!GupYX_NP&t>-!C#XMtvn6XpmL}tOpS)~77az^vbH?c~PK7Hien+{%~!Lrr| z%1e<`CkxV`Q7LviZDl)cQb%%wq+;{+UUO-kd*K)ZVqu=26bH@m?+mSW9NF7m?-&cF zw$()a=yrE^b_-N;p5tG%$t>mt6=wP$LDP~W_rd)b2#3Oh3L-A*dwZPW;~J{bGSCZp z5@*A9aG`M$-~UBh4jO+=u)73;i1#El35q}x@p^owZ>88K>$pvvh1#ehUK%jt5|-@G zroKsJ6G;e|U7_5%r4E8{zM_EMGaa8tOMQOC{_!wvwss=l9OC8dZ8=3C!%9Xv2nkiH zZr2aBDQ=r55lvjXrQR`d70R0k%xa1S$T`jvk#=tYf=EdQmvFBWcZq`?g4qk2Svj2z zJN!WY^EtDhR4+-CJt(2 zzTllTgtpE+@{uq}-3Sz4Cus&vXqNg>Y)Y5p*_$1AjJ)TYy7>*@&wI5?jyw2ekVArd zZ}Wg8xJafhneJsQoS(+r98c21zv}3Idi|uJ%$nxzd5M+B z>Xki+VO=kh(_CvYB5iGt-tk0OQ0hhl-(5$XTXDO-zYcS0dy|U*%vd4-udZQ)dv=VB zTD=-hTYCW*WLm?pi{HKXEc{NM(Q9nUvTT1uZ~r7hoZZjqU_53X2&ehrB4f=${oO8`|jMO~fkVBJw9d#I~g z{!DUCTIyFJ2pWzR#&6k@oCQ&?L|0!NT#D_7q1pu^v-_8a-$c%}8vNzbEGCym`&d-0TFfKi<1a%kZDf6^pqYG70jYso*Zqi^|UF9nKmp zMB!_@ClQAwItYFIhH=m~beYmichTg%4^yuegf2^LvSnCxieY9?`VPL4rUm7=001q} zmp~HeV4Fv?O@iwdV`5?P$1m6*bik(DaDVSqn?9KLP*nk@Ac;iF;)@TBWGrMRgWH5*Zz8k;J-U6( z5z}{Hh|p5-XTbHsPOUa4SkH2(GEbg0_1j|swKyhR(fOS7AO@N$>NM7x5AFaNdSb0g zp|67-okOjj`K`lc_j1gJTm;xqd;OWVy(-%yxraf{t+j{uu?RQI@3bB%lJd{ij$RP! z`D0AtARTw} z5z_Jby#FzWDCqcy=OU-KBpIul@*nL3ppbqcTK*6Y#Q@76(|uQ&u}G~YToCo*Td2F6 zbI^j3q5?5!(b&yF!FE~DMCjD5U}k|rc@=${7;wq(7ibmYyZx08 zMc=5?mf$Yhrt}!7@M}059U%W7V8`E3n1N9U*bitP>G{wkMO%urcaUiV?X#VqOgW8e zLx|BuhsLYFFmAM`RQd7!8-d(&o`!MPhXTqan(_q&kN1L_c0ZnRb#}toX6aBUc$h1oC)7qX%PYS z8F_r<;BRsX`2C{hKf1PL!(MLyAc&eE01_d|6H3U>wPo=m#U~lh8RaCs(J#p|i zKW1POWRz{#g00dt1>cR~hdkTV5=(67ivpR6i3<9W_++9L_q7LQY4*szdC#%A}xukfrzKtpI=E|3dpMl1f5h%x9S`((S1U0 zVK>D@w^=S^-)3sw94L+O_%GuwwiLX%95Nir#^(?!##A7n8BY(*@r!RPw@m)-IVwIp zMx977P$=^soljA$`+l3W8n~awOMO5Hh*hTf_{5KZNQ#$0wyYn97$M$w9sVL3Z4fA!K0g<2zI6=Xzx*NTz ztyC4c8J_rLCeEjj7Mn6?4%8kAw~MV*fmWz4)y$V#Vx`@+YX2pL^j~=MtZ%hTov5<6 zHC{Oaz1)?*4TvMs8i*Cxb9ozZWPGDgR_pgqVVVMWCtcw#dDiw`90AU0Z(Ux4qo84@ z_?-1KRH`4?=vU3*!$4_a-162S9gQDa*R5V$sBi=ol6IX=48{yy*c?e$_9P7KS`ZIC6^jy~H!eNEq_?hE1_8W+nkv z=UR*R-}=$170m}T=34~-)F&2o63=OL@`Vcp3>m&tucuN0Ezq^drsH8w zQ+~=R%H{UcsG6bSjWoX ziPw_Yt80b|;01vg_~iZOb2w6Wg<<)PuFAmGmTbhsWPH3miYN4cxwmbH8J$u2{$%+_^Chf_@fgKj7&3_wn{qW3XxdQ4j*8$f&IjUS zpASq28sYoqb$kc6(l#qch6c8rB0_-i;u;oH@~h8*+OWy6@j$s1I|mNwiROn*ETjQB zA_kFOW;(yNSvpexjrb5n2@PfgW3*oT;v*LRR)c)Bb{=stgV>3Yv|hXpD(27Q*0eMB z%b3Ur%y>LIHf>JGHwy0RE-$Y>zAF#QRAm*KO`TFjk{9GBTl8bWH*I8m?nRH9R0^8r zw+k2ODqD9sNkX)P$JTNc1t4CBI(_LO_ku|S;rBh1E2ZVUe{uDAjB=rv7hqfyM8&bM zfib6R!waL&hieF>=M%thV;}ttrog$-0KHF_hanN~j{{Uf!lJ3&w}xAr&-8|7lN2PBuTs~N-oiPfd3Z+fcx^uHezzFRh&%Qecr zb5}TcDPj@4kpUHYlZ|kJ_9tXF^yV3q!R=&rtzp80PHWF^>%2g3YATt6?*@~Q z3#BQnhe82WrUuhLStkQSTCt}px?j9p$o!}?=ifN~;N5kG6CydegKpYNLi+Kq*-!!5NUj$N0XRxK-bQacP=N*>wIpXoAY zZHbbSxQlfCImQPbGZTOi#Meb?oU1Z`tj=X-{Bw1>z`#*;tRbH-`ocE_9l}}w)exge zSn#kE*Byrz8njpievC3guWR14B@K~;Hyy3s7_dC&%HPA0x~s zVL0mvinL@>b-2uuZ$JxZdt+aYbRay5C-sPV?%98EoVTf{2 z+XXh1p#Su6?n6TK;xXu%IBR1~)=TiFd@-10O5xEEB|V${`O{K6%gJ8{L1dJs99 zfj5-_*vZV7FFy1&c>Nz|#&D?rros_wI(N=fk8aKO7(~UbSCy4T+>@TxlY;ier{maA z#!T;+*9`5EK1R|@Sf@nH>@e7s7zc%+qG8>KERm8@Y?^hdz`At*L?sj=2z|nVq&m0e?~9-WA&M8BpWkn^|I(3QZUmnsKIl(6YW?X ze>8uveB*IOtC(zK@?zNDRhY3Q47soJ)ASh>+jYe8ru>nz)^6FAoE?#xpXi(5!8GUq zR2S!6bW||Hephf<69TS&X@5U6(xdxWZS2)$MlHS0d}HIdqbDu1#W%r^N4FM2@vGTl8zrx;|Y8~(2WSpS=Ng7mHAN3 z@l;1GPwgUR&a6MCWV&D+YUk;eno(v-Uj259r2|lH!}?4Rg&k)d2y2^CxUEgtEpdYc zuJNgkvx)4=IvBI>jZ;vGNzX!>-!WKp(`Avh?52FA?UpxT3el!2S!a;r0m;!w0UT6D zw3UQ6i}7&am z-V5M>&751q;&#)g8Ysaoq@OI*BR+EKD;wC7-QD5fJ)FFO>iUz)P25&>&Lb3bA9tDs z0`WuDN31;4l6YHcTa`POJ+J}yyA~JIS(&hIp-g~4B8n)7>SeA8y_HD3eGPvqFX~9J z(r~k$@WmmpyZxf)2AKaT`yCtIR+q6qmDLgwTi1nESJ& zVkJxv^Rd87S3x+AuA3X zZM-L7P|O*fem%G0RB zuiL5D$au`ut8XrP-HcYXo!i<=ZkDOllQqQ+p)%F?f^l*bTU@BLPXkgGoryAzG>i8P z{a|FEUVk^5Bhh(lqDjn!0w)mJB40EFf`qvoOg4_|>XCC7MsBUGsfL| zu|GgVOQ)h)iAQ4a2ONSnoM^C>LGu0hFMl7a)lOXLbVhRAXoBJAZ?n z^k7`LUhqzfZAt{lVjyFwIp1(sa7gQ;XX<;)PUy0vPmmr(>1GXB79FVHED=0{Paa3X z2VHxC9Mcf=eI4LK(yplv!>Hd%l#$3^-17Z#pWNsS5CUcZ6{_$mTyE1myRBF^j5og5 z79kyHX4jmbLiYTjGaJC_AiVsZBMLu((23A%`*7SnDcY?gf!8RC6BS_383%R9%wyVT z>rH_Ff1aSf_`?2GDo(dO;9AeBv`x4 zVAA&7Eqi2FSYn%`$p#bMaiW0Zx>f($`_l)(OnW0F^Gchh=5}i;u$>~&ao1`{9TzXj z_S>?dbf%N>vaE*XEpGBv?!BvVT2TFxJ_QK8c3z=AWmRW){OT`N;rg))knhZY_Omxf zfPCZ-Zi9%-3JI_gm%NyWdF!Q{4TTv zI%dc>T&mK`+0YMOoSouQ+u*8%sV`$~hIckZ8_J#>Z`q&bn`gkt4hcv8Yn>zmp7VP2 z{M-SU7|5B}5LkJ>@2I;38TsN;`R>o}pE^D~Kcf82DOg7zVYn>Awt>g?QP0XZe8cod z*-~sgDYb*l={RzG8C-2;Z?LLlu5iU-Q+;=6KBa!C#)-5Q?W2nSN_g3KU%er^I@;a* z27jRQuyC^gL&!;epcCx5GQ%hxA-qWeh9+N#lQ0vye)|ScYWcfA5*i5hoovcKH^BGu zU9b3W;h|PPd!EpszBN9blDRcmrij~|$I7XbKMj@*`*!6uj7D+iK%vCIp95YerdZwj zrnLSc=lI|XwpDMhi;8QwdeazNMm7vAei1 zTv-VtVBOt2)0Mf%(Hux)-ikw;OGF~Cs^621M6TGn4(BpbQCTlOUU_QUZ?ETbC^Of< zx_H~!$yG3Etll3Z(w$j0o(H{aQ9kO%y&N~5XOL-ADbj++io;dczTLWVzb9zty??5q zBE462%ro>70s+$H_lLYOoHs z=Hg49iKLd?5us9jg2^T>tTy$nDz4phV6v_PzO`Yv?ysC3 z7@?6smM@eP`Qb}NdhTvPg6up|;LTJ1>SETqc7AW}F*7M#1Cmhm;(;}Ox{PnZn81PZ zu&fPeirv|5Jjhaf>{`wH-b0yPIem8#E9=L06aelsCc5oUz`$JuZp0{yBq+Ewz?xXy`#3`=j!BfuhO@zz+AX_8zAzwY{R3%s~>#LwMP( zI)>8`$M60GNIZBQ&59}x{9(8U_pgSBh=6or+BLIKApO;JdQ6K?#|4pgY)^?UFG3%ZBf=K<~j){k;cNnSS@-J=siuzk#}NBTCR*ZZh_& zTZTwttl&VFe<)REmNs#K&Yzggu>0SDtMu%o1eou8&>{&#UlZ`&Z^Kde9v zML^EZaZsf&t19kEY)K-X-O`h=BX}cU7F1Z)ny=QJkJ0{N#H#ht3t&tffzD0&hG*h7 zTNI9c%?TV%5v@kav1!lgM(E-1&b_}JC;bxlvm9qeC>5Jd6hvhOX{{v;ZFW&xEN#XP zZ@GHT*{X~#_z@%rhn>5kn#6d{PGXNHH+37@_d)!wcAFl(9S7v6Gnyw;>1wjs;gH1B zs5%BiV2f8m>9EQ{ZMd{wx}gH`8W6A&D%&7FzjjSL;#T!|0ZHTT?Y0Og%(AabEG&r> z)|Jqk%-yf>5V^^-t&D9hJmZ@aSan-4)x)k378j{$akqg;@sNWO(xBGBNFDRiv^XbU zvDG>-kIL3lOib&~-f2jV)w^R8`K~R(z?5#*c7M4KkM0jHV$NM7_ehWC&{AeN&DS3ri+r0ZLHZa_Dy1w7zdxB zdvC({-bu%m^ihi(_tqXTtiuwW9WxW{wo-5FN>+T-FRT%xQ5A3IKgKL~efPHvq3Qm*Yw^XtsTrd^v#9qTFeJaSuS-h61l(^xP4*kOfi;2| ze}p=qxIK1UI0rjB%rs@)B<9qG^D=1YmG&$kWJcch8;R80;LRjx$AaOxY?TDEGe$O- zY){m1L=|gnCB!x~cO_NAHSOk`-_CTzdGF}9?4o~QzX(EdRN|KeE~x8`|@+ZpMOUoQXa&T%dc&Egvdy*S=(~)Tm`BdGr+!DsI1)i;9h%~0Rp*KP< z0!ScEGqZs{vTrW|B*0^V+^?VSkL4IJ)c1d?=cn@l&}Y&TVMu@F^$WTTpyNmAf*`Gt z>ojWaDwJNDK0rg02mjo?kC0WbXCMCq?yuXQQTum*cmdM?IO`03D>&T>=qDd<&~5$K zbw0q9*YuI};yVK{x~<(*=ybt#;t(>9haVTOV=_xZNvF>|Zt53ShL4 zPX8Iq9Ux&B#<1u7`5pjY|7~=BKudc6L5)JX+ZY%%{>$WIfUon3>d>=2Lx>ar+<9re zA-{&$2gGFIxQ6(j@BNn!_kHfR&JZW@udm1b`{e$wo4&Y;8x3@ZK3E#7r{UjuN2zyx zudh5zIe6rh9Ie3;?eTBOopZ>!VJ?ueAy301G3QllF7f;U>wE1uyS*9ii0E3MC7Zb+ zsni53Wm@&;_2aFd-$QL~*}d0qd8CR5sncp?MkL74%r2gSVe^U$I z+i|_0&kpP?kE5V9r&pNCV6xVz$hl;TY-_=NEov9!}8<2OSVN^(uuzwsgIa&+?W+oQ^ePHExc3tAs3_W|zUs~tP=YC$y zzg;LB4(#QD{guV7`JiKxMKX}}NlExlfDOnQIyh&X!7g9S`d_)3T*pgJ)XOJ- zMV~&4js$vt)OsL|=GoR!7LNoW{jvCprhGqU)4Yj_7pI%@aVu{fqCW`M0gXJY#s%#3 zJYpjJZUu&%s*n3XXb7a#lxTW)lU7X@h&XB?iLv{~4Z(*KTszX1n6Epx<^#I?$0}t^ z4S9gZDJ9>Pi4@#$$%~$hpyFr+V%+&n%g(IJ4Vi%Mu9R3e+OwDLGv;ejnja1?9G%Ik z+(t~ipZeZIlJ|@0P%`{69_vC4kU763+LIJxQ1zxljXhlwqd6kC8H?2&_WhuR(yCe- zc$npl0)6vTwVfQooaEzDJ|C~xK`C?ZvduFbb8C-|aY@g}saL2E9 z?abI+yq!GwpB@F5TqhnlZL`nO`) zM~g_iL)iJ(zQG#`xdHt#wxmF_7S)>439}CL(vpZ0#i+$_k26{uNhsbJ%ilzg)NA3_ zyxZ2rw^>P7b3cptO;v550u`Q=Zu=JkI#yiA?ZE!3ovD8+`(47%6#KEDxGZ*9x)lK& zEp^fL$07!1j2szZ7TQ=s!moXg!PIT3VGGo29DxSFtdZN*-hs*ma1FICU8mIS^QLOm zq(|2pg6h1wQEGQ3A(NafV=*a?S&puxjgPIRRv+iZE*I+Z1T8p|vu=~T=62=0O2{BI ziJ~P$#cqxorWTM=3mlWj~3p5*?$^p+>#()K(`_{76jkv?v8Z>3l~GeD|ke;JKivv%d~zm7!HL} zvyQSzDu4lC3DTjMv3;pq@>}j9`{@X?W4cq%2qi&@y6`6)D4q4(&k~6*)GQEFFJi)z z;aB<_s(J^}sqCn%<#I;I7Xy;l_fRH(x6;h9mm_F%pbjwVuM0!s?&61#wPnblt3OFo zOrn(A`PH_VdKS$QhX7h>eVFGGYCPzxCk%DM}e(nW6|0lUax-#CG9wO!doEkV;`+i|22a{?7B2$TN>mXi?^`& z3GP0!Q7f}PC{=10B{FDy>dC@Yw9~AgS-g|C7+JB*O*D8U$aLVGCM>JE%VoVqsSg` zjRrTIZoQK+_UiEC)eSsOS3!fNRm)L&G&MV8X3SC&;*?q-jaFJV#k={J$qaKW#|EII z%CZIDy7GH=z0Jq%`E?Cv)+lPYW6+kN>*tgG{Nbss`8~U((cI|p62EXL&;7aE{B*EA z^PB;OWJR5El+n=%7EcOC$p(C9zH$S6ab|POf5|m9O6E8%2!PgR(=9N1;$(SLhT+<6 zagTiCV4%JvL;g631IjU@9)?1YL_vL>ECZPz7t!c^2topU9Jv4#Bx9lEY@$CmQ19!m#|o3T#%}@jmYcc3 z-coo|9au1-H9vkA9S0Q;)&gq-98+gguql71?`K=0WCze2Ff#JEh0nxOi*<0K1?5s! zk113MrTh4=>(T%mxsH%HCVbA}Z4~Qn|KLU5MN35d0li80IJ=xfw#X&1wzG-k$(kk& z*Kkgt`e#^RI~GR)gbOYyptOW6YLe~TA&SJ^BIrdx3mh*I^u@z;fY~Q2>R@=bzJVFl>YH8{tMI9^InrWuB=U{Wz5pFuRv>O~yOznwRqf zeYe^goGb*Y-CZx>1<%FEVfHOS%xf+4gko|iIF##addQW^YEYf;VT8 zCFtk#dA90yrJx%LF4(@8yn|rh4#JvYoE=chtIC-ywzg?pwfy)5;mIsR#mMlNWVM+5 zT#NF>p^GP?s#O%l-@bwKbPs9Q<}_$TJqZqkWEJr9P!+BbFhdW@>Sz4EqGtmKFq35m zA~K4X9}{f=!V|}j_rLpOgjqAEq@-K*6COD}+oFai=i9xi*~CNx)!ceLzmB$c;e{4= zaOKAg99I=9D*Ggne_KWbk6uqKC9Js;>usIV3zpw)_^WTYJ5`Z}rqg!S@aG00h#voj z$cPmzj(;NP%)9AIJ=q%FGHOg~{$-(GDl`BAzeP9dghNMbI?YeN%DnDG8QhV+a}c;3 zdVNqj15RKo*HP}t(OiACPp4S{g zcPi2EV`XB^|DHPE-*OaNbP!a?C#ypT^zR-6bOkxW%HL{zncz6q3k} zq9bWqGuZ;sA=sOQ?_U_L#VS4hdC#$Jdv!Wh)qg{7WhqJ8G70YHMQJlPc>iS9aJ?FO zgEbTAS~{zdUo9rHVb7Z5_Wt`z$lhe7731%gE~P85-yLb35AMvK$ArJcx{cz~u0Do& zyQh&KLU*#qn7L%W{^V5)xVnvaeObNT&9!UejA>K8xIZt39#;DfKGZ8Ct&t08R5*Q_5o*K-~ZG7hU|OH%CkfM$_0ls=zX)mK&hLLxi|&m zrTo9k?wsPidg;|))-_>X-_5S&$%5v7tHmk4%`3=yk1l2Z4cDh;;E!xL88wl?;e#wH z-_n4NvlkvcEvzUqe}klHsT_;?&LhtjJ|ANfnICuzoRIRLiJB%%cMAu*;xdvr1&z+2 z3=y@F(923ei`CQ4fk_^^7a#4e4~AK8*zfQMu5}l2whA8AvVX&cvcC}sv_a|rn5;N$ z_We5eE%+Fp(g%0e5yM^a(N7+B-HF}CO=5)2zTL8>vM6qo!b;M5w^te-(~D7|bplMT z02Lv~uWBp6r|)qCG0Z$=Wg%A_&)v`AAR{qnlu0&TZI%rx-=5J_$Jfyg-O95Dn)YtA zsBM&+gLbh~Y2}I9>$~l?dmgK^2El%RH-NjL)>&S;Vi5CSvjN5+=*V3taFm8jl7M)X zm#1hc*N^`Y_$Yx(z91dX2S?AddQXgdf=NVN@Tm7?aUmRJ zUi6yVW5NjUN_|&1Y<{IB3;evy01osj)Sxxs@3ymdssV|<%dP(>A$KQ99RA5ob!Gca zHp1ZyU-HapbAz#cda*SdGVz2{NFI-z53bQ)Pe4jh{#n|uQ5dw?~Sow z!#$U-Xv}ePnyUn(=AJBZ*qbE(plrKQMxWjb@X)$ZbCVSp*bXu9rA*-c7s^{oBiW)# zMV%zC5g{4|(w?*H;iA4qZG?h;#Vs zDr0kNJXVpPy45n+5In6+9NzibwR3wT<4v5lMJs0YElZ#yX=Jluv%WITqMVC+gw)IajOWTc3sv>oYSX|zB$`2&bCNOma z0vyMyH5Z;DyL_gS%AnRyraVl|shfjoBu!z6FVO5WzIP2Fn3~mE(HAIw4c9JDYROZ$ zETK5i5R(#~I-}-5u{r17rM*x~S*(5dr7Msk{vp2)(xLGdC={<&swJ{r2&8m-LH)dk zuI-@BlsDqIC(FM3nvsJh1yMR`{Hl^91(-iyzem~fL7*b0gQO>J21dO~fXJSxNOw#M z(#GmTC3yHY*_V41o?H2rH_M*eVX}0+3Y>N2=1au4u}VK6-Mq+_I>Ec$TGj>tuZZ+X zt4N>*KNSd^yS>E(F+<@H9*&M8CyvcBtpNt zerGZ0e>*$82{MO)-GR+o}>YE8_wR9Lz0q}yGeGo=>$cQ$YsfTyUt`}TPwkf#~ z$39=h7p+l5Yq~LxFx6>X-s}}4H$w)*2ICF-Z*w{~=Z~yzY55t)WbE zU#p9o*p_GtG_X}Nm-A8P`$DYFbEz0Adc;HusS6UWpW0}NNTJ9A;pJObny83Q9TTn8~HbgfHla~Jm zj`!1DC{71N8NnN(Z1-H{5{B$Ojey#vTD*2wLX8?_xT}=C%s4InvV__fswF|L=L z2vq|#X-yI$L)%$Xr!i__jWq;=u(^V^vt>WqpOh0kH5@eElpo(kSl;{kQ0>Y*#>$8- zT>`E%kv7_3`KkUh%YQ41yIuzsK6soR1C3lfD|oq0*@*{KxCFG5F&GG3E(H1jFJni& z2^PqNqq5e``Nk`c__cwN&AuuUbHFkJ2QwnxZ-mMQy!CBS9s^NKvC0; z$t0nN$PP=^NyIgeiB`NqxG!+T-xGq4MzGcDE>yY0g-{bJvb{bH|EkUFtH< zLWAl`cjt_vxlP#nb9TGyyn&^~6`dVusHUJJg0J9)m#unjF%7{zfwtV!>PQ3O6T{_| z;~6X84bNX!mEHWL{lq$ZansON8=(_zB-8WNmgwv=ORj2AiRCs~@%1MSJ4!}3>4=!P zuRc#CMeV7>j5R`+{7;EFFAPGMnD`!@=MEI(LYWff! z+y8~hmNRw3jtjQ;)S2)s%{JvKrRE7^DZ4LPz%Mn!p$Cj8ye~>pU;TQ8_QN5s>eK=| z#l#)ipX<7bv6|u|p#{QYDVyS##S*XRwBeCgy!8vQox{Rw8@x39mex#SDvSZ=b;Na=1HyjutS5?!B*I)EULQx=+$GeJ{JeAmtwV1ps! zPAyW3WB6FdTH7bVRcfNs{(=@6S~uR~^15w4Zgz)MeGB zSkIpQo|!r4Qcx0xQSZ?g{^-OPL@5azzaQz}AF@2Xr6u zcP(l9S}Ilpc+5v`isEiI=5=vHQPt9Y9&g$DwI0{njGgv}X-u@=ej#LtQe(ESfI)3; zT@{3|&tK01JryBE0DJk)L4VQpH^1u(CpE5P7F2WvOyr(YEj*Q>w<9=F!nOY~>>fH`|HwK&o5xZX&s0P)j5`ae{F%z;;2JxYK6KPyx~ zeTtt>85tN=0aMH!5H$Hi*A57xe*U%-Fs3`2_keRAtJ7VIz_A>s2_m3`_p#30nWOz^ z4A2Lja^+#?*S*OrCqhidW%fM(X$(1AH(KkXn5Un9?yzu)75I9~kDeS|N$^7xihRzE z9!e74YIWr5lbJi70E`a23LToez`N)8*WR88?;d;cD>mFPEcS z`JZ$5_nYFwp&zM$KA0X6zd7ndydB`;U&iy%z#ah{yRmWDO%LPl=ht`5ij;+UE<9j+2!w$6s3PpyjI}Vy>1C3wF4h5DMeno9lOe82JM~{gBl6 zXtIW^0~9tiu>OnH4=+MSgQ>eEg71(TJk-pv^RPaZHL?;HsE|LV?@v8-hsFTDFfM!y zWuDg>N`szLeRF8dtZHT>O6m1PCUCOLdk*;Boz4AQ&f71)RSL^S5LZNq+ZedIN^0K*TEWX~6%?EWi^f_w5ynuu|P;2_S9Y7p>?h(Ey`NJ-rSquBrT)Do3 zwI%GlpW~>iV2wc^BBx$a<7Pzt5lUKM97}tB`=C*cTJy%puE@1g-(=^d4;l9*l2dV* zEXtiH)WoIir9HnDyJ0}0&OMOfK%m5t3}%%a37foviyLQ!r>8RfyDPh5J^QE*L7JWU z4n28rdWOl>xYq-mV|e*JA(d=R;M)w8l75D+E5SzLrUT?7XO`=Bh-2zIM0^=? ztGLC)UL5?=jEB;2e&LnIvn^DtTFu25gdhk|DbU=yoS~as?kb7QehMhc8|1Z3p5UOx zr}np=l)Z!LbOg2?*N=OZIY+5z600}u8;ixO90>(C^+oOkA#}Rxd#(f_5~Q2*K{3Y_ z=t=PsWWVjJTf2r~ojoWxCjBZw+rt=Z-Pa#}E{D7TyUzOwmtOYZt$6}B)*B?OuoW6| z%@xjvNqd*5mXnpCBX}p8dlDYQbjZ@6mO!NQ)X8&}?i(>bA`tU$e<4otZfj_#2_@w;ba zlM)&llqj)348#T`BS?@2Bxf3lZ9otZkQ|zzM9Gq&Nw*esv-jD1obz(W|32Jtd~hhN zRcqF)S+i#RmH(~O`z1N|`U>nci)N>WFPAX2Qp9&K_oxTH=Thh3kR6@!W9p?iJn$kE zKTg-#Du-Ugj~5#bAlkLj4P&C*3)4Jjd)?S^JaSTz!Ia^C8V`y?9c-!$wj>#!gwd`# z24=5Ntt{yZDSrEzzO5e-T0A+=!VO@16xW!!84akgsMSlWZ(BUfofT>_Acy*f`>53W zFPcHd7dK4m>lD{=pUA-?bBFpD0AxwBu4B%GN0%Kk;#mW7X$7tUT3Qyn9Y?RiSvntL zCXy}`{a{OjJK9f)=`EpIMp7t+5NON`6_SEShkkneEuB9U?saHJM4(<6^F>wBqjgCs zkd6Bx;pj);T_X9muO|eAWo|z)WNdJ@HqFElJnK18UJsc5ZqKs8BC)!i=(rLynoxLo z5JCqG6sOG>F2#mXZ+!}q9L_dS!CWYO$E`uGr^#JXw!2(5`+|gXwwNcuk=-?Ml+Vfq zgeY}8BHp!wmd|hB(<7dWhcI<=UT=^RU6y~W?EuNl(>Jp|C%G#iOwq{(z-yU{R%>J>;n91_z~N!4lFt^u%7wsV>s1gE0c!#uGtG2r#|M#Z{GO(ZOsz06#_NFMEL__r-)T@mwIO;k<54I=Aab`s zJaV>l+mO+d5FeH08JA!%vnl?#_3;L;(NNla-jg^tx=4Yg&meJ<*{|z$IXh5r2-O>< zqx%EKn4XunihSh>6yV23m#$KK{A=~rhh9I5FPe;QtJT$R8U^9HZJU?`D|(-`?MG0tYwXLF9v0Jj8u(d{?$h@rHJyvEpSeCc;9SC;tc`41VhJv)P)+UT&Q zocX>@{VB0W?0+{l{kP)X8DuYDHnpa7Cd96d*wv&zQTw2Ba2zNYFM?{lq-d;!@_VYD zTW82pDaxKb5|iS!57ikdVhF62Ih1(rE0=Q1v6}SBpmTcwK9F6Pe*xG4N1n=~&mUSm zW=SSJCH0+xa-bL4af8N7bn1IcH~7%T`ZE!dg~;p+4B10wL4JaVM(J(X`d&o$wS9as zFkhnN2d^5|uW#7WuCe4@QFMOyU_}wcNglq_JVr94PeLVCzdxs1lQ!%rsKoPDSMh<+ z7X$lM#eFOPpsXwuD%`4vVxYn;!sUMf8>WGJe#A-4t02;#Xi&z~!2~>HicC0ZgG-vO$J#!y=O*;;}f(Q|)dbw{{%K%ssKlpY*3MYxbB7$Iy)3?_h z4-)j+z*EuvoqS+=Q~N>w#yJud2mS`>p!y%EXNvsgxUo29UKf1PT3*1QTvOh0I5n6> zdhnf;XF1g04FOq_YJ$e6I!Vb2x^|je|>&wko8C+4+<5@2Vclwhz1n|kFW9Tf6O;GV5xn$I4?of*GmJ(?Q-OF3~WQ49x~IMeV5FXI_%5Xnj&z}bMWJ3%9;aY-(QqNPX&%X zp9Yv7^F7ArNJ2gW2&G5+!sPt@Ofi@!KG32U49 zv*#OB?bk3OrkZhup8ZEMFf5R`JxyUCF-AKP6vKhjt#?k)?iD;}d!i-LZVtD*^R|cm z?oY|J{&oPFkUHM+_^s>AoQ7qi6PXYq_p;$s{XPFvAP&ao^vTfH;~XC5yGRGrgnPF= z9#{J7#CL%n5-8p8aOCV7|vEhCdTeA%)Of%37wnKq* zS5bPhLVrG7BtxVUxw$rPWG&#NY|{g((?B?iZTOEovJF?&1hN}OjINsYLkjwcMm#!y4xuByWKW*p9Y%9_ubY2G)&`gh)9Jzp!96!q5(qqeq?px_r54Hq;m;Vt>YS%)XSvkatz7xP=c zBVn)fj&cj6{dq=DV~=0XX5wJ;rI!X)b%1f|h}ZYZiy0K`U|lTPTI!=iWU=oypG)*D zMwMH$CuARD9Q(F-zYD*Uvz-l+?Lr>EypMO)NW_^bO)aAIg3I%()kR>c;%#ew+KvRyG|1&SEzsGO?&2p#6)(1&aPOj0>`%3s)J+t9k!L$4lks2K z;FxTtNLs2CJUrzMy*?XUzPSvtyOXtonCLsk4JoT%U-}_;bZG&hW~G9)~Tq4u0|NyLf>Pi~@te zr5-|G-xNN&+G9(!T9_^okz79WD58c-uk;^tdPk<3T*ojSweSw=I;RVo6} z%v^HgPbGwx#mI1Oqr7c!vmVw3(K_KjKvGe-q8n@7wlayZ5L0up8vSx;thr4rc7HTP! z+V|#ocAYV}iGN)clF+)yA@r>a&d!wK33mrpNo1dPmosJZDx6&t5VIJNtmF})o4cd% zToDx6EKtX>OW2RFPV_tj<&|s|iZtTF!{(zcq0+jjl3AE@?@om5b(E393HP#R*+4#C z*w>q*W?|i%&>3Joz-=(CuGSl}5ad6Q#?vkaG@Q8E>r~R2c`X{U-{oXsP$3aq6hPo* zTfU#@+0xR!rTh4C$8FON>QK1b+aA8?usU7~7v|4dAd#^m>2$v|NF-pY^}D}3zme6= z^Is{cGnPg#^hQMoeB_eb8D+Ci2Hg@E2AXqEUVrTKV{A;l0(0_5H+1Hay$xW%&akmz z92*})Ral^*`5}9geW)9^P^R_c2!bmJi7TcI`Z7fZq8H)H!fZxyvNN*xPfLFWxM&Gt zdq|>?Q6Z=Tts=P#WMcF4@^r|8aviDp&>)XRr-q?aP$IJ=o>DX_GO{Eavp04|Z53e{aTjrYl4qj$?EbeD7=h?Ng*OeE6 zrOq?P19epdw)l5gJk~sWhi;6yP+1WyQZX9y4xVxQzOWf`c9Pd3qN5jN5lzSH+IJ0T zRloy7_LKM-+N3iib!s*?xFov z_>?+1G;(vmP7H;3jIuZN7Fl!~Tz2kH7V=AOvN_tyQ0`Z?-gZ@bqaJEzw6ssaMJ)^Iw@yo)sB1tT9<6zTwe`xUo@Bn6-D;T z5i&_;+0Fpb7`A9s026bF2(bzvr?tS-i8;JN|=&s#p3HLr4=Q* zqLHYTAjiQF#9*4m^bdcy*KNdBN*2?Tx-Q&r)iS>UylrnkWWP-7e>TJn9!HXSZKlcN zN?Nonk7~_3Yz;^QYjEeSIy=c=$hr@i-!VSldv|mW#ImTsWbAz1j$6qZv`beE4PM`i^o@bW`1cQ&$c3; z=CdQ7wwiV%PqWZ8)V~dDG!ZUqK4l|l+VSa=e9r~b4vOPP!%3$N69=G6%=EGC0WN^g zH@na6NCyW^u_=vNhPwl2#1Joqa&LH7e`CXOsGTy~RGaucxgv|Bf55Y**XV|P`kMD1 zWTWTIoHy0v;0ib(?KiM)kXArXm>9dEtq1KG26eI%;gt~!q^Y6_LGEt!2;S4F<33coKM>7U63yzZ( z>K_>@a&1MlIBLfOYSo493=}?5qI#a5%;()0Eg&iZQtuM8Ki=M$-m%pi;)#@oLg0&| z^*Yhc^MeCW$zf!IX?@)x9i^zXo=uNW>GwWzoRd9b4w!E~=RezAyX1QjbW1^9%qk`k`7{UKIOK+X z<g=Y$EXbhc;x|t7?@ZAqz zuYkIpWk3^5T9%2_+YDg8Sz$qsSryHfAt>Ot6YDTqOrL#hEK?^IwGaQ{opuNPh4Nqg z0u2kGH?|ERt(zFwA)C2^$lJ)I5b~v}lM7#csaldlD%UY%j_z@G5A6>jf$_?B^-afw z!^8W<^+5Gls37+tuli#LK=0(U3_U3kX^keay+m$B%s`sOY?%10P~3zQ2tACfq8YDO&rKH7+AaQ?ri^#x+hQ>d23@NW7UJ7d&q9#>*hQT6`$x|aP`5v zn4m1LQM>v?P8MnYE>-n9wuS5_CfJUVi_%_8j`t+U#l+6_n23?I##boDF;+^uK|b!K z6g#9FiAR9McQ4YRy7JmM1O+7g`MwQ(fuaNV25x&JbtE)yT|C*6Mkj_)G0HEX>3|u?@9w# zp>RNP;c(OiY3G@q*gqOYDylYbLQWcjSQ3Zqqr_@EsDrI@BEiZ{ViIBy-&`vQv4ic?BUy zV;GgS3QESO@Tya`Dtnz$f|7umcIF$`d`KEc42rjQQm~l$p$p66?d{%L^Lk}i7DJFW z3S0uuBWluJ*$hFI2|w}&FRXqeOsNsy!*QL*Ne7gn^NC+qEM*R0N!dyPU%BpcrO2rH zbi6ibjT-~v@t;l_FYJV=zm3~+t9&=MaOLfd%wl?;2AU_OR<3#;%@^m{z%&Df8~jf- z)Qx9^&F`J?=X`#gi|kAL(5i-XxG?#A{lWvVMN{Ua>_HtkM$t<>fK}5d3}x-`6wKAW zTBT1q9)BeYQiT82Aq6EEP8m(|nInhNEQS)shc0o>reZrIYiPu}ap#&ibNT(@J2@7# zEA|udF1hY;3B@L*5poj>Z?Sgmf%c$=3^vK3?M4@eWG}yl4?yuG{lQbt_GApnBHhf@ zv1xg!v*@y|$Ie+#mPI5hJZ}_MU4hAY7S67VDh4F2)vJ0HE_n2zFPomFVgxFL9dM`5 z5Az_AbTa(83yxgP=m!pG4&>wy2;*oD$!0)^_t08-Yk}I*l1z3b97&HbMS$}q>7&&_ zx8Vukt;PQRWg<=*WCSXLO(^(8OVaeUP?2f>$V(^E(V+Yaj3ImMAM|()JzMx`y|3x-vA_n*AAo?4v{KnNvGT)^8eePcaWO?uhaPdpRJLPPkeuUWfzo3 zD1~#DShc5(g9aRHsG4Ka%lJ05Bc1?3{Eyrbz&p8#h!!xi1sc8eotT69>U^OzRPW4h zSlP4J-q7%GdG`xHZkjv;nfsDeU{~CHgg0QOU6_1pk?^*XVr)|&x#P5G|IhEZ#`WhY zeV@~P=1nE#c0<+X;6QF_#mGlnA*Qjj!lmwOb0yO_C%Jd|!JlHbqTinbwo^xbr4@vU zzqfHGp_7s0MLj^Oh$W$XG9T4p0?mzBF^~1XNu~i#M@lZ+pVnC(0En?VLQ`8CpdOM> zF?(@EKo8w^6vxt7V5G|?TeUtMXeL?|?gvye~?R=*f65!|IK{lRpPIDn-vG z*+5SFM|XQSYoO#}YdZVJZX20PD;=T0AAbJ5Q0lh{aGOo+M1p&+fT)gwWQg?6^QDCl zl!x{j1dKU;kA?74SAu1;r!MwtqKEzJ+Eu9q|NQOgJe=2iy;b$@&oK;3sn%NaVj6*H zMFR&7228Czixo(zH1LmdwmPJyS}3(Nab)Si9P^l7G6{E3v>zx#jjQ?BO*^2QaKN$D zRBNUnlnJYuVuPKYeFTzf=Ns7yPp^r<;Z(Q($~b_oHsN_t%NYlOky^vZlS90g!QDJY zy9AM@QXbw}VCMzE)x86>00d`iE8GvB<5ST6C9rxt>hiH`<*Fq|e!`3q8d&VMP^6yr zZq#oS=+9ofZF69u&yZ{1MblnZ#7;v6(@{knw3y{?-HX(TEOK%jlDSSg&y+$YyTtS? zY~6JppbO8K;+F#*6IHnpEvnVus;N-xU#;2Vb2JFn4%#3xkTO#rezki88>Ae5B%!pV zJ5d17Jp>>sa~c_+)YaL!7Po4^4ItdV+=j0lNDvEm8^5|(Fr120@QlwW@FYxra4)N_ zy9T>|+z#9Zl|{(Fr*8>gM!6eB&a0p5yjpVUV)S{IC6VVW#V~o1UcUT6qgjR_1;N0n zqVBw6EYp2E8y1D7 zs$X$`L{UiII{c(V$ZTB-NPA~4#j+r>XHtIhZtrK2jwq{@R z&7Tr4nB~3RFk!bqN9cHk?;B&3DSxA;H%lgWOO+RGFI70`uxLyv8)3{Ms%Zrear_RmB#S=K)tkHy>JJXd#( zb{3=Kj5bS*^d@w@c;nY3g7Vwu59+P+0-h4$hc@EJ{jVm(Tntz3{>~-V9SHY2wS~RV zq8uV`3P(PUKo>3F!LWQgMnkEN(zD$W|BHm_na*mL#4bvCm*EU&hv110-7Z(mm3GH3 z`u2-R(qkfm=szIX9{_|8dX>tM(cB9Dx~=sdTt&aY?IZO1#nNS#NeY%lYlbTW@2GTk z9~j(AwNB~q4MU}dtwtyCVNu#0%U+i@-r}f6=lEJTQmv~(pm+$&*$h&Pig%EV@e_a_ zvK)FR+~`pb6TO^bhF=Pq;uRhp8YRYa2G~Pgw(X64ZxA(fB@dC24x@%3}Mhi+of^+l8Hbo~46mTDSe& zWl(0)wv!$*O8%i=_*{H+piQ{@6UA&S&8;0T8iOOLn_-2EtKEZC8e|U})|9-ArtVFO zuYGwlpD3kgz4@@bHr30hmeRJ1MZ+|TamU`t@hv$U%;|lt7|A}dktO2=WxG*DpyNF| z2(vSl`J3RZ7aX8S2t)zPPVZUqVl0wJ7fS_V(QQVV4#?>j3On>B!?_i6h)bYJ;q9Tw zz~;Y{K3LNTN$C~NJ0%s~XxD58RVO`FH&SSdeU(8B>t}^x~UMV5wuLnadPIFJ(*T4)}=MITUYeUwJPUN&&;G8-m) zw-o9w7F&NSQPCFiY=%T^eqQRu@{B{3D(6Rp?ExOu3S(AkYz=g#y9yddF z+OptUgXd&B3Rav|jOQ>Vpch$RDy+Zji~fscP(JN(DVR$@o>55gsQAWOM}|fbPx&Z1 zfPph3=UnP*%&adX<_hgB7H_Kra8*WVKTiy$MfX)R4*atvB8g9vHMM%cgHusm)bJ#< zC)%d)?Q$dO-hqfJ!X(|f*#Fbd*O_ZC`rVNx;=I&% zQXFuANE?tl7NNkpM&0yTyF9qBM?14I*pnyhTBM6o^DOQCbN*Vi^=HS>JfKgPQHSNn zh6}$%L`i)&eCl33&c?G$;Y;66=P0^x?UZXm?``{P6kL-<3==#4zc#z-({w*Jv4jUQ>0yd#IJ zCKWz^oYSQkMr|N$zOY%qv2Wj7?;z6i)>!yE2kPup0Mv$$e?PoofBW1n124@`BWTe z&o@mhYXz4tDOlyKLC8;vS?0~V&lDbms%Lff7ZF<(iis+5B2Czd zdYs0ttljm-vFCAasLf*OhEj`Cot56Gjwhw$<5;$}0b4w%SL&mU!&MGAN8`gJP)bXk zz`JFUZaxTQi~xV2@0OX0Dx(6iEIOPqRo0^%T(YTcYduKjn~({azS+P#{c?^(+5dbQ z@&DV{DmBLKABBI_e*g2G%Y)QldYIzBfMotREvWx;q^bYC$axP?^AfB2(F2)dz5eet z(ompy>egxXsh{ufHGK2p&y>2V$Ea znQ)VcYJ@@`M1-SeJi{_{gPoS574pT38*pB;XGd7ag~5-MqUJ1iX& zepNNM(*YEG=$!otx^%n88t#uZw-SoUN*cR)>r$IRHFj=%Yp#jQW^bdP6P_86v)kRfX()Cnl*KwYtH0+F zZms$kd%FjY?`xRqhuT-~;FyYTGoY#k4}l$bn6-T$M->ECc<(?luxquYAfn7E*o(vD z7>gk8$%a74@BR;+Z(7%IC0gn;&hm(?g_z&9RIk?J`pPiW4wQGC+3%gzt2 z>pwvj52QgH@OO$LxSh29dYl4^2^pef%CKY2e%c%Qxq8iBpyn=EF1xDK0CHf zurG@SFl{NhpbgTUp`N~1V;Jva1T2XuBSrm1Q@;Qenj^f!5sNZSjSAFh-Dmep`tB!yvV3@K8t*xpI%0gKX{Y-5Moi;0*VI7BgZUbh@SPfWLTl zWK9FMo7ddo=nhf)6L`-dm;D3>&+)iQ~~^ysG%ZA$z(yD z{K9pShNSe&PiY7~C{?r&jQOHNe!~&iK%ojCQJ-20QlZ(B@K?b(Ss*1k=EdO!jPeW= z_!TgMt0+M+M7O5 zFj|q?KcAJwpEZN#wtAp7?xTSJCAj4IoUlMIII~9CEA>|8@<_pk)^PhsP~+2(aKQ+l zJ2A0zPEG_yb2D`(vR1CIU?uH2D1lTo?Wjc8U?Y0Ew9z~p)f2PdYWrs6ITE`T3iS*m zQTLY<6$_>Nk-<^W;{O*$+42cxT@dW3_H>A|y}=^~@a+EC5S^9Ni*V#MQtVi?jPmY+Y48wjKC4IhacnHU14CCZDdJt-rrDzC99fJdhn zyQUPY1u$uBqoU=I6wzRJ%#kSpSUBpu%msr(5C&n4c> zIJoIY3u?e=z*KzR^Z^jL7yp@qT4b1FK#1tmC#y505K%qY6|plvO`iLM*Zrx9P_?Q+ zNqM%V9Nb2v4S}rkgz$TkD*KED!4ogvr(Gt6Q8^(@+2JF80NZsxzK;gTD;>9L5A%}t z8xxf6T?nCJAk9SZFc^c5=?aJh@2gwmvrvLd=oHfd>_Z1s$mmI4aDYxKNB10DE)-YC zf~o}g-+Hlui~=Iy?kah$aB$I1oT1x>M&>rrj?_mgWJm???#>QS=IgI`viwcF^hZ&l z^2#aAOzQ8(m(f-lHf@4G%TK4>|DeJ|%gl6_u0rjUUv0CasUQBq2Rg>vO=?%oM2*ow zWaJk_`7+ETUSDxSfABX^2z<`N^yZjS`aeHADIJgA9oU736qlFXt(Zs{kPK;Qw)`v#767D4 zKz84)->>Li!EG7#X8{I1`U>7o?1Lz^AWpUm1kvB6WfpL z1Hg^u1R+DumCjou=o@aa$k2&vCYt~KDZCw13BaGW(drPYyTFbHeV?%!3xTB0H@@WM}-*fZJD2 zJ5+D`z$fEu+pb1mjdxUE{riU~PSm#|K8>>ScqT=j5omdtu2W?G!~)iohtf|*x!?b!B~jeP2w+URAgn59`!bYF#wT}qA{6f?BxWd0Z3 zoPci7-y~}2wJ~OMR8#!j7Kl{@bQ`G-CA$pl%S|L_u5@0N=^jH4HFnwPT8O0{|O(Ha+>5qpsPYMqAVR{Wnx@-u zvwnto*|us$`bmq46Qqq)u~s0+-RvOsJj%m?JG~9qTbUKmZdTT zW7EymS?HqdnJk~p4VQbNz9}XM#?zScBN>jrED3JryeU39VxBb64)8{tOzBj!($dtW z5w;tw?D_c2?DqPvd(V2GM4L;05V*H7xOOSHQ2=+1GWnA0XzQb*@rCu}57P0-vFQn| zQ86W^&XD}IGb+EnF&h22l&--PDYfl5HnozADA4 zLB!luzKT{HQ9f+o_FZ|m`JFV%3wug>+x=$MD~+$&Da5@}a* zAU9Ph?*!bII1BMWYg5W<_D@%~PBfzW!<=+M!wO z!$cR@N-O=(PuN{!NAs94#qR4Fa*Aa>wLN}`7E$_Ke)A=L+25tl)>y7Xux8~B;FTLi ziXhKXQLCfK_AluG;<6STQ%IG(x*W?0;wF`6MJ^~!Naj5%NX`?8p@Efo@^HWLg0SM1UDrSnsBq>rN&SudW>_u3{r0$212A~fZG+PRW_NngBH z012Hl0V4-gBejsz5n+1@0YR)U0Yxyg`=4oVTJ~=*XmBJgBK(y{*rS zaZ6jQH91Lv@yW=6q`gBa$=^g%JVp}PsYK-zCxQ%Ue;|>Qr^-03bq52!0Sz|A|0ba> z0kyMX<8DZxMgocP^xTLM%$#$PxmPEEMp&AtKp*9xxG9Woz;QnX`KAKkhs?14TsEE{ z>A&Om0gwH2RWmm|AI<4%qnKei{wND5149Wr{or*4Cq9aDDx` zvsVXjKg|X!T}v`UJ`)d|CiTRL%=J>cAKOS1y6BxvEy#CYAM|*##84=o|hlc|Na(|z4V=ffT6umkR)U*uq z(bx+xr{n6AzXkYS4wYCx1h*NmyHod9xx1`VADjV9J~Aic+K!u9r8*Oguf0~AWb$7A zU`fq^<|(juRk&GJU+j_d{L-{Zt-A~ zgzhXaBHWlFkE>hZ4ZZSRPbMuUx(h8{A{q%YI%FHJYTO6uBc#l?gMt&rX#6KGrvh zM?1H1+X+;{k>P@wDHT_#Fqc5t&-zbasfZFca35+dXyT3EUI9Inv7Te^AKH=0eMyJF zY!;T=Rp;k_B?s~c90!etZ=@5!WqS(^ym>VMyD6$_0)X4J?38X!&^@^IeqN-a?hWA< z=y-RJD|P|8HHm|4z*`e{N0SYq!PFV1_vI#Wy`oM~U=(@QHBB@TgaF=Lzj?2TtP8|fv+b0?F#aXv1+otJDuLKdS9Iae?ngW=c zmOyO7(y8cSW1lrHQLCIuUYuKcYGp402Kt1sXA;(Ochw7jnO>PEp4~B=j=*Mo?64#6eyASY`$u(cJ!~6eMR`!^vbIGq1@=a zLPgIp-*nXy#jKRc=s~n#rlb04Kx2{+prkgUO_r#Dqrmo7!1rVWeC z$l!xMp#(mW?G}5Q_z5ZSiA{uI;5kYR0?zsJ3Xll}zzKGfZf@d)l5T=WtRl|yXn={P zrC}l7T?0QVnz9lh@@^BnF`MPeXMPQxDfjkN7@&n6vd3Q;eAs{Dkart+Bo&TGR|aps zjqQWfN)h-`Q|5hFjVqjHqEgeFARCk*i&IXuQGwsS*ipQyGtn zE#V9bO|imCTw3I9!r(iWeljQDx8axp_QhE}td0MTmfJ;nS`WUY`}9+!fg>B@A8|!R z9B3ys=8NwlKsRRrs5CWy(3TC!bCQMk^5+`3{Kd!|zbTiBc)?82L;%eddiRvR43qFv z(~Cs@U>E>L%gG2=iNC%;O${q!hDHIbsimaAoHsJ1Bfg8c!ivs>7o3XR8;F{VlNHS~ zKF&j$9V_5GQ9pwB)wsc$q&Aoc5?8Yk%$*N+SUGX;<>EU)V0?Ju*!RUjjS)O-!1LrC z@nIA2UlVag;^9TE$Vd%~e2{r(|4T^-uy-@HYMv9R6aiHB>3cftPk|4tP)W+qwEILy z3<$qg;PrD?_CF+e5qPYQ%lafolItP(b?%2Q;!r1n8sK?!_8!rV(B)-CBao9S@Ahey z2Q(+>#t}tW%@Yv0V*U8lKFyzQLOv$BquBn3WRieytmz*UOB^bb8}QED03EQ;JIfDX zKgT>%Q-uVH+<6VS!@w{QvA11i@Zecw*2fJZE49FKYn6%D!uGin0k$^JYdAY;WOeX# zsvzPOapXcUazm$(2ytX27#XY8@3B8JCA6T|%DI8%3k?=Y4@Sn`JVqLs1B|SsE6;A|{s614vynVkY3$~0nUC(3LeJ6J;1oTiAqDHUsjCG2a9yG0!84&eLI zKvRW%DrL$5RrZo4#3@k61OvNK+%1=A(;+T{B_t{$@Peg3po8PJh|1oSewu@!;t;!QQC}+$s}LH0WgdI zX=ag{7e^^gfjNDI8SS&rmBVCDC~XES#Ri{`1U;&J{_IDraMsLti9C@Y)}J3_T1+}X z(G>f(7`V@DbLI=4^dg2%A*&)pV(#ND!XM0QIEMFS0_j(qN8L_h+H@%GaNEu)zGdO6 zQewfk7Zr#b0ytunGyP>Z^akRC&)*vMV}IwVvk`EPb)Vv&$Gj81qyxMcSYKxJr9Y6i z`w;IOtIB|X>JqcB719enfpeF>MS9l*D=FalCJOtfDMkoWd*iy}z7+i#dC{dr(vkT&Z&skf{S>_&uc>YfJ$)+rq$qiUiV z`{*PFm@6YABfT4NrD*;j*QN2!XM?rM`^>qiX$<_@-mXfyK!#bWWb@{C+`c?!8&}4Wb*63 z*~_%Do#mCsREghHOUe_>lz5{^f*5S?ydo{sgZ5GA0618PO@L4 zB>pU^oUHvMCR2isot=1okj4R=f%a*DmJla#vG#Qe*rPJ{faW;Omu*Gb!TU-844KIV zc9^La+W+8L;y-?>f!%eF(pr}|IpXKRcIN>a8#MNr5!LL$P!u;c!B+qIC6*Yf{1TPXiSuT%4aq^1t>K8??y(cPjq_s{-TxyKvz`fPCp9{6yIrlC(?bEzO_WrQ-5xgKpC{KS-Bqr6JwNNo$~{^!7e|9y z`r{Y)5T>7hZP>F;{(?m5nn>(w^MV15wNc>uV7cG!s&Y-11iS6@$DPr|w5ARZlDsql z6G<2o3~3neP|E(TD!-PUXElSNAt{DOVp`A5HL>`w|2XQ)vWDAi_p`fAUqA@+qv99a z+QburanHGj8-_wY5?<2a+`RPYf5Z_bT+IMTxRbTnV@TYBKJfvF{beKh%Z`ukg*6mx*FtYzTy(pmzuw zJniaVX)mUQkon-}bz$jNcbaFeg%Z9R^|(ZJjCQl+2CYZV%idnBcebmWW?YxYvo%-o z4de6~o(vlrpVe6qkylS+JbQP7h}|RXJVj{1;~w{Bg?L zuPzrkb5;ck#6Tpe@q%T{X?T(k{*xZ{sUR`1M;x9b)aiM%4lRd9t$w;TzP;%ezst#X z@#&nFva!d*nv7DI%|?l7cg2AXkfaX=DNE1=I#ni%+R)CK7c=wwD|D)+>Wc| zOUp;{7nrrx+KKCp-~)QoY2#D^paKJw*y&m$Cavl$!AuVgK9UU`02F0FLs>9H=v^k^ zm^ffm{U06yj!OCQSMaf~Cov78oou8{mJYa-{%#uD3Q0mH9f3I71p+h8M89@WGFBMv zwzJ~bUQNC5O919ES~b>n_up)5V8#N=Tt&X61d^b#PpsIh{^6AOO4DAdy) zvJ!`HUg@Rt>JCB$QxIz0@0TCo#c5CyzrWn(oH%{87>)Q$^Vwf(c2 zdoA+%#cqN!$Wxf+3bVwq-EzV|RwrNXd>rv;@;x@<@lpFV+?Q_Aop=-hy8$?f=@=a_ z4dW|hUnwwcHEq}&hiKUgn=Hp}G+|%EOQp{*)Z4+f{%X+78{A@QXUjQ>2}m#7bBLjJ zmIh0-jWDl))*1bY>udVl>|<2f!Y5Z%mtFlDfvudE{+xD8aZ{25$doLqPJq3dRpDEB z@tCK1hh|nX=a6Q2>ED4>RjTZmScLn~sIm2;dwGlZ)N1+65t=nmN2B>K=?z;LBr7CT zkZ5~@g`w7JBkByJWw-=6NFc_>N!Y{CdO zDvjFt?Z?d0_b{>Evs!O+<9T_WKt;pLGnl9ySj|S`nO8Et%&6)x9+rnEW4l6FdWKy_ zUec`P`ahpEnziQM-rAUFx$tMqGo{?|xZZ#?CFab-6F8Emc=I06F=+AFqd+!bY=Y^6 zh{eO>0~2y8XX4swST-Nmd|_vQP$g`dITW(1TO-;%CqZ7dStX|H!sPUE70(14y9}=; zSb?C=#v1ob`S8qxzb>txOUFjlc(<_?d?pT3-$6X@$e@fRFPpC+u39G7c#)2woi+ZiW?#o8QT0#s=w5D zF^htk-y72BR^xyem)y;84-Tigm3V>nB0qY{;)$jU?o0ZYU9NJ7L}=0eLlX#oNxwN# zY|mZQ*6?9j(Sp&*ZeaQ=|%S?eKe8`lUjG-)*82{@*Pb#CluZg zXVUSz8BO@Hf%2p@n$lp>%0X2Jk;G7t3%IjMk4u0%>&-xMiWl8*B;_`1>=g6t;*oDu zrPp~PpJYx~P${5FSL0}59KOW{^DRc=>#*6u0GC}l-yMUs!{ZvS6?_RI)mv2qd@goD zKk_6xoa>W!AEmmNY#Og8&wkv~7?2bi6Tl)&G9$df40Gt2WSKg3f8_d85%9}>meBW*!A*g$ZxZpa3d0ix|dNAZ7p z1UOaIcY+;IBv={lf8wvXyyDYgGX!ZZ9EfT83B_I!=Gfbs>7KV3z;#F1@u+ z5DzLXjZ5o~i3io6@kKk?tt%U=pARTz}nc^kj&OjiMy1$lorQh`FP3xRO{k;5GN2VybRRr?(h3kmPzsGi;j zt4)54*bdu2?C1V2j~xO_K9jH4bveTccLdeoGSgmcec@>!}!qyr{k{ zSdBv*`_4q*rgq3||HTFT#cmu*aXxpD7{CHancHBK|IJ>3a%No=9#u^yf=t{Iim4rakkmj zz + .button-container { + margin-bottom: 24px; + } + +{% endblock extra_styles %} + +{% block content %} +
+
+
+
+
{% block title %}Generate Intended Configuration{% endblock title %}
+
+

+ This tool is intended for template developers. Production configuration generation should be initiated from the + Config Overview page. +

+

+ This will render the configuration for the selected device using Jinja templates from the golden config jinja_repository + Git repository for that device. + This feature allows developers to test their configuration templates without running a full "intended configuration" job. See the + + developing intended configuration templates + documentation for more information. +

+

+ Note: + This will perform a git pull on the golden config Jinja template repository to ensure the latest templates are used. +

+ {% render_field form.device %} + {% render_field form.git_repository %} +
+
+
+ + Cancel +
+
+
+
+
+ Intended Configuration + +
+
+ +
+
+
+
+
+{% endblock content %} + +{% block javascript %} + {{ block.super }} + +{% endblock javascript %} diff --git a/nautobot_golden_config/tests/test_api.py b/nautobot_golden_config/tests/test_api.py index 88ed0d8f..13855679 100644 --- a/nautobot_golden_config/tests/test_api.py +++ b/nautobot_golden_config/tests/test_api.py @@ -1,6 +1,5 @@ """Unit tests for nautobot_golden_config.""" -import uuid from copy import deepcopy from unittest.mock import patch @@ -431,15 +430,15 @@ def setUpTestData(cls): platform.network_driver = "arista_eos" platform.save() + cls.git_repository = GitRepository.objects.get(name="test-jinja-repo-1") cls.golden_config_setting = GoldenConfigSetting.objects.create( name="GoldenConfigSetting test api generate intended config", slug="goldenconfigsetting-test-api-generate-intended-config", sot_agg_query=GraphQLQuery.objects.get(name="GC-SoTAgg-Query-2"), dynamic_group=cls.dynamic_group, + jinja_repository=cls.git_repository, ) - cls.git_repository = GitRepository.objects.get(name="test-jinja-repo-1") - def _setup_mock_path(self, MockPath): # pylint: disable=invalid-name mock_path_instance = MockPath.return_value mock_path_instance.__str__.return_value = "test.j2" @@ -474,7 +473,7 @@ def _generate_config(task, *args, **kwargs): response = self.client.get( reverse("plugins-api:nautobot_golden_config-api:generate_intended_config"), - data={"device_id": self.device.pk, "git_repository_id": self.git_repository.pk}, + data={"device_id": self.device.pk}, **self.header, ) @@ -499,7 +498,7 @@ def test_generate_intended_config_failures(self, mock_dispatcher, MockPath, mock # test missing query parameters response = self.client.get( reverse("plugins-api:nautobot_golden_config-api:generate_intended_config"), - data={"git_repository_id": self.git_repository.pk}, + data={}, **self.header, ) self.assertHttpStatus(response, status.HTTP_400_BAD_REQUEST) @@ -509,24 +508,12 @@ def test_generate_intended_config_failures(self, mock_dispatcher, MockPath, mock "Parameter device_id is required", ) - response = self.client.get( - reverse("plugins-api:nautobot_golden_config-api:generate_intended_config"), - data={"device_id": self.device.pk}, - **self.header, - ) - self.assertHttpStatus(response, status.HTTP_400_BAD_REQUEST) - self.assertTrue("detail" in response.data) - self.assertEqual( - response.data["detail"], - "Parameter git_repository_id is required", - ) - # test git repo not present on filesystem mock_path_instance.is_file.return_value = False response = self.client.get( reverse("plugins-api:nautobot_golden_config-api:generate_intended_config"), - data={"device_id": self.device.pk, "git_repository_id": self.git_repository.pk}, + data={"device_id": self.device.pk}, **self.header, ) @@ -556,20 +543,23 @@ def _generate_config(task, *args, **kwargs): response = self.client.get( reverse("plugins-api:nautobot_golden_config-api:generate_intended_config"), - data={"device_id": self.device.pk, "git_repository_id": self.git_repository.pk}, + data={"device_id": self.device.pk}, **self.header, ) self.assertHttpStatus(response, status.HTTP_400_BAD_REQUEST) self.assertTrue("detail" in response.data) - self.assertEqual("Error rendering Jinja template", response.data["detail"]) + self.assertEqual( + response.data["detail"].strip(), + "Error rendering Jinja template: Subtask: GENERATE CONFIG (failed)", + ) # test ensure_git_repository failure mock_ensure_git_repository.side_effect = Exception("Test exception") response = self.client.get( reverse("plugins-api:nautobot_golden_config-api:generate_intended_config"), - data={"device_id": self.device.pk, "git_repository_id": self.git_repository.pk}, + data={"device_id": self.device.pk}, **self.header, ) @@ -577,37 +567,38 @@ def _generate_config(task, *args, **kwargs): self.assertTrue("detail" in response.data) self.assertEqual("Error trying to sync git repository", response.data["detail"]) - # test no sot_agg_query on GoldenConfigSetting - self.golden_config_setting.sot_agg_query = None + # test jinja_repository not set + self.golden_config_setting.jinja_repository = None self.golden_config_setting.save() - response = self.client.get( reverse("plugins-api:nautobot_golden_config-api:generate_intended_config"), - data={"device_id": self.device.pk, "git_repository_id": self.git_repository.pk}, + data={"device_id": self.device.pk}, **self.header, ) self.assertHttpStatus(response, status.HTTP_400_BAD_REQUEST) self.assertTrue("detail" in response.data) - self.assertEqual("Golden Config settings sot_agg_query not set", response.data["detail"]) + self.assertEqual(response.data["detail"], "Golden Config settings jinja_repository not set") + + # test no sot_agg_query on GoldenConfigSetting + self.golden_config_setting.sot_agg_query = None + self.golden_config_setting.save() - # test git_repository instance not found - invalid_uuid = uuid.uuid4() response = self.client.get( reverse("plugins-api:nautobot_golden_config-api:generate_intended_config"), - data={"device_id": self.device.pk, "git_repository_id": invalid_uuid}, + data={"device_id": self.device.pk}, **self.header, ) self.assertHttpStatus(response, status.HTTP_400_BAD_REQUEST) self.assertTrue("detail" in response.data) - self.assertEqual(f"GitRepository with id '{invalid_uuid}' not found", response.data["detail"]) + self.assertEqual("Golden Config settings sot_agg_query not set", response.data["detail"]) # test no GoldenConfigSetting found for device GoldenConfigSetting.objects.all().delete() response = self.client.get( reverse("plugins-api:nautobot_golden_config-api:generate_intended_config"), - data={"device_id": self.device.pk, "git_repository_id": self.git_repository.pk}, + data={"device_id": self.device.pk}, **self.header, ) diff --git a/nautobot_golden_config/urls.py b/nautobot_golden_config/urls.py index f6b55835..c66dd37e 100644 --- a/nautobot_golden_config/urls.py +++ b/nautobot_golden_config/urls.py @@ -23,5 +23,6 @@ urlpatterns = [ path("config-compliance/overview/", views.ConfigComplianceOverview.as_view(), name="configcompliance_overview"), path("config-plan/bulk_deploy/", views.ConfigPlanBulkDeploy.as_view(), name="configplan_bulk-deploy"), + path("generate-intended-config/", views.GenerateIntendedConfigView.as_view(), name="generate_intended_config"), path("docs/", RedirectView.as_view(url=static("nautobot_golden_config/docs/index.html")), name="docs"), ] + router.urls diff --git a/nautobot_golden_config/views.py b/nautobot_golden_config/views.py index 9826a845..024c2044 100644 --- a/nautobot_golden_config/views.py +++ b/nautobot_golden_config/views.py @@ -6,13 +6,14 @@ import yaml from django.contrib import messages +from django.contrib.auth.mixins import PermissionRequiredMixin from django.core.exceptions import ObjectDoesNotExist from django.db.models import Count, ExpressionWrapper, F, FloatField, Max, Q from django.shortcuts import redirect, render from django.urls import reverse from django.utils.html import format_html from django.utils.timezone import make_aware -from django.views.generic import View +from django.views.generic import TemplateView, View from django_pivot.pivot import pivot from nautobot.apps import views from nautobot.core.views import generic @@ -585,3 +586,16 @@ def post(self, request): **job.job_class.serialize_data(request), ) return redirect(job_result.get_absolute_url()) + + +class GenerateIntendedConfigView(PermissionRequiredMixin, TemplateView): + """View to generate the intended configuration.""" + + template_name = "nautobot_golden_config/generate_intended_config.html" + permission_required = ["dcim.view_device", "extras.view_gitrepository"] + + def get_context_data(self, **kwargs): + """Get the context data for the view.""" + context = super().get_context_data(**kwargs) + context["form"] = forms.GenerateIntendedConfigForm() + return context From ab5808bc3bae6538478d6c3cbde645a8b5f41a39 Mon Sep 17 00:00:00 2001 From: Stephen Kiely Date: Wed, 27 Nov 2024 10:26:47 -0600 Subject: [PATCH 2/5] Add total_objs_to_delete and remove the table when deleting all objects. (#833) * Add total_objs_to_delete and remove the table when deleting all objects. These changes bring this into alignment with Nautobot 2.3.11. This also removes the self.store_table, per the TODO it should not be necessary, I was able to confirm through testing in both the unittests and manually in the UI that removing self.store_table did not make any impact to the functionality. * Add back in store_table --- changes/831.fixed | 1 + nautobot_golden_config/views.py | 17 +++++++++++------ pyproject.toml | 2 +- 3 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 changes/831.fixed diff --git a/changes/831.fixed b/changes/831.fixed new file mode 100644 index 00000000..ca92de1c --- /dev/null +++ b/changes/831.fixed @@ -0,0 +1 @@ +Resolved issue with tests failing in Nautobot 2.3.11. diff --git a/nautobot_golden_config/views.py b/nautobot_golden_config/views.py index 024c2044..e094ad66 100644 --- a/nautobot_golden_config/views.py +++ b/nautobot_golden_config/views.py @@ -252,19 +252,20 @@ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.pk_list = None self.report_context = None - self.store_table = None + self.store_table = None # Used to store the table for bulk delete. No longer required in Nautobot 2.3.11 def get_extra_context(self, request, instance=None, **kwargs): """A ConfigCompliance helper function to warn if the Job is not enabled to run.""" context = super().get_extra_context(request, instance) - if self.action == "bulk_destroy": - context["table"] = self.store_table if self.action == "overview": context = {**context, **self.report_context} + # TODO Remove when dropping support for Nautobot < 2.3.11 + if self.action == "bulk_destroy": + context["table"] = self.store_table + context["compliance"] = constant.ENABLE_COMPLIANCE context["backup"] = constant.ENABLE_BACKUP context["intended"] = constant.ENABLE_INTENDED - # TODO: See reference to store_table below for action item add_message([["ComplianceJob", constant.ENABLE_COMPLIANCE]], request) return context @@ -315,10 +316,14 @@ def perform_bulk_destroy(self, request, **kwargs): f"No {self.queryset.model._meta.verbose_name_plural} were selected for deletion.", ) return redirect(self.get_return_url(request)) - # TODO: This does not seem right, it is not clear why data does not just get added to context + + # TODO Remove when dropping support for Nautobot < 2.3.11 self.store_table = table - data.update({"table": table}) + if not request.POST.get("_all"): + data.update({"table": table, "total_objs_to_delete": len(table.rows)}) + else: + data.update({"table": None, "delete_all": True, "total_objs_to_delete": len(table.rows)}) return Response(data) @action(detail=True, methods=["get"]) diff --git a/pyproject.toml b/pyproject.toml index 4384122c..39602ff8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "nautobot-golden-config" -version = "2.2.0" +version = "2.2.1a0" description = "An app for configuration on nautobot" authors = ["Network to Code, LLC "] license = "Apache-2.0" From 7452e560ff25390866a4341272d4bf776247b3b9 Mon Sep 17 00:00:00 2001 From: Stephen Kiely Date: Wed, 27 Nov 2024 17:15:03 -0600 Subject: [PATCH 3/5] Resolved error when accessing the Golden Config Settings list view (#836) --- changes/835.fixed | 1 + nautobot_golden_config/models.py | 1 + 2 files changed, 2 insertions(+) create mode 100644 changes/835.fixed diff --git a/changes/835.fixed b/changes/835.fixed new file mode 100644 index 00000000..11004572 --- /dev/null +++ b/changes/835.fixed @@ -0,0 +1 @@ +Resolved error when accessing the Golden Config Settings list view. diff --git a/nautobot_golden_config/models.py b/nautobot_golden_config/models.py index 72b323db..bbedd895 100644 --- a/nautobot_golden_config/models.py +++ b/nautobot_golden_config/models.py @@ -586,6 +586,7 @@ class GoldenConfigSetting(PrimaryModel): # pylint: disable=too-many-ancestors on_delete=models.PROTECT, related_name="golden_config_setting", ) + is_dynamic_group_associable_model = False objects = GoldenConfigSettingManager() From d71abab81e9e560b759adee43894daf4107f3af5 Mon Sep 17 00:00:00 2001 From: Stephen Kiely Date: Wed, 27 Nov 2024 17:29:27 -0600 Subject: [PATCH 4/5] Prepare for Release 2.2.1 --- changes/827.added | 1 - changes/831.fixed | 1 - changes/835.fixed | 1 - docs/admin/release_notes/version_2.2.md | 11 + poetry.lock | 911 ++++++++++++------------ pyproject.toml | 2 +- 6 files changed, 480 insertions(+), 447 deletions(-) delete mode 100644 changes/827.added delete mode 100644 changes/831.fixed delete mode 100644 changes/835.fixed diff --git a/changes/827.added b/changes/827.added deleted file mode 100644 index d2f8aec3..00000000 --- a/changes/827.added +++ /dev/null @@ -1 +0,0 @@ -Added a web ui for Jinja template developers to render intended configurations. diff --git a/changes/831.fixed b/changes/831.fixed deleted file mode 100644 index ca92de1c..00000000 --- a/changes/831.fixed +++ /dev/null @@ -1 +0,0 @@ -Resolved issue with tests failing in Nautobot 2.3.11. diff --git a/changes/835.fixed b/changes/835.fixed deleted file mode 100644 index 11004572..00000000 --- a/changes/835.fixed +++ /dev/null @@ -1 +0,0 @@ -Resolved error when accessing the Golden Config Settings list view. diff --git a/docs/admin/release_notes/version_2.2.md b/docs/admin/release_notes/version_2.2.md index f6451061..e70cf0fe 100644 --- a/docs/admin/release_notes/version_2.2.md +++ b/docs/admin/release_notes/version_2.2.md @@ -8,6 +8,17 @@ This document describes all new features and changes in the release. The format - Added Python 3.12 support. - Added REST API endpoint for Jinja as first part of journey towards a jinja live editor. +## [v2.2.1 (2024-11-27)](https://github.com/nautobot/nautobot-app-golden-config/releases/tag/v2.2.1) + +### Added + +- [#827](https://github.com/nautobot/nautobot-app-golden-config/issues/827) - Added a web ui for Jinja template developers to render intended configurations. + +### Fixed + +- [#831](https://github.com/nautobot/nautobot-app-golden-config/issues/831) - Resolved issue with tests failing in Nautobot 2.3.11. +- [#835](https://github.com/nautobot/nautobot-app-golden-config/issues/835) - Resolved error when accessing the Golden Config Settings list view. + ## [v2.2.0 (2024-11-04)](https://github.com/nautobot/nautobot-app-golden-config/releases/tag/v2.2.0) ### Added diff --git a/poetry.lock b/poetry.lock index 45dbd05f..1d6ee631 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2,13 +2,13 @@ [[package]] name = "amqp" -version = "5.2.0" +version = "5.3.1" description = "Low-level AMQP client for Python (fork of amqplib)." optional = false python-versions = ">=3.6" files = [ - {file = "amqp-5.2.0-py3-none-any.whl", hash = "sha256:827cb12fb0baa892aad844fd95258143bce4027fdac4fccddbc43330fd281637"}, - {file = "amqp-5.2.0.tar.gz", hash = "sha256:a1ecff425ad063ad42a486c902807d1482311481c8ad95a72694b2975e75f7fd"}, + {file = "amqp-5.3.1-py3-none-any.whl", hash = "sha256:43b3319e1b4e7d1251833a93d672b4af1e40f3d632d479b98661a95f117880a2"}, + {file = "amqp-5.3.1.tar.gz", hash = "sha256:cddc00c725449522023bad949f70fff7b48f0b1ade74d170a6f10ab044739432"}, ] [package.dependencies] @@ -129,13 +129,13 @@ wheel = ">=0.23.0,<1.0" [[package]] name = "async-timeout" -version = "4.0.3" +version = "5.0.1" description = "Timeout context manager for asyncio programs" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, - {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, + {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, + {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, ] [[package]] @@ -233,38 +233,36 @@ tzdata = ["tzdata"] [[package]] name = "bcrypt" -version = "4.2.0" +version = "4.2.1" description = "Modern password hashing for your software and your servers" optional = false python-versions = ">=3.7" files = [ - {file = "bcrypt-4.2.0-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:096a15d26ed6ce37a14c1ac1e48119660f21b24cba457f160a4b830f3fe6b5cb"}, - {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c02d944ca89d9b1922ceb8a46460dd17df1ba37ab66feac4870f6862a1533c00"}, - {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d84cf6d877918620b687b8fd1bf7781d11e8a0998f576c7aa939776b512b98d"}, - {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:1bb429fedbe0249465cdd85a58e8376f31bb315e484f16e68ca4c786dcc04291"}, - {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:655ea221910bcac76ea08aaa76df427ef8625f92e55a8ee44fbf7753dbabb328"}, - {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:1ee38e858bf5d0287c39b7a1fc59eec64bbf880c7d504d3a06a96c16e14058e7"}, - {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:0da52759f7f30e83f1e30a888d9163a81353ef224d82dc58eb5bb52efcabc399"}, - {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3698393a1b1f1fd5714524193849d0c6d524d33523acca37cd28f02899285060"}, - {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:762a2c5fb35f89606a9fde5e51392dad0cd1ab7ae64149a8b935fe8d79dd5ed7"}, - {file = "bcrypt-4.2.0-cp37-abi3-win32.whl", hash = "sha256:5a1e8aa9b28ae28020a3ac4b053117fb51c57a010b9f969603ed885f23841458"}, - {file = "bcrypt-4.2.0-cp37-abi3-win_amd64.whl", hash = "sha256:8f6ede91359e5df88d1f5c1ef47428a4420136f3ce97763e31b86dd8280fbdf5"}, - {file = "bcrypt-4.2.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:c52aac18ea1f4a4f65963ea4f9530c306b56ccd0c6f8c8da0c06976e34a6e841"}, - {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3bbbfb2734f0e4f37c5136130405332640a1e46e6b23e000eeff2ba8d005da68"}, - {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3413bd60460f76097ee2e0a493ccebe4a7601918219c02f503984f0a7ee0aebe"}, - {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8d7bb9c42801035e61c109c345a28ed7e84426ae4865511eb82e913df18f58c2"}, - {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3d3a6d28cb2305b43feac298774b997e372e56c7c7afd90a12b3dc49b189151c"}, - {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:9c1c4ad86351339c5f320ca372dfba6cb6beb25e8efc659bedd918d921956bae"}, - {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:27fe0f57bb5573104b5a6de5e4153c60814c711b29364c10a75a54bb6d7ff48d"}, - {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:8ac68872c82f1add6a20bd489870c71b00ebacd2e9134a8aa3f98a0052ab4b0e"}, - {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:cb2a8ec2bc07d3553ccebf0746bbf3d19426d1c6d1adbd4fa48925f66af7b9e8"}, - {file = "bcrypt-4.2.0-cp39-abi3-win32.whl", hash = "sha256:77800b7147c9dc905db1cba26abe31e504d8247ac73580b4aa179f98e6608f34"}, - {file = "bcrypt-4.2.0-cp39-abi3-win_amd64.whl", hash = "sha256:61ed14326ee023917ecd093ee6ef422a72f3aec6f07e21ea5f10622b735538a9"}, - {file = "bcrypt-4.2.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:39e1d30c7233cfc54f5c3f2c825156fe044efdd3e0b9d309512cc514a263ec2a"}, - {file = "bcrypt-4.2.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f4f4acf526fcd1c34e7ce851147deedd4e26e6402369304220250598b26448db"}, - {file = "bcrypt-4.2.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:1ff39b78a52cf03fdf902635e4c81e544714861ba3f0efc56558979dd4f09170"}, - {file = "bcrypt-4.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:373db9abe198e8e2c70d12b479464e0d5092cc122b20ec504097b5f2297ed184"}, - {file = "bcrypt-4.2.0.tar.gz", hash = "sha256:cf69eaf5185fd58f268f805b505ce31f9b9fc2d64b376642164e9244540c1221"}, + {file = "bcrypt-4.2.1-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:1340411a0894b7d3ef562fb233e4b6ed58add185228650942bdc885362f32c17"}, + {file = "bcrypt-4.2.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1ee315739bc8387aa36ff127afc99120ee452924e0df517a8f3e4c0187a0f5f"}, + {file = "bcrypt-4.2.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8dbd0747208912b1e4ce730c6725cb56c07ac734b3629b60d4398f082ea718ad"}, + {file = "bcrypt-4.2.1-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:aaa2e285be097050dba798d537b6efd9b698aa88eef52ec98d23dcd6d7cf6fea"}, + {file = "bcrypt-4.2.1-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:76d3e352b32f4eeb34703370e370997065d28a561e4a18afe4fef07249cb4396"}, + {file = "bcrypt-4.2.1-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:b7703ede632dc945ed1172d6f24e9f30f27b1b1a067f32f68bf169c5f08d0425"}, + {file = "bcrypt-4.2.1-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:89df2aea2c43be1e1fa066df5f86c8ce822ab70a30e4c210968669565c0f4685"}, + {file = "bcrypt-4.2.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:04e56e3fe8308a88b77e0afd20bec516f74aecf391cdd6e374f15cbed32783d6"}, + {file = "bcrypt-4.2.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:cfdf3d7530c790432046c40cda41dfee8c83e29482e6a604f8930b9930e94139"}, + {file = "bcrypt-4.2.1-cp37-abi3-win32.whl", hash = "sha256:adadd36274510a01f33e6dc08f5824b97c9580583bd4487c564fc4617b328005"}, + {file = "bcrypt-4.2.1-cp37-abi3-win_amd64.whl", hash = "sha256:8c458cd103e6c5d1d85cf600e546a639f234964d0228909d8f8dbeebff82d526"}, + {file = "bcrypt-4.2.1-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:8ad2f4528cbf0febe80e5a3a57d7a74e6635e41af1ea5675282a33d769fba413"}, + {file = "bcrypt-4.2.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:909faa1027900f2252a9ca5dfebd25fc0ef1417943824783d1c8418dd7d6df4a"}, + {file = "bcrypt-4.2.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cde78d385d5e93ece5479a0a87f73cd6fa26b171c786a884f955e165032b262c"}, + {file = "bcrypt-4.2.1-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:533e7f3bcf2f07caee7ad98124fab7499cb3333ba2274f7a36cf1daee7409d99"}, + {file = "bcrypt-4.2.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:687cf30e6681eeda39548a93ce9bfbb300e48b4d445a43db4298d2474d2a1e54"}, + {file = "bcrypt-4.2.1-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:041fa0155c9004eb98a232d54da05c0b41d4b8e66b6fc3cb71b4b3f6144ba837"}, + {file = "bcrypt-4.2.1-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f85b1ffa09240c89aa2e1ae9f3b1c687104f7b2b9d2098da4e923f1b7082d331"}, + {file = "bcrypt-4.2.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c6f5fa3775966cca251848d4d5393ab016b3afed251163c1436fefdec3b02c84"}, + {file = "bcrypt-4.2.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:807261df60a8b1ccd13e6599c779014a362ae4e795f5c59747f60208daddd96d"}, + {file = "bcrypt-4.2.1-cp39-abi3-win32.whl", hash = "sha256:b588af02b89d9fad33e5f98f7838bf590d6d692df7153647724a7f20c186f6bf"}, + {file = "bcrypt-4.2.1-cp39-abi3-win_amd64.whl", hash = "sha256:e84e0e6f8e40a242b11bce56c313edc2be121cec3e0ec2d76fce01f6af33c07c"}, + {file = "bcrypt-4.2.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:76132c176a6d9953cdc83c296aeaed65e1a708485fd55abf163e0d9f8f16ce0e"}, + {file = "bcrypt-4.2.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e158009a54c4c8bc91d5e0da80920d048f918c61a581f0a63e4e93bb556d362f"}, + {file = "bcrypt-4.2.1.tar.gz", hash = "sha256:6765386e3ab87f569b276988742039baab087b2cdb01e809d74e74503c2faafe"}, ] [package.extras] @@ -1365,13 +1363,13 @@ sidecar = ["drf-spectacular-sidecar"] [[package]] name = "drf-spectacular-sidecar" -version = "2024.7.1" +version = "2024.11.1" description = "Serve self-contained distribution builds of Swagger UI and Redoc with Django" optional = false python-versions = ">=3.6" files = [ - {file = "drf_spectacular_sidecar-2024.7.1-py3-none-any.whl", hash = "sha256:5dc8b38ad153e90b328152674c7959bf114bf86360a617a5a4516e135cb832bc"}, - {file = "drf_spectacular_sidecar-2024.7.1.tar.gz", hash = "sha256:beb992d6ece806a2d422ad626983e2472c0a5550de9647a7ed6764716a5abdfe"}, + {file = "drf_spectacular_sidecar-2024.11.1-py3-none-any.whl", hash = "sha256:e2efd49c5bd1a607fd5d120d9da58d78e587852db8220b8880282a849296ff83"}, + {file = "drf_spectacular_sidecar-2024.11.1.tar.gz", hash = "sha256:fcfccc72cbdbe41e93f8416fa0c712d14126b8d1629e65c09c07c8edea24aad0"}, ] [package.dependencies] @@ -1424,59 +1422,61 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth [[package]] name = "fonttools" -version = "4.54.1" +version = "4.55.0" description = "Tools to manipulate font files" optional = false python-versions = ">=3.8" files = [ - {file = "fonttools-4.54.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7ed7ee041ff7b34cc62f07545e55e1468808691dddfd315d51dd82a6b37ddef2"}, - {file = "fonttools-4.54.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:41bb0b250c8132b2fcac148e2e9198e62ff06f3cc472065dff839327945c5882"}, - {file = "fonttools-4.54.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7965af9b67dd546e52afcf2e38641b5be956d68c425bef2158e95af11d229f10"}, - {file = "fonttools-4.54.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:278913a168f90d53378c20c23b80f4e599dca62fbffae4cc620c8eed476b723e"}, - {file = "fonttools-4.54.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0e88e3018ac809b9662615072dcd6b84dca4c2d991c6d66e1970a112503bba7e"}, - {file = "fonttools-4.54.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4aa4817f0031206e637d1e685251ac61be64d1adef111060df84fdcbc6ab6c44"}, - {file = "fonttools-4.54.1-cp310-cp310-win32.whl", hash = "sha256:7e3b7d44e18c085fd8c16dcc6f1ad6c61b71ff463636fcb13df7b1b818bd0c02"}, - {file = "fonttools-4.54.1-cp310-cp310-win_amd64.whl", hash = "sha256:dd9cc95b8d6e27d01e1e1f1fae8559ef3c02c76317da650a19047f249acd519d"}, - {file = "fonttools-4.54.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5419771b64248484299fa77689d4f3aeed643ea6630b2ea750eeab219588ba20"}, - {file = "fonttools-4.54.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:301540e89cf4ce89d462eb23a89464fef50915255ece765d10eee8b2bf9d75b2"}, - {file = "fonttools-4.54.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76ae5091547e74e7efecc3cbf8e75200bc92daaeb88e5433c5e3e95ea8ce5aa7"}, - {file = "fonttools-4.54.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82834962b3d7c5ca98cb56001c33cf20eb110ecf442725dc5fdf36d16ed1ab07"}, - {file = "fonttools-4.54.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d26732ae002cc3d2ecab04897bb02ae3f11f06dd7575d1df46acd2f7c012a8d8"}, - {file = "fonttools-4.54.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:58974b4987b2a71ee08ade1e7f47f410c367cdfc5a94fabd599c88165f56213a"}, - {file = "fonttools-4.54.1-cp311-cp311-win32.whl", hash = "sha256:ab774fa225238986218a463f3fe151e04d8c25d7de09df7f0f5fce27b1243dbc"}, - {file = "fonttools-4.54.1-cp311-cp311-win_amd64.whl", hash = "sha256:07e005dc454eee1cc60105d6a29593459a06321c21897f769a281ff2d08939f6"}, - {file = "fonttools-4.54.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:54471032f7cb5fca694b5f1a0aaeba4af6e10ae989df408e0216f7fd6cdc405d"}, - {file = "fonttools-4.54.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8fa92cb248e573daab8d032919623cc309c005086d743afb014c836636166f08"}, - {file = "fonttools-4.54.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a911591200114969befa7f2cb74ac148bce5a91df5645443371aba6d222e263"}, - {file = "fonttools-4.54.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93d458c8a6a354dc8b48fc78d66d2a8a90b941f7fec30e94c7ad9982b1fa6bab"}, - {file = "fonttools-4.54.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5eb2474a7c5be8a5331146758debb2669bf5635c021aee00fd7c353558fc659d"}, - {file = "fonttools-4.54.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c9c563351ddc230725c4bdf7d9e1e92cbe6ae8553942bd1fb2b2ff0884e8b714"}, - {file = "fonttools-4.54.1-cp312-cp312-win32.whl", hash = "sha256:fdb062893fd6d47b527d39346e0c5578b7957dcea6d6a3b6794569370013d9ac"}, - {file = "fonttools-4.54.1-cp312-cp312-win_amd64.whl", hash = "sha256:e4564cf40cebcb53f3dc825e85910bf54835e8a8b6880d59e5159f0f325e637e"}, - {file = "fonttools-4.54.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6e37561751b017cf5c40fce0d90fd9e8274716de327ec4ffb0df957160be3bff"}, - {file = "fonttools-4.54.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:357cacb988a18aace66e5e55fe1247f2ee706e01debc4b1a20d77400354cddeb"}, - {file = "fonttools-4.54.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8e953cc0bddc2beaf3a3c3b5dd9ab7554677da72dfaf46951e193c9653e515a"}, - {file = "fonttools-4.54.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:58d29b9a294573d8319f16f2f79e42428ba9b6480442fa1836e4eb89c4d9d61c"}, - {file = "fonttools-4.54.1-cp313-cp313-win32.whl", hash = "sha256:9ef1b167e22709b46bf8168368b7b5d3efeaaa746c6d39661c1b4405b6352e58"}, - {file = "fonttools-4.54.1-cp313-cp313-win_amd64.whl", hash = "sha256:262705b1663f18c04250bd1242b0515d3bbae177bee7752be67c979b7d47f43d"}, - {file = "fonttools-4.54.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ed2f80ca07025551636c555dec2b755dd005e2ea8fbeb99fc5cdff319b70b23b"}, - {file = "fonttools-4.54.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9dc080e5a1c3b2656caff2ac2633d009b3a9ff7b5e93d0452f40cd76d3da3b3c"}, - {file = "fonttools-4.54.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d152d1be65652fc65e695e5619e0aa0982295a95a9b29b52b85775243c06556"}, - {file = "fonttools-4.54.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8583e563df41fdecef31b793b4dd3af8a9caa03397be648945ad32717a92885b"}, - {file = "fonttools-4.54.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:0d1d353ef198c422515a3e974a1e8d5b304cd54a4c2eebcae708e37cd9eeffb1"}, - {file = "fonttools-4.54.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:fda582236fee135d4daeca056c8c88ec5f6f6d88a004a79b84a02547c8f57386"}, - {file = "fonttools-4.54.1-cp38-cp38-win32.whl", hash = "sha256:e7d82b9e56716ed32574ee106cabca80992e6bbdcf25a88d97d21f73a0aae664"}, - {file = "fonttools-4.54.1-cp38-cp38-win_amd64.whl", hash = "sha256:ada215fd079e23e060157aab12eba0d66704316547f334eee9ff26f8c0d7b8ab"}, - {file = "fonttools-4.54.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f5b8a096e649768c2f4233f947cf9737f8dbf8728b90e2771e2497c6e3d21d13"}, - {file = "fonttools-4.54.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4e10d2e0a12e18f4e2dd031e1bf7c3d7017be5c8dbe524d07706179f355c5dac"}, - {file = "fonttools-4.54.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31c32d7d4b0958600eac75eaf524b7b7cb68d3a8c196635252b7a2c30d80e986"}, - {file = "fonttools-4.54.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c39287f5c8f4a0c5a55daf9eaf9ccd223ea59eed3f6d467133cc727d7b943a55"}, - {file = "fonttools-4.54.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a7a310c6e0471602fe3bf8efaf193d396ea561486aeaa7adc1f132e02d30c4b9"}, - {file = "fonttools-4.54.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d3b659d1029946f4ff9b6183984578041b520ce0f8fb7078bb37ec7445806b33"}, - {file = "fonttools-4.54.1-cp39-cp39-win32.whl", hash = "sha256:e96bc94c8cda58f577277d4a71f51c8e2129b8b36fd05adece6320dd3d57de8a"}, - {file = "fonttools-4.54.1-cp39-cp39-win_amd64.whl", hash = "sha256:e8a4b261c1ef91e7188a30571be6ad98d1c6d9fa2427244c545e2fa0a2494dd7"}, - {file = "fonttools-4.54.1-py3-none-any.whl", hash = "sha256:37cddd62d83dc4f72f7c3f3c2bcf2697e89a30efb152079896544a93907733bd"}, - {file = "fonttools-4.54.1.tar.gz", hash = "sha256:957f669d4922f92c171ba01bef7f29410668db09f6c02111e22b2bce446f3285"}, + {file = "fonttools-4.55.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:51c029d4c0608a21a3d3d169dfc3fb776fde38f00b35ca11fdab63ba10a16f61"}, + {file = "fonttools-4.55.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bca35b4e411362feab28e576ea10f11268b1aeed883b9f22ed05675b1e06ac69"}, + {file = "fonttools-4.55.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ce4ba6981e10f7e0ccff6348e9775ce25ffadbee70c9fd1a3737e3e9f5fa74f"}, + {file = "fonttools-4.55.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31d00f9852a6051dac23294a4cf2df80ced85d1d173a61ba90a3d8f5abc63c60"}, + {file = "fonttools-4.55.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e198e494ca6e11f254bac37a680473a311a88cd40e58f9cc4dc4911dfb686ec6"}, + {file = "fonttools-4.55.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7208856f61770895e79732e1dcbe49d77bd5783adf73ae35f87fcc267df9db81"}, + {file = "fonttools-4.55.0-cp310-cp310-win32.whl", hash = "sha256:e7e6a352ff9e46e8ef8a3b1fe2c4478f8a553e1b5a479f2e899f9dc5f2055880"}, + {file = "fonttools-4.55.0-cp310-cp310-win_amd64.whl", hash = "sha256:636caaeefe586d7c84b5ee0734c1a5ab2dae619dc21c5cf336f304ddb8f6001b"}, + {file = "fonttools-4.55.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fa34aa175c91477485c44ddfbb51827d470011e558dfd5c7309eb31bef19ec51"}, + {file = "fonttools-4.55.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:37dbb3fdc2ef7302d3199fb12468481cbebaee849e4b04bc55b77c24e3c49189"}, + {file = "fonttools-4.55.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5263d8e7ef3c0ae87fbce7f3ec2f546dc898d44a337e95695af2cd5ea21a967"}, + {file = "fonttools-4.55.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f307f6b5bf9e86891213b293e538d292cd1677e06d9faaa4bf9c086ad5f132f6"}, + {file = "fonttools-4.55.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f0a4b52238e7b54f998d6a56b46a2c56b59c74d4f8a6747fb9d4042190f37cd3"}, + {file = "fonttools-4.55.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3e569711464f777a5d4ef522e781dc33f8095ab5efd7548958b36079a9f2f88c"}, + {file = "fonttools-4.55.0-cp311-cp311-win32.whl", hash = "sha256:2b3ab90ec0f7b76c983950ac601b58949f47aca14c3f21eed858b38d7ec42b05"}, + {file = "fonttools-4.55.0-cp311-cp311-win_amd64.whl", hash = "sha256:aa046f6a63bb2ad521004b2769095d4c9480c02c1efa7d7796b37826508980b6"}, + {file = "fonttools-4.55.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:838d2d8870f84fc785528a692e724f2379d5abd3fc9dad4d32f91cf99b41e4a7"}, + {file = "fonttools-4.55.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f46b863d74bab7bb0d395f3b68d3f52a03444964e67ce5c43ce43a75efce9246"}, + {file = "fonttools-4.55.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33b52a9cfe4e658e21b1f669f7309b4067910321757fec53802ca8f6eae96a5a"}, + {file = "fonttools-4.55.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:732a9a63d6ea4a81b1b25a1f2e5e143761b40c2e1b79bb2b68e4893f45139a40"}, + {file = "fonttools-4.55.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7dd91ac3fcb4c491bb4763b820bcab6c41c784111c24172616f02f4bc227c17d"}, + {file = "fonttools-4.55.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1f0e115281a32ff532118aa851ef497a1b7cda617f4621c1cdf81ace3e36fb0c"}, + {file = "fonttools-4.55.0-cp312-cp312-win32.whl", hash = "sha256:6c99b5205844f48a05cb58d4a8110a44d3038c67ed1d79eb733c4953c628b0f6"}, + {file = "fonttools-4.55.0-cp312-cp312-win_amd64.whl", hash = "sha256:f8c8c76037d05652510ae45be1cd8fb5dd2fd9afec92a25374ac82255993d57c"}, + {file = "fonttools-4.55.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8118dc571921dc9e4b288d9cb423ceaf886d195a2e5329cc427df82bba872cd9"}, + {file = "fonttools-4.55.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01124f2ca6c29fad4132d930da69158d3f49b2350e4a779e1efbe0e82bd63f6c"}, + {file = "fonttools-4.55.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81ffd58d2691f11f7c8438796e9f21c374828805d33e83ff4b76e4635633674c"}, + {file = "fonttools-4.55.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5435e5f1eb893c35c2bc2b9cd3c9596b0fcb0a59e7a14121562986dd4c47b8dd"}, + {file = "fonttools-4.55.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d12081729280c39d001edd0f4f06d696014c26e6e9a0a55488fabc37c28945e4"}, + {file = "fonttools-4.55.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7ad1f1b98ab6cb927ab924a38a8649f1ffd7525c75fe5b594f5dab17af70e18"}, + {file = "fonttools-4.55.0-cp313-cp313-win32.whl", hash = "sha256:abe62987c37630dca69a104266277216de1023cf570c1643bb3a19a9509e7a1b"}, + {file = "fonttools-4.55.0-cp313-cp313-win_amd64.whl", hash = "sha256:2863555ba90b573e4201feaf87a7e71ca3b97c05aa4d63548a4b69ea16c9e998"}, + {file = "fonttools-4.55.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:00f7cf55ad58a57ba421b6a40945b85ac7cc73094fb4949c41171d3619a3a47e"}, + {file = "fonttools-4.55.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f27526042efd6f67bfb0cc2f1610fa20364396f8b1fc5edb9f45bb815fb090b2"}, + {file = "fonttools-4.55.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e67974326af6a8879dc2a4ec63ab2910a1c1a9680ccd63e4a690950fceddbe"}, + {file = "fonttools-4.55.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61dc0a13451143c5e987dec5254d9d428f3c2789a549a7cf4f815b63b310c1cc"}, + {file = "fonttools-4.55.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:b2e526b325a903868c62155a6a7e24df53f6ce4c5c3160214d8fe1be2c41b478"}, + {file = "fonttools-4.55.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:b7ef9068a1297714e6fefe5932c33b058aa1d45a2b8be32a4c6dee602ae22b5c"}, + {file = "fonttools-4.55.0-cp38-cp38-win32.whl", hash = "sha256:55718e8071be35dff098976bc249fc243b58efa263768c611be17fe55975d40a"}, + {file = "fonttools-4.55.0-cp38-cp38-win_amd64.whl", hash = "sha256:553bd4f8cc327f310c20158e345e8174c8eed49937fb047a8bda51daf2c353c8"}, + {file = "fonttools-4.55.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f901cef813f7c318b77d1c5c14cf7403bae5cb977cede023e22ba4316f0a8f6"}, + {file = "fonttools-4.55.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8c9679fc0dd7e8a5351d321d8d29a498255e69387590a86b596a45659a39eb0d"}, + {file = "fonttools-4.55.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd2820a8b632f3307ebb0bf57948511c2208e34a4939cf978333bc0a3f11f838"}, + {file = "fonttools-4.55.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23bbbb49bec613a32ed1b43df0f2b172313cee690c2509f1af8fdedcf0a17438"}, + {file = "fonttools-4.55.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a656652e1f5d55b9728937a7e7d509b73d23109cddd4e89ee4f49bde03b736c6"}, + {file = "fonttools-4.55.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f50a1f455902208486fbca47ce33054208a4e437b38da49d6721ce2fef732fcf"}, + {file = "fonttools-4.55.0-cp39-cp39-win32.whl", hash = "sha256:161d1ac54c73d82a3cded44202d0218ab007fde8cf194a23d3dd83f7177a2f03"}, + {file = "fonttools-4.55.0-cp39-cp39-win_amd64.whl", hash = "sha256:ca7fd6987c68414fece41c96836e945e1f320cda56fc96ffdc16e54a44ec57a2"}, + {file = "fonttools-4.55.0-py3-none-any.whl", hash = "sha256:12db5888cd4dd3fcc9f0ee60c6edd3c7e1fd44b7dd0f31381ea03df68f8a153f"}, + {file = "fonttools-4.55.0.tar.gz", hash = "sha256:7636acc6ab733572d5e7eec922b254ead611f1cdad17be3f0be7418e8bfaca71"}, ] [package.extras] @@ -1698,13 +1698,13 @@ PyYAML = ">=5.4" [[package]] name = "httpcore" -version = "1.0.6" +version = "1.0.7" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" files = [ - {file = "httpcore-1.0.6-py3-none-any.whl", hash = "sha256:27b59625743b85577a8c0e10e55b50b5368a4f2cfe8cc7bcfa9cf00829c2682f"}, - {file = "httpcore-1.0.6.tar.gz", hash = "sha256:73f6dbd6eb8c21bbf7ef8efad555481853f5f6acdeaff1edb0694289269ee17f"}, + {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, + {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, ] [package.dependencies] @@ -1891,22 +1891,22 @@ colors = ["colorama (>=0.4.6)"] [[package]] name = "jedi" -version = "0.19.1" +version = "0.19.2" description = "An autocompletion tool for Python that can be used for text editors." optional = false python-versions = ">=3.6" files = [ - {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"}, - {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, + {file = "jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9"}, + {file = "jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0"}, ] [package.dependencies] -parso = ">=0.8.3,<0.9.0" +parso = ">=0.8.4,<0.9.0" [package.extras] docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] -testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<9.0.0)"] [[package]] name = "jinja2" @@ -2740,13 +2740,13 @@ typing-extensions = ">=4.3.0" [[package]] name = "nautobot" -version = "2.3.9" +version = "2.3.12" description = "Source of truth and network automation platform." optional = false python-versions = "<3.13,>=3.8" files = [ - {file = "nautobot-2.3.9-py3-none-any.whl", hash = "sha256:6aa720ba4ed285d25583769b91a9ef27c83315e5809d36d4b79e21decba1d036"}, - {file = "nautobot-2.3.9.tar.gz", hash = "sha256:2c3c42ccdf20597c442b1de73abbea767057e6d4ef254b8327e2c4c8042ce989"}, + {file = "nautobot-2.3.12-py3-none-any.whl", hash = "sha256:f6317d0af6c592b0e7d95bf2dbfbd1826976f8ceb284fe1457dd18509a2b5996"}, + {file = "nautobot-2.3.12.tar.gz", hash = "sha256:c81c2ed2691f7132194d560d7c0dbe0931b0bc6afdbb2a1edfc7db797ad66237"}, ] [package.dependencies] @@ -2797,9 +2797,9 @@ social-auth-app-django = ">=5.4.2,<5.5.0" svgwrite = ">=1.4.2,<1.5.0" [package.extras] -all = ["django-auth-ldap (>=4.8.0,<4.9.0)", "django-storages (==1.14.3)", "mysqlclient (>=2.2.3,<2.3.0)", "napalm (>=4.1.0,<6.0.0)", "social-auth-core[saml] (>=4.5.3,<4.6.0)"] +all = ["django-auth-ldap (>=4.8.0,<4.9.0)", "django-storages (==1.14.3)", "mysqlclient (>=2.2.6,<2.3.0)", "napalm (>=4.1.0,<6.0.0)", "social-auth-core[saml] (>=4.5.3,<4.6.0)"] ldap = ["django-auth-ldap (>=4.8.0,<4.9.0)"] -mysql = ["mysqlclient (>=2.2.3,<2.3.0)"] +mysql = ["mysqlclient (>=2.2.6,<2.3.0)"] napalm = ["napalm (>=4.1.0,<6.0.0)"] remote-storage = ["django-storages (==1.14.3)"] sso = ["social-auth-core[saml] (>=4.5.3,<4.6.0)"] @@ -3026,13 +3026,13 @@ nornir = ">=3,<4" [[package]] name = "ntc-templates" -version = "7.3.0" +version = "7.4.0" description = "TextFSM Templates for Network Devices, and Python wrapper for TextFSM's CliTable." optional = false python-versions = "<4.0,>=3.8" files = [ - {file = "ntc_templates-7.3.0-py3-none-any.whl", hash = "sha256:1a5aad1ee09689136013ba85be4a64d0a12f58c05c170085a5e4b99ba3d7da85"}, - {file = "ntc_templates-7.3.0.tar.gz", hash = "sha256:6ac605fe745b5757e0ae703c5561e0181527402c62b054d042cf622a3ab0e5f7"}, + {file = "ntc_templates-7.4.0-py3-none-any.whl", hash = "sha256:e113991ab266590a76b021d947a6e870cc46624996492402e0b6f8d691289cbe"}, + {file = "ntc_templates-7.4.0.tar.gz", hash = "sha256:898948948983237a0cc739b55d19890148badc0f6521f85245bca9e7d953f4e2"}, ] [package.dependencies] @@ -3836,66 +3836,66 @@ files = [ [[package]] name = "pyuwsgi" -version = "2.0.27.post1" +version = "2.0.28.post1" description = "The uWSGI server" optional = false python-versions = "*" files = [ - {file = "pyuwsgi-2.0.27.post1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:293295cc1a340dd26499871a2e2afee05b03eee17162209ded5b32f089ccf114"}, - {file = "pyuwsgi-2.0.27.post1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4daccecaf11105ebe4ce69d8fa7fccb38a66eca5b0bfe508a07d1d935b79f1d"}, - {file = "pyuwsgi-2.0.27.post1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f422324d55b52ca928fe6e48e94a4fa18da613b59f586a0c882ba84981e8aab0"}, - {file = "pyuwsgi-2.0.27.post1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:354078fc4174683d0e52c02c19cf1646fae54c424d3506437c26bdcdb57980ef"}, - {file = "pyuwsgi-2.0.27.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c4e9c2524812bf0839af2a14379f0b89d8a31fd975e6fbdbad652cce94d2582"}, - {file = "pyuwsgi-2.0.27.post1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e73056e0564803ca0adfaa6a657a78cd9576e1ae8c3ab6a797fb28d4e87ce6e3"}, - {file = "pyuwsgi-2.0.27.post1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:35e03a040ef0d1b27b36b3f76fe42c47049f166682cb55da59afdc15c5326c42"}, - {file = "pyuwsgi-2.0.27.post1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a378b83d20884525344d18a84e806b7be7ada09e0f9fd4e4699e0c25ef535952"}, - {file = "pyuwsgi-2.0.27.post1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8addac8b24cc8c30f24875c8d4229deb872f64041a565e1bfbaa8fe14028bae3"}, - {file = "pyuwsgi-2.0.27.post1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a49ac13c50f6f3d5015d448b912d68c20c4750d45f8b58208d1e300e36b60fa3"}, - {file = "pyuwsgi-2.0.27.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3b072d74e1563e2e87c8f3899687227c5e4745637f2746e9ad2f9854fe2d0aa"}, - {file = "pyuwsgi-2.0.27.post1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7404ca6e03eab163140d39028cc5918ae7332e557d3edc550a19b9b1640914db"}, - {file = "pyuwsgi-2.0.27.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9483e8d5025e3c273efc8ac32243a0c6dce95bc33d7401233dd6f0af1b8c077"}, - {file = "pyuwsgi-2.0.27.post1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8d8e9e9d2dd44e72a0d99b0c5796fbfc3547e3dd4e7d7b71ca255f3af812839a"}, - {file = "pyuwsgi-2.0.27.post1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3d7cdc6aa3d42ab2d1f56136a9eccb9d9b0e7ca43c97bd514be69adc4705bc2d"}, - {file = "pyuwsgi-2.0.27.post1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b3048fb40dec61b9a4dba4dfda7d30f697c4d233b0475d27cea39619c7981b18"}, - {file = "pyuwsgi-2.0.27.post1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9eff11b2f7275e5c54e6b394a8b3c5d523159ea227a281b31ca93c41dfa206a9"}, - {file = "pyuwsgi-2.0.27.post1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f052d5c066e7818b483065b0cef579d662f14e56020f92c7fad224cc6ce48be"}, - {file = "pyuwsgi-2.0.27.post1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e52d67f330ce1f310896ee12fc57b92a1d65c839c512ab22de5789873e84206"}, - {file = "pyuwsgi-2.0.27.post1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:97b6799f96e574a377b39d23817fd946d653daeaacac5e786d7f6f93211be0df"}, - {file = "pyuwsgi-2.0.27.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f19ad6e39415f82ed2d6c5318802148ec5ff9f760d25208b58013432c3a24e7c"}, - {file = "pyuwsgi-2.0.27.post1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:38559eb301add04b5fd765aa1b13517660926a603c27fe4a9c8a305ee6e65daf"}, - {file = "pyuwsgi-2.0.27.post1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:28523126a3e2593aef3b3d35e5c6dcf758a6139421e0c6509bea3bf1e70b59e3"}, - {file = "pyuwsgi-2.0.27.post1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:07f1da1b46c006f54546d09950c49d5828655896c14235ac1169ed955de8c50e"}, - {file = "pyuwsgi-2.0.27.post1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fd3b42c638b2724e9fcc93241e31d6f15e7829ad23d144e914b1cea0d071d34a"}, - {file = "pyuwsgi-2.0.27.post1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:18a2e020e984a2f9fbb2733b52cafa3ad6317916d76a2ca7c531fcd2af54bacd"}, - {file = "pyuwsgi-2.0.27.post1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ccae438085e7ad23dd745d0d89e6664925b0509642ff03d9d5160cc3727daa24"}, - {file = "pyuwsgi-2.0.27.post1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9af975c6a0667013e4699b7c43f2e9c9b852f4ce7c3bf91a4c594b4558ff651"}, - {file = "pyuwsgi-2.0.27.post1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38e7ecce19e400e00828204ebaa34dee9b57eb434c324428d109be6b0d4ade91"}, - {file = "pyuwsgi-2.0.27.post1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdc2b5788defc1adb796f23b358f81a1274486a8e3a8f1206491ed0313fdafc6"}, - {file = "pyuwsgi-2.0.27.post1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1cd43982443c2084677cb6f2545144b049d54b37d79607f5e9c6c80438f05562"}, - {file = "pyuwsgi-2.0.27.post1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d90da1ba15003c24e678803f88c194937b902ff8729861b380752dc4025be420"}, - {file = "pyuwsgi-2.0.27.post1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:37561914526e661ed6be022c34fec609ac8ebaa374ee99b0c06bb9fdd84c27fb"}, - {file = "pyuwsgi-2.0.27.post1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fd638f9644ca32e914794ccfe87268a53a1c24dcc9cd709c3d936da6a6af175"}, - {file = "pyuwsgi-2.0.27.post1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:266c5f0bcc1659e27e504533208ccb66264a17439fbccc17507b363cf6fd21a1"}, - {file = "pyuwsgi-2.0.27.post1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91e5e3884c59f13eaadc41a774f72626eb77bf5dc7d9ab60c70446c76bf6af19"}, - {file = "pyuwsgi-2.0.27.post1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:2033cb5630bb411eded7864fa2eaf6c8f172d11a7182d8cd7d18585f50e8a9a9"}, - {file = "pyuwsgi-2.0.27.post1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:bd30983a6d001ad2a452853598f31e05c4113a6b4febb3288672e1cf8b335e68"}, - {file = "pyuwsgi-2.0.27.post1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:c7ab8b1b8a57f60a56691d080011a00bfc164d38454900d65867f6b6835984c8"}, - {file = "pyuwsgi-2.0.27.post1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b0acb872cf3780db11ff676b98f4995fba765479eef7ab9eec3ceeea79e2e1b"}, - {file = "pyuwsgi-2.0.27.post1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7616268720cead0c8ac384cfdd3837c7805c4a8a371908d203c1a4c1c04c2d1f"}, - {file = "pyuwsgi-2.0.27.post1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1597b2e4610a676df8ea5e91e2365589f21dd62e5ea01094b6237d6d4365421"}, - {file = "pyuwsgi-2.0.27.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e9feba9a85f4d4e006f7151c13aa74f0100bd4a148920046baa4bdd08318a5f"}, - {file = "pyuwsgi-2.0.27.post1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:889ca23e93d228570ee6704b66996fcd7bb9db34b0a13ebc845759a509881b84"}, - {file = "pyuwsgi-2.0.27.post1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:86522f0e68aac8137551f2c2fe6aee2e532060b10b00e7cb5f1737026c2f7f88"}, - {file = "pyuwsgi-2.0.27.post1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c42e565d19ff66f1235c6d01b2333ae17b0e614046570b88f3a432624dc02ab0"}, - {file = "pyuwsgi-2.0.27.post1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c5a197cb9e59a9c8267a142d185a69ca743fbaeab040f3e70370f93718d27f3b"}, - {file = "pyuwsgi-2.0.27.post1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c4dc24d09406c281a411386827f9d86f004023e187a311e9bd24053bee18bdcc"}, - {file = "pyuwsgi-2.0.27.post1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bcd3bcb50b8b72e57c8bfb9bee7d8cfa2029c97f33bfbcb3609ab72659a80237"}, - {file = "pyuwsgi-2.0.27.post1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01910d5ebaef2f0730c3e72f9ef8bc3d7eeb586d0c40e89b34bcb3c60a45582e"}, - {file = "pyuwsgi-2.0.27.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:968363f71ae2059b85385a84b57a60207251282de8632294d79ea63519157c74"}, - {file = "pyuwsgi-2.0.27.post1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:808aade4f82b41509567b6e6a8c9ee232ccf2d0fcd3523af88409400a2d001f9"}, - {file = "pyuwsgi-2.0.27.post1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:8de52a0e5d0d71c1bb572169d4850ca82d827f84b0efb0f60691327d74709122"}, - {file = "pyuwsgi-2.0.27.post1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8cda34be6ab18e9a58bbd668b5b382d321d16cffa36724afab4c58fa98d5e6b6"}, - {file = "pyuwsgi-2.0.27.post1.tar.gz", hash = "sha256:fc16abaaa0932758ecd5950c3927730a70ad0d5e4ad8189ff745455ec2a8ad21"}, + {file = "pyuwsgi-2.0.28.post1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:611e6585a51b3a1f9619e1069dcdc1b8bf37ad7aa16b271fce2ca3e1440fc548"}, + {file = "pyuwsgi-2.0.28.post1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5c2caedcc6fd0cd217b65ab863a51e18032b3ce81316d0a079652ed43ed8ba68"}, + {file = "pyuwsgi-2.0.28.post1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9382286b9cf94b5d826388cda7097235b0f1348c7549c8b71100ecfc8d74c58"}, + {file = "pyuwsgi-2.0.28.post1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30798db4c0c9b36a12fd831cfe621c69569e226d177b3c28c6a191e2a819604f"}, + {file = "pyuwsgi-2.0.28.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a4fbc27ccbe24cffb65ce89fbb7cf2e8a0af625b7706179786a810688cefd7f"}, + {file = "pyuwsgi-2.0.28.post1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e1289847ba14ae2ba4f918c57e9d257ecd82a43f6c7a026e155577596c6304f1"}, + {file = "pyuwsgi-2.0.28.post1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:91bdc9fcd1e13088ef57f7e58e427c9539e9d2c6d75157f55b5d17ef599e61ee"}, + {file = "pyuwsgi-2.0.28.post1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a1b0a27f1b9c63a1ac9788a068e5905b8ebedb1b460b9256ac85d1318fd6a9a6"}, + {file = "pyuwsgi-2.0.28.post1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:36d9c628067fc1c58534b800aacbb7499813b214cabe9128fb5ba79ad32ff9b9"}, + {file = "pyuwsgi-2.0.28.post1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:219032fe8bb8306cb05e7bc509ff134c853cfcbd7d809a867d5b8ecd589bef5d"}, + {file = "pyuwsgi-2.0.28.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1573ac212201ccbfea00b93d88fde89205d3c2f0a4d0c973058aa0b8745d4a2d"}, + {file = "pyuwsgi-2.0.28.post1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6105bd14fa2e61505dc116574ba79f3f6e0f425f206d3bec2337463457167aba"}, + {file = "pyuwsgi-2.0.28.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44bfebc678b2dde10382197b9199ce546b699a672e05e139a3827efb121e704f"}, + {file = "pyuwsgi-2.0.28.post1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e4e4775246f2ab079ea4bcf69d70441ffe81eba82a88eb4da6ae9debf334511f"}, + {file = "pyuwsgi-2.0.28.post1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e227836984735fdfa26d3be4927a6ae060ad8a0d28ef4a6adcd4f47fbfd7e876"}, + {file = "pyuwsgi-2.0.28.post1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cf4f03d8b74d9754efd8cc6b0566258ccc1123a8c2fe49a11835242a6fb27efc"}, + {file = "pyuwsgi-2.0.28.post1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9390e8a2297186ede814d5863a06fa98b91295c813fdd3d08fe1357793476486"}, + {file = "pyuwsgi-2.0.28.post1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:06a0294910de374ff43032b41333f7f9b62d59308b7f3eea29bc64d78fb93613"}, + {file = "pyuwsgi-2.0.28.post1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64b40503a87621e79efe4306b77595a0cbcb69afa4f3428a85e4e8ac46068d88"}, + {file = "pyuwsgi-2.0.28.post1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1157f49bfb360c1883feec82553adbed1e4a447e5ced66f36525a92f0e46397e"}, + {file = "pyuwsgi-2.0.28.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941d44a67760dc173c0f8318f8b7bd1ef7927533d6efb4641b2ea9e934f09981"}, + {file = "pyuwsgi-2.0.28.post1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a90b72a25ba1a34299f4958237a12f18154b373a9a0a93a6267af5e8798c1ee"}, + {file = "pyuwsgi-2.0.28.post1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:2c29fdf5baaff9d717aedb63e7b78b90bec561afc099f952db44699adcb0c575"}, + {file = "pyuwsgi-2.0.28.post1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7e8fd6f2116d2afce52965c940a96a939e9d9c7409f3e19ba445a25e33779f08"}, + {file = "pyuwsgi-2.0.28.post1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:787fd67086df87921bc8837ef018cd7cf02834136f4735811375c1e17b776b40"}, + {file = "pyuwsgi-2.0.28.post1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f27ee3445eab37fabbe3afc6af68220c8f0bd28c5228d6a2ec7886d080614ad4"}, + {file = "pyuwsgi-2.0.28.post1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bdd7ec17f795049ef346dc10efbfce6c1a9500f3f39262c86107c70b9a83cb9"}, + {file = "pyuwsgi-2.0.28.post1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f4563fa76d64a2c309eb902511a1fcdce66865a03785c61494db5c53136ffa7a"}, + {file = "pyuwsgi-2.0.28.post1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32838668eab84ac6847876d9da72768552fca556e09a1fe3a63facb976bd12ad"}, + {file = "pyuwsgi-2.0.28.post1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c9feafdfa73a632767a0cb1bafd285e36fba925b9c9ddd2b3311f2963c917c9f"}, + {file = "pyuwsgi-2.0.28.post1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:20d23ddbf28a831543d586c9e5727c9c28d7be7bd7cb853c7db2e0c529f605bf"}, + {file = "pyuwsgi-2.0.28.post1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c0b1b09bdf836a6cacf35e2bb06f6ad4b7dff6c6ad48895e1b1c0b0d19bbbfcc"}, + {file = "pyuwsgi-2.0.28.post1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:735861b77e607e133f9905a5e0ba6505ef6788df1cfdb6af06e6dfef07dfa9af"}, + {file = "pyuwsgi-2.0.28.post1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1dbe7d0bb8184ef6c9bec1a3593a02bd27de0348807c97533069a7bca2603d19"}, + {file = "pyuwsgi-2.0.28.post1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4fcf8a76ad40af8c3c1a1e98f11be03e999e4957f48da6a180f5b8fc40b963c4"}, + {file = "pyuwsgi-2.0.28.post1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c969668db4599b6a5c927ad4bc1d698ea8c57fb10a943b51402fe80a97cdfc9"}, + {file = "pyuwsgi-2.0.28.post1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:5b6bec34ca5b200dfc8b10c74b0a9e3da051747f5faa300f681bbb46cf573fd0"}, + {file = "pyuwsgi-2.0.28.post1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:8dc521dd980ee431d4e6fc9a018ad1df4840c4551f281a598878083f3d155243"}, + {file = "pyuwsgi-2.0.28.post1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:1e6afc8916098ca35119dc0c619f29ef572f72c6f4425f29604c17397ae313b2"}, + {file = "pyuwsgi-2.0.28.post1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b2f118d7211e4afb7e8248cd380c1eac3e87604c1143bbccac1679c3a3642e22"}, + {file = "pyuwsgi-2.0.28.post1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:327800fa58bfba5d6f2bd19331e812e0e1250aaa681874f5b92998f68e6bab75"}, + {file = "pyuwsgi-2.0.28.post1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b351e76c9a18dc3e8a635994a98571b9ca7f10e371a0085ae3c8cd95f3db66cd"}, + {file = "pyuwsgi-2.0.28.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:29c6f658625f2470d905276987aec898a690eee33f49c9c3961ca9d912abd046"}, + {file = "pyuwsgi-2.0.28.post1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:9436ac4450730e1bcca4591ebb781eabcfcf93462114e199b951118032144323"}, + {file = "pyuwsgi-2.0.28.post1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:0b1c131288b6b473e39c5b02e63c34b64422665749dcadee41ef98d64b5db5d0"}, + {file = "pyuwsgi-2.0.28.post1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a8a932c9d34b2f0007eabf04728ffae7be8bfb87a044daee50a82b6796ad5b34"}, + {file = "pyuwsgi-2.0.28.post1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f55071012ce5d728ac428be78c3710e986acc02dcfc1d72f3a76541b85e25cfb"}, + {file = "pyuwsgi-2.0.28.post1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fa60c4fb1e483c079d1f3767863bc41884f6322f0744ac5d6398b0e505e9d21e"}, + {file = "pyuwsgi-2.0.28.post1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad20990917364f8f9b3fc62424edc6d9a992146bc5e15d37b1bbc9c3934ddf9b"}, + {file = "pyuwsgi-2.0.28.post1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:167d05f635c46287ee8709b09f422fbc16310acad3c9bd100a267679c061fe62"}, + {file = "pyuwsgi-2.0.28.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2300dba7037089a23b0eb4d2b037391be4d89b73e597671d0f23903a529cd552"}, + {file = "pyuwsgi-2.0.28.post1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f61adc1ab15da41675af36256feccd0cafb797c703499930fd5b3b381b0b6273"}, + {file = "pyuwsgi-2.0.28.post1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:dc85ba45af7a7b89e3a722cf9cbba724fabb2c3b5caf3c25d67286ab329df97c"}, + {file = "pyuwsgi-2.0.28.post1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:81e59789af3b568ed1c4484b4bac9e4b79810f4774d8d3ab9056eb3f500e1e94"}, + {file = "pyuwsgi-2.0.28.post1.tar.gz", hash = "sha256:3b85217fd489d623512066ffed0cfc4c95bd3321655e9c6ea13cf6c7f064c9b0"}, ] [[package]] @@ -4009,105 +4009,105 @@ rpds-py = ">=0.7.0" [[package]] name = "regex" -version = "2024.9.11" +version = "2024.11.6" description = "Alternative regular expression module, to replace re." optional = false python-versions = ">=3.8" files = [ - {file = "regex-2024.9.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1494fa8725c285a81d01dc8c06b55287a1ee5e0e382d8413adc0a9197aac6408"}, - {file = "regex-2024.9.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0e12c481ad92d129c78f13a2a3662317e46ee7ef96c94fd332e1c29131875b7d"}, - {file = "regex-2024.9.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:16e13a7929791ac1216afde26f712802e3df7bf0360b32e4914dca3ab8baeea5"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46989629904bad940bbec2106528140a218b4a36bb3042d8406980be1941429c"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a906ed5e47a0ce5f04b2c981af1c9acf9e8696066900bf03b9d7879a6f679fc8"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9a091b0550b3b0207784a7d6d0f1a00d1d1c8a11699c1a4d93db3fbefc3ad35"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ddcd9a179c0a6fa8add279a4444015acddcd7f232a49071ae57fa6e278f1f71"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6b41e1adc61fa347662b09398e31ad446afadff932a24807d3ceb955ed865cc8"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ced479f601cd2f8ca1fd7b23925a7e0ad512a56d6e9476f79b8f381d9d37090a"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:635a1d96665f84b292e401c3d62775851aedc31d4f8784117b3c68c4fcd4118d"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c0256beda696edcf7d97ef16b2a33a8e5a875affd6fa6567b54f7c577b30a137"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:3ce4f1185db3fbde8ed8aa223fc9620f276c58de8b0d4f8cc86fd1360829edb6"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:09d77559e80dcc9d24570da3745ab859a9cf91953062e4ab126ba9d5993688ca"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a22ccefd4db3f12b526eccb129390942fe874a3a9fdbdd24cf55773a1faab1a"}, - {file = "regex-2024.9.11-cp310-cp310-win32.whl", hash = "sha256:f745ec09bc1b0bd15cfc73df6fa4f726dcc26bb16c23a03f9e3367d357eeedd0"}, - {file = "regex-2024.9.11-cp310-cp310-win_amd64.whl", hash = "sha256:01c2acb51f8a7d6494c8c5eafe3d8e06d76563d8a8a4643b37e9b2dd8a2ff623"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2cce2449e5927a0bf084d346da6cd5eb016b2beca10d0013ab50e3c226ffc0df"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b37fa423beefa44919e009745ccbf353d8c981516e807995b2bd11c2c77d268"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:64ce2799bd75039b480cc0360907c4fb2f50022f030bf9e7a8705b636e408fad"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4cc92bb6db56ab0c1cbd17294e14f5e9224f0cc6521167ef388332604e92679"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d05ac6fa06959c4172eccd99a222e1fbf17b5670c4d596cb1e5cde99600674c4"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:040562757795eeea356394a7fb13076ad4f99d3c62ab0f8bdfb21f99a1f85664"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6113c008a7780792efc80f9dfe10ba0cd043cbf8dc9a76ef757850f51b4edc50"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e5fb5f77c8745a60105403a774fe2c1759b71d3e7b4ca237a5e67ad066c7199"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:54d9ff35d4515debf14bc27f1e3b38bfc453eff3220f5bce159642fa762fe5d4"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:df5cbb1fbc74a8305b6065d4ade43b993be03dbe0f8b30032cced0d7740994bd"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7fb89ee5d106e4a7a51bce305ac4efb981536301895f7bdcf93ec92ae0d91c7f"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:a738b937d512b30bf75995c0159c0ddf9eec0775c9d72ac0202076c72f24aa96"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e28f9faeb14b6f23ac55bfbbfd3643f5c7c18ede093977f1df249f73fd22c7b1"}, - {file = "regex-2024.9.11-cp311-cp311-win32.whl", hash = "sha256:18e707ce6c92d7282dfce370cd205098384b8ee21544e7cb29b8aab955b66fa9"}, - {file = "regex-2024.9.11-cp311-cp311-win_amd64.whl", hash = "sha256:313ea15e5ff2a8cbbad96ccef6be638393041b0a7863183c2d31e0c6116688cf"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b0d0a6c64fcc4ef9c69bd5b3b3626cc3776520a1637d8abaa62b9edc147a58f7"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:49b0e06786ea663f933f3710a51e9385ce0cba0ea56b67107fd841a55d56a231"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5b513b6997a0b2f10e4fd3a1313568e373926e8c252bd76c960f96fd039cd28d"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee439691d8c23e76f9802c42a95cfeebf9d47cf4ffd06f18489122dbb0a7ad64"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8f877c89719d759e52783f7fe6e1c67121076b87b40542966c02de5503ace42"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23b30c62d0f16827f2ae9f2bb87619bc4fba2044911e2e6c2eb1af0161cdb766"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85ab7824093d8f10d44330fe1e6493f756f252d145323dd17ab6b48733ff6c0a"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8dee5b4810a89447151999428fe096977346cf2f29f4d5e29609d2e19e0199c9"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:98eeee2f2e63edae2181c886d7911ce502e1292794f4c5ee71e60e23e8d26b5d"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:57fdd2e0b2694ce6fc2e5ccf189789c3e2962916fb38779d3e3521ff8fe7a822"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d552c78411f60b1fdaafd117a1fca2f02e562e309223b9d44b7de8be451ec5e0"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a0b2b80321c2ed3fcf0385ec9e51a12253c50f146fddb2abbb10f033fe3d049a"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:18406efb2f5a0e57e3a5881cd9354c1512d3bb4f5c45d96d110a66114d84d23a"}, - {file = "regex-2024.9.11-cp312-cp312-win32.whl", hash = "sha256:e464b467f1588e2c42d26814231edecbcfe77f5ac414d92cbf4e7b55b2c2a776"}, - {file = "regex-2024.9.11-cp312-cp312-win_amd64.whl", hash = "sha256:9e8719792ca63c6b8340380352c24dcb8cd7ec49dae36e963742a275dfae6009"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c157bb447303070f256e084668b702073db99bbb61d44f85d811025fcf38f784"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4db21ece84dfeefc5d8a3863f101995de646c6cb0536952c321a2650aa202c36"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:220e92a30b426daf23bb67a7962900ed4613589bab80382be09b48896d211e92"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb1ae19e64c14c7ec1995f40bd932448713d3c73509e82d8cd7744dc00e29e86"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f47cd43a5bfa48f86925fe26fbdd0a488ff15b62468abb5d2a1e092a4fb10e85"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9d4a76b96f398697fe01117093613166e6aa8195d63f1b4ec3f21ab637632963"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ea51dcc0835eea2ea31d66456210a4e01a076d820e9039b04ae8d17ac11dee6"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7aaa315101c6567a9a45d2839322c51c8d6e81f67683d529512f5bcfb99c802"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c57d08ad67aba97af57a7263c2d9006d5c404d721c5f7542f077f109ec2a4a29"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f8404bf61298bb6f8224bb9176c1424548ee1181130818fcd2cbffddc768bed8"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dd4490a33eb909ef5078ab20f5f000087afa2a4daa27b4c072ccb3cb3050ad84"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:eee9130eaad130649fd73e5cd92f60e55708952260ede70da64de420cdcad554"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6a2644a93da36c784e546de579ec1806bfd2763ef47babc1b03d765fe560c9f8"}, - {file = "regex-2024.9.11-cp313-cp313-win32.whl", hash = "sha256:e997fd30430c57138adc06bba4c7c2968fb13d101e57dd5bb9355bf8ce3fa7e8"}, - {file = "regex-2024.9.11-cp313-cp313-win_amd64.whl", hash = "sha256:042c55879cfeb21a8adacc84ea347721d3d83a159da6acdf1116859e2427c43f"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:35f4a6f96aa6cb3f2f7247027b07b15a374f0d5b912c0001418d1d55024d5cb4"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:55b96e7ce3a69a8449a66984c268062fbaa0d8ae437b285428e12797baefce7e"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cb130fccd1a37ed894824b8c046321540263013da72745d755f2d35114b81a60"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:323c1f04be6b2968944d730e5c2091c8c89767903ecaa135203eec4565ed2b2b"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be1c8ed48c4c4065ecb19d882a0ce1afe0745dfad8ce48c49586b90a55f02366"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5b029322e6e7b94fff16cd120ab35a253236a5f99a79fb04fda7ae71ca20ae8"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6fff13ef6b5f29221d6904aa816c34701462956aa72a77f1f151a8ec4f56aeb"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:587d4af3979376652010e400accc30404e6c16b7df574048ab1f581af82065e4"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:079400a8269544b955ffa9e31f186f01d96829110a3bf79dc338e9910f794fca"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f9268774428ec173654985ce55fc6caf4c6d11ade0f6f914d48ef4719eb05ebb"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:23f9985c8784e544d53fc2930fc1ac1a7319f5d5332d228437acc9f418f2f168"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:ae2941333154baff9838e88aa71c1d84f4438189ecc6021a12c7573728b5838e"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:e93f1c331ca8e86fe877a48ad64e77882c0c4da0097f2212873a69bbfea95d0c"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:846bc79ee753acf93aef4184c040d709940c9d001029ceb7b7a52747b80ed2dd"}, - {file = "regex-2024.9.11-cp38-cp38-win32.whl", hash = "sha256:c94bb0a9f1db10a1d16c00880bdebd5f9faf267273b8f5bd1878126e0fbde771"}, - {file = "regex-2024.9.11-cp38-cp38-win_amd64.whl", hash = "sha256:2b08fce89fbd45664d3df6ad93e554b6c16933ffa9d55cb7e01182baaf971508"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:07f45f287469039ffc2c53caf6803cd506eb5f5f637f1d4acb37a738f71dd066"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4838e24ee015101d9f901988001038f7f0d90dc0c3b115541a1365fb439add62"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6edd623bae6a737f10ce853ea076f56f507fd7726bee96a41ee3d68d347e4d16"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c69ada171c2d0e97a4b5aa78fbb835e0ffbb6b13fc5da968c09811346564f0d3"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02087ea0a03b4af1ed6ebab2c54d7118127fee8d71b26398e8e4b05b78963199"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:69dee6a020693d12a3cf892aba4808fe168d2a4cef368eb9bf74f5398bfd4ee8"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:297f54910247508e6e5cae669f2bc308985c60540a4edd1c77203ef19bfa63ca"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ecea58b43a67b1b79805f1a0255730edaf5191ecef84dbc4cc85eb30bc8b63b9"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:eab4bb380f15e189d1313195b062a6aa908f5bd687a0ceccd47c8211e9cf0d4a"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0cbff728659ce4bbf4c30b2a1be040faafaa9eca6ecde40aaff86f7889f4ab39"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:54c4a097b8bc5bb0dfc83ae498061d53ad7b5762e00f4adaa23bee22b012e6ba"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:73d6d2f64f4d894c96626a75578b0bf7d9e56dcda8c3d037a2118fdfe9b1c664"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:e53b5fbab5d675aec9f0c501274c467c0f9a5d23696cfc94247e1fb56501ed89"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0ffbcf9221e04502fc35e54d1ce9567541979c3fdfb93d2c554f0ca583a19b35"}, - {file = "regex-2024.9.11-cp39-cp39-win32.whl", hash = "sha256:e4c22e1ac1f1ec1e09f72e6c44d8f2244173db7eb9629cc3a346a8d7ccc31142"}, - {file = "regex-2024.9.11-cp39-cp39-win_amd64.whl", hash = "sha256:faa3c142464efec496967359ca99696c896c591c56c53506bac1ad465f66e919"}, - {file = "regex-2024.9.11.tar.gz", hash = "sha256:6c188c307e8433bcb63dc1915022deb553b4203a70722fc542c363bf120a01fd"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62"}, + {file = "regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e"}, + {file = "regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, + {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, + {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad"}, + {file = "regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54"}, + {file = "regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d"}, + {file = "regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff"}, + {file = "regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a51ccc315653ba012774efca4f23d1d2a8a8f278a6072e29c7147eee7da446b"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ad182d02e40de7459b73155deb8996bbd8e96852267879396fb274e8700190e3"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba9b72e5643641b7d41fa1f6d5abda2c9a263ae835b917348fc3c928182ad467"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40291b1b89ca6ad8d3f2b82782cc33807f1406cf68c8d440861da6304d8ffbbd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdf58d0e516ee426a48f7b2c03a332a4114420716d55769ff7108c37a09951bf"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a36fdf2af13c2b14738f6e973aba563623cb77d753bbbd8d414d18bfaa3105dd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cee317bfc014c2419a76bcc87f071405e3966da434e03e13beb45f8aced1a6"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50153825ee016b91549962f970d6a4442fa106832e14c918acd1c8e479916c4f"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea1bfda2f7162605f6e8178223576856b3d791109f15ea99a9f95c16a7636fb5"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:df951c5f4a1b1910f1a99ff42c473ff60f8225baa1cdd3539fe2819d9543e9df"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:072623554418a9911446278f16ecb398fb3b540147a7828c06e2011fa531e773"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f654882311409afb1d780b940234208a252322c24a93b442ca714d119e68086c"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:89d75e7293d2b3e674db7d4d9b1bee7f8f3d1609428e293771d1a962617150cc"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f65557897fc977a44ab205ea871b690adaef6b9da6afda4790a2484b04293a5f"}, + {file = "regex-2024.11.6-cp38-cp38-win32.whl", hash = "sha256:6f44ec28b1f858c98d3036ad5d7d0bfc568bdd7a74f9c24e25f41ef1ebfd81a4"}, + {file = "regex-2024.11.6-cp38-cp38-win_amd64.whl", hash = "sha256:bb8f74f2f10dbf13a0be8de623ba4f9491faf58c24064f32b65679b021ed0001"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b"}, + {file = "regex-2024.11.6-cp39-cp39-win32.whl", hash = "sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57"}, + {file = "regex-2024.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983"}, + {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, ] [[package]] @@ -4151,114 +4151,114 @@ rsa = ["oauthlib[signedtoken] (>=3.0.0)"] [[package]] name = "rpds-py" -version = "0.20.0" +version = "0.20.1" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.20.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3ad0fda1635f8439cde85c700f964b23ed5fc2d28016b32b9ee5fe30da5c84e2"}, - {file = "rpds_py-0.20.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9bb4a0d90fdb03437c109a17eade42dfbf6190408f29b2744114d11586611d6f"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6377e647bbfd0a0b159fe557f2c6c602c159fc752fa316572f012fc0bf67150"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb851b7df9dda52dc1415ebee12362047ce771fc36914586b2e9fcbd7d293b3e"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e0f80b739e5a8f54837be5d5c924483996b603d5502bfff79bf33da06164ee2"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a8c94dad2e45324fc74dce25e1645d4d14df9a4e54a30fa0ae8bad9a63928e3"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8e604fe73ba048c06085beaf51147eaec7df856824bfe7b98657cf436623daf"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:df3de6b7726b52966edf29663e57306b23ef775faf0ac01a3e9f4012a24a4140"}, - {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf258ede5bc22a45c8e726b29835b9303c285ab46fc7c3a4cc770736b5304c9f"}, - {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:55fea87029cded5df854ca7e192ec7bdb7ecd1d9a3f63d5c4eb09148acf4a7ce"}, - {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ae94bd0b2f02c28e199e9bc51485d0c5601f58780636185660f86bf80c89af94"}, - {file = "rpds_py-0.20.0-cp310-none-win32.whl", hash = "sha256:28527c685f237c05445efec62426d285e47a58fb05ba0090a4340b73ecda6dee"}, - {file = "rpds_py-0.20.0-cp310-none-win_amd64.whl", hash = "sha256:238a2d5b1cad28cdc6ed15faf93a998336eb041c4e440dd7f902528b8891b399"}, - {file = "rpds_py-0.20.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac2f4f7a98934c2ed6505aead07b979e6f999389f16b714448fb39bbaa86a489"}, - {file = "rpds_py-0.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:220002c1b846db9afd83371d08d239fdc865e8f8c5795bbaec20916a76db3318"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d7919548df3f25374a1f5d01fbcd38dacab338ef5f33e044744b5c36729c8db"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:758406267907b3781beee0f0edfe4a179fbd97c0be2e9b1154d7f0a1279cf8e5"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3d61339e9f84a3f0767b1995adfb171a0d00a1185192718a17af6e124728e0f5"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1259c7b3705ac0a0bd38197565a5d603218591d3f6cee6e614e380b6ba61c6f6"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c1dc0f53856b9cc9a0ccca0a7cc61d3d20a7088201c0937f3f4048c1718a209"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7e60cb630f674a31f0368ed32b2a6b4331b8350d67de53c0359992444b116dd3"}, - {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dbe982f38565bb50cb7fb061ebf762c2f254ca3d8c20d4006878766e84266272"}, - {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:514b3293b64187172bc77c8fb0cdae26981618021053b30d8371c3a902d4d5ad"}, - {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d0a26ffe9d4dd35e4dfdd1e71f46401cff0181c75ac174711ccff0459135fa58"}, - {file = "rpds_py-0.20.0-cp311-none-win32.whl", hash = "sha256:89c19a494bf3ad08c1da49445cc5d13d8fefc265f48ee7e7556839acdacf69d0"}, - {file = "rpds_py-0.20.0-cp311-none-win_amd64.whl", hash = "sha256:c638144ce971df84650d3ed0096e2ae7af8e62ecbbb7b201c8935c370df00a2c"}, - {file = "rpds_py-0.20.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a84ab91cbe7aab97f7446652d0ed37d35b68a465aeef8fc41932a9d7eee2c1a6"}, - {file = "rpds_py-0.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:56e27147a5a4c2c21633ff8475d185734c0e4befd1c989b5b95a5d0db699b21b"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2580b0c34583b85efec8c5c5ec9edf2dfe817330cc882ee972ae650e7b5ef739"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b80d4a7900cf6b66bb9cee5c352b2d708e29e5a37fe9bf784fa97fc11504bf6c"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50eccbf054e62a7b2209b28dc7a22d6254860209d6753e6b78cfaeb0075d7bee"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:49a8063ea4296b3a7e81a5dfb8f7b2d73f0b1c20c2af401fb0cdf22e14711a96"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea438162a9fcbee3ecf36c23e6c68237479f89f962f82dae83dc15feeceb37e4"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:18d7585c463087bddcfa74c2ba267339f14f2515158ac4db30b1f9cbdb62c8ef"}, - {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d4c7d1a051eeb39f5c9547e82ea27cbcc28338482242e3e0b7768033cb083821"}, - {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4df1e3b3bec320790f699890d41c59d250f6beda159ea3c44c3f5bac1976940"}, - {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2cf126d33a91ee6eedc7f3197b53e87a2acdac63602c0f03a02dd69e4b138174"}, - {file = "rpds_py-0.20.0-cp312-none-win32.whl", hash = "sha256:8bc7690f7caee50b04a79bf017a8d020c1f48c2a1077ffe172abec59870f1139"}, - {file = "rpds_py-0.20.0-cp312-none-win_amd64.whl", hash = "sha256:0e13e6952ef264c40587d510ad676a988df19adea20444c2b295e536457bc585"}, - {file = "rpds_py-0.20.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:aa9a0521aeca7d4941499a73ad7d4f8ffa3d1affc50b9ea11d992cd7eff18a29"}, - {file = "rpds_py-0.20.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1f1d51eccb7e6c32ae89243cb352389228ea62f89cd80823ea7dd1b98e0b91"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a86a9b96070674fc88b6f9f71a97d2c1d3e5165574615d1f9168ecba4cecb24"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6c8ef2ebf76df43f5750b46851ed1cdf8f109d7787ca40035fe19fbdc1acc5a7"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b74b25f024b421d5859d156750ea9a65651793d51b76a2e9238c05c9d5f203a9"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57eb94a8c16ab08fef6404301c38318e2c5a32216bf5de453e2714c964c125c8"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1940dae14e715e2e02dfd5b0f64a52e8374a517a1e531ad9412319dc3ac7879"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d20277fd62e1b992a50c43f13fbe13277a31f8c9f70d59759c88f644d66c619f"}, - {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:06db23d43f26478303e954c34c75182356ca9aa7797d22c5345b16871ab9c45c"}, - {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b2a5db5397d82fa847e4c624b0c98fe59d2d9b7cf0ce6de09e4d2e80f8f5b3f2"}, - {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5a35df9f5548fd79cb2f52d27182108c3e6641a4feb0f39067911bf2adaa3e57"}, - {file = "rpds_py-0.20.0-cp313-none-win32.whl", hash = "sha256:fd2d84f40633bc475ef2d5490b9c19543fbf18596dcb1b291e3a12ea5d722f7a"}, - {file = "rpds_py-0.20.0-cp313-none-win_amd64.whl", hash = "sha256:9bc2d153989e3216b0559251b0c260cfd168ec78b1fac33dd485750a228db5a2"}, - {file = "rpds_py-0.20.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:f2fbf7db2012d4876fb0d66b5b9ba6591197b0f165db8d99371d976546472a24"}, - {file = "rpds_py-0.20.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1e5f3cd7397c8f86c8cc72d5a791071431c108edd79872cdd96e00abd8497d29"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce9845054c13696f7af7f2b353e6b4f676dab1b4b215d7fe5e05c6f8bb06f965"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c3e130fd0ec56cb76eb49ef52faead8ff09d13f4527e9b0c400307ff72b408e1"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b16aa0107ecb512b568244ef461f27697164d9a68d8b35090e9b0c1c8b27752"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aa7f429242aae2947246587d2964fad750b79e8c233a2367f71b554e9447949c"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af0fc424a5842a11e28956e69395fbbeab2c97c42253169d87e90aac2886d751"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b8c00a3b1e70c1d3891f0db1b05292747f0dbcfb49c43f9244d04c70fbc40eb8"}, - {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:40ce74fc86ee4645d0a225498d091d8bc61f39b709ebef8204cb8b5a464d3c0e"}, - {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:4fe84294c7019456e56d93e8ababdad5a329cd25975be749c3f5f558abb48253"}, - {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:338ca4539aad4ce70a656e5187a3a31c5204f261aef9f6ab50e50bcdffaf050a"}, - {file = "rpds_py-0.20.0-cp38-none-win32.whl", hash = "sha256:54b43a2b07db18314669092bb2de584524d1ef414588780261e31e85846c26a5"}, - {file = "rpds_py-0.20.0-cp38-none-win_amd64.whl", hash = "sha256:a1862d2d7ce1674cffa6d186d53ca95c6e17ed2b06b3f4c476173565c862d232"}, - {file = "rpds_py-0.20.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:3fde368e9140312b6e8b6c09fb9f8c8c2f00999d1823403ae90cc00480221b22"}, - {file = "rpds_py-0.20.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9824fb430c9cf9af743cf7aaf6707bf14323fb51ee74425c380f4c846ea70789"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:11ef6ce74616342888b69878d45e9f779b95d4bd48b382a229fe624a409b72c5"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c52d3f2f82b763a24ef52f5d24358553e8403ce05f893b5347098014f2d9eff2"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d35cef91e59ebbeaa45214861874bc6f19eb35de96db73e467a8358d701a96c"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d72278a30111e5b5525c1dd96120d9e958464316f55adb030433ea905866f4de"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4c29cbbba378759ac5786730d1c3cb4ec6f8ababf5c42a9ce303dc4b3d08cda"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6632f2d04f15d1bd6fe0eedd3b86d9061b836ddca4c03d5cf5c7e9e6b7c14580"}, - {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d0b67d87bb45ed1cd020e8fbf2307d449b68abc45402fe1a4ac9e46c3c8b192b"}, - {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ec31a99ca63bf3cd7f1a5ac9fe95c5e2d060d3c768a09bc1d16e235840861420"}, - {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:22e6c9976e38f4d8c4a63bd8a8edac5307dffd3ee7e6026d97f3cc3a2dc02a0b"}, - {file = "rpds_py-0.20.0-cp39-none-win32.whl", hash = "sha256:569b3ea770c2717b730b61998b6c54996adee3cef69fc28d444f3e7920313cf7"}, - {file = "rpds_py-0.20.0-cp39-none-win_amd64.whl", hash = "sha256:e6900ecdd50ce0facf703f7a00df12374b74bbc8ad9fe0f6559947fb20f82364"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:617c7357272c67696fd052811e352ac54ed1d9b49ab370261a80d3b6ce385045"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9426133526f69fcaba6e42146b4e12d6bc6c839b8b555097020e2b78ce908dcc"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:deb62214c42a261cb3eb04d474f7155279c1a8a8c30ac89b7dcb1721d92c3c02"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fcaeb7b57f1a1e071ebd748984359fef83ecb026325b9d4ca847c95bc7311c92"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d454b8749b4bd70dd0a79f428731ee263fa6995f83ccb8bada706e8d1d3ff89d"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d807dc2051abe041b6649681dce568f8e10668e3c1c6543ebae58f2d7e617855"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3c20f0ddeb6e29126d45f89206b8291352b8c5b44384e78a6499d68b52ae511"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b7f19250ceef892adf27f0399b9e5afad019288e9be756d6919cb58892129f51"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4f1ed4749a08379555cebf4650453f14452eaa9c43d0a95c49db50c18b7da075"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:dcedf0b42bcb4cfff4101d7771a10532415a6106062f005ab97d1d0ab5681c60"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:39ed0d010457a78f54090fafb5d108501b5aa5604cc22408fc1c0c77eac14344"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:bb273176be34a746bdac0b0d7e4e2c467323d13640b736c4c477881a3220a989"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f918a1a130a6dfe1d7fe0f105064141342e7dd1611f2e6a21cd2f5c8cb1cfb3e"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f60012a73aa396be721558caa3a6fd49b3dd0033d1675c6d59c4502e870fcf0c"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d2b1ad682a3dfda2a4e8ad8572f3100f95fad98cb99faf37ff0ddfe9cbf9d03"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:614fdafe9f5f19c63ea02817fa4861c606a59a604a77c8cdef5aa01d28b97921"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa518bcd7600c584bf42e6617ee8132869e877db2f76bcdc281ec6a4113a53ab"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0475242f447cc6cb8a9dd486d68b2ef7fbee84427124c232bff5f63b1fe11e5"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f90a4cd061914a60bd51c68bcb4357086991bd0bb93d8aa66a6da7701370708f"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:def7400461c3a3f26e49078302e1c1b38f6752342c77e3cf72ce91ca69fb1bc1"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:65794e4048ee837494aea3c21a28ad5fc080994dfba5b036cf84de37f7ad5074"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:faefcc78f53a88f3076b7f8be0a8f8d35133a3ecf7f3770895c25f8813460f08"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:5b4f105deeffa28bbcdff6c49b34e74903139afa690e35d2d9e3c2c2fba18cec"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fdfc3a892927458d98f3d55428ae46b921d1f7543b89382fdb483f5640daaec8"}, - {file = "rpds_py-0.20.0.tar.gz", hash = "sha256:d72a210824facfdaf8768cf2d7ca25a042c30320b3020de2fa04640920d4e121"}, + {file = "rpds_py-0.20.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a649dfd735fff086e8a9d0503a9f0c7d01b7912a333c7ae77e1515c08c146dad"}, + {file = "rpds_py-0.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f16bc1334853e91ddaaa1217045dd7be166170beec337576818461268a3de67f"}, + {file = "rpds_py-0.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14511a539afee6f9ab492b543060c7491c99924314977a55c98bfa2ee29ce78c"}, + {file = "rpds_py-0.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3ccb8ac2d3c71cda472b75af42818981bdacf48d2e21c36331b50b4f16930163"}, + {file = "rpds_py-0.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c142b88039b92e7e0cb2552e8967077e3179b22359e945574f5e2764c3953dcf"}, + {file = "rpds_py-0.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f19169781dddae7478a32301b499b2858bc52fc45a112955e798ee307e294977"}, + {file = "rpds_py-0.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13c56de6518e14b9bf6edde23c4c39dac5b48dcf04160ea7bce8fca8397cdf86"}, + {file = "rpds_py-0.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:925d176a549f4832c6f69fa6026071294ab5910e82a0fe6c6228fce17b0706bd"}, + {file = "rpds_py-0.20.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:78f0b6877bfce7a3d1ff150391354a410c55d3cdce386f862926a4958ad5ab7e"}, + {file = "rpds_py-0.20.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3dd645e2b0dcb0fd05bf58e2e54c13875847687d0b71941ad2e757e5d89d4356"}, + {file = "rpds_py-0.20.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4f676e21db2f8c72ff0936f895271e7a700aa1f8d31b40e4e43442ba94973899"}, + {file = "rpds_py-0.20.1-cp310-none-win32.whl", hash = "sha256:648386ddd1e19b4a6abab69139b002bc49ebf065b596119f8f37c38e9ecee8ff"}, + {file = "rpds_py-0.20.1-cp310-none-win_amd64.whl", hash = "sha256:d9ecb51120de61e4604650666d1f2b68444d46ae18fd492245a08f53ad2b7711"}, + {file = "rpds_py-0.20.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:762703bdd2b30983c1d9e62b4c88664df4a8a4d5ec0e9253b0231171f18f6d75"}, + {file = "rpds_py-0.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0b581f47257a9fce535c4567782a8976002d6b8afa2c39ff616edf87cbeff712"}, + {file = "rpds_py-0.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:842c19a6ce894493563c3bd00d81d5100e8e57d70209e84d5491940fdb8b9e3a"}, + {file = "rpds_py-0.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42cbde7789f5c0bcd6816cb29808e36c01b960fb5d29f11e052215aa85497c93"}, + {file = "rpds_py-0.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6c8e9340ce5a52f95fa7d3b552b35c7e8f3874d74a03a8a69279fd5fca5dc751"}, + {file = "rpds_py-0.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ba6f89cac95c0900d932c9efb7f0fb6ca47f6687feec41abcb1bd5e2bd45535"}, + {file = "rpds_py-0.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a916087371afd9648e1962e67403c53f9c49ca47b9680adbeef79da3a7811b0"}, + {file = "rpds_py-0.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:200a23239781f46149e6a415f1e870c5ef1e712939fe8fa63035cd053ac2638e"}, + {file = "rpds_py-0.20.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:58b1d5dd591973d426cbb2da5e27ba0339209832b2f3315928c9790e13f159e8"}, + {file = "rpds_py-0.20.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6b73c67850ca7cae0f6c56f71e356d7e9fa25958d3e18a64927c2d930859b8e4"}, + {file = "rpds_py-0.20.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d8761c3c891cc51e90bc9926d6d2f59b27beaf86c74622c8979380a29cc23ac3"}, + {file = "rpds_py-0.20.1-cp311-none-win32.whl", hash = "sha256:cd945871335a639275eee904caef90041568ce3b42f402c6959b460d25ae8732"}, + {file = "rpds_py-0.20.1-cp311-none-win_amd64.whl", hash = "sha256:7e21b7031e17c6b0e445f42ccc77f79a97e2687023c5746bfb7a9e45e0921b84"}, + {file = "rpds_py-0.20.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:36785be22066966a27348444b40389f8444671630063edfb1a2eb04318721e17"}, + {file = "rpds_py-0.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:142c0a5124d9bd0e2976089484af5c74f47bd3298f2ed651ef54ea728d2ea42c"}, + {file = "rpds_py-0.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dbddc10776ca7ebf2a299c41a4dde8ea0d8e3547bfd731cb87af2e8f5bf8962d"}, + {file = "rpds_py-0.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:15a842bb369e00295392e7ce192de9dcbf136954614124a667f9f9f17d6a216f"}, + {file = "rpds_py-0.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be5ef2f1fc586a7372bfc355986226484e06d1dc4f9402539872c8bb99e34b01"}, + {file = "rpds_py-0.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbcf360c9e3399b056a238523146ea77eeb2a596ce263b8814c900263e46031a"}, + {file = "rpds_py-0.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ecd27a66740ffd621d20b9a2f2b5ee4129a56e27bfb9458a3bcc2e45794c96cb"}, + {file = "rpds_py-0.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0b937b2a1988f184a3e9e577adaa8aede21ec0b38320d6009e02bd026db04fa"}, + {file = "rpds_py-0.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6889469bfdc1eddf489729b471303739bf04555bb151fe8875931f8564309afc"}, + {file = "rpds_py-0.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:19b73643c802f4eaf13d97f7855d0fb527fbc92ab7013c4ad0e13a6ae0ed23bd"}, + {file = "rpds_py-0.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3c6afcf2338e7f374e8edc765c79fbcb4061d02b15dd5f8f314a4af2bdc7feb5"}, + {file = "rpds_py-0.20.1-cp312-none-win32.whl", hash = "sha256:dc73505153798c6f74854aba69cc75953888cf9866465196889c7cdd351e720c"}, + {file = "rpds_py-0.20.1-cp312-none-win_amd64.whl", hash = "sha256:8bbe951244a838a51289ee53a6bae3a07f26d4e179b96fc7ddd3301caf0518eb"}, + {file = "rpds_py-0.20.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:6ca91093a4a8da4afae7fe6a222c3b53ee4eef433ebfee4d54978a103435159e"}, + {file = "rpds_py-0.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b9c2fe36d1f758b28121bef29ed1dee9b7a2453e997528e7d1ac99b94892527c"}, + {file = "rpds_py-0.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f009c69bc8c53db5dfab72ac760895dc1f2bc1b62ab7408b253c8d1ec52459fc"}, + {file = "rpds_py-0.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6740a3e8d43a32629bb9b009017ea5b9e713b7210ba48ac8d4cb6d99d86c8ee8"}, + {file = "rpds_py-0.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:32b922e13d4c0080d03e7b62991ad7f5007d9cd74e239c4b16bc85ae8b70252d"}, + {file = "rpds_py-0.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe00a9057d100e69b4ae4a094203a708d65b0f345ed546fdef86498bf5390982"}, + {file = "rpds_py-0.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49fe9b04b6fa685bd39237d45fad89ba19e9163a1ccaa16611a812e682913496"}, + {file = "rpds_py-0.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aa7ac11e294304e615b43f8c441fee5d40094275ed7311f3420d805fde9b07b4"}, + {file = "rpds_py-0.20.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6aa97af1558a9bef4025f8f5d8c60d712e0a3b13a2fe875511defc6ee77a1ab7"}, + {file = "rpds_py-0.20.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:483b29f6f7ffa6af845107d4efe2e3fa8fb2693de8657bc1849f674296ff6a5a"}, + {file = "rpds_py-0.20.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:37fe0f12aebb6a0e3e17bb4cd356b1286d2d18d2e93b2d39fe647138458b4bcb"}, + {file = "rpds_py-0.20.1-cp313-none-win32.whl", hash = "sha256:a624cc00ef2158e04188df5e3016385b9353638139a06fb77057b3498f794782"}, + {file = "rpds_py-0.20.1-cp313-none-win_amd64.whl", hash = "sha256:b71b8666eeea69d6363248822078c075bac6ed135faa9216aa85f295ff009b1e"}, + {file = "rpds_py-0.20.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:5b48e790e0355865197ad0aca8cde3d8ede347831e1959e158369eb3493d2191"}, + {file = "rpds_py-0.20.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3e310838a5801795207c66c73ea903deda321e6146d6f282e85fa7e3e4854804"}, + {file = "rpds_py-0.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2249280b870e6a42c0d972339e9cc22ee98730a99cd7f2f727549af80dd5a963"}, + {file = "rpds_py-0.20.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e79059d67bea28b53d255c1437b25391653263f0e69cd7dec170d778fdbca95e"}, + {file = "rpds_py-0.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2b431c777c9653e569986ecf69ff4a5dba281cded16043d348bf9ba505486f36"}, + {file = "rpds_py-0.20.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da584ff96ec95e97925174eb8237e32f626e7a1a97888cdd27ee2f1f24dd0ad8"}, + {file = "rpds_py-0.20.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02a0629ec053fc013808a85178524e3cb63a61dbc35b22499870194a63578fb9"}, + {file = "rpds_py-0.20.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fbf15aff64a163db29a91ed0868af181d6f68ec1a3a7d5afcfe4501252840bad"}, + {file = "rpds_py-0.20.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:07924c1b938798797d60c6308fa8ad3b3f0201802f82e4a2c41bb3fafb44cc28"}, + {file = "rpds_py-0.20.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:4a5a844f68776a7715ecb30843b453f07ac89bad393431efbf7accca3ef599c1"}, + {file = "rpds_py-0.20.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:518d2ca43c358929bf08f9079b617f1c2ca6e8848f83c1225c88caeac46e6cbc"}, + {file = "rpds_py-0.20.1-cp38-none-win32.whl", hash = "sha256:3aea7eed3e55119635a74bbeb80b35e776bafccb70d97e8ff838816c124539f1"}, + {file = "rpds_py-0.20.1-cp38-none-win_amd64.whl", hash = "sha256:7dca7081e9a0c3b6490a145593f6fe3173a94197f2cb9891183ef75e9d64c425"}, + {file = "rpds_py-0.20.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:b41b6321805c472f66990c2849e152aff7bc359eb92f781e3f606609eac877ad"}, + {file = "rpds_py-0.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0a90c373ea2975519b58dece25853dbcb9779b05cc46b4819cb1917e3b3215b6"}, + {file = "rpds_py-0.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16d4477bcb9fbbd7b5b0e4a5d9b493e42026c0bf1f06f723a9353f5153e75d30"}, + {file = "rpds_py-0.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:84b8382a90539910b53a6307f7c35697bc7e6ffb25d9c1d4e998a13e842a5e83"}, + {file = "rpds_py-0.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4888e117dd41b9d34194d9e31631af70d3d526efc363085e3089ab1a62c32ed1"}, + {file = "rpds_py-0.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5265505b3d61a0f56618c9b941dc54dc334dc6e660f1592d112cd103d914a6db"}, + {file = "rpds_py-0.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e75ba609dba23f2c95b776efb9dd3f0b78a76a151e96f96cc5b6b1b0004de66f"}, + {file = "rpds_py-0.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1791ff70bc975b098fe6ecf04356a10e9e2bd7dc21fa7351c1742fdeb9b4966f"}, + {file = "rpds_py-0.20.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d126b52e4a473d40232ec2052a8b232270ed1f8c9571aaf33f73a14cc298c24f"}, + {file = "rpds_py-0.20.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:c14937af98c4cc362a1d4374806204dd51b1e12dded1ae30645c298e5a5c4cb1"}, + {file = "rpds_py-0.20.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3d089d0b88996df627693639d123c8158cff41c0651f646cd8fd292c7da90eaf"}, + {file = "rpds_py-0.20.1-cp39-none-win32.whl", hash = "sha256:653647b8838cf83b2e7e6a0364f49af96deec64d2a6578324db58380cff82aca"}, + {file = "rpds_py-0.20.1-cp39-none-win_amd64.whl", hash = "sha256:fa41a64ac5b08b292906e248549ab48b69c5428f3987b09689ab2441f267d04d"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7a07ced2b22f0cf0b55a6a510078174c31b6d8544f3bc00c2bcee52b3d613f74"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:68cb0a499f2c4a088fd2f521453e22ed3527154136a855c62e148b7883b99f9a"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa3060d885657abc549b2a0f8e1b79699290e5d83845141717c6c90c2df38311"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:95f3b65d2392e1c5cec27cff08fdc0080270d5a1a4b2ea1d51d5f4a2620ff08d"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2cc3712a4b0b76a1d45a9302dd2f53ff339614b1c29603a911318f2357b04dd2"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d4eea0761e37485c9b81400437adb11c40e13ef513375bbd6973e34100aeb06"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f5179583d7a6cdb981151dd349786cbc318bab54963a192692d945dd3f6435d"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2fbb0ffc754490aff6dabbf28064be47f0f9ca0b9755976f945214965b3ace7e"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:a94e52537a0e0a85429eda9e49f272ada715506d3b2431f64b8a3e34eb5f3e75"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:92b68b79c0da2a980b1c4197e56ac3dd0c8a149b4603747c4378914a68706979"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:93da1d3db08a827eda74356f9f58884adb254e59b6664f64cc04cdff2cc19b0d"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:754bbed1a4ca48479e9d4182a561d001bbf81543876cdded6f695ec3d465846b"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ca449520e7484534a2a44faf629362cae62b660601432d04c482283c47eaebab"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9c4cb04a16b0f199a8c9bf807269b2f63b7b5b11425e4a6bd44bd6961d28282c"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb63804105143c7e24cee7db89e37cb3f3941f8e80c4379a0b355c52a52b6780"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:55cd1fa4ecfa6d9f14fbd97ac24803e6f73e897c738f771a9fe038f2f11ff07c"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0f8f741b6292c86059ed175d80eefa80997125b7c478fb8769fd9ac8943a16c0"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fc212779bf8411667234b3cdd34d53de6c2b8b8b958e1e12cb473a5f367c338"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ad56edabcdb428c2e33bbf24f255fe2b43253b7d13a2cdbf05de955217313e6"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0a3a1e9ee9728b2c1734f65d6a1d376c6f2f6fdcc13bb007a08cc4b1ff576dc5"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:e13de156137b7095442b288e72f33503a469aa1980ed856b43c353ac86390519"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:07f59760ef99f31422c49038964b31c4dfcfeb5d2384ebfc71058a7c9adae2d2"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:59240685e7da61fb78f65a9f07f8108e36a83317c53f7b276b4175dc44151684"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:83cba698cfb3c2c5a7c3c6bac12fe6c6a51aae69513726be6411076185a8b24a"}, + {file = "rpds_py-0.20.1.tar.gz", hash = "sha256:e1791c4aabd117653530dccd24108fa03cc6baf21f58b950d0a73c3b3b29a350"}, ] [[package]] @@ -4500,13 +4500,13 @@ saml = ["python3-saml (>=1.5.0)"] [[package]] name = "sqlparse" -version = "0.5.1" +version = "0.5.2" description = "A non-validating SQL parser." optional = false python-versions = ">=3.8" files = [ - {file = "sqlparse-0.5.1-py3-none-any.whl", hash = "sha256:773dcbf9a5ab44a090f3441e2180efe2560220203dc2f8c0b0fa141e18b505e4"}, - {file = "sqlparse-0.5.1.tar.gz", hash = "sha256:bb6b4df465655ef332548e24f08e205afc81b9ab86cb1c45657a7ff173a3a00e"}, + {file = "sqlparse-0.5.2-py3-none-any.whl", hash = "sha256:e99bc85c78160918c3e1d9230834ab8d80fc06c59d03f8db2618f65f65dda55e"}, + {file = "sqlparse-0.5.2.tar.gz", hash = "sha256:9e37b35e16d1cc652a2545f0997c1deb23ea28fa1f3eefe609eee3063c3b105f"}, ] [package.extras] @@ -4613,13 +4613,43 @@ files = [ [[package]] name = "tomli" -version = "2.0.2" +version = "2.2.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" files = [ - {file = "tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38"}, - {file = "tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, + {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, + {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, + {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, + {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, + {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, + {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, + {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, + {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, ] [[package]] @@ -4705,13 +4735,13 @@ full = ["cerberus (>=1.3.0,<1.4.0)", "deepdiff (>=5.8.0,<5.9.0)", "jinja2 (>=3.0 [[package]] name = "ttp-templates" -version = "0.3.6" +version = "0.3.7" description = "Template Text Parser Templates collections" optional = false -python-versions = ">=3.6,<4.0" +python-versions = "<4.0,>=3.6" files = [ - {file = "ttp_templates-0.3.6-py3-none-any.whl", hash = "sha256:a126a70b23c428b541f458400eac98582894937ef3825c423d08d4384b4867ae"}, - {file = "ttp_templates-0.3.6.tar.gz", hash = "sha256:f05ac74e9ed75726fab347a144493ca7ffcd3ef298bc54fc09e2fce83c42916d"}, + {file = "ttp_templates-0.3.7-py3-none-any.whl", hash = "sha256:2328304fb4c957ee60db6f301143e8a4556b22a12b3e2f30511e8ef97fc78f7e"}, + {file = "ttp_templates-0.3.7.tar.gz", hash = "sha256:f9103041a3683a0cb3811609ad990f679beadfc9a92c3e3fa05d6037414ad2bf"}, ] [package.dependencies] @@ -4840,13 +4870,13 @@ files = [ [[package]] name = "wheel" -version = "0.44.0" +version = "0.45.1" description = "A built-package format for Python" optional = false python-versions = ">=3.8" files = [ - {file = "wheel-0.44.0-py3-none-any.whl", hash = "sha256:2376a90c98cc337d18623527a97c31797bd02bad0033d41547043a1cbfbe448f"}, - {file = "wheel-0.44.0.tar.gz", hash = "sha256:a29c3f2817e95ab89aa4660681ad547c0e9547f20e75b0562fe7723c9a2a9d49"}, + {file = "wheel-0.45.1-py3-none-any.whl", hash = "sha256:708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248"}, + {file = "wheel-0.45.1.tar.gz", hash = "sha256:661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729"}, ] [package.extras] @@ -4854,81 +4884,76 @@ test = ["pytest (>=6.0.0)", "setuptools (>=65)"] [[package]] name = "wrapt" -version = "1.16.0" +version = "1.17.0" description = "Module for decorators, wrappers and monkey patching." optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, - {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, - {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, - {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, - {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, - {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, - {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, - {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, - {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, - {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, - {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, - {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, - {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, - {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, - {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, - {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, - {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, - {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, + {file = "wrapt-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2a0c23b8319848426f305f9cb0c98a6e32ee68a36264f45948ccf8e7d2b941f8"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1ca5f060e205f72bec57faae5bd817a1560fcfc4af03f414b08fa29106b7e2d"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e185ec6060e301a7e5f8461c86fb3640a7beb1a0f0208ffde7a65ec4074931df"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb90765dd91aed05b53cd7a87bd7f5c188fcd95960914bae0d32c5e7f899719d"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:879591c2b5ab0a7184258274c42a126b74a2c3d5a329df16d69f9cee07bba6ea"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fce6fee67c318fdfb7f285c29a82d84782ae2579c0e1b385b7f36c6e8074fffb"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0698d3a86f68abc894d537887b9bbf84d29bcfbc759e23f4644be27acf6da301"}, + {file = "wrapt-1.17.0-cp310-cp310-win32.whl", hash = "sha256:69d093792dc34a9c4c8a70e4973a3361c7a7578e9cd86961b2bbf38ca71e4e22"}, + {file = "wrapt-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:f28b29dc158ca5d6ac396c8e0a2ef45c4e97bb7e65522bfc04c989e6fe814575"}, + {file = "wrapt-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:74bf625b1b4caaa7bad51d9003f8b07a468a704e0644a700e936c357c17dd45a"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f2a28eb35cf99d5f5bd12f5dd44a0f41d206db226535b37b0c60e9da162c3ed"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:81b1289e99cf4bad07c23393ab447e5e96db0ab50974a280f7954b071d41b489"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f2939cd4a2a52ca32bc0b359015718472d7f6de870760342e7ba295be9ebaf9"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6a9653131bda68a1f029c52157fd81e11f07d485df55410401f745007bd6d339"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4e4b4385363de9052dac1a67bfb535c376f3d19c238b5f36bddc95efae15e12d"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bdf62d25234290db1837875d4dceb2151e4ea7f9fff2ed41c0fde23ed542eb5b"}, + {file = "wrapt-1.17.0-cp311-cp311-win32.whl", hash = "sha256:5d8fd17635b262448ab8f99230fe4dac991af1dabdbb92f7a70a6afac8a7e346"}, + {file = "wrapt-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:92a3d214d5e53cb1db8b015f30d544bc9d3f7179a05feb8f16df713cecc2620a"}, + {file = "wrapt-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:89fc28495896097622c3fc238915c79365dd0ede02f9a82ce436b13bd0ab7569"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:875d240fdbdbe9e11f9831901fb8719da0bd4e6131f83aa9f69b96d18fae7504"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ed16d95fd142e9c72b6c10b06514ad30e846a0d0917ab406186541fe68b451"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18b956061b8db634120b58f668592a772e87e2e78bc1f6a906cfcaa0cc7991c1"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:daba396199399ccabafbfc509037ac635a6bc18510ad1add8fd16d4739cdd106"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4d63f4d446e10ad19ed01188d6c1e1bb134cde8c18b0aa2acfd973d41fcc5ada"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8a5e7cc39a45fc430af1aefc4d77ee6bad72c5bcdb1322cfde852c15192b8bd4"}, + {file = "wrapt-1.17.0-cp312-cp312-win32.whl", hash = "sha256:0a0a1a1ec28b641f2a3a2c35cbe86c00051c04fffcfcc577ffcdd707df3f8635"}, + {file = "wrapt-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:3c34f6896a01b84bab196f7119770fd8466c8ae3dfa73c59c0bb281e7b588ce7"}, + {file = "wrapt-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:714c12485aa52efbc0fc0ade1e9ab3a70343db82627f90f2ecbc898fdf0bb181"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da427d311782324a376cacb47c1a4adc43f99fd9d996ffc1b3e8529c4074d393"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba1739fb38441a27a676f4de4123d3e858e494fac05868b7a281c0a383c098f4"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e711fc1acc7468463bc084d1b68561e40d1eaa135d8c509a65dd534403d83d7b"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:140ea00c87fafc42739bd74a94a5a9003f8e72c27c47cd4f61d8e05e6dec8721"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:73a96fd11d2b2e77d623a7f26e004cc31f131a365add1ce1ce9a19e55a1eef90"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0b48554952f0f387984da81ccfa73b62e52817a4386d070c75e4db7d43a28c4a"}, + {file = "wrapt-1.17.0-cp313-cp313-win32.whl", hash = "sha256:498fec8da10e3e62edd1e7368f4b24aa362ac0ad931e678332d1b209aec93045"}, + {file = "wrapt-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:fd136bb85f4568fffca995bd3c8d52080b1e5b225dbf1c2b17b66b4c5fa02838"}, + {file = "wrapt-1.17.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:17fcf043d0b4724858f25b8826c36e08f9fb2e475410bece0ec44a22d533da9b"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4a557d97f12813dc5e18dad9fa765ae44ddd56a672bb5de4825527c847d6379"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0229b247b0fc7dee0d36176cbb79dbaf2a9eb7ecc50ec3121f40ef443155fb1d"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8425cfce27b8b20c9b89d77fb50e368d8306a90bf2b6eef2cdf5cd5083adf83f"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9c900108df470060174108012de06d45f514aa4ec21a191e7ab42988ff42a86c"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:4e547b447073fc0dbfcbff15154c1be8823d10dab4ad401bdb1575e3fdedff1b"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:914f66f3b6fc7b915d46c1cc424bc2441841083de01b90f9e81109c9759e43ab"}, + {file = "wrapt-1.17.0-cp313-cp313t-win32.whl", hash = "sha256:a4192b45dff127c7d69b3bdfb4d3e47b64179a0b9900b6351859f3001397dabf"}, + {file = "wrapt-1.17.0-cp313-cp313t-win_amd64.whl", hash = "sha256:4f643df3d4419ea3f856c5c3f40fec1d65ea2e89ec812c83f7767c8730f9827a"}, + {file = "wrapt-1.17.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:69c40d4655e078ede067a7095544bcec5a963566e17503e75a3a3e0fe2803b13"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f495b6754358979379f84534f8dd7a43ff8cff2558dcdea4a148a6e713a758f"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:baa7ef4e0886a6f482e00d1d5bcd37c201b383f1d314643dfb0367169f94f04c"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8fc931382e56627ec4acb01e09ce66e5c03c384ca52606111cee50d931a342d"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8f8909cdb9f1b237786c09a810e24ee5e15ef17019f7cecb207ce205b9b5fcce"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ad47b095f0bdc5585bced35bd088cbfe4177236c7df9984b3cc46b391cc60627"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:948a9bd0fb2c5120457b07e59c8d7210cbc8703243225dbd78f4dfc13c8d2d1f"}, + {file = "wrapt-1.17.0-cp38-cp38-win32.whl", hash = "sha256:5ae271862b2142f4bc687bdbfcc942e2473a89999a54231aa1c2c676e28f29ea"}, + {file = "wrapt-1.17.0-cp38-cp38-win_amd64.whl", hash = "sha256:f335579a1b485c834849e9075191c9898e0731af45705c2ebf70e0cd5d58beed"}, + {file = "wrapt-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d751300b94e35b6016d4b1e7d0e7bbc3b5e1751e2405ef908316c2a9024008a1"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7264cbb4a18dc4acfd73b63e4bcfec9c9802614572025bdd44d0721983fc1d9c"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:33539c6f5b96cf0b1105a0ff4cf5db9332e773bb521cc804a90e58dc49b10578"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c30970bdee1cad6a8da2044febd824ef6dc4cc0b19e39af3085c763fdec7de33"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:bc7f729a72b16ee21795a943f85c6244971724819819a41ddbaeb691b2dd85ad"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6ff02a91c4fc9b6a94e1c9c20f62ea06a7e375f42fe57587f004d1078ac86ca9"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2dfb7cff84e72e7bf975b06b4989477873dcf160b2fd89959c629535df53d4e0"}, + {file = "wrapt-1.17.0-cp39-cp39-win32.whl", hash = "sha256:2399408ac33ffd5b200480ee858baa58d77dd30e0dd0cab6a8a9547135f30a88"}, + {file = "wrapt-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:4f763a29ee6a20c529496a20a7bcb16a73de27f5da6a843249c7047daf135977"}, + {file = "wrapt-1.17.0-py3-none-any.whl", hash = "sha256:d2c63b93548eda58abf5188e505ffed0229bf675f7c3090f8e36ad55b8cbc371"}, + {file = "wrapt-1.17.0.tar.gz", hash = "sha256:16187aa2317c731170a88ef35e8937ae0f533c402872c1ee5e6d079fcf320801"}, ] [[package]] diff --git a/pyproject.toml b/pyproject.toml index 39602ff8..893391a5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "nautobot-golden-config" -version = "2.2.1a0" +version = "2.2.1" description = "An app for configuration on nautobot" authors = ["Network to Code, LLC "] license = "Apache-2.0" From a7c17e114c92949cdd261f37caee6b2e0337cd82 Mon Sep 17 00:00:00 2001 From: Stephen Kiely Date: Wed, 27 Nov 2024 17:40:01 -0600 Subject: [PATCH 5/5] Update docs/admin/release_notes/version_2.2.md Co-authored-by: Gary Snider <75227981+gsnider2195@users.noreply.github.com> --- docs/admin/release_notes/version_2.2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/release_notes/version_2.2.md b/docs/admin/release_notes/version_2.2.md index e70cf0fe..dae668d8 100644 --- a/docs/admin/release_notes/version_2.2.md +++ b/docs/admin/release_notes/version_2.2.md @@ -17,7 +17,7 @@ This document describes all new features and changes in the release. The format ### Fixed - [#831](https://github.com/nautobot/nautobot-app-golden-config/issues/831) - Resolved issue with tests failing in Nautobot 2.3.11. -- [#835](https://github.com/nautobot/nautobot-app-golden-config/issues/835) - Resolved error when accessing the Golden Config Settings list view. +- [#835](https://github.com/nautobot/nautobot-app-golden-config/issues/835) - Resolved error when accessing the Golden Config Settings list view in Nautobot v2.3.11 and higher. ## [v2.2.0 (2024-11-04)](https://github.com/nautobot/nautobot-app-golden-config/releases/tag/v2.2.0)