Coverage for fastapi/utils.py: 100%

92 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-09-29 03:37 +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 XhYhZh0h1h2he03hf0g04hh0)g*gi0+g5h6h7h8h,g9h!h#h$h,b%h-b.bj0'h(hjh)h/bPb*h4g+h,h-hk0l0.h/h:by Qb:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIim0JiKiLiMiNi]d^d_d`d{dOiPiQiRiSikhlhTiUiVin0Wio0XiYip0Zi0i1iq02i3i4i5ir06is07i8i9i!i#it0$iz A B C D m g :d%iu0v0'iw0(i)i*i-g+i,i-i.i/i:i;i=i?i@ix06e7ey0[iz0]i^iA0_i`i{iB0C0|i.g}i/go E F DbEbG ~iD0ajbjcjE0djejfjgjhjF0ijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjG0XjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(jRbH )j*jH0+jI0,j-jJ0.j/j:jK0;j=j?j@j[j]j^j_j`j{j:g|j2gOc}j~jakbkckdkekfkgkhkL0ikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkLkMkNkSbPcTbQc;gOk8ePkQkRk$ % ' Skrbsb;b$cM0TkUkN0VkWkO0XkYkP0Zk0kQ01k2kR03k4kS05k6kT07k8kU09k!kV0#k$kW0%k'kX0(k)kY0*k+k,k-kZ0.k/k:k;k00=k?k@k[k10]k^k_k20`k{k|k30}k~kal40blcldl50elflgl60hliljl70klllmlnlolpl80qlrlsl90tl!0ulvlwlxl#0ylzlAlBlClDl$0ElFlGl%0Hl'0IlJlKl(0LlMlNl)0OlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l*0-l.l/l:l;l+0=l?l,0@l[l=g]l5g^l6g_l7g`l{l|l}l~lambmcmdm-0emfm.0gm/0hm:0imjmkmlmmmnmom?gpmqmrmsmtmumvmwmxmymzmAm;0BmCmDmEmFmGm=0?0HmImJm@0Km[0LmMm]0^0Nm~e9e!eOmPmQmRmSmTm_0UmVm`0Wm{0XmYmZm0m1m2m3m4m5m6m|0}0~07ma1b18m9m!m#mc1$m%md1'me1f1(m)mg1*mh1+m,m-mi1.m/m:m;m=m?m@m[m]m^m_m`m{mj1|mk1}ml1~mm1ann1bno1cndnp1enq1fnr1gns1hnt1injnknlnu1mnnnv1onw1pnx1y1qnrnsnz1tnunvnA1wnxnB1ynznAnC1BnD1CnE1DnF1EnG1FnH1I1GnHnJ1InK1JnL1KnM1LnN1O1MnNn@g[gOn]gPnQnRn^gSnTnUnVnWnP1Q1R1XnS1YnZnT10n1n2n3nU1V14n5n6nW17n8n9nX1!nY1Z1#n$n%n'n01(n)n*n11+n21,n-n.n31/n:n;n4151=n?n@n61[n]n^n_n71`n{n81|n}n91~nao!1bo#1co$1do%1eo'1fogohoio(1jo)1ko*1+1Rclo,1mo-1.1nooo/1poqo:1ro;1so=1to?1uovowo@1xoyozoAoBoCoDoEo[1FoGoHoIoJoKoLo]1MoNoOoPoQoRoSoToUo^1VoWoXoYoZo_10o1o`12omh3o4o{15o|16o}1~17o8oa29o!ob2#o=b$o%o|d}d~daebece'oc2(o)od2*o+oe2,o-o.o/o:of2b ;o=o?o@o[o]og2^oh2i2_oj2_g`gk2{g`o{o|o}o|g~oapbpcp?bdp@b[bl2epfpnhgp]bUbhp8gipjpkpm2n2lpmp^bI VbnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp0p1p2p3p4p5p6p7p8p9po2!p#p$p%p'pdeeefegehe(p)p*p+p,pohph-p.p/pp2:pq2;p=pr2?p@p[ps2]p^p_p`pt2{pu2|p}p~paqbqv2cqJ K L M N n h ;ddqw2x2eqy2fqgqhq}giqjqkqlqmqnqoqpqqqrqz2#e$eA2sqB2tquqC2vqwqxqD2E2yq~gzqahp O P FbGbQ AqF2BqCqDqG2EqFqGqHqIqH2JqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q'q(q)q*q+q,q-q.q/q:qI2;q=q?q@q[q]q^q_q`q{q|q}q~qarbrcrdrerfrWbR grhrJ2irK2jrkrL2lrmrnrM2orprqrrrsrtrurvrwrxrbhyr3gSczrArBrCrDrErFrGrHrIrN2JrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'rXbTcYbUcch(r%e)r*r+r( ) * ,rtbub_b%cO2-r.rP2/r:rQ2;r=rR2?r@rS2[r]rT2^r_rU2`r{rV2|r}rW2~rasX2bscsY2dsesZ2fsgs02hsisjsks12lsmsnsos22psqsrsss32tsusvs42wsxsys52zsAsBs62CsDsEs72FsGsHs82IsJsKs92LsMsNsOsPsQs!2RsSsTs#2Us$2VsWsXsYs%2Zs0s1s2s3s4s'25s6s7s(28s)29s!s#s*2$s%s's+2(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjt,2ktltmtntot-2ptqt.2rtstdhtt9gut!gvt#gwtxtytztAtBtCtDtEt/2FtGt:2Ht;2It=2JtKtLtMtNtOtPtehQtRtStTtUtVtWtXtYtZt0t1t?22t3t4t5t6t7t@2[28t9t!t]2#t^2$t%t_2`2'taf'e(e(t)t*t+t,t-t{2.t/t|2:t}2;t=t?t@t[t]t^t_t`t{t~2a3b3|tc3d3}t~taubue3cuduf3eug3h3fugui3huj3iujukuk3lumunuoupuqurusutuuuvuwuxul3yum3zun3Auo3Bup3Cuq3DuEur3Fus3Gut3Huu3Iuv3JuKuLuMuw3NuOux3Puy3Quz3A3RuSuTuB3UuVuWuC3XuYuD3Zu0u1uE32uF33uG34uH35uI36uJ3K37u8uL39uM3!uN3#uO3$uP3Q3%u'ufhgh(uhh)u*u+uih,u-u.u/u:uR3S3T3;uU3=u?uV3@u[u]u^uW3X3_u`u{uY3|u}u~uZ3av0313bvcvdvev23fvgvhv33iv43jvkvlv53mvnvov6373pvqvrv83svtvuvvv93wvxv!3yvzv#3AvBv$3Cv%3Dv'3Ev(3Fv)3GvHvIvJv*3Kv+3Lv,3-3VcMv.3Nv/3:3OvPv;3QvRv=3Sv?3Tv@3Uv[3VvWvXv]3YvZv0v1v2v3v4v5v^36v7v8v9v!v#v$v_3%v'v(v)v*v+v,v-v.v`3/v:v;v=v?v{3@v[v|3]vqh^v_v}3`v~3{va4b4|v}vc4~vawd4bw`bcwdwiejekelemeneewe4fwgwf4hwiwg4jwkwlwmwnwh4c owpwqwrwswtwi4uwj4k4vwl4wwxwm4ywzwAwBwCwDwEwFwGwHw{bIw|b}bn4JwKwrhLw~bZbMwshNwOwPwo4p4QwRwacS 0bSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxq4exfxgxhxixoepeqeresejxkxlxmxnxthuhoxpxqxr4rxs4sxtxt4uxvxwxu4xxyxzxAxv4Bxw4CxDxExFxGxx4Hx+ , - . / u i =dIxy4z4JxA4KxLxMxNxOxPxQxRxSxTxUxVxWxXxB4)e*eC4YxD4Zx0xE41x2x3xF4G44x5x6x7xq T U HbIbV 8xH49x!x#xI4$x%x'x(x)xJ4*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyfygyhyiyjykylymynyoypyqyrysytyuyK4vywyxyyyzyAyByCyDyEyFyGyHyIyJyKyLyMyNy1bW bc'ccc(cdcecOyPyL4QyM4RySyN4TyUyVyO4WyXyYyZy0y1y2y3y4y5y6y7y$gWc8y9y!y#y$y%y'y(y)y*yP4+y,y-y.y/y:y;y=y?y@y[y]y^y_y`y{y|y}y~yazbzczdzezfzgzhzizjzkzlzmz2bXc3bYcnzoz+epzqzrz: ; = szvbwbfc)cQ4tzuzR4vzwzS4xzyzT4zzAzU4BzCzV4DzEzW4FzGzX4HzIzY4JzKzZ4LzMz04NzOz14PzQz24RzSzTzUz34VzWzXzYz44Zz0z1z2z543z4z5z646z7z8z749z!z#z84$z%z'z94(z)z*z!4+z,z-z#4.z/z:z;z=z?z$4@z[z]z%4^z'4_z`z{z|z(4}z~zaAbAcAdA)4eAfAgA*4hA+4iAjAkA,4lAmAnA-4oApAqArAsAtAuAvAwAxAyAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATA.4UAVAWAXAYA/4ZA0A:41A2A3A4Avh5Awh6Axh7A8A9A!A#A$A%A'A(A;4)A*A=4+A?4,A@4-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcB[4dBeBfBgBhBiB]4^4jBkBlB_4mB`4nBoB{4|4pBbf,e-eqBrBsBtBuBvB}4wBxB~4yBa5zBABBBCBDBEBFBGBHBIBb5c5d5JBe5f5KBLBMBNBg5OBPBh5QBi5j5RBSBk5TBl5UBVBWBm5XBYBZB0B1B2B3B4B5B6B7B8B9Bn5!Bo5#Bp5$Bq5%Br5'Bs5(B)Bt5*Bu5+Bv5,Bw5-Bx5.B/B:B;By5=B?Bz5@BA5[BB5C5]B^B_BD5`B{B|BE5}B~BF5aCbCcCG5dCH5eCI5fCJ5gCK5hCL5M5iCjCN5kCO5lCP5mCQ5nCR5S5oCpCqCrCsCtCuCvCwCxCyCzCACBCCCT5U5V5DCW5ECFCX5GCHCICJCY5Z5KCLCMC05NCOCPC15QC2535RCSCTCUC45VCWCXC55YC65ZC0C1C752C3C4C85955C6C7C!58C9C!C#C#5$C%C$5'C(C%5)C*C'5+C(5,C)5-C*5.C+5/C:C;C=C,5?C-5@C.5/5Zc[C:5]C;5=5^C_C?5`C{C@5|C[5}C]5~C^5aDbDcD_5dDeDfDgDhDiDjDkD`5lDmDnDoDpDqDrD{5sDtDuDvDwDxDyDzDAD|5BDCDDDEDFD}5GDHD~5IDyhJDKDa6LDb6MDc6d6NDODe6PDQDf6RDgcSDTDteuevewexeyeUD? g6VDWDh6XDYDi6ZD0D1D2D3Dj6d 4D5D6D7D8D9Dk6!Dl6m6#Dn6$D%Do6'D(D)D*D+D,D-D.D/D:Dhc;Dicjcp6=D?Dzh@Dkc4b[DAh]D^D_Dq6r6`D{DlcX 5b|D}D~DaEbEcEdEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEs6UEVEWEXEYEzeAeBeCeDeZE0E1E2E3EBhCh4E5E6Et67Eu68E9Ev6!E#E$Ew6%E'E(E)Ex6*Ey6+E,E-E.E/Ez6:E@ [ ] ^ _ v j ?d;EA6B6=EC6?E@E[E]E^E_E`E{E|E}E~EaFbFcFD6.e/eE6dFF6eFfFG6gFhFiFH6I6jFkFlFmFr Y Z JbKb0 nFJ6oFpFqFK6rFsFtFuFvFL6wFxFyFzFAFBFCFDFEFFFGFHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!FM6#F$F%F'F(F)F*F+F,F-F.F/F:F;F=F?F@F[F]F6b1 mc*cnc+cocpc^F_FN6`FO6{F|FP6}F~FaGQ6bGcGdGeGfGgGhGiGjGkGlGmG%g0cnGoGpGqGrGsGtGuGvGwGR6xGyGzGAGBGCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG0G1G2G7b1c8b2c3G4G:e5G6G7G` { | 8Gxbybqc,cS69G!GT6#G$GU6%G'GV6(G)GW6*G+GX6,G-GY6.G/GZ6:G;G06=G?G16@G[G26]G^G36_G`G46{G|G}G~G56aHbHcHdH66eHfHgHhH76iHjHkH86lHmHnH96oHpHqH!6rHsHtH#6uHvHwH$6xHyHzH%6AHBHCHDHEHFH'6GHHHIH(6JH)6KHLHMHNH*6OHPHQHRHSHTH+6UHVHWH,6XH-6YHZH0H.61H2H3H/64H5H6H7H8H9H!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}H:6~HaIbIcIdI;6eIfI=6gIhIiIjIDhkIEhlIFhmInIoIpIqIrIsItIuI?6vIwI@6xI[6yI]6zIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISI^6TIUIVIWIXIYI_6`6ZI0I1I{62I|63I4I}6~65Icf;e=e6I7I8I9I!I#Ia7$I%Ib7'Ic7(I)I*I+I,I-I.I/I:I;Id7e7f7=Ig7h7?I@I[I]Ii7^I_Ij7`Ik7l7{I|Im7}In7~IaJbJo7cJdJeJfJgJhJiJjJkJlJmJnJoJp7pJq7qJr7rJs7sJt7tJu7uJvJv7wJw7xJx7yJy7zJz7AJBJCJDJA7EJFJB7GJC7HJD7E7IJJJKJF7LJMJNJG7OJPJH7QJRJSJI7TJJ7UJK7VJL7WJM7XJN7O7YJZJP70JQ71JR72JS73JT7U74J5J6J7J8J9J!J#J$J%J'J(J)J*J+JV7W7X7,JY7-J.JZ7/J:J;J=J0717?J@J[J27]J^J_J37`J4757{J|J}J~J67aKbKcK77dK87eKfKgK97hKiKjK!7#7kKlKmK$7nKoKpKqK%7rKsK'7tKuK(7vKwK)7xK*7yK+7zK,7AK-7BKCKDKEK.7FK/7GK:7;73cHK=7IK?7@7JKKK[7LKMK]7NK^7OK_7PK`7QKRKSK{7TKUKVKWKXKYKZK0K|71K2K3K4K5K6K7K}78K9K!K#K$K%K'K(K)K~7*K+K,K-K.Ka8/K:Kb8;KGh=K?Kc8@Kd8[Ke8f8]K^Kg8_K`Kh8{Krc|K}KEeFeGeHeIeJe~K} i8aLbLj8cLdLk8eLfLgLhLiLl8e jLkLlLmLnLoLm8pLn8o8qLp8rLsLq8tLuLvLwLxLyLzLALBLCLscDLtcucr8ELFLHhGLvc9bHLIhILJLKLs8t8LLMLwc2 !bNLOLPLQLRLSLTLULVLWLXLYLZL0L1L2L3L4L5L6L7L8L9L!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}Lu8~LaMbMcMdMKeLeMeNeOeeMfMgMhMiMJhKhjMkMlMv8mMw8nMoMx8pMqMrMy8sMtMuMvMz8wMA8xMyMzMAMBMB8CM~ abbbcbdbw k @dDMC8D8EME8FMGMHMIMJMKMLMMMNMOMPMQMRMSMF8?e@eG8TMH8UMVMI8WMXMYMJ8K8ZM0M1M2Ms 3 4 LbMb5 3ML84M5M6MM87M8M9M!M#MN8$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNO8qNrNsNtNuNvNwNxNyNzNANBNCNDNENFNGNHNIN#b6 xc-cyc.czcAcJNKNP8LNQ8MNNNR8ONPNQNS8RNSNTNUNVNWNXNYNZN0N1N2N'g4c3N4N5N6N7N8N9N!N#N$NT8%N'N(N)N*N+N,N-N.N/N:N;N=N?N@N[N]N^N_N`N{N|N}N~NaObOcOdOeOfOgOhO$b5c%b6ciOjO[ekOlOmOebfbgbnOzbAbBc/cU8oOpOV8qOrOW8sOtOX8uOvOY8wOxOZ8yOzO08AOBO18CODO28EOFO38GOHO48IOJO58KOLO68MONOOOPO78QOROSOTO88UOVOWOXO98YOZO0O!81O2O3O#84O5O6O$87O8O9O%8!O#O$O'8%O'O(O(8)O*O+O,O-O.O)8/O:O;O*8=O+8?O@O[O]O,8^O_O`O{O|O}O-8~OaPbP.8cP/8dPePfP:8gPhPiP;8jPkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPBPCPDPEPFPGPHPIPJPKPLPMPNPOP=8PPQPRPSPTP?8UPVP@8WPXPYPZPLh0PMh1PNh2P3P4P5P6P7P8P9P!P[8#P$P]8%P^8'P_8(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P`8}P~PaQbQcQdQ{8|8eQfQgQ}8hQ~8iQjQa9b9kQdf]e^elQmQnQoQpQqQc9rQsQd9tQe9uQvQwQxQyQzQAQBQCQDQf9g9h9EQi9j9FQGQHQIQk9JQKQl9LQm9n9MQNQo9OQp9PQQQRQq9SQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Qr95Qs96Qt97Qu98Qv99Qw9!Q#Qx9$Qy9%Qz9'QA9(QB9)Q*Q+Q,QC9-Q.QD9/QE9:QF9G9;Q=Q?QH9@Q[Q]QI9^Q_QJ9`Q{Q|QK9}QL9~QM9aRN9bRO9cRP9Q9dReRR9fRS9gRT9hRU9iRV9W9jRkRlRmRnRoRpRqRrRsRtRuRvRwRxRX9Y9Z9yR09zRAR19BRCRDRER2939FRGRHR49IRJRKR59LR6979MRNRORPR89QRRRSR99TR!9URVRWR#9XRYRZR$9%90R1R2R'93R4R5R6R(97R8R)99R!R*9#R$R+9%R,9'R-9(R.9)R/9*R+R,R-R:9.R;9/R=9?97c:R@9;R[9]9=R?R^9@R[R_9]R`9^R{9_R|9`R{R|R}9}R~RaSbScSdSeSfS~9gShSiSjSkSlSmSa!nSoSpSqSrSsStSuSvSb!wSxSySzSASc!BSCSd!DSOhESFSe!GSf!HSg!h!ISJSi!KSLSj!MSCcNSOSPeQeReSeTeUePShbk!QSRSl!SSTSm!USVSWSXSYSn!f ZS0S1S2S3S4So!5Sp!q!6Sr!7S8Ss!9S!S#S$S%S'S(S)S*S+SDc,SEcFct!-S.SPh/SGc'b:SQh;S=S?Su!v!@S[SHc7 (b]S^S_S`S{S|S}S~SaTbTcTdTeTfTgThTiTjTkTlTmTnToTpTqTrTsTtTuTvTwTxTyTzTATBTCTDTETFTGTHTITJTKTLTMTNTOTw!PTQTRTSTTTVeWeXeYeZeUTVTWTXTYTRhShZT0T1Tx!2Ty!3T4Tz!5T6T7TA!8T9T!T#TB!$TC!%T'T(T)T*TD!+Tibjbkblbmbx l [d,TE!F!-TG!.T/T:T;T=T?T@T[T]T^T_T`T{T|TH!_e`eI!}TJ!~TaUK!bUcUdUL!M!eUfUgUhUt 8 9 NbOb! iUN!jUkUlUO!mUnUoUpUqUP!rUsUtUuUvUwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU0U1U2U3U4U5UQ!6U7U8U9U!U#U$U%U'U(U)U*U+U,U-U.U/U:U;U)b# Ic:cJc;cKcLc=U?UR!@US![U]UT!^U_U`UU!{U|U}U~UaVbVcVdVeVfVgVhV(g8ciVjVkVlVmVnVoVpVqVrVV!sVtVuVvVwVxVyVzVAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXV*b9c+b!cYVZV{e0V1V2Vnbobpb3VBbCbMc=cW!4V5VX!6V7VY!8V9VZ!!V#V0!$V%V1!'V(V2!)V*V3!+V,V4!-V.V5!/V:V6!;V=V7!?V@V8![V]V^V_V9!`V{V|V}V!!~VaWbWcW#!dWeWfW$!gWhWiW%!jWkWlW'!mWnWoW(!pWqWrW)!sWtWuW*!vWwWxWyWzWAW+!BWCWDW,!EW-!FWGWHWIW.!JWKWLWMWNWOW/!PWQWRW:!SW;!TWUWVW=!WWXWYW?!ZW0W1W2W3W4W5W6W7W8W9W!W#W$W%W'W(W)W*W+W,W-W.W/W:W;W=W?W@W[W]W^W@!_W`W{W|W}W[!~WaX]!bXcXdXeXThfXUhgXVhhXiXjXkXlXmXnXoXpX^!qXrX_!sX`!tX{!uXvXwXxXyXzXAXBXCXDXEXFXGXHXIXJXKXLXMXNX|!OXPXQXRXSXTX}!~!UXVXWXa#XXb#YXZXc#d#0Xef|e}e1X2X3X4X5X6Xe#7X8Xf#9Xg#!X#X$X%X'X(X)X*X+X,Xh#i#j#-Xk#l#.X/X:X;Xm#=X?Xn#@Xo#p#[X]Xq#^Xr#_X`X{Xs#|X}X~XaYbYcYdYeYfYgYhYiYjYt#kYu#lYv#mYw#nYx#oYy#pYqYz#rYA#sYB#tYC#uYD#vYwYxYyYE#zYAYF#BYG#CYH#I#DYEYFYJ#GYHYIYK#JYKYL#LYMYNYM#OYN#PYO#QYP#RYQ#SYR#S#TYUYT#VYU#WYV#XYW#YYX#Y#ZY0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y!Y#Y$Y%YZ#0#1#'Y2#(Y)Y3#*Y+Y,Y-Y4#5#.Y/Y:Y6#;Y=Y?Y7#@Y8#9#[Y]Y^Y_Y!#`Y{Y|Y##}Y$#~YaZbZ%#cZdZeZ'#(#fZgZhZ)#iZjZkZlZ*#mZnZ+#oZpZ,#qZrZ-#sZ.#tZ/#uZ:#vZ;#wZxZyZzZ=#AZ?#BZ@#[##cCZ]#DZ^#_#EZFZ`#GZHZ{#IZ|#JZ}#KZ~#LZMZNZa$OZPZQZRZSZTZUZVZb$WZXZYZZZ0Z1Z2Zc$3Z4Z5Z6Z7Z8Z9Z!Z#Zd$$Z%Z'Z(Z)Ze$*Z+Zf$,ZWh-Z.Zg$/Zh$:Zi$j$;Z=Zk$?Z@Zl$[ZNc]Z^Z0e1e2e3e4e5e_Zqbm$`Z{Zn$|Z}Zo$~Za0b0c0d0p$

44 return True 2a e0f0g0h0)g*gi0+g,gj0jhPb4gk0l0y Qbm0n0o0p0q0r0s0t0z A B C D m g :du0v0w0-gx0y0z0A0B0C0.g/go E F DbEbG D0E0F0G0RbH H0I0J0K0:g2gOcL0PcQc;g$ % ' rbsb$cM0N0O0P0Q0R0S0T0U0V0W0X0Y0Z000102030405060708090!0#0$0%0'0(0)0*0+0,0=g5g6g7g-0.0/0:0?g;0=0?0@0[0]0^0~e_0`0{0|0}0~0a1b1c1d1e1f1g1h1i1j1k1l1m1n1o1p1q1r1s1t1u1v1w1x1y1z1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1@g[g]g^gP1Q1R1S1T1U1V1W1X1Y1Z101112131415161718191!1#1$1%1'1(1)1*1+1Rc,1-1.1/1:1;1=1?1@1[1]1^1_1`1{1|1}1~1a2b2c2d2e2f2b g2h2i2j2_g`gk2{g|gl2nhUb8gm2n2I Vbo2p2q2r2s2t2u2v2J K L M N n h ;dw2x2y2}gz2A2B2C2D2E2~gahp O P FbGbQ F2G2H2I2WbR J2K2L2M2bh3gScN2TcUcch( ) * tbub%cO2P2Q2R2S2T2U2V2W2X2Y2Z202122232425262728292!2#2$2%2'2(2)2*2+2,2-2.2dh9g!g#g/2:2;2=2eh?2@2[2]2^2_2`2af{2|2}2~2a3b3c3d3e3f3g3h3i3j3k3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z3A3B3C3D3E3F3G3H3I3J3K3L3M3N3O3P3Q3fhghhhihR3S3T3U3V3W3X3Y3Z303132333435363738393!3#3$3%3'3(3)3*3+3,3-3Vc.3/3:3;3=3?3@3[3]3^3_3`3{3|3}3~3a4b4c4d4e4f4g4h4c i4j4k4l4wwxwm4ywDwn4rhZbsho4p4S 0bq4r4s4t4u4v4w4x4+ , - . / u i =dy4z4A4NxB4C4D4E4F4G45x7xq T U HbIbV H4I4J4K41bW 'c(cL4M4N4O46y$gWcP4XcYcnz: ; = vbwb)cQ4R4S4T4U4V4W4X4Y4Z404142434445464748494!4#4$4%4'4(4)4*4+4,4-4.4/4:43Avhwhxh;4=4?4@4@A[4]4^4_4`4{4|4bf}4~4a5b5c5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5s5t5u5v5w5x5y5z5A5B5C5D5E5F5G5H5I5J5K5L5M5N5O5P5Q5R5S5qCrCtCxCT5U5V5W5X5Y5Z505152535455565758595!5#5$5%5'5(5)5*5+5,5-5.5/5Zc:5;5=5?5@5[5]5^5_5`5{5|5}5~5a6b6c6d6e6f6? g6h6i6j6d k6l6m6n6$D%Do6'D,Dp6zh4bAhq6r6X 5bs6t6u6v6w6x6y6z6@ [ ] ^ _ v j ?dA6B6C6]ED6E6F6G6H6I6kFmFr Y Z JbKb0 J6K6L6M66b1 *c+cN6O6P6Q6lG%g0cR61c2c3G` { | xbyb,cS6T6U6V6W6X6Y6Z606162636465666768696!6#6$6%6'6(6)6*6+6,6-6.6/6:6;6=6iIDhEhFh?6@6[6]6GI^6_6`6{6|6}6~6cfa7b7c7d7e7f7g7h7i7j7k7l7m7n7o7p7q7r7s7t7u7v7w7x7y7z7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U76J7J9J%JV7W7X7Y7Z707172737475767778797!7#7$7%7'7(7)7*7+7,7-7.7/7:7;73c=7?7@7[7]7^7_7`7{7|7}7~7a8b8c8d8e8f8g8h8} i8j8k8l8e m8n8o8p8rLsLq8tLyLr8Hh9bIhs8t82 !bu8v8w8x8y8z8A8B8~ abbbcbdbw k @dC8D8E8IMF8G8H8I8J8K80M2Ms 3 4 LbMb5 L8M8N8O8#b6 -c.cP8Q8R8S81N'g4cT85c6ciOebfbgbzbAb/cU8V8W8X8Y8Z808182838485868788898!8#8$8%8'8(8)8*8+8,8-8.8/8:8;8=8?8@8YPLhMhNh[8]8^8_8/P`8{8|8}8~8a9b9dfc9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9A9B9C9D9E9F9G9H9I9J9K9L9M9N9O9P9Q9R9S9T9U9V9W9lRmRoRsRX9Y9Z909192939495969798999!9#9$9%9'9(9)9*9+9,9-9.9/9:9;9=9?97c@9[9]9^9_9`9{9|9}9~9a!b!c!d!e!f!g!h!i!j!hbk!l!m!n!f o!p!q!r!7S8Ss!9S'St!Ph'bQhu!v!7 (bw!x!y!z!A!B!C!D!ibjbkblbmbx l [dE!F!G!;TH!I!J!K!L!M!fUhUt 8 9 NbOb! N!O!P!Q!)b# :c;cR!S!T!U!gV(g8cV!9c!cYVnbobpbBbCb=cW!X!Y!Z!0!1!2!3!4!5!6!7!8!9!!!#!$!%!'!(!)!*!+!,!-!.!/!:!;!=!?!@![!]!dXThUhVh^!_!`!{!BX|!}!~!a#b#c#d#efe#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#1Y2Y4Y8YZ#0#1#2#3#4#5#6#7#8#9#!###$#%#'#(#)#*#+#,#-#.#/#:#;#=#?#@#[##c]#^#_#`#{#|#}#~#a$b$c$d$e$f$g$h$i$j$k$l$qbm$n$o$p$

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

46 if status_code in { 2a XhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h,b%h-b.b'h(hjh)h/bPb*h+h,h-h.h/h:by Qb:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNi]d^d_d`d{dOiPiQiRiSikhlhTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i!i#i$iz A B C D m g %i'i(i)i*i+i,i-i.i/i:i;i=i?i@i6e7e[i]i^i_i`i{i|i}io E F DbEbG ~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(jRbH )j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j2g}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkLkMkNkSbTbOk8ePkQkRk$ % ' Skrbsb;bTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!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~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNm9e!eOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!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~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo0o1o2omh3o4o5o6o7o8o9o!o#o=b$o%o|d}d~daebece'o(o)o*o+o,o-o.o/o:ob ;o=o?o@o[o]o^o_o`o{o|o}o~oapbpcp?bdp@b[bepfpnhgp]bUbhpipjpkplpmp^bI VbnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp0p1p2p3p4p5p6p7p8p9p!p#p$p%p'pdeeefegehe(p)p*p+p,pohph-p.p/p:p;p=p?p@p[p]p^p_p`p{p|p}p~paqbqcqJ K L M N n h dqeqfqgqhqiqjqkqlqmqnqoqpqqqrq#e$esqtquqvqwqxqyqzqp O P FbGbQ AqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!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~qarbrcrdrerfrWbR grhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryr3gzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'rXbYb(r%e)r*r+r( ) * ,rtbub_b-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~satbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytztAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t!t#t$t%t't'e(e(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~uavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCvDvEvFvGvHvIvJvKvLvMvNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v5v6v7v8v9v!v#v$v%v'v(v)v*v+v,v-v.v/v:v;v=v?v@v[v]vqh^v_v`v{v|v}v~vawbw`bcwdwiejekelemeneewfwgwhwiwjwkwlwmwnwc owpwqwrwswtwuwvwzwAwBwCwEwFwGwHw{bIw|b}bJwKwrhLw~bZbMwNwOwPwQwRwacS 0bSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixoepeqeresejxkxlxmxnxthuhoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHx+ , - . / u i IxJxKxLxMxOxPxQxRxSxTxUxVxWxXx)e*eYxZx0x1x2x3x4x6xq T U HbIbV 8x9x!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~xaybycydyeyfygyhyiyjykylymynyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHyIyJyKyLyMyNy1bW bcccdcecOyPyQyRySyTyUyVyWyXyYyZy0y1y2y3y4y5y7y$g8y9y!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~yazbzczdzezfzgzhzizjzkzlzmz2b3boz+epzqzrz: ; = szvbwbfctzuzvzwzxzyzzzAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0z1z2z3z4z5z6z7z8z9z!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~zaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpB,e-eqBrBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B=B?B@B[B]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCsCuCvCwCyCzCACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC0C1C2C3C4C5C6C7C8C9C!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~CaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDyhJDKDLDMDNDODPDQDRDgcSDTDteuevewexeyeUD? VDWDXDYDZD0D1D2D3Dd 4D5D6D7D8D9D!D#D(D)D*D+D-D.D/D:Dhc;Dicjc=D?Dzh@Dkc4b[D]D^D_D`D{DlcX 5b|D}D~DaEbEcEdEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEzeAeBeCeDeZE0E1E2E3EBhCh4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E@ [ ] ^ _ v j ;E=E?E@E[E^E_E`E{E|E}E~EaFbFcF.e/edFeFfFgFhFiFjFlFr Y Z JbKb0 nFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$F%F'F(F)F*F+F,F-F.F/F:F;F=F?F@F[F]F6b1 mcncocpc^F_F`F{F|F}F~FaGbGcGdGeGfGgGhGiGjGkGmG%gnGoGpGqGrGsGtGuGvGwGxGyGzGAGBGCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG0G1G2G7b8b4G:e5G6G7G` { | 8Gxbybqc9G!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~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzHAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!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}H~HaIbIcIdIeIfIgIhIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I;e=e6I7I8I9I!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~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J8J!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~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKyKzKAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'K(K)K*K+K,K-K.K/K:K;KGh=K?K@K[K]K^K_K`K{Krc|K}KEeFeGeHeIeJe~K} aLbLcLdLeLfLgLhLiLe jLkLlLmLnLoLpLqLuLvLwLxLzLALBLCLscDLtcucELFLHhGLvc9bHLILJLKLLLMLwc2 !bNLOLPLQLRLSLTLULVLWLXLYLZL0L1L2L3L4L5L6L7L8L9L!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~LaMbMcMdMKeLeMeNeOeeMfMgMhMiMJhKhjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCM~ abbbcbdbw k DMEMFMGMHMJMKMLMMMNMOMPMQMRMSM?e@eTMUMVMWMXMYMZM1Ms 3 4 LbMb5 3M4M5M6M7M8M9M!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~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCNDNENFNGNHNIN#b6 xcyczcAcJNKNLNMNNNONPNQNRNSNTNUNVNWNXNYNZN0N2N'g3N4N5N6N7N8N9N!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~NaObOcOdOeOfOgOhO$b%bjO[ekOlOmOebfbgbnOzbAbBcoOpOqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO0O1O2O3O4O5O6O7O8O9O!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}O~OaPbPcPdPePfPgPhPiPjPkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPBPCPDPEPFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWPXPZP0P1P2P3P4P5P6P7P8P9P!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~PaQbQcQdQeQfQgQhQiQjQkQ]e^elQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!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~QaRbRcRdReRfRgRhRiRjRkRnRpRqRrRtRuRvRwRxRyRzRARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6R7R8R9R!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~RaSbScSdSeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSOhESFSGSHSISJSKSLSMSCcNSOSPeQeReSeTeUePShbQSRSSSTSUSVSWSXSYSf ZS0S1S2S3S4S5S6S!S#S$S%S(S)S*S+SDc,SEcFc-S.SPh/SGc'b:S;S=S?S@S[SHc7 (b]S^S_S`S{S|S}S~SaTbTcTdTeTfTgThTiTjTkTlTmTnToTpTqTrTsTtTuTvTwTxTyTzTATBTCTDTETFTGTHTITJTKTLTMTNTOTPTQTRTSTTTVeWeXeYeZeUTVTWTXTYTRhShZT0T1T2T3T4T5T6T7T8T9T!T#T$T%T'T(T)T*T+Tibjbkblbmbx l ,T-T.T/T:T=T?T@T[T]T^T_T`T{T|T_e`e}T~TaUbUcUdUeUgUt 8 9 NbOb! iUjUkUlUmUnUoUpUqUrUsUtUuUvUwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU0U1U2U3U4U5U6U7U8U9U!U#U$U%U'U(U)U*U+U,U-U.U/U:U;U)b# IcJcKcLc=U?U@U[U]U^U_U`U{U|U}U~UaVbVcVdVeVfVhV(giVjVkVlVmVnVoVpVqVrVsVtVuVvVwVxVyVzVAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXV*b+bZV{e0V1V2Vnbobpb3VBbCbMc4V5V6V7V8V9V!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~VaWbWcWdWeWfWgWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW0W1W2W3W4W5W6W7W8W9W!W#W$W%W'W(W)W*W+W,W-W.W/W:W;W=W?W@W[W]W^W_W`W{W|W}W~WaXbXcXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwXxXyXzXAXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX0X|e}e1X2X3X4X5X6X7X8X9X!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~XaYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYxYyYzYAYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0Y3Y5Y6Y7Y9Y!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~YaZbZcZdZeZfZgZhZiZjZkZlZmZnZoZpZqZrZsZtZuZvZwZxZyZzZAZBZCZDZEZFZGZHZIZJZKZLZMZNZOZPZQZRZSZTZUZVZWZXZYZZZ0Z1Z2Z3Z4Z5Z6Z7Z8Z9Z!Z#Z$Z%Z'Z(Z)Z*Z+Z,ZWh-Z.Z/Z:Z;Z=Z?Z@Z[ZNc]Z^Z0e1e2e3e4e5e_Zqb`Z{Z|Z}Z~Za0b0c0d0

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 XhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h,b%h-b.b'h(hjh)h/bPb*h+h,h-h.h/h:by Qb:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNi]d^d_d`d{dOiPiQiRiSikhlhTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i!i#i$iz A B C D m g %i'i(i)i*i+i,i-i.i/i:i;i=i?i@i6e7e[i]i^i_i`i{i|i}io E F DbEbG ~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(jRbH )j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j2g}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkLkMkNkSbTbOk8ePkQkRk$ % ' Skrbsb;bTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!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~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNm9e!eOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!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~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo0o1o2omh3o4o5o6o7o8o9o!o#o=b$o%o|d}d~daebece'o(o)o*o+o,o-o.o/o:ob ;o=o?o@o[o]o^o_o`o{o|o}o~oapbpcp?bdp@b[bepfpnhgp]bUbhpipjpkplpmp^bI VbnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp0p1p2p3p4p5p6p7p8p9p!p#p$p%p'pdeeefegehe(p)p*p+p,pohph-p.p/p:p;p=p?p@p[p]p^p_p`p{p|p}p~paqbqcqJ K L M N n h dqeqfqgqhqiqjqkqlqmqnqoqpqqqrq#e$esqtquqvqwqxqyqzqp O P FbGbQ AqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!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~qarbrcrdrerfrWbR grhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryr3gzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'rXbYb(r%e)r*r+r( ) * ,rtbub_b-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~satbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytztAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t!t#t$t%t't'e(e(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~uavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCvDvEvFvGvHvIvJvKvLvMvNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v5v6v7v8v9v!v#v$v%v'v(v)v*v+v,v-v.v/v:v;v=v?v@v[v]vqh^v_v`v{v|v}v~vawbw`bcwdwiejekelemeneewfwgwhwiwjwkwlwmwnwc owpwqwrwswtwuwvwzwAwBwCwEwFwGwHw{bIw|b}bJwKwrhLw~bZbMwNwOwPwQwRwacS 0bSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixoepeqeresejxkxlxmxnxthuhoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHx+ , - . / u i IxJxKxLxMxOxPxQxRxSxTxUxVxWxXx)e*eYxZx0x1x2x3x4x6xq T U HbIbV 8x9x!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~xaybycydyeyfygyhyiyjykylymynyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHyIyJyKyLyMyNy1bW bcccdcecOyPyQyRySyTyUyVyWyXyYyZy0y1y2y3y4y5y7y$g8y9y!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~yazbzczdzezfzgzhzizjzkzlzmz2b3boz+epzqzrz: ; = szvbwbfctzuzvzwzxzyzzzAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0z1z2z3z4z5z6z7z8z9z!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~zaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpB,e-eqBrBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B=B?B@B[B]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCsCuCvCwCyCzCACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC0C1C2C3C4C5C6C7C8C9C!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~CaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDyhJDKDLDMDNDODPDQDRDgcSDTDteuevewexeyeUD? VDWDXDYDZD0D1D2D3Dd 4D5D6D7D8D9D!D#D(D)D*D+D-D.D/D:Dhc;Dicjc=D?Dzh@Dkc4b[D]D^D_D`D{DlcX 5b|D}D~DaEbEcEdEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEzeAeBeCeDeZE0E1E2E3EBhCh4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E@ [ ] ^ _ v j ;E=E?E@E[E^E_E`E{E|E}E~EaFbFcF.e/edFeFfFgFhFiFjFlFr Y Z JbKb0 nFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$F%F'F(F)F*F+F,F-F.F/F:F;F=F?F@F[F]F6b1 mcncocpc^F_F`F{F|F}F~FaGbGcGdGeGfGgGhGiGjGkGmG%gnGoGpGqGrGsGtGuGvGwGxGyGzGAGBGCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG0G1G2G7b8b4G:e5G6G7G` { | 8Gxbybqc9G!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~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzHAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!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}H~HaIbIcIdIeIfIgIhIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I;e=e6I7I8I9I!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~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J8J!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~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKyKzKAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'K(K)K*K+K,K-K.K/K:K;KGh=K?K@K[K]K^K_K`K{Krc|K}KEeFeGeHeIeJe~K} aLbLcLdLeLfLgLhLiLe jLkLlLmLnLoLpLqLuLvLwLxLzLALBLCLscDLtcucELFLHhGLvc9bHLILJLKLLLMLwc2 !bNLOLPLQLRLSLTLULVLWLXLYLZL0L1L2L3L4L5L6L7L8L9L!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~LaMbMcMdMKeLeMeNeOeeMfMgMhMiMJhKhjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCM~ abbbcbdbw k DMEMFMGMHMJMKMLMMMNMOMPMQMRMSM?e@eTMUMVMWMXMYMZM1Ms 3 4 LbMb5 3M4M5M6M7M8M9M!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~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCNDNENFNGNHNIN#b6 xcyczcAcJNKNLNMNNNONPNQNRNSNTNUNVNWNXNYNZN0N2N'g3N4N5N6N7N8N9N!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~NaObOcOdOeOfOgOhO$b%bjO[ekOlOmOebfbgbnOzbAbBcoOpOqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO0O1O2O3O4O5O6O7O8O9O!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}O~OaPbPcPdPePfPgPhPiPjPkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPBPCPDPEPFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWPXPZP0P1P2P3P4P5P6P7P8P9P!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~PaQbQcQdQeQfQgQhQiQjQkQ]e^elQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!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~QaRbRcRdReRfRgRhRiRjRkRnRpRqRrRtRuRvRwRxRyRzRARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6R7R8R9R!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~RaSbScSdSeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSOhESFSGSHSISJSKSLSMSCcNSOSPeQeReSeTeUePShbQSRSSSTSUSVSWSXSYSf ZS0S1S2S3S4S5S6S!S#S$S%S(S)S*S+SDc,SEcFc-S.SPh/SGc'b:S;S=S?S@S[SHc7 (b]S^S_S`S{S|S}S~SaTbTcTdTeTfTgThTiTjTkTlTmTnToTpTqTrTsTtTuTvTwTxTyTzTATBTCTDTETFTGTHTITJTKTLTMTNTOTPTQTRTSTTTVeWeXeYeZeUTVTWTXTYTRhShZT0T1T2T3T4T5T6T7T8T9T!T#T$T%T'T(T)T*T+Tibjbkblbmbx l ,T-T.T/T:T=T?T@T[T]T^T_T`T{T|T_e`e}T~TaUbUcUdUeUgUt 8 9 NbOb! iUjUkUlUmUnUoUpUqUrUsUtUuUvUwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU0U1U2U3U4U5U6U7U8U9U!U#U$U%U'U(U)U*U+U,U-U.U/U:U;U)b# IcJcKcLc=U?U@U[U]U^U_U`U{U|U}U~UaVbVcVdVeVfVhV(giVjVkVlVmVnVoVpVqVrVsVtVuVvVwVxVyVzVAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXV*b+bZV{e0V1V2Vnbobpb3VBbCbMc4V5V6V7V8V9V!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~VaWbWcWdWeWfWgWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW0W1W2W3W4W5W6W7W8W9W!W#W$W%W'W(W)W*W+W,W-W.W/W:W;W=W?W@W[W]W^W_W`W{W|W}W~WaXbXcXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwXxXyXzXAXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX0X|e}e1X2X3X4X5X6X7X8X9X!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~XaYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYxYyYzYAYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0Y3Y5Y6Y7Y9Y!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~YaZbZcZdZeZfZgZhZiZjZkZlZmZnZoZpZqZrZsZtZuZvZwZxZyZzZAZBZCZDZEZFZGZHZIZJZKZLZMZNZOZPZQZRZSZTZUZVZWZXZYZZZ0Z1Z2Z3Z4Z5Z6Z7Z8Z9Z!Z#Z$Z%Z'Z(Z)Z*Z+Z,ZWh-Z.Z/Z:Z;Z=Z?Z@Z[ZNc]Z^Z0e1e2e3e4e5e_Zqb`Z{Z|Z}Z~Za0b0c0d0

56 return not (current_status_code < 200 or current_status_code in {204, 205, 304}) 2a XhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h,b%h-b.b'h(hjh)h/bPb*h+h,h-h.h/h:by Qb:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNi]d^d_d`d{dOiPiQiRiSikhlhTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i!i#i$iz A B C D m g %i'i(i)i*i+i,i-i.i/i:i;i=i?i@i6e7e[i]i^i_i`i{i|i}io E F DbEbG ~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(jRbH )j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j2g}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkLkMkNkSbTbOk8ePkQkRk$ % ' Skrbsb;bTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!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~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNm9e!eOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!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~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo0o1o2omh3o4o5o6o7o8o9o!o#o=b$o%o|d}d~daebece'o(o)o*o+o,o-o.o/o:ob ;o=o?o@o[o]o^o_o`o{o|o}o~oapbpcp?bdp@b[bepfpnhgp]bUbhpipjpkplpmp^bI VbnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp0p1p2p3p4p5p6p7p8p9p!p#p$p%p'pdeeefegehe(p)p*p+p,pohph-p.p/p:p;p=p?p@p[p]p^p_p`p{p|p}p~paqbqcqJ K L M N n h dqeqfqgqhqiqjqkqlqmqnqoqpqqqrq#e$esqtquqvqwqxqyqzqp O P FbGbQ AqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!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~qarbrcrdrerfrWbR grhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryr3gzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'rXbYb(r%e)r*r+r( ) * ,rtbub_b-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~satbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytztAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t!t#t$t%t't'e(e(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~uavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCvDvEvFvGvHvIvJvKvLvMvNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v5v6v7v8v9v!v#v$v%v'v(v)v*v+v,v-v.v/v:v;v=v?v@v[v]vqh^v_v`v{v|v}v~vawbw`bcwdwiejekelemeneewfwgwhwiwjwkwlwmwnwc owpwqwrwswtwuwvwzwAwBwCwEwFwGwHw{bIw|b}bJwKwrhLw~bZbMwNwOwPwQwRwacS 0bSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixoepeqeresejxkxlxmxnxthuhoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHx+ , - . / u i IxJxKxLxMxOxPxQxRxSxTxUxVxWxXx)e*eYxZx0x1x2x3x4x6xq T U HbIbV 8x9x!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~xaybycydyeyfygyhyiyjykylymynyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHyIyJyKyLyMyNy1bW bcccdcecOyPyQyRySyTyUyVyWyXyYyZy0y1y2y3y4y5y7y$g8y9y!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~yazbzczdzezfzgzhzizjzkzlzmz2b3boz+epzqzrz: ; = szvbwbfctzuzvzwzxzyzzzAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0z1z2z3z4z5z6z7z8z9z!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~zaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpB,e-eqBrBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B=B?B@B[B]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCsCuCvCwCyCzCACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC0C1C2C3C4C5C6C7C8C9C!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~CaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDyhJDKDLDMDNDODPDQDRDgcSDTDteuevewexeyeUD? VDWDXDYDZD0D1D2D3Dd 4D5D6D7D8D9D!D#D(D)D*D+D-D.D/D:Dhc;Dicjc=D?Dzh@Dkc4b[D]D^D_D`D{DlcX 5b|D}D~DaEbEcEdEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEzeAeBeCeDeZE0E1E2E3EBhCh4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E@ [ ] ^ _ v j ;E=E?E@E[E^E_E`E{E|E}E~EaFbFcF.e/edFeFfFgFhFiFjFlFr Y Z JbKb0 nFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$F%F'F(F)F*F+F,F-F.F/F:F;F=F?F@F[F]F6b1 mcncocpc^F_F`F{F|F}F~FaGbGcGdGeGfGgGhGiGjGkGmG%gnGoGpGqGrGsGtGuGvGwGxGyGzGAGBGCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG0G1G2G7b8b4G:e5G6G7G` { | 8Gxbybqc9G!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~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzHAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!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}H~HaIbIcIdIeIfIgIhIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I;e=e6I7I8I9I!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~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J8J!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~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKyKzKAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'K(K)K*K+K,K-K.K/K:K;KGh=K?K@K[K]K^K_K`K{Krc|K}KEeFeGeHeIeJe~K} aLbLcLdLeLfLgLhLiLe jLkLlLmLnLoLpLqLuLvLwLxLzLALBLCLscDLtcucELFLHhGLvc9bHLILJLKLLLMLwc2 !bNLOLPLQLRLSLTLULVLWLXLYLZL0L1L2L3L4L5L6L7L8L9L!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~LaMbMcMdMKeLeMeNeOeeMfMgMhMiMJhKhjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCM~ abbbcbdbw k DMEMFMGMHMJMKMLMMMNMOMPMQMRMSM?e@eTMUMVMWMXMYMZM1Ms 3 4 LbMb5 3M4M5M6M7M8M9M!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~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCNDNENFNGNHNIN#b6 xcyczcAcJNKNLNMNNNONPNQNRNSNTNUNVNWNXNYNZN0N2N'g3N4N5N6N7N8N9N!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~NaObOcOdOeOfOgOhO$b%bjO[ekOlOmOebfbgbnOzbAbBcoOpOqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO0O1O2O3O4O5O6O7O8O9O!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}O~OaPbPcPdPePfPgPhPiPjPkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPBPCPDPEPFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWPXPZP0P1P2P3P4P5P6P7P8P9P!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~PaQbQcQdQeQfQgQhQiQjQkQ]e^elQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!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~QaRbRcRdReRfRgRhRiRjRkRnRpRqRrRtRuRvRwRxRyRzRARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6R7R8R9R!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~RaSbScSdSeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSOhESFSGSHSISJSKSLSMSCcNSOSPeQeReSeTeUePShbQSRSSSTSUSVSWSXSYSf ZS0S1S2S3S4S5S6S!S#S$S%S(S)S*S+SDc,SEcFc-S.SPh/SGc'b:S;S=S?S@S[SHc7 (b]S^S_S`S{S|S}S~SaTbTcTdTeTfTgThTiTjTkTlTmTnToTpTqTrTsTtTuTvTwTxTyTzTATBTCTDTETFTGTHTITJTKTLTMTNTOTPTQTRTSTTTVeWeXeYeZeUTVTWTXTYTRhShZT0T1T2T3T4T5T6T7T8T9T!T#T$T%T'T(T)T*T+Tibjbkblbmbx l ,T-T.T/T:T=T?T@T[T]T^T_T`T{T|T_e`e}T~TaUbUcUdUeUgUt 8 9 NbOb! iUjUkUlUmUnUoUpUqUrUsUtUuUvUwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU0U1U2U3U4U5U6U7U8U9U!U#U$U%U'U(U)U*U+U,U-U.U/U:U;U)b# IcJcKcLc=U?U@U[U]U^U_U`U{U|U}U~UaVbVcVdVeVfVhV(giVjVkVlVmVnVoVpVqVrVsVtVuVvVwVxVyVzVAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXV*b+bZV{e0V1V2Vnbobpb3VBbCbMc4V5V6V7V8V9V!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~VaWbWcWdWeWfWgWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW0W1W2W3W4W5W6W7W8W9W!W#W$W%W'W(W)W*W+W,W-W.W/W:W;W=W?W@W[W]W^W_W`W{W|W}W~WaXbXcXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwXxXyXzXAXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX0X|e}e1X2X3X4X5X6X7X8X9X!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~XaYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYxYyYzYAYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0Y3Y5Y6Y7Y9Y!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~YaZbZcZdZeZfZgZhZiZjZkZlZmZnZoZpZqZrZsZtZuZvZwZxZyZzZAZBZCZDZEZFZGZHZIZJZKZLZMZNZOZPZQZRZSZTZUZVZWZXZYZZZ0Z1Z2Z3Z4Z5Z6Z7Z8Z9Z!Z#Z$Z%Z'Z(Z)Z*Z+Z,ZWh-Z.Z/Z:Z;Z=Z?Z@Z[ZNc]Z^Z0e1e2e3e4e5e_Zqb`Z{Z|Z}Z~Za0b0c0d0

57 

58 

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

60 return set(re.findall("{(.*?)}", path)) 2a ,b,f-b.b/bPb:by Qb]dffgf^dhfif_djf`dkflf{dmfkhlhz A B C D m g :d6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH 8e$ % ' rbsb;b$c~e9e!emh^f?c=b|d}d~daebecenfofpfq$b ?b_f@b[b]bUb^bI VbdeqfrfeesftffeufgevfwfhexfohphJ K L M N n h ;d#e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR %e( ) * tbub_b%caf'e(eqhfg@c`biejekelemeneyfzfAfr$c {bgg|b}b~bZbacS 0boeBfCfpeDfEfqeFfreGfHfseIfthuh+ , - . / u i =d)e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcec+e: ; = vbwbfc)cbf,e-eyhrg[cgcteuevewexeye? JfKfLfs$d hcsgicjckc4blcX 5bzeMfNfAeOfPfBeQfCeRfSfDeTfBhCh@ [ ] ^ _ v j ?d.e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc:e` { | xbybqc,ccf;e=eGhDg]crcEeFeGeHeIeJe} UfVfWft$e scEgtcucvc9bwc2 !bKeXfYfLeZf0fMe1fNe2f3fOe4fJhKh~ abbbcbdbw k @d?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc[eebfbgbzbAbBc/cdf]e^eOhPg^cCcPeQeReSeTeUehb5f6f7fu$f DcQgEcFcGc'bHc7 (bVe8f9fWe!f#fXe$fYe%f'fZe(fRhShibjbkblbmbx l [d_e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc{enbobpbBbCbMc=cef|e}eWh1g_cNc0e1e2e3e4e5eqb)f*f+fv$

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/bPb:by Qb]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F DbEbG RbH OcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]bUb^bI VbdeqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P FbGbQ WbR ScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bZbacS 0boeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckc4blcX 5bzeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvc9bwc2 !bKeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGc'bHc7 (bVe8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f

75 if PYDANTIC_V2: 2a ,b-b.b/bPb:by Qb]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F DbEbG RbH OcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]bUb^bI VbdeqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P FbGbQ WbR ScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bZbacS 0boeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckc4blcX 5bzeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvc9bwc2 !bKeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGc'bHc7 (bVe8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f

76 field_info = field_info or FieldInfo( 2a ,b-b.b/bPb:bQb]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F DbEbG RbOcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]bUb^bVbdeqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P FbGbQ WbScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bZbac0boeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U HbIbV 1bbc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckc4blc5bzeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z JbKb0 6bmc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvc9bwc!bKeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 LbMb5 #bxc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGc'bHc(bVe8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 NbOb! )bIc:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f

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

78 ) 

79 else: 

80 field_info = field_info or FieldInfo() 2a ,b-b.b/b:by ]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F G H OcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]b^bI deqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P Q R ScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bacS oeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U V W bc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckclcX zeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z 0 1 mc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvcwc2 KeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 5 6 xc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGcHc7 Ve8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 ! # Ic:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f

81 kwargs = {"name": name, "field_info": field_info} 2a ,b-b.b/bPb:by Qb]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F DbEbG RbH OcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]bUb^bI VbdeqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P FbGbQ WbR ScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bZbacS 0boeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckc4blcX 5bzeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvc9bwc2 !bKeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGc'bHc7 (bVe8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f

82 if PYDANTIC_V2: 2a ,b-b.b/bPb:by Qb]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F DbEbG RbH OcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]bUb^bI VbdeqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P FbGbQ WbR ScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bZbacS 0boeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckc4blcX 5bzeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvc9bwc2 !bKeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGc'bHc7 (bVe8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f

83 kwargs.update({"mode": mode}) 2a ,b-b.b/bPb:bQb]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F DbEbG RbOcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]bUb^bVbdeqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P FbGbQ WbScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bZbac0boeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U HbIbV 1bbc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckc4blc5bzeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z JbKb0 6bmc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvc9bwc!bKeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 LbMb5 #bxc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGc'bHc(bVe8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 NbOb! )bIc:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f

84 else: 

85 kwargs.update( 2a ,b-b.b/b:by ]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F G H OcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]b^bI deqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P Q R ScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bacS oeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U V W bc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckclcX zeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z 0 1 mc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvcwc2 KeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 5 6 xc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGcHc7 Ve8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 ! # Ic:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+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/bPb:by Qb]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F DbEbG RbH OcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]bUb^bI VbdeqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P FbGbQ WbR ScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bZbacS 0boeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckc4blcX 5bzeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvc9bwc2 !bKeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGc'bHc7 (bVe8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f

96 return ModelField(**kwargs) # type: ignore[arg-type] 2a ,b-b.b/bPb:by Qb]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F DbEbG RbH OcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]bUb^bI VbdeqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P FbGbQ WbR ScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bZbacS 0boeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckc4blcX 5bzeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvc9bwc2 !bKeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGc'bHc7 (bVe8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f

97 except (RuntimeError, PydanticSchemaGenerationError): 2OcSbPcTbQcRcScXbTcYbUcVcWc2bXc3bYcZc0c7b1c8b2c3c4c$b5c%b6c7c8c*b9c+b!c#c

98 raise fastapi.exceptions.FastAPIError( 2OcSbPcTbQcRcScXbTcYbUcVcWc2bXc3bYcZc0c7b1c8b2c3c4c$b5c%b6c7c8c*b9c+b!c#c

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 Pby Qbz A B C D m g o E F DbEbG RbH $ % ' rbsbb UbI VbJ K L M N n h p O P FbGbQ WbR ( ) * tbubc ZbS 0b+ , - . / u i q T U HbIbV 1bW : ; = vbwb? d 4bX 5b@ [ ] ^ _ v j r Y Z JbKb0 6b1 ` { | xbyb} e 9b2 !b~ abbbcbdbw k s 3 4 LbMb5 #b6 ebfbgbzbAbhbf 'b7 (bibjbkblbmbx l t 8 9 NbOb! )b# nbobpbBbCbqb

115 return field 2a PbQbz A B C D m g o E F DbEbG Rb$ % ' rbsbb UbVbJ K L M N n h p O P FbGbQ Wb( ) * tbubc Zb0b+ , - . / u i q T U HbIbV 1b: ; = vbwb? d 4b5b@ [ ] ^ _ v j r Y Z JbKb0 6b` { | xbyb} e 9b!b~ abbbcbdbw k s 3 4 LbMb5 #bebfbgbzbAbhbf 'b(bibjbkblbmbx 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.default_factory = field.default_factory # 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

141 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

142 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

143 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

144 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

145 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

146 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

147 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

148 create_cloned_field(sub_field, cloned_types=cloned_types) 

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

150 ] 

151 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

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

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

154 cloned_types=cloned_types, 

155 ) 

156 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

157 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

158 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

159 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

160 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

161 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

162 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

163 

164 

165def generate_operation_id_for_path( 1abcdef

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

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

168 warnings.warn( 

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

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

171 DeprecationWarning, 

172 stacklevel=2, 

173 ) 

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

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

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

177 return operation_id 

178 

179 

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

181 operation_id = f"{route.name}{route.path_format}" 2a ,b,f-b.b/bPb:by Qbm g 6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI Vbn h #e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0bu i )e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5bv j .e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !bw k ?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bx l _e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb

182 operation_id = re.sub(r"\W", "_", operation_id) 2a ,b,f-b.b/bPb:by Qbm g 6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI Vbn h #e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0bu i )e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5bv j .e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !bw k ?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bx l _e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb

183 assert route.methods 2a ,b,f-b.b/bPb:by Qbm g 6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI Vbn h #e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0bu i )e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5bv j .e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !bw k ?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bx l _e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb

184 operation_id = f"{operation_id}_{list(route.methods)[0].lower()}" 2a ,b,f-b.b/bPb:by Qbm g 6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI Vbn h #e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0bu i )e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5bv j .e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !bw k ?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bx l _e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb

185 return operation_id 2a ,b,f-b.b/bPb:by Qbm g 6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI Vbn h #e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0bu i )e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5bv j .e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !bw k ?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bx l _e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb

186 

187 

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

189 for key, value in update_dict.items(): 2)g*g+g,g4gz A B C D m g -g.g/gDbEb:g2g;g=g5g6g7g?g@g[g]g^g_g`g{g|g8gJ K L M N n h }g~gahFbGbbh3gchdh9g!g#gehfhghhhihwwxwywDwsh+ , - . / u i Nx5x7xHbIb6y$gnz3Avhwhxh@AqCrCtCxC$D%D'D,DAh@ [ ] ^ _ v j ]EkFmFJbKblG%g3GiIDhEhFhGI6J7J9J%JrLsLtLyLIh~ abbbcbdbw k IM0M2MLbMb1N'giOYPLhMhNh/PlRmRoRsR7S8S9S'SQhibjbkblbmbx l ;TfUhUNbObgV(gYVdXThUhVhBX1Y2Y4Y8Y

190 if ( 2)g*g+g,g4gz A B C D m g -g.g/gDbEb:g2g;g=g5g6g7g?g@g[g]g^g_g`g{g|g8gJ K L M N n h }g~gahFbGbbh3gchdh9g!g#gehfhghhhih

191 key in main_dict 

192 and isinstance(main_dict[key], dict) 

193 and isinstance(value, dict) 

194 ): 

195 deep_dict_update(main_dict[key], value) 24g5g6g7g8g9g!g#gshvhwhxhAhDhEhFhIhLhMhNhQhThUhVh

196 elif ( 2)g*g+g,g4gz A B C D m g -g.g/gDbEb:g2g;g=g5g6g7g?g@g[g]g^g_g`g{g|g8gJ K L M N n h }g~gahFbGbbh3gchdh9g!g#gehfhghhhih

197 key in main_dict 

198 and isinstance(main_dict[key], list) 

199 and isinstance(update_dict[key], list) 

200 ): 

201 main_dict[key] = main_dict[key] + update_dict[key] 2.g~g5xkF0MfU

202 else: 

203 main_dict[key] = value 2)g*g+g,g4gz A B C D m g -g/gDbEb:g2g;g=g5g6g7g?g@g[g]g^g_g`g{g|g8gJ K L M N n h }gahFbGbbh3gchdh9g!g#gehfhghhhihwwxwywDwsh+ , - . / u i Nx7xHbIb6y$gnz3Avhwhxh@AqCrCtCxC$D%D'D,DAh@ [ ] ^ _ v j ]EmFJbKblG%g3GiIDhEhFhGI6J7J9J%JrLsLtLyLIh~ abbbcbdbw k IM2MLbMb1N'giOYPLhMhNh/PlRmRoRsR7S8S9S'SQhibjbkblbmbx l ;ThUNbObgV(gYVdXThUhVhBX1Y2Y4Y8Y

204 

205 

206def get_value_or_default( 1abcdef

207 first_item: Union[DefaultPlaceholder, DefaultType], 

208 *extra_items: Union[DefaultPlaceholder, DefaultType], 

209) -> Union[DefaultPlaceholder, DefaultType]: 

210 """ 

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

212 

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

214 

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

216 """ 

217 items = (first_item,) + extra_items 2a ,b,f-b.b/bPb:by Qbz A B C D m g :d6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI VbJ K L M N n h ;d#e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0b+ , - . / u i =d)e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5b@ [ ] ^ _ v j ?d.e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !b~ abbbcbdbw k @d?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bibjbkblbmbx l [d_e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb

218 for item in items: 2a ,b,f-b.b/bPb:by Qbz A B C D m g :d6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI VbJ K L M N n h ;d#e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0b+ , - . / u i =d)e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5b@ [ ] ^ _ v j ?d.e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !b~ abbbcbdbw k @d?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bibjbkblbmbx l [d_e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb

219 if not isinstance(item, DefaultPlaceholder): 2a ,b,f-b.b/bPb:by Qbz A B C D m g :d6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI VbJ K L M N n h ;d#e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0b+ , - . / u i =d)e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5b@ [ ] ^ _ v j ?d.e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !b~ abbbcbdbw k @d?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bibjbkblbmbx l [d_e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb

220 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

221 return first_item 2a ,b,f-b.b/bPb:by Qbz A B C D m g :d6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI VbJ K L M N n h ;d#e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0b+ , - . / u i =d)e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5b@ [ ] ^ _ v j ?d.e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !b~ abbbcbdbw k @d?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bibjbkblbmbx l [d_e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb