From 482ec96440b92a4c769c5f0777295334dd7834a5 Mon Sep 17 00:00:00 2001 From: Archmonger <16909269+Archmonger@users.noreply.github.com> Date: Sun, 22 Sep 2024 23:13:37 -0700 Subject: [PATCH 1/7] improve docs clarity --- docs/src/reference/components.md | 2 ++ docs/src/reference/decorators.md | 2 +- docs/src/reference/hooks.md | 4 ++-- docs/src/reference/html.md | 6 +++--- docs/src/reference/template-tag.md | 7 +++++-- docs/src/reference/utils.md | 2 +- 6 files changed, 14 insertions(+), 9 deletions(-) diff --git a/docs/src/reference/components.md b/docs/src/reference/components.md index aaeabba7..1b7ae9b2 100644 --- a/docs/src/reference/components.md +++ b/docs/src/reference/components.md @@ -14,6 +14,8 @@ This allows you to embedded any number of client-side PyScript components within {% include-markdown "../reference/template-tag.md" start="" end="" %} +{% include-markdown "../reference/template-tag.md" start="" end="" %} + === "components.py" ```python diff --git a/docs/src/reference/decorators.md b/docs/src/reference/decorators.md index 6a0345da..962ec1e6 100644 --- a/docs/src/reference/decorators.md +++ b/docs/src/reference/decorators.md @@ -12,7 +12,7 @@ Decorator functions can be used within your `components.py` to help simplify dev You can limit component access to users that pass a test function by using this decorator. -This decorator is inspired by Django's [`user_passes_test`](http://docs.djangoproject.com/en/dev/topics/auth/default/#django.contrib.auth.decorators.user_passes_test) decorator, but works with ReactPy components. +This decorator is inspired by Django's [`user_passes_test`](http://docs.djangoproject.com/en/dev/topics/auth/default/#django.contrib.auth.decorators.user_passes_test) decorator, but this one works with ReactPy components. === "components.py" diff --git a/docs/src/reference/hooks.md b/docs/src/reference/hooks.md index 6d7da90f..3fc20841 100644 --- a/docs/src/reference/hooks.md +++ b/docs/src/reference/hooks.md @@ -400,7 +400,7 @@ This is often used to create chat systems, synchronize data between components, In these cases, you can use the `#!python use_channel_layer` hook to receive a signal within your component, and then use the `#!python get_channel_layer().send(...)` to send the signal. - In the example below, the sender will send a signal every time `#!python ExampleModel` is saved. Then, when the receiver component gets this signal, it explicitly calls `#!python set_message(...)` to trigger a re-render. + In the example below, the sender will signal every time `#!python ExampleModel` is saved. Then, when the receiver gets this signal, it explicitly calls `#!python set_message(...)` to trigger a re-render. === "signals.py" @@ -522,7 +522,7 @@ You can expect this hook to provide strings such as `http://example.com`. Shortcut that returns the root component's `#!python id` from the WebSocket or HTTP connection. -The root ID is currently a randomly generated `#!python uuid4` (unique across all root component). +The root ID is a randomly generated `#!python uuid4`. It is noteable to mention that it is persistent across the current connection. The `uuid` is reset when the page is refreshed. This is useful when used in combination with [`#!python use_channel_layer`](#use-channel-layer) to send messages to a specific component instance, and/or retain a backlog of messages in case that component is disconnected via `#!python use_channel_layer( ... , group_discard=False)`. diff --git a/docs/src/reference/html.md b/docs/src/reference/html.md index fd63c033..3fe3fe46 100644 --- a/docs/src/reference/html.md +++ b/docs/src/reference/html.md @@ -10,11 +10,11 @@ We supply some pre-generated that HTML nodes can be used to help simplify develo ## PyScript -Primitive HTML tag that is leveraged by [`reactpy_django.components.pyscript_component`](./components.md#pyscript-component). +PyScript code block. The text content of this tag are executed within the PyScript interpreter. This can be used as an alternative to the `#!python reactpy.html.script`. -This can be used as an alternative to the `#!python reactpy.html.script` tag to execute JavaScript and run client-side Python code. +This is a primitive HTML tag that is leveraged by [`reactpy_django.components.pyscript_component`](./components.md#pyscript-component). -Additionally, this tag functions identically to any other tag contained within `#!python reactpy.html`, and can be used in the same way. +The `pyscript` tag functions identically to HTML tags contained within `#!python reactpy.html`. === "components.py" diff --git a/docs/src/reference/template-tag.md b/docs/src/reference/template-tag.md index 434c81d0..197a3b29 100644 --- a/docs/src/reference/template-tag.md +++ b/docs/src/reference/template-tag.md @@ -10,7 +10,7 @@ Django template tags can be used within your HTML templates to provide ReactPy f ## Component -This template tag can be used to insert any number of ReactPy components onto your page. +This template tag can be used to insert any number of **server-side** ReactPy components onto your page. Each component loaded via this template tag will receive a dedicated WebSocket connection to the server. @@ -159,9 +159,10 @@ This template tag can be used to insert any number of **client-side** ReactPy co By default, the only dependencies available are the Python standard library, `pyscript`, `pyodide`, `reactpy` core. -Your PyScript component file requires a `#!python def root()` component to function as the entry point. +The entire file path provided is loaded directly into the browser, and must have a `#!python def root()` component to act as the entry point. + !!! warning "Pitfall" @@ -169,6 +170,8 @@ Your PyScript component file requires a `#!python def root()` component to funct As a result of running client-side, Python packages within your local environment (such as those installed via `pip install ...`) are **not accessible** within PyScript components. + + === "my_template.html" ```jinja diff --git a/docs/src/reference/utils.md b/docs/src/reference/utils.md index 6590012c..5402cc85 100644 --- a/docs/src/reference/utils.md +++ b/docs/src/reference/utils.md @@ -14,7 +14,7 @@ Utility functions provide various miscellaneous functionality for advanced use c ## Register Iframe -This function is used register a view as an `#!python iframe` with ReactPy. +This function is used register a Django view as a ReactPy `#!python iframe`. It is mandatory to use this function alongside [`view_to_iframe`](../reference/components.md#view-to-iframe). From 49e6c95d3e78240b1cd05f3a4ec5baf48f3a2849 Mon Sep 17 00:00:00 2001 From: Archmonger <16909269+Archmonger@users.noreply.github.com> Date: Sun, 22 Sep 2024 23:13:52 -0700 Subject: [PATCH 2/7] fix docs publishing concurrency issues --- .github/workflows/publish-develop-docs.yml | 2 ++ .github/workflows/publish-release-docs.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/publish-develop-docs.yml b/.github/workflows/publish-develop-docs.yml index b79d3cd2..c2b62d95 100644 --- a/.github/workflows/publish-develop-docs.yml +++ b/.github/workflows/publish-develop-docs.yml @@ -21,3 +21,5 @@ jobs: git config user.email github-actions@github.com cd docs mike deploy --push develop + concurrency: + group: publish-docs diff --git a/.github/workflows/publish-release-docs.yml b/.github/workflows/publish-release-docs.yml index a98e9869..3f24d129 100644 --- a/.github/workflows/publish-release-docs.yml +++ b/.github/workflows/publish-release-docs.yml @@ -21,3 +21,5 @@ jobs: git config user.email github-actions@github.com cd docs mike deploy --push --update-aliases ${{ github.event.release.name }} latest + concurrency: + group: publish-docs From d165650e74e4ad20c9c2e63304b940689c841796 Mon Sep 17 00:00:00 2001 From: Archmonger <16909269+Archmonger@users.noreply.github.com> Date: Sun, 22 Sep 2024 23:14:01 -0700 Subject: [PATCH 3/7] docstring clarity --- src/reactpy_django/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/reactpy_django/utils.py b/src/reactpy_django/utils.py index 48559e84..401cf724 100644 --- a/src/reactpy_django/utils.py +++ b/src/reactpy_django/utils.py @@ -334,7 +334,7 @@ def django_query_postprocessor( "One of the following may have occurred:\n" " - You are using a non-Django ORM.\n" " - You are attempting to use `use_query` to fetch non-ORM data.\n\n" - "If these situations seem correct, you may want to consider disabling the postprocessor." + "If these situations apply, you may want to disable the postprocessor." ) return data From a4caedddf1f3a67b994b4ae164131ce572ca387b Mon Sep 17 00:00:00 2001 From: Archmonger <16909269+Archmonger@users.noreply.github.com> Date: Sun, 22 Sep 2024 23:14:16 -0700 Subject: [PATCH 4/7] Add reminder to remove deprecated code --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 620c1f75..9652b644 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,7 +28,9 @@ Using the following categories, list your changes in this order: ### Security - for vulnerability fixes. - --> + +Don't forget to remove deprecated code on each major release! +--> From 1de5530463bb25bea5abf0e4a291e6cd42145028 Mon Sep 17 00:00:00 2001 From: Archmonger <16909269+Archmonger@users.noreply.github.com> Date: Sun, 22 Sep 2024 23:25:56 -0700 Subject: [PATCH 5/7] clean up homepage examples --- .../home-code-examples/add-interactivity.py | 12 +++++------- .../create-user-interfaces.py | 18 ++++++++---------- .../write-components-with-python.py | 5 ++++- docs/src/assets/img/add-interactivity.png | Bin 20118 -> 20821 bytes .../src/assets/img/create-user-interfaces.png | Bin 12381 -> 12427 bytes .../img/write-components-with-python.png | Bin 15412 -> 16519 bytes 6 files changed, 17 insertions(+), 18 deletions(-) diff --git a/docs/overrides/home-code-examples/add-interactivity.py b/docs/overrides/home-code-examples/add-interactivity.py index 90976446..f29ba3c8 100644 --- a/docs/overrides/home-code-examples/add-interactivity.py +++ b/docs/overrides/home-code-examples/add-interactivity.py @@ -1,16 +1,14 @@ +# pylint: disable=assignment-from-no-return, unnecessary-lambda from reactpy import component, html, use_state -def filter_videos(videos, search_text): - return None +def filter_videos(*_, **__): ... -def search_input(dictionary, value): - return None +def search_input(*_, **__): ... -def video_list(videos, empty_heading): - return None +def video_list(*_, **__): ... @component @@ -20,7 +18,7 @@ def searchable_video_list(videos): return html._( search_input( - {"on_change": lambda new_text: set_search_text(new_text)}, + {"onChange": lambda new_text: set_search_text(new_text)}, value=search_text, ), video_list( diff --git a/docs/overrides/home-code-examples/create-user-interfaces.py b/docs/overrides/home-code-examples/create-user-interfaces.py index 37776ab1..873b9d88 100644 --- a/docs/overrides/home-code-examples/create-user-interfaces.py +++ b/docs/overrides/home-code-examples/create-user-interfaces.py @@ -1,22 +1,20 @@ from reactpy import component, html -def thumbnail(video): - return None +def thumbnail(*_, **__): ... -def like_button(video): - return None +def like_button(*_, **__): ... @component -def video(video): +def video(data): return html.div( - thumbnail(video), + thumbnail(data), html.a( - {"href": video.url}, - html.h3(video.title), - html.p(video.description), + {"href": data.url}, + html.h3(data.title), + html.p(data.description), ), - like_button(video), + like_button(data), ) diff --git a/docs/overrides/home-code-examples/write-components-with-python.py b/docs/overrides/home-code-examples/write-components-with-python.py index 6af43baa..47e28b68 100644 --- a/docs/overrides/home-code-examples/write-components-with-python.py +++ b/docs/overrides/home-code-examples/write-components-with-python.py @@ -1,6 +1,9 @@ from reactpy import component, html +def video(*_, **__): ... + + @component def video_list(videos, empty_heading): count = len(videos) @@ -11,5 +14,5 @@ def video_list(videos, empty_heading): return html.section( html.h2(heading), - [video(video) for video in videos], + [video(x, key=x.id) for x in videos], ) diff --git a/docs/src/assets/img/add-interactivity.png b/docs/src/assets/img/add-interactivity.png index e5e24d2925db020621ed3a157b3b34bd516353c1..009b52ac123e2854259c3b2b3e478a721ed6b110 100644 GIT binary patch literal 20821 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 diff --git a/docs/src/assets/img/create-user-interfaces.png b/docs/src/assets/img/create-user-interfaces.png index 13abd064d9ba90d6640f3769bba0eade6e366868..06f6ea0cb6fdd4e17a6af5e374ced578cc0728f3 100644 GIT binary patch delta 11314 zcma*NWl&u~lr4O*puyb(!QEYhySoG@5Zv`Zg1fr~3GVKJ;O+zu9^CC>-%Vz|s(JHX zP0gQEeNJ_qmfgMA+H3E%kC7(t!c~-{-y#trfk2?QvN95CAP^K0q&jhS zhX?(prj}n9T7Z*@m5+&?U4xy2pN)&3gPVz!ho6;|g51;2kzdil{F9}Zgo&$#5CuCc z`+w=m&dJZlmpB1Ug8qMfe1!I*BRGXJR+yGGnr|X;9wdCev;^yY%GvVXrW;3@;T!f+eU-ct{ z)t3BU{LhSn+{IPW-Id?N+QR<7FYDh9B(}qf;yasL@_+vHpIuGNTt7KLI=h&-C+fhG zN}6z+vYDB1nK1F1a9A>Na&dAqnX;O5GnsR8a`3QQnwfD}aQ#oiu(R^Bu|kFsWd6?q z%&bl9tt`xiC|D?1gvkZ}$HD&>d;34G@jpxl864yP8a(k9)(H68lZycY(FMv%h-r9c zon-r{BrdkScDK9T%^`=c=HF2rY^HQt*EK6Q7byAQJ$yuCs;zIa3v%Y(bUI#IemldER&%X3%chf z{Y7j+?@TW;BNVu)*f-p`c{)8P&V2*g+*4nAA^=Tk((r0PK?nXuiiHwAWTsy^t04bC zK7=k4e|}-vp0`GW_}*L()uClCuu8!kT0-ngM|Ho5c#vFu^^j|H{f*59!78 z%a@u2Bs(TToe%9v3g42IKt1bEoLRi1OYuLr=-|bXgx71c-hx!JF*>N=|A?(1&#AhK zpkYfdoSm{d8-I1C^+y$b()mK;r9ezt_&FJ-SFS85U#=vUr=U2u3hVC_j;jkg#R5-9 zv)e{hXn~Wh{(ZbDWWv-lmdO(J2gcYt0S4Xz^CP^rJlKIEL1)CLhR%0Q{7{w>r#c0~ z6zJyIv>~4211?zI&1PO31W;?TKbF;9X+SNuF1+KeG#nI*5l}&r_Kl+d5>z^AGT$&O})v4EP*ts4p*`WqpYtm)RU&_fMj6SjAt zyicV}@SqP&KjS8fj`Nm7Egipnc7qmmvwS{91!f0wy-9I;C*egX|1FB6U*{2dO7Mawvn?hCw{JTG3xWjcY2LkB= zUZJx-%^u6-J+aWWr3{|^E}fYA)*aEzer^=bY&syZUb5y>!y^)U(G$Xqb5h&vde1n? z{H^Y-5NN`ECjM%W5{~RFucYzXin_uI<{`W;?TOgZpsou;aPSO?NZ6>L=?>0~1Tdk( znKy2rk+$!q3uHy~tjMo|i_diHu{9}DpTG$eWwk)sp;@?cSCxuc@>C8NJva3q%u1p{ zM>zdmdyxYQWGyAfl_YOTq}vt>93BIn27#zM?9Uh7uaDi^Lcy{Kx&;WZ9^#ArJ@}aHRd})oyEse7mQvA!|{VY{T=%F_+gzI1kK)jDvwg zFYA9<0_NUs{G@&O-Oj}-7Ph*t-*0YCQ$XCQ$jNwJ`7}F5z^kLpUMp`alqHl1qI~k8`0as@K%48H~3Y0 zmhy5hvb+B$n2Elf|Cy>GiR#3*fg8I=l@#Xp>;Bl(i}J)tq(C#vX}LbQEDcV8r>2Wu z81lN>rQE<`5fTFPi!?*Oo1cdxDLS3SqH3bjIQwz>OL4`m5|=xEIlVZqFxql=AxJcb zVh9~!A`O{P5tzROn~s)w9?f`%PXOFaGZP4%hed*Ps z@-U0Q4=7X{8egr(52%YN%^yc}xx!MBO~p2nFi%*rtk|-`@mXd_akr28)^#pc>g(ua z+BOte6oJ(gH@`L=LN-sR<@k%ykI(iZHx=!vzM%oQ-f=s5+O2j3m2@A>5iUFS;?^}Z zFNfvw;tGZoUy9?Fb%FQUt}=>^vcEDcrn?>J>}&r-&RIbvw%x$g%C@LqgB(1q zyJjA!20x!ni{pDYK+2(f&aSzEaYGbzf6+_jm#J&gQ*kPvOQhAam;XLKj8WyZ$J^Yr z=}du}hq`%P#d*|5pGc#@oeDu4VM?qh~RbRt6lMe)yvv3)6Jx;3^ULF!iikdb~HpUD40*li7F1vN3Z1t8O#P z^t>I(S}#K9wiSUNksw)=?TywWRTOGwt?+pAfQK~6ID>=sfHYzd0wS7P6RC4!YCKTZ zgHAN#oeZYoZPCVCkdY89iqhAG0zqzm<^{MnsX~SpiQ|qKj+LjIYt1)la34PJu5HaR z4BQJ}gjX>aY$t;!yvD@x{9`XQ2V!Kn6jmX_vxB;ymWC=T=R5ZPE6>Z9HM({>VH3*P zZNmY-VPiKp*7O{$f?Kh#sQs1DvjC}NRYlRQ8PNi`I=;J|>u#YB+0Eu9V1l&1DvU5M9%t?u7t z7+=&M#@1u@p#dVS*s}B%Pp0u@IvtM*K?M;(6Ph6mL&^RhAJW>%kk=Ee_cJ4tcB=w+SQZ_3dG zW=jq0bX?Lsea(gn=cVl)&jOC8LM0Ka-qaaxUL3aZ1p*p(gxLhjEs1sYMr*fL-STa4 zaal$)tMw+8hE?wUd5i<1! zA=gV>HE>KhWY*Kuvn>Pty5U0k5< zc)mH;=~UL~Lv4d))uxL{gn@;gDPH*&@MS;U6Bj4NgOkqe!E+KCl%HTEl)m{pP`~lL zVn*76tIuaEb40x-kw4)c_OS5e(^ugkK%ttoSf9mPy(i-xu?vwNZZkVo26w8Wnri#! z6d&JtUl3Y%)#KX5qKzspVvwu&9#fySZaeC%P zMwLig)d3fadEY~xvcSyrHf>)~nzzwP2>vvN4JnVM{(ym9t!w)_RNvJ}$! zew8E_&&*Bj@)OJVDatNjd-F??yPu5KJ>hFpALl32&Jn96j!dX52StU%6ypPFD|OQh zPBz7i7X5hzw3etFNxfM+aJ+Z&BuBmBudm@mGnDgD>qeGS{@2Hdlh}Z>JkEgLa6#%y zqyM++KTVnjsQQm~SE`00xP7ld7yXovC8sW*#*Lv%G}i{k_(lVFCodhhVe54ovmd?x z9PDScLJy@0WZj3EbE#L+)yoGtN0d?e z=3AT5a^3{*e(hdzS@hagkHPU|m4D`%!4`P;LgN{65uUSHW)CR)I9)MEZiE<(e;`|r zz|f46#!I=Q#_GWL$v9h+K3^R#II$cROIM&4sL?cbY=F2#s$h`IXz(*Ly1gxb;(q~>yLrCuK36_o;s`R z_EU6dxvvn%C~#G2^>b@6$!Rel{6^RAQ`pnX6mlV% zsMpgGzi@aOJt^0`t)+F?Z!QcX^P%(`ZtX&Z<_qRT1nw=y%epRdU;+axRAIje5a>rz zB>40ey!kK0^`9ePM`V(#;mKuJ-eD8Y#&64)qgRiP2+CAerNY(}S8ZqfeiE&B9e=%h zf=eI7h3WMnNdJ2g<-sm^%gg@cVtQbdNv`D~DVb$ANXp-|ll+6q+~p6`la3ESyHSS+ zI1)pbhJ-p_oNBl^xpX@1kVu<%nrt^pVfBL};-#?7*f;mHZ^z9u^_{#KD@)kgLY7x- z(wWUg2XUPIEM>ygOJ-k{j5-$cub1}XKPHLG<+>X^86jpHDW-l9F8sYs^5RUL+wsxC zAGKKbJjDPKGrT3aqj(T>otKRV(8Ddiu658uzC)poHY76Fz3F5+E|WBs^9UK$3$jIrxZ0yQll#;XF^ivS{e z?h^@eNHBWjC!f2!r1~sL0NoQWpOMGqlWwrQbtkT${wYh&m zDz&tmrXoI!7w^u6BmMd&-*f;{K4Uo2EGdRjHdT!c**Z(cCRzr zMmz9mqka%xFR5%s7DsEb)WP3>-|08L1neuP%A8bO52vp*vXez)TilHSV_$c z7}!ic%ag`;z-O8Wb8wk2z>jqcF&D``KwcRi7v!hrJ3e05;=3AL1$3Y4JZ z2`bWpFDmOFYg;oRoTyH*(X^HreAdiw?v81@L@05UbF}YpcM-&1j=%X6ZRkMciVLx} zPTan;?ILQBQ2`tP?tiRar7*gYX!~(OaMRX$73%vWJUK*%c+uut&sBT#aW% z-DCBDb{!Krt-@RgQWLB;d!JX&xOMYPoy#rQmo5yp zkobdB^|5#8W|)lxpPM+le=IO8#bjOLN}T4EV9N2T6a)Bm8$2FNlF2F>vP#y{J!Hzi zA_7L0vos(62D1X)h1!$Fr}-tA5qhIAhNEL~{`>M4S61Y-Jv%}Ue@%FvAh^xqG@0`g z4bM+DflD1*62X83CE69PR;y)M8nIipwdl=~ zar6i?FfW*dH4{o|p#W5%Ags+utkM$W%B`%=iLV%B1=PW!+&{b1Jd0eMgk&tBAF<&^_7c zkre+&Gn_|%ZZGP7r0}5Nbl`^bETx9tnnsY&vtDxP2Z5Q3RmPnv@-pH&su$U=lpwP; zje=mudj9wBPLFXl+&uXu?4nU{%x^B5R45RCCZ_yc=34UJnoM#bpqez`a5$~0gWG^b z%GR-Zbft?+GW8yUr8y_p#$bMUQJ0(GKF)(BB@{!x(Lyg4lRmdonJZx)5vb&brjBz8 zibND`R9*fqMbGPV=SadfXDw$^kWxeG?=!O%@zuCJ5+NT`H|U#x0889CGxQ}d`y65G z#wfQKV?id$0sy?f#k+iQ?=9>fU8Gf3PfNf-T;uvsgj7H!yK-{bCY`3BpcZ*}c;@jb z(|jO|^9;m#{!@Mw_rD3T`jy-vj$V$8CZjfv6`a3qhmR3y(ns^iR{6EiIP4-bnr;b7!9SZRAu}?`5DFl2LQiX zlW;$-J-7n1p&zY^o=k>6s+%$))#dYPza}eulHw7ENC81t1c?upy*0Z5pAA_-D9wN4 z@;RKz(wuIg1h|tmGkGqNsEuRd5S=8&`+ZzyjWzJ&VXh$e*0JPD%9fs6w0@Ker-Vic z>|w9CAz^=Q@ga#S4&-NJoQ=Rdn(P_?f4|==G5_;b20X7`??kY5vt%mwk=(v9Ep0Xy z2JPEHYiOh&q4k?ppw}j4gHv%Ik9x20fS~WE|J%IQ>cBRKB;+KInVI~Y;fH6>$zF^h z!rk|G_S9$aAOi=v4tqT=+v({-s#%bARj0n!6-B^OWDNC#;jayx6dZuW+`zu4(M*Tn z$D20_kNu&IT&`cAlesK4^-)I_;M{U>JJl_KL#fuSXy>Rlrp+gW{JQd47`o{dO%Qsb ze)gVx_!RyR8VT zLr<=Nx2(o1Rd4uBO=yAbB{;*kV|6a^ZKTbv7o+tKr`15^L!42&XEwNKj9Jqml2|7j zmB1)nbfKRvC0qx6l+ zya(}8#E5ABpCo>Ee6)$fsJ}MCO1$BJnP7+qG*JNCZ!keT(64aSP|z?7GtA035id81M+K76C6Q5EYii} z8vnAy0JU%UVVo7JLO!U*Npds0^rCnRi4OS^WkHPdBaEU2EhSq*RxV?E`F91e#l@rM zzyZE}sl#U9!?I21O#ovIADB3cI|A@TtgyZ_1hY;|lBKW`CI{n#^f&pOGJT zULYTn7``$R^y>h?Y6{N#(6;0K>Pp*GHG}F!;<2C_b^Gmx5ZO{`wObsL^JhwS*#-x>>wQ}9m@Ff zh=bQcE=ts8JF8c&&EZjLgYK_lkncPaQI;WjvA_5nJL2Ba-`$5{1(bM8zsC$$67WT$ zwmNtI-P^6D+;As?WhWejF~oy&_+9}6r|ddH+-&za=@-dW-n~7F(qKEXG>*Z?N zeJBz@x!;})*(qQYvO~eT6yDF$f}I>M??J!aJ2jmB!7DzL=g-eYqb+|v^GE*S>TzwA zH#@Z0AK^DSwwP@rZN#M>u0ispbi7Mj@}s6sprJ&Zl@V+I_D?0f?)6Mm;*6NNS6r|N z0}DjeC{gRf;|HCxwa$;lyL`0=M#c0{0JOegb0-k%lO|oIaD$YFyBk=(0mi=S_4VKj z^a|E@ZsJVd2s%^Mg$oESs<0>u#*PzQ*c$Es_POatb8jbp91OhsWpAwbcCUZsg<3 z)-f~*3@J?{w!7XBRG}14l&|9+RA+b&#+ym#qZM`+et%2%SH$%^W!nDgE5d1WW~EGP z$Fd}?J6I}l-JGd04$1@Pdjp=>X7m=NHkdwwYAbA>{YZ9%8{}mm? zDrmiI`dQ;!)d$9r@)B#+2(3vRXlKxUw=felvCkBrm=A<}zQ+zu_lfz^FGj_tC6X5Bm#Iag@16cN#7;8%Il6pL?A^%)`nio`Du`v8|wzzI|KhE(`Kzl|C zVlhzQvFF06(#L23h=feXexON1iRvU`e`>?D7a~s_HiuXIup8|$kKo@UNNyj!*A9bV zv?Ei~*?Q2v`J0!>>ET5AeskYwRwuWgz#FMfif{b9=Wt;p+g6Dg<|EDbWWcC3eGgCh)Hhz8->##Y^PCqal0T!XTsh^g{#ki#G zP?eHZei&;i{zSORxW-L-FjWk&Mu10rygyWAaT;2()tO0GtDWoj{Y1c_1>Ki14J;)s zx-m3bmhT)36kowBaV#!*<8Iw}@pN+&w?+;Xo6@M%jG8HgceYI_UpT0{M2u9W3=fQF ziFOE|?L(kpmFA`C>+=m;walAsVaWCKc6eU%b+TucBiyj136oTWcJ_XKL0AurpA~pF zfB8RqmytKLx=0uVix>!23&h$E_XctaBK985$Q~* zT)yR|;794RE^1hPBu<`sR(sAoFf|9*S>N+ftXz_Dk?i;-rT!3UcKmj@P;kGF=$P2B zPLjQIO`6FAJhqlHXXg;~$zHXO^yk&dT=9Ifawf2q% zv*9&JYm}s2?TtNXqtGHD-MGt#JqRt~za-B4M59h*7XDi659)m;n_Do*|VV0-{L;8=#Zm(VW- z#-}3s{zb0`tf}uME0T4~=O6!NN+MEKREMx9|DFLM)~ma|w+Hcu{QNHMV{sy>7!9+0 zn;7XyxhTKu(qu8JlcqHdq;~D;w1Eyc$SJ7a_SK}v4425C!L6*~rEcbrnN_3y`|iyp zqDa#fHtcsrb@K`1Ybl>DE&P|oVc4%0f7uUBWOvT(D&ZX!q-R|U#>k(8C(gFoKd##6 zZC~|48lB?`74S*<<2&NSbSF$Jtj+aFBXU89mP?JZ(c)Qt_D0-;ga7E@rt?VZOaJ_*E-r``; zrPj^ZW!ungxxOme6nXLU&tIr`V196&`9ufJ^y7~aSzzmiFIrmTBAAY1UG#B3%3$$J zrqll~%Y_CxW#fpoPg4%)4C6Sw!+NajFsfocAWJxli9R!wR$-J*sE#m zp}7AF6cb@}IPjt42|gJnPUMlKtdhO9VfB3Z>`kHCI^FZrINRCUq~UiE(F@lw;V!3H zS;T&HSU=QQrK{yd(dgE)BVYEOp>DJBJDG2hc8JT-q$c3zc!qW8=*RWg3MJ*l;TZ_D z9(*e77EL7sq=R7UIMW%UUsgZ07@bi)8|O>_vlP^(S~pDy@D|=Y)3^PM+=VwiTBlRQ zbgj)ZvhxBI#8b+JM-4-Jl3Cv0g(v6zjjhT?ZS29PiZAlBet2I>wrEfxcNufSYRpY? z?|d@2Ge(~>p-7~R*Cq73PrAAgAW-bEBht43Q^%_$uZwvB?g&bmZ?<>B>r!Q1zw!k7 z=nz&(AFhfm_ZoHs6r?g|yQCnV5KY8S$MvpyDex&vl~{rzDuS-IR@sR8ko)!3_$Eg6 zV}hq2L@az~^p~PRBEcbO$+Q5^S_oIeLO1;@Bfk5a6vsMiDuD$5noNY*8X2OF4C{8P z<2;k)#$${*JnL8F=&qj4k^s~o`%$%HJ{nc@oge}%p+hsRXr}bqCQ{g$bQ->AwKe5h_$&+Q5Zg4x7QO^H31<)jO>1Aic^lmb$u>G=Ndb;HW% z5ZGQF4nD>ah}1K69hb|H{tGc^nuCCmo-Rya)vZTkYIXH`jg@uH1K8vp4?i#2ddBS^ z!D3WVh#n_B`3;D$k-4~R= z-%$*@eS#s5S9CV1!LTQ#?T|_r=d%l5Zd`r}l354|on7@TZ9i4zENix;}hiS;lVrN(iSa5c6 zl{#D$9%V`DueO>#X7?}cPuoq)VyI+=H&0X29Oq~xZPwE$BA2=&xi(H&y(qmkZi(eWmyJ7x}9WTv@ZPq zFyX_d^Qc%~+Ks3BPIpOLz8I)hCrG{0Kj^#s&pdsc1AXDum@RgZ0!||RifOMGjE943 zT}~_orn0<(RAgO0(sC9G0PF=b^iHV__$DpVhj?ysN5O)U)GV3GtWThM=6XqosbGBy zJTp?3oxzEMlFM9_u5k6!GY!~NN19&km@mk#SWy{#M0f3qxJV|^0p%4~@=~{eZiO-< z%O}kqhnUK+;Lf0{fBL1VYD!v^QLdY%#HAO0+nn{z;>D9?%?+@Q2WlUlk5)ky49I=9 zjG6U_b^h*ku3%LM6-g8kJ#&NlYeL9@X47|j?J<3FBC5yGxoIOydNdzm`y>+=rCa9O zRcoN=6W#qbVsY09ieNWE22^`HGYvu-6X;Jm!X6j~rYX~7ooqm1&>QzZ^4qeqgsR`_ z2rL^i9fbkQb%m1lFh1Sis#jpqlXdlCB)KW+s?n9?&;A(8E1mWYYRyjysg^b^OkiU6+*kMK*YA(b5d2|JKmMVW$>9%s zzQ+ZDTO2Zp*P&5JO;ISMz-T!B10?@}8X1UKmoEK8zs_F=$t>_`gymT)#~9>Lh*C9v zo$>QZ{#)Fp|MPN7zQps#`(tY5_z*SM)y~C?QN;Y1UHheCl1y@3kzP8SH8!4R z$36D^YUDNnZ0`zGSc2y1T^UZdLEwDTPjeP-t}}PmoVE;oM zm&!k(-0S|qij*)~6rV-VOf^;;`4|1+COj!YlqkNmpp(n!f8^hNEyYKS5n=DxZ*gz_ zBh4OUJm5kP0kgTMVM3wl*FaICr Cg~xyZ delta 11435 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�wQwLK+5Z%JTb!YxBy zFD_X_8>_LbDwgh-^lPBjp~T|!VDGLt6LA>_p<_vsJ7mQStABJEQ1!A6S?^PI8fYRw z9qqN2Y2-rkYETN{!!o4A01@dR5fLDhGd}Ft&wJiCm*-mvezWx?Bi)t|%*TYXiBd#f zVAkuH!7TYKo2Is-UwO6;&O(Fd=xO*)eHGwUsX()3aMQ8^upKqD$Y|y|J{y61*OaVx zG1_j}l_&O6rRcilw;2|tl1j8jR&ffR&~m>jzO5&=LKDoc5$kS3xd5f!EoPIB`r?8_ zq2AFXo6-dP(B&T6+kDKq@hFDE>R%IKYEs{^{S!E$5MX{dA;L`h=jpS{u4fxoUql5I6pgwZNa zvT&tYNGshZSlJ56(_hi=A_Ht?da48uGzlXn6nSl_eGQBY`3YMr1FHi^Og;Xlq&heU zua#b+{Wq;*$wb3UW*S=$_Qmjs383J_%)Bo^f875jlLeU7d%0$UKt5g2o;WrLSJCiG zP11GV=h9Kx8|Nwfr@E5&E-3_B1M0mzs6YDqha6zt1sH?syOI1No=%*AsN>m-7vVT?^j36kzi&VVrqpQl{n*6svCalYDTQT3{WN|MdRma0fFbDGm6#5h5qoRENX#B? zc31S~5#Bh*!fh?=^KawWAt+@9reCPq_7XmZQ#-g>q@uV6FK3LZM_dFo%lbbwCFzX9 zTs9{5xfbs=mAw}!1ze3qnBEsJ)T8^g*BU9$pY&^uW1px!2#ugYor*-fwortscj9IF z)g-}PMlQm>+F^iNi!I~#Di1`9uhbuY$eQC4=_3j;<(`Ub*}*Wkd?Wu%?&6DBaCTzX zKDPh^`ij{^6Buq8wcv}LYx`ohZt!)tAQv9A9G}P#n!_R}`4<_!U1*(}js_#L=}R(A zdhFSu-i)hG+WC^RV+0*v-JDXn!)^XVLUSebj(0^Vo|PJOW@Kq$^A3G7NWnsC(TK4W zqOV3Rx9CT6OFo~`rSz5~TXLuTz_$Hm%$a^CCMVWCx|dI2Gb9ckjOQ7n>_XzJB3ov_ zB+uNzY>PU68CDcfs5s-mobe@5^K&Q0;W`m{khCGu8=g3m2(F z8gHp|XSPtb6y^}s@bl=F1;+__DMuYftd6l&Fo-aS@C5O%nvyF+Q#DN-zZRegpsq*F zs)pbLIhY9le$zIAuyD_=?e$OEc>9jW2r8%SSVntzw8$gHAHZa_coH9zp-7g`cw&Lb z(O@6#jO^uWiTnO#qtW3h3rE!=^d6fK%n1EGOHPEw&g7|gJk;I0;*My=p!d?$htD&c(0^}GQ;p5t%QsW7uYOAhOA4R1uy~uM-ZufM zXktx7*e)7lnyJyje*Xhry+zfAvw3uUsB_(Jd}WQcFBT`SKph{Pn@e4b@_xMtWZ4gw z-Zh(R%CQGO1%Ug58bhasL=V94%!Vr0+Vu%-H{Nd?F)8pg$TpdmoVK2&)U8B|k8(td z;MR)?=6+(D5oX2)5gAl2{qjn3249XTLK(hTK(|0Huwf>ayc%mg9yitf=p7mVY|VDl zZ?K8*lMgBDhdIk(Z0qNpukT4WPDD%6Hgpxy%uaKE%(Uzc$-QzGe|XyN79Xkje)6zC zF}1|bkm~hdx#NFNy6p{QFO_l+E%9S3ZDI3eFWc9dybG*-N6j{u@SGN2@*W>MKipoy zSYpuVa6G46V!_u+wF!~7UUbcw6-Kle^W7yPO`;`Aty*Kq=d`XOthfHwCXdMv7N0=XimxQph9X69@m~JK9g>`IC1xe> ze7|R49HVGP8QkTkqHastTqntIm<>cqU>3O9`rgq-z3kqrFWNLxmycc;`V++hiz&BR zE_;S>#Vy-{Lr-aNcQ?0J)%QdBv`ms`q1>|445A)lxESelFMNav{6oFCj~idhYOFB_ zcHwuL$p5~%<%H-!F?c~*9u9}JW+X^nl1l{T<=D9$`|3-jP{2$(OR2;KARsNmnO#6) znIG_cJp#sm-fjpk8=UzUr=m+-yO16Fy*;Js%Igc$ss{FlQ=)cyWU)qU;Evfq4)>AiDH^q&lprJUX!&(|_K~}x?}Oln z&f~+qx0f;`QD(V>qYgd3svF<%PW_w}-;Sy#>g(Fkx|jZB!4l01j;T-EcdP#@i!wH9 z&O)7lTJEq|X*tOC&2<1~h_7O%?p5e(M&e&TL7>Ygdz8iL8m$@&)`0XU_no5{_zMmo z_5Jqz&*6=SQGx{|xo7@LSED-qTkcxHg>b0WYAknF2q3`t81`=m`#(N^E>hLIw$+a= zY%HGMKaet0xR2SNuOdWGcRYod6*4NzQqHU?7+vtW9KThX{J7lu-~s19R(WyfDr>Og zZhYDE_2C=PXsg1+H7GH$AHDq+Ep&B+67fqIf>pFfmr``yjK8=wG=~W|Bl1}uUmA!# z{bCG9*qj`YYAO?MR8*r#zs6DNREBBn?Ua@ZhH~yd);U}kf3q(rue{NKwL^lfdUtr> zXpjhZlm1#-;``yjr^wbVdI9ed)a5q9MjQBFlb*g4$YTa+*Wz=8^}ox6v+sX-l|=ix z*vJlbYU%XhyMwJ@^QLIM$LVDRuWG9Q!E1lbCvn}+ zPR(Q0y1LeIkBPns!P;Z$1Mx!YkG*~;o852Q`hKC_q$CvBVH0R2A4-D-fh7N;o*$il1@W#pEL#189sM6ll{5@yTbZW}t^;=(%p z9=Rm7u9nTC&zux=cwOGximapUWWnx{zMYR6 zIXknYX{_pgD;`o?-A-p$D9fD!m+dbU>Ar_GnLcgv=yI|$UQ*fF!eeaxO5%OW+tAw) z;^mbMFYN^xZG92uZtLpF8%*+^dM1a_Hpa90X9gQaY9{(C_$LBpf>wB7ku z;`w+w^$ciz|1NtWDxE5gvqQBo-vYJm)8q7$bshiG?ax%z15JLIhiS3nvmS7eBuAU$ z^fpahi+gu2$=OXnqraI45u!7~u?m&Z?mc$sX0y!x>zQ_6A$4IP+k58-pA!OXZ3u{4 z2i3mmRm{pKBUt2`5RktLX5pZ2yMI>Mdgq47g&jY4#$qY`bQL{_NN;hh`b-Zu`noey z@L`-#C{(Hs&=ZM*yznh#&?UTTN9_9bEg-sNuX~r-5%~DUtL{|61$l(4Xn3F7$ZY7A zAS)07*#ie@%ouHYgJMP{z3vx6(G44kVip_R`TcC97rD-5gC@%#39u!}q77M~@H$DC3RR(!>7xy&*y6 z`*oMryhXx2zfD9v=Qpl;b^3*Q8^!5B!MhcOD|K%ToDsj#hn_RK^~jp(Yn$O5B)7wo zA(u@`()iP9X0D7TWv;}MQS)2&>g(tT?ERhO{eY(mMox=*O$MQJXwY&G-qtp=g>^tG z7=b#&vo=_Jp@;w`lG7XK!()w8ub+S2NZV3CG}vk3mTZ&NyNa!07bzoJ>T)jwW^107 zdU;d&GQ(0hI!Hlx>q4E`?8glA;{>6Qvk<20Yhtg!Oz#L_TcmHxcq*iGMQ;aTA_R>l zKRZ&!@c({F{Kt{;-x^V7l6jV+9A9)%$buSpbpI-5s!`k_B>!hU6b4r$xQ6Ah>*shG zbv!;&XvbvdbhVxP?nHcvrn@i^XU#m2(%RVt9^W>qXKi?{{s^VpY(Z+FyI?MpK?we| zZ%IU%mD0cj^IB*@W4@)L@g^3ADV2DPL^0^*vgYhCDKjG2^EuWum`e^&MY9;*^SeBD zui02!GHa(^4UaV zKTP(G`_nGHOm>wh#FL`5VDCkcS0+i1NP2Cv1q})n3BuakGd``R( zB~<(39o(vOoI|psP5f|6DB#>n34PUqB&xb12C9%d>iTG=xZtkXHG_$#^oAK0FumYn z_7n9eiJ}49Sofg^`_hdbvhBLv{E zaxOPN!%%a$RRzDi>o*j9eo$P*KY_Fsl!*GsA`Or+3-iPaf&C=&cj;~A73jogiiB&e@h=})#Syi$EJaJ?--1^QDkq%7)?tp+yvB2Zhz z>u|rmEw0vTcSrF1%18r)Xw0^%TIAQK5=Y_^u?z#s;8Qf1k%!$7ihd6L&VBHr_-LGh zs&`@NOphL1#bDq10@d_*VeILngOsi5UdBQdtmVelJxWPKk+V>?p9gThyAuU&4+8CL z%w>xTvkYGEh2{m>rNAEEkngBvJQogBt4tYkiNBsAhDgrI`?j4q0wk%9-Z568cb02> zQ@9MvKgPDJ5v5VFilQsL>hK%`e00NGcKc55t)+PT2U#(O8~e@{`&T{sJb28@er3;W zF7{8o9DV)E=l=W8>&3J~3z%X5gS(*x-;Vl)lGlrEf@j=sUz(o9se&e_5aK>4EuO`a zJ(gbI5uSa!LeWb^r}|@(6$_+rE~nD@v^L{T^S$pfn$#;NdDY&~AxRSr)){mYKhE6Q zFu(mJ<%vgK)OPe^t%RsdQw@htNb#_4pXOtLx#ia)pdJIuW7kC=dxmUx$CX9=U9JYm zG7N+8xS?D&D`+Qhq>rh|=O3~>Qj6J;$nlvAq_z@*c2k;)GvrIk?aU>Cv@@3s?&Q}%$l{9G8m&f2TI0Y z6SXQP2?BZ*Gw!8BpGNVRo>y$p{kzv^F%18Un*ta;{K;h201kfqwHr}I}L`~SctpaF|>n6X4J1&sOriOm!s{qx$rCM1wa#T>Y`NJb8$l(ldEF~<+ zCo(}S^zHUTLF`}ihy&ZLl7p_MzO@%rF{iy;?%WVW;U9sjIo&h(5!kNqaYXh-fNs$Y zHJpj{%z%vr6|{%LN>IxR!Qg<98UqM4$XkmHTCU#ri_H3FrQIVa+cmg~U&&&%i~^cj7WAWWrmtHuol#X9^MI z$iB|3UztoO$p0)2}|c%6Y2=z${flT zPKnFHGoNcvU?=@8srl_w0?S-kud{!H(3_ETHW32U0sEfxjQytYqH8EgXJWlZFA(U^ z*KHoBcrgH>2HSvg*EUdnq=)1ic~Lnc-V0jLt2lwIG66Z2(#RmUGgdAg<)k|{Ds#X_{iI2yKNr=R#5`uU(l_(++U)GO0T-KP+14$?I< ztd!SA6Qft=aCM{T$KT_~(^k;F*f-~*$Wg%}Nx-!VFH38E4OkhW{Y*i>Ii$4ag&Ynx zs#NZ4CPdgIQi7L$9!*(@d_>B%XNfu>AnCm!51+Y%#y`B;X-B|DHfpM3jnr|SmLTo( zncL_9D3(jbh&8}Mhgf?xe`>?yUaN~1DvI$wKvpL7=%|H0G%aV`kP3 zizNuoL0q3J`?`n2&H6^@8P)fm{`e%U)B&7*Oa>7D-g-l!cM_87qLv%NmC)S+^^yLC zW;*`{tk%V=GXOiG4aZT!Awlb$Gg1!d6-Zt1MU!#?YiY(srgE&KxM*8J%lqLnheYSC zqI~?kgiIs0N~N{WrSB&b_;lTdm~L`T0LPDxEY!@0gM-L%2 z#XpZ{`({5v!9E}Kmi=A>4l4v%IALPxgXKHX6(xdqxHo{cJRT_tWk>Vp)>XLV!+=Ac zc`t$xHhHoylE(|%74TOICUcuF4Jg8j*ZBf)Trv_26ad7@_Z_I$1{I6G`O_eu8EvVz z()OKce9Mg$fmBqUAD-lW^bIwnNjDQqtNf>sdL;;NNb09D;!W zlBmx^6rmBKVWZ24z={4eiE9--s`49hraU9tpK&Ld@bpISH7odNbO0;)6@;)hg)I;i zr6Y-DGk&VFO$$J>#?wA&j>ZkNUJu^MQjJMIed7+fEZ(IJbkbh7i--Aj`-5KcXe2>C zn}9VBA(n;QuXC}HdrABFoxt*ZZ_3fDjqkNDLd~H;mD$>DW0yML)p+oN`A9ovmWoT= zC0L&|BX{r>5)0c4=LR#x%4}Nu?J1ecq(kb@JCgmXqq(%$Y)?)TT!LH{vjCV*FkfK8 z$uy>*P;;=@^P89hk2wpEyA!lX_XhInY5~~LXLiX0nv_DqLyX;TGb5i}et?@JvoY(s zi%ckBGDI;6V#()7h{lwm)s|y*6GD}Yvz3r~;=cf#Cq9?&zYlNpZl8=OyrgGEPr{k8 z2C!!f=C31sOSv7w{cpBT&bJ=oss0^02Cu3`t0?n1f80)51$(YhCu<@nA9(3AhgNXG zu!Hod3e(q}%#F$r?>{gy0;UovE@f!S2}@UL2^t*==(4Px(L;?nQ%9du_t51gi`zOe zlAu1o1qK*Y%7hJo$>hN7g?D>{p|Vno|1}mDYJ0Z%4WdurmbiAfUV;cWF)JVPDs_~z z&xWac3mTNXuu7KFL^Cv&T`2bbE2Mz(d?icHbJd?nL3tG+(d~bMvDVEI-@4a+@a2u- z!3kA-@+7`5lDZVbWgr)F#n)H|FnKIfPUpU7*=Yzq*yHgJQl4G>&5kb>%BDXMrNiWA z=zS*qIv;i2Ryk(S%{O)A&wfZtdTh0ROCb<}E{Vkopd!SURlb;5wfb9_BG_GjJe4b{ zmx8Tys+-s1@KDu1pRe!SSlHjxv0sD*rCg3TLJoC(1rtRO0x`1qZq|BQy;o2>9T3aA ze*V}2-)^wQRJDa?qmRch`>SMu_FIPob!qvjUh0nk*q?C_fX3hrjSvm`*$%r8`WUNS z+B72YV$OHO!F;0`4oJE#?ipW5d5GZ^V948udLQy5PagIgAiGWegiQQW*D&V906@mOG_3-#7&3a~_%+cg(aK0#7o6s--nl`< zw2Js5urq%(*t-bj?rZ8QTc`!QUYeKix}T^ob(5FmI0q0fv?+AP@Y_vTgwY_eE*UbtjB&SpxHY$6*(Dbm>Rq zSL79GDFFIK9O(}}_lmIbESJUV)FAN-`V)`v zBlNw;1(Pk^wx4bw>D23=8(?5q?{cGc4L>gy9!|TEX#fhb=~0JzB0ck zJCq?*V=XN|F1wxOZbZ{H!&@=s5Mt4>M5xKcY#aX`-e^370s`Rq0M2)A2u)zG2v~B5 z+#8rL9`RcDoxII89tS;)x!ztUR9`&C+?;cR2q#af1djAcsHv^3J>Nzd`3-2! zkNX(?g6B^&-|bJ9qleAX4^P4{vAV4)b$|-B0yVs_bkeDcr7B&+hEHf9!1>-3boEpO z(yR;pg2^WtW@Y0y8I5?SoLIwsyBdd0_YS9kw<>-J<|5LkEz|Y<+PoAzPF5&6vy<+~ z9+5AUwfp@nS}OIsdmBcnmxTO8SsSsjM*D6hcCL`dQr;-tazgUyoVC_M?8+LL1)mV5 z_BN*K1>T@8LsmN6S??^UZi*=*I7T0$e@3TardY@IMLBAxLW7=JUJlCU_3-KfPp3v( zJ-DHnT;%v#HRkBhgENo+YxyW04P8mndgnYk6!Th)yi?7*N|vDdkOtr|y%2F7+&6Ny z{ydDsGy9SbbbVD3-79!=uq&l~eH-^CW2t7yUkHG4GGk^T;tKey={KloXg=M*2(;)i zm+8`$nUW=IZjOXCU*PeZIagkEY@q=eWWMb4<b%pzGcmYYOfIwHcj_?b<`maC2i1QiX+5Qyj z0&`7n`jDH1y6s+N2UZ!&>Gieyw&9@(|F zB8Ss&6i=Su(Fa-Ng^9k6Aygq(j%IxBQO$i~6Lf6HP{!a9(v7(Y(-R5M0_u zrT!-^D>Q*0`f+sI(qU-)!bq0ug|!J)Nc9Ik~&grCsm2%4r|CmkM4zv{1U5@kayqay zfZF4fjW_`_5oxr|yLuN2d{anH|5yPZL}JI!d12#jAmQ&W{CE;>plBokdwwu`<25T= z$lmVM-f3i6{PHpkO5Haak1WyoB)GD5U`5F52h74JRSn}D@r?C|%D{HpM5fcA6E-LY zv&n(|sy9mL7sRbgQFk{PJ|K^W1r*)~Gz7x*jHovM5bR+emjZ&ylVt51XDZ>w`Bnd4 zQ^HV-VcR)Csgy!aWy^e84u-ziGXK2yQTT&pPw-pxkL8*2MIO z!LbnWkj~IzEc|NL+$^vY-ajQrmM;tjAgd=Gl}!`6Tt^&sJyV-#=UT}qAeL73;Ai}@ z+gD|J{!X)mNM(qQg-OfnhcDBDjWt*4WqVmS4Ix#0dS{J)VrH!$M{Xaq^++cyS29Q} z1<$THd6{F$sI`L>pO_QIG zoO@SQPyy-G-P*vnqXvBbF1xEW*@yT9AW}V@t8rf86?nSjd9$Un(^HfK7!Ck-E8JDy zHlc52{pH|YfZhHpX%zMz{EzQ7og zGgn%^O*JM>;B|Yn5LUF_xp%O1BdwMk@+358aS=G#t)qUzaS4+Q!ztq&kWI;OFK(kE zpMMTrK6PwoJcBj5BewbQF^AC+VE+U=-$DO^l|C1rGq?HEfCLVZ{#QN%+Aj@rk1Q1g zZJW{?J+Ic3kHUaknkJw4)GJ$kxps=E@1fSQGZZI7iN4g1UslQyA8B2 zyD`8Ze6M}ni3ldy|26uP&CIr{u4uRnA?ixHegn_}`-T5cabF04l zfA77wzNx9H?&&ignWgm^PmV*QjkPPB}4^*Kol2D`bOc zCLcJsjd^&?czEJd;E4Zc0~g@l{m%xH!>fP#pL{hXxwFeBHy1v43sbxQKC^!=LVPRy z$M|0eUw}4K)g=&!t4~^7MAakXDAU^od%pdolSxNm1Bc;EjJjxh@-^N3I2`{Bc_q(x zhF5Z|dz=#E^c2Ui2{L_jF|$-G@Vv}tD50j@uR`WN*@^SG(wg_ztbGVFpmLERpNAF0 zqNv71koUYzQCj4Y`jD5LUgr9e68j;J`b*r_*#U5KH#nD74tchexF35y5`1XweC?c$6$XPS2K6vyhr-&%TvxDwfo(baV`@E-(;62TTIP_~s8QeanfLV@Ja@NMnq6Wi z;eSYSNF~(AA3*-$^V3RjMUdY2(-?dLT&)|ik7*V>sLSuiW9r*g!Xxn7@Xq1m^79f| zr`xCRZ^svmMiya}yri(GzS_h6Hl1+b1IqkMRvJdkmQ49?-?Z2}ha}po+A4z^9Hf(` z9!B&VyY&}bT-Wu z$>{i`UJS15_0y+r4z9 zd$yYz(wH-)Ab^f9qP#&}K*CN1w@RzgLED4wUZj)+sEX|Iww?iGL#B7v`py&=R8*5{ zjawo4jX}F?z9XGCn=IKe8`7N!ob0(!x)N^r!?S%}Gb^xzRF%|l>+|2&G7NKnemQPI zG=cTE8pZ)1IRtwwl^-*lHKuZX3bU>zP?k>(Ah23uuCMG{#_NQGt`{V1m^>K=F-}ud zkU^5mIn&_Ve8wyFo41 zBf;ghtej_E#?-jllan`T`c$E>;gjX^6?&0Kjx}Z)W;m{`FVx#8&4pLrm&ge(1wxL_ z$4^c##2e=6&m?AXh3cCDZ!`0)kD1X!7hESbw%6JqBTgsNk#oo~&u#eFHStYac3`;w z)$;PIl7`cx&l92K!P)lm*+RNEt-7*0a8F(vl4|xNo$a+w5w5Ex@FJ0h9q3&qyqNv6 zE1ni=zH+>;M6kqN>3It@%bJ3*bMD~C13xq>)Shi^CL zbyTHJGbxc_bwz-6x#b_0i%u@9avKBbQ5#6Sqbj$>-~iv*jUB1xrOf+r-=_8=Q*Y&w z&J+0`iee#0^)d<)=HK01I+wQaz$ijVZC@NAHOJ57>G=HcFAan5wbShjSrn~l@$G~q zxUi8b-UR2(Af4zuUub-@Ub)uFw_VlBHSoO|oO4IAHJt(`x87VE%+KvwH6El~i*QS$ z5sI}BvuY9zo{S|bww1|iIX|xOhn-r=t-s=aRnT5Ck#Nd#48B&=OmD9DAk^?^*uJdB z^t~dJLwKC+$%Uo^+3iG7x6*Td$;x#G@#>s8s)j1cr%wniTseJWy|mv4!jIisdCI3& z6SEJv7Sw^!)#ojYyL4l{>cxP}FBe|yz0XI=FGfo8j`4pLY zT8zkiY3uLBvTj5#@5Fgs$~mc>K>mg0d=KAmT(;6Q$1l2^a$?CJCaG9^xb|HUK{fP} z1bp{6sJt0TW<|1_j}*GrV;L9q6+KbmCLrJI9}@sA#KP2f+(m+^k>)XHE>{uWZe-iC$mK?5?0Fs;X=Af!EA z(+(7wK2S`=T&6C9=FI*sEwyaAZZYAhf0tRiWlW%L*Y(=l9IQUZz0FSdtOgi=wNh}N zsvlO_%3E6ceFh9BQbN72AKpX5D^Jy~rb?v0ngB@lqhN+and^ldReql|D8oO=;n(MwbsJw6v* z6UpS+&PM9>@22Z|zAbMCfxaY)Wtvs0v3b2!u@3ps1~wNbGcSAXWn?4Ea1}+FPg|oi zJHXYbqx)M$+xEoR$>|PLqeb~ot_It^6+g~aKmCchja$zc{}AuAZ^=)^I3RIEpHAM+ z%t?PI>{m6ST=A6YOlgW%tE666q1l?iDCZW>?KWYiTyYZ7=gE3I)h0$A&)OH+dEL~p z)T8-49o<;FjYuh+PZ_UgpV<+bUKtv~G`6eL9OC*q=Uy;u4;2L;4bVUk{Usa5?qR$e zUT#OICKURc6>mw$R!Yq~GXO4crm99~Xnb9#DR3X3#_k3YWrx^z-ybV?vKG;&hcQNT zSch0i2seKYe2p1Z^f3+Jh@FQ*_gqcU;P$Y>#_`@ytA&_%$%(dS*kjg@dZTVPfd9JY zk#XVRmOG8n*3Pp5!@pW8_E2CP;@Zk^(6$8v>EncA8#h3(FLE{%0O0qfAH4pwKnEo2 zs*l>eCIQ8MsbzTJ{lxe@$lq$sCTx1(=DDYr%So{BScSwl&gF|Z=8|g%vb95%RB8## zhkgVnb7#5O`DyjB*&BkdjKU24%ae8p{@1S*PP1-3cP<{J(wihSFW0VX;@<54aS$hN zO+7yqdt=r;*ZUmT2?SRXlg4kPX>sa@F*LZQIyI;eg@m21=X{G}BLS7V?IZ}>ZO0YR z;y9zeFMt#5&PPPjE*YKgvKr5%a@W%&4k2T=bV4;Qs=n|2&RyWC(=Esj+N~IENYSiM zRC_p2(^NLi`#An()$!)RqCxp%i#E}RQ&)B>0IRcb!Kq5=Th-YqlA^gJ9zp` zy-of8W!1dD;v*r|%9-(BC}Tr}#k)@Y(o#q%UVT&8Z^EG<+2)*Ym@83}0CRi%hAQzE z(*r3dN~^RRPzv&(R45Y3-la*ox0A4$bXocGIi+-p96Nb`<1~tDrYgazGe`WG2r|T3 z9R~jM{b=u-KxM#K>8jQVcNb%J%HcEL43j_T)@1*J88hX?6s`*{V&!2Hvki#^&t7U< zh+vk3C$<_|PK%w?+z30>#5^j%yFmil2%wVW=Uoz@0G*1I51C*ZzuFZkGF;zr`N|$) zZ6}@d25#?s^>fNNKlL8Fu0r@SdzUTv&n%Jr=aEXh~snrhS`ffk~gl5>Hu>9vc%qt}r$x0%8=l35Kt zZuUUmA-e)*d!~?X=?!sOt2afqG5oCujz;`1Cgm=>NLJd0?O5sECq4r+tM0kr?d{;P zyR&+pfmJVVZ+>Bq+|%aX=`6Tsuif6-h^)<+<0EkNX!(5)*0%o3(e}ZK#8-xZ;Wj|qy4eVY`EZR(X z(j@vgn>_kp3ky@9vi@p1s&`LB(qH3Ld*V=mWb8g#)v{Yg(OJ;XI4m45Xa+P`z1ZsT zbmuhGSUpSF7TJ#%(-~UJfEudj^fU*uJNmuq=1#fQZjbkm_z>T#v+nhx7r>9&eg$l2 zUbS*P2(@c{a5fvhx%e8|i?S`o;QwAMsy@M6(BboYW#q!_N8wKgCBZ&}5LWDX`XCH*`rrsT2?E{tMXJC#+zhf z7mktmM$ASsiXjO2H&_6^`aS7~ek}yVQD#Y8!Y^s3`E2PT+4f}})AHTS4-K`4QBzEi4PdU&q#P*yWpK4vLZ7S zC7deV#90x0p=gN;Tc!Xx04vNME``^5+o4qit8XF1>pvmYd)N{$1>sllv#EZcUn_B$I(n5wymn;KHLNJ;;{W7skwl~g`!E9!$a*F-knwu zc*obPxGNCR^t*pG6a)n6!%x4kM<$tm502>Uq~;0f*$RNYlKXmUdh4`$+ddZ;*Kf<9j%@+fv5%}P>Oo_t!pYKpp~d?f+Z zB5rz~kb1Y`G_vDK9PY$|Q$CadE?O=xH9{x(j&rQ`!t(5~rqwB49yNUgXVWW*-8~dHTfY^QFa5KsD z3khT40|I&7=4bC({Vk28?6;oPMs{I6ETr^|*&BF$m!%2&GoF6D3KuzEUo%+Au@sI& zF05k$6Lv!>Om^ex)Fe;^l0{K6(8+I;JgzJB`F5YGdPY)$jmN0s{VTr#vgI_)mgtLo zb?G0P9qIpAnpl2!Ugr@Y)f@S}jO_$2)HP4wB;Zja?Dj*{iw2feViS}>#4*cw0igjo znA~#}9pPo)CE=YK2*32W3X4@ir?3U%Zhy0wmbj$QXG7D_zjfl{2RNI(7&&{J-wp6e z6tSEA{7JDw%ql)(&?ODHUAzvFRy-r)Ak#7wg11wOoTWT%N5GzTd=cm;H2Q@_k;=}q zuqj~sTjkyMwSr=}=$QLC-2KZ(Ekv67%D0Tym=PZxoXMdRBa|YpeqR@9DcIhxvG$*VVp*H+#V(wZ0z42&G~|`W*%wg7gmk`-W%}%&o%v_4HT<~7?@hOwcx_Prk-gfaD?_bC`M)EacPk6Q@W|;WOif&cynq4 zv9NuLIl7VJ5#scriiq2K{(C)NfO!n}IxA z2tri(P7RYZ-Ft~ha>$}X;{!rL-TYp08Oe+PfNPmVX5;eZjcK$i&mwy_C%!isPDMeV zvK7}=%vbyQeCT~jf@-O=WD5~*`-f!%0@bNJEM~@eD{o4h&haQmQ6yWLn*xClx@B71 zwMgW=Pg=8RG)Go8&TuwV{b^^BJZl3`Ou1};j*+A?yN<)r9+2{0Hhrn|i?OcS$&-Xz z_Wo{s-Uz7Znt`D36YX0e@)i3A2y)~iS_U2($Ux9>Xw3UfbWmcHh}O?meGGl=dIzpU z^tPSg-hit0%`F@F0HLp>JubisN-^W3MT zO-p(svv@ukU|y%HouzK?bv1U%0lHo;H>&veg}0v(LC;4Bu=l4ux=4uV2ToM>(XUy> zrzLrm)x0RZmgKy`#gC^iVf+^YOXBj;u((3;iEWD6_2C$tI40G}WO0Ddp588>!T67A z{dUPn;TbwVNYcQgn;qlWl*eXbkvzf9MLZ^i+1Biv-Fl^3v*>;s$$gv_$H$!hbmi4a zPUVuvRE%XdGZWrQnmx~hQ&;vOfY@(!dJxtVeEi^BHi3G5hmu#g!>ag^Qx>$C6s1l@ z1d!WkXf=tP_d;&5ZvjBOolG%Hda|iAw`L1H@(&1wEqQI4rWj}GCrA5;Ao*(b*q$r9 zGF{)d;Wi|H&3HVAYL)N51G7 zjAOTnB?D`MrJ(O%?ZzRw_~~zk{48twMCbPOzzheA@K>7@GeAPv+3+d!BoS8@<;4aU z^iA_Vb*5x6SvqZ5hhqW0} zXv08AnI(3S18nRQuIatbY0>DrH5AxezP;JJY#(iTH&BsIfxN)z@@s`1Y!RN0Hnjo6 zaiA=>hHad5cB$&vg-iQ)xpd76YLRNF9I>eUDEGwaCj>>RQhMZT@n};%ZyWU?8!-x~ z5i=F^C-L@}&<8tatcmvvQ|#H81(H<%7~E-#EW)G)!0+Hf-*>+o_^?3-%~wX61d2mA zB3Qks|G@DSKnXZV%Iv(=a3)aCo+pm%o$QAj$iw9g&P*;1z z)q!FrE^+G1FR?B>WuiBXzb?zsaA>3M$+XZl^)~hC^Zystq5P;e{o+w^b2kr@WY^() zdI<9r3rE1o05oRe|JuqQsiD@;ZXz9{-gq&@#1-lwl)OHZ1n$i)E;uSW^v@?cWA2He zJmIHEhw0nreTg5JcfN`bBYH)QEExk&4}o)!fw)aK#rcor$n;1pb7^lZwOzZuJ^ucu zVJ|s!>j?On64kcJ&RdyVRi0MdXa&8a!}Rjr`OSdtVBKJnT;@WvPrVVF-F}^ z?$7dfRK*6ub&fCA&*k4?z$%+4vuISI%DoOz%WWEJH>BJOqdMsO=YirXI^-ubq5XL0 zvVn3DOwO979f)&M5g>$;v@Opmtcd7blaq<$n#8Dkswe{cB)f+R7qq63Hkb+hnL~CnZMmw-di5Q8uys2pi-^RdYQrne^f>$n%kX>+zAxp>-=e zO2=K|S&H6E_@`Vreqm(N;3G6fNFiD8fF99qQmTD{FoQ-oy-P^Z)^#J{FF$t{A8#78 zU(gHkCCjV9%wH1@Bq`Jyof?#`0S8jY8<*{P-V=J6%Yla>b8}nSTN{R}Crj0Pg-9l$WQ`wS@uozBbotEY={oRz_7VY8LSdhjTAmf<#JW?Qi=>Z`ZbPGGF&#AMTB+s5kouSrn4d>uBvI!v__Xr^U~pem}%UjwGy~`-g|r=09$jhfMVXKWBS~@bg&S`Gz$lD9IVATwCNqL!@PQFQ*6F7 zNFZZxh?3aens0v;e{=H^g#xb~6hB!}{aNYA|KOfNq4I;|I2{ zwWa%R$~$R(3V=ZdGTgb!mFyqqwN!xI@t|gs?`pg=me*RdC3eRnT9bclb-|=V;X1l7 z5#g30&|1kfWhm8Pa=L-hw1&(Kq#r5Ta&6Kjx2Mq;32m`m7!3slKg~A!Lzm1*TR5Sj z(8a#WG1V+^4|gN@Tga{cxt2?czHUNF_<33;o#?x&MRL2=zNK{=%xeEk=W7@w<0l8@UZN(jt&qk}AB^ zHHAeWjn9$K)kKZ$Nv$WT*O{x7A!^>Kob@?Mn!PxZ>=lE*8 z;&?3hmV-kt4GTmN6 z7B?5~UNggEks};P6J+4njHS|z#C))O(05$gop@EtQ9-uBPgMv3?r*)OM%Ys{Kh+{IhA-km<+_U)c52M%l)h5R~Sxsv@kdO@|`xh4hsW)J`S zFVca?{!$Fa>%=COQ{X{#KkPB*Op*PlMuTCy4OPc_xpOPtgIE#%rzR>FVxG!0tFQ81 z$ES|CRy?X%_aiL;FiQ7a6S@#xJ??KLa?1?smBN3#o4I+^-NO&Ndzj0vCbWa%wl0VO zfhFbO>in@#jle3`z7Uc89|)$s&}{mflPx4siKr8pxP(*?ME71#Chmu_P(&6qmDtQ; zplS3G&+PrfL!7{LN$lU`|hV2Di@cI+x79~Cr3fR zYQ}S0+PJ0%( z2b!mG-!-djzfu^Y;kxZ}(PK`aqNX7g&nv3vCbhkHzsHhp^`6a-=73egsIYuvKdo^4 zT{DZ%=84R!jyD|8^M_|=%ly7!f)`^Zl^M>17jcLjGJz`4vB>{_U3!KU%~v zWl}q+!Xy7^6a@d85kA@4$hs`rNR4tSG#RR&{Hwyv^#%!ld1U}vo(RZu9%N@GlZ6Uj zi26tyz1M;S$uXunD;$=;z~{BwS9K%M!`g9k@JTy#$s|P{+n-kZr%pwI3h~Iua|ezr z4}(dDRGyo)>)fQHPfRaDt713UgmuML5FZz1`$b1K@HeZ@Zo)b=R31P314PswFw;G|EwF%_-Z7ILw06%MvaF2~nSWMK5sR2}eaOzx8DcW5e+n~_&&7WlN)XRU zYS>ka>{z7x&a!GkOVA!(TrWE-FT{q*xewi$ERD2PN>Fn&a)dV5Q#h@$EH_N%^%d+T z_`db+EKNgDG7NySVH#g5E(s>-y9g}ZP&Z+aCjN|;hrDXs=b-l3mAvoyyWPQk6zhRD zR6^V_ovYyq)CD-_+q(_RA`%zHl`{NSkIe@P_IeiQZ6CnKwdVPZgP1=8m~53az2JERh_KDlnS7Yn z!M|==K8jkXm*9>kc`#?PdkacOGnzJE&x^dtdu_sS<7UTVwWv3}H;`G&$+Q%q)zIm% zaq(4$F(oDXK^NvH*8t_Gnv*(@FtHjAuN*Zp$Ym2X@8nTmj}+Ny)BTpe4b?os9w0P3 zNh6(1A%z8v^OcpsO*AYKQC~HW41MpE6PuV}5lX)SQTAEPC`NRrN-SYeSLyq=2`BHA z3}*h!YUHG3R(_pD(~TxpkQLWGZWmSzg}0P?Pa=3NINUh`*6Ea|r1p$R*8=9CCnz zH@Ovx{DX>cDA8^o6DvM!UCqqBi7FN~+f`4>8?W_nKs5r8Gv1ybrspp`b5LY~^=pb= zLD{2dYK|UALw#u_rKWqj@h&w#4T)e9SY`RjqK~)6-EZ*$qskXh9B7`mAAd5%`38=2 zA?T7MelLic*m=4e$HLIL(p+?q`L*=T8OMEmF;?JA!RFe@X33MO(3w(0;Y7OaR$3d} zP<5`#PPZP>2gWy9?ZTLGu$WasXbyh$Jys&vW-Zt>QtyAydM`=)=kd*!k5ZU|;Vp78>#uI1!?qLz| zyM7Mm^45F~%KKAG?TUMpIow5PPTZn*<^3G&a29$jiuw-a$ZeCn`ba-Q**d>-vJX}q zGtk^>h5ub1z3E|RJeJ0ZoP)Gu&r$e0Gg(s>{%%KaQ)jf3&U5C(36-r;T?{!*=#ip~ zs9ebFuwXBMJ52NxMDeC`(nA2}U1q72{D4MbNOer_0|;shh$~VVIr3(oK_ef2_nMmo zQ9O;E>J7rb89a^-YLzhh)r;s?SxDsrHNN!~)z@&!KbU@NgbF4$(r-NRbdBWLDSH9= zIWFhL0?*zf1kh%(ptnK1%c>V>mA%YftND5JD(8w8U)S2mNQMVBZk#FGrR8~rUu+(p z%`SxpjDaNIUXawj%22%RPkqga%qo zg=>WYkq&0fFA$`wo2-;sC7lJ(begv2RL) zKsG=1c3u$#IPox*^dFTx1*3jK1^wdI`T{incJfE)dcl36_>%Y&&6TTIWDMRDc9%3G zW{DrTlRqSjCKo0Dd}8*e$JY|?fb%4q849v;?^ygJa9&Ld*O&Q?Aeh*4lr|>L*;>0m zyCNj$p77Q-tR#*cps$+sTx?oDa3yN$xwg)ju?Osu$5IW-A}AJ*k`yT!WI zCE5mgt?b$p2$}u@zl+M1E;%_QutCszxX&4l6C`5Ez3*!FCDGWp+b=b&vEfNNtnlJ} zzOr~Omi1vlsp(VkG>CBVz{6r+z+eS)tLc^*GPY-NcX@od_{H&0hhxA2bGv)-D@(eI zZ(0Jt1>R2kP~0Be!YR+S1KXD7jjO=BD4sd*8}ODp%Ulo~qHPSq5&0 zu#u1pI5nL|~hPb*Kt@{$@g&>}oZ|yt}s3A6j|F8b=Zf_;_2MU4Z?p;O; zmv|3WvAgp(-7%2 zO90vNLj?co_Z3i4RiD!x6SSyG2PRoIwEZM+ufZtsK2H`A@=oNIU_58t8}FbQ;}=hV zou)mkzYcb5wPhza#rmK=Y}1~o8Ksuo$aff>zF7H0Si#rU!1RWM7iAhXa#_%Jr1N*yH8cHuRxij^SIkw6*q9 zo7J?LR4PBPN(fa`!g9-Gu-C_I6tmwkXmD0x{xkn@N+DkkT)Mc-L5)v`hd$G@5towh z(QMMlbB%AkxJi~iESRaE02~*U%>=X{f9rWN=DGG!vh`ub&e`0B@;T_mSwHSK#yes1 z(j;by;f*#c*Q`nZ0_$f+ZzKOAhg;CuvJSEX9@B+8J$ZF(*XnRq>x!E6JMMm?{uoj+ zX4=AlmIvtSGAPmzvF4o7L|?gIA^q;ECe~qWjF7Ie#(+0&m^cS$%HB!SLNEC>5&c5i zn@Up%nkxQZ;Ku?u@C#@o6-i+!pOx=T7fxjGUhL17_8y_I!KVH;NKISxbY>n4!VWVK z7gCdp#Oa_b?L_bIMMvm8LS}mpO~K-ux9!bHClm8iX>^n@zbO%o$mOymkqEaaLM{Hy z)_(~b;Qztc^wDB+v)F1W>tC<_80*V@D5kSBs_$lK{%P2ql-tV*+0ln463!<)2DD&< zFP+^HAr<9c?$j4oNvM!npl!Z5d6HBD{<5O3byQ+`bq%Mwq+{nNIa9?0=VRijmz&iz zti<*cKtJQ$XR<*gf(ILZVga4o$ap5HE7$0fzF;o8EqqRAt^1_&>hZ(%Q_OYvZcGl; zh@>H|7sv}L6!Kns;&AN*!6xhC5Wm(ZYS7l$-eVclc2-81GjkFC5s>sr5 z9=ZD5<08z)7;-XMqx(7!sN6n=Z)Scr7k4f$6kEh)V-#QhYCW+o1lwGO7^`r1a?p; z)g^!vvvaWdlmb_|4#efsYF|Y*AEdzf=(%-Y@KeL_20WQ~kgi@~e_jkIWT!t)-p2#; z@wLf$Ze;?a3Vtp!I>iBPdB4@hcGdoRs0cpeiAtT<3d@-ZA7x9h<;x^1R~lIzk$S=i z|LTbdDZy_aUPw~6T8$#AcOE}b`^Tk~dH%+JUV6Sod9B7{#5cH=p_aGyi9|yqZ%H*$ zZ+7=GOnFypHgdYBe)pQ;;mqS1c*MiJxV?G!LK(V1@U*sl-25}x7<6if6frXt+bbF1 zBAhw47*Ym;(v?{_bl4tBDrIVURZJmeD*>A!WS2g#jrx6&hsIggb695{_~@XqC}m0y zN?V6*u5Hf7)p#dhJL{uA+D&O%g81>6n0MjgXjK@4rki@T_oV}FPb>jYe2rqj_)di? zTqm9a^IGd`g~PL$ia$%PmoxsE68sK-R=4Flq~Ay9A7kTR)rrNYr-J7_DJ`0I_A^}c>3nkTie!&v;`a_@|)n5QN!{*(EzJS-3@hd_h zB33dKCelB;i|chsPTuoZi$@B<5XwT``4n3wsN4jrAX~3HbYk^dLg0f=#Ng~>FcxtD z0fRr;P6I-e^U1@d)#PX@9b^K@Xjwl3e*&%9gO)BHw(ACB<%M`cw!nH`5YO2!kGOZ{ zZ+W|z`5bmyQwU%(oXk9a;8EKCFWZTpj(ynV*n)h41kOwQ+7r>}g<>U%o$!6HR8YEf zF|--_aq^zb`kc)BDUD-DhY;v#ovF-BLCn!;Q!#c#eZ6R@40lML29Sv*<_iopT+@S|(Q??b7VHbk-ZGK3%5d=1%an|rr!O& zB$hwI&ubGz&*ujq3 z9*e1tq?zwq-6J;=>ecHsj>6#y zv_<;LoYpksU^W7~NG)r+N5#Q={b1$Uz>jD+ARnt&u$BsIpY27qx)7qU@mP|cXQv!j z%(*O3;#TvmI=^C{p{ZwJF;|Ia+v^s;Eb1$2yEZ7c%KrF0XzC-NQFwv%Lyh*( zE78E78^=JQ35e458!ZKy8F0?Q;C=&Va6PMzhKj|zgw3v9!^@cEz^+w;_F=Tu52YCx z*jVanDk@;rG$ZbPU)VHaSj%y(R@Jc>c6jw*qo4XLMn~Ub-nRnJvMCa&PzQ?MCn2bM zx8CeBj0S>Yv9~`f8*UImf>%wx!$RqPjxMuK!w4(F+ItF2p8Cwp)2) zCuUzI{=M&i25G4FP|BNqvYXrNzTtF17evrsMCw|~>3WsD9+r#%$2X08?0p{rWlZ;t zb){o~i5S-3*c(AuesXK6VRxc|o9!hnvuQ0!MBQ7`F{Rm#+UnN(`@-$~PkWDdYfNYp zvk7X650Sf)&Sl;B=-g1H^oEW1advnjVEN4+<=%{E758O);&A3h^7dbMs7#HMn!iFO zjpLu&;cc<2=U|Z8lvvh7BW&a?1o>k!6&?^Cel1zAzlVo;MKv-J&>ju^9GcorGC%lV zMDin3duz?O_ObEFlaLRM;CYMEv83k9o-TOfo9vx7GkNLh+0eW&pDQ8A;l4a6;)ea% zy!b?3mkBBhBL4oRHz=mE6VymL9R#)W-3k{}32eW5O~kF>keNAMSh*tWz{QtzKmKsVoH(J>lS zQ=#NT2EXKSTNRI+A~{rzXALGSeTg`b=MZ4#y42=*)~}@DjS5qxf^}bByIyYT?ihTT zua=*FJ^8Cj2kH*OuP}25OdI<9ocLsVCL@w@HggU$m4|Rxm zON#g%>NI$c7|$!b#aMnk0m%Dstp6(I203VQTpKQZ{Qacc-bsw6K1(C;GSE)uSyHQ} zklW~Ec$dkLi$9rwLh`$QOH&@^J|%WWjcI;l+ZiqNVEV|FP!51Ap3Y&3D9?0r+x&`z z%)*)*$}B92jdR`&Z2pz#UT_(NpaT1;?R734^Y@!OZ20Tv%uQ*P`$g_dcbO^EmW+g7 zyd)rN4YFJ2y0YQ5X;FKqGgCR?#`{O_s=?Y4o5a8H9O?1>yn;-(u-Ez@*~*PhyDskU zY(THdG;pG8gCZPE7`DqI-Z;X|ZZvaFRT+99ibf5+D=<~e+_@B9{o1hvPp~*cOMd#7 zRZKI^+)sVq;0jPcFLj~z>pv&#>ZH*Z@ov2>R|_0FnlZZrrB?ff`})aVPA8+E6};;*i=e*z&|qmP<&M%LI&f~2RMK57X&A#@uuRHX8gF4!^PLp^c`U@1qZu(E9+qtRwS>;SiyfuBggMd>L z0ft-NO9Y{$*;NKv)4tM0SA@otm%GFr7@f@u<*gmAjjd+(2A|IP#6$2{`S-|06RVVk zDd)gM<|tPfk@eK3+YPe31>r(Xj^kgDmda*N@d3if#2lmTyTp)eq>3zJn5m4NS1)nT zXPEln$+Hkcox!S&HE>qvvvnNIl(cv?N|$0mM6fl2{?RZjSS zZH*L|+%xqQ$N}H}!_r70(?lo5XD+QpB_Rv_`-zS?3isei{dIxe3Ws!L19AX;%6@~ ZTP@T1>bv9!&_5i4q(3Q$SBM$}{C`(dFKhq+ From 27ddffe0dd6503fc773c854b862efad5987cae69 Mon Sep 17 00:00:00 2001 From: Archmonger <16909269+Archmonger@users.noreply.github.com> Date: Mon, 23 Sep 2024 23:03:06 -0700 Subject: [PATCH 6/7] fix spelling --- docs/src/reference/hooks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/reference/hooks.md b/docs/src/reference/hooks.md index 3fc20841..43c4641b 100644 --- a/docs/src/reference/hooks.md +++ b/docs/src/reference/hooks.md @@ -522,7 +522,7 @@ You can expect this hook to provide strings such as `http://example.com`. Shortcut that returns the root component's `#!python id` from the WebSocket or HTTP connection. -The root ID is a randomly generated `#!python uuid4`. It is noteable to mention that it is persistent across the current connection. The `uuid` is reset when the page is refreshed. +The root ID is a randomly generated `#!python uuid4`. It is notable to mention that it is persistent across the current connection. The `uuid` is reset when the page is refreshed. This is useful when used in combination with [`#!python use_channel_layer`](#use-channel-layer) to send messages to a specific component instance, and/or retain a backlog of messages in case that component is disconnected via `#!python use_channel_layer( ... , group_discard=False)`. From 82c773ebbd2374fe242c0c27d0301b875e5cbdce Mon Sep 17 00:00:00 2001 From: Archmonger <16909269+Archmonger@users.noreply.github.com> Date: Mon, 23 Sep 2024 23:04:00 -0700 Subject: [PATCH 7/7] add border to homepage examples --- docs/src/assets/css/home.css | 474 ++++++++++++++++++----------------- 1 file changed, 238 insertions(+), 236 deletions(-) diff --git a/docs/src/assets/css/home.css b/docs/src/assets/css/home.css index c72e7093..70f05cf2 100644 --- a/docs/src/assets/css/home.css +++ b/docs/src/assets/css/home.css @@ -1,335 +1,337 @@ img.home-logo { - height: 120px; + height: 120px; } .home .row { - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; - padding: 6rem 0.8rem; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + padding: 6rem 0.8rem; } .home .row:not(.first, .stripe) { - background: var(--row-bg-color); + background: var(--row-bg-color); } .home .row.stripe { - background: var(--row-stripe-bg-color); - border: 0 solid var(--stripe-border-color); - border-top-width: 1px; - border-bottom-width: 1px; + background: var(--row-stripe-bg-color); + border: 0 solid var(--stripe-border-color); + border-top-width: 1px; + border-bottom-width: 1px; } .home .row.first { - text-align: center; + text-align: center; } .home .row h1 { - max-width: 28rem; - line-height: 1.15; - font-weight: 500; - margin-bottom: 0.55rem; - margin-top: -1rem; + max-width: 28rem; + line-height: 1.15; + font-weight: 500; + margin-bottom: 0.55rem; + margin-top: -1rem; } .home .row.first h1 { - margin-top: 0.55rem; - margin-bottom: -0.75rem; + margin-top: 0.55rem; + margin-bottom: -0.75rem; } .home .row > p { - max-width: 35rem; - line-height: 1.5; - font-weight: 400; + max-width: 35rem; + line-height: 1.5; + font-weight: 400; } .home .row.first > p { - font-size: 32px; - font-weight: 500; + font-size: 32px; + font-weight: 500; } /* Code blocks */ .home .row .tabbed-set { - background: var(--home-tabbed-set-bg-color); - margin: 0; + background: var(--home-tabbed-set-bg-color); + margin: 0; } .home .row .tabbed-content { - padding: 20px 18px; - overflow-x: auto; + padding: 20px 18px; + overflow-x: auto; } .home .row .tabbed-content img { - user-select: none; - -moz-user-select: none; - -webkit-user-drag: none; - -webkit-user-select: none; - -ms-user-select: none; - max-width: 580px; + user-select: none; + -moz-user-select: none; + -webkit-user-drag: none; + -webkit-user-select: none; + -ms-user-select: none; + max-width: 580px; } .home .row .tabbed-content { - -webkit-filter: var(--code-block-filter); - filter: var(--code-block-filter); + -webkit-filter: var(--code-block-filter); + filter: var(--code-block-filter); } /* Code examples */ .home .example-container { - background: radial-gradient( - circle at 0% 100%, - rgb(41 84 147 / 11%) 0%, - rgb(22 89 189 / 4%) 70%, - rgb(48 99 175 / 0%) 80% - ), - radial-gradient( - circle at 100% 100%, - rgb(24 87 45 / 55%) 0%, - rgb(29 61 12 / 4%) 70%, - rgb(94 116 93 / 0%) 80% - ), - radial-gradient( - circle at 100% 0%, - rgba(54, 66, 84, 0.55) 0%, - rgb(102 111 125 / 4%) 70%, - rgba(54, 66, 84, 0) 80% - ), - radial-gradient( - circle at 0% 0%, - rgba(91, 114, 135, 0.55) 0%, - rgb(45 111 171 / 4%) 70%, - rgb(5 82 153 / 0%) 80% - ), - rgb(0, 0, 0) center center/cover no-repeat fixed; - display: grid; - grid-template-columns: repeat(2, minmax(0, 1fr)); - align-items: center; - border-radius: 16px; - margin: 30px 0; - max-width: 100%; - grid-column-gap: 20px; - padding-left: 20px; - padding-right: 20px; + background: radial-gradient( + circle at 0% 100%, + rgb(41 84 147 / 11%) 0%, + rgb(22 89 189 / 4%) 70%, + rgb(48 99 175 / 0%) 80% + ), + radial-gradient( + circle at 100% 100%, + rgb(24 87 45 / 55%) 0%, + rgb(29 61 12 / 4%) 70%, + rgb(94 116 93 / 0%) 80% + ), + radial-gradient( + circle at 100% 0%, + rgba(54, 66, 84, 0.55) 0%, + rgb(102 111 125 / 4%) 70%, + rgba(54, 66, 84, 0) 80% + ), + radial-gradient( + circle at 0% 0%, + rgba(91, 114, 135, 0.55) 0%, + rgb(45 111 171 / 4%) 70%, + rgb(5 82 153 / 0%) 80% + ), + rgb(0, 0, 0) center center/cover no-repeat fixed; + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + align-items: center; + border-radius: 16px; + margin: 30px 0; + max-width: 100%; + grid-column-gap: 20px; + padding-left: 20px; + padding-right: 20px; } .home .demo .white-bg { - background: #fff; - border-radius: 16px; - display: flex; - flex-direction: column; - max-width: 590px; - min-width: -webkit-min-content; - min-width: -moz-min-content; - min-width: min-content; - row-gap: 1rem; - padding: 1rem; + background: #fff; + border-radius: 16px; + display: flex; + flex-direction: column; + max-width: 590px; + min-width: -webkit-min-content; + min-width: -moz-min-content; + min-width: min-content; + row-gap: 1rem; + padding: 1rem; + border: 1px rgb(0 0 0 / 20%) solid; + overflow: hidden; } .home .demo .vid-row { - display: flex; - flex-direction: row; - -moz-column-gap: 12px; - column-gap: 12px; + display: flex; + flex-direction: row; + -moz-column-gap: 12px; + column-gap: 12px; } .home .demo { - color: #000; + color: #000; } .home .demo .vid-thumbnail { - background: radial-gradient( - circle at 0% 100%, - rgb(41 84 147 / 55%) 0%, - rgb(22 89 189 / 4%) 70%, - rgb(48 99 175 / 0%) 80% - ), - radial-gradient( - circle at 100% 100%, - rgb(24 63 87 / 55%) 0%, - rgb(29 61 12 / 4%) 70%, - rgb(94 116 93 / 0%) 80% - ), - radial-gradient( - circle at 100% 0%, - rgba(54, 66, 84, 0.55) 0%, - rgb(102 111 125 / 4%) 70%, - rgba(54, 66, 84, 0) 80% - ), - radial-gradient( - circle at 0% 0%, - rgba(91, 114, 135, 0.55) 0%, - rgb(45 111 171 / 4%) 70%, - rgb(5 82 153 / 0%) 80% - ), - rgb(0, 0, 0) center center/cover no-repeat fixed; - width: 9rem; - aspect-ratio: 16 / 9; - border-radius: 8px; - display: flex; - justify-content: center; - align-items: center; + background: radial-gradient( + circle at 0% 100%, + rgb(41 84 147 / 55%) 0%, + rgb(22 89 189 / 4%) 70%, + rgb(48 99 175 / 0%) 80% + ), + radial-gradient( + circle at 100% 100%, + rgb(24 63 87 / 55%) 0%, + rgb(29 61 12 / 4%) 70%, + rgb(94 116 93 / 0%) 80% + ), + radial-gradient( + circle at 100% 0%, + rgba(54, 66, 84, 0.55) 0%, + rgb(102 111 125 / 4%) 70%, + rgba(54, 66, 84, 0) 80% + ), + radial-gradient( + circle at 0% 0%, + rgba(91, 114, 135, 0.55) 0%, + rgb(45 111 171 / 4%) 70%, + rgb(5 82 153 / 0%) 80% + ), + rgb(0, 0, 0) center center/cover no-repeat fixed; + width: 9rem; + aspect-ratio: 16 / 9; + border-radius: 8px; + display: flex; + justify-content: center; + align-items: center; } .home .demo .vid-text { - display: flex; - flex-direction: column; - justify-content: center; - align-items: flex-start; - width: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; + width: 100%; } .home .demo h2 { - font-size: 18px; - line-height: 1.375; - margin: 0; - text-align: left; - font-weight: 700; + font-size: 18px; + line-height: 1.375; + margin: 0; + text-align: left; + font-weight: 700; } .home .demo h3 { - font-size: 16px; - line-height: 1.25; - margin: 0; + font-size: 16px; + line-height: 1.25; + margin: 0; } .home .demo p { - font-size: 14px; - line-height: 1.375; - margin: 0; + font-size: 14px; + line-height: 1.375; + margin: 0; } .home .demo .browser-nav-url { - background: rgba(153, 161, 179, 0.2); - border-radius: 9999px; - font-size: 14px; - color: grey; - display: flex; - align-items: center; - justify-content: center; - -moz-column-gap: 5px; - column-gap: 5px; + background: rgba(153, 161, 179, 0.2); + border-radius: 9999px; + font-size: 14px; + color: grey; + display: flex; + align-items: center; + justify-content: center; + -moz-column-gap: 5px; + column-gap: 5px; } .home .demo .browser-navbar { - margin: -1rem; - margin-bottom: 0; - padding: 0.75rem 1rem; - border-bottom: 1px solid darkgrey; + margin: -1rem; + margin-bottom: 0; + padding: 0.75rem 1rem; + border-bottom: 1px solid darkgrey; } .home .demo .browser-viewport { - background: #fff; - border-radius: 16px; - display: flex; - flex-direction: column; - row-gap: 1rem; - height: 400px; - overflow-y: scroll; - margin: -1rem; - padding: 1rem; + background: #fff; + border-radius: 16px; + display: flex; + flex-direction: column; + row-gap: 1rem; + height: 400px; + overflow-y: scroll; + margin: -1rem; + padding: 1rem; } .home .demo .browser-viewport .search-header > h1 { - color: #000; - text-align: left; - font-size: 24px; - margin: 0; + color: #000; + text-align: left; + font-size: 24px; + margin: 0; } .home .demo .browser-viewport .search-header > p { - text-align: left; - font-size: 16px; - margin: 10px 0; + text-align: left; + font-size: 16px; + margin: 10px 0; } .home .demo .search-bar input { - width: 100%; - background: rgba(153, 161, 179, 0.2); - border-radius: 9999px; - padding-left: 40px; - padding-right: 40px; - height: 40px; - color: #000; + width: 100%; + background: rgba(153, 161, 179, 0.2); + border-radius: 9999px; + padding-left: 40px; + padding-right: 40px; + height: 40px; + color: #000; } .home .demo .search-bar svg { - height: 40px; - position: absolute; - transform: translateX(75%); + height: 40px; + position: absolute; + transform: translateX(75%); } .home .demo .search-bar { - position: relative; + position: relative; } /* Desktop Styling */ @media screen and (min-width: 60em) { - .home .row { - text-align: center; - } - .home .row > p { - font-size: 21px; - } - .home .row > h1 { - font-size: 52px; - } - .home .row .pop-left { - margin-left: -20px; - margin-right: 0; - margin-top: -20px; - margin-bottom: -20px; - } - .home .row .pop-right { - margin-left: 0px; - margin-right: 0px; - margin-top: -20px; - margin-bottom: -20px; - } + .home .row { + text-align: center; + } + .home .row > p { + font-size: 21px; + } + .home .row > h1 { + font-size: 52px; + } + .home .row .pop-left { + margin-left: -20px; + margin-right: 0; + margin-top: -20px; + margin-bottom: -20px; + } + .home .row .pop-right { + margin-left: 0px; + margin-right: 0px; + margin-top: -20px; + margin-bottom: -20px; + } } /* Mobile Styling */ @media screen and (max-width: 60em) { - .home .row { - padding: 4rem 0.8rem; - } - .home .row > h1, - .home .row > p { - padding-left: 1rem; - padding-right: 1rem; - } - .home .row.first { - padding-top: 2rem; - } - .home-btns { - width: 100%; - display: grid; - grid-gap: 0.5rem; - gap: 0.5rem; - } - .home .example-container { - display: flex; - flex-direction: column; - row-gap: 20px; - width: 100%; - justify-content: center; - border-radius: 0; - padding: 1rem 0; - } - .home .row { - padding-left: 0; - padding-right: 0; - } - .home .tabbed-set { - width: 100%; - border-radius: 0; - } - .home .demo { - width: 100%; - display: flex; - justify-content: center; - } - .home .demo > .white-bg { - width: 80%; - max-width: 80%; - } + .home .row { + padding: 4rem 0.8rem; + } + .home .row > h1, + .home .row > p { + padding-left: 1rem; + padding-right: 1rem; + } + .home .row.first { + padding-top: 2rem; + } + .home-btns { + width: 100%; + display: grid; + grid-gap: 0.5rem; + gap: 0.5rem; + } + .home .example-container { + display: flex; + flex-direction: column; + row-gap: 20px; + width: 100%; + justify-content: center; + border-radius: 0; + padding: 1rem 0; + } + .home .row { + padding-left: 0; + padding-right: 0; + } + .home .tabbed-set { + width: 100%; + border-radius: 0; + } + .home .demo { + width: 100%; + display: flex; + justify-content: center; + } + .home .demo > .white-bg { + width: 80%; + max-width: 80%; + } }