Coverage for fastapi/utils.py: 100%

91 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-09-09 09:16 +0000

1import re 1abcdef

2import warnings 1abcdef

3from dataclasses import is_dataclass 1abcdef

4from typing import ( 1abcdef

5 TYPE_CHECKING, 

6 Any, 

7 Dict, 

8 MutableMapping, 

9 Optional, 

10 Set, 

11 Type, 

12 Union, 

13 cast, 

14) 

15from weakref import WeakKeyDictionary 1abcdef

16 

17import fastapi 1abcdef

18from fastapi._compat import ( 1abcdef

19 PYDANTIC_V2, 

20 BaseConfig, 

21 ModelField, 

22 PydanticSchemaGenerationError, 

23 Undefined, 

24 UndefinedType, 

25 Validator, 

26 lenient_issubclass, 

27) 

28from fastapi.datastructures import DefaultPlaceholder, DefaultType 1abcdef

29from pydantic import BaseModel, create_model 1abcdef

30from pydantic.fields import FieldInfo 1abcdef

31from typing_extensions import Literal 1abcdef

32 

33if TYPE_CHECKING: # pragma: nocover 1abcdef

34 from .routing import APIRoute 

35 

36# Cache for `create_cloned_field` 

37_CLONED_TYPES_CACHE: MutableMapping[Type[BaseModel], Type[BaseModel]] = ( 1abcdef

38 WeakKeyDictionary() 

39) 

40 

41 

42def is_body_allowed_for_status_code(status_code: Union[int, str, None]) -> bool: 1abcdef

43 if status_code is None: 2a PhQhRhShThUhJZVhKZLZWhMZ8g9gNZ!gXhYhZh0h#g1h2h3h4h%b5h'b(bOZ6h7hbh8h)b9hWg!h#h$hPZQZ%h'h*by Pb(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviRZwixiyiziAiBiCi@d[d]d^d_dDiEiFiGiHichdhIiSZJiTZKiLiUZMiNiOiVZPiQiWZRiXZSiTiUiViWiYZXiz A B C D m g .dYiZZZi0Z0i1i2i$g3i4i5i6i7i8i9i!i#i$i1Z4e5e2Z%i3Z'i(i4Z)i*i+i5Z6Z,i%g-i'go E F DbEbG .i7Z/i:i;i8Z=i?i@i[i]i9Z^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHj!ZIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0jQbH 1j2j#Z3j$Z4j5j%Z6j7j8j'Z9j!j#j$j%j'j(j)j*j+j(g,jUgIc-j.j/j:j;j=j?j@j[j]j(Z^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkRbJcSbKc)gxkykzkAk$ % ' Bkrbsb+b!c)ZCkDk*ZEkFk+ZGkHk,ZIkJk-ZKkLk.ZMkNk/ZOkPk:ZQkRk;ZSkTk=ZUkVk?ZWkXk@ZYkZk[Z0k1k2k3k]Z4k5k6k7k^Z8k9k!k#k_Z$k%k'k`Z(k)k*k{Z+k,k-k|Z.k/k:k}Z;k=k?k~Z@k[k]ka0^k_k`k{k|k}kb0~kalblc0cld0dlelflgle0hliljlklllmlf0nlolplg0qlh0rlsltli0ulvlwlj0xlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0l1l2lk03l4l5l6l7ll08l9lm0!l#l*g$lXg%lYg'lZg(l)l*l+l,l-l.l/l:ln0;l=lo0?lp0@lq0[l]l^l_l`l{l|l+g}l~lambmcmdmemfmgmhmimjmr0kmlmmmnmompms0t0qmrmsmu0tmv0umvmw0x0wm[e6e7exmymzmAmBmCmy0DmEmz0FmA0GmHmImJmKmLmMmNmOmPmB0C0D0QmE0F0RmSmTmUmG0VmWmH0XmI0J0YmZmK00mL01m2m3mM04m5m6m7m8m9m!m#m$m%m'm(m)mN0*mO0+mP0,mQ0-mR0.mS0/m:mT0;mU0=mV0?mW0@mX0[m]m^m_mY0`m{mZ0|m00}m1020~manbn30cndnen40fngn50hninjn60kn70ln80mn90nn!0on#0$0pnqn%0rn'0sn(0tn)0un*0+0vnwn,g-gxn.gynznAn/gBnCnDnEnFn,0-0.0Gn/0HnIn:0JnKnLnMn;0=0NnOnPn?0QnRnSn@0Tn[0]0UnVnWnXn^0YnZn0n_01n`02n3n4n{05n6n7n|0}08n9n!n~0#n$n%n'na1(n)nb1*n+nc1,n-nd1.ne1/nf1:ng1;nh1=n?n@n[ni1]nj1^nk1l1Lc_nm1`nn1o1{n|np1}n~nq1aor1bos1cot1doeofou1gohoiojokolomonov1oopoqorosotouow1vowoxoyozoAoBoCoDox1EoFoGoHoIoy1JoKoz1LoehMoNoA1OoB1PoC1D1QoRoE1SoToF1Uo,bVoWo`d{d|d}d~daeXoG1YoZoH10o1oI12o3o4o5o6oJ1b 7o8o9o!o#o$oK1%oL1M1'oN1:g;gO1=g(o)o*o+o?g,o-o.o/o-b:o.b/bP1;o=ofh?o:b@o0g[o]o^oQ1R1_o`o;bI Tb{o|o}o~oapbpcpdpepfpgphpipjpkplpmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpS1OpPpQpRpSpTpUpbecedeeefeVpWpXpYpZpghhh0pT11pU12p3pV14p5p6pW17p8pX19pY1!p#p$p%p'pZ1(pJ K L M N n h /d)p01*p11+p,p-p@g.p/p:p;p=p?p@p[p]p^p218e9e31_p41`p{p51|p}p~p6171aq[gbq]gp O P FbGbQ cq81dqeqfq91gqhqiqjqkq!1lqmqnqoqpqqqrqsqtquqvqwqxqyqzqAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq#10q1q2q3q4q5q6q7q8q9q!q#q$q%q'q(q)q*q+qUbR ,q-q$1.q%1/q:q'1;q=q?q(1@q[q]q^q_q`q{q|q}q~q^garVgMcbrcrdrerfrgrhrirjrkr)1lrmrnrorprqrrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrVbNcWbOc_gPrQrRrSr( ) * Trtbub=b#c*1UrVr+1WrXr,1YrZr-10r1r.12r3r/14r5r:16r7r;18r9r=1!r#r?1$r%r@1'r(r[1)r*r]1+r,r-r.r^1/r:r;r=r_1?r@r[r]r`1^r_r`r{1{r|r}r|1~rasbs}1csdses~1fsgshsa2isjsksb2lsmsnsospsqsc2rssstsd2use2vswsxsysf2zsAsBsCsDsEsg2FsGsHsh2Isi2JsKsLsj2MsNsOsk2PsQsRsSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-sl2.s/s:s;s=sm2?s@sn2[s]s`g^s1g_s2g`s3g{s|s}s~satbtctdteto2ftgtp2htq2itr2jtktltmtntotpt{gqtrtstttutvtwtxtytztAtBts2CtDtEtFtGtHtt2u2ItJtKtv2Ltw2MtNtx2y2Ot]e!e#ePtQtRtStTtUtz2VtWtA2XtB2YtZt0t1t2t3t4t5t6t7tC2D2E28tF2G29t!t#t$tH2%t'tI2(tJ2K2)t*tL2+tM2,t-t.tN2/t:t;t=t?t@t[t]t^t_t`t{t|tO2}tP2~tQ2auR2buS2cuT2dueuU2fuV2guW2huX2iuY2jukulumuZ2nuou02pu12qu2232rusutu42uuvuwu52xuyu62zuAuBu72Cu82Du92Eu!2Fu#2Gu$2%2HuIu'2Ju(2Ku)2Lu*2Mu+2,2NuOu|g}gPu~gQuRuSuahTuUuVuWuXu-2.2/2Yu:2Zu0u;21u2u3u4u=2?25u6u7u@28u9u!u[2#u]2^2$u%u'u(u_2)u*u+u`2,u{2-u.u/u|2:u;u=u}2~2?u@u[ua3]u^u_u`ub3{u|uc3}u~ud3avbve3cvf3dvg3evh3fvi3gvhvivjvj3kvk3lvl3m3Pcmvn3nvo3p3ovpvq3qvrvr3svs3tvt3uvu3vvwvxvv3yvzvAvBvCvDvEvFvw3GvHvIvJvKvLvMvx3NvOvPvQvRvSvTvUvVvy3WvXvYvZv0vz31v2vA33vih4v5vB36vC37vD3E38v9vF3!v#vG3$v?b%v'vgeheiejekele(vH3)v*vI3+v,vJ3-v.v/v:v;vK3c =v?v@v[v]v^vL3_vM3N3`vO3{v|vP3}v~vawbwcwdwewfwgwhw@biw[b]bQ3jwkwjhlw^bmwkhnwowpwR3S3qwrw_bS XbswtwuwvwwwxwywzwAwBwCwDwEwFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9wT3!w#w$w%w'w(w)wmeneoepeqe*w+w,w-w.wlhmh/wU3:wV3;w=wW3?w@w[wX3]w^wY3_wZ3`w{w|w}w~w03ax+ , - . / u i :dbx13cx23dxexfxgxhxixjxkxlxmxnxoxpxqx33$e%e43rx53sxtx63uxvxwx7383xxyxzxAxq T U HbIbV Bx93CxDxEx!3FxGxHxIxJx#3KxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%x'x(x)x*x+x,x-x.x/x:x;x$3=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyfygyYbW `b$c{b%c|b}bhyiy%3jy'3kyly(3mynyoy)3pyqyrysytyuyvywyxyyyzyAy4gQcByCyDyEyFyGyHyIyJyKy*3LyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y%y'yZbRc0bSc(y)y*y+y,y: ; = -yvbwb~b'c+3.y/y,3:y;y-3=y?y.3@y[y/3]y^y:3_y`y;3{y|y=3}y~y?3azbz@3czdz[3ezfz]3gzhz^3izjzkzlz_3mznzozpz`3qzrzsztz{3uzvzwz|3xzyzzz}3AzBzCz~3DzEzFza4GzHzIzb4JzKzLzc4MzNzOzPzQzRzd4SzTzUze4Vzf4WzXzYzZzg40z1z2z3z4z5zh46z7z8zi49zj4!z#z$zk4%z'z(zl4)z*z+z,z-z.z/z:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAdAeAfAgAhAiAjAkAm4lAmAnAoApAn4qArAo4sAtAuAvAnhwAohxAphyAzAAABACADAEAFAGAp4HAIAq4JAr4KAs4LAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4At45A6A7A8A9A!Au4v4#A$A%Aw4'Ax4(A)Ay4z4*A^e'e(e+A,A-A.A/A:AA4;A=AB4?AC4@A[A]A^A_A`A{A|A}A~AD4E4F4aBG4H4bBcBdBeBI4fBgBJ4hBK4L4iBjBM4kBN4lBmBnBO4oBpBqBrBsBtBuBvBwBxByBzBABP4BBQ4CBR4DBS4EBT4FBU4GBHBV4IBW4JBX4KBY4LBZ4MBNBOBPB04QBRB14SB24TB3444UBVBWB54XBYBZB640B1B742B3B4B845B946B!47B#48B$49B%4'4!B#B(4$B)4%B*4'B+4(B,4-4)B*B+B,B-B.B/B:B;B=B?B@B[B]B^B.4/4:4_B;4`B{B=4|B}B~BaC?4@4bCcCdC[4eCfCgC]4hC^4_4iCjCkClC`4mCnCoC{4pC|4qCrCsC}4tCuCvC~4a5wCxCyCb5zCACBCCCc5DCECd5FCGCe5HCICf5JCg5KCh5LCi5MCj5NCOCPCQCk5RCl5SCm5n5TcUcTCo5p5UCVCq5r5WCXCs5YCZCt50Cu51Cv52Cw53C4C5Cx56C7C8C9C!C#C$C%Cy5'C(C)C*C+C,C-Cz5.C/C:C;C=C?C@C[C]CA5^C_C`C{C|CB5}C~CC5aDqhbDcDD5dDE5eDF5G5fDgDH5hDiDI5jDackDlDreseteuevewemD? J5nDoDK5pDqDL5rDsDtDuDvDM5d wDxDyDzDADBDN5CDO5P5DDQ5EDFDR5GDHDIDJDKDLDMDNDODPDbcQDccdcS5RDSDrhTDecUDshVDWDXDT5U5YDZDfcX 1b0D1D2D3D4D5D6D7D8D9D!D#D$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgEV5hEiEjEkElEmEnExeyezeAeBeoEpEqErEsEthuhtEW5uEX5vEwEY5xEyEzEZ5AEBE05CE15DEEEFEGEHE25IE@ [ ] ^ _ v j ;dJE35KE45LEMENEOEPEQERESETEUEVEWEXEYE55)e*e65ZE750E1E852E3E4E95!55E6E7E8Er Y Z JbKb0 9E#5!E#E$E$5%E'E(E)E*E%5+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvF'5wFxFyFzFAFBFCFDFEFFFGFHFIFJFKFLFMFNFOF2b1 gc(chc)cicjcPFQF(5RF)5SFTF*5UFVFWF+5XFYFZF0F1F2F3F4F5F6F7F8F5gVc9F!F#F$F%F'F(F)F*F+F,5,F-F.F/F:F;F=F?F@F[F]F^F_F`F{F|F}F~FaGbGcGdGeGfGgGhGiGjGkGlG3bWc4bXcmGnGoGpGqG` { | rGxbybkc*c-5sGtG.5uGvG/5wGxG:5yGzG;5AGBG=5CGDG?5EGFG@5GGHG[5IGJG]5KGLG^5MGNG_5OGPG`5QGRGSGTG{5UGVGWGXG|5YGZG0G1G}52G3G4G~55G6G7Ga68G9G!Gb6#G$G%Gc6'G(G)Gd6*G+G,Ge6-G.G/G:G;G=Gf6?G@G[Gg6]Gh6^G_G`G{Gi6|G}G~GaHbHcHj6dHeHfHk6gHl6hHiHjHm6kHlHmHn6nHoHpHqHrHsHtHuHvHwHxHyHzHAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHo6THUHVHWHXHp6YHZHq60H1H2H3Hvh4Hwh5Hxh6H7H8H9H!H#H$H%H'Hr6(H)Hs6*Ht6+Hu6,H-H.H/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbIv6cIdIeIfIgIhIw6x6iIjIkIy6lIz6mInIA6B6oI_e+e,epIqIrIsItIuIC6vIwID6xIE6yIzIAIBICIDIEIFIGIHIF6G6H6III6J6JIKILIMIK6NIOIL6PIM6N6QIRIO6SIP6TIUIVIQ6WIXIYIZI0I1I2I3I4I5I6I7I8IR69IS6!IT6#IU6$IV6%IW6'I(IX6)IY6*IZ6+I06,I16-I.I/I:I26;I=I36?I46@I5666[I]I^I76_I`I{I86|I}I96~IaJbJ!6cJ#6dJ$6eJ%6fJ'6gJ(6)6hJiJ*6jJ+6kJ,6lJ-6mJ.6/6nJoJpJqJrJsJtJuJvJwJxJyJzJAJBJ:6;6=6CJ?6DJEJ@6FJGJHJIJ[6]6JJKJLJ^6MJNJOJ_6PJ`6{6QJRJSJTJ|6UJVJWJ}6XJ~6YJZJ0Ja71J2J3Jb7c74J5J6Jd77J8J9J!Je7#J$Jf7%J'Jg7(J)Jh7*Ji7+Jj7,Jk7-Jl7.J/J:J;Jm7=Jn7?Jo7p7YcZc@Jq7r7[J]Js7t7^J_Ju7`J{Jv7|Jw7}Jx7~Jy7aKbKcKz7dKeKfKgKhKiKjKkKA7lKmKnKoKpKqKrKB7sKtKuKvKwKxKyKzKAKC7BKCKDKEKFKD7GKHKE7IKyhJKKKF7LKG7MKH7I7NKOKJ7PKQKK7RKlcSKTKCeDeEeFeGeHeUK} L7VKWKM7XKYKN7ZK0K1K2K3KO7e 4K5K6K7K8K9KP7!KQ7R7#KS7$K%KT7'K(K)K*K+K,K-K.K/K:Kmc;KncocU7=K?Kzh@Kpc[KAh]K^K_KV7W7`K{Kqc2 5b|K}K~KaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzLALBLCLDLELFLGLHLILJLKLLLMLNLOLX7PLQLRLSLTLULVLIeJeKeLeMeWLXLYLZL0LBhCh1LY72LZ73L4L075L6L7L178L9L27!L37#L$L%L'L(L47)L~ abbbcbdbw k =d*L57+L67,L-L.L/L:L;L=L?L@L[L]L^L_L`L77-e.e87{L97|L}L!7~LaMbM#7$7cMdMeMfMs 3 4 LbMb5 gM%7hMiMjM'7kMlMmMnMoM(7pMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M)74M5M6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M6b6 rc+csc,ctcuc:M;M*7=M+7?M@M,7[M]M^M-7_M`M{M|M}M~MaNbNcNdNeNfN6g0cgNhNiNjNkNlNmNnNoNpN.7qNrNsNtNuNvNwNxNyNzNANBNCNDNENFNGNHNINJNKNLNMNNNONPNQNRNSNTN7b1c8b2cUNVNWNXNYNebfbgbZNzbAbvc-c/70N1N:72N3N;74N5N=76N7N?78N9N@7!N#N[7$N%N]7'N(N^7)N*N_7+N,N`7-N.N{7/N:N|7;N=N?N@N}7[N]N^N_N~7`N{N|N}Na8~NaObOb8cOdOeOc8fOgOhOd8iOjOkOe8lOmOnOf8oOpOqOg8rOsOtOuOvOwOh8xOyOzOi8AOj8BOCODOEOk8FOGOHOIOJOKOl8LOMONOm8OOn8POQOROo8SOTOUOp8VOWOXOYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;O=O?Oq8@O[O]O^O_Or8`O{Os8|O}O~OaPDhbPEhcPFhdPePfPgPhPiPjPkPlPt8mPnPu8oPv8pPw8qPrPsPtPuPvPwPxPyPzPAPBPCPDPEPFPGPHPIPJPx8KPLPMPNPOPPPy8z8QPRPSPA8TPB8UPVPC8D8WP`e/e:eXPYPZP0P1P2PE83P4PF85PG86P7P8P9P!P#P$P%P'P(PH8I8J8)PK8L8*P+P,P-PM8.P/PN8:PO8P8;P=PQ8?PR8@P[P]PS8^P_P`P{P|P}P~PaQbQcQdQeQfQT8gQU8hQV8iQW8jQX8kQY8lQmQZ8nQ08oQ18pQ28qQ38rQsQtQuQ48vQwQ58xQ68yQ7888zQAQBQ98CQDQEQ!8FQGQ#8HQIQJQ$8KQ%8LQ'8MQ(8NQ)8OQ*8+8PQQQ,8RQ-8SQ.8TQ/8UQ:8;8VQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q=8?8@8!Q[8#Q$Q]8%Q'Q(Q)Q^8_8*Q+Q,Q`8-Q.Q/Q{8:Q|8}8;Q=Q?Q@Q~8[Q]Q^Qa9_Qb9`Q{Q|Qc9}Q~QaRd9e9bRcRdRf9eRfRgRhRg9iRjRh9kRlRi9mRnRj9oRk9pRl9qRm9rRn9sRtRuRvRo9wRp9xRq9r93c4cyRs9t9zRARu9v9BRCRw9DRERx9FRy9GRz9HRA9IRJRKRB9LRMRNRORPRQRRRSRC9TRURVRWRXRYRZRD90R1R2R3R4R5R6R7R8RE99R!R#R$R%RF9'R(RG9)RGh*R+RH9,RI9-RJ9K9.R/RL9:R;RM9=Rwc?R@RNeOePeQeReSe[RhbN9]R^RO9_R`RP9{R|R}R~RaSQ9f bScSdSeSfSgSR9hSS9T9iSU9jSkSV9lSmSnSoSpSqSrSsStSuSxcvSyczcW9wSxSHhySAczSIhASBSCSX9Y9DSESBc7 9bFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6S7S8S9S!S#S$S%S'S(S)S*S+S,S-S.S/SZ9:S;S=S?S@S[S]STeUeVeWeXe^S_S`S{S|SJhKh}S09~S19aTbT29cTdTeT39fTgT49hT59iTjTkTlTmT69nTibjbkblbmbx l ?doT79pT89qTrTsTtTuTvTwTxTyTzTATBTCTDT99;e=e!9ET#9FTGT$9HTITJT%9'9KTLTMTNTt 8 9 NbOb! OT(9PTQTRT)9STTTUTVTWT*9XTYTZT0T1T2T3T4T5T6T7T8T9T!T#T$T%T'T(T)T*T+T,T-T.T/T:T;T=T?T@T[T]T^T_T`T{T|T}T~TaU+9bUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUsUtU!b# Cc.cDc/cEcFcuUvU,9wU-9xUyU.9zUAUBU/9CUDUEUFUGUHUIUJUKULUMUNU7g5cOUPUQURUSUTUUUVUWUXU:9YUZU0U1U2U3U4U5U6U7U8U9U!U#U$U%U'U(U)U*U+U,U-U.U/U:U;U=U?U@U#b6c$b7c[U]U^U_U`Unbobpb{UBbCbGc:c;9|U}U=9~UaV?9bVcV@9dVeV[9fVgV]9hViV^9jVkV_9lVmV`9nVoV{9pVqV|9rVsV}9tVuV~9vVwVxVyVa!zVAVBVCVb!DVEVFVGVc!HVIVJVd!KVLVMVe!NVOVPVf!QVRVSVg!TVUVVVh!WVXVYVi!ZV0V1V2V3V4Vj!5V6V7Vk!8Vl!9V!V#V$Vm!%V'V(V)V*V+Vn!,V-V.Vo!/Vp!:V;V=Vq!?V@V[Vr!]V^V_V`V{V|V}V~VaWbWcWdWeWfWgWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWs!yWzWAWBWCWt!DWEWu!FWGWHWIWLhJWMhKWNhLWMWNWOWPWQWRWSWTWv!UWVWw!WWx!XWy!YWZW0W1W2W3W4W5W6W7W8W9W!W#W$W%W'W(W)W*Wz!+W,W-W.W/W:WA!B!;W=W?WC!@WD![W]WE!F!^W{e?e@e_W`W{W|W}W~WG!aXbXH!cXI!dXeXfXgXhXiXjXkXlXmXJ!K!L!nXM!N!oXpXqXrXO!sXtXP!uXQ!R!vXwXS!xXT!yXzXAXU!BXCXDXEXFXGXHXIXJXKXLXMXNXV!OXW!PXX!QXY!RXZ!SX0!TXUX1!VX2!WX3!XX4!YX5!ZX0X1X2X6!3X4X7!5X8!6X9!!!7X8X9X#!!X#X$X$!%X'X%!(X)X*X'!+X(!,X)!-X*!.X+!/X,!-!:X;X.!=X/!?X:!@X;![X=!?!]X^X_X`X{X|X}X~XaYbYcYdYeYfYgY@![!]!hY^!iYjY_!kYlYmYnY`!{!oYpYqY|!rYsYtY}!uY~!a#vYwYxYyYb#zYAYBYc#CYd#DYEYFYe#GYHYIYf#g#JYKYLYh#MYNYOYPYi#QYRYj#SYTYk#UYVYl#WYm#XYn#YYo#ZYp#0Y1Y2Y3Yq#4Yr#5Ys#t#8c9c6Yu#v#7Y8Yw#x#9Y!Yy##Y$Yz#%YA#'YB#(YC#)Y*Y+YD#,Y-Y.Y/Y:Y;Y=Y?YE#@Y[Y]Y^Y_Y`Y{YF#|Y}Y~YaZbZcZdZeZfZG#gZhZiZjZkZH#lZmZI#nZOhoZpZJ#qZK#rZL#M#sZtZN#uZvZO#wZHcxZyZYeZe0e1e2e3ezZqbP#AZBZQ#CZDZR#EZFZGZHZIZS#

44 return True 2a JZKZLZMZ8g9gNZ!g#gOZbhWgPZQZy PbRZSZTZUZVZWZXZYZz A B C D m g .dZZ0Z$g1Z2Z3Z4Z5Z6Z%g'go E F DbEbG 7Z8Z9Z!ZQbH #Z$Z%Z'Z(gUgIc(ZJcKc)g$ % ' rbsb!c)Z*Z+Z,Z-Z.Z/Z:Z;Z=Z?Z@Z[Z]Z^Z_Z`Z{Z|Z}Z~Za0b0c0d0e0f0g0h0i0j0k0l0m0*gXgYgZgn0o0p0q0+gr0s0t0u0v0w0x0[ey0z0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z000102030405060708090!0#0$0%0'0(0)0*0+0,g-g.g/g,0-0.0/0:0;0=0?0@0[0]0^0_0`0{0|0}0~0a1b1c1d1e1f1g1h1i1j1k1l1Lcm1n1o1p1q1r1s1t1u1v1w1x1y1z1A1B1C1D1E1F1G1H1I1J1b K1L1M1N1:g;gO1=g?gP1fh0gQ1R1I TbS1T1U1V1W1X1Y1Z1J K L M N n h /d0111@g213141516171[g]gp O P FbGbQ 8191!1#1UbR $1%1'1(1^gVgMc)1NcOc_g( ) * tbub#c*1+1,1-1.1/1:1;1=1?1@1[1]1^1_1`1{1|1}1~1a2b2c2d2e2f2g2h2i2j2k2l2m2n2`g1g2g3go2p2q2r2{gs2t2u2v2w2x2y2]ez2A2B2C2D2E2F2G2H2I2J2K2L2M2N2O2P2Q2R2S2T2U2V2W2X2Y2Z202122232425262728292!2#2$2%2'2(2)2*2+2,2|g}g~gah-2.2/2:2;2=2?2@2[2]2^2_2`2{2|2}2~2a3b3c3d3e3f3g3h3i3j3k3l3m3Pcn3o3p3q3r3s3t3u3v3w3x3y3z3A3B3C3D3E3F3G3H3I3J3K3c L3M3N3O3{v|vP3}vdwQ3jhkhR3S3S XbT3U3V3W3X3Y3Z303+ , - . / u i :d1323gx334353637383yxAxq T U HbIbV 93!3#3$3YbW $c%c%3'3(3)3zy4gQc*3RcSc(y: ; = vbwb'c+3,3-3.3/3:3;3=3?3@3[3]3^3_3`3{3|3}3~3a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4uAnhohphp4q4r4s4SAt4u4v4w4x4y4z4^eA4B4C4D4E4F4G4H4I4J4K4L4M4N4O4P4Q4R4S4T4U4V4W4X4Y4Z404142434445464748494!4#4$4%4'4(4)4*4+4,4-4+B,B.B=B.4/4:4;4=4?4@4[4]4^4_4`4{4|4}4~4a5b5c5d5e5f5g5h5i5j5k5l5m5n5TcUco5p5q5r5s5t5u5v5w5x5y5z5A5B5C5D5E5F5G5H5I5? J5K5L5M5d N5O5P5Q5EDFDR5GDLDS5rhshT5U5X 1bV5W5X5Y5Z5051525@ [ ] ^ _ v j ;d3545OE5565758595!56E8Er Y Z JbKb0 #5$5%5'52b1 (c)c(5)5*5+57F5gVc,5WcXcmG` { | xbyb*c-5.5/5:5;5=5?5@5[5]5^5_5`5{5|5}5~5a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q62Hvhwhxhr6s6t6u6?Hv6w6x6y6z6A6B6_eC6D6E6F6G6H6I6J6K6L6M6N6O6P6Q6R6S6T6U6V6W6X6Y6Z606162636465666768696!6#6$6%6'6(6)6*6+6,6-6.6/6pJqJsJwJ:6;6=6?6@6[6]6^6_6`6{6|6}6~6a7b7c7d7e7f7g7h7i7j7k7l7m7n7o7p7YcZcq7r7s7t7u7v7w7x7y7z7A7B7C7D7E7F7G7H7I7J7K7} L7M7N7O7e P7Q7R7S7$K%KT7'K,KU7zhAhV7W72 5bX7Y7Z70717273747~ abbbcbdbw k =d5767/L778797!7#7$7dMfMs 3 4 LbMb5 %7'7(7)76b6 +c,c*7+7,7-7eN6g0c.71c2cUNebfbgbzbAb-c/7:7;7=7?7@7[7]7^7_7`7{7|7}7~7a8b8c8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8~ODhEhFht8u8v8w8xPx8y8z8A8B8C8D8`eE8F8G8H8I8J8K8L8M8N8O8P8Q8R8S8T8U8V8W8X8Y8Z808182838485868788898!8#8$8%8'8(8)8*8+8,8-8.8/8:8;8XQYQ0Q4Q=8?8@8[8]8^8_8`8{8|8}8~8a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r93c4cs9t9u9v9w9x9y9z9A9B9C9D9E9F9G9H9I9J9K9L9M9hbN9O9P9Q9f R9S9T9U9jSkSV9lSqSW9HhIhX9Y97 9bZ909192939495969ibjbkblbmbx l ?d7989tT99!9#9$9%9'9LTNTt 8 9 NbOb! (9)9*9+9!b# .c/c,9-9.9/9MU7g5c:96c7c[UnbobpbBbCb:c;9=9?9@9[9]9^9_9`9{9|9}9~9a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!HWLhMhNhv!w!x!y!5Wz!A!B!C!D!E!F!{eG!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!!!#!$!%!'!(!)!*!+!,!-!.!/!:!;!=!?!_X`X|XbY@![!]!^!_!`!{!|!}!~!a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#8c9cu#v#w#x#y#z#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#qbP#Q#R#S#

45 # Ref: https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#patterned-fields-1 

46 if status_code in { 2a PhQhRhShThUhVhWhXhYhZh0h1h2h3h4h%b5h'b(b6h7hbh8h)b9h!h#h$h%h'h*by Pb(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCi@d[d]d^d_dDiEiFiGiHichdhIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiz A B C D m g YiZi0i1i2i3i4i5i6i7i8i9i!i#i$i4e5e%i'i(i)i*i+i,i-io E F DbEbG .i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0jQbH 1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,jUg-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkRbSbxkykzkAk$ % ' Bkrbsb+bCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwm6e7exmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIoJoKoLoehMoNoOoPoQoRoSoToUo,bVoWo`d{d|d}d~daeXoYoZo0o1o2o3o4o5o6ob 7o8o9o!o#o$o%o'o(o)o*o+o,o-o.o/o-b:o.b/b;o=ofh?o:b@o[o]o^o_o`o;bI Tb{o|o}o~oapbpcpdpepfpgphpipjpkplpmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpbecedeeefeVpWpXpYpZpghhh0p1p2p3p4p5p6p7p8p9p!p#p$p%p'p(pJ K L M N n h )p*p+p,p-p.p/p:p;p=p?p@p[p]p^p8e9e_p`p{p|p}p~paqbqp O P FbGbQ cqdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqsqtquqvqwqxqyqzqAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q'q(q)q*q+qUbR ,q-q.q/q:q;q=q?q@q[q]q^q_q`q{q|q}q~qarVgbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrVbWbPrQrRrSr( ) * Trtbub=bUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytztAtBtCtDtEtFtGtHtItJtKtLtMtNtOt!e#ePtQtRtStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t!t#t$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t^t_t`t{t|t}t~taubucudueufuguhuiujukulumunuoupuqurusutuuuvuwuxuyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSuTuUuVuWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u`u{u|u}u~uavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCvDvEvFvGvHvIvJvKvLvMvNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3vih4v5v6v7v8v9v!v#v$v?b%v'vgeheiejekele(v)v*v+v,v-v.v/v:v;vc =v?v@v[v]v^v_v`v~vawbwcwewfwgwhw@biw[b]bjwkwjhlw^bmwnwowpwqwrw_bS XbswtwuwvwwwxwywzwAwBwCwDwEwFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)wmeneoepeqe*w+w,w-w.wlhmh/w:w;w=w?w@w[w]w^w_w`w{w|w}w~wax+ , - . / u i bxcxdxexfxhxixjxkxlxmxnxoxpxqx$e%erxsxtxuxvxwxxxzxq T U HbIbV BxCxDxExFxGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyfygyYbW `b{b|b}bhyiyjykylymynyoypyqyrysytyuyvywyxyyyAy4gByCyDyEyFyGyHyIyJyKyLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y%y'yZb0b)y*y+y,y: ; = -yvbwb~b.y/y:y;y=y?y@y[y]y^y_y`y{y|y}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzzzAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0z1z2z3z4z5z6z7z8z9z!z#z$z%z'z(z)z*z+z,z-z.z/z:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAvAwAxAyAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A'e(e+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B-B/B:B;B?B@B[B]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCwCxCyCzCACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC0C1C2C3C4C5C6C7C8C9C!C#C$C%C'C(C)C*C+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDqhbDcDdDeDfDgDhDiDjDackDlDreseteuevewemD? nDoDpDqDrDsDtDuDvDd wDxDyDzDADBDCDDDHDIDJDKDMDNDODPDbcQDccdcRDSDrhTDecUDVDWDXDYDZDfcX 1b0D1D2D3D4D5D6D7D8D9D!D#D$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgEhEiEjEkElEmEnExeyezeAeBeoEpEqErEsEthuhtEuEvEwExEyEzEAEBECEDEEEFEGEHEIE@ [ ] ^ _ v j JEKELEMENEPEQERESETEUEVEWEXEYE)e*eZE0E1E2E3E4E5E7Er Y Z JbKb0 9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKFLFMFNFOF2b1 gchcicjcPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F8F5g9F!F#F$F%F'F(F)F*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F{F|F}F~FaGbGcGdGeGfGgGhGiGjGkGlG3b4bnGoGpGqG` { | rGxbybkcsGtGuGvGwGxGyGzGAGBGCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G{G|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzHAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHVHWHXHYHZH0H1H3H4H5H6H7H8H9H!H#H$H%H'H(H)H*H+H,H-H.H/H:H;H=H@H[H]H^H_H`H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoI+e,epIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJrJtJuJvJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'J(J)J*J+J,J-J.J/J:J;J=J?J@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKyKzKAKBKCKDKEKFKGKHKIKyhJKKKLKMKNKOKPKQKRKlcSKTKCeDeEeFeGeHeUK} VKWKXKYKZK0K1K2K3Ke 4K5K6K7K8K9K!K#K(K)K*K+K-K.K/K:Kmc;Kncoc=K?Kzh@Kpc[K]K^K_K`K{Kqc2 5b|K}K~KaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzLALBLCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLTLULVLIeJeKeLeMeWLXLYLZL0LBhCh1L2L3L4L5L6L7L8L9L!L#L$L%L'L(L)L~ abbbcbdbw k *L+L,L-L.L:L;L=L?L@L[L]L^L_L`L-e.e{L|L}L~LaMbMcMeMs 3 4 LbMb5 gMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M6b6 rcsctcuc:M;M=M?M@M[M]M^M_M`M{M|M}M~MaNbNcNdNfN6ggNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCNDNENFNGNHNINJNKNLNMNNNONPNQNRNSNTN7b8bVNWNXNYNebfbgbZNzbAbvc0N1N2N3N4N5N6N7N8N9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;N=N?N@N[N]N^N_N`N{N|N}N~NaObOcOdOeOfOgOhOiOjOkOlOmOnOoOpOqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;O=O?O@O[O]O^O_O`O{O|O}OaPbPcPdPePfPgPhPiPjPkPlPmPnPoPpPqPrPsPtPuPvPwPyPzPAPBPCPDPEPFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWP/e:eXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQVQWQZQ1Q2Q3Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRlRmRnRoRpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6R7R8R9R!R#R$R%R'R(R)RGh*R+R,R-R.R/R:R;R=Rwc?R@RNeOePeQeReSe[Rhb]R^R_R`R{R|R}R~RaSf bScSdSeSfSgShSiSmSnSoSpSrSsStSuSxcvSyczcwSxSHhySAczSASBSCSDSESBc7 9bFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6S7S8S9S!S#S$S%S'S(S)S*S+S,S-S.S/S:S;S=S?S@S[S]STeUeVeWeXe^S_S`S{S|SJhKh}S~SaTbTcTdTeTfTgThTiTjTkTlTmTnTibjbkblbmbx l oTpTqTrTsTuTvTwTxTyTzTATBTCTDT;e=eETFTGTHTITJTKTMTt 8 9 NbOb! OTPTQTRTSTTTUTVTWTXTYTZT0T1T2T3T4T5T6T7T8T9T!T#T$T%T'T(T)T*T+T,T-T.T/T:T;T=T?T@T[T]T^T_T`T{T|T}T~TaUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUsUtU!b# CcDcEcFcuUvUwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUNU7gOUPUQURUSUTUUUVUWUXUYUZU0U1U2U3U4U5U6U7U8U9U!U#U$U%U'U(U)U*U+U,U-U.U/U:U;U=U?U@U#b$b]U^U_U`Unbobpb{UBbCbGc|U}U~UaVbVcVdVeVfVgVhViVjVkVlVmVnVoVpVqVrVsVtVuVvVwVxVyVzVAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV0V1V2V3V4V5V6V7V8V9V!V#V$V%V'V(V)V*V+V,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}V~VaWbWcWdWeWfWgWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWGWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW0W1W2W3W4W6W7W8W9W!W#W$W%W'W(W)W*W+W,W-W.W/W:W;W=W?W@W[W]W^W?e@e_W`W{W|W}W~WaXbXcXdXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwXxXyXzXAXBXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX0X1X2X3X4X5X6X7X8X9X!X#X$X%X'X(X)X*X+X,X-X.X/X:X;X=X?X@X[X]X^X{X}X~XaYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYxYyYzYAYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y!Y#Y$Y%Y'Y(Y)Y*Y+Y,Y-Y.Y/Y:Y;Y=Y?Y@Y[Y]Y^Y_Y`Y{Y|Y}Y~YaZbZcZdZeZfZgZhZiZjZkZlZmZnZOhoZpZqZrZsZtZuZvZwZHcxZyZYeZe0e1e2e3ezZqbAZBZCZDZEZFZGZHZIZ

47 "default", 

48 "1XX", 

49 "2XX", 

50 "3XX", 

51 "4XX", 

52 "5XX", 

53 }: 

54 return True 1abcdef

55 current_status_code = int(status_code) 2a PhQhRhShThUhVhWhXhYhZh0h1h2h3h4h%b5h'b(b6h7hbh8h)b9h!h#h$h%h'h*by Pb(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCi@d[d]d^d_dDiEiFiGiHichdhIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiz A B C D m g YiZi0i1i2i3i4i5i6i7i8i9i!i#i$i4e5e%i'i(i)i*i+i,i-io E F DbEbG .i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0jQbH 1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,jUg-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkRbSbxkykzkAk$ % ' Bkrbsb+bCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwm6e7exmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIoJoKoLoehMoNoOoPoQoRoSoToUo,bVoWo`d{d|d}d~daeXoYoZo0o1o2o3o4o5o6ob 7o8o9o!o#o$o%o'o(o)o*o+o,o-o.o/o-b:o.b/b;o=ofh?o:b@o[o]o^o_o`o;bI Tb{o|o}o~oapbpcpdpepfpgphpipjpkplpmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpbecedeeefeVpWpXpYpZpghhh0p1p2p3p4p5p6p7p8p9p!p#p$p%p'p(pJ K L M N n h )p*p+p,p-p.p/p:p;p=p?p@p[p]p^p8e9e_p`p{p|p}p~paqbqp O P FbGbQ cqdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqsqtquqvqwqxqyqzqAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q'q(q)q*q+qUbR ,q-q.q/q:q;q=q?q@q[q]q^q_q`q{q|q}q~qarVgbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrVbWbPrQrRrSr( ) * Trtbub=bUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytztAtBtCtDtEtFtGtHtItJtKtLtMtNtOt!e#ePtQtRtStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t!t#t$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t^t_t`t{t|t}t~taubucudueufuguhuiujukulumunuoupuqurusutuuuvuwuxuyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSuTuUuVuWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u`u{u|u}u~uavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCvDvEvFvGvHvIvJvKvLvMvNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3vih4v5v6v7v8v9v!v#v$v?b%v'vgeheiejekele(v)v*v+v,v-v.v/v:v;vc =v?v@v[v]v^v_v`v~vawbwcwewfwgwhw@biw[b]bjwkwjhlw^bmwnwowpwqwrw_bS XbswtwuwvwwwxwywzwAwBwCwDwEwFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)wmeneoepeqe*w+w,w-w.wlhmh/w:w;w=w?w@w[w]w^w_w`w{w|w}w~wax+ , - . / u i bxcxdxexfxhxixjxkxlxmxnxoxpxqx$e%erxsxtxuxvxwxxxzxq T U HbIbV BxCxDxExFxGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyfygyYbW `b{b|b}bhyiyjykylymynyoypyqyrysytyuyvywyxyyyAy4gByCyDyEyFyGyHyIyJyKyLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y%y'yZb0b)y*y+y,y: ; = -yvbwb~b.y/y:y;y=y?y@y[y]y^y_y`y{y|y}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzzzAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0z1z2z3z4z5z6z7z8z9z!z#z$z%z'z(z)z*z+z,z-z.z/z:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAvAwAxAyAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A'e(e+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B-B/B:B;B?B@B[B]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCwCxCyCzCACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC0C1C2C3C4C5C6C7C8C9C!C#C$C%C'C(C)C*C+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDqhbDcDdDeDfDgDhDiDjDackDlDreseteuevewemD? nDoDpDqDrDsDtDuDvDd wDxDyDzDADBDCDDDHDIDJDKDMDNDODPDbcQDccdcRDSDrhTDecUDVDWDXDYDZDfcX 1b0D1D2D3D4D5D6D7D8D9D!D#D$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgEhEiEjEkElEmEnExeyezeAeBeoEpEqErEsEthuhtEuEvEwExEyEzEAEBECEDEEEFEGEHEIE@ [ ] ^ _ v j JEKELEMENEPEQERESETEUEVEWEXEYE)e*eZE0E1E2E3E4E5E7Er Y Z JbKb0 9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKFLFMFNFOF2b1 gchcicjcPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F8F5g9F!F#F$F%F'F(F)F*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F{F|F}F~FaGbGcGdGeGfGgGhGiGjGkGlG3b4bnGoGpGqG` { | rGxbybkcsGtGuGvGwGxGyGzGAGBGCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G{G|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzHAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHVHWHXHYHZH0H1H3H4H5H6H7H8H9H!H#H$H%H'H(H)H*H+H,H-H.H/H:H;H=H@H[H]H^H_H`H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoI+e,epIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJrJtJuJvJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'J(J)J*J+J,J-J.J/J:J;J=J?J@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKyKzKAKBKCKDKEKFKGKHKIKyhJKKKLKMKNKOKPKQKRKlcSKTKCeDeEeFeGeHeUK} VKWKXKYKZK0K1K2K3Ke 4K5K6K7K8K9K!K#K(K)K*K+K-K.K/K:Kmc;Kncoc=K?Kzh@Kpc[K]K^K_K`K{Kqc2 5b|K}K~KaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzLALBLCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLTLULVLIeJeKeLeMeWLXLYLZL0LBhCh1L2L3L4L5L6L7L8L9L!L#L$L%L'L(L)L~ abbbcbdbw k *L+L,L-L.L:L;L=L?L@L[L]L^L_L`L-e.e{L|L}L~LaMbMcMeMs 3 4 LbMb5 gMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M6b6 rcsctcuc:M;M=M?M@M[M]M^M_M`M{M|M}M~MaNbNcNdNfN6ggNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCNDNENFNGNHNINJNKNLNMNNNONPNQNRNSNTN7b8bVNWNXNYNebfbgbZNzbAbvc0N1N2N3N4N5N6N7N8N9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;N=N?N@N[N]N^N_N`N{N|N}N~NaObOcOdOeOfOgOhOiOjOkOlOmOnOoOpOqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;O=O?O@O[O]O^O_O`O{O|O}OaPbPcPdPePfPgPhPiPjPkPlPmPnPoPpPqPrPsPtPuPvPwPyPzPAPBPCPDPEPFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWP/e:eXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQVQWQZQ1Q2Q3Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRlRmRnRoRpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6R7R8R9R!R#R$R%R'R(R)RGh*R+R,R-R.R/R:R;R=Rwc?R@RNeOePeQeReSe[Rhb]R^R_R`R{R|R}R~RaSf bScSdSeSfSgShSiSmSnSoSpSrSsStSuSxcvSyczcwSxSHhySAczSASBSCSDSESBc7 9bFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6S7S8S9S!S#S$S%S'S(S)S*S+S,S-S.S/S:S;S=S?S@S[S]STeUeVeWeXe^S_S`S{S|SJhKh}S~SaTbTcTdTeTfTgThTiTjTkTlTmTnTibjbkblbmbx l oTpTqTrTsTuTvTwTxTyTzTATBTCTDT;e=eETFTGTHTITJTKTMTt 8 9 NbOb! OTPTQTRTSTTTUTVTWTXTYTZT0T1T2T3T4T5T6T7T8T9T!T#T$T%T'T(T)T*T+T,T-T.T/T:T;T=T?T@T[T]T^T_T`T{T|T}T~TaUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUsUtU!b# CcDcEcFcuUvUwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUNU7gOUPUQURUSUTUUUVUWUXUYUZU0U1U2U3U4U5U6U7U8U9U!U#U$U%U'U(U)U*U+U,U-U.U/U:U;U=U?U@U#b$b]U^U_U`Unbobpb{UBbCbGc|U}U~UaVbVcVdVeVfVgVhViVjVkVlVmVnVoVpVqVrVsVtVuVvVwVxVyVzVAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV0V1V2V3V4V5V6V7V8V9V!V#V$V%V'V(V)V*V+V,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}V~VaWbWcWdWeWfWgWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWGWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW0W1W2W3W4W6W7W8W9W!W#W$W%W'W(W)W*W+W,W-W.W/W:W;W=W?W@W[W]W^W?e@e_W`W{W|W}W~WaXbXcXdXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwXxXyXzXAXBXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX0X1X2X3X4X5X6X7X8X9X!X#X$X%X'X(X)X*X+X,X-X.X/X:X;X=X?X@X[X]X^X{X}X~XaYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYxYyYzYAYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y!Y#Y$Y%Y'Y(Y)Y*Y+Y,Y-Y.Y/Y:Y;Y=Y?Y@Y[Y]Y^Y_Y`Y{Y|Y}Y~YaZbZcZdZeZfZgZhZiZjZkZlZmZnZOhoZpZqZrZsZtZuZvZwZHcxZyZYeZe0e1e2e3ezZqbAZBZCZDZEZFZGZHZIZ

56 return not (current_status_code < 200 or current_status_code in {204, 205, 304}) 2a PhQhRhShThUhVhWhXhYhZh0h1h2h3h4h%b5h'b(b6h7hbh8h)b9h!h#h$h%h'h*by Pb(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCi@d[d]d^d_dDiEiFiGiHichdhIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiz A B C D m g YiZi0i1i2i3i4i5i6i7i8i9i!i#i$i4e5e%i'i(i)i*i+i,i-io E F DbEbG .i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0jQbH 1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,jUg-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkRbSbxkykzkAk$ % ' Bkrbsb+bCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwm6e7exmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIoJoKoLoehMoNoOoPoQoRoSoToUo,bVoWo`d{d|d}d~daeXoYoZo0o1o2o3o4o5o6ob 7o8o9o!o#o$o%o'o(o)o*o+o,o-o.o/o-b:o.b/b;o=ofh?o:b@o[o]o^o_o`o;bI Tb{o|o}o~oapbpcpdpepfpgphpipjpkplpmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpbecedeeefeVpWpXpYpZpghhh0p1p2p3p4p5p6p7p8p9p!p#p$p%p'p(pJ K L M N n h )p*p+p,p-p.p/p:p;p=p?p@p[p]p^p8e9e_p`p{p|p}p~paqbqp O P FbGbQ cqdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqsqtquqvqwqxqyqzqAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q'q(q)q*q+qUbR ,q-q.q/q:q;q=q?q@q[q]q^q_q`q{q|q}q~qarVgbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrVbWbPrQrRrSr( ) * Trtbub=bUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytztAtBtCtDtEtFtGtHtItJtKtLtMtNtOt!e#ePtQtRtStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t!t#t$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t^t_t`t{t|t}t~taubucudueufuguhuiujukulumunuoupuqurusutuuuvuwuxuyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSuTuUuVuWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u`u{u|u}u~uavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCvDvEvFvGvHvIvJvKvLvMvNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3vih4v5v6v7v8v9v!v#v$v?b%v'vgeheiejekele(v)v*v+v,v-v.v/v:v;vc =v?v@v[v]v^v_v`v~vawbwcwewfwgwhw@biw[b]bjwkwjhlw^bmwnwowpwqwrw_bS XbswtwuwvwwwxwywzwAwBwCwDwEwFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)wmeneoepeqe*w+w,w-w.wlhmh/w:w;w=w?w@w[w]w^w_w`w{w|w}w~wax+ , - . / u i bxcxdxexfxhxixjxkxlxmxnxoxpxqx$e%erxsxtxuxvxwxxxzxq T U HbIbV BxCxDxExFxGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyfygyYbW `b{b|b}bhyiyjykylymynyoypyqyrysytyuyvywyxyyyAy4gByCyDyEyFyGyHyIyJyKyLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y%y'yZb0b)y*y+y,y: ; = -yvbwb~b.y/y:y;y=y?y@y[y]y^y_y`y{y|y}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzzzAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0z1z2z3z4z5z6z7z8z9z!z#z$z%z'z(z)z*z+z,z-z.z/z:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAvAwAxAyAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A'e(e+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B-B/B:B;B?B@B[B]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCwCxCyCzCACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC0C1C2C3C4C5C6C7C8C9C!C#C$C%C'C(C)C*C+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDqhbDcDdDeDfDgDhDiDjDackDlDreseteuevewemD? nDoDpDqDrDsDtDuDvDd wDxDyDzDADBDCDDDHDIDJDKDMDNDODPDbcQDccdcRDSDrhTDecUDVDWDXDYDZDfcX 1b0D1D2D3D4D5D6D7D8D9D!D#D$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgEhEiEjEkElEmEnExeyezeAeBeoEpEqErEsEthuhtEuEvEwExEyEzEAEBECEDEEEFEGEHEIE@ [ ] ^ _ v j JEKELEMENEPEQERESETEUEVEWEXEYE)e*eZE0E1E2E3E4E5E7Er Y Z JbKb0 9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKFLFMFNFOF2b1 gchcicjcPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F8F5g9F!F#F$F%F'F(F)F*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F{F|F}F~FaGbGcGdGeGfGgGhGiGjGkGlG3b4bnGoGpGqG` { | rGxbybkcsGtGuGvGwGxGyGzGAGBGCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G{G|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzHAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHVHWHXHYHZH0H1H3H4H5H6H7H8H9H!H#H$H%H'H(H)H*H+H,H-H.H/H:H;H=H@H[H]H^H_H`H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoI+e,epIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJrJtJuJvJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'J(J)J*J+J,J-J.J/J:J;J=J?J@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKyKzKAKBKCKDKEKFKGKHKIKyhJKKKLKMKNKOKPKQKRKlcSKTKCeDeEeFeGeHeUK} VKWKXKYKZK0K1K2K3Ke 4K5K6K7K8K9K!K#K(K)K*K+K-K.K/K:Kmc;Kncoc=K?Kzh@Kpc[K]K^K_K`K{Kqc2 5b|K}K~KaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzLALBLCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLTLULVLIeJeKeLeMeWLXLYLZL0LBhCh1L2L3L4L5L6L7L8L9L!L#L$L%L'L(L)L~ abbbcbdbw k *L+L,L-L.L:L;L=L?L@L[L]L^L_L`L-e.e{L|L}L~LaMbMcMeMs 3 4 LbMb5 gMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M6b6 rcsctcuc:M;M=M?M@M[M]M^M_M`M{M|M}M~MaNbNcNdNfN6ggNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCNDNENFNGNHNINJNKNLNMNNNONPNQNRNSNTN7b8bVNWNXNYNebfbgbZNzbAbvc0N1N2N3N4N5N6N7N8N9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;N=N?N@N[N]N^N_N`N{N|N}N~NaObOcOdOeOfOgOhOiOjOkOlOmOnOoOpOqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;O=O?O@O[O]O^O_O`O{O|O}OaPbPcPdPePfPgPhPiPjPkPlPmPnPoPpPqPrPsPtPuPvPwPyPzPAPBPCPDPEPFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWP/e:eXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQVQWQZQ1Q2Q3Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRlRmRnRoRpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6R7R8R9R!R#R$R%R'R(R)RGh*R+R,R-R.R/R:R;R=Rwc?R@RNeOePeQeReSe[Rhb]R^R_R`R{R|R}R~RaSf bScSdSeSfSgShSiSmSnSoSpSrSsStSuSxcvSyczcwSxSHhySAczSASBSCSDSESBc7 9bFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6S7S8S9S!S#S$S%S'S(S)S*S+S,S-S.S/S:S;S=S?S@S[S]STeUeVeWeXe^S_S`S{S|SJhKh}S~SaTbTcTdTeTfTgThTiTjTkTlTmTnTibjbkblbmbx l oTpTqTrTsTuTvTwTxTyTzTATBTCTDT;e=eETFTGTHTITJTKTMTt 8 9 NbOb! OTPTQTRTSTTTUTVTWTXTYTZT0T1T2T3T4T5T6T7T8T9T!T#T$T%T'T(T)T*T+T,T-T.T/T:T;T=T?T@T[T]T^T_T`T{T|T}T~TaUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUsUtU!b# CcDcEcFcuUvUwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUNU7gOUPUQURUSUTUUUVUWUXUYUZU0U1U2U3U4U5U6U7U8U9U!U#U$U%U'U(U)U*U+U,U-U.U/U:U;U=U?U@U#b$b]U^U_U`Unbobpb{UBbCbGc|U}U~UaVbVcVdVeVfVgVhViVjVkVlVmVnVoVpVqVrVsVtVuVvVwVxVyVzVAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV0V1V2V3V4V5V6V7V8V9V!V#V$V%V'V(V)V*V+V,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}V~VaWbWcWdWeWfWgWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWGWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW0W1W2W3W4W6W7W8W9W!W#W$W%W'W(W)W*W+W,W-W.W/W:W;W=W?W@W[W]W^W?e@e_W`W{W|W}W~WaXbXcXdXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwXxXyXzXAXBXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX0X1X2X3X4X5X6X7X8X9X!X#X$X%X'X(X)X*X+X,X-X.X/X:X;X=X?X@X[X]X^X{X}X~XaYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYxYyYzYAYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y!Y#Y$Y%Y'Y(Y)Y*Y+Y,Y-Y.Y/Y:Y;Y=Y?Y@Y[Y]Y^Y_Y`Y{Y|Y}Y~YaZbZcZdZeZfZgZhZiZjZkZlZmZnZOhoZpZqZrZsZtZuZvZwZHcxZyZYeZe0e1e2e3ezZqbAZBZCZDZEZFZGZHZIZ

57 

58 

59def get_path_param_names(path: str) -> Set[str]: 1abcdef

60 return set(re.findall("{(.*?)}", path)) 2a %b#f'b(b)b*by Pb@d|e}e[d~eaf]dbf^dcfdf_defchdhz A B C D m g .d4e5e^c_c`c{c|c}c~cadbdcddd$f%f'f(f)f*f+f,f-f.fedo E F DbEbG QbH $ % ' rbsb+b!c[e6e7eeh/f;c,b`d{d|d}d~daeffgfhfT#b -b:f.b/b:b;bI TbbeifjfcekflfdemfeenfoffepfghhhJ K L M N n h /d8e9efdgdhdidjdkdldmdndodpd;f=f?f@f[f]f^f_f`f{fqdp O P FbGbQ UbR ( ) * tbub=b#c]e!e#eih|f=c?bgeheiejekeleqfrfsfU#c @b}f[b]b^b_bS XbmetfufnevfwfoexfpeyfzfqeAflhmh+ , - . / u i :d$e%erdsdtdudvdwdxdydzdAdBd~fagbgcgdgegfggghgigCdq T U HbIbV YbW `b$c{bDd%cEd|b}b: ; = vbwb~b'c^e'e(eqhjg?cacreseteuevewe? BfCfDfV#d bckgccdcecfcX 1bxeEfFfyeGfHfzeIfAeJfKfBeLfthuh@ [ ] ^ _ v j ;d)e*eFdGdHdIdJdKdLdMdNdOdPdlgmgngogpgqgrgsgtgugQdr Y Z JbKb0 2b1 gc(chcRd)cSdicjc` { | xbybkc*c_e+e,eyhvg@clcCeDeEeFeGeHe} MfNfOfW#e mcwgncocpcqc2 5bIePfQfJeRfSfKeTfLeUfVfMeWfBhCh~ abbbcbdbw k =d-e.eTdUdVdWdXdYdZd0d1d2d3dxgygzgAgBgCgDgEgFgGg4ds 3 4 LbMb5 6b6 rc+csc5d,c6dtcucebfbgbzbAbvc-c`e/e:eGhHg[cwcNeOePeQeReSehbXfYfZfX#f xcIgyczcAcBc7 9bTe0f1fUe2f3fVe4fWe5f6fXe7fJhKhibjbkblbmbx l ?d;e=e7d8d9d!d#d$d%d'd(d)d*dJgKgLgMgNgOgPgQgRgSg+dt 8 9 NbOb! !b# Cc.cDc,d/c-dEcFcnbobpbBbCbGc:c{e?e@eOhTg]cHcYeZe0e1e2e3eqb8f9f!fY#

61 

62 

63def create_model_field( 1abcdef

64 name: str, 

65 type_: Any, 

66 class_validators: Optional[Dict[str, Validator]] = None, 

67 default: Optional[Any] = Undefined, 

68 required: Union[bool, UndefinedType] = Undefined, 

69 model_config: Type[BaseConfig] = BaseConfig, 

70 field_info: Optional[FieldInfo] = None, 

71 alias: Optional[str] = None, 

72 mode: Literal["validation", "serialization"] = "validation", 

73) -> ModelField: 

74 class_validators = class_validators or {} 2a %b'b(b)b*by Pb@d|e}e[d~eaf]dbf^dcfdf_defz A B C D m g .d^c_c`c{c|c}c~cadbdcdddedo E F DbEbG QbH IcRbJcSbKc$ % ' rbsb+b!cLc;c,b`d{d|d}d~daeffgfhfb -b.b/b:b;bI TbbeifjfcekflfdemfeenfoffepfJ K L M N n h /dfdgdhdidjdkdldmdndodpdqdp O P FbGbQ UbR McVbNcWbOc( ) * tbub=b#cPc=c?bgeheiejekeleqfrfsfc @b[b]b^b_bS XbmetfufnevfwfoexfpeyfzfqeAf+ , - . / u i :drdsdtdudvdwdxdydzdAdBdCdq T U HbIbV YbW `b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'cTcUc?cacreseteuevewe? BfCfDfd bcccdcecfcX 1bxeEfFfyeGfHfzeIfAeJfKfBeLf@ [ ] ^ _ v j ;dFdGdHdIdJdKdLdMdNdOdPdQdr Y Z JbKb0 2b1 gc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*cYcZc@clcCeDeEeFeGeHe} MfNfOfe mcncocpcqc2 5bIePfQfJeRfSfKeTfLeUfVfMeWf~ abbbcbdbw k =dTdUdVdWdXdYdZd0d1d2d3d4ds 3 4 LbMb5 6b6 rc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c3c4c[cwcNeOePeQeReSehbXfYfZff xcyczcAcBc7 9bTe0f1fUe2f3fVe4fWe5f6fXe7fibjbkblbmbx l ?d7d8d9d!d#d$d%d'd(d)d*d+dt 8 9 NbOb! !b# Cc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c8c9c]cHcYeZe0e1e2e3eqb8f9f!f

75 if PYDANTIC_V2: 2a %b'b(b)b*by Pb@d|e}e[d~eaf]dbf^dcfdf_defz A B C D m g .d^c_c`c{c|c}c~cadbdcdddedo E F DbEbG QbH IcRbJcSbKc$ % ' rbsb+b!cLc;c,b`d{d|d}d~daeffgfhfb -b.b/b:b;bI TbbeifjfcekflfdemfeenfoffepfJ K L M N n h /dfdgdhdidjdkdldmdndodpdqdp O P FbGbQ UbR McVbNcWbOc( ) * tbub=b#cPc=c?bgeheiejekeleqfrfsfc @b[b]b^b_bS XbmetfufnevfwfoexfpeyfzfqeAf+ , - . / u i :drdsdtdudvdwdxdydzdAdBdCdq T U HbIbV YbW `b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'cTcUc?cacreseteuevewe? BfCfDfd bcccdcecfcX 1bxeEfFfyeGfHfzeIfAeJfKfBeLf@ [ ] ^ _ v j ;dFdGdHdIdJdKdLdMdNdOdPdQdr Y Z JbKb0 2b1 gc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*cYcZc@clcCeDeEeFeGeHe} MfNfOfe mcncocpcqc2 5bIePfQfJeRfSfKeTfLeUfVfMeWf~ abbbcbdbw k =dTdUdVdWdXdYdZd0d1d2d3d4ds 3 4 LbMb5 6b6 rc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c3c4c[cwcNeOePeQeReSehbXfYfZff xcyczcAcBc7 9bTe0f1fUe2f3fVe4fWe5f6fXe7fibjbkblbmbx l ?d7d8d9d!d#d$d%d'd(d)d*d+dt 8 9 NbOb! !b# Cc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c8c9c]cHcYeZe0e1e2e3eqb8f9f!f

76 field_info = field_info or FieldInfo( 2a %b'b(b)b*bPb@d|e}e[d~eaf]dbf^dcfdf_defz A B C D m g .d^c_c`c{c|c}c~cadbdcdddedo E F DbEbG QbIcRbJcSbKc$ % ' rbsb+b!cLc;c,b`d{d|d}d~daeffgfhfb -b.b/b:b;bTbbeifjfcekflfdemfeenfoffepfJ K L M N n h /dfdgdhdidjdkdldmdndodpdqdp O P FbGbQ UbMcVbNcWbOc( ) * tbub=b#cPc=c?bgeheiejekeleqfrfsfc @b[b]b^b_bXbmetfufnevfwfoexfpeyfzfqeAf+ , - . / u i :drdsdtdudvdwdxdydzdAdBdCdq T U HbIbV Yb`b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'cTcUc?cacreseteuevewe? BfCfDfd bcccdcecfc1bxeEfFfyeGfHfzeIfAeJfKfBeLf@ [ ] ^ _ v j ;dFdGdHdIdJdKdLdMdNdOdPdQdr Y Z JbKb0 2bgc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*cYcZc@clcCeDeEeFeGeHe} MfNfOfe mcncocpcqc5bIePfQfJeRfSfKeTfLeUfVfMeWf~ abbbcbdbw k =dTdUdVdWdXdYdZd0d1d2d3d4ds 3 4 LbMb5 6brc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c3c4c[cwcNeOePeQeReSehbXfYfZff xcyczcAcBc9bTe0f1fUe2f3fVe4fWe5f6fXe7fibjbkblbmbx l ?d7d8d9d!d#d$d%d'd(d)d*d+dt 8 9 NbOb! !bCc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c8c9c]cHcYeZe0e1e2e3eqb8f9f!f

77 annotation=type_, default=default, alias=alias 

78 ) 

79 else: 

80 field_info = field_info or FieldInfo() 2a %b'b(b)b*by @d|e}e[d~eaf]dbf^dcfdf_defz A B C D m g .d^c_c`c{c|c}c~cadbdcdddedo E F G H IcRbJcSbKc$ % ' rbsb+b!cLc;c,b`d{d|d}d~daeffgfhfb -b.b/b:b;bI beifjfcekflfdemfeenfoffepfJ K L M N n h /dfdgdhdidjdkdldmdndodpdqdp O P Q R McVbNcWbOc( ) * tbub=b#cPc=c?bgeheiejekeleqfrfsfc @b[b]b^b_bS metfufnevfwfoexfpeyfzfqeAf+ , - . / u i :drdsdtdudvdwdxdydzdAdBdCdq T U V W `b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'cTcUc?cacreseteuevewe? BfCfDfd bcccdcecfcX xeEfFfyeGfHfzeIfAeJfKfBeLf@ [ ] ^ _ v j ;dFdGdHdIdJdKdLdMdNdOdPdQdr Y Z 0 1 gc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*cYcZc@clcCeDeEeFeGeHe} MfNfOfe mcncocpcqc2 IePfQfJeRfSfKeTfLeUfVfMeWf~ abbbcbdbw k =dTdUdVdWdXdYdZd0d1d2d3d4ds 3 4 5 6 rc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c3c4c[cwcNeOePeQeReSehbXfYfZff xcyczcAcBc7 Te0f1fUe2f3fVe4fWe5f6fXe7fibjbkblbmbx l ?d7d8d9d!d#d$d%d'd(d)d*d+dt 8 9 ! # Cc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c8c9c]cHcYeZe0e1e2e3eqb8f9f!f

81 kwargs = {"name": name, "field_info": field_info} 2a %b'b(b)b*by Pb@d|e}e[d~eaf]dbf^dcfdf_defz A B C D m g .d^c_c`c{c|c}c~cadbdcdddedo E F DbEbG QbH IcRbJcSbKc$ % ' rbsb+b!cLc;c,b`d{d|d}d~daeffgfhfb -b.b/b:b;bI TbbeifjfcekflfdemfeenfoffepfJ K L M N n h /dfdgdhdidjdkdldmdndodpdqdp O P FbGbQ UbR McVbNcWbOc( ) * tbub=b#cPc=c?bgeheiejekeleqfrfsfc @b[b]b^b_bS XbmetfufnevfwfoexfpeyfzfqeAf+ , - . / u i :drdsdtdudvdwdxdydzdAdBdCdq T U HbIbV YbW `b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'cTcUc?cacreseteuevewe? BfCfDfd bcccdcecfcX 1bxeEfFfyeGfHfzeIfAeJfKfBeLf@ [ ] ^ _ v j ;dFdGdHdIdJdKdLdMdNdOdPdQdr Y Z JbKb0 2b1 gc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*cYcZc@clcCeDeEeFeGeHe} MfNfOfe mcncocpcqc2 5bIePfQfJeRfSfKeTfLeUfVfMeWf~ abbbcbdbw k =dTdUdVdWdXdYdZd0d1d2d3d4ds 3 4 LbMb5 6b6 rc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c3c4c[cwcNeOePeQeReSehbXfYfZff xcyczcAcBc7 9bTe0f1fUe2f3fVe4fWe5f6fXe7fibjbkblbmbx l ?d7d8d9d!d#d$d%d'd(d)d*d+dt 8 9 NbOb! !b# Cc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c8c9c]cHcYeZe0e1e2e3eqb8f9f!f

82 if PYDANTIC_V2: 2a %b'b(b)b*by Pb@d|e}e[d~eaf]dbf^dcfdf_defz A B C D m g .d^c_c`c{c|c}c~cadbdcdddedo E F DbEbG QbH IcRbJcSbKc$ % ' rbsb+b!cLc;c,b`d{d|d}d~daeffgfhfb -b.b/b:b;bI TbbeifjfcekflfdemfeenfoffepfJ K L M N n h /dfdgdhdidjdkdldmdndodpdqdp O P FbGbQ UbR McVbNcWbOc( ) * tbub=b#cPc=c?bgeheiejekeleqfrfsfc @b[b]b^b_bS XbmetfufnevfwfoexfpeyfzfqeAf+ , - . / u i :drdsdtdudvdwdxdydzdAdBdCdq T U HbIbV YbW `b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'cTcUc?cacreseteuevewe? BfCfDfd bcccdcecfcX 1bxeEfFfyeGfHfzeIfAeJfKfBeLf@ [ ] ^ _ v j ;dFdGdHdIdJdKdLdMdNdOdPdQdr Y Z JbKb0 2b1 gc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*cYcZc@clcCeDeEeFeGeHe} MfNfOfe mcncocpcqc2 5bIePfQfJeRfSfKeTfLeUfVfMeWf~ abbbcbdbw k =dTdUdVdWdXdYdZd0d1d2d3d4ds 3 4 LbMb5 6b6 rc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c3c4c[cwcNeOePeQeReSehbXfYfZff xcyczcAcBc7 9bTe0f1fUe2f3fVe4fWe5f6fXe7fibjbkblbmbx l ?d7d8d9d!d#d$d%d'd(d)d*d+dt 8 9 NbOb! !b# Cc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c8c9c]cHcYeZe0e1e2e3eqb8f9f!f

83 kwargs.update({"mode": mode}) 2a %b'b(b)b*bPb@d|e}e[d~eaf]dbf^dcfdf_defz A B C D m g .d^c_c`c{c|c}c~cadbdcdddedo E F DbEbG QbIcRbJcSbKc$ % ' rbsb+b!cLc;c,b`d{d|d}d~daeffgfhfb -b.b/b:b;bTbbeifjfcekflfdemfeenfoffepfJ K L M N n h /dfdgdhdidjdkdldmdndodpdqdp O P FbGbQ UbMcVbNcWbOc( ) * tbub=b#cPc=c?bgeheiejekeleqfrfsfc @b[b]b^b_bXbmetfufnevfwfoexfpeyfzfqeAf+ , - . / u i :drdsdtdudvdwdxdydzdAdBdCdq T U HbIbV Yb`b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'cTcUc?cacreseteuevewe? BfCfDfd bcccdcecfc1bxeEfFfyeGfHfzeIfAeJfKfBeLf@ [ ] ^ _ v j ;dFdGdHdIdJdKdLdMdNdOdPdQdr Y Z JbKb0 2bgc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*cYcZc@clcCeDeEeFeGeHe} MfNfOfe mcncocpcqc5bIePfQfJeRfSfKeTfLeUfVfMeWf~ abbbcbdbw k =dTdUdVdWdXdYdZd0d1d2d3d4ds 3 4 LbMb5 6brc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c3c4c[cwcNeOePeQeReSehbXfYfZff xcyczcAcBc9bTe0f1fUe2f3fVe4fWe5f6fXe7fibjbkblbmbx l ?d7d8d9d!d#d$d%d'd(d)d*d+dt 8 9 NbOb! !bCc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c8c9c]cHcYeZe0e1e2e3eqb8f9f!f

84 else: 

85 kwargs.update( 2a %b'b(b)b*by @d|e}e[d~eaf]dbf^dcfdf_defz A B C D m g .d^c_c`c{c|c}c~cadbdcdddedo E F G H IcRbJcSbKc$ % ' rbsb+b!cLc;c,b`d{d|d}d~daeffgfhfb -b.b/b:b;bI beifjfcekflfdemfeenfoffepfJ K L M N n h /dfdgdhdidjdkdldmdndodpdqdp O P Q R McVbNcWbOc( ) * tbub=b#cPc=c?bgeheiejekeleqfrfsfc @b[b]b^b_bS metfufnevfwfoexfpeyfzfqeAf+ , - . / u i :drdsdtdudvdwdxdydzdAdBdCdq T U V W `b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'cTcUc?cacreseteuevewe? BfCfDfd bcccdcecfcX xeEfFfyeGfHfzeIfAeJfKfBeLf@ [ ] ^ _ v j ;dFdGdHdIdJdKdLdMdNdOdPdQdr Y Z 0 1 gc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*cYcZc@clcCeDeEeFeGeHe} MfNfOfe mcncocpcqc2 IePfQfJeRfSfKeTfLeUfVfMeWf~ abbbcbdbw k =dTdUdVdWdXdYdZd0d1d2d3d4ds 3 4 5 6 rc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c3c4c[cwcNeOePeQeReSehbXfYfZff xcyczcAcBc7 Te0f1fUe2f3fVe4fWe5f6fXe7fibjbkblbmbx l ?d7d8d9d!d#d$d%d'd(d)d*d+dt 8 9 ! # Cc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c8c9c]cHcYeZe0e1e2e3eqb8f9f!f

86 { 

87 "type_": type_, 

88 "class_validators": class_validators, 

89 "default": default, 

90 "required": required, 

91 "model_config": model_config, 

92 "alias": alias, 

93 } 

94 ) 

95 try: 2a %b'b(b)b*by Pb@d|e}e[d~eaf]dbf^dcfdf_defz A B C D m g .d^c_c`c{c|c}c~cadbdcdddedo E F DbEbG QbH IcRbJcSbKc$ % ' rbsb+b!cLc;c,b`d{d|d}d~daeffgfhfb -b.b/b:b;bI TbbeifjfcekflfdemfeenfoffepfJ K L M N n h /dfdgdhdidjdkdldmdndodpdqdp O P FbGbQ UbR McVbNcWbOc( ) * tbub=b#cPc=c?bgeheiejekeleqfrfsfc @b[b]b^b_bS XbmetfufnevfwfoexfpeyfzfqeAf+ , - . / u i :drdsdtdudvdwdxdydzdAdBdCdq T U HbIbV YbW `b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'cTcUc?cacreseteuevewe? BfCfDfd bcccdcecfcX 1bxeEfFfyeGfHfzeIfAeJfKfBeLf@ [ ] ^ _ v j ;dFdGdHdIdJdKdLdMdNdOdPdQdr Y Z JbKb0 2b1 gc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*cYcZc@clcCeDeEeFeGeHe} MfNfOfe mcncocpcqc2 5bIePfQfJeRfSfKeTfLeUfVfMeWf~ abbbcbdbw k =dTdUdVdWdXdYdZd0d1d2d3d4ds 3 4 LbMb5 6b6 rc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c3c4c[cwcNeOePeQeReSehbXfYfZff xcyczcAcBc7 9bTe0f1fUe2f3fVe4fWe5f6fXe7fibjbkblbmbx l ?d7d8d9d!d#d$d%d'd(d)d*d+dt 8 9 NbOb! !b# Cc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c8c9c]cHcYeZe0e1e2e3eqb8f9f!f

96 return ModelField(**kwargs) # type: ignore[arg-type] 2a %b'b(b)b*by Pb@d|e}e[d~eaf]dbf^dcfdf_defz A B C D m g .d^c_c`c{c|c}c~cadbdcdddedo E F DbEbG QbH IcRbJcSbKc$ % ' rbsb+b!cLc;c,b`d{d|d}d~daeffgfhfb -b.b/b:b;bI TbbeifjfcekflfdemfeenfoffepfJ K L M N n h /dfdgdhdidjdkdldmdndodpdqdp O P FbGbQ UbR McVbNcWbOc( ) * tbub=b#cPc=c?bgeheiejekeleqfrfsfc @b[b]b^b_bS XbmetfufnevfwfoexfpeyfzfqeAf+ , - . / u i :drdsdtdudvdwdxdydzdAdBdCdq T U HbIbV YbW `b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'cTcUc?cacreseteuevewe? BfCfDfd bcccdcecfcX 1bxeEfFfyeGfHfzeIfAeJfKfBeLf@ [ ] ^ _ v j ;dFdGdHdIdJdKdLdMdNdOdPdQdr Y Z JbKb0 2b1 gc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*cYcZc@clcCeDeEeFeGeHe} MfNfOfe mcncocpcqc2 5bIePfQfJeRfSfKeTfLeUfVfMeWf~ abbbcbdbw k =dTdUdVdWdXdYdZd0d1d2d3d4ds 3 4 LbMb5 6b6 rc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c3c4c[cwcNeOePeQeReSehbXfYfZff xcyczcAcBc7 9bTe0f1fUe2f3fVe4fWe5f6fXe7fibjbkblbmbx l ?d7d8d9d!d#d$d%d'd(d)d*d+dt 8 9 NbOb! !b# Cc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c8c9c]cHcYeZe0e1e2e3eqb8f9f!f

97 except (RuntimeError, PydanticSchemaGenerationError): 2IcRbJcSbKcLcMcVbNcWbOcPcQcZbRc0bScTcUcVc3bWc4bXcYcZc0c7b1c8b2c3c4c5c#b6c$b7c8c9c

98 raise fastapi.exceptions.FastAPIError( 2IcRbJcSbKcLcMcVbNcWbOcPcQcZbRc0bScTcUcVc3bWc4bXcYcZc0c7b1c8b2c3c4c5c#b6c$b7c8c9c

99 "Invalid args for response field! Hint: " 

100 f"check that {type_} is a valid Pydantic field type. " 

101 "If you are using a return type annotation that is not a valid Pydantic " 

102 "field (e.g. Union[Response, dict, None]) you can disable generating the " 

103 "response model from the type annotation with the path operation decorator " 

104 "parameter response_model=None. Read more: " 

105 "https://fastapi.tiangolo.com/tutorial/response-model/" 

106 ) from None 

107 

108 

109def create_cloned_field( 1abcdef

110 field: ModelField, 

111 *, 

112 cloned_types: Optional[MutableMapping[Type[BaseModel], Type[BaseModel]]] = None, 

113) -> ModelField: 

114 if PYDANTIC_V2: 2a y Pbz A B C D m g o E F DbEbG QbH $ % ' rbsbb I TbJ K L M N n h p O P FbGbQ UbR ( ) * tbubc S Xb+ , - . / u i q T U HbIbV YbW : ; = vbwb? d X 1b@ [ ] ^ _ v j r Y Z JbKb0 2b1 ` { | xbyb} e 2 5b~ abbbcbdbw k s 3 4 LbMb5 6b6 ebfbgbzbAbhbf 7 9bibjbkblbmbx l t 8 9 NbOb! !b# nbobpbBbCbqb

115 return field 2a Pbz A B C D m g o E F DbEbG Qb$ % ' rbsbb TbJ K L M N n h p O P FbGbQ Ub( ) * tbubc Xb+ , - . / u i q T U HbIbV Yb: ; = vbwb? d 1b@ [ ] ^ _ v j r Y Z JbKb0 2b` { | xbyb} e 5b~ abbbcbdbw k s 3 4 LbMb5 6bebfbgbzbAbhbf 9bibjbkblbmbx l t 8 9 NbOb! !bnbobpbBbCbqb

116 # cloned_types caches already cloned types to support recursive models and improve 

117 # performance by avoiding unnecessary cloning 

118 if cloned_types is None: 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

119 cloned_types = _CLONED_TYPES_CACHE 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

120 

121 original_type = field.type_ 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

122 if is_dataclass(original_type) and hasattr(original_type, "__pydantic_model__"): 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

123 original_type = original_type.__pydantic_model__ 1abcdef

124 use_type = original_type 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

125 if lenient_issubclass(original_type, BaseModel): 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

126 original_type = cast(Type[BaseModel], original_type) 2a y z A B C D m g o E F G H b I J K L M N n h p O P Q R c S + , - . / u i q T U V W d X @ [ ] ^ _ v j r Y Z 0 1 e 2 ~ abbbcbdbw k s 3 4 5 6 f 7 ibjbkblbmbx l t 8 9 ! #

127 use_type = cloned_types.get(original_type) 2a y z A B C D m g o E F G H b I J K L M N n h p O P Q R c S + , - . / u i q T U V W d X @ [ ] ^ _ v j r Y Z 0 1 e 2 ~ abbbcbdbw k s 3 4 5 6 f 7 ibjbkblbmbx l t 8 9 ! #

128 if use_type is None: 2a y z A B C D m g o E F G H b I J K L M N n h p O P Q R c S + , - . / u i q T U V W d X @ [ ] ^ _ v j r Y Z 0 1 e 2 ~ abbbcbdbw k s 3 4 5 6 f 7 ibjbkblbmbx l t 8 9 ! #

129 use_type = create_model(original_type.__name__, __base__=original_type) 1aygoHbIhpRcSiqWdXjr1e2ks6f7lt#

130 cloned_types[original_type] = use_type 1aygoHbIhpRcSiqWdXjr1e2ks6f7lt#

131 for f in original_type.__fields__.values(): 1aygoHbIhpRcSiqWdXjr1e2ks6f7lt#

132 use_type.__fields__[f.name] = create_cloned_field( 1aygoHbIhpRcSiqWdXjr1e2ks6f7lt#

133 f, cloned_types=cloned_types 

134 ) 

135 new_field = create_model_field(name=field.name, type_=use_type) 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

136 new_field.has_alias = field.has_alias # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

137 new_field.alias = field.alias # type: ignore[misc] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

138 new_field.class_validators = field.class_validators # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

139 new_field.default = field.default # type: ignore[misc] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

140 new_field.required = field.required # type: ignore[misc] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

141 new_field.model_config = field.model_config # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

142 new_field.field_info = field.field_info 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

143 new_field.allow_none = field.allow_none # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

144 new_field.validate_always = field.validate_always # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

145 if field.sub_fields: # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

146 new_field.sub_fields = [ # type: ignore[attr-defined] 2a z A B C D m g o E F G $ % ' b J K L M N n h p O P Q ( ) * c + , - . / u i q T U V : ; = ? d @ [ ] ^ _ v j r Y Z 0 ` { | } e ~ abbbcbdbw k s 3 4 5 ebfbgbhbf ibjbkblbmbx l t 8 9 ! nbobpbqb

147 create_cloned_field(sub_field, cloned_types=cloned_types) 

148 for sub_field in field.sub_fields # type: ignore[attr-defined] 

149 ] 

150 if field.key_field: # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

151 new_field.key_field = create_cloned_field( # type: ignore[attr-defined] 2a $ % ' b ( ) * c : ; = ? d ` { | } e ebfbgbhbf nbobpbqb

152 field.key_field, # type: ignore[attr-defined] 

153 cloned_types=cloned_types, 

154 ) 

155 new_field.validators = field.validators # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

156 new_field.pre_validators = field.pre_validators # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

157 new_field.post_validators = field.post_validators # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

158 new_field.parse_json = field.parse_json # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

159 new_field.shape = field.shape # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

160 new_field.populate_validators() # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

161 return new_field 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb

162 

163 

164def generate_operation_id_for_path( 1abcdef

165 *, name: str, path: str, method: str 1abcdef

166) -> str: # pragma: nocover 1abcdef

167 warnings.warn( 

168 "fastapi.utils.generate_operation_id_for_path() was deprecated, " 

169 "it is not used internally, and will be removed soon", 

170 DeprecationWarning, 

171 stacklevel=2, 

172 ) 

173 operation_id = f"{name}{path}" 

174 operation_id = re.sub(r"\W", "_", operation_id) 

175 operation_id = f"{operation_id}_{method.lower()}" 

176 return operation_id 

177 

178 

179def generate_unique_id(route: "APIRoute") -> str: 1abcdef

180 operation_id = f"{route.name}{route.path_format}" 2a %b#f'b(b)b*by Pbm g 4e5e^c_c`c{c|c}c~cadbdcddd$f%f'f(f)f*f+f,f-f.fedo E F DbEbG QbH IcRbJcSbKc$ % ' rbsb+b!c[e6e7eLc/f;c,bb -b:f.b/b:b;bI Tbn h 8e9efdgdhdidjdkdldmdndodpd;f=f?f@f[f]f^f_f`f{fqdp O P FbGbQ UbR McVbNcWbOc( ) * tbub=b#c]e!e#ePc|f=c?bc @b}f[b]b^b_bS Xbu i $e%erdsdtdudvdwdxdydzdAdBd~fagbgcgdgegfggghgigCdq T U HbIbV YbW `b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'c^e'e(eTcUcjg?cac? d bckgccdcecfcX 1bv j )e*eFdGdHdIdJdKdLdMdNdOdPdlgmgngogpgqgrgsgtgugQdr Y Z JbKb0 2b1 gc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*c_e+e,eYcZcvg@clc} e mcwgncocpcqc2 5bw k -e.eTdUdVdWdXdYdZd0d1d2d3dxgygzgAgBgCgDgEgFgGg4ds 3 4 LbMb5 6b6 rc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c`e/e:e3c4cHg[cwchbf xcIgyczcAcBc7 9bx l ;e=e7d8d9d!d#d$d%d'd(d)d*dJgKgLgMgNgOgPgQgRgSg+dt 8 9 NbOb! !b# Cc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c{e?e@e8c9cTg]cHcqb

181 operation_id = re.sub(r"\W", "_", operation_id) 2a %b#f'b(b)b*by Pbm g 4e5e^c_c`c{c|c}c~cadbdcddd$f%f'f(f)f*f+f,f-f.fedo E F DbEbG QbH IcRbJcSbKc$ % ' rbsb+b!c[e6e7eLc/f;c,bb -b:f.b/b:b;bI Tbn h 8e9efdgdhdidjdkdldmdndodpd;f=f?f@f[f]f^f_f`f{fqdp O P FbGbQ UbR McVbNcWbOc( ) * tbub=b#c]e!e#ePc|f=c?bc @b}f[b]b^b_bS Xbu i $e%erdsdtdudvdwdxdydzdAdBd~fagbgcgdgegfggghgigCdq T U HbIbV YbW `b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'c^e'e(eTcUcjg?cac? d bckgccdcecfcX 1bv j )e*eFdGdHdIdJdKdLdMdNdOdPdlgmgngogpgqgrgsgtgugQdr Y Z JbKb0 2b1 gc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*c_e+e,eYcZcvg@clc} e mcwgncocpcqc2 5bw k -e.eTdUdVdWdXdYdZd0d1d2d3dxgygzgAgBgCgDgEgFgGg4ds 3 4 LbMb5 6b6 rc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c`e/e:e3c4cHg[cwchbf xcIgyczcAcBc7 9bx l ;e=e7d8d9d!d#d$d%d'd(d)d*dJgKgLgMgNgOgPgQgRgSg+dt 8 9 NbOb! !b# Cc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c{e?e@e8c9cTg]cHcqb

182 assert route.methods 2a %b#f'b(b)b*by Pbm g 4e5e^c_c`c{c|c}c~cadbdcddd$f%f'f(f)f*f+f,f-f.fedo E F DbEbG QbH IcRbJcSbKc$ % ' rbsb+b!c[e6e7eLc/f;c,bb -b:f.b/b:b;bI Tbn h 8e9efdgdhdidjdkdldmdndodpd;f=f?f@f[f]f^f_f`f{fqdp O P FbGbQ UbR McVbNcWbOc( ) * tbub=b#c]e!e#ePc|f=c?bc @b}f[b]b^b_bS Xbu i $e%erdsdtdudvdwdxdydzdAdBd~fagbgcgdgegfggghgigCdq T U HbIbV YbW `b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'c^e'e(eTcUcjg?cac? d bckgccdcecfcX 1bv j )e*eFdGdHdIdJdKdLdMdNdOdPdlgmgngogpgqgrgsgtgugQdr Y Z JbKb0 2b1 gc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*c_e+e,eYcZcvg@clc} e mcwgncocpcqc2 5bw k -e.eTdUdVdWdXdYdZd0d1d2d3dxgygzgAgBgCgDgEgFgGg4ds 3 4 LbMb5 6b6 rc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c`e/e:e3c4cHg[cwchbf xcIgyczcAcBc7 9bx l ;e=e7d8d9d!d#d$d%d'd(d)d*dJgKgLgMgNgOgPgQgRgSg+dt 8 9 NbOb! !b# Cc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c{e?e@e8c9cTg]cHcqb

183 operation_id = f"{operation_id}_{list(route.methods)[0].lower()}" 2a %b#f'b(b)b*by Pbm g 4e5e^c_c`c{c|c}c~cadbdcddd$f%f'f(f)f*f+f,f-f.fedo E F DbEbG QbH IcRbJcSbKc$ % ' rbsb+b!c[e6e7eLc/f;c,bb -b:f.b/b:b;bI Tbn h 8e9efdgdhdidjdkdldmdndodpd;f=f?f@f[f]f^f_f`f{fqdp O P FbGbQ UbR McVbNcWbOc( ) * tbub=b#c]e!e#ePc|f=c?bc @b}f[b]b^b_bS Xbu i $e%erdsdtdudvdwdxdydzdAdBd~fagbgcgdgegfggghgigCdq T U HbIbV YbW `b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'c^e'e(eTcUcjg?cac? d bckgccdcecfcX 1bv j )e*eFdGdHdIdJdKdLdMdNdOdPdlgmgngogpgqgrgsgtgugQdr Y Z JbKb0 2b1 gc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*c_e+e,eYcZcvg@clc} e mcwgncocpcqc2 5bw k -e.eTdUdVdWdXdYdZd0d1d2d3dxgygzgAgBgCgDgEgFgGg4ds 3 4 LbMb5 6b6 rc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c`e/e:e3c4cHg[cwchbf xcIgyczcAcBc7 9bx l ;e=e7d8d9d!d#d$d%d'd(d)d*dJgKgLgMgNgOgPgQgRgSg+dt 8 9 NbOb! !b# Cc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c{e?e@e8c9cTg]cHcqb

184 return operation_id 2a %b#f'b(b)b*by Pbm g 4e5e^c_c`c{c|c}c~cadbdcddd$f%f'f(f)f*f+f,f-f.fedo E F DbEbG QbH IcRbJcSbKc$ % ' rbsb+b!c[e6e7eLc/f;c,bb -b:f.b/b:b;bI Tbn h 8e9efdgdhdidjdkdldmdndodpd;f=f?f@f[f]f^f_f`f{fqdp O P FbGbQ UbR McVbNcWbOc( ) * tbub=b#c]e!e#ePc|f=c?bc @b}f[b]b^b_bS Xbu i $e%erdsdtdudvdwdxdydzdAdBd~fagbgcgdgegfggghgigCdq T U HbIbV YbW `b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'c^e'e(eTcUcjg?cac? d bckgccdcecfcX 1bv j )e*eFdGdHdIdJdKdLdMdNdOdPdlgmgngogpgqgrgsgtgugQdr Y Z JbKb0 2b1 gc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*c_e+e,eYcZcvg@clc} e mcwgncocpcqc2 5bw k -e.eTdUdVdWdXdYdZd0d1d2d3dxgygzgAgBgCgDgEgFgGg4ds 3 4 LbMb5 6b6 rc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c`e/e:e3c4cHg[cwchbf xcIgyczcAcBc7 9bx l ;e=e7d8d9d!d#d$d%d'd(d)d*dJgKgLgMgNgOgPgQgRgSg+dt 8 9 NbOb! !b# Cc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c{e?e@e8c9cTg]cHcqb

185 

186 

187def deep_dict_update(main_dict: Dict[Any, Any], update_dict: Dict[Any, Any]) -> None: 1abcdef

188 for key, value in update_dict.items(): 28g9g!g#gWgz A B C D m g $g%g'gDbEb(gUg)g*gXgYgZg+g,g-g.g/g:g;g=g?g0gJ K L M N n h @g[g]gFbGb^gVg_g`g1g2g3g{g|g}g~gah{v|v}vdwkh+ , - . / u i gxyxAxHbIbzy4g(yuAnhohphSA+B,B.B=BEDFDGDLDsh@ [ ] ^ _ v j OE6E8EJbKb7F5gmG2Hvhwhxh?HpJqJsJwJ$K%K'K,KAh~ abbbcbdbw k /LdMfMLbMbeN6gUN~ODhEhFhxPXQYQ0Q4QjSkSlSqSIhibjbkblbmbx l tTLTNTNbObMU7g[UHWLhMhNh5W_X`X|XbY

189 if ( 28g9g!g#gWgz A B C D m g $g%g'gDbEb(gUg)g*gXgYgZg+g,g-g.g/g:g;g=g?g0gJ K L M N n h @g[g]gFbGb^gVg_g`g1g2g3g{g|g}g~gah

190 key in main_dict 

191 and isinstance(main_dict[key], dict) 

192 and isinstance(value, dict) 

193 ): 

194 deep_dict_update(main_dict[key], value) 2WgXgYgZg0g1g2g3gkhnhohphshvhwhxhAhDhEhFhIhLhMhNh

195 elif ( 28g9g!g#gWgz A B C D m g $g%g'gDbEb(gUg)g*gXgYgZg+g,g-g.g/g:g;g=g?g0gJ K L M N n h @g[g]gFbGb^gVg_g`g1g2g3g{g|g}g~gah

196 key in main_dict 

197 and isinstance(main_dict[key], list) 

198 and isinstance(update_dict[key], list) 

199 ): 

200 main_dict[key] = main_dict[key] + update_dict[key] 2%g[gyx6EdMLT

201 else: 

202 main_dict[key] = value 28g9g!g#gWgz A B C D m g $g'gDbEb(gUg)g*gXgYgZg+g,g-g.g/g:g;g=g?g0gJ K L M N n h @g]gFbGb^gVg_g`g1g2g3g{g|g}g~gah{v|v}vdwkh+ , - . / u i gxAxHbIbzy4g(yuAnhohphSA+B,B.B=BEDFDGDLDsh@ [ ] ^ _ v j OE8EJbKb7F5gmG2Hvhwhxh?HpJqJsJwJ$K%K'K,KAh~ abbbcbdbw k /LfMLbMbeN6gUN~ODhEhFhxPXQYQ0Q4QjSkSlSqSIhibjbkblbmbx l tTNTNbObMU7g[UHWLhMhNh5W_X`X|XbY

203 

204 

205def get_value_or_default( 1abcdef

206 first_item: Union[DefaultPlaceholder, DefaultType], 

207 *extra_items: Union[DefaultPlaceholder, DefaultType], 

208) -> Union[DefaultPlaceholder, DefaultType]: 

209 """ 

210 Pass items or `DefaultPlaceholder`s by descending priority. 

211 

212 The first one to _not_ be a `DefaultPlaceholder` will be returned. 

213 

214 Otherwise, the first item (a `DefaultPlaceholder`) will be returned. 

215 """ 

216 items = (first_item,) + extra_items 2a %b#f'b(b)b*by Pbz A B C D m g .d4e5e^c_c`c{c|c}c~cadbdcddd$f%f'f(f)f*f+f,f-f.fedo E F DbEbG QbH IcRbJcSbKc$ % ' rbsb+b!c[e6e7eLc/f;c,bb -b:f.b/b:b;bI TbJ K L M N n h /d8e9efdgdhdidjdkdldmdndodpd;f=f?f@f[f]f^f_f`f{fqdp O P FbGbQ UbR McVbNcWbOc( ) * tbub=b#c]e!e#ePc|f=c?bc @b}f[b]b^b_bS Xb+ , - . / u i :d$e%erdsdtdudvdwdxdydzdAdBd~fagbgcgdgegfggghgigCdq T U HbIbV YbW `b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'c^e'e(eTcUcjg?cac? d bckgccdcecfcX 1b@ [ ] ^ _ v j ;d)e*eFdGdHdIdJdKdLdMdNdOdPdlgmgngogpgqgrgsgtgugQdr Y Z JbKb0 2b1 gc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*c_e+e,eYcZcvg@clc} e mcwgncocpcqc2 5b~ abbbcbdbw k =d-e.eTdUdVdWdXdYdZd0d1d2d3dxgygzgAgBgCgDgEgFgGg4ds 3 4 LbMb5 6b6 rc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c`e/e:e3c4cHg[cwchbf xcIgyczcAcBc7 9bibjbkblbmbx l ?d;e=e7d8d9d!d#d$d%d'd(d)d*dJgKgLgMgNgOgPgQgRgSg+dt 8 9 NbOb! !b# Cc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c{e?e@e8c9cTg]cHcqb

217 for item in items: 2a %b#f'b(b)b*by Pbz A B C D m g .d4e5e^c_c`c{c|c}c~cadbdcddd$f%f'f(f)f*f+f,f-f.fedo E F DbEbG QbH IcRbJcSbKc$ % ' rbsb+b!c[e6e7eLc/f;c,bb -b:f.b/b:b;bI TbJ K L M N n h /d8e9efdgdhdidjdkdldmdndodpd;f=f?f@f[f]f^f_f`f{fqdp O P FbGbQ UbR McVbNcWbOc( ) * tbub=b#c]e!e#ePc|f=c?bc @b}f[b]b^b_bS Xb+ , - . / u i :d$e%erdsdtdudvdwdxdydzdAdBd~fagbgcgdgegfggghgigCdq T U HbIbV YbW `b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'c^e'e(eTcUcjg?cac? d bckgccdcecfcX 1b@ [ ] ^ _ v j ;d)e*eFdGdHdIdJdKdLdMdNdOdPdlgmgngogpgqgrgsgtgugQdr Y Z JbKb0 2b1 gc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*c_e+e,eYcZcvg@clc} e mcwgncocpcqc2 5b~ abbbcbdbw k =d-e.eTdUdVdWdXdYdZd0d1d2d3dxgygzgAgBgCgDgEgFgGg4ds 3 4 LbMb5 6b6 rc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c`e/e:e3c4cHg[cwchbf xcIgyczcAcBc7 9bibjbkblbmbx l ?d;e=e7d8d9d!d#d$d%d'd(d)d*dJgKgLgMgNgOgPgQgRgSg+dt 8 9 NbOb! !b# Cc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c{e?e@e8c9cTg]cHcqb

218 if not isinstance(item, DefaultPlaceholder): 2a %b#f'b(b)b*by Pbz A B C D m g .d4e5e^c_c`c{c|c}c~cadbdcddd$f%f'f(f)f*f+f,f-f.fedo E F DbEbG QbH IcRbJcSbKc$ % ' rbsb+b!c[e6e7eLc/f;c,bb -b:f.b/b:b;bI TbJ K L M N n h /d8e9efdgdhdidjdkdldmdndodpd;f=f?f@f[f]f^f_f`f{fqdp O P FbGbQ UbR McVbNcWbOc( ) * tbub=b#c]e!e#ePc|f=c?bc @b}f[b]b^b_bS Xb+ , - . / u i :d$e%erdsdtdudvdwdxdydzdAdBd~fagbgcgdgegfggghgigCdq T U HbIbV YbW `b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'c^e'e(eTcUcjg?cac? d bckgccdcecfcX 1b@ [ ] ^ _ v j ;d)e*eFdGdHdIdJdKdLdMdNdOdPdlgmgngogpgqgrgsgtgugQdr Y Z JbKb0 2b1 gc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*c_e+e,eYcZcvg@clc} e mcwgncocpcqc2 5b~ abbbcbdbw k =d-e.eTdUdVdWdXdYdZd0d1d2d3dxgygzgAgBgCgDgEgFgGg4ds 3 4 LbMb5 6b6 rc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c`e/e:e3c4cHg[cwchbf xcIgyczcAcBc7 9bibjbkblbmbx l ?d;e=e7d8d9d!d#d$d%d'd(d)d*dJgKgLgMgNgOgPgQgRgSg+dt 8 9 NbOb! !b# Cc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c{e?e@e8c9cTg]cHcqb

219 return item 2a z A B C D m g .d;cb J K L M N n h /d=cc + , - . / u i :d?cd @ [ ] ^ _ v j ;d@ce ~ abbbcbdbw k =d[cf ibjbkblbmbx l ?d]c

220 return first_item 2a %b#f'b(b)b*by Pbz A B C D m g .d4e5e^c_c`c{c|c}c~cadbdcddd$f%f'f(f)f*f+f,f-f.fedo E F DbEbG QbH IcRbJcSbKc$ % ' rbsb+b!c[e6e7eLc/f;c,bb -b:f.b/b:b;bI TbJ K L M N n h /d8e9efdgdhdidjdkdldmdndodpd;f=f?f@f[f]f^f_f`f{fqdp O P FbGbQ UbR McVbNcWbOc( ) * tbub=b#c]e!e#ePc|f=c?bc @b}f[b]b^b_bS Xb+ , - . / u i :d$e%erdsdtdudvdwdxdydzdAdBd~fagbgcgdgegfggghgigCdq T U HbIbV YbW `b$c{bDd%cEd|b}bQcZbRc0bSc: ; = vbwb~b'c^e'e(eTcUcjg?cac? d bckgccdcecfcX 1b@ [ ] ^ _ v j ;d)e*eFdGdHdIdJdKdLdMdNdOdPdlgmgngogpgqgrgsgtgugQdr Y Z JbKb0 2b1 gc(chcRd)cSdicjcVc3bWc4bXc` { | xbybkc*c_e+e,eYcZcvg@clc} e mcwgncocpcqc2 5b~ abbbcbdbw k =d-e.eTdUdVdWdXdYdZd0d1d2d3dxgygzgAgBgCgDgEgFgGg4ds 3 4 LbMb5 6b6 rc+csc5d,c6dtcuc0c7b1c8b2cebfbgbzbAbvc-c`e/e:e3c4cHg[cwchbf xcIgyczcAcBc7 9bibjbkblbmbx l ?d;e=e7d8d9d!d#d$d%d'd(d)d*dJgKgLgMgNgOgPgQgRgSg+dt 8 9 NbOb! !b# Cc.cDc,d/c-dEcFc5c#b6c$b7cnbobpbBbCbGc:c{e?e@e8c9cTg]cHcqb