Coverage for fastapi / _compat / shared.py: 100%
119 statements
« prev ^ index » next coverage.py v7.13.3, created at 2026-02-12 18:15 +0000
« prev ^ index » next coverage.py v7.13.3, created at 2026-02-12 18:15 +0000
1import types 1bcda
2import typing 1bcda
3import warnings 1bcda
4from collections import deque 1bcda
5from collections.abc import Mapping, Sequence 1bcda
6from dataclasses import is_dataclass 1bcda
7from typing import ( 1bcda
8 Annotated,
9 Any,
10 TypeGuard,
11 TypeVar,
12 Union,
13 get_args,
14 get_origin,
15)
17from fastapi.types import UnionType 1bcda
18from pydantic import BaseModel 1bcda
19from pydantic.version import VERSION as PYDANTIC_VERSION 1bcda
20from starlette.datastructures import UploadFile 1bcda
22_T = TypeVar("_T") 1bcda
24# Copy from Pydantic: pydantic/_internal/_typing_extra.py
25WithArgsTypes: tuple[Any, ...] = ( 1bcda
26 typing._GenericAlias, # type: ignore[attr-defined]
27 types.GenericAlias,
28 types.UnionType,
29) # pyright: ignore[reportAttributeAccessIssue]
31PYDANTIC_VERSION_MINOR_TUPLE = tuple(int(x) for x in PYDANTIC_VERSION.split(".")[:2]) 1bcda
34sequence_annotation_to_type = { 1bcda
35 Sequence: list,
36 list: list,
37 tuple: tuple,
38 set: set,
39 frozenset: frozenset,
40 deque: deque,
41}
43sequence_types: tuple[type[Any], ...] = tuple(sequence_annotation_to_type.keys()) 1bcda
46# Copy of Pydantic: pydantic/_internal/_utils.py with added TypeGuard
47def lenient_issubclass( 1bcda
48 cls: Any, class_or_tuple: type[_T] | tuple[type[_T], ...] | None
49) -> TypeGuard[type[_T]]:
50 try: 2b oq1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*x+x,x-xVd+Epqgdhd,E-E.E)if |d}dWb/E!h:E;EOccgqq=E?E@Erqsqtquqvqwqh bbcbdbebfbgbhbibjbkblbmbxqyqzqAqBqCq1e[E]EDqEq^E_Edg`E{E|E*i+i}E.xFqGqHqIq~EJqKqLqDiegMqaFNqidfg0o1o2o+d,i-i,d-d.dbF.i8 9 ! # $ % ' XbcFOqdFeFfFPqQqgFRqSq/i:i;i=iTq?i@ihFiFWdWcXdjdkdldXcPc:bH ;b/x#h:x;xQcjFkFlFmFnF=x?xoFpFqFrFsFtFuFvFwFxFyF2eUqzF[iAFBF3oCFDF( ) * + , - . EFkclc]i^iFF@x_i`iVq{iGF[x]x^x_x`x{x|x}x~xaybycydyeyfygyhyiy|ijykylymynyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHyIyJyKyLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0yWqXqYqZq0q1q2q3q4q5qHF6q7qiqmcjqkq6 F 1y2y3y4y5y6y7y4o5o6o8y9y!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y=y?y8q9q!q#q$qYb=bgg?b@bYc[b]b^bIF%q'qJF@yKFLF(q)q*q+q,q-qMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!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~FaGbGcGdGeGfGgGhGiG}i~iajbjcjdjejfjgjjGhjijjj.q/q:q;q=q?q@q[q]qkG^q_q`q)g*g+g,g-g.g/g:g;glG=g?g@gZc0c1c2c3c4c5c6c7cmG8c9c!cncocpcqcrcsctcucvcnGwcxcyc[g]g^g_g`g{g|g}g~goGahbhch$h%h'h(h)h*h+h,h-hpG.h/h:h~daebecedeeefegeheqGiejeke3e4e5e6e7e8e9e!e#erG$e%e'ekjljmjnjojpjqjrjsjsGtjujvj[y]y^y_y`y{y|y}y~ytGazbzcz7o8o9o!o#o$o%o'o(ouG)o*o+owjxjyjzjAjBjCjDjEjvGFjGjHj{q|q}q~qarbrcrdrerwGfrgrhrxGirdzezfzgzhzizjzkzlzyGmznzoz,o-o.o/o:o;o=o?o@ozG[o]o^oIjJjKjLjMjNjOjPjQjAGRjSjTjjrkrlrmrnrorprqrrrBGsrtrurUjVjWjXjCGDGEGFGGGHGIGJGKGLG/dMGpzNGqzOGhgigHeIePGQGvrwrjgkglgmgngogpgxr(e)eRGI J SGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!G#G$G%G'GYd*e+e,e(G)G*G+G,GZd-e.e/e-G:e0d;e=e.G/G:G;G=GyrzrArBr?GrzszCrDr@G[G_o]G^G_G`G{G;h=h|G}G~GErFraHYjZjbHGrHrcH0j1jIrJrdHKr2jeHfHgHhHLrMrNrOrPrQrRrSrTrUrVriHWrXrYrZr0r1r2r3r4r5r6r7r8rjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzHAHBHtzuzvzCH3j4j5jwzxzyzDHEH6j7j8j9jFHzzAzBzCzDzEzFzGzGHHzIzJzHH!j#j$j%j'jIHKzLzMzNzOzJHPzQzRzSzKHTzUzVzWzXzLHYzZz0z1z2z3zMH4z5z6z7zNHOHPHQHRHSHTHUHVHWHXHYHZH9r0H!r#r1H$r%r2H3H4H'r(r)r(j)j*j+j5H,j-j.j/j6H:j7H*r+r8H9H!H#H$H%H'H(H)H*H+H,H-H,r.H/H:H;j;H=j=H?j?H-r.r/r:r@H[H;r=r?r@r[r]r^r_r`r{r|r]H}r^H~rasbscsdsesfsgs_H`Hhsisjs{H|H8z}H~H9zaIbIcIkslsdIeIfIgIhIiIjIkIlImInIoIpImsnsqIospsrIqsrssI!z#z$ztIuIvIwI%z'z(zxI@j[j]j^jyI_j`j{j|jzI}j~jakbkckAIdkBIekCI`oDIEIFIGIHIII{oJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I)z2I*z+z3Iss4I5Its6Iusvswsxsys7I8Ifkgk9IzsAsBs!ICsDsEsFs#IGsHsIsJsKs$ILsMsNsOsPs%I,z-z.z/z'I:z;z=z?z(I@z)Ihk*Iik+IjkQsRs,Ikklk-I.Imknkok/Ipkqkrksk:Itkukvkwk;Ixkykzk=ISsTsUs?IVsWsXs@IAkBkCkDk[IEkFkGk]IHkIkJk^IKkLkMk_INkOkPkQk|o`I}o[z]z{I^z|I_zRkSk}I%i`z{z|z~IaJEi~oFiap?hbJqgmd1d2dcJbp@hdJdhehfh[heJgh]hfJTkUkVkWkXkgJYkZk0k1k2k3khJ4k5k6k7k8kiJhhihjhkhlhYsjJZskJlJmJnJoJpJqJrJsJtJ}z~zuJvJ:daAbAwJ0sxJyJ1s2szJ3s4s5sAJBJcACJdADJeAEJfAFJgAGJHJ?e@e[eIJ]e^e_eJJ`e{e|e}e~eafKJbfcfdfefffLJMJNJOJPJQJRJhASJiATJUJVJndWJ6sXJod7s9ki j k l m n YJ8s!k#k$k%k'kjA/ ZJ0J1JD 2J3J4Jrgsg5Jtgug6J7J8JkAlAmAnAoA9JZbnbobpb9sc !s!J#J$J%J'J(J)J*J+J,J-J.J/JpAqArAsA3d:J#spdqd;J=J?J(kg leme0b@J^h[J]JRcvg$s^J_J`J%s's(s)s*s+so qbrbsbtbubvbwbxbybzbAbBb,s-s.s/s:s;sgf{J|J=s?s}J~JwgaKbKcK)k*kdKtA@s[s]s^seK_s`s{sGixg|sfK}srdygcpdpep;d+k,k=d?d@dgK-k: ; = ? @ [ ] 1bhK~siKjKkKatbtlKctdt.k/k:k;ket=k?kmKnK4d#c5dsdtdud$cSc_bK `buA_hvAwATcoKpKqKrKsKxAyAtKuKvKwKxKyKzKAKBKCKDKhfftEK@kFKGKfpHKIK^ _ ` { | } ~ JKzcAc[k]kKKzA^k_kgt`kLKAABACADAEAFAGAHAIAJAKALAMANAOAPAQARA{kSATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!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}AhtitjtktltmtntotptqtMKrtst~AaBbBcBdBeBfBgphpipgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBttutvtwtxt2b{bzg|b}b%c~bacbcNKytztOKzBPKQKAtBtCtDtEtFtRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!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~KaLbLcLdLeLfLgLhLiLjLkLlLmLnL|k}k~kalblcldlelfloLglhlilGtHtItJtKtLtMtNtOtpLPtQtRtmhnhohphqhrhshthuhqLvhwhxh'c(c)c*c+c,c-c.c/crL:c;c=cBcCcDcEcFcGcHcIcJcsLKcLcMcyhzhAhBhChDhEhFhGhtLHhIhJh`h{h|h}h~haibicidiuLeifigineoepeqereseteuevevLwexeyeifjfkflfmfnfofpfqfwLrfsftfjlklllmlnlolplqlrlxLsltlulABBBCBDBEBFBGBHBIByLJBKBLBjpkplpmpnpopppqprpzLsptpupvlwlxlylzlAlBlClDlALElFlGlStTtUtVtWtXtYtZt0tBL1t2t3tCL4tMBNBOBPBQBRBSBTBUBDLVBWBXBvpwpxpypzpApBpCpDpELEpFpGpHlIlJlKlLlMlNlOlPlFLQlRlSl5t6t7t8t9t!t#t$t%tGL't(t)tTlUlVlWlHLILJLKLLLMLNLOLPLQL[dRLYBSLZBTLAgBgJeKeULVL*t+tCgDgEgFgGgHgIg,tufvfWLL M XLYLZL0L1L2L3L4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L6dwfxfyf-L.L/L:L;L7dzfAfBf=LCf8dDfEf?L@L[L]L^L-t.t/t:t_L0B1B;t=t`LFf{LHp|L}L~LaMbMhiiicMdMeM?t@tfMXlYlgM[t]thMZl0l^t_tiM`t1ljMkMlMmM{t|t}t~taubucudueufugunMhuiujukulumunuoupuqurusutuoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGM2B3B4BHM2l3l4l5B6B7BIMJM5l6l7l8lKM8B9B!B#B$B%B'B(BLM)B*B+BMM9l!l#l$l%lNM,B-B.B/B:BOM;B=B?B@BPM[B]B^B_B`BQM{B|B}B~BaCbCRMcCdCeCfCSMTMUMVMWMXMYMZM0M1M2M3M4Muu5Mvuwu6Mxuyu7M8M9MzuAuBu'l(l)l*l!M+l,l-l.l#M/l$MCuDu%M'M(M)M*M+M,M-M.M/M:M;M=MEu?M@M[M:l]M;l^M=l_MFuGuHuIu`M{MJuKuLuMuNuOuPuQuRuSuTu|MUu}MVuWuXuYuZu0u1u2u~MaN3u4u5ubNcNgCdNeNhCfNgNhN6u7uiNjNkNlNmNnNoNpNqNrNsNtNuN8u9uvN!u#uwN$u%uxNiCjCkCyNzNANBNlCmCnCCN?l@l[l]lDN^l_l`l{lEN|l}l~lambmFNcmGNdmHNIpINJNKNLNMNNNJpONPNQNRNSNTNUNVNWNXNYNZN0N1N2N3N4N5N6NoC7NpCqC8N'u9N!N(u#N)u*u+u,u-u$N%Nemfm'N.u/u:u(N;u=u?u@u)N[u]u^u_u`u*N{u|u}u~uav+NrCsCtCuC,NvCwCxCyC-NzC.Ngm/Nhm:Nimbvcv;Njmkm=N?Nlmmmnm@Nompmqmrm[Nsmtmumvm]Nwmxmym^Ndvevfv_Ngvhviv`NzmAmBmCm{NDmEmFm|NGmHmIm}NJmKmLm~NMmNmOmPmKpaOLpACBCbOCCcODCQmRmdO'iECFCGCeOfOHiMpIiNpjigOJgvd9d!dhOOpkiiOKhLhMhlijONhmikOSmTmUmVmWmlOXmYmZm0m1m2mmO3m4m5m6m7mnOOhPhQhRhShjvoOkvpOqOrOsOtOuOvOwOxOyOHCICzOAO]dJCKCBOlvCODOmvnvEOovpvqvFOGOLCHOMCIONCJOOCKOPCLOMOGfHfIfNOJfKfLfOOMfNfOfPfQfRfPOSfTfUfVfWfQOROSOTOUOVOWOQCXORCYOZO0Owd1Orv2Oxdsv8mp q r s t u 3Otv9m!m#m$m%mSCab4O5O6OE 7O8O9OKgLg!OMgNg#O$O%OTCUCVCWCXC'O3bCbDbEbuvd a vv(O)O*O+O,O-O.O/O:O;O=O?O@OYCZC0C1C#d[Owvydzd]O^O_O'me AdBd7 `Oni{O|OUcOgxv}O~OaPyvzvAvBvCvDvv FbGbHbIbJbKbLbMbNbObPbQbEvFvGvHvIvJvXfbPcPKvLvdPePPgfPgPhP(m)miP2CMvNvOvPvjPQvRvSvJizeTvkPUvCdQgPpQpRp?c*m+m@c[c]clP,mR S T U V W X 4bmPVvnPoPpPWvXvqPYvZv-m.m/m:m0v;m=mrPsPVccc$dDdEdFddc.bRbN SbSpRgTpUp/btPuPvPwPxPVpWpyPzPAPBPCPDPEPFPGPHPIPYf1vJP?mKPLPXpMPNPY Z 0 1 2 3 4 OP5b6b@m[mPP3C]m^m2v_mQP4C5C6C7C8C9C!C#C$C%C'C(C)C*C+C,C-C.C`m/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCD3v4v5v6v7v8v9v!v#v$vRP%v'vlqNcmqnqQ G DDYpEDFDGDHDIDZp0p1pJDKDLD2p3p4p5pMDNDODPDQDRDSDTDUDVDWDXD(v)v*v+v,v7becSgfcgc^chcicjcSP-v.vTPYDUPVP/v:v;v=v?v@vWPXPYPZP0P1P2P3P4P5P6P7P8P9P!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~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQ{m|m}m~manbncndnentQfngnhn[v]v^v_v`v{v|v}v~vuQawbwcwLeMeNeOePeQeReSeTevQUeVeWe_c`c{c|c}c~cadbdcdwQddedfd8b9b!b#b$b%b'b(b)bxQ*b+b,bThUhVhWhXhYhZh0h1hyQ2h3h4hTgUgVgWgXgYgZg0g1gzQ2g3g4gGdHdIdJdKdLdMdNdOdAQPdQdRdZf0f1f2f3f4f5f6f7fBQ8f9f!finjnknlnmnnnonpnqnCQrnsntn6p7p8p9p!p#p$p%p'pDQ(p)p*pKiLiMiNiOiPiQiRiSiEQTiUiViunvnwnxnynznAnBnCnFQDnEnFndwewfwgwhwiwjwkwlwGQmwnwowHQpw+p,p-p.p/p:p;p=p?pIQ@p[p]pWiXiYiZi0i1i2i3i4iJQ5i6i7iGnHnInJnKnLnMnNnOnKQPnQnRnqwrwswtwuwvwwwxwywLQzwAwBwSnTnUnVnMQNQOQPQQQRQSQTQUQVQ^dWQZDXQ0DYQ5g6g_d`dZQ0QCwDwAeBeCeDeEeFeGeEw#f$f1QO P 2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Q-Q.Q/Q:Q;Q%d%f'f(f=Q?Q@Q[Q]Q'd)f*f+f^Q,f(d-f.f_Q`Q{Q|Q}QFwGwHwIw~Q1D2DJwKwaRbR^pcRdReRfRgR7g8ghRiRjRLwMwkRWnXnlRNwOwmRYnZnPwQwnRRw0noRpRqRrRSwTwUwVwWwXwYwZw0w1w2wsR3w4w5w6w7w8w9w!w#w$w%w'w(wtRuRvRwRxRyRzRARBRCRDRERFRGRHRIRJRKRLR3D4D5DMR1n2n3n6D7D8DNROR4n5n6n7nPR9D!D#D$D%D'D(D)DQR*D+D,DRR8n9n!n#n$nSR-D.D/D:D;DTR=D?D@D[DUR]D^D_D`D{DVR|D}D~DaEbEcEWRdEeEfEgEXRYRZR0R1R2R3R4R5R6R7R8R9R)w!R*w+w#R,w-w$R%R'R.w/w:w%n'n(n)n(R*n+n,n-n)R.n*R;w=w+R,R-R.R/R:R;R=R?R@R[R]R^R?w_R`R{R/n|R:n}R;n~R@w[w]w^waSbS_w`w{w|w}w~waxbxcxdxexcSfxdSgxhxixjxkxlxmxnxeSfSoxpxqxgShShEiSjSiEkSlSmSrxsxnSoSpSqSrSsStSuSvSwSxSySzStxuxASvxwxBSxxyxCSjEkElEDSESFSGSmEnEoEHSoipiqiriISsitiuiviJSwixiyiziAiKS=nLS?nMS8iNSOSPSQSRSSS_pTSUSVSWSXSYSZS0S1S2S3S4S5S6S7S8S9S!S#SpE$SqErE%Szx'S(SAx)SBxCxDxExFx*S+S@n[n,SGxHxIx-SJxKxLxMx.SNxOxPxQxRx/SSxTxUxVxWx:S`p{p|p}p;S~paqbqcq=SsE?S]n@S^n[S_nXxYx]S`n{n^S_S|n}n~n`Saobocodo{Seofogoho|Siojoko}SZx0x1x~S2x3x4xaTlomonooobTpoqorocTsotouodTvowoxoeTyozoAoBo9ifT!idqeqgTtEhTuECoDoiT(ivEwExEjTkT#ifq$igqBilT9gSd)d*dmThqCinTXeYeZe!goT0e#gpTEoFoGoHoIoqTJoKoLoMoNoOorTPoQoRoSoTosT5h6h7h8h9h5xtT6xuTvTwTxTyTzTATBTCTDTyEzEETFT{dAEBEGT7xHTIT8x9xJT!x#x$xKTLTCEMTDENTEEOTFEPTGEQTRT/f:f;fST=f?f@fTT[f]f^f_f`f{fUT|f}f~fagbgVTWTXTYTZT0T1THE2TIE3T4T5TTd6T%x7TUd'xUow x y z A B 8T(xVoWoXoYoZoJE5 9T!T#TC $T%T'T$g%g(T'g(g)T*T+TKELEMENEOE,T-bTbUbVb)x
51 return isinstance(cls, type) and issubclass(cls, class_or_tuple) # type: ignore[arg-type] 2b oq1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*x+x,x-xVd+Epqgdhd,E-E.E)if |d}dWb/E!h:E;EOccgqq=E?E@Erqsqtquqvqwqh bbcbdbebfbgbhbibjbkblbmbxqyqzqAqBqCq1e[E]EDqEq^E_Edg`E{E|E*i+i}E.xFqGqHqIq~EJqKqLqDiegMqaFNqidfg0o1o2o+d,i-i,d-d.dbF.i8 9 ! # $ % ' XbcFOqdFeFfFPqQqgFRqSq/i:i;i=iTq?i@ihFiFWdWcXdjdkdldXcPc:bH ;b/x#h:x;xQcjFkFlFmFnF=x?xoFpFqFrFsFtFuFvFwFxFyF2eUqzF[iAFBF3oCFDF( ) * + , - . EFkclc]i^iFF@x_i`iVq{iGF[x]x^x_x`x{x|x}x~xaybycydyeyfygyhyiy|ijykylymynyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHyIyJyKyLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0yWqXqYqZq0q1q2q3q4q5qHF6q7qiqmcjqkq6 F 1y2y3y4y5y6y7y4o5o6o8y9y!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y=y?y8q9q!q#q$qYb=bgg?b@bYc[b]b^bIF%q'qJF@yKFLF(q)q*q+q,q-qMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!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~FaGbGcGdGeGfGgGhGiG}i~iajbjcjdjejfjgjjGhjijjj.q/q:q;q=q?q@q[q]qkG^q_q`q)g*g+g,g-g.g/g:g;glG=g?g@gZc0c1c2c3c4c5c6c7cmG8c9c!cncocpcqcrcsctcucvcnGwcxcyc[g]g^g_g`g{g|g}g~goGahbhch$h%h'h(h)h*h+h,h-hpG.h/h:h~daebecedeeefegeheqGiejeke3e4e5e6e7e8e9e!e#erG$e%e'ekjljmjnjojpjqjrjsjsGtjujvj[y]y^y_y`y{y|y}y~ytGazbzcz7o8o9o!o#o$o%o'o(ouG)o*o+owjxjyjzjAjBjCjDjEjvGFjGjHj{q|q}q~qarbrcrdrerwGfrgrhrxGirdzezfzgzhzizjzkzlzyGmznzoz,o-o.o/o:o;o=o?o@ozG[o]o^oIjJjKjLjMjNjOjPjQjAGRjSjTjjrkrlrmrnrorprqrrrBGsrtrurUjVjWjXjCGDGEGFGGGHGIGJGKGLG/dMGpzNGqzOGhgigHeIePGQGvrwrjgkglgmgngogpgxr(e)eRGI J SGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!G#G$G%G'GYd*e+e,e(G)G*G+G,GZd-e.e/e-G:e0d;e=e.G/G:G;G=GyrzrArBr?GrzszCrDr@G[G_o]G^G_G`G{G;h=h|G}G~GErFraHYjZjbHGrHrcH0j1jIrJrdHKr2jeHfHgHhHLrMrNrOrPrQrRrSrTrUrVriHWrXrYrZr0r1r2r3r4r5r6r7r8rjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzHAHBHtzuzvzCH3j4j5jwzxzyzDHEH6j7j8j9jFHzzAzBzCzDzEzFzGzGHHzIzJzHH!j#j$j%j'jIHKzLzMzNzOzJHPzQzRzSzKHTzUzVzWzXzLHYzZz0z1z2z3zMH4z5z6z7zNHOHPHQHRHSHTHUHVHWHXHYHZH9r0H!r#r1H$r%r2H3H4H'r(r)r(j)j*j+j5H,j-j.j/j6H:j7H*r+r8H9H!H#H$H%H'H(H)H*H+H,H-H,r.H/H:H;j;H=j=H?j?H-r.r/r:r@H[H;r=r?r@r[r]r^r_r`r{r|r]H}r^H~rasbscsdsesfsgs_H`Hhsisjs{H|H8z}H~H9zaIbIcIkslsdIeIfIgIhIiIjIkIlImInIoIpImsnsqIospsrIqsrssI!z#z$ztIuIvIwI%z'z(zxI@j[j]j^jyI_j`j{j|jzI}j~jakbkckAIdkBIekCI`oDIEIFIGIHIII{oJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I)z2I*z+z3Iss4I5Its6Iusvswsxsys7I8Ifkgk9IzsAsBs!ICsDsEsFs#IGsHsIsJsKs$ILsMsNsOsPs%I,z-z.z/z'I:z;z=z?z(I@z)Ihk*Iik+IjkQsRs,Ikklk-I.Imknkok/Ipkqkrksk:Itkukvkwk;Ixkykzk=ISsTsUs?IVsWsXs@IAkBkCkDk[IEkFkGk]IHkIkJk^IKkLkMk_INkOkPkQk|o`I}o[z]z{I^z|I_zRkSk}I%i`z{z|z~IaJEi~oFiap?hbJqgmd1d2dcJbp@hdJdhehfh[heJgh]hfJTkUkVkWkXkgJYkZk0k1k2k3khJ4k5k6k7k8kiJhhihjhkhlhYsjJZskJlJmJnJoJpJqJrJsJtJ}z~zuJvJ:daAbAwJ0sxJyJ1s2szJ3s4s5sAJBJcACJdADJeAEJfAFJgAGJHJ?e@e[eIJ]e^e_eJJ`e{e|e}e~eafKJbfcfdfefffLJMJNJOJPJQJRJhASJiATJUJVJndWJ6sXJod7s9ki j k l m n YJ8s!k#k$k%k'kjA/ ZJ0J1JD 2J3J4Jrgsg5Jtgug6J7J8JkAlAmAnAoA9JZbnbobpb9sc !s!J#J$J%J'J(J)J*J+J,J-J.J/JpAqArAsA3d:J#spdqd;J=J?J(kg leme0b@J^h[J]JRcvg$s^J_J`J%s's(s)s*s+so qbrbsbtbubvbwbxbybzbAbBb,s-s.s/s:s;sgf{J|J=s?s}J~JwgaKbKcK)k*kdKtA@s[s]s^seK_s`s{sGixg|sfK}srdygcpdpep;d+k,k=d?d@dgK-k: ; = ? @ [ ] 1bhK~siKjKkKatbtlKctdt.k/k:k;ket=k?kmKnK4d#c5dsdtdud$cSc_bK `buA_hvAwATcoKpKqKrKsKxAyAtKuKvKwKxKyKzKAKBKCKDKhfftEK@kFKGKfpHKIK^ _ ` { | } ~ JKzcAc[k]kKKzA^k_kgt`kLKAABACADAEAFAGAHAIAJAKALAMANAOAPAQARA{kSATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!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}AhtitjtktltmtntotptqtMKrtst~AaBbBcBdBeBfBgphpipgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBttutvtwtxt2b{bzg|b}b%c~bacbcNKytztOKzBPKQKAtBtCtDtEtFtRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!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~KaLbLcLdLeLfLgLhLiLjLkLlLmLnL|k}k~kalblcldlelfloLglhlilGtHtItJtKtLtMtNtOtpLPtQtRtmhnhohphqhrhshthuhqLvhwhxh'c(c)c*c+c,c-c.c/crL:c;c=cBcCcDcEcFcGcHcIcJcsLKcLcMcyhzhAhBhChDhEhFhGhtLHhIhJh`h{h|h}h~haibicidiuLeifigineoepeqereseteuevevLwexeyeifjfkflfmfnfofpfqfwLrfsftfjlklllmlnlolplqlrlxLsltlulABBBCBDBEBFBGBHBIByLJBKBLBjpkplpmpnpopppqprpzLsptpupvlwlxlylzlAlBlClDlALElFlGlStTtUtVtWtXtYtZt0tBL1t2t3tCL4tMBNBOBPBQBRBSBTBUBDLVBWBXBvpwpxpypzpApBpCpDpELEpFpGpHlIlJlKlLlMlNlOlPlFLQlRlSl5t6t7t8t9t!t#t$t%tGL't(t)tTlUlVlWlHLILJLKLLLMLNLOLPLQL[dRLYBSLZBTLAgBgJeKeULVL*t+tCgDgEgFgGgHgIg,tufvfWLL M XLYLZL0L1L2L3L4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L6dwfxfyf-L.L/L:L;L7dzfAfBf=LCf8dDfEf?L@L[L]L^L-t.t/t:t_L0B1B;t=t`LFf{LHp|L}L~LaMbMhiiicMdMeM?t@tfMXlYlgM[t]thMZl0l^t_tiM`t1ljMkMlMmM{t|t}t~taubucudueufugunMhuiujukulumunuoupuqurusutuoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGM2B3B4BHM2l3l4l5B6B7BIMJM5l6l7l8lKM8B9B!B#B$B%B'B(BLM)B*B+BMM9l!l#l$l%lNM,B-B.B/B:BOM;B=B?B@BPM[B]B^B_B`BQM{B|B}B~BaCbCRMcCdCeCfCSMTMUMVMWMXMYMZM0M1M2M3M4Muu5Mvuwu6Mxuyu7M8M9MzuAuBu'l(l)l*l!M+l,l-l.l#M/l$MCuDu%M'M(M)M*M+M,M-M.M/M:M;M=MEu?M@M[M:l]M;l^M=l_MFuGuHuIu`M{MJuKuLuMuNuOuPuQuRuSuTu|MUu}MVuWuXuYuZu0u1u2u~MaN3u4u5ubNcNgCdNeNhCfNgNhN6u7uiNjNkNlNmNnNoNpNqNrNsNtNuN8u9uvN!u#uwN$u%uxNiCjCkCyNzNANBNlCmCnCCN?l@l[l]lDN^l_l`l{lEN|l}l~lambmFNcmGNdmHNIpINJNKNLNMNNNJpONPNQNRNSNTNUNVNWNXNYNZN0N1N2N3N4N5N6NoC7NpCqC8N'u9N!N(u#N)u*u+u,u-u$N%Nemfm'N.u/u:u(N;u=u?u@u)N[u]u^u_u`u*N{u|u}u~uav+NrCsCtCuC,NvCwCxCyC-NzC.Ngm/Nhm:Nimbvcv;Njmkm=N?Nlmmmnm@Nompmqmrm[Nsmtmumvm]Nwmxmym^Ndvevfv_Ngvhviv`NzmAmBmCm{NDmEmFm|NGmHmIm}NJmKmLm~NMmNmOmPmKpaOLpACBCbOCCcODCQmRmdO'iECFCGCeOfOHiMpIiNpjigOJgvd9d!dhOOpkiiOKhLhMhlijONhmikOSmTmUmVmWmlOXmYmZm0m1m2mmO3m4m5m6m7mnOOhPhQhRhShjvoOkvpOqOrOsOtOuOvOwOxOyOHCICzOAO]dJCKCBOlvCODOmvnvEOovpvqvFOGOLCHOMCIONCJOOCKOPCLOMOGfHfIfNOJfKfLfOOMfNfOfPfQfRfPOSfTfUfVfWfQOROSOTOUOVOWOQCXORCYOZO0Owd1Orv2Oxdsv8mp q r s t u 3Otv9m!m#m$m%mSCab4O5O6OE 7O8O9OKgLg!OMgNg#O$O%OTCUCVCWCXC'O3bCbDbEbuvd a vv(O)O*O+O,O-O.O/O:O;O=O?O@OYCZC0C1C#d[Owvydzd]O^O_O'me AdBd7 `Oni{O|OUcOgxv}O~OaPyvzvAvBvCvDvv FbGbHbIbJbKbLbMbNbObPbQbEvFvGvHvIvJvXfbPcPKvLvdPePPgfPgPhP(m)miP2CMvNvOvPvjPQvRvSvJizeTvkPUvCdQgPpQpRp?c*m+m@c[c]clP,mR S T U V W X 4bmPVvnPoPpPWvXvqPYvZv-m.m/m:m0v;m=mrPsPVccc$dDdEdFddc.bRbN SbSpRgTpUp/btPuPvPwPxPVpWpyPzPAPBPCPDPEPFPGPHPIPYf1vJP?mKPLPXpMPNPY Z 0 1 2 3 4 OP5b6b@m[mPP3C]m^m2v_mQP4C5C6C7C8C9C!C#C$C%C'C(C)C*C+C,C-C.C`m/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCD3v4v5v6v7v8v9v!v#v$vRP%v'vlqNcmqnqQ G DDYpEDFDGDHDIDZp0p1pJDKDLD2p3p4p5pMDNDODPDQDRDSDTDUDVDWDXD(v)v*v+v,v7becSgfcgc^chcicjcSP-v.vTPYDUPVP/v:v;v=v?v@vWPXPYPZP0P1P2P3P4P5P6P7P8P9P!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~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQ{m|m}m~manbncndnentQfngnhn[v]v^v_v`v{v|v}v~vuQawbwcwLeMeNeOePeQeReSeTevQUeVeWe_c`c{c|c}c~cadbdcdwQddedfd8b9b!b#b$b%b'b(b)bxQ*b+b,bThUhVhWhXhYhZh0h1hyQ2h3h4hTgUgVgWgXgYgZg0g1gzQ2g3g4gGdHdIdJdKdLdMdNdOdAQPdQdRdZf0f1f2f3f4f5f6f7fBQ8f9f!finjnknlnmnnnonpnqnCQrnsntn6p7p8p9p!p#p$p%p'pDQ(p)p*pKiLiMiNiOiPiQiRiSiEQTiUiViunvnwnxnynznAnBnCnFQDnEnFndwewfwgwhwiwjwkwlwGQmwnwowHQpw+p,p-p.p/p:p;p=p?pIQ@p[p]pWiXiYiZi0i1i2i3i4iJQ5i6i7iGnHnInJnKnLnMnNnOnKQPnQnRnqwrwswtwuwvwwwxwywLQzwAwBwSnTnUnVnMQNQOQPQQQRQSQTQUQVQ^dWQZDXQ0DYQ5g6g_d`dZQ0QCwDwAeBeCeDeEeFeGeEw#f$f1QO P 2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Q-Q.Q/Q:Q;Q%d%f'f(f=Q?Q@Q[Q]Q'd)f*f+f^Q,f(d-f.f_Q`Q{Q|Q}QFwGwHwIw~Q1D2DJwKwaRbR^pcRdReRfRgR7g8ghRiRjRLwMwkRWnXnlRNwOwmRYnZnPwQwnRRw0noRpRqRrRSwTwUwVwWwXwYwZw0w1w2wsR3w4w5w6w7w8w9w!w#w$w%w'w(wtRuRvRwRxRyRzRARBRCRDRERFRGRHRIRJRKRLR3D4D5DMR1n2n3n6D7D8DNROR4n5n6n7nPR9D!D#D$D%D'D(D)DQR*D+D,DRR8n9n!n#n$nSR-D.D/D:D;DTR=D?D@D[DUR]D^D_D`D{DVR|D}D~DaEbEcEWRdEeEfEgEXRYRZR0R1R2R3R4R5R6R7R8R9R)w!R*w+w#R,w-w$R%R'R.w/w:w%n'n(n)n(R*n+n,n-n)R.n*R;w=w+R,R-R.R/R:R;R=R?R@R[R]R^R?w_R`R{R/n|R:n}R;n~R@w[w]w^waSbS_w`w{w|w}w~waxbxcxdxexcSfxdSgxhxixjxkxlxmxnxeSfSoxpxqxgShShEiSjSiEkSlSmSrxsxnSoSpSqSrSsStSuSvSwSxSySzStxuxASvxwxBSxxyxCSjEkElEDSESFSGSmEnEoEHSoipiqiriISsitiuiviJSwixiyiziAiKS=nLS?nMS8iNSOSPSQSRSSS_pTSUSVSWSXSYSZS0S1S2S3S4S5S6S7S8S9S!S#SpE$SqErE%Szx'S(SAx)SBxCxDxExFx*S+S@n[n,SGxHxIx-SJxKxLxMx.SNxOxPxQxRx/SSxTxUxVxWx:S`p{p|p}p;S~paqbqcq=SsE?S]n@S^n[S_nXxYx]S`n{n^S_S|n}n~n`Saobocodo{Seofogoho|Siojoko}SZx0x1x~S2x3x4xaTlomonooobTpoqorocTsotouodTvowoxoeTyozoAoBo9ifT!idqeqgTtEhTuECoDoiT(ivEwExEjTkT#ifq$igqBilT9gSd)d*dmThqCinTXeYeZe!goT0e#gpTEoFoGoHoIoqTJoKoLoMoNoOorTPoQoRoSoTosT5h6h7h8h9h5xtT6xuTvTwTxTyTzTATBTCTDTyEzEETFT{dAEBEGT7xHTIT8x9xJT!x#x$xKTLTCEMTDENTEEOTFEPTGEQTRT/f:f;fST=f?f@fTT[f]f^f_f`f{fUT|f}f~fagbgVTWTXTYTZT0T1THE2TIE3T4T5TTd6T%x7TUd'xUow x y z A B 8T(xVoWoXoYoZoJE5 9T!T#TC $T%T'T$g%g(T'g(g)T*T+TKELEMENEOE,T-bTbUbVb)x
52 except TypeError: # pragma: no cover 2a e AdBd7 ze?c@c[c]cR S T U V W X Vcccdc.bRbSbSpRgTpUp/bVpWpY Z 0 1 2 3 4 5b6bQ Yp2p3p4p5pLeMeNeOePeQeReSeTeUeVeWe8b9b!b#b$b%b'b(b)b*b+b,bTgUgVgWgXgYgZg0g1g2g3g4gGdHdIdJdKdLdMdNdOdPdQdRd6p7p8p9p!p#p$p%p'p(p)p*pKiLiMiNiOiPiQiRiSiTiUiVi+p,p-p.p/p:p;p=p?p@p[p]pWiXiYiZi0i1i2i3i4i5i6i7i_d`dAeBeCeDeEeFeGe7g8goipiqirisitiuiviwixiyiziAi8i`p{p|p}p~paqbqcq9i!idqeqXeYeZe!g0e#g5 C
53 if isinstance(cls, WithArgsTypes): 2a e AdBd7 ze?c@c[c]cR S T U V W X Vcccdc.bRbSbSpRgTpUp/bVpWpY Z 0 1 2 3 4 5b6bQ Yp2p3p4p5pLeMeNeOePeQeReSeTeUeVeWe8b9b!b#b$b%b'b(b)b*b+b,bTgUgVgWgXgYgZg0g1g2g3g4gGdHdIdJdKdLdMdNdOdPdQdRd6p7p8p9p!p#p$p%p'p(p)p*pKiLiMiNiOiPiQiRiSiTiUiVi+p,p-p.p/p:p;p=p?p@p[p]pWiXiYiZi0i1i2i3i4i5i6i7i_d`dAeBeCeDeEeFeGe7g8goipiqirisitiuiviwixiyiziAi8i`p{p|p}p~paqbqcq9i!idqeqXeYeZe!g0e#g5 C
54 return False 2a e AdBd7 ze?c@c[c]cR S T U V W X Vcccdc.bRbSbSpRgTpUp/bVpWpY Z 0 1 2 3 4 5b6bQ Yp2p3p4p5pLeMeNeOePeQeReSeTeUeVeWe8b9b!b#b$b%b'b(b)b*b+b,bTgUgVgWgXgYgZg0g1g2g3g4gGdHdIdJdKdLdMdNdOdPdQdRd6p7p8p9p!p#p$p%p'p(p)p*pKiLiMiNiOiPiQiRiSiTiUiVi+p,p-p.p/p:p;p=p?p@p[p]pWiXiYiZi0i1i2i3i4i5i6i7i_d`dAeBeCeDeEeFeGe7g8goipiqirisitiuiviwixiyiziAi8i`p{p|p}p~paqbqcq9i!idqeqXeYeZe!g0e#g5 C
55 raise # pragma: no cover
58def _annotation_is_sequence(annotation: type[Any] | None) -> bool: 1bcda
59 if lenient_issubclass(annotation, (str, bytes)): 2b oq*x+x,x-xVdpqgdhd)if |d}dWb!hOccgqqrqsqtquqvqwqh bbcbdbebfbgbhbibjbkblbmbxqyqzqAqBqCq1eDqEqdg*i+i.xFqGqHqIqJqKqLqDiegMqNqidfg0o1o2o+d,i-i,d-d.d.i8 9 ! # $ % ' XbOqPqQqRqSq/i:i;i=iTq?i@iWdWcXdjdkdldXcPc:bH ;b/x#h:x;xQc=x?x2eUq[i3o( ) * + , - . kclc]i^i@x_i`iVq{i[x]x^x_x`x{x|x}x~xaybycydyeyfygyhyiy|ijykylymynyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHyIyJyKyLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0yWqXqYqZq0q1q2q3q4q5q6q7qmc6 F 1y2y3y4y5y6y7y4o5o6o8y9y!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y=y?y8q9q!q#q$qYb=bgg?b@bYc[b]b^b%q'q@y(q)q*q+q,q-q}i~iajbjcjdjejfjgjhjijjj.q/q:q;q=q?q@q[q]q^q_q`q)g*g+g,g-g.g/g:g;g=g?g@gZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc[g]g^g_g`g{g|g}g~gahbhch$h%h'h(h)h*h+h,h-h.h/h:h~daebecedeeefegeheiejeke3e4e5e6e7e8e9e!e#e$e%e'ekjljmjnjojpjqjrjsjtjujvj[y]y^y_y`y{y|y}y~yazbzcz7o8o9o!o#o$o%o'o(o)o*o+owjxjyjzjAjBjCjDjEjFjGjHj{q|q}q~qarbrcrdrerfrgrhrirdzezfzgzhzizjzkzlzmznzoz,o-o.o/o:o;o=o?o@o[o]o^oIjJjKjLjMjNjOjPjQjRjSjTjjrkrlrmrnrorprqrrrsrtrurUjVjWjXj/dpzqzhgigHeIevrwrjgkglgmgngogpgxr(e)eI J Yd*e+e,eZd-e.e/e:e0d;e=eyrzrArBrrzszCrDr_o;h=hErFrYjZjGrHr0j1jIrJrKr2jLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8rtzuzvz3j4j5jwzxzyz6j7j8j9jzzAzBzCzDzEzFzGzHzIzJz!j#j$j%j'jKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0z1z2z3z4z5z6z7z9r!r#r$r%r'r(r)r(j)j*j+j,j-j.j/j:j*r+r,r;j=j?j-r.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjs8z9zkslsmsnsospsqsrs!z#z$z%z'z(z@j[j]j^j_j`j{j|j}j~jakbkckdkek`o{o)z*z+zsstsusvswsxsysfkgkzsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPs,z-z.z/z:z;z=z?z@zhkikjkQsRskklkmknkokpkqkrksktkukvkwkxkykzkSsTsUsVsWsXsAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQk|o}o[z]z^z_zRkSk%i`z{z|zEi~oFiap?hqgmd1d2dbp@hdhehfh[hgh]hTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8khhihjhkhlhYsZs}z~z:daAbA0s1s2s3s4s5scAdAeAfAgA?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffhAiAnd6sod7s9ki j k l m n 8s!k#k$k%k'kjA/ D rgsgtgugkAlAmAnAoAZbnbobpb9sc !spAqArAsA3d#spdqd(kg leme0b^hRcvg$s%s's(s)s*s+so qbrbsbtbubvbwbxbybzbAbBb,s-s.s/s:s;sgf=s?swg)k*ktA@s[s]s^s_s`s{sGixg|s}srdygcpdpep;d+k,k=d?d@d-k: ; = ? @ [ ] 1b~satbtctdt.k/k:k;ket=k?k4d#c5dsdtdud$cSc_bK `buA_hvAwATcxAyAhfft@kfp^ _ ` { | } ~ zcAc[k]kzA^k_kgt`kAABACADAEAFAGAHAIAJAKALAMANAOAPAQARA{kSATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!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}Ahtitjtktltmtntotptqtrtst~AaBbBcBdBeBfBgphpipgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBttutvtwtxt2b{bzg|b}b%c~bacbcytztzBAtBtCtDtEtFt|k}k~kalblcldlelflglhlilGtHtItJtKtLtMtNtOtPtQtRtmhnhohphqhrhshthuhvhwhxh'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcyhzhAhBhChDhEhFhGhHhIhJh`h{h|h}h~haibicidieifigineoepeqereseteuevewexeyeifjfkflfmfnfofpfqfrfsftfjlklllmlnlolplqlrlsltlulABBBCBDBEBFBGBHBIBJBKBLBjpkplpmpnpopppqprpsptpupvlwlxlylzlAlBlClDlElFlGlStTtUtVtWtXtYtZt0t1t2t3t4tMBNBOBPBQBRBSBTBUBVBWBXBvpwpxpypzpApBpCpDpEpFpGpHlIlJlKlLlMlNlOlPlQlRlSl5t6t7t8t9t!t#t$t%t't(t)tTlUlVlWl[dYBZBAgBgJeKe*t+tCgDgEgFgGgHgIg,tufvfL M 6dwfxfyf7dzfAfBfCf8dDfEf-t.t/t:t0B1B;t=tFfHphiii?t@tXlYl[t]tZl0l^t_t`t1l{t|t}t~taubucudueufuguhuiujukulumunuoupuqurusutu2B3B4B2l3l4l5B6B7B5l6l7l8l8B9B!B#B$B%B'B(B)B*B+B9l!l#l$l%l,B-B.B/B:B;B=B?B@B[B]B^B_B`B{B|B}B~BaCbCcCdCeCfCuuvuwuxuyuzuAuBu'l(l)l*l+l,l-l.l/lCuDuEu:l;l=lFuGuHuIuJuKuLuMuNuOuPuQuRuSuTuUuVuWuXuYuZu0u1u2u3u4u5ugChC6u7u8u9u!u#u$u%uiCjCkClCmCnC?l@l[l]l^l_l`l{l|l}l~lambmcmdmIpJpoCpCqC'u(u)u*u+u,u-uemfm.u/u:u;u=u?u@u[u]u^u_u`u{u|u}u~uavrCsCtCuCvCwCxCyCzCgmhmimbvcvjmkmlmmmnmompmqmrmsmtmumvmwmxmymdvevfvgvhvivzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmKpLpACBCCCDCQmRm'iECFCGCHiMpIiNpjiJgvd9d!dOpkiKhLhMhliNhmiSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mOhPhQhRhShjvkvHCIC]dJCKClvmvnvovpvqvLCMCNCOCPCGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfQCRCwdrvxdsv8mp q r s t u tv9m!m#m$m%mSCabE KgLgMgNgTCUCVCWCXC3bCbDbEbuvd a vvYCZC0C1C#dwvydzd'me AdBd7 niUcOgxvyvzvAvBvCvDvv FbGbHbIbJbKbLbMbNbObPbQbEvFvGvHvIvJvXfKvLvPg(m)m2CMvNvOvPvQvRvSvJizeTvUvCdQgPpQpRp?c*m+m@c[c]c,mR S T U V W X 4bVvWvXvYvZv-m.m/m:m0v;m=mVccc$dDdEdFddc.bRbN SbSpRgTpUp/bVpWpYf1v?mXpY Z 0 1 2 3 4 5b6b@m[m3C]m^m2v_m4C5C6C7C8C9C!C#C$C%C'C(C)C*C+C,C-C.C`m/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCD3v4v5v6v7v8v9v!v#v$v%v'vNcQ G DDYpEDFDGDHDIDZp0p1pJDKDLD2p3p4p5pMDNDODPDQDRDSDTDUDVDWDXD(v)v*v+v,v7becSgfcgc^chcicjc-v.vYD/v:v;v=v?v@v{m|m}m~manbncndnenfngnhn[v]v^v_v`v{v|v}v~vawbwcwLeMeNeOePeQeReSeTeUeVeWe_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bThUhVhWhXhYhZh0h1h2h3h4hTgUgVgWgXgYgZg0g1g2g3g4gGdHdIdJdKdLdMdNdOdPdQdRdZf0f1f2f3f4f5f6f7f8f9f!finjnknlnmnnnonpnqnrnsntn6p7p8p9p!p#p$p%p'p(p)p*pKiLiMiNiOiPiQiRiSiTiUiViunvnwnxnynznAnBnCnDnEnFndwewfwgwhwiwjwkwlwmwnwowpw+p,p-p.p/p:p;p=p?p@p[p]pWiXiYiZi0i1i2i3i4i5i6i7iGnHnInJnKnLnMnNnOnPnQnRnqwrwswtwuwvwwwxwywzwAwBwSnTnUnVn^dZD0D5g6g_d`dCwDwAeBeCeDeEeFeGeEw#f$fO P %d%f'f(f'd)f*f+f,f(d-f.fFwGwHwIw1D2DJwKw^p7g8gLwMwWnXnNwOwYnZnPwQwRw0nSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w3D4D5D1n2n3n6D7D8D4n5n6n7n9D!D#D$D%D'D(D)D*D+D,D8n9n!n#n$n-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgE)w*w+w,w-w.w/w:w%n'n(n)n*n+n,n-n.n;w=w?w/n:n;n@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxhEiErxsxtxuxvxwxxxyxjEkElEmEnEoEoipiqirisitiuiviwixiyiziAi=n?n8i_ppEqErEzxAxBxCxDxExFx@n[nGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWx`p{p|p}p~paqbqcqsE]n^n_nXxYx`n{n|n}n~naobocodoeofogohoiojokoZx0x1x2x3x4xlomonooopoqorosotouovowoxoyozoAoBo9i!idqeqtEuECoDo(ivEwExE#ifq$igqBi9gSd)d*dhqCiXeYeZe!g0e#gEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoTo5h6h7h8h9h5x6xyEzE{dAEBE7x8x9x!x#x$xCEDEEEFEGE/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgHEIETd%xUd'xUow x y z A B (xVoWoXoYoZoJE5 C $g%g'g(gKELEMENEOE-bTbUbVb)x
60 return False 2b oqpqgdhd)if qqrqsqtquqvqwqh bbcbdbebfbgbhbibjbkblbmbxqyqzqAqBqCq1eDqEq*i+iFqGqHqIqJqKqLqDiegMqNqid+d,i-i,d-d.d.iOqPqQqRqSq/i:i;i=iTq?i@i2eUq[i]i^i_i`iVq{i|iWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q=b?b@bYc[b]b^b%q'q(q)q*q+q,q-q}i~iajbjcjdjejfjgjhjijjj.q/q:q;q=q?q@q[q]q^q_q`qZc0c1c2c3c4c5c6c7c8c9c!c[g]g^g_g`g{g|g}g~gahbhch3e4e5e6e7e8e9e!e#e$e%e'ekjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHj{q|q}q~qarbrcrdrerfrgrhrirIjJjKjLjMjNjOjPjQjRjSjTjjrkrlrmrnrorprqrrrsrtrurUjVjWjXjvrwrxr(e)eI J Yd*e+e,eZd-e.e/e:e0d;e=eyrzrArBrCrDrErFrYjZjGrHr0j1jIrJrKr2jLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r3j4j5j6j7j8j9j!j#j$j%j'j9r!r#r$r%r'r(r)r(j)j*j+j,j-j.j/j:j*r+r,r;j=j?j-r.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsospsqsrs@j[j]j^j_j`j{j|j}j~jakbkckdkeksstsusvswsxsysfkgkzsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPshkikjkQsRskklkmknkokpkqkrksktkukvkwkxkykzkSsTsUsVsWsXsAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkEi~oFiapqgmdbpTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8khhihjhkhlhYsZs0s1s2s3s4s5s?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffnd6sod7s9ki j k l m n 8s!k#k$k%k'kD nbobpb9sc !s#spdqd(kg $s%s's(s)s*s+so qbrbsbtbubvbwbxbybzbAbBb,s-s.s/s:s;sgf=s?s)k*k@s[s]s^s_s`s{sGixg|s}srd;d+k,k=d?d@d-k~satbtctdt.k/k:k;ket=k?khfft@k[k]k^k_kgt`k{khtitjtktltmtntotptqtrtstttutvtwtxt{b|b}b%c~bacbcytztAtBtCtDtEtFt|k}k~kalblcldlelflglhlilGtHtItJtKtLtMtNtOtPtQtRt'c(c)c*c+c,c-c.c/c:c;c=cyhzhAhBhChDhEhFhGhHhIhJhifjfkflfmfnfofpfqfrfsftfjlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlStTtUtVtWtXtYtZt0t1t2t3t4tHlIlJlKlLlMlNlOlPlQlRlSl5t6t7t8t9t!t#t$t%t't(t)tTlUlVlWl*t+t,tufvfL M 6dwfxfyf7dzfAfBfCf8dDfEf-t.t/t:t;t=tFf?t@tXlYl[t]tZl0l^t_t`t1l{t|t}t~taubucudueufuguhuiujukulumunuoupuqurusutu2l3l4l5l6l7l8l9l!l#l$l%luuvuwuxuyuzuAuBu'l(l)l*l+l,l-l.l/lCuDuEu:l;l=lFuGuHuIuJuKuLuMuNuOuPuQuRuSuTuUuVuWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u?l@l[l]l^l_l`l{l|l}l~lambmcmdm'u(u)u*u+u,u-uemfm.u/u:u;u=u?u@u[u]u^u_u`u{u|u}u~uavgmhmimbvcvjmkmlmmmnmompmqmrmsmtmumvmwmxmymdvevfvgvhvivzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmHiMpIiNpJgvdOpSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mOhPhQhRhShjvkvlvmvnvovpvqvGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfwdrvxdsv8mp q r s t u tv9m!m#m$m%mE CbDbEbuvd a vvwvydzd'me xvyvzvAvBvCvDvv FbGbHbIbJbKbLbMbNbObPbQbEvFvGvHvIvJvXfKvLv(m)mMvNvOvPvQvRvSvJizeTvUvCd?c*m+m@c[c]c,mVvWvXvYvZv-m.m/m:m0v;m=mYf1v?m@m[m]m^m2v_m`m3v4v5v6v7v8v9v!v#v$v%v'v(v)v*v+v,vecfcgc^chcicjc-v.v/v:v;v=v?v@v{m|m}m~manbncndnenfngnhn[v]v^v_v`v{v|v}v~vawbwcw_c`c{c|c}c~cadbdcdddedfdThUhVhWhXhYhZh0h1h2h3h4hZf0f1f2f3f4f5f6f7f8f9f!finjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFndwewfwgwhwiwjwkwlwmwnwowpwGnHnInJnKnLnMnNnOnPnQnRnqwrwswtwuwvwwwxwywzwAwBwSnTnUnVnCwDwEw#f$fO P %d%f'f(f'd)f*f+f,f(d-f.fFwGwHwIwJwKwLwMwWnXnNwOwYnZnPwQwRw0nSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w1n2n3n4n5n6n7n8n9n!n#n$n)w*w+w,w-w.w/w:w%n'n(n)n*n+n,n-n.n;w=w?w/n:n;n@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxoipiqirisitiuiviwixiyiziAi=n?nzxAxBxCxDxExFx@n[nGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWx]n^n_nXxYx`n{n|n}n~naobocodoeofogohoiojokoZx0x1x2x3x4xlomonooopoqorosotouovowoxoyozoAoBoCoDo#ifq$igq9gSdhqEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoTo5h6h7h8h9h5x6x7x8x9x!x#x$x/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgTd%xUd'xUow x y z A B (xVoWoXoYoZoC TbUbVb)x
61 return lenient_issubclass(annotation, sequence_types) 2b oq*x+x,x-xVdpqgdhd)if |d}dWb!hOccgqqrqsqtquqvqwqh bbcbdbebfbgbhbibjbkblbmbxqyqzqAqBqCq1eDqEqdg*i+i.xFqGqHqIqJqKqLqDiegMqNqidfg0o1o2o+d,i-i,d-d.d.i8 9 ! # $ % ' XbOqPqQqRqSq/i:i;i=iTq?i@iWdWcXdjdkdldXcPc:bH ;b/x#h:x;xQc=x?x2eUq[i3o( ) * + , - . kclc]i^i@x_i`iVq{i[x]x^x_x`x{x|x}x~xaybycydyeyfygyhyiy|ijykylymynyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHyIyJyKyLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0yWqXqYqZq0q1q2q3q4q5q6q7qmc6 F 1y2y3y4y5y6y7y4o5o6o8y9y!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y=y?y8q9q!q#q$qYb=bgg?b@bYc[b]b^b%q'q@y(q)q*q+q,q-q}i~iajbjcjdjejfjgjhjijjj.q/q:q;q=q?q@q[q]q^q_q`q)g*g+g,g-g.g/g:g;g=g?g@gZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc[g]g^g_g`g{g|g}g~gahbhch$h%h'h(h)h*h+h,h-h.h/h:h~daebecedeeefegeheiejeke3e4e5e6e7e8e9e!e#e$e%e'ekjljmjnjojpjqjrjsjtjujvj[y]y^y_y`y{y|y}y~yazbzcz7o8o9o!o#o$o%o'o(o)o*o+owjxjyjzjAjBjCjDjEjFjGjHj{q|q}q~qarbrcrdrerfrgrhrirdzezfzgzhzizjzkzlzmznzoz,o-o.o/o:o;o=o?o@o[o]o^oIjJjKjLjMjNjOjPjQjRjSjTjjrkrlrmrnrorprqrrrsrtrurUjVjWjXj/dpzqzhgigHeIevrwrjgkglgmgngogpgxr(e)eI J Yd*e+e,eZd-e.e/e:e0d;e=eyrzrArBrrzszCrDr_o;h=hErFrYjZjGrHr0j1jIrJrKr2jLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8rtzuzvz3j4j5jwzxzyz6j7j8j9jzzAzBzCzDzEzFzGzHzIzJz!j#j$j%j'jKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0z1z2z3z4z5z6z7z9r!r#r$r%r'r(r)r(j)j*j+j,j-j.j/j:j*r+r,r;j=j?j-r.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjs8z9zkslsmsnsospsqsrs!z#z$z%z'z(z@j[j]j^j_j`j{j|j}j~jakbkckdkek`o{o)z*z+zsstsusvswsxsysfkgkzsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPs,z-z.z/z:z;z=z?z@zhkikjkQsRskklkmknkokpkqkrksktkukvkwkxkykzkSsTsUsVsWsXsAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQk|o}o[z]z^z_zRkSk%i`z{z|zEi~oFiap?hqgmd1d2dbp@hdhehfh[hgh]hTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8khhihjhkhlhYsZs}z~z:daAbA0s1s2s3s4s5scAdAeAfAgA?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffhAiAnd6sod7s9ki j k l m n 8s!k#k$k%k'kjA/ D rgsgtgugkAlAmAnAoAZbnbobpb9sc !spAqArAsA3d#spdqd(kg leme0b^hRcvg$s%s's(s)s*s+so qbrbsbtbubvbwbxbybzbAbBb,s-s.s/s:s;sgf=s?swg)k*ktA@s[s]s^s_s`s{sGixg|s}srdygcpdpep;d+k,k=d?d@d-k: ; = ? @ [ ] 1b~satbtctdt.k/k:k;ket=k?k4d#c5dsdtdud$cSc_bK `buA_hvAwATcxAyAhfft@kfp^ _ ` { | } ~ zcAc[k]kzA^k_kgt`kAABACADAEAFAGAHAIAJAKALAMANAOAPAQARA{kSATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!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}Ahtitjtktltmtntotptqtrtst~AaBbBcBdBeBfBgphpipgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBttutvtwtxt2b{bzg|b}b%c~bacbcytztzBAtBtCtDtEtFt|k}k~kalblcldlelflglhlilGtHtItJtKtLtMtNtOtPtQtRtmhnhohphqhrhshthuhvhwhxh'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcyhzhAhBhChDhEhFhGhHhIhJh`h{h|h}h~haibicidieifigineoepeqereseteuevewexeyeifjfkflfmfnfofpfqfrfsftfjlklllmlnlolplqlrlsltlulABBBCBDBEBFBGBHBIBJBKBLBjpkplpmpnpopppqprpsptpupvlwlxlylzlAlBlClDlElFlGlStTtUtVtWtXtYtZt0t1t2t3t4tMBNBOBPBQBRBSBTBUBVBWBXBvpwpxpypzpApBpCpDpEpFpGpHlIlJlKlLlMlNlOlPlQlRlSl5t6t7t8t9t!t#t$t%t't(t)tTlUlVlWl[dYBZBAgBgJeKe*t+tCgDgEgFgGgHgIg,tufvfL M 6dwfxfyf7dzfAfBfCf8dDfEf-t.t/t:t0B1B;t=tFfHphiii?t@tXlYl[t]tZl0l^t_t`t1l{t|t}t~taubucudueufuguhuiujukulumunuoupuqurusutu2B3B4B2l3l4l5B6B7B5l6l7l8l8B9B!B#B$B%B'B(B)B*B+B9l!l#l$l%l,B-B.B/B:B;B=B?B@B[B]B^B_B`B{B|B}B~BaCbCcCdCeCfCuuvuwuxuyuzuAuBu'l(l)l*l+l,l-l.l/lCuDuEu:l;l=lFuGuHuIuJuKuLuMuNuOuPuQuRuSuTuUuVuWuXuYuZu0u1u2u3u4u5ugChC6u7u8u9u!u#u$u%uiCjCkClCmCnC?l@l[l]l^l_l`l{l|l}l~lambmcmdmIpJpoCpCqC'u(u)u*u+u,u-uemfm.u/u:u;u=u?u@u[u]u^u_u`u{u|u}u~uavrCsCtCuCvCwCxCyCzCgmhmimbvcvjmkmlmmmnmompmqmrmsmtmumvmwmxmymdvevfvgvhvivzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmKpLpACBCCCDCQmRm'iECFCGCHiMpIiNpjiJgvd9d!dOpkiKhLhMhliNhmiSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mOhPhQhRhShjvkvHCIC]dJCKClvmvnvovpvqvLCMCNCOCPCGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfQCRCwdrvxdsv8mp q r s t u tv9m!m#m$m%mSCabE KgLgMgNgTCUCVCWCXC3bCbDbEbuvd a vvYCZC0C1C#dwvydzd'me AdBd7 niUcOgxvyvzvAvBvCvDvv FbGbHbIbJbKbLbMbNbObPbQbEvFvGvHvIvJvXfKvLvPg(m)m2CMvNvOvPvQvRvSvJizeTvUvCdQgPpQpRp?c*m+m@c[c]c,mR S T U V W X 4bVvWvXvYvZv-m.m/m:m0v;m=mVccc$dDdEdFddc.bRbN SbSpRgTpUp/bVpWpYf1v?mXpY Z 0 1 2 3 4 5b6b@m[m3C]m^m2v_m4C5C6C7C8C9C!C#C$C%C'C(C)C*C+C,C-C.C`m/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCD3v4v5v6v7v8v9v!v#v$v%v'vNcQ G DDYpEDFDGDHDIDZp0p1pJDKDLD2p3p4p5pMDNDODPDQDRDSDTDUDVDWDXD(v)v*v+v,v7becSgfcgc^chcicjc-v.vYD/v:v;v=v?v@v{m|m}m~manbncndnenfngnhn[v]v^v_v`v{v|v}v~vawbwcwLeMeNeOePeQeReSeTeUeVeWe_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bThUhVhWhXhYhZh0h1h2h3h4hTgUgVgWgXgYgZg0g1g2g3g4gGdHdIdJdKdLdMdNdOdPdQdRdZf0f1f2f3f4f5f6f7f8f9f!finjnknlnmnnnonpnqnrnsntn6p7p8p9p!p#p$p%p'p(p)p*pKiLiMiNiOiPiQiRiSiTiUiViunvnwnxnynznAnBnCnDnEnFndwewfwgwhwiwjwkwlwmwnwowpw+p,p-p.p/p:p;p=p?p@p[p]pWiXiYiZi0i1i2i3i4i5i6i7iGnHnInJnKnLnMnNnOnPnQnRnqwrwswtwuwvwwwxwywzwAwBwSnTnUnVn^dZD0D5g6g_d`dCwDwAeBeCeDeEeFeGeEw#f$fO P %d%f'f(f'd)f*f+f,f(d-f.fFwGwHwIw1D2DJwKw^p7g8gLwMwWnXnNwOwYnZnPwQwRw0nSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w3D4D5D1n2n3n6D7D8D4n5n6n7n9D!D#D$D%D'D(D)D*D+D,D8n9n!n#n$n-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgE)w*w+w,w-w.w/w:w%n'n(n)n*n+n,n-n.n;w=w?w/n:n;n@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxhEiErxsxtxuxvxwxxxyxjEkElEmEnEoEoipiqirisitiuiviwixiyiziAi=n?n8i_ppEqErEzxAxBxCxDxExFx@n[nGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWx`p{p|p}p~paqbqcqsE]n^n_nXxYx`n{n|n}n~naobocodoeofogohoiojokoZx0x1x2x3x4xlomonooopoqorosotouovowoxoyozoAoBo9i!idqeqtEuECoDo(ivEwExE#ifq$igqBi9gSd)d*dhqCiXeYeZe!g0e#gEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoTo5h6h7h8h9h5x6xyEzE{dAEBE7x8x9x!x#x$xCEDEEEFEGE/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgHEIETd%xUd'xUow x y z A B (xVoWoXoYoZoJE5 C $g%g'g(gKELEMENEOE-bTbUbVb)x
64def field_annotation_is_sequence(annotation: type[Any] | None) -> bool: 1bcda
65 origin = get_origin(annotation) 2b oq*x+x,x-xVdpqgdhd)if |d}dWb!hOccgqqrqsqtquqvqwqh bbcbdbebfbgbhbibjbkblbmbxqyqzqAqBqCq1eDqEqdg*i+i.xFqGqHqIqJqKqLqDiegMqNqidfg0o1o2o+d,i-i,d-d.d.i8 9 ! # $ % ' XbOqPqQqRqSq/i:i;i=iTq?i@iWdWcXdjdkdldXcPc:bH ;b/x#h:x;xQc=x?x2eUq[i3o( ) * + , - . kclc]i^i@x_i`iVq{i[x]x^x_x`x{x|x}x~xaybycydyeyfygyhyiy|ijykylymynyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHyIyJyKyLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0yWqXqYqZq0q1q2q3q4q5q6q7qmc6 F 1y2y3y4y5y6y7y4o5o6o8y9y!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y=y?y8q9q!q#q$qYb=bgg?b@bYc[b]b^b%q'q@y(q)q*q+q,q-q}i~iajbjcjdjejfjgjhjijjj.q/q:q;q=q?q@q[q]q^q_q`q)g*g+g,g-g.g/g:g;g=g?g@gZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc[g]g^g_g`g{g|g}g~gahbhch$h%h'h(h)h*h+h,h-h.h/h:h~daebecedeeefegeheiejeke3e4e5e6e7e8e9e!e#e$e%e'ekjljmjnjojpjqjrjsjtjujvj[y]y^y_y`y{y|y}y~yazbzcz7o8o9o!o#o$o%o'o(o)o*o+owjxjyjzjAjBjCjDjEjFjGjHj{q|q}q~qarbrcrdrerfrgrhrirdzezfzgzhzizjzkzlzmznzoz,o-o.o/o:o;o=o?o@o[o]o^oIjJjKjLjMjNjOjPjQjRjSjTjjrkrlrmrnrorprqrrrsrtrurUjVjWjXj/dpzqzhgigHeIevrwrjgkglgmgngogpgxr(e)eI J Yd*e+e,eZd-e.e/e:e0d;e=eyrzrArBrrzszCrDr_o;h=hErFrYjZjGrHr0j1jIrJrKr2jLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8rtzuzvz3j4j5jwzxzyz6j7j8j9jzzAzBzCzDzEzFzGzHzIzJz!j#j$j%j'jKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0z1z2z3z4z5z6z7z9r!r#r$r%r'r(r)r(j)j*j+j,j-j.j/j:j*r+r,r;j=j?j-r.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjs8z9zkslsmsnsospsqsrs!z#z$z%z'z(z@j[j]j^j_j`j{j|j}j~jakbkckdkek`o{o)z*z+zsstsusvswsxsysfkgkzsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPs,z-z.z/z:z;z=z?z@zhkikjkQsRskklkmknkokpkqkrksktkukvkwkxkykzkSsTsUsVsWsXsAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQk|o}o[z]z^z_zRkSk%i`z{z|zEi~oFiap?hqgmd1d2dbp@hdhehfh[hgh]hTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8khhihjhkhlhYsZs}z~z:daAbA0s1s2s3s4s5scAdAeAfAgA?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffhAiAnd6sod7s9ki j k l m n 8s!k#k$k%k'kjA/ D rgsgtgugkAlAmAnAoAZbnbobpb9sc !spAqArAsA3d#spdqd(kg leme0b^hRcvg$s%s's(s)s*s+so qbrbsbtbubvbwbxbybzbAbBb,s-s.s/s:s;sgf=s?swg)k*ktA@s[s]s^s_s`s{sGixg|s}srdygcpdpep;d+k,k=d?d@d-k: ; = ? @ [ ] 1b~satbtctdt.k/k:k;ket=k?k4d#c5dsdtdud$cSc_bK `buA_hvAwATcxAyAhfft@kfp^ _ ` { | } ~ zcAc[k]kzA^k_kgt`kAABACADAEAFAGAHAIAJAKALAMANAOAPAQARA{kSATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!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}Ahtitjtktltmtntotptqtrtst~AaBbBcBdBeBfBgphpipgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBttutvtwtxt2b{bzg|b}b%c~bacbcytztzBAtBtCtDtEtFt|k}k~kalblcldlelflglhlilGtHtItJtKtLtMtNtOtPtQtRtmhnhohphqhrhshthuhvhwhxh'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcyhzhAhBhChDhEhFhGhHhIhJh`h{h|h}h~haibicidieifigineoepeqereseteuevewexeyeifjfkflfmfnfofpfqfrfsftfjlklllmlnlolplqlrlsltlulABBBCBDBEBFBGBHBIBJBKBLBjpkplpmpnpopppqprpsptpupvlwlxlylzlAlBlClDlElFlGlStTtUtVtWtXtYtZt0t1t2t3t4tMBNBOBPBQBRBSBTBUBVBWBXBvpwpxpypzpApBpCpDpEpFpGpHlIlJlKlLlMlNlOlPlQlRlSl5t6t7t8t9t!t#t$t%t't(t)tTlUlVlWl[dYBZBAgBgJeKe*t+tCgDgEgFgGgHgIg,tufvfL M 6dwfxfyf7dzfAfBfCf8dDfEf-t.t/t:t0B1B;t=tFfHphiii?t@tXlYl[t]tZl0l^t_t`t1l{t|t}t~taubucudueufuguhuiujukulumunuoupuqurusutu2B3B4B2l3l4l5B6B7B5l6l7l8l8B9B!B#B$B%B'B(B)B*B+B9l!l#l$l%l,B-B.B/B:B;B=B?B@B[B]B^B_B`B{B|B}B~BaCbCcCdCeCfCuuvuwuxuyuzuAuBu'l(l)l*l+l,l-l.l/lCuDuEu:l;l=lFuGuHuIuJuKuLuMuNuOuPuQuRuSuTuUuVuWuXuYuZu0u1u2u3u4u5ugChC6u7u8u9u!u#u$u%uiCjCkClCmCnC?l@l[l]l^l_l`l{l|l}l~lambmcmdmIpJpoCpCqC'u(u)u*u+u,u-uemfm.u/u:u;u=u?u@u[u]u^u_u`u{u|u}u~uavrCsCtCuCvCwCxCyCzCgmhmimbvcvjmkmlmmmnmompmqmrmsmtmumvmwmxmymdvevfvgvhvivzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmKpLpACBCCCDCQmRm'iECFCGCHiMpIiNpjiJgvd9d!dOpkiKhLhMhliNhmiSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mOhPhQhRhShjvkvHCIC]dJCKClvmvnvovpvqvLCMCNCOCPCGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfQCRCwdrvxdsv8mp q r s t u tv9m!m#m$m%mSCabE KgLgMgNgTCUCVCWCXC3bCbDbEbuvd a vvYCZC0C1C#dwvydzd'me AdBd7 niUcOgxvyvzvAvBvCvDvv FbGbHbIbJbKbLbMbNbObPbQbEvFvGvHvIvJvXfKvLvPg(m)m2CMvNvOvPvQvRvSvJizeTvUvCdQgPpQpRp?c*m+m@c[c]c,mR S T U V W X 4bVvWvXvYvZv-m.m/m:m0v;m=mVccc$dDdEdFddc.bRbN SbSpRgTpUp/bVpWpYf1v?mXpY Z 0 1 2 3 4 5b6b@m[m3C]m^m2v_m4C5C6C7C8C9C!C#C$C%C'C(C)C*C+C,C-C.C`m/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCD3v4v5v6v7v8v9v!v#v$v%v'vNcQ G DDYpEDFDGDHDIDZp0p1pJDKDLD2p3p4p5pMDNDODPDQDRDSDTDUDVDWDXD(v)v*v+v,v7becSgfcgc^chcicjc-v.vYD/v:v;v=v?v@v{m|m}m~manbncndnenfngnhn[v]v^v_v`v{v|v}v~vawbwcwLeMeNeOePeQeReSeTeUeVeWe_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bThUhVhWhXhYhZh0h1h2h3h4hTgUgVgWgXgYgZg0g1g2g3g4gGdHdIdJdKdLdMdNdOdPdQdRdZf0f1f2f3f4f5f6f7f8f9f!finjnknlnmnnnonpnqnrnsntn6p7p8p9p!p#p$p%p'p(p)p*pKiLiMiNiOiPiQiRiSiTiUiViunvnwnxnynznAnBnCnDnEnFndwewfwgwhwiwjwkwlwmwnwowpw+p,p-p.p/p:p;p=p?p@p[p]pWiXiYiZi0i1i2i3i4i5i6i7iGnHnInJnKnLnMnNnOnPnQnRnqwrwswtwuwvwwwxwywzwAwBwSnTnUnVn^dZD0D5g6g_d`dCwDwAeBeCeDeEeFeGeEw#f$fO P %d%f'f(f'd)f*f+f,f(d-f.fFwGwHwIw1D2DJwKw^p7g8gLwMwWnXnNwOwYnZnPwQwRw0nSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w3D4D5D1n2n3n6D7D8D4n5n6n7n9D!D#D$D%D'D(D)D*D+D,D8n9n!n#n$n-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgE)w*w+w,w-w.w/w:w%n'n(n)n*n+n,n-n.n;w=w?w/n:n;n@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxhEiErxsxtxuxvxwxxxyxjEkElEmEnEoEoipiqirisitiuiviwixiyiziAi=n?n8i_ppEqErEzxAxBxCxDxExFx@n[nGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWx`p{p|p}p~paqbqcqsE]n^n_nXxYx`n{n|n}n~naobocodoeofogohoiojokoZx0x1x2x3x4xlomonooopoqorosotouovowoxoyozoAoBo9i!idqeqtEuECoDo(ivEwExE#ifq$igqBi9gSd)d*dhqCiXeYeZe!g0e#gEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoTo5h6h7h8h9h5x6xyEzE{dAEBE7x8x9x!x#x$xCEDEEEFEGE/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgHEIETd%xUd'xUow x y z A B (xVoWoXoYoZoJE5 C $g%g'g(gKELEMENEOE-bTbUbVb)x
66 if origin is Union or origin is UnionType: 2b oq*x+x,x-xVdpqgdhd)if |d}dWb!hOccgqqrqsqtquqvqwqh bbcbdbebfbgbhbibjbkblbmbxqyqzqAqBqCq1eDqEqdg*i+i.xFqGqHqIqJqKqLqDiegMqNqidfg0o1o2o+d,i-i,d-d.d.i8 9 ! # $ % ' XbOqPqQqRqSq/i:i;i=iTq?i@iWdWcXdjdkdldXcPc:bH ;b/x#h:x;xQc=x?x2eUq[i3o( ) * + , - . kclc]i^i@x_i`iVq{i[x]x^x_x`x{x|x}x~xaybycydyeyfygyhyiy|ijykylymynyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHyIyJyKyLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0yWqXqYqZq0q1q2q3q4q5q6q7qmc6 F 1y2y3y4y5y6y7y4o5o6o8y9y!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y=y?y8q9q!q#q$qYb=bgg?b@bYc[b]b^b%q'q@y(q)q*q+q,q-q}i~iajbjcjdjejfjgjhjijjj.q/q:q;q=q?q@q[q]q^q_q`q)g*g+g,g-g.g/g:g;g=g?g@gZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc[g]g^g_g`g{g|g}g~gahbhch$h%h'h(h)h*h+h,h-h.h/h:h~daebecedeeefegeheiejeke3e4e5e6e7e8e9e!e#e$e%e'ekjljmjnjojpjqjrjsjtjujvj[y]y^y_y`y{y|y}y~yazbzcz7o8o9o!o#o$o%o'o(o)o*o+owjxjyjzjAjBjCjDjEjFjGjHj{q|q}q~qarbrcrdrerfrgrhrirdzezfzgzhzizjzkzlzmznzoz,o-o.o/o:o;o=o?o@o[o]o^oIjJjKjLjMjNjOjPjQjRjSjTjjrkrlrmrnrorprqrrrsrtrurUjVjWjXj/dpzqzhgigHeIevrwrjgkglgmgngogpgxr(e)eI J Yd*e+e,eZd-e.e/e:e0d;e=eyrzrArBrrzszCrDr_o;h=hErFrYjZjGrHr0j1jIrJrKr2jLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8rtzuzvz3j4j5jwzxzyz6j7j8j9jzzAzBzCzDzEzFzGzHzIzJz!j#j$j%j'jKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0z1z2z3z4z5z6z7z9r!r#r$r%r'r(r)r(j)j*j+j,j-j.j/j:j*r+r,r;j=j?j-r.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjs8z9zkslsmsnsospsqsrs!z#z$z%z'z(z@j[j]j^j_j`j{j|j}j~jakbkckdkek`o{o)z*z+zsstsusvswsxsysfkgkzsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPs,z-z.z/z:z;z=z?z@zhkikjkQsRskklkmknkokpkqkrksktkukvkwkxkykzkSsTsUsVsWsXsAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQk|o}o[z]z^z_zRkSk%i`z{z|zEi~oFiap?hqgmd1d2dbp@hdhehfh[hgh]hTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8khhihjhkhlhYsZs}z~z:daAbA0s1s2s3s4s5scAdAeAfAgA?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffhAiAnd6sod7s9ki j k l m n 8s!k#k$k%k'kjA/ D rgsgtgugkAlAmAnAoAZbnbobpb9sc !spAqArAsA3d#spdqd(kg leme0b^hRcvg$s%s's(s)s*s+so qbrbsbtbubvbwbxbybzbAbBb,s-s.s/s:s;sgf=s?swg)k*ktA@s[s]s^s_s`s{sGixg|s}srdygcpdpep;d+k,k=d?d@d-k: ; = ? @ [ ] 1b~satbtctdt.k/k:k;ket=k?k4d#c5dsdtdud$cSc_bK `buA_hvAwATcxAyAhfft@kfp^ _ ` { | } ~ zcAc[k]kzA^k_kgt`kAABACADAEAFAGAHAIAJAKALAMANAOAPAQARA{kSATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!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}Ahtitjtktltmtntotptqtrtst~AaBbBcBdBeBfBgphpipgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBttutvtwtxt2b{bzg|b}b%c~bacbcytztzBAtBtCtDtEtFt|k}k~kalblcldlelflglhlilGtHtItJtKtLtMtNtOtPtQtRtmhnhohphqhrhshthuhvhwhxh'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcyhzhAhBhChDhEhFhGhHhIhJh`h{h|h}h~haibicidieifigineoepeqereseteuevewexeyeifjfkflfmfnfofpfqfrfsftfjlklllmlnlolplqlrlsltlulABBBCBDBEBFBGBHBIBJBKBLBjpkplpmpnpopppqprpsptpupvlwlxlylzlAlBlClDlElFlGlStTtUtVtWtXtYtZt0t1t2t3t4tMBNBOBPBQBRBSBTBUBVBWBXBvpwpxpypzpApBpCpDpEpFpGpHlIlJlKlLlMlNlOlPlQlRlSl5t6t7t8t9t!t#t$t%t't(t)tTlUlVlWl[dYBZBAgBgJeKe*t+tCgDgEgFgGgHgIg,tufvfL M 6dwfxfyf7dzfAfBfCf8dDfEf-t.t/t:t0B1B;t=tFfHphiii?t@tXlYl[t]tZl0l^t_t`t1l{t|t}t~taubucudueufuguhuiujukulumunuoupuqurusutu2B3B4B2l3l4l5B6B7B5l6l7l8l8B9B!B#B$B%B'B(B)B*B+B9l!l#l$l%l,B-B.B/B:B;B=B?B@B[B]B^B_B`B{B|B}B~BaCbCcCdCeCfCuuvuwuxuyuzuAuBu'l(l)l*l+l,l-l.l/lCuDuEu:l;l=lFuGuHuIuJuKuLuMuNuOuPuQuRuSuTuUuVuWuXuYuZu0u1u2u3u4u5ugChC6u7u8u9u!u#u$u%uiCjCkClCmCnC?l@l[l]l^l_l`l{l|l}l~lambmcmdmIpJpoCpCqC'u(u)u*u+u,u-uemfm.u/u:u;u=u?u@u[u]u^u_u`u{u|u}u~uavrCsCtCuCvCwCxCyCzCgmhmimbvcvjmkmlmmmnmompmqmrmsmtmumvmwmxmymdvevfvgvhvivzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmKpLpACBCCCDCQmRm'iECFCGCHiMpIiNpjiJgvd9d!dOpkiKhLhMhliNhmiSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mOhPhQhRhShjvkvHCIC]dJCKClvmvnvovpvqvLCMCNCOCPCGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfQCRCwdrvxdsv8mp q r s t u tv9m!m#m$m%mSCabE KgLgMgNgTCUCVCWCXC3bCbDbEbuvd a vvYCZC0C1C#dwvydzd'me AdBd7 niUcOgxvyvzvAvBvCvDvv FbGbHbIbJbKbLbMbNbObPbQbEvFvGvHvIvJvXfKvLvPg(m)m2CMvNvOvPvQvRvSvJizeTvUvCdQgPpQpRp?c*m+m@c[c]c,mR S T U V W X 4bVvWvXvYvZv-m.m/m:m0v;m=mVccc$dDdEdFddc.bRbN SbSpRgTpUp/bVpWpYf1v?mXpY Z 0 1 2 3 4 5b6b@m[m3C]m^m2v_m4C5C6C7C8C9C!C#C$C%C'C(C)C*C+C,C-C.C`m/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCD3v4v5v6v7v8v9v!v#v$v%v'vNcQ G DDYpEDFDGDHDIDZp0p1pJDKDLD2p3p4p5pMDNDODPDQDRDSDTDUDVDWDXD(v)v*v+v,v7becSgfcgc^chcicjc-v.vYD/v:v;v=v?v@v{m|m}m~manbncndnenfngnhn[v]v^v_v`v{v|v}v~vawbwcwLeMeNeOePeQeReSeTeUeVeWe_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bThUhVhWhXhYhZh0h1h2h3h4hTgUgVgWgXgYgZg0g1g2g3g4gGdHdIdJdKdLdMdNdOdPdQdRdZf0f1f2f3f4f5f6f7f8f9f!finjnknlnmnnnonpnqnrnsntn6p7p8p9p!p#p$p%p'p(p)p*pKiLiMiNiOiPiQiRiSiTiUiViunvnwnxnynznAnBnCnDnEnFndwewfwgwhwiwjwkwlwmwnwowpw+p,p-p.p/p:p;p=p?p@p[p]pWiXiYiZi0i1i2i3i4i5i6i7iGnHnInJnKnLnMnNnOnPnQnRnqwrwswtwuwvwwwxwywzwAwBwSnTnUnVn^dZD0D5g6g_d`dCwDwAeBeCeDeEeFeGeEw#f$fO P %d%f'f(f'd)f*f+f,f(d-f.fFwGwHwIw1D2DJwKw^p7g8gLwMwWnXnNwOwYnZnPwQwRw0nSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w3D4D5D1n2n3n6D7D8D4n5n6n7n9D!D#D$D%D'D(D)D*D+D,D8n9n!n#n$n-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgE)w*w+w,w-w.w/w:w%n'n(n)n*n+n,n-n.n;w=w?w/n:n;n@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxhEiErxsxtxuxvxwxxxyxjEkElEmEnEoEoipiqirisitiuiviwixiyiziAi=n?n8i_ppEqErEzxAxBxCxDxExFx@n[nGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWx`p{p|p}p~paqbqcqsE]n^n_nXxYx`n{n|n}n~naobocodoeofogohoiojokoZx0x1x2x3x4xlomonooopoqorosotouovowoxoyozoAoBo9i!idqeqtEuECoDo(ivEwExE#ifq$igqBi9gSd)d*dhqCiXeYeZe!g0e#gEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoTo5h6h7h8h9h5x6xyEzE{dAEBE7x8x9x!x#x$xCEDEEEFEGE/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgHEIETd%xUd'xUow x y z A B (xVoWoXoYoZoJE5 C $g%g'g(gKELEMENEOE-bTbUbVb)x
67 for arg in get_args(annotation): 2b )if h *i+iidfg+d,d-d.d/i:i;i=i?i@iH [i3okclc]i^i_i`i{i|i4o5o6o=b?b@b[b]b^b}i~iajbjcjdjejfjgjhjijjjZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc~daebecedeeefegeheiejeke3e4e5e6e7e8e9e!e#e$e%e'e7o8o9o!o#o$o%o'o(o)o*o+owjxjyjzjAjBjCjDjEjFjGjHj,o-o.o/o:o;o=o?o@o[o]o^oIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXj/dI J Yd*e+e,eZd-e.e/e:e0d;e=e_oYjZj0j1j2j3j4j5j6j7j8j9j!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~jakbkckdkek`o{ofkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQk|o}oRkSkqgmd1d2d:d?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefff9ki j k l m n !k#k$k%k'krgsgtgugc (kg o )k*krdyg;d=d?d@d.k/k:k;k=k?kK @kfpzcAc[k]k^k_k`k{kgphpip{b|b}b~bacbc|k}k~kalblcldlelflglhlil'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcneoepeqereseteuevewexeyeifjfkflfmfnfofpfqfrfsftfjpkplpmpnpopppqprpsptpupvlwlxlylzlAlBlClDlElFlGlvpwpxpypzpApBpCpDpEpFpGpHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWl[dL M 6dwfxfyf7dzfAfBfCf8dDfEfHpXlYlZl0l1l2l3l4l5l6l7l8l9l!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~lambmcmdmIpJpemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmKpLpQmRmJgvd9d!d]dGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWf8mp q r s t u 9m!m#m$m%mKgLgMgNgd a 'me v (m)mCdQg?c@c[c]c-m.m/m:m;m=mN ?mXp5b6b@m[m]m^m_m`mZp0p1pecfcgchcicjc{m|m}m~manbncndnenfngnhn_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bGdHdIdJdKdLdMdNdOdPdQdRdZf0f1f2f3f4f5f6f7f8f9f!fKiLiMiNiOiPiQiRiSiTiUiViunvnwnxnynznAnBnCnDnEnFnWiXiYiZi0i1i2i3i4i5i6i7iGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVn^dO P %d%f'f(f'd)f*f+f,f(d-f.f^pWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n/n:n;noipiqirisitiuiviwixiyiziAi=n?n8i_p@n[n]n^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBo9i!iCoDo9gSd)d*d{d/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgUow x y z A B VoWoXoYoZo$g%g'g(g
68 if field_annotation_is_sequence(arg): 2b )if h *i+iidfg+d,d-d.d/i:i;i=i?i@iH [i3okclc]i^i_i`i{i|i4o5o6o=b?b@b[b]b^b}i~iajbjcjdjejfjgjhjijjjZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc~daebecedeeefegeheiejeke3e4e5e6e7e8e9e!e#e$e%e'e7o8o9o!o#o$o%o'o(o)o*o+owjxjyjzjAjBjCjDjEjFjGjHj,o-o.o/o:o;o=o?o@o[o]o^oIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXj/dI J Yd*e+e,eZd-e.e/e:e0d;e=e_oYjZj0j1j2j3j4j5j6j7j8j9j!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~jakbkckdkek`o{ofkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQk|o}oRkSkqgmd1d2d:d?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefff9ki j k l m n !k#k$k%k'krgsgtgugc (kg o )k*krdyg;d=d?d@d.k/k:k;k=k?kK @kfpzcAc[k]k^k_k`k{kgphpip{b|b}b~bacbc|k}k~kalblcldlelflglhlil'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcneoepeqereseteuevewexeyeifjfkflfmfnfofpfqfrfsftfjpkplpmpnpopppqprpsptpupvlwlxlylzlAlBlClDlElFlGlvpwpxpypzpApBpCpDpEpFpGpHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWl[dL M 6dwfxfyf7dzfAfBfCf8dDfEfHpXlYlZl0l1l2l3l4l5l6l7l8l9l!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~lambmcmdmIpJpemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmKpLpQmRmJgvd9d!d]dGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWf8mp q r s t u 9m!m#m$m%mKgLgMgNgd a 'me v (m)mCdQg?c@c[c]c-m.m/m:m;m=mN ?mXp5b6b@m[m]m^m_m`mZp0p1pecfcgchcicjc{m|m}m~manbncndnenfngnhn_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bGdHdIdJdKdLdMdNdOdPdQdRdZf0f1f2f3f4f5f6f7f8f9f!fKiLiMiNiOiPiQiRiSiTiUiViunvnwnxnynznAnBnCnDnEnFnWiXiYiZi0i1i2i3i4i5i6i7iGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVn^dO P %d%f'f(f'd)f*f+f,f(d-f.f^pWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n/n:n;noipiqirisitiuiviwixiyiziAi=n?n8i_p@n[n]n^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBo9i!iCoDo9gSd)d*d{d/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgUow x y z A B VoWoXoYoZo$g%g'g(g
69 return True 2b f kclcncocpcqcrcsctcucvcwcxcyc~daebecedeeefegeheiejeke7o8o9o!o#o$o%o'o(o)o*o+o,o-o.o/o:o;o=o?o@o[o]o^o`o|o}oc g zcAcBcCcDcEcFcGcHcIcJcKcLcMcneoepeqereseteuevewexeyejpkplpmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpIpKpLpd a e 5b6b8b9b!b#b$b%b'b(b)b*b+b,bGdHdIdJdKdLdMdNdOdPdQdRdKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i!i
70 return False 2b )ih *i+iidfg+d,d-d.d/i:i;i=i?i@iH [i3o]i^i_i`i{i|i4o5o6o=b?b@b[b]b^b}i~iajbjcjdjejfjgjhjijjjZc0c1c2c3c4c5c6c7c8c9c!c3e4e5e6e7e8e9e!e#e$e%e'ewjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXj/dI J Yd*e+e,eZd-e.e/e:e0d;e=e_oYjZj0j1j2j3j4j5j6j7j8j9j!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~jakbkckdkek{ofkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkqgmd1d2d:d?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefff9ki j k l m n !k#k$k%k'krgsgtgugc (ko )k*krdyg;d=d?d@d.k/k:k;k=k?kK @kfp[k]k^k_k`k{kgphpip{b|b}b~bacbc|k}k~kalblcldlelflglhlil'c(c)c*c+c,c-c.c/c:c;c=cifjfkflfmfnfofpfqfrfsftfvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWl[dL M 6dwfxfyf7dzfAfBfCf8dDfEfHpXlYlZl0l1l2l3l4l5l6l7l8l9l!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~lambmcmdmJpemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmJgvd9d!d]dGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWf8mp q r s t u 9m!m#m$m%mKgLgMgNgd a 'mv (m)mCdQg?c@c[c]c-m.m/m:m;m=mN ?mXp@m[m]m^m_m`mZp0p1pecfcgchcicjc{m|m}m~manbncndnenfngnhn_c`c{c|c}c~cadbdcdddedfdZf0f1f2f3f4f5f6f7f8f9f!funvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVn^dO P %d%f'f(f'd)f*f+f,f(d-f.f^pWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n/n:n;noipiqirisitiuiviwixiyiziAi=n?n_p@n[n]n^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBoCoDo9gSd)d*d{d/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgUow x y z A B VoWoXoYoZo$g%g'g(g
71 return _annotation_is_sequence(annotation) or _annotation_is_sequence( 2b oq*x+x,x-xVdpqgdhd)if |d}dWb!hOccgqqrqsqtquqvqwqh bbcbdbebfbgbhbibjbkblbmbxqyqzqAqBqCq1eDqEqdg*i+i.xFqGqHqIqJqKqLqDiegMqNqidfg0o1o2o+d,i-i,d-d.d.i8 9 ! # $ % ' XbOqPqQqRqSq/i:i;i=iTq?i@iWdWcXdjdkdldXcPc:bH ;b/x#h:x;xQc=x?x2eUq[i3o( ) * + , - . kclc]i^i@x_i`iVq{i[x]x^x_x`x{x|x}x~xaybycydyeyfygyhyiy|ijykylymynyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHyIyJyKyLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0yWqXqYqZq0q1q2q3q4q5q6q7qmc6 F 1y2y3y4y5y6y7y4o5o6o8y9y!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y=y?y8q9q!q#q$qYb=bgg?b@bYc[b]b^b%q'q@y(q)q*q+q,q-q}i~iajbjcjdjejfjgjhjijjj.q/q:q;q=q?q@q[q]q^q_q`q)g*g+g,g-g.g/g:g;g=g?g@gZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc[g]g^g_g`g{g|g}g~gahbhch$h%h'h(h)h*h+h,h-h.h/h:h~daebecedeeefegeheiejeke3e4e5e6e7e8e9e!e#e$e%e'ekjljmjnjojpjqjrjsjtjujvj[y]y^y_y`y{y|y}y~yazbzcz7o8o9o!o#o$o%o'o(o)o*o+owjxjyjzjAjBjCjDjEjFjGjHj{q|q}q~qarbrcrdrerfrgrhrirdzezfzgzhzizjzkzlzmznzoz,o-o.o/o:o;o=o?o@o[o]o^oIjJjKjLjMjNjOjPjQjRjSjTjjrkrlrmrnrorprqrrrsrtrurUjVjWjXj/dpzqzhgigHeIevrwrjgkglgmgngogpgxr(e)eI J Yd*e+e,eZd-e.e/e:e0d;e=eyrzrArBrrzszCrDr_o;h=hErFrYjZjGrHr0j1jIrJrKr2jLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8rtzuzvz3j4j5jwzxzyz6j7j8j9jzzAzBzCzDzEzFzGzHzIzJz!j#j$j%j'jKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0z1z2z3z4z5z6z7z9r!r#r$r%r'r(r)r(j)j*j+j,j-j.j/j:j*r+r,r;j=j?j-r.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjs8z9zkslsmsnsospsqsrs!z#z$z%z'z(z@j[j]j^j_j`j{j|j}j~jakbkckdkek`o{o)z*z+zsstsusvswsxsysfkgkzsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPs,z-z.z/z:z;z=z?z@zhkikjkQsRskklkmknkokpkqkrksktkukvkwkxkykzkSsTsUsVsWsXsAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQk|o}o[z]z^z_zRkSk%i`z{z|zEi~oFiap?hqgmd1d2dbp@hdhehfh[hgh]hTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8khhihjhkhlhYsZs}z~z:daAbA0s1s2s3s4s5scAdAeAfAgA?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffhAiAnd6sod7s9ki j k l m n 8s!k#k$k%k'kjA/ D rgsgtgugkAlAmAnAoAZbnbobpb9sc !spAqArAsA3d#spdqd(kg leme0b^hRcvg$s%s's(s)s*s+so qbrbsbtbubvbwbxbybzbAbBb,s-s.s/s:s;sgf=s?swg)k*ktA@s[s]s^s_s`s{sGixg|s}srdygcpdpep;d+k,k=d?d@d-k: ; = ? @ [ ] 1b~satbtctdt.k/k:k;ket=k?k4d#c5dsdtdud$cSc_bK `buA_hvAwATcxAyAhfft@kfp^ _ ` { | } ~ zcAc[k]kzA^k_kgt`kAABACADAEAFAGAHAIAJAKALAMANAOAPAQARA{kSATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!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}Ahtitjtktltmtntotptqtrtst~AaBbBcBdBeBfBgphpipgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBttutvtwtxt2b{bzg|b}b%c~bacbcytztzBAtBtCtDtEtFt|k}k~kalblcldlelflglhlilGtHtItJtKtLtMtNtOtPtQtRtmhnhohphqhrhshthuhvhwhxh'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcyhzhAhBhChDhEhFhGhHhIhJh`h{h|h}h~haibicidieifigineoepeqereseteuevewexeyeifjfkflfmfnfofpfqfrfsftfjlklllmlnlolplqlrlsltlulABBBCBDBEBFBGBHBIBJBKBLBjpkplpmpnpopppqprpsptpupvlwlxlylzlAlBlClDlElFlGlStTtUtVtWtXtYtZt0t1t2t3t4tMBNBOBPBQBRBSBTBUBVBWBXBvpwpxpypzpApBpCpDpEpFpGpHlIlJlKlLlMlNlOlPlQlRlSl5t6t7t8t9t!t#t$t%t't(t)tTlUlVlWl[dYBZBAgBgJeKe*t+tCgDgEgFgGgHgIg,tufvfL M 6dwfxfyf7dzfAfBfCf8dDfEf-t.t/t:t0B1B;t=tFfHphiii?t@tXlYl[t]tZl0l^t_t`t1l{t|t}t~taubucudueufuguhuiujukulumunuoupuqurusutu2B3B4B2l3l4l5B6B7B5l6l7l8l8B9B!B#B$B%B'B(B)B*B+B9l!l#l$l%l,B-B.B/B:B;B=B?B@B[B]B^B_B`B{B|B}B~BaCbCcCdCeCfCuuvuwuxuyuzuAuBu'l(l)l*l+l,l-l.l/lCuDuEu:l;l=lFuGuHuIuJuKuLuMuNuOuPuQuRuSuTuUuVuWuXuYuZu0u1u2u3u4u5ugChC6u7u8u9u!u#u$u%uiCjCkClCmCnC?l@l[l]l^l_l`l{l|l}l~lambmcmdmIpJpoCpCqC'u(u)u*u+u,u-uemfm.u/u:u;u=u?u@u[u]u^u_u`u{u|u}u~uavrCsCtCuCvCwCxCyCzCgmhmimbvcvjmkmlmmmnmompmqmrmsmtmumvmwmxmymdvevfvgvhvivzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmKpLpACBCCCDCQmRm'iECFCGCHiMpIiNpjiJgvd9d!dOpkiKhLhMhliNhmiSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mOhPhQhRhShjvkvHCIC]dJCKClvmvnvovpvqvLCMCNCOCPCGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfQCRCwdrvxdsv8mp q r s t u tv9m!m#m$m%mSCabE KgLgMgNgTCUCVCWCXC3bCbDbEbuvd a vvYCZC0C1C#dwvydzd'me AdBd7 niUcOgxvyvzvAvBvCvDvv FbGbHbIbJbKbLbMbNbObPbQbEvFvGvHvIvJvXfKvLvPg(m)m2CMvNvOvPvQvRvSvJizeTvUvCdQgPpQpRp?c*m+m@c[c]c,mR S T U V W X 4bVvWvXvYvZv-m.m/m:m0v;m=mVccc$dDdEdFddc.bRbN SbSpRgTpUp/bVpWpYf1v?mXpY Z 0 1 2 3 4 5b6b@m[m3C]m^m2v_m4C5C6C7C8C9C!C#C$C%C'C(C)C*C+C,C-C.C`m/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCD3v4v5v6v7v8v9v!v#v$v%v'vNcQ G DDYpEDFDGDHDIDZp0p1pJDKDLD2p3p4p5pMDNDODPDQDRDSDTDUDVDWDXD(v)v*v+v,v7becSgfcgc^chcicjc-v.vYD/v:v;v=v?v@v{m|m}m~manbncndnenfngnhn[v]v^v_v`v{v|v}v~vawbwcwLeMeNeOePeQeReSeTeUeVeWe_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bThUhVhWhXhYhZh0h1h2h3h4hTgUgVgWgXgYgZg0g1g2g3g4gGdHdIdJdKdLdMdNdOdPdQdRdZf0f1f2f3f4f5f6f7f8f9f!finjnknlnmnnnonpnqnrnsntn6p7p8p9p!p#p$p%p'p(p)p*pKiLiMiNiOiPiQiRiSiTiUiViunvnwnxnynznAnBnCnDnEnFndwewfwgwhwiwjwkwlwmwnwowpw+p,p-p.p/p:p;p=p?p@p[p]pWiXiYiZi0i1i2i3i4i5i6i7iGnHnInJnKnLnMnNnOnPnQnRnqwrwswtwuwvwwwxwywzwAwBwSnTnUnVn^dZD0D5g6g_d`dCwDwAeBeCeDeEeFeGeEw#f$fO P %d%f'f(f'd)f*f+f,f(d-f.fFwGwHwIw1D2DJwKw^p7g8gLwMwWnXnNwOwYnZnPwQwRw0nSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w3D4D5D1n2n3n6D7D8D4n5n6n7n9D!D#D$D%D'D(D)D*D+D,D8n9n!n#n$n-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgE)w*w+w,w-w.w/w:w%n'n(n)n*n+n,n-n.n;w=w?w/n:n;n@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxhEiErxsxtxuxvxwxxxyxjEkElEmEnEoEoipiqirisitiuiviwixiyiziAi=n?n8i_ppEqErEzxAxBxCxDxExFx@n[nGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWx`p{p|p}p~paqbqcqsE]n^n_nXxYx`n{n|n}n~naobocodoeofogohoiojokoZx0x1x2x3x4xlomonooopoqorosotouovowoxoyozoAoBo9i!idqeqtEuECoDo(ivEwExE#ifq$igqBi9gSd)d*dhqCiXeYeZe!g0e#gEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoTo5h6h7h8h9h5x6xyEzE{dAEBE7x8x9x!x#x$xCEDEEEFEGE/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgHEIETd%xUd'xUow x y z A B (xVoWoXoYoZoJE5 C $g%g'g(gKELEMENEOE-bTbUbVb)x
72 get_origin(annotation)
73 )
76def value_is_sequence(value: Any) -> bool: 1bcda
77 return isinstance(value, sequence_types) and not isinstance(value, (str, bytes)) 2egQckclc)g*g+g,g-g.g/g:g;g=g?g@gncocpcqcrcsctcucvcwcxcycdhehfhghxgTczcAcmhnhohphqhrhshthuhvhwhxhBcCcDcEcFcGcHcIcJcKcLcMcKhLhMhNhze/b5b6bLeMeNeOePeQeReSeTeUeVeWe8b9b!b#b$b%b'b(b)b*b+b,bXeYeZe0e
80def _annotation_is_complex(annotation: type[Any] | None) -> bool: 1bcda
81 return ( 2b Vdgdhdf Wbh bbcbdbebfbgbhbibjbkblbmb8 9 ! # $ % ' XbWdWcXdjdkdldXcPc:bH ;b( ) * + , - . mc6 F YbYc[b]b^bI J ndodi j k l m n / D Zbnbobpbc 3dpdqdg 0bo qbrbsbtbubvbwbxbybzbAbBb: ; = ? @ [ ] 1b4d#c5dsdtdud$cSc_bK `b^ _ ` { | } ~ 2b%c~bacbcL M wdxdp q r s t u abE 3bCbDbEbd a #dydzde 7 v FbGbHbIbJbKbLbMbNbObPbQbR S T U V W X 4bVccc$dDdEdFddc.bRbN SbY Z 0 1 2 3 4 NcQ G 7b^chcicjcO P TdUdw x y z A B 5 C -bTbUbVb
82 lenient_issubclass(annotation, (BaseModel, Mapping, UploadFile))
83 or _annotation_is_sequence(annotation)
84 or is_dataclass(annotation)
85 )
88def field_annotation_is_complex(annotation: type[Any] | None) -> bool: 1bcda
89 origin = get_origin(annotation) 2b Vdgdhdf Wbh bbcbdbebfbgbhbibjbkblbmb8 9 ! # $ % ' XbWdWcXdjdkdldXcPc:bH ;b( ) * + , - . mc6 F YbYc[b]b^bI J ndodi j k l m n / D Zbnbobpbc 3dpdqdg 0bo qbrbsbtbubvbwbxbybzbAbBb: ; = ? @ [ ] 1b4d#c5dsdtdud$cSc_bK `b^ _ ` { | } ~ 2b%c~bacbcL M wdxdp q r s t u abE 3bCbDbEbd a #dydzde 7 v FbGbHbIbJbKbLbMbNbObPbQbR S T U V W X 4bVccc$dDdEdFddc.bRbN SbY Z 0 1 2 3 4 NcQ G 7b^chcicjcO P TdUdw x y z A B 5 C -bTbUbVb
90 if origin is Union or origin is UnionType: 2b Vdgdhdf Wbh bbcbdbebfbgbhbibjbkblbmb8 9 ! # $ % ' XbWdWcXdjdkdldXcPc:bH ;b( ) * + , - . mc6 F YbYc[b]b^bI J ndodi j k l m n / D Zbnbobpbc 3dpdqdg 0bo qbrbsbtbubvbwbxbybzbAbBb: ; = ? @ [ ] 1b4d#c5dsdtdud$cSc_bK `b^ _ ` { | } ~ 2b%c~bacbcL M wdxdp q r s t u abE 3bCbDbEbd a #dydzde 7 v FbGbHbIbJbKbLbMbNbObPbQbR S T U V W X 4bVccc$dDdEdFddc.bRbN SbY Z 0 1 2 3 4 NcQ G 7b^chcicjcO P TdUdw x y z A B 5 C -bTbUbVb
91 return any(field_annotation_is_complex(arg) for arg in get_args(annotation)) 2b f h H F Yc[b]b^bI J i j k l m n D c g o K %c~bacbcL M p q r s t u E d a e v N G ^chcicjcO P w x y z A B C
93 if origin is Annotated: 2b Vdgdhdf Wbh bbcbdbebfbgbhbibjbkblbmb8 9 ! # $ % ' XbWdWcXdjdkdldXcPc:bH ;b( ) * + , - . mc6 F YbYc[b]b^bI J ndodi j k l m n / D Zbnbobpbc 3dpdqdg 0bo qbrbsbtbubvbwbxbybzbAbBb: ; = ? @ [ ] 1b4d#c5dsdtdud$cSc_bK `b^ _ ` { | } ~ 2b%c~bacbcL M wdxdp q r s t u abE 3bCbDbEbd a #dydzde 7 v FbGbHbIbJbKbLbMbNbObPbQbR S T U V W X 4bVccc$dDdEdFddc.bRbN SbY Z 0 1 2 3 4 NcQ G 7b^chcicjcO P TdUdw x y z A B 5 C -bTbUbVb
94 return field_annotation_is_complex(get_args(annotation)[0]) 1bDcEdaC
96 return ( 2b Vdgdhdf Wbh bbcbdbebfbgbhbibjbkblbmb8 9 ! # $ % ' XbWdWcXdjdkdldXcPc:bH ;b( ) * + , - . mc6 F YbYc[b]b^bI J ndodi j k l m n / D Zbnbobpbc 3dpdqdg 0bo qbrbsbtbubvbwbxbybzbAbBb: ; = ? @ [ ] 1b4d#c5dsdtdud$cSc_bK `b^ _ ` { | } ~ 2b%c~bacbcL M wdxdp q r s t u abE 3bCbDbEbd a #dydzde 7 v FbGbHbIbJbKbLbMbNbObPbQbR S T U V W X 4bVccc$dDdEdFddc.bRbN SbY Z 0 1 2 3 4 NcQ G 7b^chcicjcO P TdUdw x y z A B 5 C -bTbUbVb
97 _annotation_is_complex(annotation)
98 or _annotation_is_complex(origin)
99 or hasattr(origin, "__pydantic_core_schema__")
100 or hasattr(origin, "__get_pydantic_core_schema__")
101 )
104def field_annotation_is_scalar(annotation: Any) -> bool: 1bcda
105 # handle Ellipsis here to make tuple[int, ...] work nicely
106 return annotation is Ellipsis or not field_annotation_is_complex(annotation) 2b Vdgdhdf Wbh bbcbdbebfbgbhbibjbkblbmb8 9 ! # $ % ' XbWdWcXdjdkdldXcPc:bH ;b( ) * + , - . mc6 F YbYc[b]b^bI J ndodi j k l m n / D Zbnbobpbc 3dpdqdg 0bo qbrbsbtbubvbwbxbybzbAbBb: ; = ? @ [ ] 1b4d#c5dsdtdud$cSc_bK `b^ _ ` { | } ~ 2b%c~bacbcL M wdxdp q r s t u abE 3bCbDbEbd a #dydzde 7 v FbGbHbIbJbKbLbMbNbObPbQbR S T U V W X 4bVccc$dDdEdFddc.bRbN SbY Z 0 1 2 3 4 NcQ G 7b^chcicjcO P TdUdw x y z A B 5 C -bTbUbVb
109def field_annotation_is_scalar_sequence(annotation: type[Any] | None) -> bool: 1bcda
110 origin = get_origin(annotation) 2b Pc:bH ;bc Sc_bK `bd a .bRbN Sb
111 if origin is Union or origin is UnionType: 2b Pc:bH ;bc Sc_bK `bd a .bRbN Sb
112 at_least_one_scalar_sequence = False 1bHcKdaN
113 for arg in get_args(annotation): 1bHcKdaN
114 if field_annotation_is_scalar_sequence(arg): 1bHcKdaN
115 at_least_one_scalar_sequence = True 1bcda
116 continue 1bcda
117 elif not field_annotation_is_scalar(arg): 1bHcKdaN
118 return False 1HKN
119 return at_least_one_scalar_sequence 1bcda
120 return field_annotation_is_sequence(annotation) and all( 2b Pc:bH ;bc Sc_bK `bd a .bRbN Sb
121 field_annotation_is_scalar(sub_annotation)
122 for sub_annotation in get_args(annotation)
123 )
126def is_bytes_or_nonable_bytes_annotation(annotation: Any) -> bool: 1bcda
127 if lenient_issubclass(annotation, bytes): 2|d!hOcDiegid+d,d-d.d#hQckclc)g*g+g,g-g.g/g:g;g=g?g@gZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc[g]g^g_g`g{g|g}g~gahbhch$h%h'h(h)h*h+h,h-h.h/h:h~daebecedeeefegeheiejeke;h=hEi~oFiap?hqgmd1d2dbp@hdhehfh[hgh]hhhihjhkhlhle^hRcGixgrd;d=d?d@d_hTczcAcmhnhohphqhrhshthuhvhwhxh'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcyhzhAhBhChDhEhFhGhHhIhJh`h{h|h}h~haibicidieifigineoepeqereseteuevewexeyehiiiHiMpIiNpjiJgvd9d!dOpkiKhLhMhliNhmiOhPhQhRhShAdniUcJizeCd?c@c[c]cRg/b5b6bLeMeNeOePeQeReSeTeUeVeWe_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bThUhVhWhXhYhZh0h1h2h3h4hTgUgVgWgXgYgZg0g1g2g3g4gGdHdIdJdKdLdMdNdOdPdQdRd7g8g#ifq$igqBi9gSd)d*dhqCiXeYeZe!g0e#g5h6h7h8h9h
128 return True 2|dDiegQckclc)g*g+g,g-g.g/g:g;g=g?g@gncocpcqcrcsctcucvcwcxcyc[g]g^g_g`g{g|g}g~gahbhchEi~oFiapbpdhehfhghhhihjhkhlhleGixgTczcAcmhnhohphqhrhshthuhvhwhxhBcCcDcEcFcGcHcIcJcKcLcMcyhzhAhBhChDhEhFhGhHhIhJhHiMpIiNpOpKhLhMhNhOhPhQhRhShAdJize/b5b6bLeMeNeOePeQeReSeTeUeVeWe8b9b!b#b$b%b'b(b)b*b+b,bThUhVhWhXhYhZh0h1h2h3h4h#ifq$igqhqXeYeZe0e5h6h7h8h9h
129 origin = get_origin(annotation) 2|d!hOcegid+d,d-d.d#hQckclc)g*g+g,g-g.g/g:g;g=g?g@gZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc[g]g^g_g`g{g|g}g~gahbhch$h%h'h(h)h*h+h,h-h.h/h:h~daebecedeeefegeheiejeke;h=h?hqgmd1d2d@hdhehfh[hgh]hhhihjhkhlhle^hRcxgrd;d=d?d@d_hTczcAcmhnhohphqhrhshthuhvhwhxh'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcyhzhAhBhChDhEhFhGhHhIhJh`h{h|h}h~haibicidieifigineoepeqereseteuevewexeyehiiijiJgvd9d!dkiKhLhMhliNhmiOhPhQhRhShAdniUczeCd?c@c[c]cRg/b5b6bLeMeNeOePeQeReSeTeUeVeWe_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bThUhVhWhXhYhZh0h1h2h3h4hTgUgVgWgXgYgZg0g1g2g3g4gGdHdIdJdKdLdMdNdOdPdQdRd7g8gBi9gSd)d*dCiXeYeZe!g0e#g5h6h7h8h9h
130 if origin is Union or origin is UnionType: 2|d!hOcegid+d,d-d.d#hQckclc)g*g+g,g-g.g/g:g;g=g?g@gZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc[g]g^g_g`g{g|g}g~gahbhch$h%h'h(h)h*h+h,h-h.h/h:h~daebecedeeefegeheiejeke;h=h?hqgmd1d2d@hdhehfh[hgh]hhhihjhkhlhle^hRcxgrd;d=d?d@d_hTczcAcmhnhohphqhrhshthuhvhwhxh'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcyhzhAhBhChDhEhFhGhHhIhJh`h{h|h}h~haibicidieifigineoepeqereseteuevewexeyehiiijiJgvd9d!dkiKhLhMhliNhmiOhPhQhRhShAdniUczeCd?c@c[c]cRg/b5b6bLeMeNeOePeQeReSeTeUeVeWe_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bThUhVhWhXhYhZh0h1h2h3h4hTgUgVgWgXgYgZg0g1g2g3g4gGdHdIdJdKdLdMdNdOdPdQdRd7g8gBi9gSd)d*dCiXeYeZe!g0e#g5h6h7h8h9h
131 for arg in get_args(annotation): 2idkclcZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcycqgmd1d2drdzcAc'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcJgvd9d!dCd5b6b_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,b9gSd)d*d
132 if lenient_issubclass(arg, bytes): 2idkclcZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcycqgmd1d2drdzcAc'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcJgvd9d!dCd5b6b_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,b9gSd)d*d
133 return True 2idZc0c1c2c3c4c5c6c7c8c9c!cqgmdrd'c(c)c*c+c,c-c.c/c:c;c=cJgvdCd_c`c{c|c}c~cadbdcdddedfd9gSd
134 return False 2|d!hOceg+d,d-d.d#hQckclc)g*g+g,g-g.g/g:g;g=g?g@gZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc[g]g^g_g`g{g|g}g~gahbhch$h%h'h(h)h*h+h,h-h.h/h:h~daebecedeeefegeheiejeke;h=h?h1d2d@hdhehfh[hgh]hhhihjhkhlhle^hRcxg;d=d?d@d_hTczcAcmhnhohphqhrhshthuhvhwhxh'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcyhzhAhBhChDhEhFhGhHhIhJh`h{h|h}h~haibicidieifigineoepeqereseteuevewexeyehiiiji9d!dkiKhLhMhliNhmiOhPhQhRhShAdniUcze?c@c[c]cRg/b5b6bLeMeNeOePeQeReSeTeUeVeWe_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bThUhVhWhXhYhZh0h1h2h3h4hTgUgVgWgXgYgZg0g1g2g3g4gGdHdIdJdKdLdMdNdOdPdQdRd7g8gBi)d*dCiXeYeZe!g0e#g5h6h7h8h9h
137def is_uploadfile_or_nonable_uploadfile_annotation(annotation: Any) -> bool: 1bcda
138 if lenient_issubclass(annotation, UploadFile): 2b f }dWbOch bbcbdbebfbgbhbibjbkblbmb8 9 ! # $ % ' Xb( ) * + , - . mc6 F YbI J i j k l m n / D Zbnbobpbc g me0bRco qbrbsbtbubvbwbxbybzbAbBb: ; = ? @ [ ] 1b^ _ ` { | } ~ 2bL M p q r s t u abE 3bCbDbEbd a e Bd7 Ucv FbGbHbIbJbKbLbMbNbObPbQbR S T U V W X 4bY Z 0 1 2 3 4 NcQ G 7bO P w x y z A B 5 C -bTbUbVb
139 return True 2b }dOcc meRca BdUc
140 origin = get_origin(annotation) 2b f }dWbh bbcbdbebfbgbhbibjbkblbmb8 9 ! # $ % ' Xb( ) * + , - . mc6 F YbI J i j k l m n / D Zbnbobpbc g me0bo qbrbsbtbubvbwbxbybzbAbBb: ; = ? @ [ ] 1b^ _ ` { | } ~ 2bL M p q r s t u abE 3bCbDbEbd a e Bd7 v FbGbHbIbJbKbLbMbNbObPbQbR S T U V W X 4bY Z 0 1 2 3 4 NcQ G 7bO P w x y z A B 5 C -bTbUbVb
141 if origin is Union or origin is UnionType: 2b f }dWbh bbcbdbebfbgbhbibjbkblbmb8 9 ! # $ % ' Xb( ) * + , - . mc6 F YbI J i j k l m n / D Zbnbobpbc g me0bo qbrbsbtbubvbwbxbybzbAbBb: ; = ? @ [ ] 1b^ _ ` { | } ~ 2bL M p q r s t u abE 3bCbDbEbd a e Bd7 v FbGbHbIbJbKbLbMbNbObPbQbR S T U V W X 4bY Z 0 1 2 3 4 NcQ G 7bO P w x y z A B 5 C -bTbUbVb
142 for arg in get_args(annotation): 1bfhFijklmnDcgopqrstuEdaevGwxyzABC
143 if lenient_issubclass(arg, UploadFile): 1bfhFijklmnDcgopqrstuEdaevGwxyzABC
144 return True 1bca
145 return False 2b f }dWbh bbcbdbebfbgbhbibjbkblbmb8 9 ! # $ % ' Xb( ) * + , - . mc6 F YbI J i j k l m n / D Zbnbobpbc g me0bo qbrbsbtbubvbwbxbybzbAbBb: ; = ? @ [ ] 1b^ _ ` { | } ~ 2bL M p q r s t u abE 3bCbDbEbd a e Bd7 v FbGbHbIbJbKbLbMbNbObPbQbR S T U V W X 4bY Z 0 1 2 3 4 NcQ G 7bO P w x y z A B 5 C -bTbUbVb
148def is_bytes_sequence_annotation(annotation: Any) -> bool: 1bcda
149 origin = get_origin(annotation) 2|d!hOcDiegidfg0o1o2o+d,i-i,d-d.d.i#hQckclc=b?b@b)g*g+g,g-g.g/g:g;g=g?g@gZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc[g]g^g_g`g{g|g}g~gahbhch$h%h'h(h)h*h+h,h-h.h/h:h~daebecedeeefegeheiejeke3e4e5e6e7e8e9e!e#e$e%e'ekjljmjnjojpjqjrjsjtjujvjYd*e+e,eZd-e.e/e:e0d;e=e;h=hEiFi?hmd1d2d@hdhehfh[hgh]hTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8khhihjhkhlh?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffrgsgtgugle^hRcGixgrdygcpdpep;d+k,k=d?d@d-k_hTczcAc{b|b}bmhnhohphqhrhshthuhvhwhxh'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcyhzhAhBhChDhEhFhGhHhIhJh`h{h|h}h~haibicidieifigineoepeqereseteuevewexeyeifjfkflfmfnfofpfqfrfsftfjlklllmlnlolplqlrlsltlul6dwfxfyf7dzfAfBfCf8dDfEfhiiiHiIijivd9d!dkiKhLhMhliNhmiSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mOhPhQhRhShGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfKgLgMgNgAdniUcJizeCdQgPpQpRp?c*m+m@c[c]c,mRg/b5b6becfcgcLeMeNeOePeQeReSeTeUeVeWe_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bThUhVhWhXhYhZh0h1h2h3h4hTgUgVgWgXgYgZg0g1g2g3g4gGdHdIdJdKdLdMdNdOdPdQdRdZf0f1f2f3f4f5f6f7f8f9f!finjnknlnmnnnonpnqnrnsntn%d%f'f(f'd)f*f+f,f(d-f.f7g8g#i$iBiSd)d*dCiXeYeZe!g0e#gEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoTo5h6h7h8h9h/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbg$g%g'g(g
150 if origin is Union or origin is UnionType: 2|d!hOcDiegidfg0o1o2o+d,i-i,d-d.d.i#hQckclc=b?b@b)g*g+g,g-g.g/g:g;g=g?g@gZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc[g]g^g_g`g{g|g}g~gahbhch$h%h'h(h)h*h+h,h-h.h/h:h~daebecedeeefegeheiejeke3e4e5e6e7e8e9e!e#e$e%e'ekjljmjnjojpjqjrjsjtjujvjYd*e+e,eZd-e.e/e:e0d;e=e;h=hEiFi?hmd1d2d@hdhehfh[hgh]hTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8khhihjhkhlh?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffrgsgtgugle^hRcGixgrdygcpdpep;d+k,k=d?d@d-k_hTczcAc{b|b}bmhnhohphqhrhshthuhvhwhxh'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcyhzhAhBhChDhEhFhGhHhIhJh`h{h|h}h~haibicidieifigineoepeqereseteuevewexeyeifjfkflfmfnfofpfqfrfsftfjlklllmlnlolplqlrlsltlul6dwfxfyf7dzfAfBfCf8dDfEfhiiiHiIijivd9d!dkiKhLhMhliNhmiSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mOhPhQhRhShGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfKgLgMgNgAdniUcJizeCdQgPpQpRp?c*m+m@c[c]c,mRg/b5b6becfcgcLeMeNeOePeQeReSeTeUeVeWe_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bThUhVhWhXhYhZh0h1h2h3h4hTgUgVgWgXgYgZg0g1g2g3g4gGdHdIdJdKdLdMdNdOdPdQdRdZf0f1f2f3f4f5f6f7f8f9f!finjnknlnmnnnonpnqnrnsntn%d%f'f(f'd)f*f+f,f(d-f.f7g8g#i$iBiSd)d*dCiXeYeZe!g0e#gEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoTo5h6h7h8h9h/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbg$g%g'g(g
151 at_least_one = False 2|didfg+d,d-d.dkclc=b?b@bZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc~daebecedeeefegeheiejeke3e4e5e6e7e8e9e!e#e$e%e'eYd*e+e,eZd-e.e/e:e0d;e=emd1d2d?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffrgsgtguglerdyg;d=d?d@dzcAc{b|b}b'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcneoepeqereseteuevewexeyeifjfkflfmfnfofpfqfrfsftf6dwfxfyf7dzfAfBfCf8dDfEfvd9d!dGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfKgLgMgNgAdCdQg?c@c[c]c5b6becfcgc_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bGdHdIdJdKdLdMdNdOdPdQdRdZf0f1f2f3f4f5f6f7f8f9f!f%d%f'f(f'd)f*f+f,f(d-f.fSd)d*d/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbg$g%g'g(g
152 for arg in get_args(annotation): 2|didfg+d,d-d.dkclc=b?b@bZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc~daebecedeeefegeheiejeke3e4e5e6e7e8e9e!e#e$e%e'eYd*e+e,eZd-e.e/e:e0d;e=emd1d2d?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffrgsgtguglerdyg;d=d?d@dzcAc{b|b}b'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcneoepeqereseteuevewexeyeifjfkflfmfnfofpfqfrfsftf6dwfxfyf7dzfAfBfCf8dDfEfvd9d!dGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfKgLgMgNgAdCdQg?c@c[c]c5b6becfcgc_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bGdHdIdJdKdLdMdNdOdPdQdRdZf0f1f2f3f4f5f6f7f8f9f!f%d%f'f(f'd)f*f+f,f(d-f.fSd)d*d/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbg$g%g'g(g
153 if is_bytes_sequence_annotation(arg): 2|didfg+d,d-d.dkclc=b?b@bZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc~daebecedeeefegeheiejeke3e4e5e6e7e8e9e!e#e$e%e'eYd*e+e,eZd-e.e/e:e0d;e=emd1d2d?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffrgsgtguglerdyg;d=d?d@dzcAc{b|b}b'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcneoepeqereseteuevewexeyeifjfkflfmfnfofpfqfrfsftf6dwfxfyf7dzfAfBfCf8dDfEfvd9d!dGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfKgLgMgNgAdCdQg?c@c[c]c5b6becfcgc_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bGdHdIdJdKdLdMdNdOdPdQdRdZf0f1f2f3f4f5f6f7f8f9f!f%d%f'f(f'd)f*f+f,f(d-f.fSd)d*d/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbg$g%g'g(g
154 at_least_one = True 2|dkclcncocpcqcrcsctcucvcwcxcyclezcAcBcCcDcEcFcGcHcIcJcKcLcMcAd5b6b8b9b!b#b$b%b'b(b)b*b+b,b
155 continue 2|dkclcncocpcqcrcsctcucvcwcxcyclezcAcBcCcDcEcFcGcHcIcJcKcLcMcAd5b6b8b9b!b#b$b%b'b(b)b*b+b,b
156 return at_least_one 2|didfg+d,d-d.dkclc=b?b@bZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc~daebecedeeefegeheiejeke3e4e5e6e7e8e9e!e#e$e%e'eYd*e+e,eZd-e.e/e:e0d;e=emd1d2d?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffrgsgtguglerdyg;d=d?d@dzcAc{b|b}b'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcneoepeqereseteuevewexeyeifjfkflfmfnfofpfqfrfsftf6dwfxfyf7dzfAfBfCf8dDfEfvd9d!dGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfKgLgMgNgAdCdQg?c@c[c]c5b6becfcgc_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bGdHdIdJdKdLdMdNdOdPdQdRdZf0f1f2f3f4f5f6f7f8f9f!f%d%f'f(f'd)f*f+f,f(d-f.fSd)d*d/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbg$g%g'g(g
157 return field_annotation_is_sequence(annotation) and all( 2|d!hOcDiegidfg0o1o2o+d,i-i,d-d.d.i#hQckclc=b?b@b)g*g+g,g-g.g/g:g;g=g?g@gZc0c1c2c3c4c5c6c7c8c9c!cncocpcqcrcsctcucvcwcxcyc[g]g^g_g`g{g|g}g~gahbhch$h%h'h(h)h*h+h,h-h.h/h:h~daebecedeeefegeheiejeke3e4e5e6e7e8e9e!e#e$e%e'ekjljmjnjojpjqjrjsjtjujvjYd*e+e,eZd-e.e/e:e0d;e=e;h=hEiFi?hmd1d2d@hdhehfh[hgh]hTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8khhihjhkhlh?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffrgsgtgugle^hRcGixgrdygcpdpep;d+k,k=d?d@d-k_hTczcAc{b|b}bmhnhohphqhrhshthuhvhwhxh'c(c)c*c+c,c-c.c/c:c;c=cBcCcDcEcFcGcHcIcJcKcLcMcyhzhAhBhChDhEhFhGhHhIhJh`h{h|h}h~haibicidieifigineoepeqereseteuevewexeyeifjfkflfmfnfofpfqfrfsftfjlklllmlnlolplqlrlsltlul6dwfxfyf7dzfAfBfCf8dDfEfhiiiHiIijivd9d!dkiKhLhMhliNhmiSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mOhPhQhRhShGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfKgLgMgNgAdniUcJizeCdQgPpQpRp?c*m+m@c[c]c,mRg/b5b6becfcgcLeMeNeOePeQeReSeTeUeVeWe_c`c{c|c}c~cadbdcdddedfd8b9b!b#b$b%b'b(b)b*b+b,bThUhVhWhXhYhZh0h1h2h3h4hTgUgVgWgXgYgZg0g1g2g3g4gGdHdIdJdKdLdMdNdOdPdQdRdZf0f1f2f3f4f5f6f7f8f9f!finjnknlnmnnnonpnqnrnsntn%d%f'f(f'd)f*f+f,f(d-f.f7g8g#i$iBiSd)d*dCiXeYeZe!g0e#gEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoTo5h6h7h8h9h/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbg$g%g'g(g
158 is_bytes_or_nonable_bytes_annotation(sub_annotation)
159 for sub_annotation in get_args(annotation)
160 )
163def is_uploadfile_sequence_annotation(annotation: Any) -> bool: 1bcda
164 origin = get_origin(annotation) 2b f }dWbh bbcbdbebfbgbhbibjbkblbmb8 9 ! # $ % ' Xb( ) * + , - . mc6 F YbI J i j k l m n / D Zbnbobpbc g me0bo qbrbsbtbubvbwbxbybzbAbBb: ; = ? @ [ ] 1b^ _ ` { | } ~ 2bL M p q r s t u abE 3bCbDbEbd a e Bd7 v FbGbHbIbJbKbLbMbNbObPbQbR S T U V W X 4bY Z 0 1 2 3 4 NcQ G 7bO P w x y z A B 5 C -bTbUbVb
165 if origin is Union or origin is UnionType: 2b f }dWbh bbcbdbebfbgbhbibjbkblbmb8 9 ! # $ % ' Xb( ) * + , - . mc6 F YbI J i j k l m n / D Zbnbobpbc g me0bo qbrbsbtbubvbwbxbybzbAbBb: ; = ? @ [ ] 1b^ _ ` { | } ~ 2bL M p q r s t u abE 3bCbDbEbd a e Bd7 v FbGbHbIbJbKbLbMbNbObPbQbR S T U V W X 4bY Z 0 1 2 3 4 NcQ G 7bO P w x y z A B 5 C -bTbUbVb
166 at_least_one = False 2b f }dh F i j k l m n D c g meo p q r s t u E d a e Bdv G w x y z A B C
167 for arg in get_args(annotation): 2b f }dh F i j k l m n D c g meo p q r s t u E d a e Bdv G w x y z A B C
168 if is_uploadfile_sequence_annotation(arg): 2b f }dh F i j k l m n D c g meo p q r s t u E d a e Bdv G w x y z A B C
169 at_least_one = True 2}dmeBd
170 continue 2}dmeBd
171 return at_least_one 2b f }dh F i j k l m n D c g meo p q r s t u E d a e Bdv G w x y z A B C
172 return field_annotation_is_sequence(annotation) and all( 2b f }dWbh bbcbdbebfbgbhbibjbkblbmb8 9 ! # $ % ' Xb( ) * + , - . mc6 F YbI J i j k l m n / D Zbnbobpbc g me0bo qbrbsbtbubvbwbxbybzbAbBb: ; = ? @ [ ] 1b^ _ ` { | } ~ 2bL M p q r s t u abE 3bCbDbEbd a e Bd7 v FbGbHbIbJbKbLbMbNbObPbQbR S T U V W X 4bY Z 0 1 2 3 4 NcQ G 7bO P w x y z A B 5 C -bTbUbVb
173 is_uploadfile_or_nonable_uploadfile_annotation(sub_annotation)
174 for sub_annotation in get_args(annotation)
175 )
178def is_pydantic_v1_model_instance(obj: Any) -> bool: 1bcda
179 # TODO: remove this function once the required version of Pydantic fully
180 # removes pydantic.v1
181 try: 2PEQERESEYdZd0d%iTEUEVEWE6d7d8d'iXEYEZE0E%d'd(d(i
182 with warnings.catch_warnings(): 2PEQERESEYdZd0d%iTEUEVEWE6d7d8d'iXEYEZE0E%d'd(d(i
183 warnings.simplefilter("ignore", UserWarning) 2PEQERESEYdZd0d%iTEUEVEWE6d7d8d'iXEYEZE0E%d'd(d(i
184 from pydantic import v1 2PEQERESEYdZd0d%iTEUEVEWE6d7d8d'iXEYEZE0E%d'd(d(i
185 except ImportError: # pragma: no cover
186 return False
187 return isinstance(obj, v1.BaseModel) 2PEQERESEYdZd0d%iTEUEVEWE6d7d8d'iXEYEZE0E%d'd(d(i
190def is_pydantic_v1_model_class(cls: Any) -> bool: 1bcda
191 # TODO: remove this function once the required version of Pydantic fully
192 # removes pydantic.v1
193 try: 2b Vdgdhdf WbOccgh bbcbdbebfbgbhbibjbkblbmb1edg8 9 ! # $ % ' XbWdWcXdjdkdldXcPc:bH ;bQc2e( ) * + , - . iqmcjqkq6 F Yb=bgg?b@bYc[b]b^b/dhgigHeIejgkglgmgngogpg(e)eI J :dndodi j k l m n / D Zbnbobpbc 3dpdqdg 0bRcvgo qbrbsbtbubvbwbxbybzbAbBbgfwg: ; = ? @ [ ] 1b4d#c5dsdtdud$cSc_bK `bTchf^ _ ` { | } ~ 2b{bzg|b}b%c~bacbc[dAgBgJeKeCgDgEgFgGgHgIgufvfL M Ff]dwdxdp q r s t u abE 3bCbDbEbd a #dydzde 7 UcOgv FbGbHbIbJbKbLbMbNbObPbQbXfPgR S T U V W X 4bVccc$dDdEdFddc.bRbN Sb/bYfY Z 0 1 2 3 4 lqNcmqnqQ G 7becSgfcgc^chcicjc^d5g6g_d`dAeBeCeDeEeFeGe#f$fO P {dTdUdw x y z A B 5 C -bTbUbVb
194 with warnings.catch_warnings(): 2b Vdgdhdf WbOccgh bbcbdbebfbgbhbibjbkblbmb1edg8 9 ! # $ % ' XbWdWcXdjdkdldXcPc:bH ;bQc2e( ) * + , - . iqmcjqkq6 F Yb=bgg?b@bYc[b]b^b/dhgigHeIejgkglgmgngogpg(e)eI J :dndodi j k l m n / D Zbnbobpbc 3dpdqdg 0bRcvgo qbrbsbtbubvbwbxbybzbAbBbgfwg: ; = ? @ [ ] 1b4d#c5dsdtdud$cSc_bK `bTchf^ _ ` { | } ~ 2b{bzg|b}b%c~bacbc[dAgBgJeKeCgDgEgFgGgHgIgufvfL M Ff]dwdxdp q r s t u abE 3bCbDbEbd a #dydzde 7 UcOgv FbGbHbIbJbKbLbMbNbObPbQbXfPgR S T U V W X 4bVccc$dDdEdFddc.bRbN Sb/bYfY Z 0 1 2 3 4 lqNcmqnqQ G 7becSgfcgc^chcicjc^d5g6g_d`dAeBeCeDeEeFeGe#f$fO P {dTdUdw x y z A B 5 C -bTbUbVb
195 warnings.simplefilter("ignore", UserWarning) 2b Vdgdhdf WbOccgh bbcbdbebfbgbhbibjbkblbmb1edg8 9 ! # $ % ' XbWdWcXdjdkdldXcPc:bH ;bQc2e( ) * + , - . iqmcjqkq6 F Yb=bgg?b@bYc[b]b^b/dhgigHeIejgkglgmgngogpg(e)eI J :dndodi j k l m n / D Zbnbobpbc 3dpdqdg 0bRcvgo qbrbsbtbubvbwbxbybzbAbBbgfwg: ; = ? @ [ ] 1b4d#c5dsdtdud$cSc_bK `bTchf^ _ ` { | } ~ 2b{bzg|b}b%c~bacbc[dAgBgJeKeCgDgEgFgGgHgIgufvfL M Ff]dwdxdp q r s t u abE 3bCbDbEbd a #dydzde 7 UcOgv FbGbHbIbJbKbLbMbNbObPbQbXfPgR S T U V W X 4bVccc$dDdEdFddc.bRbN Sb/bYfY Z 0 1 2 3 4 lqNcmqnqQ G 7becSgfcgc^chcicjc^d5g6g_d`dAeBeCeDeEeFeGe#f$fO P {dTdUdw x y z A B 5 C -bTbUbVb
196 from pydantic import v1 2b Vdgdhdf WbOccgh bbcbdbebfbgbhbibjbkblbmb1edg8 9 ! # $ % ' XbWdWcXdjdkdldXcPc:bH ;bQc2e( ) * + , - . iqmcjqkq6 F Yb=bgg?b@bYc[b]b^b/dhgigHeIejgkglgmgngogpg(e)eI J :dndodi j k l m n / D Zbnbobpbc 3dpdqdg 0bRcvgo qbrbsbtbubvbwbxbybzbAbBbgfwg: ; = ? @ [ ] 1b4d#c5dsdtdud$cSc_bK `bTchf^ _ ` { | } ~ 2b{bzg|b}b%c~bacbc[dAgBgJeKeCgDgEgFgGgHgIgufvfL M Ff]dwdxdp q r s t u abE 3bCbDbEbd a #dydzde 7 UcOgv FbGbHbIbJbKbLbMbNbObPbQbXfPgR S T U V W X 4bVccc$dDdEdFddc.bRbN Sb/bYfY Z 0 1 2 3 4 lqNcmqnqQ G 7becSgfcgc^chcicjc^d5g6g_d`dAeBeCeDeEeFeGe#f$fO P {dTdUdw x y z A B 5 C -bTbUbVb
197 except ImportError: # pragma: no cover
198 return False
199 return lenient_issubclass(cls, v1.BaseModel) 2b Vdgdhdf WbOccgh bbcbdbebfbgbhbibjbkblbmb1edg8 9 ! # $ % ' XbWdWcXdjdkdldXcPc:bH ;bQc2e( ) * + , - . iqmcjqkq6 F Yb=bgg?b@bYc[b]b^b/dhgigHeIejgkglgmgngogpg(e)eI J :dndodi j k l m n / D Zbnbobpbc 3dpdqdg 0bRcvgo qbrbsbtbubvbwbxbybzbAbBbgfwg: ; = ? @ [ ] 1b4d#c5dsdtdud$cSc_bK `bTchf^ _ ` { | } ~ 2b{bzg|b}b%c~bacbc[dAgBgJeKeCgDgEgFgGgHgIgufvfL M Ff]dwdxdp q r s t u abE 3bCbDbEbd a #dydzde 7 UcOgv FbGbHbIbJbKbLbMbNbObPbQbXfPgR S T U V W X 4bVccc$dDdEdFddc.bRbN Sb/bYfY Z 0 1 2 3 4 lqNcmqnqQ G 7becSgfcgc^chcicjc^d5g6g_d`dAeBeCeDeEeFeGe#f$fO P {dTdUdw x y z A B 5 C -bTbUbVb
202def annotation_is_pydantic_v1(annotation: Any) -> bool: 1bcda
203 if is_pydantic_v1_model_class(annotation): 2b Vdgdhdf WbOccgh bbcbdbebfbgbhbibjbkblbmb1edg8 9 ! # $ % ' XbWdWcXdjdkdldXcPc:bH ;bQc2e( ) * + , - . iqmcjqkq6 F Yb=bgg?b@bYc[b]b^b/dhgigHeIejgkglgmgngogpg(e)eI J :dndodi j k l m n / D Zbnbobpbc 3dpdqdg 0bRcvgo qbrbsbtbubvbwbxbybzbAbBbgfwg: ; = ? @ [ ] 1b4d#c5dsdtdud$cSc_bK `bTchf^ _ ` { | } ~ 2b{bzg|b}b%c~bacbc[dAgBgJeKeCgDgEgFgGgHgIgufvfL M Ff]dwdxdp q r s t u abE 3bCbDbEbd a #dydzde 7 UcOgv FbGbHbIbJbKbLbMbNbObPbQbXfPgR S T U V W X 4bVccc$dDdEdFddc.bRbN Sb/bYfY Z 0 1 2 3 4 lqNcmqnqQ G 7becSgfcgc^chcicjc^d5g6g_d`dAeBeCeDeEeFeGe#f$fO P {dTdUdw x y z A B 5 C -bTbUbVb
204 return True 2iqmcjqkq6 lqNcmqnqQ
205 origin = get_origin(annotation) 2b Vdgdhdf WbOccgh bbcbdbebfbgbhbibjbkblbmb1edg8 9 ! # $ % ' XbWdWcXdjdkdldXcPc:bH ;bQc2e( ) * + , - . 6 F Yb=bgg?b@bYc[b]b^b/dhgigHeIejgkglgmgngogpg(e)eI J :dndodi j k l m n / D Zbnbobpbc 3dpdqdg 0bRcvgo qbrbsbtbubvbwbxbybzbAbBbgfwg: ; = ? @ [ ] 1b4d#c5dsdtdud$cSc_bK `bTchf^ _ ` { | } ~ 2b{bzg|b}b%c~bacbc[dAgBgJeKeCgDgEgFgGgHgIgufvfL M Ff]dwdxdp q r s t u abE 3bCbDbEbd a #dydzde 7 UcOgv FbGbHbIbJbKbLbMbNbObPbQbXfPgR S T U V W X 4bVccc$dDdEdFddc.bRbN Sb/bYfY Z 0 1 2 3 4 Q G 7becSgfcgc^chcicjc^d5g6g_d`dAeBeCeDeEeFeGe#f$fO P {dTdUdw x y z A B 5 C -bTbUbVb
206 if origin is Union or origin is UnionType: 2b Vdgdhdf WbOccgh bbcbdbebfbgbhbibjbkblbmb1edg8 9 ! # $ % ' XbWdWcXdjdkdldXcPc:bH ;bQc2e( ) * + , - . 6 F Yb=bgg?b@bYc[b]b^b/dhgigHeIejgkglgmgngogpg(e)eI J :dndodi j k l m n / D Zbnbobpbc 3dpdqdg 0bRcvgo qbrbsbtbubvbwbxbybzbAbBbgfwg: ; = ? @ [ ] 1b4d#c5dsdtdud$cSc_bK `bTchf^ _ ` { | } ~ 2b{bzg|b}b%c~bacbc[dAgBgJeKeCgDgEgFgGgHgIgufvfL M Ff]dwdxdp q r s t u abE 3bCbDbEbd a #dydzde 7 UcOgv FbGbHbIbJbKbLbMbNbObPbQbXfPgR S T U V W X 4bVccc$dDdEdFddc.bRbN Sb/bYfY Z 0 1 2 3 4 Q G 7becSgfcgc^chcicjc^d5g6g_d`dAeBeCeDeEeFeGe#f$fO P {dTdUdw x y z A B 5 C -bTbUbVb
207 for arg in get_args(annotation): 2b f h H F /dI J :di j k l m n c g o K [dL M ]dp q r s t u d a e v N G ^dO P {dw x y z A B
208 if is_pydantic_v1_model_class(arg): 2b f h H F /dI J :di j k l m n c g o K [dL M ]dp q r s t u d a e v N G ^dO P {dw x y z A B
209 return True 1FG
210 if field_annotation_is_sequence(annotation): 2b Vdgdhdf WbOccgh bbcbdbebfbgbhbibjbkblbmb1edg8 9 ! # $ % ' XbWdWcXdjdkdldXcPc:bH ;bQc2e( ) * + , - . 6 Yb=bgg?b@bYc[b]b^b/dhgigHeIejgkglgmgngogpg(e)eI J :dndodi j k l m n / D Zbnbobpbc 3dpdqdg 0bRcvgo qbrbsbtbubvbwbxbybzbAbBbgfwg: ; = ? @ [ ] 1b4d#c5dsdtdud$cSc_bK `bTchf^ _ ` { | } ~ 2b{bzg|b}b%c~bacbc[dAgBgJeKeCgDgEgFgGgHgIgufvfL M Ff]dwdxdp q r s t u abE 3bCbDbEbd a #dydzde 7 UcOgv FbGbHbIbJbKbLbMbNbObPbQbXfPgR S T U V W X 4bVccc$dDdEdFddc.bRbN Sb/bYfY Z 0 1 2 3 4 Q 7becSgfcgc^chcicjc^d5g6g_d`dAeBeCeDeEeFeGe#f$fO P {dTdUdw x y z A B 5 C -bTbUbVb
211 for sub_annotation in get_args(annotation): 2b f 8 9 ! # $ % ' WcjdkdldXc:b;b( ) * + , - . 6 HeIe/ c g : ; = ? @ [ ] #csdtdud$c_b`b^ _ ` { | } ~ JeKeabd a e R S T U V W X ccDdEdFddcRbSbY Z 0 1 2 3 4 Q _d`d5
212 if annotation_is_pydantic_v1(sub_annotation): 2b f 8 9 ! # $ % ' WcXc:b;b( ) * + , - . 6 HeIe/ c g : ; = ? @ [ ] #c$c_b`b^ _ ` { | } ~ JeKeabd a e R S T U V W X ccdcRbSbY Z 0 1 2 3 4 Q _d`d5
213 return True 16Q
214 return False 2b Vdgdhdf WbOccgh bbcbdbebfbgbhbibjbkblbmb1edg8 9 ! # $ % ' XbWdWcXdjdkdldXcPc:bH ;bQc2e( ) * + , - . Yb=bgg?b@bYc[b]b^b/dhgigHeIejgkglgmgngogpg(e)eI J :dndodi j k l m n / D Zbnbobpbc 3dpdqdg 0bRcvgo qbrbsbtbubvbwbxbybzbAbBbgfwg: ; = ? @ [ ] 1b4d#c5dsdtdud$cSc_bK `bTchf^ _ ` { | } ~ 2b{bzg|b}b%c~bacbc[dAgBgJeKeCgDgEgFgGgHgIgufvfL M Ff]dwdxdp q r s t u abE 3bCbDbEbd a #dydzde 7 UcOgv FbGbHbIbJbKbLbMbNbObPbQbXfPgR S T U V W X 4bVccc$dDdEdFddc.bRbN Sb/bYfY Z 0 1 2 3 4 7becSgfcgc^chcicjc^d5g6g_d`dAeBeCeDeEeFeGe#f$fO P {dTdUdw x y z A B 5 C -bTbUbVb