Coverage for fastapi/routing.py: 100%
377 statements
« prev ^ index » next coverage.py v7.6.1, created at 2025-09-22 00:03 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2025-09-22 00:03 +0000
1import dataclasses 1efabcd
2import email.message 1efabcd
3import inspect 1efabcd
4import json 1efabcd
5import sys 1efabcd
6from contextlib import AsyncExitStack, asynccontextmanager 1efabcd
7from enum import Enum, IntEnum 1efabcd
8from typing import ( 1efabcd
9 Any,
10 AsyncIterator,
11 Callable,
12 Collection,
13 Coroutine,
14 Dict,
15 List,
16 Mapping,
17 Optional,
18 Sequence,
19 Set,
20 Tuple,
21 Type,
22 Union,
23)
25from fastapi import params 1efabcd
26from fastapi._compat import ( 1efabcd
27 ModelField,
28 Undefined,
29 _get_model_config,
30 _model_dump,
31 _normalize_errors,
32 lenient_issubclass,
33)
34from fastapi.datastructures import Default, DefaultPlaceholder 1efabcd
35from fastapi.dependencies.models import Dependant 1efabcd
36from fastapi.dependencies.utils import ( 1efabcd
37 _should_embed_body_fields,
38 get_body_field,
39 get_dependant,
40 get_flat_dependant,
41 get_parameterless_sub_dependant,
42 get_typed_return_annotation,
43 solve_dependencies,
44)
45from fastapi.encoders import jsonable_encoder 1efabcd
46from fastapi.exceptions import ( 1efabcd
47 FastAPIError,
48 RequestValidationError,
49 ResponseValidationError,
50 WebSocketRequestValidationError,
51)
52from fastapi.types import DecoratedCallable, IncEx 1efabcd
53from fastapi.utils import ( 1efabcd
54 create_cloned_field,
55 create_model_field,
56 generate_unique_id,
57 get_value_or_default,
58 is_body_allowed_for_status_code,
59)
60from pydantic import BaseModel 1efabcd
61from starlette import routing 1efabcd
62from starlette.concurrency import run_in_threadpool 1efabcd
63from starlette.exceptions import HTTPException 1efabcd
64from starlette.requests import Request 1efabcd
65from starlette.responses import JSONResponse, Response 1efabcd
66from starlette.routing import ( 1efabcd
67 BaseRoute,
68 Match,
69 compile_path,
70 get_name,
71 request_response,
72 websocket_session,
73)
74from starlette.routing import Mount as Mount # noqa 1efabcd
75from starlette.types import AppType, ASGIApp, Lifespan, Scope 1efabcd
76from starlette.websockets import WebSocket 1efabcd
77from typing_extensions import Annotated, Doc, deprecated 1efabcd
79if sys.version_info >= (3, 13): # pragma: no cover 1efabcd
80 from inspect import iscoroutinefunction 1d
81else: # pragma: no cover
82 from asyncio import iscoroutinefunction 1efabc
85def _prepare_response_content( 1efabcd
86 res: Any,
87 *,
88 exclude_unset: bool,
89 exclude_defaults: bool = False,
90 exclude_none: bool = False,
91) -> Any:
92 if isinstance(res, BaseModel): 2GfOgygPg[inbUmQg`pw x 2 ]i^i?p' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~efqvqWqXqGj-kgqwqYqDhKfTgzgUgHjob;mVg=my z 3 IjJj@p( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e[p~phqiq/j.k]paqjqUhMfEgAgFgVhlb/kGgbqs t U WhXhsn8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKgaimbplLgcqu v V bicitn9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR mqIq2q3qPi;jnqJq4qahSfbhCgch=jpbundhdqA B 4 ?j@j^p) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW oqNq5q6qDkTlpqOq7q8iWfghDghhEkqbYniheqC D 5 FkGk_p* HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX qqSq8q9q,kUlrqTq!q@i
93 read_with_orm_mode = getattr(_get_model_config(res), "read_with_orm_mode", None) 2nbQg`pw x 2 ' VmWmXm|i}i,qYmZm0m1m2mbj-q3m4m.q5m6m7m8m9maggj!mbghj#m$m%m'm(m)m*m+mrhshrjsj,m-m.m/m:mcgdgegfgzhRgSgAhBhChEjFjIfJf~eobVg=my z 3 ( ?m@m[mNjOjxq]m^m_m`m{mRjyq|m}mzq~manbncndnggWjenhgXjfngnhninjnknlnmnKhLh7j8jnnonpnqnrnigjgkglgShWgXgThYgZg-j.jffgf^elbGgbqs t U 8 :k;k=k1h2h/q?k@k[k]k^k5h:q_k`k;q{k|k}k~kal-f!hbl.f#hcldlelflglhliljl6g7g.h/hklllmlnlol/f:f;f=f'gHgIg(g)g*g|h}hifjf`embLgcqu v V 9 qlrlslgihi=qtlulvlwlxlki?qylzl@qAlBlClDlEl?fpiFl@fqiGlHlIlJlKlLlMlNl=g?gAiBiOlPlQlRlSl[f]f^f_f{gMgNg|g}g~gNiOilfmf|epbdhdqA B 4 ) vnwnxn_j`j[qynznAnBnCn}j]qDnEn^qFnGnHnInJnmgdkKnngekLnMnNnOnPnQnRnSnWiXiokpkTnUnVnWnXnogpgqgrg4iehfh5i6i7iBkCkUfVfcfqbiheqC D 5 * Zn0n1nKkLk_q2n3n4n5n6nOk`q7n8n{q9n!n#n$n%nsgTk'ntgUk(n)n*n+n,n-n.n/n(i)i4k5k:n;n=n?n@nugvgwgxg:ijhkh;i=i?i*k+kYfZfef
94 if read_with_orm_mode: 2nbQg`pw x 2 ' VmWmXm|i}i,qYmZm0m1m2mbj-q3m4m.q5m6m7m8m9maggj!mbghj#m$m%m'm(m)m*m+mrhshrjsj,m-m.m/m:mcgdgegfgzhRgSgAhBhChEjFjIfJf~eobVg=my z 3 ( ?m@m[mNjOjxq]m^m_m`m{mRjyq|m}mzq~manbncndnggWjenhgXjfngnhninjnknlnmnKhLh7j8jnnonpnqnrnigjgkglgShWgXgThYgZg-j.jffgf^elbGgbqs t U 8 :k;k=k1h2h/q?k@k[k]k^k5h:q_k`k;q{k|k}k~kal-f!hbl.f#hcldlelflglhliljl6g7g.h/hklllmlnlol/f:f;f=f'gHgIg(g)g*g|h}hifjf`embLgcqu v V 9 qlrlslgihi=qtlulvlwlxlki?qylzl@qAlBlClDlEl?fpiFl@fqiGlHlIlJlKlLlMlNl=g?gAiBiOlPlQlRlSl[f]f^f_f{gMgNg|g}g~gNiOilfmf|epbdhdqA B 4 ) vnwnxn_j`j[qynznAnBnCn}j]qDnEn^qFnGnHnInJnmgdkKnngekLnMnNnOnPnQnRnSnWiXiokpkTnUnVnWnXnogpgqgrg4iehfh5i6i7iBkCkUfVfcfqbiheqC D 5 * Zn0n1nKkLk_q2n3n4n5n6nOk`q7n8n{q9n!n#n$n%nsgTk'ntgUk(n)n*n+n,n-n.n/n(i)i4k5k:n;n=n?n@nugvgwgxg:ijhkh;i=i?i*k+kYfZfef
95 # Let from_orm extract the data from this model instead of converting
96 # it now to a dict.
97 # Otherwise, there's no way to extract lazy data that requires attribute
98 # access instead of dict iteration, e.g. lazy relationships.
99 return res 2' IfJf( ffgf8 ifjf9 lfmf) UfVf* YfZf
100 return _model_dump( 2nbQg`pw x 2 VmWmXm|i}i,qYmZm0m1m2mbj-q3m4m.q5m6m7m8m9maggj!mbghj#m$m%m'm(m)m*m+mrhshrjsj,m-m.m/m:mcgdgegfgzhRgSgAhBhChEjFj~eobVg=my z 3 ?m@m[mNjOjxq]m^m_m`m{mRjyq|m}mzq~manbncndnggWjenhgXjfngnhninjnknlnmnKhLh7j8jnnonpnqnrnigjgkglgShWgXgThYgZg-j.j^elbGgbqs t U :k;k=k1h2h/q?k@k[k]k^k5h:q_k`k;q{k|k}k~kal-f!hbl.f#hcldlelflglhliljl6g7g.h/hklllmlnlol/f:f;f=f'gHgIg(g)g*g|h}h`embLgcqu v V qlrlslgihi=qtlulvlwlxlki?qylzl@qAlBlClDlEl?fpiFl@fqiGlHlIlJlKlLlMlNl=g?gAiBiOlPlQlRlSl[f]f^f_f{gMgNg|g}g~gNiOi|epbdhdqA B 4 vnwnxn_j`j[qynznAnBnCn}j]qDnEn^qFnGnHnInJnmgdkKnngekLnMnNnOnPnQnRnSnWiXiokpkTnUnVnWnXnogpgqgrg4iehfh5i6i7iBkCkcfqbiheqC D 5 Zn0n1nKkLk_q2n3n4n5n6nOk`q7n8n{q9n!n#n$n%nsgTk'ntgUk(n)n*n+n,n-n.n/n(i)i4k5k:n;n=n?n@nugvgwgxg:ijhkh;i=i?i*k+kef
101 res,
102 by_alias=True,
103 exclude_unset=exclude_unset,
104 exclude_defaults=exclude_defaults,
105 exclude_none=exclude_none,
106 )
107 elif isinstance(res, list): 2GfOgygPg[iUmQg`p2 ]i^i?p_i`i{ilhmhnh|i}i~iajsqbjcjdjtqejfjuqgjhjijjjkjlj` G M k l mjnjohojpjphqjqhrhshrjsjtjujvjwjthHfuhvh}exjyjwhzjxh5f6fyhAjBjCjDjEjFjIfJf~efqvqWqXqGj-kgqwqYqDhKfTgzgUgHj;mVg=m3 IjJj@pKjLjMjEhFhGhNjOjPjQj{pRjSjTj|pUjVj}pWjXjYjZj0j1j{ H N m n 2j3jHh4j5jIh6jJhKhLh7j8j9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8fRh)j*j+j,j-j.jffgf^e[p~phqiq/j.k]paqjqUhMfEgAgFgVh/kGgbqU WhXhsnYhZh0h0g1g2g1h2h3h4hAq5h6h7hBq8h9hCq!h#h$h%h'h(h^ E K g h )h*h3g+h,h4g-h5g6g7g.h/h:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf%g^h_h`h{h|h}hifjf`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKgaiplLgcqV bicitndieifi,g-g.ggihiiijiFqkilimiGqnioiHqpiqirisitiui_ F L i j viwi/gxiyi:gzi;g=g?gAiBiCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf`gJiKiLiMiNiOilfmf|eR mqIq2q3qPi;jnqJq4qahSfbhCgch=jundhdq4 ?j@j^p[j]j^jQiRiSi_j`j{j|jKq}j~jakLqbkckMqdkekfkgkhkik| I O o p jkkkTilkmkUinkViWiXiokpkqkrksktkYiTfZi0ibfukvk1iwk2i9f!f3ixkykzkAkBkCkUfVfcfW oqNq5q6qDkTlpqOq7q8iWfghDghhEkYniheq5 FkGk_pHkIkJk9i!i#iKkLkMkNkPqOkPkQkQqRkSkRqTkUkVkWkXkYk} J P q r Zk0k$i1k2k%i3k'i(i)i4k5k6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$f/i%k'k(k)k*k+kYfZfefX qqSq8q9q,kUlrqTq!q@i
108 return [ 22 ]i^i?plhmhnh|i}ibjgjhjohphqhrjsjthHfuhvh}ewhxhyhEjFjIfJffqWqgqYqDh3 IjJj@pEhFhGhNjOjRjWjXjHhIhJh7j8jMhLfNhOhafPhQhRh-j.jffgf[phq]pjqUhU WhXhsn0g1g2g1h2h5h!h#h3g4g5g.h/h8ghf9g!g_e#g$g%g|h}hifjfQ kqZqlq1q+gV bicitn,g-g.ggihikipiqi/g:g;gAiBi@gkf[g]g{e^g_g`gNiOilfmfR mq2qnq4qah4 ?j@j^pQiRiSi_j`j}jdkekTiUiViokpkYiTfZi0ibf1i2i3iBkCkUfVfW oq5qpq7q8i5 FkGk_p9i!i#iKkLkOkTkUk$i%i'i4k5k*iXf+i,idf-i.i/i*k+kYfZfX qq8qrq!q@i
109 _prepare_response_content(
110 item,
111 exclude_unset=exclude_unset,
112 exclude_defaults=exclude_defaults,
113 exclude_none=exclude_none,
114 )
115 for item in res
116 ]
117 elif isinstance(res, dict): 2GfOgygPg[iUmQg`p]i^i_i`i{ilhmhnh~iajsqcjdjtqejfjuqijjjkjlj` G M k l mjnjohojpjphqjqhrhshtjujvjwjthHfuhvh}exjyjwhzjxh5f6fyhAjBjCjDj~efqvqWqXqGj-kgqwqYqDhKfTgzgUgHj;mVg=mIjJjKjLjMjEhFhGhPjQj{pSjTj|pUjVj}pYjZj0j1j{ H N m n 2j3jHh4j5jIh6jJhKhLh9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8fRh)j*j+j,j^e[p~phqiq/j.k]paqjqUhMfEgAgFgVh/kGgbqWhXhYhZh0h0g1g2g3h4hAq6h7hBq8h9hCq$h%h'h(h^ E K g h )h*h3g+h,h4g-h5g6g7g:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf%g^h_h`h{h`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKgaiplLgcqbicidieifi,g-g.giijiFqlimiGqnioiHqrisitiui_ F L i j viwi/gxiyi:gzi;g=g?gCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf`gJiKiLiMi|eR mqIq2q3qPi;jnqJq4qahSfbhCgch=jundhdq?j@j[j]j^jQiRiSi{j|jKq~jakLqbkckMqfkgkhkik| I O o p jkkkTilkmkUinkViWiXiqkrksktkYiTfZi0ibfukvk1iwk2i9f!f3ixkykzkAkcfW oqNq5q6qDkTlpqOq7q8iWfghDghhEkYniheqFkGkHkIkJk9i!i#iMkNkPqPkQkQqRkSkRqVkWkXkYk} J P q r Zk0k$i1k2k%i3k'i(i)i6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$f/i%k'k(k)kefX qqSq8q9q,kUlrqTq!q@i
118 return { 2[iUmQg`p_i`i{ilhmhnh~iajsqcjdjtqejfjuqijjjkjlj` G M mjnjohojqjqhrhshtjujvjwjthHfuhvh}exjyjwhzjxh5f6fyhAjBjCjDj~efqvqWqGjgqwqYqDhHj;mVg=mKjLjMjEhFhGhPjQj{pSjTj|pUjVj}pYjZj0j1j{ H N 2j3jHh4j6jJhKhLh9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8fRh)j*j+j,j^e[p~phq/j]paqjqUhVh/kGgbqYhZh0h0g1g2g3h4hAq6h7hBq8h9hCq$h%h'h(h^ E K )h*h3g+h-h5g6g7g:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf%g^h_h`h{h`eQ kqDqZq~hlqEq1q+gaiplLgcqdieifi,g-g.giijiFqlimiGqnioiHqrisitiui_ F L viwi/gxizi;g=g?gCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf`gJiKiLiMi|eR mqIq2qPinqJq4qah=jundhdq[j]j^jQiRiSi{j|jKq~jakLqbkckMqfkgkhkik| I O jkkkTilknkViWiXiqkrksktkYiTfZi0ibfukvk1iwk2i9f!f3ixkykzkAkcfW oqNq5qDkpqOq7q8iEkYniheqHkIkJk9i!i#iMkNkPqPkQkQqRkSkRqVkWkXkYk} J P Zk0k$i1k3k'i(i)i6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$f/i%k'k(k)kefX qqSq8q,krqTq!q@i
119 k: _prepare_response_content(
120 v,
121 exclude_unset=exclude_unset,
122 exclude_defaults=exclude_defaults,
123 exclude_none=exclude_none,
124 )
125 for k, v in res.items()
126 }
127 elif dataclasses.is_dataclass(res): 2GfOgygPg[iQg`p]i^i_i`i{ilhmhnh~iajsqcjdjtqejfjuqijjjkjlj` G M k l mjnjohojpjphqjqhtjujvjwjthHfuhvh}exjyjwhzjxh5f6fyhAjBjCjDj~efqvqWqXqGj-kgqwqYqDhKfTgzgUgHjVg=mIjJjKjLjMjEhFhGhPjQj{pSjTj|pUjVj}pYjZj0j1j{ H N m n 2j3jHh4j5jIh6jJh9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8fRh)j*j+j,j^e[p~phqiq/j.k]paqjqUhMfEgAgFgVhGgbqWhXhYhZh0h0g1g2g3h4hAq6h7hBq8h9hCq$h%h'h(h^ E K g h )h*h3g+h,h4g-h5g:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf%g^h_h`h{h`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKgaiLgcqbicidieifi,g-g.giijiFqlimiGqnioiHqrisitiui_ F L i j viwi/gxiyi:gzi;gCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf`gJiKiLiMi|eR mqIq2q3qPi;jnqJq4qahSfbhCgch=jdhdq?j@j[j]j^jQiRiSi{j|jKq~jakLqbkckMqfkgkhkik| I O o p jkkkTilkmkUinkViqkrksktkYiTfZi0ibfukvk1iwk2i9f!f3ixkykzkAkcfW oqNq5q6qDkTlpqOq7q8iWfghDghhEkiheqFkGkHkIkJk9i!i#iMkNkPqPkQkQqRkSkRqVkWkXkYk} J P q r Zk0k$i1k2k%i3k'i6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$f/i%k'k(k)kefX qqSq8q9q,kUlrqTq!q@i
128 assert not isinstance(res, type) 2pjph}e5jIhaf,h4g_eyi:g{emkUibf2k%idf
129 return dataclasses.asdict(res) 2pjph}e5jIhaf,h4g_eyi:g{emkUibf2k%idf
130 return res 2GfOgygPg[iQg`p]i^i_i`i{ilhmhnh~iajsqcjdjtqejfjuqijjjkjlj` G M k l mjnjohojqjqhtjujvjwjthHfuhvh}exjyjwhzjxh5f6fyhAjBjCjDj~efqvqWqXqGj-kgqwqYqDhKfTgzgUgHjVg=mIjJjKjLjMjEhFhGhPjQj{pSjTj|pUjVj}pYjZj0j1j{ H N m n 2j3jHh4j6jJh9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8fRh)j*j+j,j^e[p~phqiq/j.k]paqjqUhMfEgAgFgVhGgbqWhXhYhZh0h0g1g2g3h4hAq6h7hBq8h9hCq$h%h'h(h^ E K g h )h*h3g+h-h5g:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf%g^h_h`h{h`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKgaiLgcqbicidieifi,g-g.giijiFqlimiGqnioiHqrisitiui_ F L i j viwi/gxizi;gCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf`gJiKiLiMi|eR mqIq2q3qPi;jnqJq4qahSfbhCgch=jdhdq?j@j[j]j^jQiRiSi{j|jKq~jakLqbkckMqfkgkhkik| I O o p jkkkTilknkViqkrksktkYiTfZi0ibfukvk1iwk2i9f!f3ixkykzkAkcfW oqNq5q6qDkTlpqOq7q8iWfghDghhEkiheqFkGkHkIkJk9i!i#iMkNkPqPkQkQqRkSkRqVkWkXkYk} J P q r Zk0k$i1k3k'i6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$f/i%k'k(k)kefX qqSq8q9q,kUlrqTq!q@i
133def _merge_lifespan_context( 1efabcd
134 original_context: Lifespan[Any], nested_context: Lifespan[Any]
135) -> Lifespan[Any]:
136 @asynccontextmanager 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f
137 async def merged_lifespan( 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f
138 app: AppType,
139 ) -> AsyncIterator[Optional[Mapping[str, Any]]]:
140 async with original_context(app) as maybe_original_state: 210jr:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsoswUxUG M yU6'20krpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRszUAUH N BU7'30|qrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrCUDUE K EU8'40}qUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/rFUGUF L HU9'50lrSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-sIUJUI O KU!'60mr.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtLUMUJ P NU#'
141 async with nested_context(app) as maybe_nested_state: 210jr:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsoswUxUG M yU6'20krpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRszUAUH N BU7'30|qrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrCUDUE K EU8'40}qUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/rFUGUF L HU9'50lrSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-sIUJUI O KU!'60mr.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtLUMUJ P NU#'
142 if maybe_nested_state is None and maybe_original_state is None: 210jr:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsoswUxUG M yU6'20krpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRszUAUH N BU7'30|qrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrCUDUE K EU8'40}qUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/rFUGUF L HU9'50lrSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-sIUJUI O KU!'60mr.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtLUMUJ P NU#'
143 yield None # old ASGI compatibility 210jr:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsosxUG 6'20krpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsAUH 7'30|qrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrDUE 8'40}qUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/rGUF 9'50lrSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-sJUI !'60mr.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtMUJ #'
144 else:
145 yield {**(maybe_nested_state or {}), **(maybe_original_state or {})} 2wUM yUzUN BUCUK EUFUL HUIUO KULUP NU
147 return merged_lifespan # type: ignore[return-value] 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f
150async def serialize_response( 1efabcd
151 *,
152 field: Optional[ModelField] = None,
153 response_content: Any,
154 include: Optional[IncEx] = None,
155 exclude: Optional[IncEx] = None,
156 by_alias: bool = True,
157 exclude_unset: bool = False,
158 exclude_defaults: bool = False,
159 exclude_none: bool = False,
160 is_coroutine: bool = True,
161) -> Any:
162 if field: 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeIQoGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!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}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i
163 errors = [] 2GfOgygPg- ~q[inbtbUmQg`par~vw x 2 ]i^i?p? ' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~efqvqWqXqGj-kgqwqYqDhKfTgzgUg. brHjobub;mVg=mcrIuy z 3 IjJj@p@ ( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e[p~phqiq/j.k]paqjqUhMfEgAgFg+ %qVhlbrb/kGgbq'qZws t U WhXhsn; 8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKg, (qaimbsbplLgcq)qIAu v V bicitn= 9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR mqIq2q3qPi;jnqJq4qahSfbhCgch/ dr=jpbvbundhdqer7DA B 4 ?j@j^p[ ) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW oqNq5q6qDkTlpqOq7q8iWfghDghh: frEkqbwbYniheqgr!DC D 5 FkGk_p] * HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX qqSq8q9q,kUlrqTq!q@i
164 if not hasattr(field, "serialize"): 2GfOgygPg- ~q[inbtbUmQg`par~vw x 2 ]i^i?p? ' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~efqvqWqXqGj-kgqwqYqDhKfTgzgUg. brHjobub;mVg=mcrIuy z 3 IjJj@p@ ( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e[p~phqiq/j.k]paqjqUhMfEgAgFg+ %qVhlbrb/kGgbq'qZws t U WhXhsn; 8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKg, (qaimbsbplLgcq)qIAu v V bicitn= 9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR mqIq2q3qPi;jnqJq4qahSfbhCgch/ dr=jpbvbundhdqer7DA B 4 ?j@j^p[ ) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW oqNq5q6qDkTlpqOq7q8iWfghDghh: frEkqbwbYniheqgr!DC D 5 FkGk_p] * HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX qqSq8q9q,kUlrqTq!q@i
165 # pydantic v1
166 response_content = _prepare_response_content( 2GfOgygPg[inbUmQg`pw x 2 ]i^i?p' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~efqvqWqXqGj-kgqwqYqDhKfTgzgUgHjob;mVg=my z 3 IjJj@p( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e[p~phqiq/j.k]paqjqUhMfEgAgFgVhlb/kGgbqs t U WhXhsn8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKgaimbplLgcqu v V bicitn9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR mqIq2q3qPi;jnqJq4qahSfbhCgch=jpbundhdqA B 4 ?j@j^p) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW oqNq5q6qDkTlpqOq7q8iWfghDghhEkqbYniheqC D 5 FkGk_p* HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX qqSq8q9q,kUlrqTq!q@i
167 response_content,
168 exclude_unset=exclude_unset,
169 exclude_defaults=exclude_defaults,
170 exclude_none=exclude_none,
171 )
172 if is_coroutine: 2GfOgygPg- ~q[inbtbUmQg`par~vw x 2 ]i^i?p? ' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~efqvqWqXqGj-kgqwqYqDhKfTgzgUg. brHjobub;mVg=mcrIuy z 3 IjJj@p@ ( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e[p~phqiq/j.k]paqjqUhMfEgAgFg+ %qVhlbrb/kGgbq'qZws t U WhXhsn; 8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKg, (qaimbsbplLgcq)qIAu v V bicitn= 9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR mqIq2q3qPi;jnqJq4qahSfbhCgch/ dr=jpbvbundhdqer7DA B 4 ?j@j^p[ ) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW oqNq5q6qDkTlpqOq7q8iWfghDghh: frEkqbwbYniheqgr!DC D 5 FkGk_p] * HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX qqSq8q9q,kUlrqTq!q@i
173 value, errors_ = field.validate(response_content, {}, loc=("response",)) 2GfOgygPgQg`par~v9maggj!mbghjij#mtjujvjwjthHfuh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhCh~eKfTgzgUgVg=mcrIudnggWjenhgXjYjfn9j!j#j$jMhLfNhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg^eMfEgAgFgGgbq'qZwal-f!hbl.f#h$hcl:h;h=h?h8ghf9g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g`ePfJgBgKgLgcq)qIAEl?fpiFl@fqiriGlCiDiEiFi@gkf[g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~g|eSfbhCgchdhdqer7DJnmgdkKnngekfkLnqkrksktkYiTfZibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7icfWfghDghhiheqgr!D%nsgTk'ntgUkVk(n6k7k8k9k*iXf+idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?ief
174 else:
175 value, errors_ = await run_in_threadpool( 2- ~q[inbtbUmw x 2 ]i^i?p? ' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mvhEjFjIfJffqvqWqXqGj-kgqwqYqDh. brHjobub;my z 3 IjJj@p@ ( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrnOh-j.jffgf[p~phqiq/j.k]paqjqUh+ %qVhlbrb/ks t U WhXhsn; 8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kdl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol!g|h}hifjfQ kqDqZq0q~h:jlqEq1q+g, (qaimbsbplu v V bicitn= 9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSl]gNiOilfmfR mqIq2q3qPi;jnqJq4qah/ dr=jpbvbunA B 4 ?j@j^p[ ) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0iBkCkUfVfW oqNq5q6qDkTlpqOq7q8i: frEkqbwbYnC D 5 FkGk_p] * HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n,i*k+kYfZfX qqSq8q9q,kUlrqTq!q@i
176 field.validate, response_content, {}, loc=("response",)
177 )
178 if isinstance(errors_, list): 2GfOgygPg- ~q[inbtbUmQg`par~vw x 2 ]i^i?p? ' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~efqvqWqXqGj-kgqwqYqDhKfTgzgUg. brHjobub;mVg=mcrIuy z 3 IjJj@p@ ( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e[p~phqiq/j.k]paqjqUhMfEgAgFg+ %qVhlbrb/kGgbq'qZws t U WhXhsn; 8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKg, (qaimbsbplLgcq)qIAu v V bicitn= 9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR mqIq2q3qPi;jnqJq4qahSfbhCgch/ dr=jpbvbundhdqer7DA B 4 ?j@j^p[ ) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW oqNq5q6qDkTlpqOq7q8iWfghDghh: frEkqbwbYniheqgr!DC D 5 FkGk_p] * HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX qqSq8q9q,kUlrqTq!q@i
179 errors.extend(errors_) 2~vsq,qtq-quq.qfqvqWqXqgqwqYqIu{pxq|pyq}pzq[p~phqiq]paqjqZwAq/qBq:qCq;qkqDqZq0qlqEq1qIAFq=qGq?qHq@qmqIq2q3qnqJq4q7DKq[qLq]qMq^qoqNq5q6qpqOq7q!DPq_qQq`qRq{qqqSq8q9qrqTq!q
180 elif errors_: 2GfOgygPg- ~q[inbtbUmQg`parw x 2 ]i^i?p? ' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~efqvqXqGj-kgqwqDhKfTgzgUg. brHjobub;mVg=mcry z 3 IjJj@p@ ( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e[p~piq/j.k]paqUhMfEgAgFg+ %qVhlbrb/kGgbq'qs t U WhXhsn; 8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ kqDq0q~h:jlqEq+gPfJgBgKg, (qaimbsbplLgcq)qu v V bicitn= 9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR mqIq3qPi;jnqJqahSfbhCgch/ dr=jpbvbundhdqerA B 4 ?j@j^p[ ) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW oqNq6qDkTlpqOq8iWfghDghh: frEkqbwbYniheqgrC D 5 FkGk_p] * HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX qqSq9q,kUlrqTq@i
181 errors.append(errors_) 2`psq,qtq-quq.qfqvqXqgqwq=m{pxq|pyq}pzq[p~piq]paqbqAq/qBq:qCq;qkqDq0qlqEqcqFq=qGq?qHq@qmqIq3qnqJqdqKq[qLq]qMq^qoqNq6qpqOqeqPq_qQq`qRq{qqqSq9qrqTq
182 if errors: 2GfOgygPg- ~q[inbtbUmQg`par~vw x 2 ]i^i?p? ' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~efqvqWqXqGj-kgqwqYqDhKfTgzgUg. brHjobub;mVg=mcrIuy z 3 IjJj@p@ ( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e[p~phqiq/j.k]paqjqUhMfEgAgFg+ %qVhlbrb/kGgbq'qZws t U WhXhsn; 8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKg, (qaimbsbplLgcq)qIAu v V bicitn= 9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR mqIq2q3qPi;jnqJq4qahSfbhCgch/ dr=jpbvbundhdqer7DA B 4 ?j@j^p[ ) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW oqNq5q6qDkTlpqOq7q8iWfghDghh: frEkqbwbYniheqgr!DC D 5 FkGk_p] * HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX qqSq8q9q,kUlrqTq!q@i
183 raise ResponseValidationError( 2`p~vsq,qtq-quq.qfqvqWqXqgqwqYq=mIu{pxq|pyq}pzq[p~phqiq]paqjqbqZwAq/qBq:qCq;qkqDqZq0qlqEq1qcqIAFq=qGq?qHq@qmqIq2q3qnqJq4qdq7DKq[qLq]qMq^qoqNq5q6qpqOq7qeq!DPq_qQq`qRq{qqqSq8q9qrqTq!q
184 errors=_normalize_errors(errors), body=response_content
185 )
187 if hasattr(field, "serialize"): 2GfOgygPg- ~q[inbtbUmQgarw x 2 ]i^i?p? ' _i`i{ilhmhnhVmWmXm|i}i~iajYmZm0m1m2mbjcjdj3m4mejfj5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~eGj-kDhKfTgzgUg. brHjobub;mVgcry z 3 IjJj@p@ ( KjLjMjEhFhGh?m@m[mNjOjPjQj]m^m_m`m{mRjSjTj|m}mUjVj~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e/j.kUhMfEgAgFg+ %qVhlbrb/kGg'qs t U WhXhsn; 8 YhZh0h0g1g2g:k;k=k1h2h3h4h?k@k[k]k^k5h6h7h_k`k8h9h{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ ~h:j+gPfJgBgKg, (qaimbsbplLg)qu v V bicitn= 9 dieifi,g-g.gqlrlslgihiiijitlulvlwlxlkilimiylzlnioiAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR Pi;jahSfbhCgch/ dr=jpbvbundherA B 4 ?j@j^p[ ) [j]j^jQiRiSivnwnxn_j`j{j|jynznAnBnCn}j~jakDnEnbkckFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW DkTl8iWfghDghh: frEkqbwbYnihgrC D 5 FkGk_p] * HkIkJk9i!i#iZn0n1nKkLkMkNk2n3n4n5n6nOkPkQk7n8nRkSk9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX ,kUl@i
188 return field.serialize( 2GfOgygPg- ~q[itbUmarw x 2 ]i^i?p? _i`i{ilhmhnhVmWmXm|i}i~iajYmZm0m1m2mbjcjdj3m4mejfj5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~eGj-kDhKfTgzgUg. brHjub;mcry z 3 IjJj@p@ KjLjMjEhFhGh?m@m[mNjOjPjQj]m^m_m`m{mRjSjTj|m}mUjVj~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e/j.kUhMfEgAgFg+ %qVhrb/k'qs t U WhXhsn; YhZh0h0g1g2g:k;k=k1h2h3h4h?k@k[k]k^k5h6h7h_k`k8h9h{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ ~h:j+gPfJgBgKg, (qaisbpl)qu v V bicitn= dieifi,g-g.gqlrlslgihiiijitlulvlwlxlkilimiylzlnioiAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR Pi;jahSfbhCgch/ dr=jvbunerA B 4 ?j@j^p[ [j]j^jQiRiSivnwnxn_j`j{j|jynznAnBnCn}j~jakDnEnbkckFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW DkTl8iWfghDghh: frEkwbYngrC D 5 FkGk_p] HkIkJk9i!i#iZn0n1nKkLkMkNk2n3n4n5n6nOkPkQk7n8nRkSk9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX ,kUl@i
189 value,
190 include=include,
191 exclude=exclude,
192 by_alias=by_alias,
193 exclude_unset=exclude_unset,
194 exclude_defaults=exclude_defaults,
195 exclude_none=exclude_none,
196 )
198 return jsonable_encoder( 2GfOgygPg[inbUmQgw x 2 ]i^i?p' _i`i{ilhmhnhVmWmXm|i}i~iajYmZm0m1m2mbjcjdj3m4mejfj5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~eGj-kDhKfTgzgUgHjob;mVgy z 3 IjJj@p( KjLjMjEhFhGh?m@m[mNjOjPjQj]m^m_m`m{mRjSjTj|m}mUjVj~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e/j.kUhMfEgAgFgVhlb/kGgs t U WhXhsn8 YhZh0h0g1g2g:k;k=k1h2h3h4h?k@k[k]k^k5h6h7h_k`k8h9h{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ ~h:j+gPfJgBgKgaimbplLgu v V bicitn9 dieifi,g-g.gqlrlslgihiiijitlulvlwlxlkilimiylzlnioiAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR Pi;jahSfbhCgch=jpbundhA B 4 ?j@j^p) [j]j^jQiRiSivnwnxn_j`j{j|jynznAnBnCn}j~jakDnEnbkckFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW DkTl8iWfghDghhEkqbYnihC D 5 FkGk_p* HkIkJk9i!i#iZn0n1nKkLkMkNk2n3n4n5n6nOkPkQk7n8nRkSk9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX ,kUl@i
199 value,
200 include=include,
201 exclude=exclude,
202 by_alias=by_alias,
203 exclude_unset=exclude_unset,
204 exclude_defaults=exclude_defaults,
205 exclude_none=exclude_none,
206 )
207 else:
208 return jsonable_encoder(response_content) 2$D%D'D(D)D[n]n*D+D,D-D.DCc8vicY }v/D:Dhbjr;D=DXb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEosuE|nvEwE}n{t|t}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOE! PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiFjFkFlFmFnFoFpFqFrFsFtF9vuFdovF!v#vwFxFyFzFAFBFCFDFEFYbFFGFbbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{F|F}F~FaGbGcGdGeGeofGfohugohogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosolcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvoSGTGUGVGWGXGYGZG0G1G2G3Gwo4G5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@G[G]G^G_G`G{G|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHAHzoAoBoCoBHDuCHRgSgDHDoEoEHFHIfJfGHHHIHJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIoUHVHWHXHYHJoKoZH0H1H2H3HDc%vmcZ bw4H5Hibkr6H7HZbpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbIRscIPodIeIQoGuHuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwI# xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!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~IaJbJ'vcJVodJ(v)veJfJgJhJiJjJkJlJmJ0bnJoJcbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J)J*J+J,J-J.J/J:JWo;JXoSuYoZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!opcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oAKBKCKDKEKFKGKHKIKJKKKLK'oMKNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9K!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~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLiL*o+o,o-ojL'ukLWgXglL.o/omLnLffgfoLpLqLrLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?odwewfwgwhwVlWliwjwkwlwmwEc+v{bS ,vnwowdb|qpwqwBbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwTrWw1lXwYw2lntotptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*w6 +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxMxNxOxPxQxRxSxTxCbDb~bacUxVxWx*uXx7lYx+u,uZx0x1x2x3x4x5x6x7xEb8x9x~ !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~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHy8lIy9lyt!l#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/lbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l.y/y:y;y=y?y@y[y]y^y_y`y?l{y|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztzuzvzwzxzyzzzAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z3z]l^l_l`l4zUt5zHgIg6z{l|l7z8zifjf9z!z#z$z%zxb'z(z)z*z+z,z-z.z/z}l~lVtWtambm:z;z=z?z@zcmdm[z]z^z_z`zFc.vccT /v{z|zeb}q}z~zFbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEA/rFAimGAHAjmXtYtZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0A7 1A2A3A4A5A6A7A8A9A!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}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBzBABBBCBGbHbfcgcDBEBFB.uGBomHB/u:uIBJBKBLBMBNBOBPBQBIbRBSBabTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCpmrCqm8trmsmsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDmhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm4C5C6C7C8C9C!C#C$C%C'C(CHm)C*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLDMDKmLmMmNmND^tODMgNgPDOmPmQDRDlfmfSDTDUDVDWDybXDYDZD0D1D2D3D4D5DQmRm_t`tSmTmCLDLELFLGL@o[oHLILJLKLLLGc;vqc0 6DMLNLjblrOLPL1bSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-L-s.L{o/L:L|o=u?u@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeM$ fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M!M#M$M%M'M(M)M*M2b3btcuc+M,M-M=v.Mcp/M?v@v:M;M=M?M@M[M]M^M_M4b`M{Mfb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNYNZN0N1N2N3N4N5Ndp6Nep~ufpgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupiOjOkOlOmOnOoOpOqOrOsOtOvpuOvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROSOTOUOVOWOXOYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?O@OypzpApBp[Ovv]Oehfh^OCpDp_O`OUfVf{O|O}O~OaPJbbPcPdPePfPgPhPiPjPEpFpwvxvGpHpkPlPmPnPoPIpJppPqPrPsPtPHc]vwc1 9DuPvPkbmrwPxP5b.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2Pmt3POp4P5PPpyvzvAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:P% ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQVQWQXQYQZQ6b7bzcAc0Q1Q2Q^v3QUp4Q_v`v5Q6Q7Q8Q9Q!Q#Q$Q%Q8b'Q(Qgb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRGRHRIRJRKRLRMRNRVpORWpJvXpYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9pBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p@R[R]R^R_R`R{R|R}R~RaSbS%pcSdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSASBSCSDSESFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8S9S)p*p+p,p!S5v#Sjhkh$S-p.p%S'SYfZf(S)S*S+S,SKb-S.S/S:S;S=S?S@S[S/p:p6v7v;p=p
211async def run_endpoint_function( 1efabcd
212 *, dependant: Dependant, values: Dict[str, Any], is_coroutine: bool
213) -> Any:
214 # Only called by get_request_handler. Has been split into its own function to
215 # facilitate profiling endpoints, since inner functions are harder to profile.
216 assert dependant.call is not None, "dependant.call must be a function" 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n`n]S{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE.0/0:0|nvEwExVyV}nzV{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGfohugotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG[0rGsGtG]0uGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGGVHVIVJGJVKVLVtoKGuoLGMGNGMVNVOGOVPGawPVQVRVQGRGvouhvh}eSGTGUGVG^0_0]WWG`0^WXG{0|0}0YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc1xo9Gd1!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuSVuuvuTVwuxuyuzuAuBuCu$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDu_W`WCHzh{W|WRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMoNo|vOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIGXHXIXPodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JXoSuYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JNX~JaKbKOXcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqK$V%V'VrK(V)V*V#osK$otKuKvK+V,VwK-VxKcw.V/V:VyKzK%oNhOhafAKBKCKDKPXQX:WEKRX;WFKSXTXUXGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX(oRKZXSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u;V5u6u=V7u8u9u!u#u$u%u*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'u,W-WkLSh.W/WWgXgThYgZglL.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlZl^S0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWww1x1y11lXwYwPUQU2lRUntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIy9lyt!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyD1UyVyWyE1XyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#yYUZU0U$y1U2U3U:l%y;l'y(y)y4U5U*y6U+y-v7U8U9U,y-y=l9g!g_e.y/y:y;yF1G1=W=yH1?W?yI1J1K1@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1@lbzP1czdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKt!ULtMt#UNtOtPtQtRtStTt-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt}W~W5z'gaXbXHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmgm_ShmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFA8191!1imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!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}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrCqm8trmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCC(1DCECFC)1GCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUC_U`U{UVC|U}U~UEmWCFmXCYCZCaVbV0CcV1C:vdVeVfV2C3CGm[g]g{e4C5C6C7C*1+1@W8C,1[W9C-1.1/1!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1Im.C@1/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-tgV.t/thV:t;t=t?t@t[t]t;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tcXdXOD{geXfXMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o_o`S`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.Lj2k2l2{o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6Nep~ufpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*Nq2+N,N-Nr2.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}NiWjWkW~NlWmWnWspaOtpbOcOdOoWpWeOqWfO8DrWsWtWgOhOupZi0ibfiOjOkOlOs2t2gXmOu2hXnOv2w2x2oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2wpzOC2AOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;OdvevfvgvhvivjvkvlvuWmvnvvWovpvqvrvsvtvuv[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[OvviXjX]O4ikXlXehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLpMp{SNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3PV2W2X2Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpORWpJvXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR220R1R2R323R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*RPWQWRW+RSWTWUW!p,R#p-R.R/RVWWW:RXW;R#DYWZW0W=R?R$p+i,idf@R[R]R^R4252mX_R62nX`R728292{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2'phS'2iSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVv1WWvXv2WYvZv0v1v2v3v4v{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5voXpX#S:iqXrXjhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i
218 if is_coroutine: 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n`n]S{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE.0/0:0|nvEwExVyV}nzV{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGfohugotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG[0rGsGtG]0uGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGGVHVIVJGJVKVLVtoKGuoLGMGNGMVNVOGOVPGawPVQVRVQGRGvouhvh}eSGTGUGVG^0_0]WWG`0^WXG{0|0}0YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc1xo9Gd1!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuSVuuvuTVwuxuyuzuAuBuCu$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDu_W`WCHzh{W|WRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMoNo|vOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIGXHXIXPodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JXoSuYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JNX~JaKbKOXcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqK$V%V'VrK(V)V*V#osK$otKuKvK+V,VwK-VxKcw.V/V:VyKzK%oNhOhafAKBKCKDKPXQX:WEKRX;WFKSXTXUXGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX(oRKZXSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u;V5u6u=V7u8u9u!u#u$u%u*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'u,W-WkLSh.W/WWgXgThYgZglL.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlZl^S0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWww1x1y11lXwYwPUQU2lRUntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIy9lyt!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyD1UyVyWyE1XyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#yYUZU0U$y1U2U3U:l%y;l'y(y)y4U5U*y6U+y-v7U8U9U,y-y=l9g!g_e.y/y:y;yF1G1=W=yH1?W?yI1J1K1@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1@lbzP1czdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKt!ULtMt#UNtOtPtQtRtStTt-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt}W~W5z'gaXbXHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmgm_ShmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFA8191!1imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!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}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrCqm8trmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCC(1DCECFC)1GCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUC_U`U{UVC|U}U~UEmWCFmXCYCZCaVbV0CcV1C:vdVeVfV2C3CGm[g]g{e4C5C6C7C*1+1@W8C,1[W9C-1.1/1!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1Im.C@1/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-tgV.t/thV:t;t=t?t@t[t]t;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tcXdXOD{geXfXMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o_o`S`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.Lj2k2l2{o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6Nep~ufpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*Nq2+N,N-Nr2.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}NiWjWkW~NlWmWnWspaOtpbOcOdOoWpWeOqWfO8DrWsWtWgOhOupZi0ibfiOjOkOlOs2t2gXmOu2hXnOv2w2x2oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2wpzOC2AOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;OdvevfvgvhvivjvkvlvuWmvnvvWovpvqvrvsvtvuv[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[OvviXjX]O4ikXlXehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLpMp{SNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3PV2W2X2Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpORWpJvXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR220R1R2R323R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*RPWQWRW+RSWTWUW!p,R#p-R.R/RVWWW:RXW;R#DYWZW0W=R?R$p+i,idf@R[R]R^R4252mX_R62nX`R728292{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2'phS'2iSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVv1WWvXv2WYvZv0v1v2v3v4v{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5voXpX#S:iqXrXjhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i
219 return await dependant.call(**values) 2$D%D'D(D)D]n+D,D-D.DGfOgygPgCc8vicY =D?D@D[D]D^D708090_D`D{D!0}D(0)0*0aE^n_n`ndEeEfEgEhEiEjEkElEmEnEoEpEQg`par~vxE~nyEzEAEBECEMETEUEVEWEXE9v!v#v9maggj!mbghjij#mFF%F'F.F/F:F;F=F?F~F;0aG=0?0@0fGtjCVujDVvjEVwjFVnrhogGhGiuiGjGkGqG[0rGsGtG]0uGvGwGxGiojoko#qlomonooopoqojukurosothHfyGzGAGBGCGDGEGFGGGHGIGGVHVIVJGJVKVLVtoKGuoLGMGNGMVNVOGOVPGawPVRVQGRGvouh}eSGTGUGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc1xo9Gd1!G#G$G%G'G(G)G*G+G,G-G.G/G:G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuSVuuvuTVwuxuyuzuAuBuCuegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDu_W`WCHzh{W|WRgSgAhBhChEHFHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VUHVHWHXHYHKo0H1H2H3HKfTgzgUgDc%vmcZ 7H8H9H!H#H$HsXtXuX%H'H(HvX*HAXBXCX,HLoMoNo/H:H;H=H?H@H[H]H^H_H`H{H|HVg=mcrIufIRogIhIiIjIkIuIBICIDIEIFI'v(v)vdnggWjenhgXjYjfnnJVJWJ3J4J5J6J7J8J+JJX,JKXLXMX;J9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J}JNX~JaKbKOXcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfgKhKiKjKkKlKmKnKoKpKqK$V%V'VrK(V)V*V#osK$otKuKvK+V,VwK-VxKcw.V:VyKzK%oNhafAKBKCKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX(oRKZXSKTKUKVKWKXKYKZK0K1K2K3K4K5K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u;V5u6u=V7u8u9u!u#u$u%ukglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'u,W-WkLSh.W/WWgXgThYgZgmLnLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VdwewfwgwhwWljwkwlwmwMfEgAgFgEc+v{bS qwrwswtwuwvwi1j1k1wwxwywl1Awq1r1s1CwXlYlZlFwGwHwIwJwKwLwMwNwOwPwQwRwGgbq'qZw0w3l1w2w3w4w5w(w/w:w;w=w?wCbDb~bac*u+u,ual-f!hbl.f#h$hcl8xfygynyoypyqyrysyCyz1DyA1B1C1Iy:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyTyD1UyVyWyE1XyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghf1y2y3y4y5y6y7y8y9y!y#yYUZU0U$y1U2U3U:l%y;l'y(y)y4U5U*y6U+y-v7U9U,y-y=l9g_e.y/y:y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1@lbzP1czdzezfzgzhzizjzkzlzmznzozpzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKt!ULtMt#UNtOtPtQtRtStTt;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt}W~W5z'gaXbXHgIg(g)g*g7z8zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U:z;z=z?z@zdm]z^z_z`zPfJgBgKgFc.vccT ~zaAbAcAdAeAU1V1W1fAgAhAX1jA213141lAemfmgmoApAqArAsAtAuAvAwAxAyAzAAALgcq)qIAJAkmKALAMANAOAYA5A6A7A8A9AGbHbfcgc.u/u:uEl?fpiFl@fqiriGlRB=B?B{B|B}B~BaCbClC#1mC$1%1'1rCCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCCC(1DCECFC)1GCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfKCLCMCNCOCPCQCRCSCTCUC_U`U{UVC|U}U~UEmWCFmXCYCZCaVbV0CcV1C:vdVfV2C3CGm[g{e4C5C6C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1Im.C@1/C:C;C=C?C@C[C]C^C_C`C{C|C}CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-tgV.t/thV:t;t=t?t@t[t]t^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tcXdXOD{geXfXMgNg|g}g~gQDRDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrVCLDLELFLGL[oILJLKLLLSfbhCgchGc;vqc0 PLQLRLSLTLUL`1{1|1VLWLXL}1ZLd2e2f21L]o^o_o4L5L6L7L8L9L!L#L$L%L'L(L)Ldhdqer7D;L}o=L?L@L[L]LcMjMkMlMmMnM2b3btcuc=v?v@vJnmgdkKnngekfkLn`MDNENLNMNNNONPNQN0Nm21Nn2o2p26NqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N*Nq2+N,N-Nr2.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTf=N?N@N[N]N^N_N`N{N|N}NiWjWkW~NlWmWnWspaOtpbOcOdOoWpWeOqWfO8DrWtWgOhOupZibfiOjOkOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2wpzOC2AOBOCODOEOFOGOHOIOJOKOLOMONOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;OdvevfvgvhvivjvkvlvuWmvnvvWovpvqvrvsvtvuvqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[OvviXjX]O4ikXlXehfh5i6i7i_O`OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWkPlPmPnPoPJpqPrPsPtPWfghDghhHc]vwc1 xPyPzPAPBPCPH2I2J2DPEPFPK2HPP2Q2R2JPKpLpMpMPNPOPPPQPRPSPTPUPVPWPXPYPiheqgr!D6PQp7P8P9P!P#P.P[P]P^P_P`P6b7bzcAc^v_v`v%nsgTk'ntgUkVk(n'QlRmRtRuRvRwRxRyRIRY2JRZ20212OR6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRZR220R1R2R323R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXf7R8R9R!R#R$R%R'R(R)R*RPWQWRW+RSWTWUW!p,R#p-R.R/RVWWW:RXW;R#DYW0W=R?R$p+idf@R[R]R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2'phS'2iSjSkSlSmSnSoSpSqSrSsStSuSvSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVv1WWvXv2WYvZv0v1v2v3v4vwgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5voXpX#S:iqXrXjhkh;i=i?i%S'SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W
220 else:
221 return await run_in_threadpool(dependant.call, **values) 2[n*D}v/D:Dhb- ~qjr;D[iXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns#0$0%0|D~D'0+0,0-0bEcE]S{nqErEsEtEUmosuE.0/0:0|nvEwExVyV}nzV{t|t}t~taubucuduDEEEFEGEHEIEJEKEjckcaoboLEcoNEOEw ! x 2 PEQERESEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtFuFdovF_i`i{ilhmhnhVmWmXm|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m$mjj%mkj'mljEFYb` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu(F)F*Ffu+F,F-Fgu@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mbGcGdGeGeofohugolGmGnGoGpGlcQVvhVG^0_0]WWG`0^WXG{0|0}0yo;G$vUVyHVVzHDHDoEjEoFjIfJfGHHHTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhJoZHbw4H5Hib. brkr6HHjZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQswXxXyX)H+HzXDXEXFX-H.H|vOo}H~HaIbI;mRscIGXHXIXPodIeI3V4VQo5VGuHuJuKuLuMuNuOulImInIoIpIqIrIsIncocSoTotIUovIwIy # z 3 xIyIzIAIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJcJVodJKjLjMjEhFhGh?m@m[mNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncngnZjhn0jin1jmJ0b{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuXJYJZJQu0J1J2JRu9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn-J.J/J:JWoXoSuYo^J_J`J{J|Jpc/VOhDKPXQX:WEKRX;WFKSXTXUX)o6K*v?VgL@VhLlL.o-j/o.jffgfoLpLBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhVliw,vnwowdb+ %q|qpwVhBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrm1n1o1zwBwp1t1u1v1DwEw^S0lSwTwUwVw/kTrWww1x1y11lXwYwPUQU2lRUntotptqtrtstttut6w7w8w9w!w#w$w%w|b}b4l5l'w6l)w*ws 6 t U +w,w-w.w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 UxVxWxXx7lYxYhZh0h0g1g2g:k;k=k1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kdl%hel'hfl(h7xEb^ E K 9xg h ~ !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~xaybycydyeyvthyiyjywtkylymyxttyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolEyFyGyHy8l9lyt!lOyPyQyRySybc8U!g;yF1G1=W=yH1?W?yI1J1K1[lqz-u$U1z%U2z6z{l|h|l}hifjf9z!z/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+gcm[z/v{z|zeb, (q}q}zaiFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.rY1Z101iAkA11516171mAnA_ShmBACADAEApl/rFA8191!1imGAHA/U:Ujm;UXtYtZt0t1t2t3t4tPAQARASATAUAVAWAdceclmmmXAnmZA0Au 7 v V 1A2A3A4A!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}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 DBEBFBGBomHBdieifi,g-g.gqlrlslgi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlHlsiIltiJluiQBIb_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t@B[B]B6t^B_B`B7tcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlnCoCpCqCpmqm8trmxCyCzCACBChceV]g7C*1+1@W8C,1[W9C-1.1/1Jm~C;uiVKDjVLDPDOmNiPmOilfmfSDTD5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qah@oHL6DMLNLjb/ drlrOL=j1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s~1a2b2YL0Lc2g2h2i22L3L`S`o*L+L,L-Lun-s.Lj2k2l2{o/L:L~VaW|obW=u?u@u[u]u^u_u`u^L_L`L{L|L}L~LaMrcsc~oapbMbpdMeMA $ B 4 fMgMhMiMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) +M,M-M.Mcp/M[j]j^jQiRiSivnwnxn_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInMngkNnhkOnik_M4b| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uFNGNHN|uINJNKN}uRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn2N3N4N5Ndpep~ufp$N%N'N(N)NvcsW0ilOs2t2gXmOu2hXnOv2w2x2xpOO[vwW=OxW?O^OCpBkDpCkUfVf{O|OjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8iIppP9DuPvPkb: frmrwPEk5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltL2M2N2GPIPO2S2T2U2KPLP{SNpZP0P1P2PYnmt3PV2W2X2Op4P5PGWHWPpIWyvzvAvBvCvDvEvFv$P%P'P(P)P*P+P,PxcycRpSp-PTp/P:PC % D 5 ;P=P?P@P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 0Q1Q2Q3QUp4QHkIkJk9i!i#iZn0n1nKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n)nWk*nXk+nYk%Q8b} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvnRoRpRHvqRrRsRIvzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nKRLRMRNRVpWpJvXpURVRWRXRYRBcZW,i^R4252mX_R62nX`R728292(pwS{v3W7S4W8S$S-p*k.p+kYfZf(S)S[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i
224def get_request_handler( 1efabcd
225 dependant: Dependant,
226 body_field: Optional[ModelField] = None,
227 status_code: Optional[int] = None,
228 response_class: Union[Type[Response], DefaultPlaceholder] = Default(JSONResponse),
229 response_field: Optional[ModelField] = None,
230 response_model_include: Optional[IncEx] = None,
231 response_model_exclude: Optional[IncEx] = None,
232 response_model_by_alias: bool = True,
233 response_model_exclude_unset: bool = False,
234 response_model_exclude_defaults: bool = False,
235 response_model_exclude_none: bool = False,
236 dependency_overrides_provider: Optional[Any] = None,
237 embed_body_fields: bool = False,
238) -> Callable[[Request], Coroutine[Any, Any, Response]]:
239 assert dependant.call is not None, "dependant.call must be a function" 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
240 is_coroutine = iscoroutinefunction(dependant.call) 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
241 is_body_form = body_field and isinstance(body_field.field_info, params.Form) 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
242 if isinstance(response_class, DefaultPlaceholder): 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
243 actual_response_class: Type[Response] = response_class.value 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]czbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudKbX
244 else:
245 actual_response_class = response_class 2e Mcf Nca Ocb Pcc Qcd Rc
247 async def app(request: Request) -> Response: 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
248 response: Union[Response, None] = None 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i
249 async with AsyncExitStack() as file_stack: 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUha dwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+gb :z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahc CLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8id kPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i
250 try: 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i
251 body: Any = None 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i
252 if body_field: 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i
253 if is_body_form: 2[n|S]nGfOgygPghb- 10jrXb^n_n}S`n]S{n|n}n{t|t}t~taubu4X5Xcudu~nao~SaTbobTcow ! x ? ' cT6Xdoagbgbbeu7X8X9Xfu!X#X$X%Xgu'X(XeodTfo)XhueTgonrhoiojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTHftouolTmTvo}ewo5f6fxonTyocgdg-Xlu.Xmunuoupuqurusutu/Xuu:Xvuwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiYegfgzoAoBoCoDu_W`Wzh{W|WRgSgAhBhChDoEoIfJf~eFoGojYkYEuFuHoIoJooTKoKfTgzgUgib. 20krZbLoMopTNo|vOoPoQoGuHuJuKuLuMulYmYNuOuRoSoqTrTTosTUoy # z @ ( tTnYVogghgcbPuoYpYqYQurYsYtYuYRuvYwYWouTXoxYSuvTYoorZo0o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgBYWuCYXuYuZu0u1u2u3u4uDY5uEY6u7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Ykglg*o+o,o-o'u,W-WSh.W/WWgXgThYgZg.o/offgf^e:o;o1Y2Y(u)u=o?oVlFTWlMfEgAgFgdb+ 30|qBbXlYlGTZl^S0l1l2lntotptqtrtst3Y4Yttut3l4lHTIT5lJT6ls 6 t ; 8 CbDbIcKT5Y7l-f.f~ vt6Y7Y8Ywt9Y!Y#Y$Yxt%Y'Y8lLT9l(YytMT!lhr#l$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f,YCt-YDtEtFtGtHtItJtKt.YLt/YMtNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ;f=f]l^l_l`lUt}W~W'gaXbXHgIg(g)g*g{l|lifjf`eQ }l~liZjZVtWtambmcmWTdmPfJgBgKgeb, 40}qFbemfmXTgm_ShmimjmXtYtZt0t1t2tkZlZ3t4tkmlmYTZTmm0Tnmu 7 v = 9 GbHbJc1TmZom?f@fab5tnZoZpZ6tqZrZsZtZ7tuZvZpm2TqmwZ8t3TrmirsmtmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]fAZ$tBZ%t't(t)t*t+t,t-tCZ.tDZ/t:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ^f_fKmLmMmNm^tcXdX{geXfXMgNg|g}g~gOmPmlfmf|eR QmRm0Z1Z_t`tSmTm@o%T[oSfbhCgchjb/ 50lr1b]o^o'T_o`S`o{o|o=u?u@u[u]u^u2Z3Z_u`u}o~o(T)Tap*TbpA $ B [ ) 2b3bKc+T4Zcpmgngfb{u5Z6Z7Z|u8Z9Z!Z#Z}u$Z%Zdp,Tep'Z~u-Tfpprgphpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TTfsptp@T[Tupbfvp9f!fwp]Txpogpg+Zdv,Zevfvgvhvivjvkvlv-Zmv.Znvovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0qgrgypzpApBpvviXjX4ikXlXehfh5i6i7iCpDpUfVfcfW EpFph0i0wvxvGpHpIp^TJpWfghDghhkb: 60mr5bKpLp_TMp{SNpOpPpyvzvAvBvCvDvj0k0EvFvQpRp`T{TSp|TTpC % D ] * 6b7bLc}Tl0UpsgtggbGvm0n0o0Hvp0q0r0s0Ivt0u0Vp~TWpv0JvaUXpqrYpZp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgz0NvA0OvPvQvRvSvTvUvVvB0WvC0XvYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0wgxg)p*p+p,p5voXpX:iqXrXjhkh;i=i?i-p.pYfZfefX /p:pZ0006v7v;p=p
254 body = await request.form() 210jrXb{t|t}t~taubu4X5Xcudueu7X8X9Xfu!X#X$X%Xgu'X(X)Xhu-Xlu.Xmunuoupuqurusutu/Xuu:Xvuwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiYDu_W`Wzh{W|WRgSgAhBhChjYkYEuFu20krZbGuHuJuKuLuMulYmYNuOuPuoYpYqYQurYsYtYuYRuvYwYxYSuBYWuCYXuYuZu0u1u2u3u4uDY5uEY6u7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y'u,W-WSh.W/WWgXgThYgZg1Y2Y(u)u30|qBbntotptqtrtst3Y4YttutCbDbIcvt6Y7Y8Ywt9Y!Y#Y$Yxt%Y'Y(Yyt,YCt-YDtEtFtGtHtItJtKt.YLt/YMtNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZUt}W~W'gaXbXHgIg(g)g*giZjZVtWt40}qFbXtYtZt0t1t2tkZlZ3t4tGbHbJc5tnZoZpZ6tqZrZsZtZ7tuZvZwZ8tAZ$tBZ%t't(t)t*t+t,t-tCZ.tDZ/t:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ^tcXdX{geXfXMgNg|g}g~g0Z1Z_t`t50lr1b=u?u@u[u]u^u2Z3Z_u`u2b3bKc{u5Z6Z7Z|u8Z9Z!Z#Z}u$Z%Z'Z~u+Zdv,Zevfvgvhvivjvkvlv-Zmv.Znvovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0vviXjX4ikXlXehfh5i6i7ih0i0wvxv60mr5byvzvAvBvCvDvj0k0EvFv6b7bLcGvm0n0o0Hvp0q0r0s0Ivt0u0v0Jvz0NvA0OvPvQvRvSvTvUvVvB0WvC0XvYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y05voXpX:iqXrXjhkh;i=i?iZ0006v7v
255 file_stack.push_async_callback(body.close) 2jrXb{t|t}t~taubu4X5Xcudueu7X8X9Xfu!X#X$X%Xgu'X(X)Xhu-Xlu.Xmunuoupuqurusutu/Xuu:Xvuwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiYDu_W`Wzh{W|WRgSgAhBhChjYkYEuFukrZbGuHuJuKuLuMulYmYNuOuPuoYpYqYQurYsYtYuYRuvYwYxYSuBYWuCYXuYuZu0u1u2u3u4uDY5uEY6u7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y'u,W-WSh.W/WWgXgThYgZg1Y2Y(u)u|qBbntotptqtrtst3Y4YttutCbDbIcvt6Y7Y8Ywt9Y!Y#Y$Yxt%Y'Y(Yyt,YCt-YDtEtFtGtHtItJtKt.YLt/YMtNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZUt}W~W'gaXbXHgIg(g)g*giZjZVtWt}qFbXtYtZt0t1t2tkZlZ3t4tGbHbJc5tnZoZpZ6tqZrZsZtZ7tuZvZwZ8tAZ$tBZ%t't(t)t*t+t,t-tCZ.tDZ/t:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ^tcXdX{geXfXMgNg|g}g~g0Z1Z_t`tlr1b=u?u@u[u]u^u2Z3Z_u`u2b3bKc{u5Z6Z7Z|u8Z9Z!Z#Z}u$Z%Z'Z~u+Zdv,Zevfvgvhvivjvkvlv-Zmv.Znvovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0vviXjX4ikXlXehfh5i6i7ih0i0wvxvmr5byvzvAvBvCvDvj0k0EvFv6b7bLcGvm0n0o0Hvp0q0r0s0Ivt0u0v0Jvz0NvA0OvPvQvRvSvTvUvVvB0WvC0XvYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y05voXpX:iqXrXjhkh;i=i?iZ0006v7v
256 else:
257 body_bytes = await request.body() 2[n|S]nGfOgygPghb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cT6XdoagbgbbeodTfoeTgonrhoiojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfTgzgUgib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTnYVogghgcbWouTXovTYoorZo0o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfEgAgFgdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT5Y7l-f.f~ 8lLT9lMT!lhr#l$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfJgBgKgeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1TmZom?f@fabpm2Tqm3TrmirsmtmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfbhCgchjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +T4Zcpmgngfbdp,Tep-Tfpprgphpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfghDghhkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }Tl0UpsgtggbVp~TWpaUXpqrYpZp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p
258 if body_bytes: 2[n|S]nGfOgygPghb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cT6XdoagbgbbeodTfoeTgonrhoiojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfTgzgUgib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTnYVogghgcbWouTXovTYoorZo0o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfEgAgFgdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT5Y7l-f.f~ 8lLT9lMT!lhr#l$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfJgBgKgeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1TmZom?f@fabpm2Tqm3TrmirsmtmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfbhCgchjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +T4Zcpmgngfbdp,Tep-Tfpprgphpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfghDghhkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }Tl0UpsgtggbVp~TWpaUXpqrYpZp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p
259 json_body: Any = Undefined 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojoko#qsV'WkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2o$qOU%WmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'lUqtV(WoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmVquV)WqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-Tfpprgphpipjp*qvV*WsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1p+qwV+WuUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p
260 content_type_value = request.headers.get("content-type") 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojoko#qsV'WkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2o$qOU%WmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'lUqtV(WoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmVquV)WqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-Tfpprgphpipjp*qvV*WsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1p+qwV+WuUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p
261 if not content_type_value: 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojoko#qsV'WkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2o$qOU%WmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'lUqtV(WoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmVquV)WqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-Tfpprgphpipjp*qvV*WsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1p+qwV+WuUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p
262 json_body = await request.json() 2#q$qUqVq*q+q
263 else:
264 message = email.message.Message() 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojokosV'WkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2oOU%WmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'ltV(WoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmuV)WqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-TfpprgphpipjpvV*WsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1pwV+WuUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p
265 message["content-type"] = content_type_value 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojokosV'WkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2oOU%WmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'ltV(WoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmuV)WqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-TfpprgphpipjpvV*WsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1pwV+WuUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p
266 if message.get_content_maintype() == "application": 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojokosV'WkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2oOU%WmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'ltV(WoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmuV)WqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-TfpprgphpipjpvV*WsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1pwV+WuUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p
267 subtype = message.get_content_subtype() 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojokosV'WkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2oOU%WmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'ltV(WoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmuV)WqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-TfpprgphpipjpvV*WsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1pwV+WuUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p
268 if subtype == "json" or subtype.endswith("+json"): 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojokosV'WkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2oOU%WmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'ltV(WoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmuV)WqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-TfpprgphpipjpvV*WsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1pwV+WuUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p
269 json_body = await request.json() 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojokosV'WfTgThTlomonoiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2oOU%WwTxTyT3o4o5ozT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'ltV(WNTOTPT(l)l*lQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmuV)W4T5T6Twmxmym7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-TfpprgphpipjpvV*W.T/T:Tkplpmp;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1pwV+WbUcUdU2p3p4peU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p
270 if json_body != Undefined: 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojoko#qkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2o$qmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'lUqoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmVqqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-Tfpprgphpipjp*qsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1p+quUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p
271 body = json_body 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojoko#qfTgThTlomonoiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2o$qwTxTyT3o4o5ozT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'lUqNTOTPT(l)l*lQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmVq4T5T6Twmxmym7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-Tfpprgphpipjp*q.T/T:Tkplpmp;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1p+qbUcUdU2p3p4peU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p
272 else:
273 body = body_bytes 2kUlUmUnUoUpUqUrUsUtUuUvU
274 except json.JSONDecodeError as e: 210sV'W20OU%W30tV(W40uV)W50vV*W60wV+W
275 validation_error = RequestValidationError( 2'W%W(W)W*W+W
276 [
277 {
278 "type": "json_invalid",
279 "loc": ("body", e.pos),
280 "msg": "JSON decode error",
281 "input": {},
282 "ctx": {"error": e.msg},
283 }
284 ],
285 body=e.doc,
286 )
287 raise validation_error from e 2'W%W(W)W*W+W
288 except HTTPException: 210sV20OU30tV40uV50vV60wV
289 # If a middleware raises an HTTPException, it should be raised again
290 raise 2102030405060
291 except Exception as e: 2sVOUtVuVvVwV
292 http_error = HTTPException( 2sVOUtVuVvVwV
293 status_code=400, detail="There was an error parsing the body"
294 )
295 raise http_error from e 2sVOUtVuVvVwV
296 errors: List[Any] = [] 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVqqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+quUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i
297 async with AsyncExitStack() as async_exit_stack: 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUha dwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+gb :z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVqqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahc CLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8id kPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+quUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i
298 solved_result = await solve_dependencies( 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVqqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+quUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i
299 request=request,
300 dependant=dependant,
301 body=body,
302 dependency_overrides_provider=dependency_overrides_provider,
303 async_exit_stack=async_exit_stack,
304 embed_body_fields=embed_body_fields,
305 )
306 errors = solved_result.errors 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu7X8X9X%F'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG[0rGT3U3sGV3W3tG]0X3uGY3vGZ3wG03xG13iojoko#qkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG53UGVG^0_0]WWG`0^WXG{0|0}06373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDu_W`WCHzh{W|WRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXPodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuoYpYqYVJWJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JNX~JX4Y4aKZ404bKOX14cK24dK34eK44fK540o1o2o$qmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBK94CKDKPXQX:WEKRX;WFKSXTXUX!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'u,W-WkLSh.W/WWgXgThYgZglL.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y11lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvt6Y7Y8Yfygyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'Ynyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyD1Uy1525Vy3545WyE155Xy65Yy75Zy850y95$l%l'lUqoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/y%5:y;yF1G1=W=yH1?W?yI1J1K1'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt}W~W5z'gaXbXHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5tnZoZpZ=B?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCC(1DC5666EC7686FC)196GC!6HC#6IC$6JC%6tmumvmVqqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5C*66C7C*1+1@W8C,1[W9C-1.1/1+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tcXdXOD{geXfXMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2{o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{u5Z6Z7ZDNENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*Nq2+N97!7,N#7$7-Nr2%7.N'7/N(7:N)7;N*7hpipjp*qsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO.7kOlOs2t2gXmOu2hXnOv2w2x2/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[OvviXjX]O4ikXlXehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvm0n0o0lRmRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR220R%8'81R(8)82R32*83R+84R,85R-86R.8Zp0p1p+quUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[R=8]R^R4252mX_R62nX`R728292?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5voXpX#S:iqXrXjhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i
307 if not errors: 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu7X8X9X%F'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG[0rGT3U3sGV3W3tG]0X3uGY3vGZ3wG03xG13iojoko#qkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG53UGVG^0_0]WWG`0^WXG{0|0}06373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDu_W`WCHzh{W|WRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXPodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuoYpYqYVJWJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JNX~JX4Y4aKZ404bKOX14cK24dK34eK44fK540o1o2o$qmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBK94CKDKPXQX:WEKRX;WFKSXTXUX!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'u,W-WkLSh.W/WWgXgThYgZglL.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y11lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvt6Y7Y8Yfygyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'Ynyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyD1Uy1525Vy3545WyE155Xy65Yy75Zy850y95$l%l'lUqoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/y%5:y;yF1G1=W=yH1?W?yI1J1K1'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt}W~W5z'gaXbXHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5tnZoZpZ=B?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCC(1DC5666EC7686FC)196GC!6HC#6IC$6JC%6tmumvmVqqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5C*66C7C*1+1@W8C,1[W9C-1.1/1+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tcXdXOD{geXfXMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2{o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{u5Z6Z7ZDNENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*Nq2+N97!7,N#7$7-Nr2%7.N'7/N(7:N)7;N*7hpipjp*qsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO.7kOlOs2t2gXmOu2hXnOv2w2x2/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[OvviXjX]O4ikXlXehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvm0n0o0lRmRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR220R%8'81R(8)82R32*83R+84R,85R-86R.8Zp0p1p+quUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[R=8]R^R4252mX_R62nX`R728292?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5voXpX#S:iqXrXjhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i
308 raw_response = await run_endpoint_function( 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n`n]S{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE.0/0:0|nvEwExVyV}nzV{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGfohugotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG[0rGsGtG]0uGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGGVHVIVJGJVKVLVtoKGuoLGMGNGMVNVOGOVPGawPVQVRVQGRGvouhvh}eSGTGUGVG^0_0]WWG`0^WXG{0|0}0YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc1xo9Gd1!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuSVuuvuTVwuxuyuzuAuBuCu$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDu_W`WCHzh{W|WRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMoNo|vOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIGXHXIXPodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JXoSuYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JNX~JaKbKOXcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqK$V%V'VrK(V)V*V#osK$otKuKvK+V,VwK-VxKcw.V/V:VyKzK%oNhOhafAKBKCKDKPXQX:WEKRX;WFKSXTXUXGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX(oRKZXSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u;V5u6u=V7u8u9u!u#u$u%u*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'u,W-WkLSh.W/WWgXgThYgZglL.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlZl^S0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWww1x1y11lXwYwPUQU2lRUntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIy9lyt!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyD1UyVyWyE1XyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#yYUZU0U$y1U2U3U:l%y;l'y(y)y4U5U*y6U+y-v7U8U9U,y-y=l9g!g_e.y/y:y;yF1G1=W=yH1?W?yI1J1K1@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1@lbzP1czdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKt!ULtMt#UNtOtPtQtRtStTt-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt}W~W5z'gaXbXHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmgm_ShmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFA8191!1imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!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}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrCqm8trmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCC(1DCECFC)1GCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUC_U`U{UVC|U}U~UEmWCFmXCYCZCaVbV0CcV1C:vdVeVfV2C3CGm[g]g{e4C5C6C7C*1+1@W8C,1[W9C-1.1/1!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1Im.C@1/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-tgV.t/thV:t;t=t?t@t[t]t;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tcXdXOD{geXfXMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o_o`S`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.Lj2k2l2{o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6Nep~ufpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*Nq2+N,N-Nr2.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}NiWjWkW~NlWmWnWspaOtpbOcOdOoWpWeOqWfO8DrWsWtWgOhOupZi0ibfiOjOkOlOs2t2gXmOu2hXnOv2w2x2oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2wpzOC2AOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;OdvevfvgvhvivjvkvlvuWmvnvvWovpvqvrvsvtvuv[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[OvviXjX]O4ikXlXehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLpMp{SNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3PV2W2X2Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpORWpJvXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR220R1R2R323R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*RPWQWRW+RSWTWUW!p,R#p-R.R/RVWWW:RXW;R#DYWZW0W=R?R$p+i,idf@R[R]R^R4252mX_R62nX`R728292{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2'phS'2iSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVv1WWvXv2WYvZv0v1v2v3v4v{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5voXpX#S:iqXrXjhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i
309 dependant=dependant,
310 values=solved_result.values,
311 is_coroutine=is_coroutine,
312 )
313 if isinstance(raw_response, Response): 2e $D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwExVyV}nzV{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGGVHVIVJGJVKVLVtoKGuoLGMGNGMVNVOGOVPGawPVQVRVQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuSVuuvuTVwuxuyuzuAuBuCu$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhf UHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqK$V%V'VrK(V)V*V#osK$otKuKvK+V,VwK-VxKcw.V/V:VyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u;V5u6u=V7u8u9u!u#u$u%u*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUha dwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYwPUQU2lRUntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#yYUZU0U$y1U2U3U:l%y;l'y(y)y4U5U*y6U+y-v7U8U9U,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKt!ULtMt#UNtOtPtQtRtStTt-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+gb :z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!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}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUC_U`U{UVC|U}U~UEmWCFmXCYCZCaVbV0CcV1C:vdVeVfV2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-tgV.t/thV:t;t=t?t@t[t]t;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahc CLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}NiWjWkW~NlWmWnWspaOtpbOcOdOoWpWeOqWfO8DrWsWtWgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;OdvevfvgvhvivjvkvlvuWmvnvvWovpvqvrvsvtvuv[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8id kPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*RPWQWRW+RSWTWUW!p,R#p-R.R/RVWWW:RXW;R#DYWZW0W=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVv1WWvXv2WYvZv0v1v2v3v4v{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i
314 if raw_response.background is None: 2e xVyVzVAVBVCVDVEVFVnriuGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV0V1V2Vf 3V4V5V6V7V8V9V!V#VorTu$V%V'V(V)V*V+V,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}Va PUQURUSUTUUUVUWUXUhrztYUZU0U1U2U3U4U5U6U7U8U9U!U#U$U%U'U(U)U*U+U,U-U.Ub /U:U;U=U?U@U[U]U^Uir9t_U`U{U|U}U~UaVbVcVdVeVfVgVhViVjVkVlVmVnVoVpVqVrVc ~VaWbWcWdWeWfWgWhWpraviWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWd GWHWIWJWKWLWMWNWOWqrKvPWQWRWSWTWUWVWWWXWYWZW0W1W2W3W4W5W6W7W8W9W!W#W$W
315 raw_response.background = solved_result.background_tasks 2e xVyVzVAVBVCVDVEVFVnriuGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV0V1V2Vf 3V4V5V6V7V8V9V!V#VorTu$V%V'V(V)V*V+V,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}Va PUQURUSUTUUUVUWUXUhrztYUZU0U1U2U3U4U5U6U7U8U9U!U#U$U%U'U(U)U*U+U,U-U.Ub /U:U;U=U?U@U[U]U^Uir9t_U`U{U|U}U~UaVbVcVdVeVfVgVhViVjVkVlVmVnVoVpVqVrVc ~VaWbWcWdWeWfWgWhWpraviWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWd GWHWIWJWKWLWMWNWOWqrKvPWQWRWSWTWUWVWWWXWYWZW0W1W2W3W4W5W6W7W8W9W!W#W$W
316 response = raw_response 2e xVyVzVAVBVCVDVEVFVnriuGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV0V1V2Vf 3V4V5V6V7V8V9V!V#VorTu$V%V'V(V)V*V+V,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}Va PUQURUSUTUUUVUWUXUhrztYUZU0U1U2U3U4U5U6U7U8U9U!U#U$U%U'U(U)U*U+U,U-U.Ub /U:U;U=U?U@U[U]U^Uir9t_U`U{U|U}U~UaVbVcVdVeVfVgVhViVjVkVlVmVnVoVpVqVrVc ~VaWbWcWdWeWfWgWhWpraviWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWd GWHWIWJWKWLWMWNWOWqrKvPWQWRWSWTWUWVWWWXWYWZW0W1W2W3W4W5W6W7W8W9W!W#W$W
317 else:
318 response_args: Dict[str, Any] = { 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeIQoGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!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}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i
319 "background": solved_result.background_tasks
320 }
321 # If status_code was set, use it, otherwise use the default from the
322 # response class, in the case of redirect it's 307
323 current_status_code = ( 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeIQoGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!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}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i
324 status_code
325 if status_code
326 else solved_result.response.status_code
327 )
328 if current_status_code is not None: 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeIQoGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!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}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i
329 response_args["status_code"] = current_status_code 2}v9v!v#vYbaw$vbw'v(v)v0bcw*v,v*u+u,uEb-v-u/v.u/u:uIb:v;u6D=v?v@v4b8D[v9D^v_v`v8b#D{v
330 if solved_result.response.status_code: 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeIQoGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!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}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i
331 response_args["status_code"] = ( 29v!v$v'v(v*v*u+u-u.u/u;u=v?v[v^v_v{v
332 solved_result.response.status_code
333 )
334 content = await serialize_response( 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeIQoGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!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}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i
335 field=response_field,
336 response_content=raw_response,
337 include=response_model_include,
338 exclude=response_model_exclude,
339 by_alias=response_model_by_alias,
340 exclude_unset=response_model_exclude_unset,
341 exclude_defaults=response_model_exclude_defaults,
342 exclude_none=response_model_exclude_none,
343 is_coroutine=is_coroutine,
344 )
345 response = actual_response_class(content, **response_args) 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQgar}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajYmZm0m1mwFxF2mbjcjdj3m4mejfj5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIoGj-kDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeIQoGuHuVgcrJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj]m^m_m`meJfJ{mRjSjTj|m}mUjVj~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o/j.kUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGg'qptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4h?k@k[k]kZx0x^k5h6h7h_k`k8h9h{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambm~h:j+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLg)qZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!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}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijitlulvlwlIBJBxlkilimiylzlnioiAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmPi;jahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udher@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jynznAnBn:M;MCn}j~jakDnEnbkckFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpDkTl8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzvihgrAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNk2n3n4n5n5Q6Q6nOkPkQk7n8nRkSk9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=p,kUl@i
346 if not is_body_allowed_for_status_code(response.status_code): 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQgar}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajYmZm0m1mwFxF2mbjcjdj3m4mejfj5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIoGj-kDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeIQoGuHuVgcrJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj]m^m_m`meJfJ{mRjSjTj|m}mUjVj~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o/j.kUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGg'qptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4h?k@k[k]kZx0x^k5h6h7h_k`k8h9h{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambm~h:j+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLg)qZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!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}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijitlulvlwlIBJBxlkilimiylzlnioiAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmPi;jahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udher@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jynznAnBn:M;MCn}j~jakDnEnbkckFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpDkTl8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzvihgrAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNk2n3n4n5n5Q6Q6nOkPkQk7n8nRkSk9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=p,kUl@i
347 response.body = b"" 2#vYb)v0b,uEb:uIb@v4b`v8b
348 response.headers.raw.extend(solved_result.response.headers.raw) 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQgar}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajYmZm0m1mwFxF2mbjcjdj3m4mejfj5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIoGj-kDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMoNo|vOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIGXHXIXg9PodIeIQoGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuG9H9VJI9J9WJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JaKO9bKOXP9cKdKeKfKQ90o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKR9S9CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX(oRKZXSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGg'qptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4h?k@k[k]kZx0x^k5h6h7h_k`k8h9h{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambm~h:j+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLg)qZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!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}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijitlulvlwlIBJBxlkilimiylzlnioiAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmPi;jahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udher@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jynznAnBn:M;MCn}j~jakDnEnbkckFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpDkTl8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzvihgrAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNk2n3n4n5n5Q6Q6nOkPkQk7n8nRkSk9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=p,kUl@i
349 if errors: 2e $D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n}S`n{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE`2|nvEwExVyV}nzV{t|tQgar}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajYmZm0m1mwFxF2mbjcjdj3m4mejfj5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu7X8X9X%F'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqGrGT3U3sGV3W3tGX3uGY3vGZ3wG03xG13iojoko#qkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG53UGVG]WWG^WXG6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8G83xonT9G93!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIoGj-kDhf UHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMopTNoOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cI~3PodIeI3V4VQo5VGuHuVgcrJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj]m^m_m`meJfJ{mRjSjTj|m}mUjVj~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuoYpYqYVJWJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}J~JX4Y4aKZ404bK14cK24dK34eK44fK540o1o2o$qmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBK94CKDK:WEK;WFK!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK$4(oETRK%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o/j.kUha dwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlGTZl0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Wwd51lXwYwPUQU2lRUntotGg'qptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4h?k@k[k]kZx0x^k5h6h7h_k`k8h9h{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvt6Y7Y8Yfygyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'Ynyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyUy1525Vy3545Wy55Xy65Yy75Zy850y95$l%l'lUqoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/y%5:y;y=W=y?W?y'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz)5@lVTbz*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambm~h:j+gb :z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmXTgmhm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FAh6imGAHA/U:Ujm;UXtYtLg)qZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijitlulvlwlIBJBxlkilimiylzlnioiAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5tnZoZpZ=B?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCDC5666EC7686FC96GC!6HC#6IC$6JC%6tmumvmVqqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5C*66C7C@W8C[W9C+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-C-6Im$T.C.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmPi;jahc CLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o'T_o`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Ll7{o/L:L~VaW|obW=u?udher@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jynznAnBn:M;MCn}j~jakDnEnbkckFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{u5Z6Z7ZDNENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N+N97!7,N#7$7-N%7.N'7/N(7:N)7;N*7hpipjp*qsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO.7kOlOgXmOhXnO/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyO;7wp]TzO=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpDkTl8id kPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLp_TMpNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83Pp8Op4P5PGWHWPpIWyvzvihgrAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNk2n3n4n5n5Q6Q6nOkPkQk7n8nRkSk9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvm0n0o0lRmRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR0R%8'81R(8)82R*83R+84R,85R-86R.8Zp0p1p+quUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[R=8]R^RmX_RnX`R?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS[8'pjUhS]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=p,kUl@i
350 validation_error = RequestValidationError( 2|SGfygCc8v}S,2-2.2/2:2;2=2?2@2[2]2^2_2`24X5X~SaTbT{2|2}2~2a3b3c3d3e3f3g3h3i3j3k3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z3A3B3C3D3E3F3G3H3I3J3K3L3M3N3O3P3Q3cT6XR3S37X8X9X!X#X$X%X'X(XdT)XeTT3U3V3W3X3Y3Z30313kUfT*XgThTlUiT+XjT,XkT233343lTmT53637383nT93!3#3$3%3'3(3)3*3+3,3-3.3/3-X.X/X:X;X=X?X@X[X]X^X_X`X{X|X}X~XaYbYcYdYeYfYgYhYiYjYkYoTKfzgDc%vpT:3;3=3?3@3[3]3^3_3`3{3|3}3~3lYmYqTrTsTa4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4A4B4C4D4E4F4G4H4I4J4K4L4M4N4O4P4Q4R4S4T4U4tTnYV4W4oYpYqYrYsYtYuYvYwYuTxYvTX4Y4Z4041424344454mUwTyYxTyTnUzTzYATAYBT647484CTDT94!4#4$4ET%4'4(4)4*4+4,4-4.4/4:4;4=4?4BYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0Y1Y2YFTMfAgEc+vGT@4[4]4^4_4`4{4|4}4~4a5b5c5d53Y4YHTITJTe5f5g5h5i5j5k5l5m5n5o5p5q5r5s5t5u5v5w5x5y5z5A5B5C5D5E5F5G5H5I5J5K5L5M5N5O5P5Q5R5S5T5U5V5W5X5Y5IcScKT5YZ5056Y7Y8Y9Y!Y#Y$Y%Y'YLT(YMT152535455565758595oUNT)YOTPTpUQT*YRT+YST!5#5$5TTUT%5'5(5)5VT*5+5,5-5.5/5:5;5=5?5@5[5]5^5,Y-Y.Y/Y:Y;Y=Y?Y@Y[Y]Y^Y_Y`Y{Y|Y}Y~YaZbZcZdZeZfZgZhZiZjZWTPfBgFc.vXT_5`5{5|5}5~5a6b6c6d6e6f6g6h6kZlZYTZT0Ti6j6k6l6m6n6o6p6q6r6s6t6u6v6w6x6y6z6A6B6C6D6E6F6G6H6I6J6K6L6M6N6O6P6Q6R6S6T6U6V6W6X6Y6Z6061626JcTc1TmZ3646nZoZpZqZrZsZtZuZvZ2TwZ3T5666768696!6#6$6%6qU4TxZ5T6TrU7TyZ8TzZ9T'6(6)6!T#T*6+6,6-6$T.6/6:6;6=6?6@6[6]6^6_6`6{6|6AZBZCZDZEZFZGZHZIZJZKZLZMZNZOZPZQZRZSZTZUZVZWZXZYZZZ0Z1Z%TSfCgGc;v'T}6~6a7b7c7d7e7f7g7h7i7j7k7l72Z3Z(T)T*Tm7n7o7p7q7r7s7t7u7v7w7x7y7z7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U7V7W7X7Y7Z707172737475767KcUc+T4Z77875Z6Z7Z8Z9Z!Z#Z$Z%Z,T'Z-T97!7#7$7%7'7(7)7*7sU.T(Z/T:TtU;T)Z=T*Z?T+7,7-7@T[T.7/7:7;7]T=7?7@7[7]7^7_7`7{7|7}7~7a8b8+Z,Z-Z.Z/Z:Z;Z=Z?Z@Z[Z]Z^Z_Z`Z{Z|Z}Z~Za0b0c0d0e0f0g0h0i0^TWfDgHc]v_Tc8d8e8f8g8h8i8j8k8l8m8n8o8p8j0k0`T{T|Tq8r8s8t8u8v8w8x8y8z8A8B8C8D8E8F8G8H8I8J8K8L8M8N8O8P8Q8R8S8T8U8V8W8X8Y8Z808182838485868788898!8LcVc}Tl0#8$8m0n0o0p0q0r0s0t0u0~Tv0aU%8'8(8)8*8+8,8-8.8uUbUw0cUdUvUeUx0fUy0gU/8:8;8hUiU=8?8@8[8jU]8^8_8`8{8|8}8~8a9b9c9d9e9f9z0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z000
351 _normalize_errors(errors), body=body
352 )
353 raise validation_error 2|SGfygCc8v}S,2-2.2/2:2;2=2?2@2[2]2^2_2`24X5X~SaTbT{2|2}2~2a3b3c3d3e3f3g3h3i3j3k3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z3A3B3C3D3E3F3G3H3I3J3K3L3M3N3O3P3Q3cT6XR3S37X8X9X!X#X$X%X'X(XdT)XeTT3U3V3W3X3Y3Z30313kUfT*XgThTlUiT+XjT,XkT233343lTmT53637383nT93!3#3$3%3'3(3)3*3+3,3-3.3/3-X.X/X:X;X=X?X@X[X]X^X_X`X{X|X}X~XaYbYcYdYeYfYgYhYiYjYkYoTKfzgDc%vsXtXuXvXwXxXyXzXAXBXCXDXEXFXpT|v:3;3=3?3@3[3]3^3_3`3{3|3}3GX~3HXIXg9=mIulYmYqTrTsTa4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4A4B4C4D4E4F4G4H4I4J4K4L4M4N4O4P4Q4R4S4T4U4tTnYV4W4{pxq|pyq}pzqh9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9A9B9C9D9E9F9oYpYqYG9H9I9J9rYsYtYuYvYwYK9L9JXKXLXMXuTxYvTM9NXN9X4Y4O9Z404OXP914243444Q954OU%WmUwTyYxTyTnUzTzYATAYBT647484CTDTR9S994PXQXRXSXTXUXT9U9V9W9!4#4VXWXXXYX$4ETZX%4'4(4)4*4+40X1X2X3X,4-4.4/4:4;4=4?4BYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0YX9Y9Z90919,W-W293949.W/W5969YgZg798999!9#9$9ffgf^e1Y2Y[p~phqiq]paqjqa dwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlGTZl0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Wwd51lXwYwPUQU2lRUntotGg'qptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4h?k@k[k]kZx0x^k5h6h7h_k`k8h9h{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvt6Y7Y8Yfygyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'Ynyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyUy1525Vy3545Wy55Xy65Yy75Zy850y95$l%l'lUqoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/y%5:y;y=W=y?W?y'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz)5@lVTbz*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambm~h:j+gb :z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmXTgmhm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FAh6imGAHA/U:Ujm;UXtYtLg)qZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijitlulvlwlIBJBxlkilimiylzlnioiAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5tnZoZpZ=B?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCDC5666EC7686FC96GC!6HC#6IC$6JC%6tmumvmVqqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5C*66C7C@W8C[W9C+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-C-6Im$T.C.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmPi;jah%TSfCgGc;v'T}6~6a7b7c7d7e7f7g7h7i7j7k7l72Z3Z(T)T*Tm7n7o7p7q7r7s7t7u7v7w7x7y7z7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U7V7W7X7Y7Z707172737475767KcUc+T4Z77875Z6Z7Z8Z9Z!Z#Z$Z%Z,T'Z-T97!7#7$7%7'7(7)7*7sU.T(Z/T:TtU;T)Z=T*Z?T+7,7-7@T[T.7/7:7;7]T=7?7@7[7]7^7_7`7{7|7}7~7a8b8+Z,Z-Z.Z/Z:Z;Z=Z?Z@Z[Z]Z^Z_Z`Z{Z|Z}Z~Za0b0c0d0e0f0g0h0i0^TWfDgHc]v_Tc8d8e8f8g8h8i8j8k8l8m8n8o8p8j0k0`T{T|Tq8r8s8t8u8v8w8x8y8z8A8B8C8D8E8F8G8H8I8J8K8L8M8N8O8P8Q8R8S8T8U8V8W8X8Y8Z808182838485868788898!8LcVc}Tl0#8$8m0n0o0p0q0r0s0t0u0~Tv0aU%8'8(8)8*8+8,8-8.8uUbUw0cUdUvUeUx0fUy0gU/8:8;8hUiU=8?8@8[8jU]8^8_8`8{8|8}8~8a9b9c9d9e9f9z0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z000
354 if response is None: 2e $D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwExVyV}nzV{t|tQgar}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajYmZm0m1mwFxF2mbjcjdj3m4mejfj5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGGVHVIVJGJVKVLVtoKGuoLGMGNGMVNVOGOVPGawPVQVRVQGRGvouhvh}eSGTGUGVG]WWG^WXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuSVuuvuTVwuxuyuzuAuBuCu$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGoEuFuHoIoGj-kDhf UHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeI3V4VQo5VGuHuVgcrJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj]m^m_m`meJfJ{mRjSjTj|m}mUjVj~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqK$V%V'VrK(V)V*V#osK$otKuKvK+V,VwK-VxKcw.V/V:VyKzK%oNhOhafAKBKCKDK:WEK;WFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u;V5u6u=V7u8u9u!u#u$u%u*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o(u)u=o?o/j.kUha dwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYwPUQU2lRUntotGg'qptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4h?k@k[k]kZx0x^k5h6h7h_k`k8h9h{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#yYUZU0U$y1U2U3U:l%y;l'y(y)y4U5U*y6U+y-v7U8U9U,y-y=l9g!g_e.y/y:y;y=W=y?W?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKt!ULtMt#UNtOtPtQtRtStTt-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~lVtWtambm~h:j+gb :z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHA/U:Ujm;UXtYtLg)qZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!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}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijitlulvlwlIBJBxlkilimiylzlnioiAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUC_U`U{UVC|U}U~UEmWCFmXCYCZCaVbV0CcV1C:vdVeVfV2C3CGm[g]g{e4C5C6C7C@W8C[W9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-tgV.t/thV:t;t=t?t@t[t]t;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm_t`tSmTmPi;jahc CLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L~VaW|obW=u?udher@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jynznAnBn:M;MCn}j~jakDnEnbkckFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}NiWjWkW~NlWmWnWspaOtpbOcOdOoWpWeOqWfO8DrWsWtWgOhOupZi0ibfiOjOkOlOgXmOhXnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;OdvevfvgvhvivjvkvlvuWmvnvvWovpvqvrvsvtvuv[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFpwvxvGpHpDkTl8id kPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PGWHWPpIWyvzvihgrAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNk2n3n4n5n5Q6Q6nOkPkQk7n8nRkSk9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*RPWQWRW+RSWTWUW!p,R#p-R.R/RVWWW:RXW;R#DYWZW0W=R?R$p+i,idf@R[R]R^RmX_RnX`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVv1WWvXv2WYvZv0v1v2v3v4v{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:p6v7v;p=p,kUl@i
355 raise FastAPIError( 2]W^W:W;W=W?W@W[WgXhXmXnX
356 "No response object was returned. There's a high chance that the "
357 "application code is raising an exception and a dependency with yield "
358 "has a block with a bare except, or a block with except Exception, "
359 "and is not raising the exception again. Read more about it in the "
360 "docs: https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-with-yield/#dependencies-with-yield-and-except"
361 )
362 return response 2e $D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwExVyV}nzV{t|tQgar}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajYmZm0m1mwFxF2mbjcjdj3m4mejfj5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGGVHVIVJGJVKVLVtoKGuoLGMGNGMVNVOGOVPGawPVQVRVQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuSVuuvuTVwuxuyuzuAuBuCu$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGoEuFuHoIoGj-kDhf UHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeI3V4VQo5VGuHuVgcrJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj]m^m_m`meJfJ{mRjSjTj|m}mUjVj~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqK$V%V'VrK(V)V*V#osK$otKuKvK+V,VwK-VxKcw.V/V:VyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u;V5u6u=V7u8u9u!u#u$u%u*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o(u)u=o?o/j.kUha dwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYwPUQU2lRUntotGg'qptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4h?k@k[k]kZx0x^k5h6h7h_k`k8h9h{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !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~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#yYUZU0U$y1U2U3U:l%y;l'y(y)y4U5U*y6U+y-v7U8U9U,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKt!ULtMt#UNtOtPtQtRtStTt-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~lVtWtambm~h:j+gb :z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHA/U:Ujm;UXtYtLg)qZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!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}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijitlulvlwlIBJBxlkilimiylzlnioiAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUC_U`U{UVC|U}U~UEmWCFmXCYCZCaVbV0CcV1C:vdVeVfV2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-tgV.t/thV:t;t=t?t@t[t]t;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm_t`tSmTmPi;jahc CLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L~VaW|obW=u?udher@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jynznAnBn:M;MCn}j~jakDnEnbkckFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}NiWjWkW~NlWmWnWspaOtpbOcOdOoWpWeOqWfO8DrWsWtWgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;OdvevfvgvhvivjvkvlvuWmvnvvWovpvqvrvsvtvuv[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFpwvxvGpHpDkTl8id kPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PGWHWPpIWyvzvihgrAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNk2n3n4n5n5Q6Q6nOkPkQk7n8nRkSk9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*RPWQWRW+RSWTWUW!p,R#p-R.R/RVWWW:RXW;R#DYWZW0W=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVv1WWvXv2WYvZv0v1v2v3v4v{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:p6v7v;p=p,kUl@i
364 return app 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
367def get_websocket_app( 1efabcd
368 dependant: Dependant,
369 dependency_overrides_provider: Optional[Any] = None,
370 embed_body_fields: bool = False,
371) -> Callable[[WebSocket], Coroutine[Any, Any, Any]]:
372 async def app(websocket: WebSocket) -> None: 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
373 async with AsyncExitStack() as async_exit_stack: 2%9'9(9)9*9$%+%+9,9-9.9,%-%.%nf`f0f/%:%;%=%?%/9:9;9=9?9@9*%[9]9^9_9`9@%[%]%of%fpf^%_%`%{%|%{9|9}9~9a!%%}%b!c!d!e!f!~%a'b'qf{f1fc'd'e'f'g'g!h!i!j!k!'%h'l!m!n!o!p!i'j'k'rf|f2fl'm'n'o'p'q!r!s!t!u!(%q'v!w!x!y!z!r's't'sf}f3fu'v'w'x'y'A!B!C!D!E!)%z'F!G!H!I!J!A'B'C'tf~f4fD'E'F'G'H'
374 # TODO: remove this scope later, after a few releases
375 # This scope fastapi_astack is no longer used by FastAPI, kept for
376 # compatibility, just in case
377 websocket.scope["fastapi_astack"] = async_exit_stack 2%9'9(9)9*9$%+%+9,9-9.9,%-%.%nf`f0f/%:%;%=%?%/9:9;9=9?9@9*%[9]9^9_9`9@%[%]%of%fpf^%_%`%{%|%{9|9}9~9a!%%}%b!c!d!e!f!~%a'b'qf{f1fc'd'e'f'g'g!h!i!j!k!'%h'l!m!n!o!p!i'j'k'rf|f2fl'm'n'o'p'q!r!s!t!u!(%q'v!w!x!y!z!r's't'sf}f3fu'v'w'x'y'A!B!C!D!E!)%z'F!G!H!I!J!A'B'C'tf~f4fD'E'F'G'H'
378 solved_result = await solve_dependencies( 2%9'9(9)9*9$%+%+9,9-9.9,%-%.%nf`f0f/%:%;%=%?%/9:9;9=9?9@9*%[9]9^9_9`9@%[%]%of%fpf^%_%`%{%|%{9|9}9~9a!%%}%b!c!d!e!f!~%a'b'qf{f1fc'd'e'f'g'g!h!i!j!k!'%h'l!m!n!o!p!i'j'k'rf|f2fl'm'n'o'p'q!r!s!t!u!(%q'v!w!x!y!z!r's't'sf}f3fu'v'w'x'y'A!B!C!D!E!)%z'F!G!H!I!J!A'B'C'tf~f4fD'E'F'G'H'
379 request=websocket,
380 dependant=dependant,
381 dependency_overrides_provider=dependency_overrides_provider,
382 async_exit_stack=async_exit_stack,
383 embed_body_fields=embed_body_fields,
384 )
385 if solved_result.errors: 2%9'9(9)9*9$%+9,9-9.9,%-%.%nf0f/%:%;%=%?%/9:9;9=9?9@9[9]9^9_9`9@%[%]%ofpf^%_%`%{%|%{9|9}9~9a!%%b!c!d!e!f!~%a'b'qf1fc'd'e'f'g'g!h!i!j!k!'%l!m!n!o!p!i'j'k'rf2fl'm'n'o'p'q!r!s!t!u!(%v!w!x!y!z!r's't'sf3fu'v'w'x'y'A!B!C!D!E!)%F!G!H!I!J!A'B'C'tf4fD'E'F'G'H'
386 raise WebSocketRequestValidationError( 2$%0f@9pf%%1f'%2f(%3f)%4f
387 _normalize_errors(solved_result.errors)
388 )
389 assert dependant.call is not None, "dependant.call must be a function" 2%9'9(9)9*9+9,9-9.9,%-%.%nf/%:%;%=%?%/9:9;9=9?9[9]9^9_9`9@%[%]%of^%_%`%{%|%{9|9}9~9a!b!c!d!e!f!~%a'b'qfc'd'e'f'g'g!h!i!j!k!l!m!n!o!p!i'j'k'rfl'm'n'o'p'q!r!s!t!u!v!w!x!y!z!r's't'sfu'v'w'x'y'A!B!C!D!E!F!G!H!I!J!A'B'C'tfD'E'F'G'H'
390 await dependant.call(**solved_result.values) 2%9'9(9)9*9+9,9-9.9,%-%.%nf/%:%;%=%?%/9:9;9=9?9@9*%[9]9^9_9`9@%[%]%of%fpf^%_%`%{%|%{9|9}9~9a!b!c!d!e!f!~%a'b'qfc'd'e'f'g'g!h!i!j!k!l!m!n!o!p!i'j'k'rfl'm'n'o'p'q!r!s!t!u!v!w!x!y!z!r's't'sfu'v'w'x'y'A!B!C!D!E!F!G!H!I!J!A'B'C'tfD'E'F'G'H'
392 return app 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
395class APIWebSocketRoute(routing.WebSocketRoute): 1efabcd
396 def __init__( 1efabcd
397 self,
398 path: str,
399 endpoint: Callable[..., Any],
400 *,
401 name: Optional[str] = None,
402 dependencies: Optional[Sequence[params.Depends]] = None,
403 dependency_overrides_provider: Optional[Any] = None,
404 ) -> None:
405 self.path = path 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
406 self.endpoint = endpoint 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
407 self.name = get_name(endpoint) if name is None else name 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
408 self.dependencies = list(dependencies or []) 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
409 self.path_regex, self.path_format, self.param_convertors = compile_path(path) 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
410 self.dependant = get_dependant(path=self.path_format, call=self.endpoint) 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
411 for depends in self.dependencies[::-1]: 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
412 self.dependant.dependencies.insert( 1efabcd
413 0,
414 get_parameterless_sub_dependant(depends=depends, path=self.path_format),
415 )
416 self._flat_dependant = get_flat_dependant(self.dependant) 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
417 self._embed_body_fields = _should_embed_body_fields( 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
418 self._flat_dependant.body_params
419 )
420 self.app = websocket_session( 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
421 get_websocket_app(
422 dependant=self.dependant,
423 dependency_overrides_provider=dependency_overrides_provider,
424 embed_body_fields=self._embed_body_fields,
425 )
426 )
428 def matches(self, scope: Scope) -> Tuple[Match, Scope]: 1efabcd
429 match, child_scope = super().matches(scope) 2%9'9I'O'(9P')9*9$%+%+9,9-9.9,%-%.%nf`f0f/%+':%;%=%?%,'/9:9J'Q';9R'=9?9@9*%[9]9^9_9`9@%[%]%of%fpf^%-'_%`%{%|%.'{9|9K'S'}9T'~9a!%%}%b!c!d!e!f!~%a'b'qf{f1fc'/'d'e'f'g':'g!h!L'U'i!V'j!k!'%h'l!m!n!o!p!i'j'k'rf|f2fl';'m'n'o'p'='q!r!M'W's!X't!u!(%q'v!w!x!y!z!r's't'sf}f3fu'?'v'w'x'y'@'A!B!N'Y'C!Z'D!E!)%z'F!G!H!I!J!A'B'C'tf~f4fD'['E'F'G'H']'
430 if match != Match.NONE: 2%9'9I'O'(9P')9*9$%+%+9,9-9.9,%-%.%nf`f0f/%+':%;%=%?%,'/9:9J'Q';9R'=9?9@9*%[9]9^9_9`9@%[%]%of%fpf^%-'_%`%{%|%.'{9|9K'S'}9T'~9a!%%}%b!c!d!e!f!~%a'b'qf{f1fc'/'d'e'f'g':'g!h!L'U'i!V'j!k!'%h'l!m!n!o!p!i'j'k'rf|f2fl';'m'n'o'p'='q!r!M'W's!X't!u!(%q'v!w!x!y!z!r's't'sf}f3fu'?'v'w'x'y'@'A!B!N'Y'C!Z'D!E!)%z'F!G!H!I!J!A'B'C'tf~f4fD'['E'F'G'H']'
431 child_scope["route"] = self 2%9'9(9)9*9$%+%+9,9-9.9,%-%.%nf`f0f/%:%;%=%?%/9:9;9=9?9@9*%[9]9^9_9`9@%[%]%of%fpf^%_%`%{%|%{9|9}9~9a!%%}%b!c!d!e!f!~%a'b'qf{f1fc'd'e'f'g'g!h!i!j!k!'%h'l!m!n!o!p!i'j'k'rf|f2fl'm'n'o'p'q!r!s!t!u!(%q'v!w!x!y!z!r's't'sf}f3fu'v'w'x'y'A!B!C!D!E!)%z'F!G!H!I!J!A'B'C'tf~f4fD'E'F'G'H'
432 return match, child_scope 2%9'9I'O'(9P')9*9$%+%+9,9-9.9,%-%.%nf`f0f/%+':%;%=%?%,'/9:9J'Q';9R'=9?9@9*%[9]9^9_9`9@%[%]%of%fpf^%-'_%`%{%|%.'{9|9K'S'}9T'~9a!%%}%b!c!d!e!f!~%a'b'qf{f1fc'/'d'e'f'g':'g!h!L'U'i!V'j!k!'%h'l!m!n!o!p!i'j'k'rf|f2fl';'m'n'o'p'='q!r!M'W's!X't!u!(%q'v!w!x!y!z!r's't'sf}f3fu'?'v'w'x'y'@'A!B!N'Y'C!Z'D!E!)%z'F!G!H!I!J!A'B'C'tf~f4fD'['E'F'G'H']'
435class APIRoute(routing.Route): 1efabcd
436 def __init__( 1efabcd
437 self,
438 path: str,
439 endpoint: Callable[..., Any],
440 *,
441 response_model: Any = Default(None),
442 status_code: Optional[int] = None,
443 tags: Optional[List[Union[str, Enum]]] = None,
444 dependencies: Optional[Sequence[params.Depends]] = None,
445 summary: Optional[str] = None,
446 description: Optional[str] = None,
447 response_description: str = "Successful Response",
448 responses: Optional[Dict[Union[int, str], Dict[str, Any]]] = None,
449 deprecated: Optional[bool] = None,
450 name: Optional[str] = None,
451 methods: Optional[Union[Set[str], List[str]]] = None,
452 operation_id: Optional[str] = None,
453 response_model_include: Optional[IncEx] = None,
454 response_model_exclude: Optional[IncEx] = None,
455 response_model_by_alias: bool = True,
456 response_model_exclude_unset: bool = False,
457 response_model_exclude_defaults: bool = False,
458 response_model_exclude_none: bool = False,
459 include_in_schema: bool = True,
460 response_class: Union[Type[Response], DefaultPlaceholder] = Default(
461 JSONResponse
462 ),
463 dependency_overrides_provider: Optional[Any] = None,
464 callbacks: Optional[List[BaseRoute]] = None,
465 openapi_extra: Optional[Dict[str, Any]] = None,
466 generate_unique_id_function: Union[
467 Callable[["APIRoute"], str], DefaultPlaceholder
468 ] = Default(generate_unique_id),
469 ) -> None:
470 self.path = path 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
471 self.endpoint = endpoint 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
472 if isinstance(response_model, DefaultPlaceholder): 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
473 return_annotation = get_typed_return_annotation(endpoint) 2e Cc'ficY hb- Xb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 +evdwdYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 -exdyd0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU Cb~cDbIcadSc~bac/ezdAdEb^ E K g h ~ /cbd)cbc:ecdOcxbb Fc*fccT eb, FbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV GbfdHbJcgdTcfcgc;eBdCdIb_ F L i j ab:chd*chc=eidPcybc Gc+fqc0 jb/ 1bjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 2bld3bKcmdUctcuc?eDdEd4b| I O o p fb;cnd+cvc@eodQcJbd Hc,fwc1 kb: 5bpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 6brd7bLcsdVczcAc[eFdGd8b} J P q r gb=ctd,cBc]eudRcKb
474 if lenient_issubclass(return_annotation, Response): 2e Cc'ficY hb- Xb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 +evdwdYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 -exdyd0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU Cb~cDbIcadSc~bac/ezdAdEb^ E K g h ~ /cbd)cbc:ecdOcxbb Fc*fccT eb, FbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV GbfdHbJcgdTcfcgc;eBdCdIb_ F L i j ab:chd*chc=eidPcybc Gc+fqc0 jb/ 1bjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 2bld3bKcmdUctcuc?eDdEd4b| I O o p fb;cnd+cvc@eodQcJbd Hc,fwc1 kb: 5bpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 6brd7bLcsdVczcAc[eFdGd8b} J P q r gb=ctd,cBc]eudRcKb
475 response_model = None 1efabcd
476 else:
477 response_model = return_annotation 2e Cc'ficY hb- Xb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 +evdwdYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 -exdyd0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU Cb~cDbIcadSc~bac/ezdAdEb^ E K g h ~ /cbd)cbc:ecdOcxbb Fc*fccT eb, FbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV GbfdHbJcgdTcfcgc;eBdCdIb_ F L i j ab:chd*chc=eidPcybc Gc+fqc0 jb/ 1bjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 2bld3bKcmdUctcuc?eDdEd4b| I O o p fb;cnd+cvc@eodQcJbd Hc,fwc1 kb: 5bpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 6brd7bLcsdVczcAc[eFdGd8b} J P q r gb=ctd,cBc]eudRcKb
478 self.response_model = response_model 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
479 self.summary = summary 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
480 self.response_description = response_description 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
481 self.deprecated = deprecated 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
482 self.operation_id = operation_id 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
483 self.response_model_include = response_model_include 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
484 self.response_model_exclude = response_model_exclude 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
485 self.response_model_by_alias = response_model_by_alias 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
486 self.response_model_exclude_unset = response_model_exclude_unset 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
487 self.response_model_exclude_defaults = response_model_exclude_defaults 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
488 self.response_model_exclude_none = response_model_exclude_none 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
489 self.include_in_schema = include_in_schema 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
490 self.response_class = response_class 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
491 self.dependency_overrides_provider = dependency_overrides_provider 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
492 self.callbacks = callbacks 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
493 self.openapi_extra = openapi_extra 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
494 self.generate_unique_id_function = generate_unique_id_function 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
495 self.tags = tags or [] 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
496 self.responses = responses or {} 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
497 self.name = get_name(endpoint) if name is None else name 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
498 self.path_regex, self.path_format, self.param_convertors = compile_path(path) 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
499 if methods is None: 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
500 methods = ["GET"] 1efabcd
501 self.methods: Set[str] = {method.upper() for method in methods} 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
502 if isinstance(generate_unique_id_function, DefaultPlaceholder): 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
503 current_generate_unique_id: Callable[[APIRoute], str] = ( 2e Cc'ficY hb- XbnbtbLbMbjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. ZbobubNbObncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ BblbrbPbQb|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, FbmbsbRbSbdcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvbTbUbrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwbVbWbxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
504 generate_unique_id_function.value
505 )
506 else:
507 current_generate_unique_id = generate_unique_id_function 2e 9b8c!b#b$bLbMb?cf %b9c'b(b)bNbOb^ca *b!c+b,b-bPbQb|cb .b#c/b:b;bRbSbddc =b$c?b@b[bTbUbjdd ]b%c^b_b`bVbWbpd
508 self.unique_id = self.operation_id or current_generate_unique_id(self) 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
509 # normalize enums e.g. http.HTTPStatus
510 if isinstance(status_code, IntEnum): 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
511 status_code = int(status_code) 2e Ybf 0ba Ebb Ibc 4bd 8b
512 self.status_code = status_code 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
513 if self.response_model: 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
514 assert is_body_allowed_for_status_code(status_code), ( 2e - nbtb9b8c!b#b$bLbMbw ! x WcXc2 ? ' +eufvf` G M k l ,ef . obub%b9c'b(b)bNbOby # z YcZc3 @ ( -ewfxf{ H N m n .ea + lbrb*b!c+b,b-bPbQbs 6 t 0c1cU ; 8 /eyfzf^ E K g h :eQ b , mbsb.b#c/b:b;bRbSbu 7 v 2c3cV = 9 ;eAfBf_ F L i j =eR c / pbvb=b$c?b@b[bTbUbA $ B 4c5c4 [ ) ?eCfDf| I O o p @eW d : qbwb]b%c^b_b`bVbWbC % D 6c7c5 ] * [eEfFf} J P q r ]eX
515 f"Status code {status_code} must not have a response body"
516 )
517 response_name = "Response_" + self.unique_id 2e - nbtb9b8c!b#b$bLbMbw ! x WcXc2 ? ' +eufvf` G M k l ,ef . obub%b9c'b(b)bNbOby # z YcZc3 @ ( -ewfxf{ H N m n .ea + lbrb*b!c+b,b-bPbQbs 6 t 0c1cU ; 8 /eyfzf^ E K g h :eQ b , mbsb.b#c/b:b;bRbSbu 7 v 2c3cV = 9 ;eAfBf_ F L i j =eR c / pbvb=b$c?b@b[bTbUbA $ B 4c5c4 [ ) ?eCfDf| I O o p @eW d : qbwb]b%c^b_b`bVbWbC % D 6c7c5 ] * [eEfFf} J P q r ]eX
518 self.response_field = create_model_field( 2e - nbtb9b8c!b#b$bLbMbw ! x WcXc2 ? ' +eufvf` G M k l ,ef . obub%b9c'b(b)bNbOby # z YcZc3 @ ( -ewfxf{ H N m n .ea + lbrb*b!c+b,b-bPbQbs 6 t 0c1cU ; 8 /eyfzf^ E K g h :eQ b , mbsb.b#c/b:b;bRbSbu 7 v 2c3cV = 9 ;eAfBf_ F L i j =eR c / pbvb=b$c?b@b[bTbUbA $ B 4c5c4 [ ) ?eCfDf| I O o p @eW d : qbwb]b%c^b_b`bVbWbC % D 6c7c5 ] * [eEfFf} J P q r ]eX
519 name=response_name,
520 type_=self.response_model,
521 mode="serialization",
522 )
523 # Create a clone of the field, so that a Pydantic submodel is not returned
524 # as is just because it's an instance of a subclass of a more limited class
525 # e.g. UserInDB (containing hashed_password) could be a subclass of User
526 # that doesn't have the hashed_password. But because it's a subclass, it
527 # would pass the validation and be returned as is.
528 # By being a new field, no inheritance will be passed as is. A new model
529 # will always be created.
530 # TODO: remove when deprecating Pydantic v1
531 self.secure_cloned_response_field: Optional[ModelField] = ( 2e - nbtb9b8c!b#b$bLbMbw ! x WcXc2 ? ' ` G M k l f . obub%b9c'b(b)bNbOby # z YcZc3 @ ( { H N m n a + lbrb*b!c+b,b-bPbQbs 6 t 0c1cU ; 8 ^ E K g h Q b , mbsb.b#c/b:b;bRbSbu 7 v 2c3cV = 9 _ F L i j R c / pbvb=b$c?b@b[bTbUbA $ B 4c5c4 [ ) | I O o p W d : qbwb]b%c^b_b`bVbWbC % D 6c7c5 ] * } J P q r X
532 create_cloned_field(self.response_field)
533 )
534 else:
535 self.response_field = None # type: ignore 2e Cc'ficY hbXb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 vdwdYbbb-c[c'clc]cMczbf Dc(fmcZ ibZb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 xdyd0bcb.c`c(cpc{cNcAba Ec)f{bS dbBb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU Cb~cDbIcadSc~baczdAdEb~ /cbd)cbccdOcxbb Fc*fccT ebFbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV GbfdHbJcgdTcfcgcBdCdIbab:chd*chcidPcybc Gc+fqc0 jb1bjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 2bld3bKcmdUctcucDdEd4bfb;cnd+cvcodQcJbd Hc,fwc1 kb5bpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 6brd7bLcsdVczcAcFdGd8bgb=ctd,cBcudRcKb
536 self.secure_cloned_response_field = None 2e Cc'ficY hbXb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 vdwdYbbb-c[c'clc]cMczbf Dc(fmcZ ibZb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 xdyd0bcb.c`c(cpc{cNcAba Ec)f{bS dbBb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU Cb~cDbIcadSc~baczdAdEb~ /cbd)cbccdOcxbb Fc*fccT ebFbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV GbfdHbJcgdTcfcgcBdCdIbab:chd*chcidPcybc Gc+fqc0 jb1bjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 2bld3bKcmdUctcucDdEd4bfb;cnd+cvcodQcJbd Hc,fwc1 kb5bpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 6brd7bLcsdVczcAcFdGd8bgb=ctd,cBcudRcKb
537 self.dependencies = list(dependencies or []) 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' vdwdYb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( xdyd0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~baczdAdEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcBdCdIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcucDdEd4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAcFdGd8b} J P q r gb=ctd,cBcudRcKbX
538 self.description = description or inspect.cleandoc(self.endpoint.__doc__ or "") 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' vdwdYb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( xdyd0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~baczdAdEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcBdCdIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcucDdEd4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAcFdGd8b} J P q r gb=ctd,cBcudRcKbX
539 # if a "form feed" character (page break) is found in the description text,
540 # truncate description text to the content preceding the first "form feed"
541 self.description = self.description.split("\f")[0].strip() 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' vdwdYb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( xdyd0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~baczdAdEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcBdCdIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcucDdEd4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAcFdGd8b} J P q r gb=ctd,cBcudRcKbX
542 response_fields = {} 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' vdwdYb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( xdyd0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~baczdAdEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcBdCdIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcucDdEd4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAcFdGd8b} J P q r gb=ctd,cBcudRcKbX
543 for additional_status_code, response in self.responses.items(): 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' vdwdYb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( xdyd0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~baczdAdEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcBdCdIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcucDdEd4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAcFdGd8b} J P q r gb=ctd,cBcudRcKbX
544 assert isinstance(response, dict), "An additional response must be a dict" 2e 9b8c!b#b$bLbMbw ! x WcXc2 vdwdf %b9c'b(b)bNbOby # z YcZc3 xdyda *b!c+b,b-bPbQbs 6 t 0c1cU zdAdb .b#c/b:b;bRbSbu 7 v 2c3cV BdCdc =b$c?b@b[bTbUbA $ B 4c5c4 DdEdd ]b%c^b_b`bVbWbC % D 6c7c5 FdGd
545 model = response.get("model") 2e 9b8c!b#b$bLbMbw ! x WcXc2 vdwdf %b9c'b(b)bNbOby # z YcZc3 xdyda *b!c+b,b-bPbQbs 6 t 0c1cU zdAdb .b#c/b:b;bRbSbu 7 v 2c3cV BdCdc =b$c?b@b[bTbUbA $ B 4c5c4 DdEdd ]b%c^b_b`bVbWbC % D 6c7c5 FdGd
546 if model: 2e 9b8c!b#b$bLbMbw ! x WcXc2 vdwdf %b9c'b(b)bNbOby # z YcZc3 xdyda *b!c+b,b-bPbQbs 6 t 0c1cU zdAdb .b#c/b:b;bRbSbu 7 v 2c3cV BdCdc =b$c?b@b[bTbUbA $ B 4c5c4 DdEdd ]b%c^b_b`bVbWbC % D 6c7c5 FdGd
547 assert is_body_allowed_for_status_code(additional_status_code), ( 2e 9b8c!b#b$bLbMbw ! x WcXc2 vdwdf %b9c'b(b)bNbOby # z YcZc3 xdyda *b!c+b,b-bPbQbs 6 t 0c1cU zdAdb .b#c/b:b;bRbSbu 7 v 2c3cV BdCdc =b$c?b@b[bTbUbA $ B 4c5c4 DdEdd ]b%c^b_b`bVbWbC % D 6c7c5 FdGd
548 f"Status code {additional_status_code} must not have a response body"
549 )
550 response_name = f"Response_{additional_status_code}_{self.unique_id}" 2e 9b8c!b#b$bLbMbw ! x WcXc2 vdwdf %b9c'b(b)bNbOby # z YcZc3 xdyda *b!c+b,b-bPbQbs 6 t 0c1cU zdAdb .b#c/b:b;bRbSbu 7 v 2c3cV BdCdc =b$c?b@b[bTbUbA $ B 4c5c4 DdEdd ]b%c^b_b`bVbWbC % D 6c7c5 FdGd
551 response_field = create_model_field( 2e 9b8c!b#b$bLbMbw ! x WcXc2 vdwdf %b9c'b(b)bNbOby # z YcZc3 xdyda *b!c+b,b-bPbQbs 6 t 0c1cU zdAdb .b#c/b:b;bRbSbu 7 v 2c3cV BdCdc =b$c?b@b[bTbUbA $ B 4c5c4 DdEdd ]b%c^b_b`bVbWbC % D 6c7c5 FdGd
552 name=response_name, type_=model, mode="serialization"
553 )
554 response_fields[additional_status_code] = response_field 2e 9b8c!b#b$bLbMbw ! x WcXc2 f %b9c'b(b)bNbOby # z YcZc3 a *b!c+b,b-bPbQbs 6 t 0c1cU b .b#c/b:b;bRbSbu 7 v 2c3cV c =b$c?b@b[bTbUbA $ B 4c5c4 d ]b%c^b_b`bVbWbC % D 6c7c5
555 if response_fields: 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
556 self.response_fields: Dict[Union[int, str], ModelField] = response_fields 2e 9b8c!b#b$bLbMbw ! x WcXc2 f %b9c'b(b)bNbOby # z YcZc3 a *b!c+b,b-bPbQbs 6 t 0c1cU b .b#c/b:b;bRbSbu 7 v 2c3cV c =b$c?b@b[bTbUbA $ B 4c5c4 d ]b%c^b_b`bVbWbC % D 6c7c5
557 else:
558 self.response_fields = {} 2e Cc'ficY hb- Xbnbtb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, FbmbsbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
560 assert callable(endpoint), "An endpoint must be a callable" 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
561 self.dependant = get_dependant(path=self.path_format, call=self.endpoint) 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
562 for depends in self.dependencies[::-1]: 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
563 self.dependant.dependencies.insert( 1efabcd
564 0,
565 get_parameterless_sub_dependant(depends=depends, path=self.path_format),
566 )
567 self._flat_dependant = get_flat_dependant(self.dependant) 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
568 self._embed_body_fields = _should_embed_body_fields( 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
569 self._flat_dependant.body_params
570 )
571 self.body_field = get_body_field( 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
572 flat_dependant=self._flat_dependant,
573 name=self.unique_id,
574 embed_body_fields=self._embed_body_fields,
575 )
576 self.app = request_response(self.get_route_handler()) 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
578 def get_route_handler(self) -> Callable[[Request], Coroutine[Any, Any, Response]]: 1efabcd
579 return get_request_handler( 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
580 dependant=self.dependant,
581 body_field=self.body_field,
582 status_code=self.status_code,
583 response_class=self.response_class,
584 response_field=self.secure_cloned_response_field,
585 response_model_include=self.response_model_include,
586 response_model_exclude=self.response_model_exclude,
587 response_model_by_alias=self.response_model_by_alias,
588 response_model_exclude_unset=self.response_model_exclude_unset,
589 response_model_exclude_defaults=self.response_model_exclude_defaults,
590 response_model_exclude_none=self.response_model_exclude_none,
591 dependency_overrides_provider=self.dependency_overrides_provider,
592 embed_body_fields=self._embed_body_fields,
593 )
595 def matches(self, scope: Scope) -> Tuple[Match, Scope]: 1efabcd
596 match, child_scope = super().matches(scope) 2$D%D'D%9(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyE'9zEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2ME^'coNEOEw ! x 2 PEQERESETEUEVEWEXE_'YEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFFI'O'(9P'` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmG$'nGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHf'clcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGH`'HHMcIH~eJHKH)9zbLHMHNHOHPHQHRHSH0V*91V$%+%+9,9-92V.9TH{'FoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWH/9XHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogI:9hIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uI|'UovIwIy # z 3 xIyIzIAIBICIDIEIFI}'GIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJJ'Q';9R'{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J%'`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLf(cpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoL~'pLNcqL^erLsL=9AbtLuLvLwLxLyLzLAL`V?9{V@9*%[9]9^9|V_9}V`9BLa(:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfw{9gwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w|92w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(wb(6l)w*ws 6 t U +w,w-w.w/w:w;w=w?wc(@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8xK'S'}9T'^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPy''QyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghf)cbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9zd(!zOc#z`e$z%z~9xb'z(z)z*z+z,z-z.z+Ua!,U%%}%b!c!d!-Ue!.Uf!/ze(Q }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=zg!?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKAh!LAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAf(nmZA0Au 7 v V 1A2A3A4A5A6A7A8A9Ag(!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRBL'U'i!V'_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyC('zCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkf*chcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDh(TDPcUD|eVDWDj!ybXDYDZD0D1D2D3D4DoVk!pV'%h'l!m!n!qVo!rVp!5Di(R QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELq!FLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=Lr!?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMj(bpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMk(oMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`MM'W's!X'| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N)''N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTf+cvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{Ol(|OQc}Ocf~OaPt!JbbPcPdPePfPgPhPiPCWu!DW(%q'v!w!x!EWy!FWz!jPm(W EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPA!nPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7PB!8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.Pn(Tp/P:PC % D 5 ;P=P?P@P[P]P^P_P`Po({P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'QN'Y'C!Z'} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVR*'WRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXf,cBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(Sp()SRc*Sef+S,SD!Kb-S.S/S:S;S=S?S@S9WE!!W)%z'F!G!H!#WI!$WJ![Sq(X /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i
597 if match != Match.NONE: 2$D%D'D%9(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyE'9zEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2ME^'coNEOEw ! x 2 PEQERESETEUEVEWEXE_'YEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFFI'O'(9P'` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmG$'nGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHf'clcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGH`'HHMcIH~eJHKH)9zbLHMHNHOHPHQHRHSH0V*91V$%+%+9,9-92V.9TH{'FoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWH/9XHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogI:9hIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uI|'UovIwIy # z 3 xIyIzIAIBICIDIEIFI}'GIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJJ'Q';9R'{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J%'`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLf(cpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoL~'pLNcqL^erLsL=9AbtLuLvLwLxLyLzLAL`V?9{V@9*%[9]9^9|V_9}V`9BLa(:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfw{9gwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w|92w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(wb(6l)w*ws 6 t U +w,w-w.w/w:w;w=w?wc(@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8xK'S'}9T'^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPy''QyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghf)cbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9zd(!zOc#z`e$z%z~9xb'z(z)z*z+z,z-z.z+Ua!,U%%}%b!c!d!-Ue!.Uf!/ze(Q }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=zg!?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKAh!LAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAf(nmZA0Au 7 v V 1A2A3A4A5A6A7A8A9Ag(!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRBL'U'i!V'_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyC('zCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkf*chcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDh(TDPcUD|eVDWDj!ybXDYDZD0D1D2D3D4DoVk!pV'%h'l!m!n!qVo!rVp!5Di(R QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELq!FLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=Lr!?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMj(bpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMk(oMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`MM'W's!X'| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N)''N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTf+cvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{Ol(|OQc}Ocf~OaPt!JbbPcPdPePfPgPhPiPCWu!DW(%q'v!w!x!EWy!FWz!jPm(W EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPA!nPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7PB!8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.Pn(Tp/P:PC % D 5 ;P=P?P@P[P]P^P_P`Po({P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'QN'Y'C!Z'} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVR*'WRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXf,cBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(Sp()SRc*Sef+S,SD!Kb-S.S/S:S;S=S?S@S9WE!!W)%z'F!G!H!#WI!$WJ![Sq(X /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i
598 child_scope["route"] = self 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFFI'` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmG$'nGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJJ'{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J%'`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8xK'^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPy''QyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRBL'_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyC('zCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`MM'| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N)''N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'QN'} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVR*'WRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i
599 return match, child_scope 2$D%D'D%9(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyE'9zEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2ME^'coNEOEw ! x 2 PEQERESETEUEVEWEXE_'YEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFFI'O'(9P'` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmG$'nGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHf'clcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGH`'HHMcIH~eJHKH)9zbLHMHNHOHPHQHRHSH0V*91V$%+%+9,9-92V.9TH{'FoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWH/9XHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogI:9hIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uI|'UovIwIy # z 3 xIyIzIAIBICIDIEIFI}'GIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJJ'Q';9R'{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J%'`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLf(cpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoL~'pLNcqL^erLsL=9AbtLuLvLwLxLyLzLAL`V?9{V@9*%[9]9^9|V_9}V`9BLa(:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfw{9gwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w|92w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(wb(6l)w*ws 6 t U +w,w-w.w/w:w;w=w?wc(@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8xK'S'}9T'^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPy''QyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghf)cbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9zd(!zOc#z`e$z%z~9xb'z(z)z*z+z,z-z.z+Ua!,U%%}%b!c!d!-Ue!.Uf!/ze(Q }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=zg!?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKAh!LAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAf(nmZA0Au 7 v V 1A2A3A4A5A6A7A8A9Ag(!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRBL'U'i!V'_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyC('zCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkf*chcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDh(TDPcUD|eVDWDj!ybXDYDZD0D1D2D3D4DoVk!pV'%h'l!m!n!qVo!rVp!5Di(R QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELq!FLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=Lr!?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMj(bpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMk(oMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`MM'W's!X'| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N)''N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTf+cvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{Ol(|OQc}Ocf~OaPt!JbbPcPdPePfPgPhPiPCWu!DW(%q'v!w!x!EWy!FWz!jPm(W EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPA!nPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7PB!8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.Pn(Tp/P:PC % D 5 ;P=P?P@P[P]P^P_P`Po({P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'QN'Y'C!Z'} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVR*'WRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXf,cBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(Sp()SRc*Sef+S,SD!Kb-S.S/S:S;S=S?S@S9WE!!W)%z'F!G!H!#WI!$WJ.
611 ## Example
613 ```python
614 from fastapi import APIRouter, FastAPI
616 app = FastAPI()
617 router = APIRouter()
620 @router.get("/users/", tags=["users"])
621 async def read_users():
622 return [{"username": "Rick"}, {"username": "Morty"}]
625 app.include_router(router)
626 ```
627 """
629 def __init__( 1efabcd
630 self,
631 *,
632 prefix: Annotated[str, Doc("An optional path prefix for the router.")] = "",
633 tags: Annotated[
634 Optional[List[Union[str, Enum]]],
635 Doc(
636 """
637 A list of tags to be applied to all the *path operations* in this
638 router.
640 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
642 Read more about it in the
643 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
644 """
645 ),
646 ] = None,
647 dependencies: Annotated[
648 Optional[Sequence[params.Depends]],
649 Doc(
650 """
651 A list of dependencies (using `Depends()`) to be applied to all the
652 *path operations* in this router.
654 Read more about it in the
655 [FastAPI docs for Bigger Applications - Multiple Files](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies).
656 """
657 ),
658 ] = None,
659 default_response_class: Annotated[
660 Type[Response],
661 Doc(
662 """
663 The default response class to be used.
665 Read more in the
666 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#default-response-class).
667 """
668 ),
669 ] = Default(JSONResponse),
670 responses: Annotated[
671 Optional[Dict[Union[int, str], Dict[str, Any]]],
672 Doc(
673 """
674 Additional responses to be shown in OpenAPI.
676 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
678 Read more about it in the
679 [FastAPI docs for Additional Responses in OpenAPI](https://fastapi.tiangolo.com/advanced/additional-responses/).
681 And in the
682 [FastAPI docs for Bigger Applications](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies).
683 """
684 ),
685 ] = None,
686 callbacks: Annotated[
687 Optional[List[BaseRoute]],
688 Doc(
689 """
690 OpenAPI callbacks that should apply to all *path operations* in this
691 router.
693 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
695 Read more about it in the
696 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
697 """
698 ),
699 ] = None,
700 routes: Annotated[
701 Optional[List[BaseRoute]],
702 Doc(
703 """
704 **Note**: you probably shouldn't use this parameter, it is inherited
705 from Starlette and supported for compatibility.
707 ---
709 A list of routes to serve incoming HTTP and WebSocket requests.
710 """
711 ),
712 deprecated(
713 """
714 You normally wouldn't use this parameter with FastAPI, it is inherited
715 from Starlette and supported for compatibility.
717 In FastAPI, you normally would use the *path operation methods*,
718 like `router.get()`, `router.post()`, etc.
719 """
720 ),
721 ] = None,
722 redirect_slashes: Annotated[
723 bool,
724 Doc(
725 """
726 Whether to detect and redirect slashes in URLs when the client doesn't
727 use the same format.
728 """
729 ),
730 ] = True,
731 default: Annotated[
732 Optional[ASGIApp],
733 Doc(
734 """
735 Default function handler for this router. Used to handle
736 404 Not Found errors.
737 """
738 ),
739 ] = None,
740 dependency_overrides_provider: Annotated[
741 Optional[Any],
742 Doc(
743 """
744 Only used internally by FastAPI to handle dependency overrides.
746 You shouldn't need to use it. It normally points to the `FastAPI` app
747 object.
748 """
749 ),
750 ] = None,
751 route_class: Annotated[
752 Type[APIRoute],
753 Doc(
754 """
755 Custom route (*path operation*) class to be used by this router.
757 Read more about it in the
758 [FastAPI docs for Custom Request and APIRoute class](https://fastapi.tiangolo.com/how-to/custom-request-and-route/#custom-apiroute-class-in-a-router).
759 """
760 ),
761 ] = APIRoute,
762 on_startup: Annotated[
763 Optional[Sequence[Callable[[], Any]]],
764 Doc(
765 """
766 A list of startup event handler functions.
768 You should instead use the `lifespan` handlers.
770 Read more in the [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/).
771 """
772 ),
773 ] = None,
774 on_shutdown: Annotated[
775 Optional[Sequence[Callable[[], Any]]],
776 Doc(
777 """
778 A list of shutdown event handler functions.
780 You should instead use the `lifespan` handlers.
782 Read more in the
783 [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/).
784 """
785 ),
786 ] = None,
787 # the generic to Lifespan[AppType] is the type of the top level application
788 # which the router cannot know statically, so we use typing.Any
789 lifespan: Annotated[
790 Optional[Lifespan[Any]],
791 Doc(
792 """
793 A `Lifespan` context manager handler. This replaces `startup` and
794 `shutdown` functions with a single context manager.
796 Read more in the
797 [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/).
798 """
799 ),
800 ] = None,
801 deprecated: Annotated[
802 Optional[bool],
803 Doc(
804 """
805 Mark all *path operations* in this router as deprecated.
807 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
809 Read more about it in the
810 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
811 """
812 ),
813 ] = None,
814 include_in_schema: Annotated[
815 bool,
816 Doc(
817 """
818 To include (or not) all the *path operations* in this router in the
819 generated OpenAPI.
821 This affects the generated OpenAPI (e.g. visible at `/docs`).
823 Read more about it in the
824 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
825 """
826 ),
827 ] = True,
828 generate_unique_id_function: Annotated[
829 Callable[[APIRoute], str],
830 Doc(
831 """
832 Customize the function used to generate unique IDs for the *path
833 operations* shown in the generated OpenAPI.
835 This is particularly useful when automatically generating clients or
836 SDKs for your API.
838 Read more about it in the
839 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
840 """
841 ),
842 ] = Default(generate_unique_id),
843 ) -> None:
844 super().__init__( 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f
845 routes=routes,
846 redirect_slashes=redirect_slashes,
847 default=default,
848 on_startup=on_startup,
849 on_shutdown=on_shutdown,
850 lifespan=lifespan,
851 )
852 if prefix: 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f
853 assert prefix.startswith("/"), "A path prefix must start with '/'" 1eYfZaSbTc0d1
854 assert not prefix.endswith("/"), ( 1eYfZaSbTc0d1
855 "A path prefix must not end with '/', as the routes will start with '/'"
856 )
857 self.prefix = prefix 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f
858 self.tags: List[Union[str, Enum]] = tags or [] 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f
859 self.dependencies = list(dependencies or []) 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f
860 self.deprecated = deprecated 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f
861 self.include_in_schema = include_in_schema 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f
862 self.responses = responses or {} 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f
863 self.callbacks = callbacks or [] 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f
864 self.dependency_overrides_provider = dependency_overrides_provider 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f
865 self.route_class = route_class 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f
866 self.default_response_class = default_response_class 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f
867 self.generate_unique_id_function = generate_unique_id_function 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f
869 def route( 1efabcd
870 self,
871 path: str,
872 methods: Optional[Collection[str]] = None,
873 name: Optional[str] = None,
874 include_in_schema: bool = True,
875 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
876 def decorator(func: DecoratedCallable) -> DecoratedCallable: 1efabcd
877 self.add_route( 1efabcd
878 path,
879 func,
880 methods=methods,
881 name=name,
882 include_in_schema=include_in_schema,
883 )
884 return func 1efabcd
886 return decorator 1efabcd
888 def add_api_route( 1efabcd
889 self,
890 path: str,
891 endpoint: Callable[..., Any],
892 *,
893 response_model: Any = Default(None),
894 status_code: Optional[int] = None,
895 tags: Optional[List[Union[str, Enum]]] = None,
896 dependencies: Optional[Sequence[params.Depends]] = None,
897 summary: Optional[str] = None,
898 description: Optional[str] = None,
899 response_description: str = "Successful Response",
900 responses: Optional[Dict[Union[int, str], Dict[str, Any]]] = None,
901 deprecated: Optional[bool] = None,
902 methods: Optional[Union[Set[str], List[str]]] = None,
903 operation_id: Optional[str] = None,
904 response_model_include: Optional[IncEx] = None,
905 response_model_exclude: Optional[IncEx] = None,
906 response_model_by_alias: bool = True,
907 response_model_exclude_unset: bool = False,
908 response_model_exclude_defaults: bool = False,
909 response_model_exclude_none: bool = False,
910 include_in_schema: bool = True,
911 response_class: Union[Type[Response], DefaultPlaceholder] = Default(
912 JSONResponse
913 ),
914 name: Optional[str] = None,
915 route_class_override: Optional[Type[APIRoute]] = None,
916 callbacks: Optional[List[BaseRoute]] = None,
917 openapi_extra: Optional[Dict[str, Any]] = None,
918 generate_unique_id_function: Union[
919 Callable[[APIRoute], str], DefaultPlaceholder
920 ] = Default(generate_unique_id),
921 ) -> None:
922 route_class = route_class_override or self.route_class 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
923 responses = responses or {} 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
924 combined_responses = {**self.responses, **responses} 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
925 current_response_class = get_value_or_default( 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
926 response_class, self.default_response_class
927 )
928 current_tags = self.tags.copy() 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
929 if tags: 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
930 current_tags.extend(tags) 1efabcd
931 current_dependencies = self.dependencies.copy() 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
932 if dependencies: 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
933 current_dependencies.extend(dependencies) 1efabcd
934 current_callbacks = self.callbacks.copy() 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
935 if callbacks: 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
936 current_callbacks.extend(callbacks) 2e 8cf 9ca !cb #cc $cd %c
937 current_generate_unique_id = get_value_or_default( 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
938 generate_unique_id_function, self.generate_unique_id_function
939 )
940 route = route_class( 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
941 self.prefix + path,
942 endpoint=endpoint,
943 response_model=response_model,
944 status_code=status_code,
945 tags=current_tags,
946 dependencies=current_dependencies,
947 summary=summary,
948 description=description,
949 response_description=response_description,
950 responses=combined_responses,
951 deprecated=deprecated or self.deprecated,
952 methods=methods,
953 operation_id=operation_id,
954 response_model_include=response_model_include,
955 response_model_exclude=response_model_exclude,
956 response_model_by_alias=response_model_by_alias,
957 response_model_exclude_unset=response_model_exclude_unset,
958 response_model_exclude_defaults=response_model_exclude_defaults,
959 response_model_exclude_none=response_model_exclude_none,
960 include_in_schema=include_in_schema and self.include_in_schema,
961 response_class=current_response_class,
962 name=name,
963 dependency_overrides_provider=self.dependency_overrides_provider,
964 callbacks=current_callbacks,
965 openapi_extra=openapi_extra,
966 generate_unique_id_function=current_generate_unique_id,
967 )
968 self.routes.append(route) 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
970 def api_route( 1efabcd
971 self,
972 path: str,
973 *,
974 response_model: Any = Default(None),
975 status_code: Optional[int] = None,
976 tags: Optional[List[Union[str, Enum]]] = None,
977 dependencies: Optional[Sequence[params.Depends]] = None,
978 summary: Optional[str] = None,
979 description: Optional[str] = None,
980 response_description: str = "Successful Response",
981 responses: Optional[Dict[Union[int, str], Dict[str, Any]]] = None,
982 deprecated: Optional[bool] = None,
983 methods: Optional[List[str]] = None,
984 operation_id: Optional[str] = None,
985 response_model_include: Optional[IncEx] = None,
986 response_model_exclude: Optional[IncEx] = None,
987 response_model_by_alias: bool = True,
988 response_model_exclude_unset: bool = False,
989 response_model_exclude_defaults: bool = False,
990 response_model_exclude_none: bool = False,
991 include_in_schema: bool = True,
992 response_class: Type[Response] = Default(JSONResponse),
993 name: Optional[str] = None,
994 callbacks: Optional[List[BaseRoute]] = None,
995 openapi_extra: Optional[Dict[str, Any]] = None,
996 generate_unique_id_function: Callable[[APIRoute], str] = Default(
997 generate_unique_id
998 ),
999 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
1000 def decorator(func: DecoratedCallable) -> DecoratedCallable: 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
1001 self.add_api_route( 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
1002 path,
1003 func,
1004 response_model=response_model,
1005 status_code=status_code,
1006 tags=tags,
1007 dependencies=dependencies,
1008 summary=summary,
1009 description=description,
1010 response_description=response_description,
1011 responses=responses,
1012 deprecated=deprecated,
1013 methods=methods,
1014 operation_id=operation_id,
1015 response_model_include=response_model_include,
1016 response_model_exclude=response_model_exclude,
1017 response_model_by_alias=response_model_by_alias,
1018 response_model_exclude_unset=response_model_exclude_unset,
1019 response_model_exclude_defaults=response_model_exclude_defaults,
1020 response_model_exclude_none=response_model_exclude_none,
1021 include_in_schema=include_in_schema,
1022 response_class=response_class,
1023 name=name,
1024 callbacks=callbacks,
1025 openapi_extra=openapi_extra,
1026 generate_unique_id_function=generate_unique_id_function,
1027 )
1028 return func 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX
1030 return decorator 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX
1032 def add_api_websocket_route( 1efabcd
1033 self,
1034 path: str,
1035 endpoint: Callable[..., Any],
1036 name: Optional[str] = None,
1037 *,
1038 dependencies: Optional[Sequence[params.Depends]] = None,
1039 ) -> None:
1040 current_dependencies = self.dependencies.copy() 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
1041 if dependencies: 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
1042 current_dependencies.extend(dependencies) 1efabcd
1044 route = APIWebSocketRoute( 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
1045 self.prefix + path,
1046 endpoint=endpoint,
1047 name=name,
1048 dependencies=current_dependencies,
1049 dependency_overrides_provider=self.dependency_overrides_provider,
1050 )
1051 self.routes.append(route) 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
1053 def websocket( 1efabcd
1054 self,
1055 path: Annotated[
1056 str,
1057 Doc(
1058 """
1059 WebSocket path.
1060 """
1061 ),
1062 ],
1063 name: Annotated[
1064 Optional[str],
1065 Doc(
1066 """
1067 A name for the WebSocket. Only used internally.
1068 """
1069 ),
1070 ] = None,
1071 *,
1072 dependencies: Annotated[
1073 Optional[Sequence[params.Depends]],
1074 Doc(
1075 """
1076 A list of dependencies (using `Depends()`) to be used for this
1077 WebSocket.
1079 Read more about it in the
1080 [FastAPI docs for WebSockets](https://fastapi.tiangolo.com/advanced/websockets/).
1081 """
1082 ),
1083 ] = None,
1084 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
1085 """
1086 Decorate a WebSocket function.
1088 Read more about it in the
1089 [FastAPI docs for WebSockets](https://fastapi.tiangolo.com/advanced/websockets/).
1091 **Example**
1093 ## Example
1095 ```python
1096 from fastapi import APIRouter, FastAPI, WebSocket
1098 app = FastAPI()
1099 router = APIRouter()
1101 @router.websocket("/ws")
1102 async def websocket_endpoint(websocket: WebSocket):
1103 await websocket.accept()
1104 while True:
1105 data = await websocket.receive_text()
1106 await websocket.send_text(f"Message text was: {data}")
1108 app.include_router(router)
1109 ```
1110 """
1112 def decorator(func: DecoratedCallable) -> DecoratedCallable: 1efabcd
1113 self.add_api_websocket_route( 1efabcd
1114 path, func, name=name, dependencies=dependencies
1115 )
1116 return func 1efabcd
1118 return decorator 1efabcd
1120 def websocket_route( 1efabcd
1121 self, path: str, name: Union[str, None] = None
1122 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
1123 def decorator(func: DecoratedCallable) -> DecoratedCallable: 1efabcd
1124 self.add_websocket_route(path, func, name=name) 1efabcd
1125 return func 1efabcd
1127 return decorator 1efabcd
1129 def include_router( 1efabcd
1130 self,
1131 router: Annotated["APIRouter", Doc("The `APIRouter` to include.")],
1132 *,
1133 prefix: Annotated[str, Doc("An optional path prefix for the router.")] = "",
1134 tags: Annotated[
1135 Optional[List[Union[str, Enum]]],
1136 Doc(
1137 """
1138 A list of tags to be applied to all the *path operations* in this
1139 router.
1141 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1143 Read more about it in the
1144 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
1145 """
1146 ),
1147 ] = None,
1148 dependencies: Annotated[
1149 Optional[Sequence[params.Depends]],
1150 Doc(
1151 """
1152 A list of dependencies (using `Depends()`) to be applied to all the
1153 *path operations* in this router.
1155 Read more about it in the
1156 [FastAPI docs for Bigger Applications - Multiple Files](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies).
1157 """
1158 ),
1159 ] = None,
1160 default_response_class: Annotated[
1161 Type[Response],
1162 Doc(
1163 """
1164 The default response class to be used.
1166 Read more in the
1167 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#default-response-class).
1168 """
1169 ),
1170 ] = Default(JSONResponse),
1171 responses: Annotated[
1172 Optional[Dict[Union[int, str], Dict[str, Any]]],
1173 Doc(
1174 """
1175 Additional responses to be shown in OpenAPI.
1177 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1179 Read more about it in the
1180 [FastAPI docs for Additional Responses in OpenAPI](https://fastapi.tiangolo.com/advanced/additional-responses/).
1182 And in the
1183 [FastAPI docs for Bigger Applications](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies).
1184 """
1185 ),
1186 ] = None,
1187 callbacks: Annotated[
1188 Optional[List[BaseRoute]],
1189 Doc(
1190 """
1191 OpenAPI callbacks that should apply to all *path operations* in this
1192 router.
1194 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1196 Read more about it in the
1197 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
1198 """
1199 ),
1200 ] = None,
1201 deprecated: Annotated[
1202 Optional[bool],
1203 Doc(
1204 """
1205 Mark all *path operations* in this router as deprecated.
1207 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1209 Read more about it in the
1210 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
1211 """
1212 ),
1213 ] = None,
1214 include_in_schema: Annotated[
1215 bool,
1216 Doc(
1217 """
1218 Include (or not) all the *path operations* in this router in the
1219 generated OpenAPI schema.
1221 This affects the generated OpenAPI (e.g. visible at `/docs`).
1222 """
1223 ),
1224 ] = True,
1225 generate_unique_id_function: Annotated[
1226 Callable[[APIRoute], str],
1227 Doc(
1228 """
1229 Customize the function used to generate unique IDs for the *path
1230 operations* shown in the generated OpenAPI.
1232 This is particularly useful when automatically generating clients or
1233 SDKs for your API.
1235 Read more about it in the
1236 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
1237 """
1238 ),
1239 ] = Default(generate_unique_id),
1240 ) -> None:
1241 """
1242 Include another `APIRouter` in the same current `APIRouter`.
1244 Read more about it in the
1245 [FastAPI docs for Bigger Applications](https://fastapi.tiangolo.com/tutorial/bigger-applications/).
1247 ## Example
1249 ```python
1250 from fastapi import APIRouter, FastAPI
1252 app = FastAPI()
1253 internal_router = APIRouter()
1254 users_router = APIRouter()
1256 @users_router.get("/users/")
1257 def read_users():
1258 return [{"name": "Rick"}, {"name": "Morty"}]
1260 internal_router.include_router(users_router)
1261 app.include_router(internal_router)
1262 ```
1263 """
1264 if prefix: 2e Y 0'9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z 1'%b'b(b)bNbObzUAUH N BUm n of%fpfa S 2'*b+b,b-bPbQbCUDUE K EUg h qf{f1fb T 3'.b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 4'=b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 5']b^b_b`bVbWbLUMUJ P NUq r tf~f4f
1265 assert prefix.startswith("/"), "A path prefix must start with '/'" 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
1266 assert not prefix.endswith("/"), ( 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
1267 "A path prefix must not end with '/', as the routes will start with '/'"
1268 )
1269 else:
1270 for r in router.routes: 2e Y 0'9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z 1'%b'b(b)bNbObzUAUH N BUm n of%fpfa S 2'*b+b,b-bPbQbCUDUE K EUg h qf{f1fb T 3'.b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 4'=b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 5']b^b_b`bVbWbLUMUJ P NUq r tf~f4f
1271 path = getattr(r, "path") # noqa: B009 2e Y 0'9b!b#b$bLbMbk l nf`f0ff Z 1'%b'b(b)bNbObm n of%fpfa S 2'*b+b,b-bPbQbg h qf{f1fb T 3'.b/b:b;bRbSbi j rf|f2fc 0 4'=b?b@b[bTbUbo p sf}f3fd 1 5']b^b_b`bVbWbq r tf~f4f
1272 name = getattr(r, "name", "unknown") 2e Y 0'9b!b#b$bLbMbk l nf`f0ff Z 1'%b'b(b)bNbObm n of%fpfa S 2'*b+b,b-bPbQbg h qf{f1fb T 3'.b/b:b;bRbSbi j rf|f2fc 0 4'=b?b@b[bTbUbo p sf}f3fd 1 5']b^b_b`bVbWbq r tf~f4f
1273 if path is not None and not path: 2e Y 0'9b!b#b$bLbMbk l nf`f0ff Z 1'%b'b(b)bNbObm n of%fpfa S 2'*b+b,b-bPbQbg h qf{f1fb T 3'.b/b:b;bRbSbi j rf|f2fc 0 4'=b?b@b[bTbUbo p sf}f3fd 1 5']b^b_b`bVbWbq r tf~f4f
1274 raise FastAPIError( 20'1'2'3'4'5'
1275 f"Prefix and path cannot be both empty (path operation: {name})"
1276 )
1277 if responses is None: 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f
1278 responses = {} 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f
1279 for route in router.routes: 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f
1280 if isinstance(route, APIRoute): 2e Y 9b!b#b$bLbMbk l nf`f0ff Z %b'b(b)bNbObm n of%fpfa S *b+b,b-bPbQbg h qf{f1fb T .b/b:b;bRbSbi j rf|f2fc 0 =b?b@b[bTbUbo p sf}f3fd 1 ]b^b_b`bVbWbq r tf~f4f
1281 combined_responses = {**responses, **route.responses} 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r
1282 use_response_class = get_value_or_default( 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r
1283 route.response_class,
1284 router.default_response_class,
1285 default_response_class,
1286 self.default_response_class,
1287 )
1288 current_tags = [] 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r
1289 if tags: 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r
1290 current_tags.extend(tags) 1efabcd
1291 if route.tags: 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r
1292 current_tags.extend(route.tags) 1efabcd
1293 current_dependencies: List[params.Depends] = [] 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r
1294 if dependencies: 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r
1295 current_dependencies.extend(dependencies) 1efabcd
1296 if route.dependencies: 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r
1297 current_dependencies.extend(route.dependencies) 1efabcd
1298 current_callbacks = [] 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r
1299 if callbacks: 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r
1300 current_callbacks.extend(callbacks) 1efabcd
1301 if route.callbacks: 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r
1302 current_callbacks.extend(route.callbacks) 1efabcd
1303 current_generate_unique_id = get_value_or_default( 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r
1304 route.generate_unique_id_function,
1305 router.generate_unique_id_function,
1306 generate_unique_id_function,
1307 self.generate_unique_id_function,
1308 )
1309 self.add_api_route( 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r
1310 prefix + route.path,
1311 route.endpoint,
1312 response_model=route.response_model,
1313 status_code=route.status_code,
1314 tags=current_tags,
1315 dependencies=current_dependencies,
1316 summary=route.summary,
1317 description=route.description,
1318 response_description=route.response_description,
1319 responses=combined_responses,
1320 deprecated=route.deprecated or deprecated or self.deprecated,
1321 methods=route.methods,
1322 operation_id=route.operation_id,
1323 response_model_include=route.response_model_include,
1324 response_model_exclude=route.response_model_exclude,
1325 response_model_by_alias=route.response_model_by_alias,
1326 response_model_exclude_unset=route.response_model_exclude_unset,
1327 response_model_exclude_defaults=route.response_model_exclude_defaults,
1328 response_model_exclude_none=route.response_model_exclude_none,
1329 include_in_schema=route.include_in_schema
1330 and self.include_in_schema
1331 and include_in_schema,
1332 response_class=use_response_class,
1333 name=route.name,
1334 route_class_override=type(route),
1335 callbacks=current_callbacks,
1336 openapi_extra=route.openapi_extra,
1337 generate_unique_id_function=current_generate_unique_id,
1338 )
1339 elif isinstance(route, routing.Route): 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
1340 methods = list(route.methods or []) 1efabcd
1341 self.add_route( 1efabcd
1342 prefix + route.path,
1343 route.endpoint,
1344 methods=methods,
1345 include_in_schema=route.include_in_schema,
1346 name=route.name,
1347 )
1348 elif isinstance(route, APIWebSocketRoute): 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
1349 current_dependencies = [] 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
1350 if dependencies: 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
1351 current_dependencies.extend(dependencies) 1efabcd
1352 if route.dependencies: 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
1353 current_dependencies.extend(route.dependencies) 1efabcd
1354 self.add_api_websocket_route( 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
1355 prefix + route.path,
1356 route.endpoint,
1357 dependencies=current_dependencies,
1358 name=route.name,
1359 )
1360 elif isinstance(route, routing.WebSocketRoute): 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
1361 self.add_websocket_route( 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f
1362 prefix + route.path, route.endpoint, name=route.name
1363 )
1364 for handler in router.on_startup: 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f
1365 self.add_event_handler("startup", handler) 1GHEFIJ
1366 for handler in router.on_shutdown: 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f
1367 self.add_event_handler("shutdown", handler) 1GHEFIJ
1368 self.lifespan_context = _merge_lifespan_context( 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f
1369 self.lifespan_context,
1370 router.lifespan_context,
1371 )
1373 def get( 1efabcd
1374 self,
1375 path: Annotated[
1376 str,
1377 Doc(
1378 """
1379 The URL path to be used for this *path operation*.
1381 For example, in `http://example.com/items`, the path is `/items`.
1382 """
1383 ),
1384 ],
1385 *,
1386 response_model: Annotated[
1387 Any,
1388 Doc(
1389 """
1390 The type to use for the response.
1392 It could be any valid Pydantic *field* type. So, it doesn't have to
1393 be a Pydantic model, it could be other things, like a `list`, `dict`,
1394 etc.
1396 It will be used for:
1398 * Documentation: the generated OpenAPI (and the UI at `/docs`) will
1399 show it as the response (JSON Schema).
1400 * Serialization: you could return an arbitrary object and the
1401 `response_model` would be used to serialize that object into the
1402 corresponding JSON.
1403 * Filtering: the JSON sent to the client will only contain the data
1404 (fields) defined in the `response_model`. If you returned an object
1405 that contains an attribute `password` but the `response_model` does
1406 not include that field, the JSON sent to the client would not have
1407 that `password`.
1408 * Validation: whatever you return will be serialized with the
1409 `response_model`, converting any data as necessary to generate the
1410 corresponding JSON. But if the data in the object returned is not
1411 valid, that would mean a violation of the contract with the client,
1412 so it's an error from the API developer. So, FastAPI will raise an
1413 error and return a 500 error code (Internal Server Error).
1415 Read more about it in the
1416 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).
1417 """
1418 ),
1419 ] = Default(None),
1420 status_code: Annotated[
1421 Optional[int],
1422 Doc(
1423 """
1424 The default status code to be used for the response.
1426 You could override the status code by returning a response directly.
1428 Read more about it in the
1429 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
1430 """
1431 ),
1432 ] = None,
1433 tags: Annotated[
1434 Optional[List[Union[str, Enum]]],
1435 Doc(
1436 """
1437 A list of tags to be applied to the *path operation*.
1439 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1441 Read more about it in the
1442 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).
1443 """
1444 ),
1445 ] = None,
1446 dependencies: Annotated[
1447 Optional[Sequence[params.Depends]],
1448 Doc(
1449 """
1450 A list of dependencies (using `Depends()`) to be applied to the
1451 *path operation*.
1453 Read more about it in the
1454 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).
1455 """
1456 ),
1457 ] = None,
1458 summary: Annotated[
1459 Optional[str],
1460 Doc(
1461 """
1462 A summary for the *path operation*.
1464 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1466 Read more about it in the
1467 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
1468 """
1469 ),
1470 ] = None,
1471 description: Annotated[
1472 Optional[str],
1473 Doc(
1474 """
1475 A description for the *path operation*.
1477 If not provided, it will be extracted automatically from the docstring
1478 of the *path operation function*.
1480 It can contain Markdown.
1482 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1484 Read more about it in the
1485 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
1486 """
1487 ),
1488 ] = None,
1489 response_description: Annotated[
1490 str,
1491 Doc(
1492 """
1493 The description for the default response.
1495 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1496 """
1497 ),
1498 ] = "Successful Response",
1499 responses: Annotated[
1500 Optional[Dict[Union[int, str], Dict[str, Any]]],
1501 Doc(
1502 """
1503 Additional responses that could be returned by this *path operation*.
1505 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1506 """
1507 ),
1508 ] = None,
1509 deprecated: Annotated[
1510 Optional[bool],
1511 Doc(
1512 """
1513 Mark this *path operation* as deprecated.
1515 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1516 """
1517 ),
1518 ] = None,
1519 operation_id: Annotated[
1520 Optional[str],
1521 Doc(
1522 """
1523 Custom operation ID to be used by this *path operation*.
1525 By default, it is generated automatically.
1527 If you provide a custom operation ID, you need to make sure it is
1528 unique for the whole API.
1530 You can customize the
1531 operation ID generation with the parameter
1532 `generate_unique_id_function` in the `FastAPI` class.
1534 Read more about it in the
1535 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
1536 """
1537 ),
1538 ] = None,
1539 response_model_include: Annotated[
1540 Optional[IncEx],
1541 Doc(
1542 """
1543 Configuration passed to Pydantic to include only certain fields in the
1544 response data.
1546 Read more about it in the
1547 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
1548 """
1549 ),
1550 ] = None,
1551 response_model_exclude: Annotated[
1552 Optional[IncEx],
1553 Doc(
1554 """
1555 Configuration passed to Pydantic to exclude certain fields in the
1556 response data.
1558 Read more about it in the
1559 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
1560 """
1561 ),
1562 ] = None,
1563 response_model_by_alias: Annotated[
1564 bool,
1565 Doc(
1566 """
1567 Configuration passed to Pydantic to define if the response model
1568 should be serialized by alias when an alias is used.
1570 Read more about it in the
1571 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
1572 """
1573 ),
1574 ] = True,
1575 response_model_exclude_unset: Annotated[
1576 bool,
1577 Doc(
1578 """
1579 Configuration passed to Pydantic to define if the response data
1580 should have all the fields, including the ones that were not set and
1581 have their default values. This is different from
1582 `response_model_exclude_defaults` in that if the fields are set,
1583 they will be included in the response, even if the value is the same
1584 as the default.
1586 When `True`, default values are omitted from the response.
1588 Read more about it in the
1589 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
1590 """
1591 ),
1592 ] = False,
1593 response_model_exclude_defaults: Annotated[
1594 bool,
1595 Doc(
1596 """
1597 Configuration passed to Pydantic to define if the response data
1598 should have all the fields, including the ones that have the same value
1599 as the default. This is different from `response_model_exclude_unset`
1600 in that if the fields are set but contain the same default values,
1601 they will be excluded from the response.
1603 When `True`, default values are omitted from the response.
1605 Read more about it in the
1606 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
1607 """
1608 ),
1609 ] = False,
1610 response_model_exclude_none: Annotated[
1611 bool,
1612 Doc(
1613 """
1614 Configuration passed to Pydantic to define if the response data should
1615 exclude fields set to `None`.
1617 This is much simpler (less smart) than `response_model_exclude_unset`
1618 and `response_model_exclude_defaults`. You probably want to use one of
1619 those two instead of this one, as those allow returning `None` values
1620 when it makes sense.
1622 Read more about it in the
1623 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).
1624 """
1625 ),
1626 ] = False,
1627 include_in_schema: Annotated[
1628 bool,
1629 Doc(
1630 """
1631 Include this *path operation* in the generated OpenAPI schema.
1633 This affects the generated OpenAPI (e.g. visible at `/docs`).
1635 Read more about it in the
1636 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
1637 """
1638 ),
1639 ] = True,
1640 response_class: Annotated[
1641 Type[Response],
1642 Doc(
1643 """
1644 Response class to be used for this *path operation*.
1646 This will not be used if you return a response directly.
1648 Read more about it in the
1649 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).
1650 """
1651 ),
1652 ] = Default(JSONResponse),
1653 name: Annotated[
1654 Optional[str],
1655 Doc(
1656 """
1657 Name for this *path operation*. Only used internally.
1658 """
1659 ),
1660 ] = None,
1661 callbacks: Annotated[
1662 Optional[List[BaseRoute]],
1663 Doc(
1664 """
1665 List of *path operations* that will be used as OpenAPI callbacks.
1667 This is only for OpenAPI documentation, the callbacks won't be used
1668 directly.
1670 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1672 Read more about it in the
1673 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
1674 """
1675 ),
1676 ] = None,
1677 openapi_extra: Annotated[
1678 Optional[Dict[str, Any]],
1679 Doc(
1680 """
1681 Extra metadata to be included in the OpenAPI schema for this *path
1682 operation*.
1684 Read more about it in the
1685 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).
1686 """
1687 ),
1688 ] = None,
1689 generate_unique_id_function: Annotated[
1690 Callable[[APIRoute], str],
1691 Doc(
1692 """
1693 Customize the function used to generate unique IDs for the *path
1694 operations* shown in the generated OpenAPI.
1696 This is particularly useful when automatically generating clients or
1697 SDKs for your API.
1699 Read more about it in the
1700 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
1701 """
1702 ),
1703 ] = Default(generate_unique_id),
1704 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
1705 """
1706 Add a *path operation* using an HTTP GET operation.
1708 ## Example
1710 ```python
1711 from fastapi import APIRouter, FastAPI
1713 app = FastAPI()
1714 router = APIRouter()
1716 @router.get("/items/")
1717 def read_items():
1718 return [{"name": "Empanada"}, {"name": "Arepa"}]
1720 app.include_router(router)
1721 ```
1722 """
1723 return self.api_route( 2e Cc'ficY nbtbjckcHdIdJdKdLdMdNdOdPdQdRdw ! x WcXc2 +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ obubncoc2d3d4d5d6d7d8d9d!d#d$dy # z YcZc3 -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS lbrb|b}b:d;d=d?d@d[d]d^d_d`d{ds 6 t 0c1cU adSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbb Fc*fccT mbsbdcecheiejekelemeneoepeqereu 7 v 2c3cV gdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybc Gc+fqc0 pbvbrcscCeDeEeFeGeHeIeJeKeLeMeA $ B 4c5c4 mdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbd Hc,fwc1 qbwbxcycXeYeZe0e1e2e3e4e5e6e7eC % D 6c7c5 sdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKb
1724 path=path,
1725 response_model=response_model,
1726 status_code=status_code,
1727 tags=tags,
1728 dependencies=dependencies,
1729 summary=summary,
1730 description=description,
1731 response_description=response_description,
1732 responses=responses,
1733 deprecated=deprecated,
1734 methods=["GET"],
1735 operation_id=operation_id,
1736 response_model_include=response_model_include,
1737 response_model_exclude=response_model_exclude,
1738 response_model_by_alias=response_model_by_alias,
1739 response_model_exclude_unset=response_model_exclude_unset,
1740 response_model_exclude_defaults=response_model_exclude_defaults,
1741 response_model_exclude_none=response_model_exclude_none,
1742 include_in_schema=include_in_schema,
1743 response_class=response_class,
1744 name=name,
1745 callbacks=callbacks,
1746 openapi_extra=openapi_extra,
1747 generate_unique_id_function=generate_unique_id_function,
1748 )
1750 def put( 1efabcd
1751 self,
1752 path: Annotated[
1753 str,
1754 Doc(
1755 """
1756 The URL path to be used for this *path operation*.
1758 For example, in `http://example.com/items`, the path is `/items`.
1759 """
1760 ),
1761 ],
1762 *,
1763 response_model: Annotated[
1764 Any,
1765 Doc(
1766 """
1767 The type to use for the response.
1769 It could be any valid Pydantic *field* type. So, it doesn't have to
1770 be a Pydantic model, it could be other things, like a `list`, `dict`,
1771 etc.
1773 It will be used for:
1775 * Documentation: the generated OpenAPI (and the UI at `/docs`) will
1776 show it as the response (JSON Schema).
1777 * Serialization: you could return an arbitrary object and the
1778 `response_model` would be used to serialize that object into the
1779 corresponding JSON.
1780 * Filtering: the JSON sent to the client will only contain the data
1781 (fields) defined in the `response_model`. If you returned an object
1782 that contains an attribute `password` but the `response_model` does
1783 not include that field, the JSON sent to the client would not have
1784 that `password`.
1785 * Validation: whatever you return will be serialized with the
1786 `response_model`, converting any data as necessary to generate the
1787 corresponding JSON. But if the data in the object returned is not
1788 valid, that would mean a violation of the contract with the client,
1789 so it's an error from the API developer. So, FastAPI will raise an
1790 error and return a 500 error code (Internal Server Error).
1792 Read more about it in the
1793 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).
1794 """
1795 ),
1796 ] = Default(None),
1797 status_code: Annotated[
1798 Optional[int],
1799 Doc(
1800 """
1801 The default status code to be used for the response.
1803 You could override the status code by returning a response directly.
1805 Read more about it in the
1806 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
1807 """
1808 ),
1809 ] = None,
1810 tags: Annotated[
1811 Optional[List[Union[str, Enum]]],
1812 Doc(
1813 """
1814 A list of tags to be applied to the *path operation*.
1816 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1818 Read more about it in the
1819 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).
1820 """
1821 ),
1822 ] = None,
1823 dependencies: Annotated[
1824 Optional[Sequence[params.Depends]],
1825 Doc(
1826 """
1827 A list of dependencies (using `Depends()`) to be applied to the
1828 *path operation*.
1830 Read more about it in the
1831 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).
1832 """
1833 ),
1834 ] = None,
1835 summary: Annotated[
1836 Optional[str],
1837 Doc(
1838 """
1839 A summary for the *path operation*.
1841 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1843 Read more about it in the
1844 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
1845 """
1846 ),
1847 ] = None,
1848 description: Annotated[
1849 Optional[str],
1850 Doc(
1851 """
1852 A description for the *path operation*.
1854 If not provided, it will be extracted automatically from the docstring
1855 of the *path operation function*.
1857 It can contain Markdown.
1859 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1861 Read more about it in the
1862 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
1863 """
1864 ),
1865 ] = None,
1866 response_description: Annotated[
1867 str,
1868 Doc(
1869 """
1870 The description for the default response.
1872 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1873 """
1874 ),
1875 ] = "Successful Response",
1876 responses: Annotated[
1877 Optional[Dict[Union[int, str], Dict[str, Any]]],
1878 Doc(
1879 """
1880 Additional responses that could be returned by this *path operation*.
1882 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1883 """
1884 ),
1885 ] = None,
1886 deprecated: Annotated[
1887 Optional[bool],
1888 Doc(
1889 """
1890 Mark this *path operation* as deprecated.
1892 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1893 """
1894 ),
1895 ] = None,
1896 operation_id: Annotated[
1897 Optional[str],
1898 Doc(
1899 """
1900 Custom operation ID to be used by this *path operation*.
1902 By default, it is generated automatically.
1904 If you provide a custom operation ID, you need to make sure it is
1905 unique for the whole API.
1907 You can customize the
1908 operation ID generation with the parameter
1909 `generate_unique_id_function` in the `FastAPI` class.
1911 Read more about it in the
1912 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
1913 """
1914 ),
1915 ] = None,
1916 response_model_include: Annotated[
1917 Optional[IncEx],
1918 Doc(
1919 """
1920 Configuration passed to Pydantic to include only certain fields in the
1921 response data.
1923 Read more about it in the
1924 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
1925 """
1926 ),
1927 ] = None,
1928 response_model_exclude: Annotated[
1929 Optional[IncEx],
1930 Doc(
1931 """
1932 Configuration passed to Pydantic to exclude certain fields in the
1933 response data.
1935 Read more about it in the
1936 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
1937 """
1938 ),
1939 ] = None,
1940 response_model_by_alias: Annotated[
1941 bool,
1942 Doc(
1943 """
1944 Configuration passed to Pydantic to define if the response model
1945 should be serialized by alias when an alias is used.
1947 Read more about it in the
1948 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
1949 """
1950 ),
1951 ] = True,
1952 response_model_exclude_unset: Annotated[
1953 bool,
1954 Doc(
1955 """
1956 Configuration passed to Pydantic to define if the response data
1957 should have all the fields, including the ones that were not set and
1958 have their default values. This is different from
1959 `response_model_exclude_defaults` in that if the fields are set,
1960 they will be included in the response, even if the value is the same
1961 as the default.
1963 When `True`, default values are omitted from the response.
1965 Read more about it in the
1966 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
1967 """
1968 ),
1969 ] = False,
1970 response_model_exclude_defaults: Annotated[
1971 bool,
1972 Doc(
1973 """
1974 Configuration passed to Pydantic to define if the response data
1975 should have all the fields, including the ones that have the same value
1976 as the default. This is different from `response_model_exclude_unset`
1977 in that if the fields are set but contain the same default values,
1978 they will be excluded from the response.
1980 When `True`, default values are omitted from the response.
1982 Read more about it in the
1983 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
1984 """
1985 ),
1986 ] = False,
1987 response_model_exclude_none: Annotated[
1988 bool,
1989 Doc(
1990 """
1991 Configuration passed to Pydantic to define if the response data should
1992 exclude fields set to `None`.
1994 This is much simpler (less smart) than `response_model_exclude_unset`
1995 and `response_model_exclude_defaults`. You probably want to use one of
1996 those two instead of this one, as those allow returning `None` values
1997 when it makes sense.
1999 Read more about it in the
2000 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).
2001 """
2002 ),
2003 ] = False,
2004 include_in_schema: Annotated[
2005 bool,
2006 Doc(
2007 """
2008 Include this *path operation* in the generated OpenAPI schema.
2010 This affects the generated OpenAPI (e.g. visible at `/docs`).
2012 Read more about it in the
2013 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
2014 """
2015 ),
2016 ] = True,
2017 response_class: Annotated[
2018 Type[Response],
2019 Doc(
2020 """
2021 Response class to be used for this *path operation*.
2023 This will not be used if you return a response directly.
2025 Read more about it in the
2026 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).
2027 """
2028 ),
2029 ] = Default(JSONResponse),
2030 name: Annotated[
2031 Optional[str],
2032 Doc(
2033 """
2034 Name for this *path operation*. Only used internally.
2035 """
2036 ),
2037 ] = None,
2038 callbacks: Annotated[
2039 Optional[List[BaseRoute]],
2040 Doc(
2041 """
2042 List of *path operations* that will be used as OpenAPI callbacks.
2044 This is only for OpenAPI documentation, the callbacks won't be used
2045 directly.
2047 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2049 Read more about it in the
2050 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
2051 """
2052 ),
2053 ] = None,
2054 openapi_extra: Annotated[
2055 Optional[Dict[str, Any]],
2056 Doc(
2057 """
2058 Extra metadata to be included in the OpenAPI schema for this *path
2059 operation*.
2061 Read more about it in the
2062 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).
2063 """
2064 ),
2065 ] = None,
2066 generate_unique_id_function: Annotated[
2067 Callable[[APIRoute], str],
2068 Doc(
2069 """
2070 Customize the function used to generate unique IDs for the *path
2071 operations* shown in the generated OpenAPI.
2073 This is particularly useful when automatically generating clients or
2074 SDKs for your API.
2076 Read more about it in the
2077 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
2078 """
2079 ),
2080 ] = Default(generate_unique_id),
2081 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
2082 """
2083 Add a *path operation* using an HTTP PUT operation.
2085 ## Example
2087 ```python
2088 from fastapi import APIRouter, FastAPI
2089 from pydantic import BaseModel
2091 class Item(BaseModel):
2092 name: str
2093 description: str | None = None
2095 app = FastAPI()
2096 router = APIRouter()
2098 @router.put("/items/{item_id}")
2099 def replace_item(item_id: str, item: Item):
2100 return {"message": "Item replaced", "id": item_id}
2102 app.include_router(router)
2103 ```
2104 """
2105 return self.api_route( 1efabcd
2106 path=path,
2107 response_model=response_model,
2108 status_code=status_code,
2109 tags=tags,
2110 dependencies=dependencies,
2111 summary=summary,
2112 description=description,
2113 response_description=response_description,
2114 responses=responses,
2115 deprecated=deprecated,
2116 methods=["PUT"],
2117 operation_id=operation_id,
2118 response_model_include=response_model_include,
2119 response_model_exclude=response_model_exclude,
2120 response_model_by_alias=response_model_by_alias,
2121 response_model_exclude_unset=response_model_exclude_unset,
2122 response_model_exclude_defaults=response_model_exclude_defaults,
2123 response_model_exclude_none=response_model_exclude_none,
2124 include_in_schema=include_in_schema,
2125 response_class=response_class,
2126 name=name,
2127 callbacks=callbacks,
2128 openapi_extra=openapi_extra,
2129 generate_unique_id_function=generate_unique_id_function,
2130 )
2132 def post( 1efabcd
2133 self,
2134 path: Annotated[
2135 str,
2136 Doc(
2137 """
2138 The URL path to be used for this *path operation*.
2140 For example, in `http://example.com/items`, the path is `/items`.
2141 """
2142 ),
2143 ],
2144 *,
2145 response_model: Annotated[
2146 Any,
2147 Doc(
2148 """
2149 The type to use for the response.
2151 It could be any valid Pydantic *field* type. So, it doesn't have to
2152 be a Pydantic model, it could be other things, like a `list`, `dict`,
2153 etc.
2155 It will be used for:
2157 * Documentation: the generated OpenAPI (and the UI at `/docs`) will
2158 show it as the response (JSON Schema).
2159 * Serialization: you could return an arbitrary object and the
2160 `response_model` would be used to serialize that object into the
2161 corresponding JSON.
2162 * Filtering: the JSON sent to the client will only contain the data
2163 (fields) defined in the `response_model`. If you returned an object
2164 that contains an attribute `password` but the `response_model` does
2165 not include that field, the JSON sent to the client would not have
2166 that `password`.
2167 * Validation: whatever you return will be serialized with the
2168 `response_model`, converting any data as necessary to generate the
2169 corresponding JSON. But if the data in the object returned is not
2170 valid, that would mean a violation of the contract with the client,
2171 so it's an error from the API developer. So, FastAPI will raise an
2172 error and return a 500 error code (Internal Server Error).
2174 Read more about it in the
2175 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).
2176 """
2177 ),
2178 ] = Default(None),
2179 status_code: Annotated[
2180 Optional[int],
2181 Doc(
2182 """
2183 The default status code to be used for the response.
2185 You could override the status code by returning a response directly.
2187 Read more about it in the
2188 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
2189 """
2190 ),
2191 ] = None,
2192 tags: Annotated[
2193 Optional[List[Union[str, Enum]]],
2194 Doc(
2195 """
2196 A list of tags to be applied to the *path operation*.
2198 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2200 Read more about it in the
2201 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).
2202 """
2203 ),
2204 ] = None,
2205 dependencies: Annotated[
2206 Optional[Sequence[params.Depends]],
2207 Doc(
2208 """
2209 A list of dependencies (using `Depends()`) to be applied to the
2210 *path operation*.
2212 Read more about it in the
2213 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).
2214 """
2215 ),
2216 ] = None,
2217 summary: Annotated[
2218 Optional[str],
2219 Doc(
2220 """
2221 A summary for the *path operation*.
2223 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2225 Read more about it in the
2226 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
2227 """
2228 ),
2229 ] = None,
2230 description: Annotated[
2231 Optional[str],
2232 Doc(
2233 """
2234 A description for the *path operation*.
2236 If not provided, it will be extracted automatically from the docstring
2237 of the *path operation function*.
2239 It can contain Markdown.
2241 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2243 Read more about it in the
2244 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
2245 """
2246 ),
2247 ] = None,
2248 response_description: Annotated[
2249 str,
2250 Doc(
2251 """
2252 The description for the default response.
2254 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2255 """
2256 ),
2257 ] = "Successful Response",
2258 responses: Annotated[
2259 Optional[Dict[Union[int, str], Dict[str, Any]]],
2260 Doc(
2261 """
2262 Additional responses that could be returned by this *path operation*.
2264 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2265 """
2266 ),
2267 ] = None,
2268 deprecated: Annotated[
2269 Optional[bool],
2270 Doc(
2271 """
2272 Mark this *path operation* as deprecated.
2274 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2275 """
2276 ),
2277 ] = None,
2278 operation_id: Annotated[
2279 Optional[str],
2280 Doc(
2281 """
2282 Custom operation ID to be used by this *path operation*.
2284 By default, it is generated automatically.
2286 If you provide a custom operation ID, you need to make sure it is
2287 unique for the whole API.
2289 You can customize the
2290 operation ID generation with the parameter
2291 `generate_unique_id_function` in the `FastAPI` class.
2293 Read more about it in the
2294 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
2295 """
2296 ),
2297 ] = None,
2298 response_model_include: Annotated[
2299 Optional[IncEx],
2300 Doc(
2301 """
2302 Configuration passed to Pydantic to include only certain fields in the
2303 response data.
2305 Read more about it in the
2306 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
2307 """
2308 ),
2309 ] = None,
2310 response_model_exclude: Annotated[
2311 Optional[IncEx],
2312 Doc(
2313 """
2314 Configuration passed to Pydantic to exclude certain fields in the
2315 response data.
2317 Read more about it in the
2318 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
2319 """
2320 ),
2321 ] = None,
2322 response_model_by_alias: Annotated[
2323 bool,
2324 Doc(
2325 """
2326 Configuration passed to Pydantic to define if the response model
2327 should be serialized by alias when an alias is used.
2329 Read more about it in the
2330 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
2331 """
2332 ),
2333 ] = True,
2334 response_model_exclude_unset: Annotated[
2335 bool,
2336 Doc(
2337 """
2338 Configuration passed to Pydantic to define if the response data
2339 should have all the fields, including the ones that were not set and
2340 have their default values. This is different from
2341 `response_model_exclude_defaults` in that if the fields are set,
2342 they will be included in the response, even if the value is the same
2343 as the default.
2345 When `True`, default values are omitted from the response.
2347 Read more about it in the
2348 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
2349 """
2350 ),
2351 ] = False,
2352 response_model_exclude_defaults: Annotated[
2353 bool,
2354 Doc(
2355 """
2356 Configuration passed to Pydantic to define if the response data
2357 should have all the fields, including the ones that have the same value
2358 as the default. This is different from `response_model_exclude_unset`
2359 in that if the fields are set but contain the same default values,
2360 they will be excluded from the response.
2362 When `True`, default values are omitted from the response.
2364 Read more about it in the
2365 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
2366 """
2367 ),
2368 ] = False,
2369 response_model_exclude_none: Annotated[
2370 bool,
2371 Doc(
2372 """
2373 Configuration passed to Pydantic to define if the response data should
2374 exclude fields set to `None`.
2376 This is much simpler (less smart) than `response_model_exclude_unset`
2377 and `response_model_exclude_defaults`. You probably want to use one of
2378 those two instead of this one, as those allow returning `None` values
2379 when it makes sense.
2381 Read more about it in the
2382 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).
2383 """
2384 ),
2385 ] = False,
2386 include_in_schema: Annotated[
2387 bool,
2388 Doc(
2389 """
2390 Include this *path operation* in the generated OpenAPI schema.
2392 This affects the generated OpenAPI (e.g. visible at `/docs`).
2394 Read more about it in the
2395 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
2396 """
2397 ),
2398 ] = True,
2399 response_class: Annotated[
2400 Type[Response],
2401 Doc(
2402 """
2403 Response class to be used for this *path operation*.
2405 This will not be used if you return a response directly.
2407 Read more about it in the
2408 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).
2409 """
2410 ),
2411 ] = Default(JSONResponse),
2412 name: Annotated[
2413 Optional[str],
2414 Doc(
2415 """
2416 Name for this *path operation*. Only used internally.
2417 """
2418 ),
2419 ] = None,
2420 callbacks: Annotated[
2421 Optional[List[BaseRoute]],
2422 Doc(
2423 """
2424 List of *path operations* that will be used as OpenAPI callbacks.
2426 This is only for OpenAPI documentation, the callbacks won't be used
2427 directly.
2429 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2431 Read more about it in the
2432 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
2433 """
2434 ),
2435 ] = None,
2436 openapi_extra: Annotated[
2437 Optional[Dict[str, Any]],
2438 Doc(
2439 """
2440 Extra metadata to be included in the OpenAPI schema for this *path
2441 operation*.
2443 Read more about it in the
2444 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).
2445 """
2446 ),
2447 ] = None,
2448 generate_unique_id_function: Annotated[
2449 Callable[[APIRoute], str],
2450 Doc(
2451 """
2452 Customize the function used to generate unique IDs for the *path
2453 operations* shown in the generated OpenAPI.
2455 This is particularly useful when automatically generating clients or
2456 SDKs for your API.
2458 Read more about it in the
2459 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
2460 """
2461 ),
2462 ] = Default(generate_unique_id),
2463 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
2464 """
2465 Add a *path operation* using an HTTP POST operation.
2467 ## Example
2469 ```python
2470 from fastapi import APIRouter, FastAPI
2471 from pydantic import BaseModel
2473 class Item(BaseModel):
2474 name: str
2475 description: str | None = None
2477 app = FastAPI()
2478 router = APIRouter()
2480 @router.post("/items/")
2481 def create_item(item: Item):
2482 return {"message": "Item created"}
2484 app.include_router(router)
2485 ```
2486 """
2487 return self.api_route( 2e hb- Xb9b8c!b#b$bLbMb?cSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' bb-cf ib. Zb%b9c'b(b)bNbOb^c%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( cb.ca db+ Bb*b!c+b,b-bPbQb|c|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIc~ /cQ b eb, Fb.b#c/b:b;bRbSbddseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcab:cR c jb/ 1b=b$c?b@b[bTbUbjdNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcfb;cW d kb: 5b]b%c^b_b`bVbWbpd8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcgb=cX
2488 path=path,
2489 response_model=response_model,
2490 status_code=status_code,
2491 tags=tags,
2492 dependencies=dependencies,
2493 summary=summary,
2494 description=description,
2495 response_description=response_description,
2496 responses=responses,
2497 deprecated=deprecated,
2498 methods=["POST"],
2499 operation_id=operation_id,
2500 response_model_include=response_model_include,
2501 response_model_exclude=response_model_exclude,
2502 response_model_by_alias=response_model_by_alias,
2503 response_model_exclude_unset=response_model_exclude_unset,
2504 response_model_exclude_defaults=response_model_exclude_defaults,
2505 response_model_exclude_none=response_model_exclude_none,
2506 include_in_schema=include_in_schema,
2507 response_class=response_class,
2508 name=name,
2509 callbacks=callbacks,
2510 openapi_extra=openapi_extra,
2511 generate_unique_id_function=generate_unique_id_function,
2512 )
2514 def delete( 1efabcd
2515 self,
2516 path: Annotated[
2517 str,
2518 Doc(
2519 """
2520 The URL path to be used for this *path operation*.
2522 For example, in `http://example.com/items`, the path is `/items`.
2523 """
2524 ),
2525 ],
2526 *,
2527 response_model: Annotated[
2528 Any,
2529 Doc(
2530 """
2531 The type to use for the response.
2533 It could be any valid Pydantic *field* type. So, it doesn't have to
2534 be a Pydantic model, it could be other things, like a `list`, `dict`,
2535 etc.
2537 It will be used for:
2539 * Documentation: the generated OpenAPI (and the UI at `/docs`) will
2540 show it as the response (JSON Schema).
2541 * Serialization: you could return an arbitrary object and the
2542 `response_model` would be used to serialize that object into the
2543 corresponding JSON.
2544 * Filtering: the JSON sent to the client will only contain the data
2545 (fields) defined in the `response_model`. If you returned an object
2546 that contains an attribute `password` but the `response_model` does
2547 not include that field, the JSON sent to the client would not have
2548 that `password`.
2549 * Validation: whatever you return will be serialized with the
2550 `response_model`, converting any data as necessary to generate the
2551 corresponding JSON. But if the data in the object returned is not
2552 valid, that would mean a violation of the contract with the client,
2553 so it's an error from the API developer. So, FastAPI will raise an
2554 error and return a 500 error code (Internal Server Error).
2556 Read more about it in the
2557 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).
2558 """
2559 ),
2560 ] = Default(None),
2561 status_code: Annotated[
2562 Optional[int],
2563 Doc(
2564 """
2565 The default status code to be used for the response.
2567 You could override the status code by returning a response directly.
2569 Read more about it in the
2570 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
2571 """
2572 ),
2573 ] = None,
2574 tags: Annotated[
2575 Optional[List[Union[str, Enum]]],
2576 Doc(
2577 """
2578 A list of tags to be applied to the *path operation*.
2580 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2582 Read more about it in the
2583 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).
2584 """
2585 ),
2586 ] = None,
2587 dependencies: Annotated[
2588 Optional[Sequence[params.Depends]],
2589 Doc(
2590 """
2591 A list of dependencies (using `Depends()`) to be applied to the
2592 *path operation*.
2594 Read more about it in the
2595 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).
2596 """
2597 ),
2598 ] = None,
2599 summary: Annotated[
2600 Optional[str],
2601 Doc(
2602 """
2603 A summary for the *path operation*.
2605 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2607 Read more about it in the
2608 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
2609 """
2610 ),
2611 ] = None,
2612 description: Annotated[
2613 Optional[str],
2614 Doc(
2615 """
2616 A description for the *path operation*.
2618 If not provided, it will be extracted automatically from the docstring
2619 of the *path operation function*.
2621 It can contain Markdown.
2623 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2625 Read more about it in the
2626 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
2627 """
2628 ),
2629 ] = None,
2630 response_description: Annotated[
2631 str,
2632 Doc(
2633 """
2634 The description for the default response.
2636 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2637 """
2638 ),
2639 ] = "Successful Response",
2640 responses: Annotated[
2641 Optional[Dict[Union[int, str], Dict[str, Any]]],
2642 Doc(
2643 """
2644 Additional responses that could be returned by this *path operation*.
2646 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2647 """
2648 ),
2649 ] = None,
2650 deprecated: Annotated[
2651 Optional[bool],
2652 Doc(
2653 """
2654 Mark this *path operation* as deprecated.
2656 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2657 """
2658 ),
2659 ] = None,
2660 operation_id: Annotated[
2661 Optional[str],
2662 Doc(
2663 """
2664 Custom operation ID to be used by this *path operation*.
2666 By default, it is generated automatically.
2668 If you provide a custom operation ID, you need to make sure it is
2669 unique for the whole API.
2671 You can customize the
2672 operation ID generation with the parameter
2673 `generate_unique_id_function` in the `FastAPI` class.
2675 Read more about it in the
2676 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
2677 """
2678 ),
2679 ] = None,
2680 response_model_include: Annotated[
2681 Optional[IncEx],
2682 Doc(
2683 """
2684 Configuration passed to Pydantic to include only certain fields in the
2685 response data.
2687 Read more about it in the
2688 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
2689 """
2690 ),
2691 ] = None,
2692 response_model_exclude: Annotated[
2693 Optional[IncEx],
2694 Doc(
2695 """
2696 Configuration passed to Pydantic to exclude certain fields in the
2697 response data.
2699 Read more about it in the
2700 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
2701 """
2702 ),
2703 ] = None,
2704 response_model_by_alias: Annotated[
2705 bool,
2706 Doc(
2707 """
2708 Configuration passed to Pydantic to define if the response model
2709 should be serialized by alias when an alias is used.
2711 Read more about it in the
2712 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
2713 """
2714 ),
2715 ] = True,
2716 response_model_exclude_unset: Annotated[
2717 bool,
2718 Doc(
2719 """
2720 Configuration passed to Pydantic to define if the response data
2721 should have all the fields, including the ones that were not set and
2722 have their default values. This is different from
2723 `response_model_exclude_defaults` in that if the fields are set,
2724 they will be included in the response, even if the value is the same
2725 as the default.
2727 When `True`, default values are omitted from the response.
2729 Read more about it in the
2730 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
2731 """
2732 ),
2733 ] = False,
2734 response_model_exclude_defaults: Annotated[
2735 bool,
2736 Doc(
2737 """
2738 Configuration passed to Pydantic to define if the response data
2739 should have all the fields, including the ones that have the same value
2740 as the default. This is different from `response_model_exclude_unset`
2741 in that if the fields are set but contain the same default values,
2742 they will be excluded from the response.
2744 When `True`, default values are omitted from the response.
2746 Read more about it in the
2747 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
2748 """
2749 ),
2750 ] = False,
2751 response_model_exclude_none: Annotated[
2752 bool,
2753 Doc(
2754 """
2755 Configuration passed to Pydantic to define if the response data should
2756 exclude fields set to `None`.
2758 This is much simpler (less smart) than `response_model_exclude_unset`
2759 and `response_model_exclude_defaults`. You probably want to use one of
2760 those two instead of this one, as those allow returning `None` values
2761 when it makes sense.
2763 Read more about it in the
2764 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).
2765 """
2766 ),
2767 ] = False,
2768 include_in_schema: Annotated[
2769 bool,
2770 Doc(
2771 """
2772 Include this *path operation* in the generated OpenAPI schema.
2774 This affects the generated OpenAPI (e.g. visible at `/docs`).
2776 Read more about it in the
2777 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
2778 """
2779 ),
2780 ] = True,
2781 response_class: Annotated[
2782 Type[Response],
2783 Doc(
2784 """
2785 Response class to be used for this *path operation*.
2787 This will not be used if you return a response directly.
2789 Read more about it in the
2790 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).
2791 """
2792 ),
2793 ] = Default(JSONResponse),
2794 name: Annotated[
2795 Optional[str],
2796 Doc(
2797 """
2798 Name for this *path operation*. Only used internally.
2799 """
2800 ),
2801 ] = None,
2802 callbacks: Annotated[
2803 Optional[List[BaseRoute]],
2804 Doc(
2805 """
2806 List of *path operations* that will be used as OpenAPI callbacks.
2808 This is only for OpenAPI documentation, the callbacks won't be used
2809 directly.
2811 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2813 Read more about it in the
2814 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
2815 """
2816 ),
2817 ] = None,
2818 openapi_extra: Annotated[
2819 Optional[Dict[str, Any]],
2820 Doc(
2821 """
2822 Extra metadata to be included in the OpenAPI schema for this *path
2823 operation*.
2825 Read more about it in the
2826 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).
2827 """
2828 ),
2829 ] = None,
2830 generate_unique_id_function: Annotated[
2831 Callable[[APIRoute], str],
2832 Doc(
2833 """
2834 Customize the function used to generate unique IDs for the *path
2835 operations* shown in the generated OpenAPI.
2837 This is particularly useful when automatically generating clients or
2838 SDKs for your API.
2840 Read more about it in the
2841 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
2842 """
2843 ),
2844 ] = Default(generate_unique_id),
2845 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
2846 """
2847 Add a *path operation* using an HTTP DELETE operation.
2849 ## Example
2851 ```python
2852 from fastapi import APIRouter, FastAPI
2854 app = FastAPI()
2855 router = APIRouter()
2857 @router.delete("/items/{item_id}")
2858 def delete_item(item_id: str):
2859 return {"message": "Item deleted"}
2861 app.include_router(router)
2862 ```
2863 """
2864 return self.api_route( 1efabcd
2865 path=path,
2866 response_model=response_model,
2867 status_code=status_code,
2868 tags=tags,
2869 dependencies=dependencies,
2870 summary=summary,
2871 description=description,
2872 response_description=response_description,
2873 responses=responses,
2874 deprecated=deprecated,
2875 methods=["DELETE"],
2876 operation_id=operation_id,
2877 response_model_include=response_model_include,
2878 response_model_exclude=response_model_exclude,
2879 response_model_by_alias=response_model_by_alias,
2880 response_model_exclude_unset=response_model_exclude_unset,
2881 response_model_exclude_defaults=response_model_exclude_defaults,
2882 response_model_exclude_none=response_model_exclude_none,
2883 include_in_schema=include_in_schema,
2884 response_class=response_class,
2885 name=name,
2886 callbacks=callbacks,
2887 openapi_extra=openapi_extra,
2888 generate_unique_id_function=generate_unique_id_function,
2889 )
2891 def options( 1efabcd
2892 self,
2893 path: Annotated[
2894 str,
2895 Doc(
2896 """
2897 The URL path to be used for this *path operation*.
2899 For example, in `http://example.com/items`, the path is `/items`.
2900 """
2901 ),
2902 ],
2903 *,
2904 response_model: Annotated[
2905 Any,
2906 Doc(
2907 """
2908 The type to use for the response.
2910 It could be any valid Pydantic *field* type. So, it doesn't have to
2911 be a Pydantic model, it could be other things, like a `list`, `dict`,
2912 etc.
2914 It will be used for:
2916 * Documentation: the generated OpenAPI (and the UI at `/docs`) will
2917 show it as the response (JSON Schema).
2918 * Serialization: you could return an arbitrary object and the
2919 `response_model` would be used to serialize that object into the
2920 corresponding JSON.
2921 * Filtering: the JSON sent to the client will only contain the data
2922 (fields) defined in the `response_model`. If you returned an object
2923 that contains an attribute `password` but the `response_model` does
2924 not include that field, the JSON sent to the client would not have
2925 that `password`.
2926 * Validation: whatever you return will be serialized with the
2927 `response_model`, converting any data as necessary to generate the
2928 corresponding JSON. But if the data in the object returned is not
2929 valid, that would mean a violation of the contract with the client,
2930 so it's an error from the API developer. So, FastAPI will raise an
2931 error and return a 500 error code (Internal Server Error).
2933 Read more about it in the
2934 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).
2935 """
2936 ),
2937 ] = Default(None),
2938 status_code: Annotated[
2939 Optional[int],
2940 Doc(
2941 """
2942 The default status code to be used for the response.
2944 You could override the status code by returning a response directly.
2946 Read more about it in the
2947 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
2948 """
2949 ),
2950 ] = None,
2951 tags: Annotated[
2952 Optional[List[Union[str, Enum]]],
2953 Doc(
2954 """
2955 A list of tags to be applied to the *path operation*.
2957 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2959 Read more about it in the
2960 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).
2961 """
2962 ),
2963 ] = None,
2964 dependencies: Annotated[
2965 Optional[Sequence[params.Depends]],
2966 Doc(
2967 """
2968 A list of dependencies (using `Depends()`) to be applied to the
2969 *path operation*.
2971 Read more about it in the
2972 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).
2973 """
2974 ),
2975 ] = None,
2976 summary: Annotated[
2977 Optional[str],
2978 Doc(
2979 """
2980 A summary for the *path operation*.
2982 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2984 Read more about it in the
2985 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
2986 """
2987 ),
2988 ] = None,
2989 description: Annotated[
2990 Optional[str],
2991 Doc(
2992 """
2993 A description for the *path operation*.
2995 If not provided, it will be extracted automatically from the docstring
2996 of the *path operation function*.
2998 It can contain Markdown.
3000 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3002 Read more about it in the
3003 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
3004 """
3005 ),
3006 ] = None,
3007 response_description: Annotated[
3008 str,
3009 Doc(
3010 """
3011 The description for the default response.
3013 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3014 """
3015 ),
3016 ] = "Successful Response",
3017 responses: Annotated[
3018 Optional[Dict[Union[int, str], Dict[str, Any]]],
3019 Doc(
3020 """
3021 Additional responses that could be returned by this *path operation*.
3023 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3024 """
3025 ),
3026 ] = None,
3027 deprecated: Annotated[
3028 Optional[bool],
3029 Doc(
3030 """
3031 Mark this *path operation* as deprecated.
3033 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3034 """
3035 ),
3036 ] = None,
3037 operation_id: Annotated[
3038 Optional[str],
3039 Doc(
3040 """
3041 Custom operation ID to be used by this *path operation*.
3043 By default, it is generated automatically.
3045 If you provide a custom operation ID, you need to make sure it is
3046 unique for the whole API.
3048 You can customize the
3049 operation ID generation with the parameter
3050 `generate_unique_id_function` in the `FastAPI` class.
3052 Read more about it in the
3053 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
3054 """
3055 ),
3056 ] = None,
3057 response_model_include: Annotated[
3058 Optional[IncEx],
3059 Doc(
3060 """
3061 Configuration passed to Pydantic to include only certain fields in the
3062 response data.
3064 Read more about it in the
3065 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3066 """
3067 ),
3068 ] = None,
3069 response_model_exclude: Annotated[
3070 Optional[IncEx],
3071 Doc(
3072 """
3073 Configuration passed to Pydantic to exclude certain fields in the
3074 response data.
3076 Read more about it in the
3077 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3078 """
3079 ),
3080 ] = None,
3081 response_model_by_alias: Annotated[
3082 bool,
3083 Doc(
3084 """
3085 Configuration passed to Pydantic to define if the response model
3086 should be serialized by alias when an alias is used.
3088 Read more about it in the
3089 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3090 """
3091 ),
3092 ] = True,
3093 response_model_exclude_unset: Annotated[
3094 bool,
3095 Doc(
3096 """
3097 Configuration passed to Pydantic to define if the response data
3098 should have all the fields, including the ones that were not set and
3099 have their default values. This is different from
3100 `response_model_exclude_defaults` in that if the fields are set,
3101 they will be included in the response, even if the value is the same
3102 as the default.
3104 When `True`, default values are omitted from the response.
3106 Read more about it in the
3107 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
3108 """
3109 ),
3110 ] = False,
3111 response_model_exclude_defaults: Annotated[
3112 bool,
3113 Doc(
3114 """
3115 Configuration passed to Pydantic to define if the response data
3116 should have all the fields, including the ones that have the same value
3117 as the default. This is different from `response_model_exclude_unset`
3118 in that if the fields are set but contain the same default values,
3119 they will be excluded from the response.
3121 When `True`, default values are omitted from the response.
3123 Read more about it in the
3124 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
3125 """
3126 ),
3127 ] = False,
3128 response_model_exclude_none: Annotated[
3129 bool,
3130 Doc(
3131 """
3132 Configuration passed to Pydantic to define if the response data should
3133 exclude fields set to `None`.
3135 This is much simpler (less smart) than `response_model_exclude_unset`
3136 and `response_model_exclude_defaults`. You probably want to use one of
3137 those two instead of this one, as those allow returning `None` values
3138 when it makes sense.
3140 Read more about it in the
3141 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).
3142 """
3143 ),
3144 ] = False,
3145 include_in_schema: Annotated[
3146 bool,
3147 Doc(
3148 """
3149 Include this *path operation* in the generated OpenAPI schema.
3151 This affects the generated OpenAPI (e.g. visible at `/docs`).
3153 Read more about it in the
3154 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
3155 """
3156 ),
3157 ] = True,
3158 response_class: Annotated[
3159 Type[Response],
3160 Doc(
3161 """
3162 Response class to be used for this *path operation*.
3164 This will not be used if you return a response directly.
3166 Read more about it in the
3167 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).
3168 """
3169 ),
3170 ] = Default(JSONResponse),
3171 name: Annotated[
3172 Optional[str],
3173 Doc(
3174 """
3175 Name for this *path operation*. Only used internally.
3176 """
3177 ),
3178 ] = None,
3179 callbacks: Annotated[
3180 Optional[List[BaseRoute]],
3181 Doc(
3182 """
3183 List of *path operations* that will be used as OpenAPI callbacks.
3185 This is only for OpenAPI documentation, the callbacks won't be used
3186 directly.
3188 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3190 Read more about it in the
3191 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
3192 """
3193 ),
3194 ] = None,
3195 openapi_extra: Annotated[
3196 Optional[Dict[str, Any]],
3197 Doc(
3198 """
3199 Extra metadata to be included in the OpenAPI schema for this *path
3200 operation*.
3202 Read more about it in the
3203 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).
3204 """
3205 ),
3206 ] = None,
3207 generate_unique_id_function: Annotated[
3208 Callable[[APIRoute], str],
3209 Doc(
3210 """
3211 Customize the function used to generate unique IDs for the *path
3212 operations* shown in the generated OpenAPI.
3214 This is particularly useful when automatically generating clients or
3215 SDKs for your API.
3217 Read more about it in the
3218 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
3219 """
3220 ),
3221 ] = Default(generate_unique_id),
3222 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
3223 """
3224 Add a *path operation* using an HTTP OPTIONS operation.
3226 ## Example
3228 ```python
3229 from fastapi import APIRouter, FastAPI
3231 app = FastAPI()
3232 router = APIRouter()
3234 @router.options("/items/")
3235 def get_item_options():
3236 return {"additions": ["Aji", "Guacamole"]}
3238 app.include_router(router)
3239 ```
3240 """
3241 return self.api_route( 1efabcd
3242 path=path,
3243 response_model=response_model,
3244 status_code=status_code,
3245 tags=tags,
3246 dependencies=dependencies,
3247 summary=summary,
3248 description=description,
3249 response_description=response_description,
3250 responses=responses,
3251 deprecated=deprecated,
3252 methods=["OPTIONS"],
3253 operation_id=operation_id,
3254 response_model_include=response_model_include,
3255 response_model_exclude=response_model_exclude,
3256 response_model_by_alias=response_model_by_alias,
3257 response_model_exclude_unset=response_model_exclude_unset,
3258 response_model_exclude_defaults=response_model_exclude_defaults,
3259 response_model_exclude_none=response_model_exclude_none,
3260 include_in_schema=include_in_schema,
3261 response_class=response_class,
3262 name=name,
3263 callbacks=callbacks,
3264 openapi_extra=openapi_extra,
3265 generate_unique_id_function=generate_unique_id_function,
3266 )
3268 def head( 1efabcd
3269 self,
3270 path: Annotated[
3271 str,
3272 Doc(
3273 """
3274 The URL path to be used for this *path operation*.
3276 For example, in `http://example.com/items`, the path is `/items`.
3277 """
3278 ),
3279 ],
3280 *,
3281 response_model: Annotated[
3282 Any,
3283 Doc(
3284 """
3285 The type to use for the response.
3287 It could be any valid Pydantic *field* type. So, it doesn't have to
3288 be a Pydantic model, it could be other things, like a `list`, `dict`,
3289 etc.
3291 It will be used for:
3293 * Documentation: the generated OpenAPI (and the UI at `/docs`) will
3294 show it as the response (JSON Schema).
3295 * Serialization: you could return an arbitrary object and the
3296 `response_model` would be used to serialize that object into the
3297 corresponding JSON.
3298 * Filtering: the JSON sent to the client will only contain the data
3299 (fields) defined in the `response_model`. If you returned an object
3300 that contains an attribute `password` but the `response_model` does
3301 not include that field, the JSON sent to the client would not have
3302 that `password`.
3303 * Validation: whatever you return will be serialized with the
3304 `response_model`, converting any data as necessary to generate the
3305 corresponding JSON. But if the data in the object returned is not
3306 valid, that would mean a violation of the contract with the client,
3307 so it's an error from the API developer. So, FastAPI will raise an
3308 error and return a 500 error code (Internal Server Error).
3310 Read more about it in the
3311 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).
3312 """
3313 ),
3314 ] = Default(None),
3315 status_code: Annotated[
3316 Optional[int],
3317 Doc(
3318 """
3319 The default status code to be used for the response.
3321 You could override the status code by returning a response directly.
3323 Read more about it in the
3324 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
3325 """
3326 ),
3327 ] = None,
3328 tags: Annotated[
3329 Optional[List[Union[str, Enum]]],
3330 Doc(
3331 """
3332 A list of tags to be applied to the *path operation*.
3334 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3336 Read more about it in the
3337 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).
3338 """
3339 ),
3340 ] = None,
3341 dependencies: Annotated[
3342 Optional[Sequence[params.Depends]],
3343 Doc(
3344 """
3345 A list of dependencies (using `Depends()`) to be applied to the
3346 *path operation*.
3348 Read more about it in the
3349 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).
3350 """
3351 ),
3352 ] = None,
3353 summary: Annotated[
3354 Optional[str],
3355 Doc(
3356 """
3357 A summary for the *path operation*.
3359 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3361 Read more about it in the
3362 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
3363 """
3364 ),
3365 ] = None,
3366 description: Annotated[
3367 Optional[str],
3368 Doc(
3369 """
3370 A description for the *path operation*.
3372 If not provided, it will be extracted automatically from the docstring
3373 of the *path operation function*.
3375 It can contain Markdown.
3377 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3379 Read more about it in the
3380 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
3381 """
3382 ),
3383 ] = None,
3384 response_description: Annotated[
3385 str,
3386 Doc(
3387 """
3388 The description for the default response.
3390 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3391 """
3392 ),
3393 ] = "Successful Response",
3394 responses: Annotated[
3395 Optional[Dict[Union[int, str], Dict[str, Any]]],
3396 Doc(
3397 """
3398 Additional responses that could be returned by this *path operation*.
3400 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3401 """
3402 ),
3403 ] = None,
3404 deprecated: Annotated[
3405 Optional[bool],
3406 Doc(
3407 """
3408 Mark this *path operation* as deprecated.
3410 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3411 """
3412 ),
3413 ] = None,
3414 operation_id: Annotated[
3415 Optional[str],
3416 Doc(
3417 """
3418 Custom operation ID to be used by this *path operation*.
3420 By default, it is generated automatically.
3422 If you provide a custom operation ID, you need to make sure it is
3423 unique for the whole API.
3425 You can customize the
3426 operation ID generation with the parameter
3427 `generate_unique_id_function` in the `FastAPI` class.
3429 Read more about it in the
3430 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
3431 """
3432 ),
3433 ] = None,
3434 response_model_include: Annotated[
3435 Optional[IncEx],
3436 Doc(
3437 """
3438 Configuration passed to Pydantic to include only certain fields in the
3439 response data.
3441 Read more about it in the
3442 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3443 """
3444 ),
3445 ] = None,
3446 response_model_exclude: Annotated[
3447 Optional[IncEx],
3448 Doc(
3449 """
3450 Configuration passed to Pydantic to exclude certain fields in the
3451 response data.
3453 Read more about it in the
3454 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3455 """
3456 ),
3457 ] = None,
3458 response_model_by_alias: Annotated[
3459 bool,
3460 Doc(
3461 """
3462 Configuration passed to Pydantic to define if the response model
3463 should be serialized by alias when an alias is used.
3465 Read more about it in the
3466 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3467 """
3468 ),
3469 ] = True,
3470 response_model_exclude_unset: Annotated[
3471 bool,
3472 Doc(
3473 """
3474 Configuration passed to Pydantic to define if the response data
3475 should have all the fields, including the ones that were not set and
3476 have their default values. This is different from
3477 `response_model_exclude_defaults` in that if the fields are set,
3478 they will be included in the response, even if the value is the same
3479 as the default.
3481 When `True`, default values are omitted from the response.
3483 Read more about it in the
3484 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
3485 """
3486 ),
3487 ] = False,
3488 response_model_exclude_defaults: Annotated[
3489 bool,
3490 Doc(
3491 """
3492 Configuration passed to Pydantic to define if the response data
3493 should have all the fields, including the ones that have the same value
3494 as the default. This is different from `response_model_exclude_unset`
3495 in that if the fields are set but contain the same default values,
3496 they will be excluded from the response.
3498 When `True`, default values are omitted from the response.
3500 Read more about it in the
3501 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
3502 """
3503 ),
3504 ] = False,
3505 response_model_exclude_none: Annotated[
3506 bool,
3507 Doc(
3508 """
3509 Configuration passed to Pydantic to define if the response data should
3510 exclude fields set to `None`.
3512 This is much simpler (less smart) than `response_model_exclude_unset`
3513 and `response_model_exclude_defaults`. You probably want to use one of
3514 those two instead of this one, as those allow returning `None` values
3515 when it makes sense.
3517 Read more about it in the
3518 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).
3519 """
3520 ),
3521 ] = False,
3522 include_in_schema: Annotated[
3523 bool,
3524 Doc(
3525 """
3526 Include this *path operation* in the generated OpenAPI schema.
3528 This affects the generated OpenAPI (e.g. visible at `/docs`).
3530 Read more about it in the
3531 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
3532 """
3533 ),
3534 ] = True,
3535 response_class: Annotated[
3536 Type[Response],
3537 Doc(
3538 """
3539 Response class to be used for this *path operation*.
3541 This will not be used if you return a response directly.
3543 Read more about it in the
3544 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).
3545 """
3546 ),
3547 ] = Default(JSONResponse),
3548 name: Annotated[
3549 Optional[str],
3550 Doc(
3551 """
3552 Name for this *path operation*. Only used internally.
3553 """
3554 ),
3555 ] = None,
3556 callbacks: Annotated[
3557 Optional[List[BaseRoute]],
3558 Doc(
3559 """
3560 List of *path operations* that will be used as OpenAPI callbacks.
3562 This is only for OpenAPI documentation, the callbacks won't be used
3563 directly.
3565 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3567 Read more about it in the
3568 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
3569 """
3570 ),
3571 ] = None,
3572 openapi_extra: Annotated[
3573 Optional[Dict[str, Any]],
3574 Doc(
3575 """
3576 Extra metadata to be included in the OpenAPI schema for this *path
3577 operation*.
3579 Read more about it in the
3580 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).
3581 """
3582 ),
3583 ] = None,
3584 generate_unique_id_function: Annotated[
3585 Callable[[APIRoute], str],
3586 Doc(
3587 """
3588 Customize the function used to generate unique IDs for the *path
3589 operations* shown in the generated OpenAPI.
3591 This is particularly useful when automatically generating clients or
3592 SDKs for your API.
3594 Read more about it in the
3595 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
3596 """
3597 ),
3598 ] = Default(generate_unique_id),
3599 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
3600 """
3601 Add a *path operation* using an HTTP HEAD operation.
3603 ## Example
3605 ```python
3606 from fastapi import APIRouter, FastAPI
3607 from pydantic import BaseModel
3609 class Item(BaseModel):
3610 name: str
3611 description: str | None = None
3613 app = FastAPI()
3614 router = APIRouter()
3616 @router.head("/items/", status_code=204)
3617 def get_items_headers(response: Response):
3618 response.headers["X-Cat-Dog"] = "Alone in the world"
3620 app.include_router(router)
3621 ```
3622 """
3623 return self.api_route( 1efabcd
3624 path=path,
3625 response_model=response_model,
3626 status_code=status_code,
3627 tags=tags,
3628 dependencies=dependencies,
3629 summary=summary,
3630 description=description,
3631 response_description=response_description,
3632 responses=responses,
3633 deprecated=deprecated,
3634 methods=["HEAD"],
3635 operation_id=operation_id,
3636 response_model_include=response_model_include,
3637 response_model_exclude=response_model_exclude,
3638 response_model_by_alias=response_model_by_alias,
3639 response_model_exclude_unset=response_model_exclude_unset,
3640 response_model_exclude_defaults=response_model_exclude_defaults,
3641 response_model_exclude_none=response_model_exclude_none,
3642 include_in_schema=include_in_schema,
3643 response_class=response_class,
3644 name=name,
3645 callbacks=callbacks,
3646 openapi_extra=openapi_extra,
3647 generate_unique_id_function=generate_unique_id_function,
3648 )
3650 def patch( 1efabcd
3651 self,
3652 path: Annotated[
3653 str,
3654 Doc(
3655 """
3656 The URL path to be used for this *path operation*.
3658 For example, in `http://example.com/items`, the path is `/items`.
3659 """
3660 ),
3661 ],
3662 *,
3663 response_model: Annotated[
3664 Any,
3665 Doc(
3666 """
3667 The type to use for the response.
3669 It could be any valid Pydantic *field* type. So, it doesn't have to
3670 be a Pydantic model, it could be other things, like a `list`, `dict`,
3671 etc.
3673 It will be used for:
3675 * Documentation: the generated OpenAPI (and the UI at `/docs`) will
3676 show it as the response (JSON Schema).
3677 * Serialization: you could return an arbitrary object and the
3678 `response_model` would be used to serialize that object into the
3679 corresponding JSON.
3680 * Filtering: the JSON sent to the client will only contain the data
3681 (fields) defined in the `response_model`. If you returned an object
3682 that contains an attribute `password` but the `response_model` does
3683 not include that field, the JSON sent to the client would not have
3684 that `password`.
3685 * Validation: whatever you return will be serialized with the
3686 `response_model`, converting any data as necessary to generate the
3687 corresponding JSON. But if the data in the object returned is not
3688 valid, that would mean a violation of the contract with the client,
3689 so it's an error from the API developer. So, FastAPI will raise an
3690 error and return a 500 error code (Internal Server Error).
3692 Read more about it in the
3693 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).
3694 """
3695 ),
3696 ] = Default(None),
3697 status_code: Annotated[
3698 Optional[int],
3699 Doc(
3700 """
3701 The default status code to be used for the response.
3703 You could override the status code by returning a response directly.
3705 Read more about it in the
3706 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
3707 """
3708 ),
3709 ] = None,
3710 tags: Annotated[
3711 Optional[List[Union[str, Enum]]],
3712 Doc(
3713 """
3714 A list of tags to be applied to the *path operation*.
3716 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3718 Read more about it in the
3719 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).
3720 """
3721 ),
3722 ] = None,
3723 dependencies: Annotated[
3724 Optional[Sequence[params.Depends]],
3725 Doc(
3726 """
3727 A list of dependencies (using `Depends()`) to be applied to the
3728 *path operation*.
3730 Read more about it in the
3731 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).
3732 """
3733 ),
3734 ] = None,
3735 summary: Annotated[
3736 Optional[str],
3737 Doc(
3738 """
3739 A summary for the *path operation*.
3741 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3743 Read more about it in the
3744 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
3745 """
3746 ),
3747 ] = None,
3748 description: Annotated[
3749 Optional[str],
3750 Doc(
3751 """
3752 A description for the *path operation*.
3754 If not provided, it will be extracted automatically from the docstring
3755 of the *path operation function*.
3757 It can contain Markdown.
3759 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3761 Read more about it in the
3762 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
3763 """
3764 ),
3765 ] = None,
3766 response_description: Annotated[
3767 str,
3768 Doc(
3769 """
3770 The description for the default response.
3772 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3773 """
3774 ),
3775 ] = "Successful Response",
3776 responses: Annotated[
3777 Optional[Dict[Union[int, str], Dict[str, Any]]],
3778 Doc(
3779 """
3780 Additional responses that could be returned by this *path operation*.
3782 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3783 """
3784 ),
3785 ] = None,
3786 deprecated: Annotated[
3787 Optional[bool],
3788 Doc(
3789 """
3790 Mark this *path operation* as deprecated.
3792 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3793 """
3794 ),
3795 ] = None,
3796 operation_id: Annotated[
3797 Optional[str],
3798 Doc(
3799 """
3800 Custom operation ID to be used by this *path operation*.
3802 By default, it is generated automatically.
3804 If you provide a custom operation ID, you need to make sure it is
3805 unique for the whole API.
3807 You can customize the
3808 operation ID generation with the parameter
3809 `generate_unique_id_function` in the `FastAPI` class.
3811 Read more about it in the
3812 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
3813 """
3814 ),
3815 ] = None,
3816 response_model_include: Annotated[
3817 Optional[IncEx],
3818 Doc(
3819 """
3820 Configuration passed to Pydantic to include only certain fields in the
3821 response data.
3823 Read more about it in the
3824 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3825 """
3826 ),
3827 ] = None,
3828 response_model_exclude: Annotated[
3829 Optional[IncEx],
3830 Doc(
3831 """
3832 Configuration passed to Pydantic to exclude certain fields in the
3833 response data.
3835 Read more about it in the
3836 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3837 """
3838 ),
3839 ] = None,
3840 response_model_by_alias: Annotated[
3841 bool,
3842 Doc(
3843 """
3844 Configuration passed to Pydantic to define if the response model
3845 should be serialized by alias when an alias is used.
3847 Read more about it in the
3848 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3849 """
3850 ),
3851 ] = True,
3852 response_model_exclude_unset: Annotated[
3853 bool,
3854 Doc(
3855 """
3856 Configuration passed to Pydantic to define if the response data
3857 should have all the fields, including the ones that were not set and
3858 have their default values. This is different from
3859 `response_model_exclude_defaults` in that if the fields are set,
3860 they will be included in the response, even if the value is the same
3861 as the default.
3863 When `True`, default values are omitted from the response.
3865 Read more about it in the
3866 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
3867 """
3868 ),
3869 ] = False,
3870 response_model_exclude_defaults: Annotated[
3871 bool,
3872 Doc(
3873 """
3874 Configuration passed to Pydantic to define if the response data
3875 should have all the fields, including the ones that have the same value
3876 as the default. This is different from `response_model_exclude_unset`
3877 in that if the fields are set but contain the same default values,
3878 they will be excluded from the response.
3880 When `True`, default values are omitted from the response.
3882 Read more about it in the
3883 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
3884 """
3885 ),
3886 ] = False,
3887 response_model_exclude_none: Annotated[
3888 bool,
3889 Doc(
3890 """
3891 Configuration passed to Pydantic to define if the response data should
3892 exclude fields set to `None`.
3894 This is much simpler (less smart) than `response_model_exclude_unset`
3895 and `response_model_exclude_defaults`. You probably want to use one of
3896 those two instead of this one, as those allow returning `None` values
3897 when it makes sense.
3899 Read more about it in the
3900 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).
3901 """
3902 ),
3903 ] = False,
3904 include_in_schema: Annotated[
3905 bool,
3906 Doc(
3907 """
3908 Include this *path operation* in the generated OpenAPI schema.
3910 This affects the generated OpenAPI (e.g. visible at `/docs`).
3912 Read more about it in the
3913 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
3914 """
3915 ),
3916 ] = True,
3917 response_class: Annotated[
3918 Type[Response],
3919 Doc(
3920 """
3921 Response class to be used for this *path operation*.
3923 This will not be used if you return a response directly.
3925 Read more about it in the
3926 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).
3927 """
3928 ),
3929 ] = Default(JSONResponse),
3930 name: Annotated[
3931 Optional[str],
3932 Doc(
3933 """
3934 Name for this *path operation*. Only used internally.
3935 """
3936 ),
3937 ] = None,
3938 callbacks: Annotated[
3939 Optional[List[BaseRoute]],
3940 Doc(
3941 """
3942 List of *path operations* that will be used as OpenAPI callbacks.
3944 This is only for OpenAPI documentation, the callbacks won't be used
3945 directly.
3947 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3949 Read more about it in the
3950 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
3951 """
3952 ),
3953 ] = None,
3954 openapi_extra: Annotated[
3955 Optional[Dict[str, Any]],
3956 Doc(
3957 """
3958 Extra metadata to be included in the OpenAPI schema for this *path
3959 operation*.
3961 Read more about it in the
3962 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).
3963 """
3964 ),
3965 ] = None,
3966 generate_unique_id_function: Annotated[
3967 Callable[[APIRoute], str],
3968 Doc(
3969 """
3970 Customize the function used to generate unique IDs for the *path
3971 operations* shown in the generated OpenAPI.
3973 This is particularly useful when automatically generating clients or
3974 SDKs for your API.
3976 Read more about it in the
3977 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
3978 """
3979 ),
3980 ] = Default(generate_unique_id),
3981 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
3982 """
3983 Add a *path operation* using an HTTP PATCH operation.
3985 ## Example
3987 ```python
3988 from fastapi import APIRouter, FastAPI
3989 from pydantic import BaseModel
3991 class Item(BaseModel):
3992 name: str
3993 description: str | None = None
3995 app = FastAPI()
3996 router = APIRouter()
3998 @router.patch("/items/")
3999 def update_item(item: Item):
4000 return {"message": "Item updated in place"}
4002 app.include_router(router)
4003 ```
4004 """
4005 return self.api_route( 1efabcd
4006 path=path,
4007 response_model=response_model,
4008 status_code=status_code,
4009 tags=tags,
4010 dependencies=dependencies,
4011 summary=summary,
4012 description=description,
4013 response_description=response_description,
4014 responses=responses,
4015 deprecated=deprecated,
4016 methods=["PATCH"],
4017 operation_id=operation_id,
4018 response_model_include=response_model_include,
4019 response_model_exclude=response_model_exclude,
4020 response_model_by_alias=response_model_by_alias,
4021 response_model_exclude_unset=response_model_exclude_unset,
4022 response_model_exclude_defaults=response_model_exclude_defaults,
4023 response_model_exclude_none=response_model_exclude_none,
4024 include_in_schema=include_in_schema,
4025 response_class=response_class,
4026 name=name,
4027 callbacks=callbacks,
4028 openapi_extra=openapi_extra,
4029 generate_unique_id_function=generate_unique_id_function,
4030 )
4032 def trace( 1efabcd
4033 self,
4034 path: Annotated[
4035 str,
4036 Doc(
4037 """
4038 The URL path to be used for this *path operation*.
4040 For example, in `http://example.com/items`, the path is `/items`.
4041 """
4042 ),
4043 ],
4044 *,
4045 response_model: Annotated[
4046 Any,
4047 Doc(
4048 """
4049 The type to use for the response.
4051 It could be any valid Pydantic *field* type. So, it doesn't have to
4052 be a Pydantic model, it could be other things, like a `list`, `dict`,
4053 etc.
4055 It will be used for:
4057 * Documentation: the generated OpenAPI (and the UI at `/docs`) will
4058 show it as the response (JSON Schema).
4059 * Serialization: you could return an arbitrary object and the
4060 `response_model` would be used to serialize that object into the
4061 corresponding JSON.
4062 * Filtering: the JSON sent to the client will only contain the data
4063 (fields) defined in the `response_model`. If you returned an object
4064 that contains an attribute `password` but the `response_model` does
4065 not include that field, the JSON sent to the client would not have
4066 that `password`.
4067 * Validation: whatever you return will be serialized with the
4068 `response_model`, converting any data as necessary to generate the
4069 corresponding JSON. But if the data in the object returned is not
4070 valid, that would mean a violation of the contract with the client,
4071 so it's an error from the API developer. So, FastAPI will raise an
4072 error and return a 500 error code (Internal Server Error).
4074 Read more about it in the
4075 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).
4076 """
4077 ),
4078 ] = Default(None),
4079 status_code: Annotated[
4080 Optional[int],
4081 Doc(
4082 """
4083 The default status code to be used for the response.
4085 You could override the status code by returning a response directly.
4087 Read more about it in the
4088 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
4089 """
4090 ),
4091 ] = None,
4092 tags: Annotated[
4093 Optional[List[Union[str, Enum]]],
4094 Doc(
4095 """
4096 A list of tags to be applied to the *path operation*.
4098 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
4100 Read more about it in the
4101 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).
4102 """
4103 ),
4104 ] = None,
4105 dependencies: Annotated[
4106 Optional[Sequence[params.Depends]],
4107 Doc(
4108 """
4109 A list of dependencies (using `Depends()`) to be applied to the
4110 *path operation*.
4112 Read more about it in the
4113 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).
4114 """
4115 ),
4116 ] = None,
4117 summary: Annotated[
4118 Optional[str],
4119 Doc(
4120 """
4121 A summary for the *path operation*.
4123 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
4125 Read more about it in the
4126 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
4127 """
4128 ),
4129 ] = None,
4130 description: Annotated[
4131 Optional[str],
4132 Doc(
4133 """
4134 A description for the *path operation*.
4136 If not provided, it will be extracted automatically from the docstring
4137 of the *path operation function*.
4139 It can contain Markdown.
4141 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
4143 Read more about it in the
4144 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
4145 """
4146 ),
4147 ] = None,
4148 response_description: Annotated[
4149 str,
4150 Doc(
4151 """
4152 The description for the default response.
4154 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
4155 """
4156 ),
4157 ] = "Successful Response",
4158 responses: Annotated[
4159 Optional[Dict[Union[int, str], Dict[str, Any]]],
4160 Doc(
4161 """
4162 Additional responses that could be returned by this *path operation*.
4164 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
4165 """
4166 ),
4167 ] = None,
4168 deprecated: Annotated[
4169 Optional[bool],
4170 Doc(
4171 """
4172 Mark this *path operation* as deprecated.
4174 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
4175 """
4176 ),
4177 ] = None,
4178 operation_id: Annotated[
4179 Optional[str],
4180 Doc(
4181 """
4182 Custom operation ID to be used by this *path operation*.
4184 By default, it is generated automatically.
4186 If you provide a custom operation ID, you need to make sure it is
4187 unique for the whole API.
4189 You can customize the
4190 operation ID generation with the parameter
4191 `generate_unique_id_function` in the `FastAPI` class.
4193 Read more about it in the
4194 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
4195 """
4196 ),
4197 ] = None,
4198 response_model_include: Annotated[
4199 Optional[IncEx],
4200 Doc(
4201 """
4202 Configuration passed to Pydantic to include only certain fields in the
4203 response data.
4205 Read more about it in the
4206 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
4207 """
4208 ),
4209 ] = None,
4210 response_model_exclude: Annotated[
4211 Optional[IncEx],
4212 Doc(
4213 """
4214 Configuration passed to Pydantic to exclude certain fields in the
4215 response data.
4217 Read more about it in the
4218 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
4219 """
4220 ),
4221 ] = None,
4222 response_model_by_alias: Annotated[
4223 bool,
4224 Doc(
4225 """
4226 Configuration passed to Pydantic to define if the response model
4227 should be serialized by alias when an alias is used.
4229 Read more about it in the
4230 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
4231 """
4232 ),
4233 ] = True,
4234 response_model_exclude_unset: Annotated[
4235 bool,
4236 Doc(
4237 """
4238 Configuration passed to Pydantic to define if the response data
4239 should have all the fields, including the ones that were not set and
4240 have their default values. This is different from
4241 `response_model_exclude_defaults` in that if the fields are set,
4242 they will be included in the response, even if the value is the same
4243 as the default.
4245 When `True`, default values are omitted from the response.
4247 Read more about it in the
4248 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
4249 """
4250 ),
4251 ] = False,
4252 response_model_exclude_defaults: Annotated[
4253 bool,
4254 Doc(
4255 """
4256 Configuration passed to Pydantic to define if the response data
4257 should have all the fields, including the ones that have the same value
4258 as the default. This is different from `response_model_exclude_unset`
4259 in that if the fields are set but contain the same default values,
4260 they will be excluded from the response.
4262 When `True`, default values are omitted from the response.
4264 Read more about it in the
4265 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
4266 """
4267 ),
4268 ] = False,
4269 response_model_exclude_none: Annotated[
4270 bool,
4271 Doc(
4272 """
4273 Configuration passed to Pydantic to define if the response data should
4274 exclude fields set to `None`.
4276 This is much simpler (less smart) than `response_model_exclude_unset`
4277 and `response_model_exclude_defaults`. You probably want to use one of
4278 those two instead of this one, as those allow returning `None` values
4279 when it makes sense.
4281 Read more about it in the
4282 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).
4283 """
4284 ),
4285 ] = False,
4286 include_in_schema: Annotated[
4287 bool,
4288 Doc(
4289 """
4290 Include this *path operation* in the generated OpenAPI schema.
4292 This affects the generated OpenAPI (e.g. visible at `/docs`).
4294 Read more about it in the
4295 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
4296 """
4297 ),
4298 ] = True,
4299 response_class: Annotated[
4300 Type[Response],
4301 Doc(
4302 """
4303 Response class to be used for this *path operation*.
4305 This will not be used if you return a response directly.
4307 Read more about it in the
4308 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).
4309 """
4310 ),
4311 ] = Default(JSONResponse),
4312 name: Annotated[
4313 Optional[str],
4314 Doc(
4315 """
4316 Name for this *path operation*. Only used internally.
4317 """
4318 ),
4319 ] = None,
4320 callbacks: Annotated[
4321 Optional[List[BaseRoute]],
4322 Doc(
4323 """
4324 List of *path operations* that will be used as OpenAPI callbacks.
4326 This is only for OpenAPI documentation, the callbacks won't be used
4327 directly.
4329 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
4331 Read more about it in the
4332 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
4333 """
4334 ),
4335 ] = None,
4336 openapi_extra: Annotated[
4337 Optional[Dict[str, Any]],
4338 Doc(
4339 """
4340 Extra metadata to be included in the OpenAPI schema for this *path
4341 operation*.
4343 Read more about it in the
4344 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).
4345 """
4346 ),
4347 ] = None,
4348 generate_unique_id_function: Annotated[
4349 Callable[[APIRoute], str],
4350 Doc(
4351 """
4352 Customize the function used to generate unique IDs for the *path
4353 operations* shown in the generated OpenAPI.
4355 This is particularly useful when automatically generating clients or
4356 SDKs for your API.
4358 Read more about it in the
4359 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
4360 """
4361 ),
4362 ] = Default(generate_unique_id),
4363 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
4364 """
4365 Add a *path operation* using an HTTP TRACE operation.
4367 ## Example
4369 ```python
4370 from fastapi import APIRouter, FastAPI
4371 from pydantic import BaseModel
4373 class Item(BaseModel):
4374 name: str
4375 description: str | None = None
4377 app = FastAPI()
4378 router = APIRouter()
4380 @router.trace("/items/{item_id}")
4381 def trace_item(item_id: str):
4382 return None
4384 app.include_router(router)
4385 ```
4386 """
4387 return self.api_route( 1efabcd
4388 path=path,
4389 response_model=response_model,
4390 status_code=status_code,
4391 tags=tags,
4392 dependencies=dependencies,
4393 summary=summary,
4394 description=description,
4395 response_description=response_description,
4396 responses=responses,
4397 deprecated=deprecated,
4398 methods=["TRACE"],
4399 operation_id=operation_id,
4400 response_model_include=response_model_include,
4401 response_model_exclude=response_model_exclude,
4402 response_model_by_alias=response_model_by_alias,
4403 response_model_exclude_unset=response_model_exclude_unset,
4404 response_model_exclude_defaults=response_model_exclude_defaults,
4405 response_model_exclude_none=response_model_exclude_none,
4406 include_in_schema=include_in_schema,
4407 response_class=response_class,
4408 name=name,
4409 callbacks=callbacks,
4410 openapi_extra=openapi_extra,
4411 generate_unique_id_function=generate_unique_id_function,
4412 )
4414 @deprecated( 1efabcd
4415 """
4416 on_event is deprecated, use lifespan event handlers instead.
4418 Read more about it in the
4419 [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/).
4420 """
4421 )
4422 def on_event( 1efabcd
4423 self,
4424 event_type: Annotated[
4425 str,
4426 Doc(
4427 """
4428 The type of event. `startup` or `shutdown`.
4429 """
4430 ),
4431 ],
4432 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
4433 """
4434 Add an event handler for the router.
4436 `on_event` is deprecated, use `lifespan` event handlers instead.
4438 Read more about it in the
4439 [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/#alternative-events-deprecated).
4440 """
4442 def decorator(func: DecoratedCallable) -> DecoratedCallable: 2e G zbf H Aba E xbb F ybc I Jbd J Kb
4443 self.add_event_handler(event_type, func) 2e G zbf H Aba E xbb F ybc I Jbd J Kb
4444 return func 2e G zbf H Aba E xbb F ybc I Jbd J Kb
4446 return decorator 2e G zbf H Aba E xbb F ybc I Jbd J Kb