From 606ae3e59b88ee69ec0197569f97ca8f28bfd579 Mon Sep 17 00:00:00 2001 From: Lana Begunova <70295997+lana-20@users.noreply.github.com> Date: Sun, 25 Oct 2026 16:13:25 -0700 Subject: [PATCH] app_check is app_set: set and unset, re-captured Mobium renamed its checkbox tool (mobiumdev/mobium#280): app_check is app_set, its argument value, the CLI's verbs set and unset, and each client's methods set and unset. The examples follow in every language, the two runs are captured again on an Android 15 emulator with the new verbs, and so is the wait that ticks the box first. A .NET example of NotConfirmedException and two guides still named the old call. --- data/runs.json | 42 +++++++++--------- examples/canonical.json | 8 ++-- examples/dotnet.json | 8 ++-- examples/go.json | 6 +-- examples/java.json | 6 +-- examples/javascript.json | 6 +-- examples/python.json | 6 +-- scripts/capture.py | 8 ++-- ..._check-0-after.jpg => app_set-0-after.jpg} | Bin 23322 -> 23572 bytes ...heck-0-before.jpg => app_set-0-before.jpg} | Bin 23068 -> 23318 bytes ...app_set-unset-testid-termscheck-after.jpg} | Bin 23348 -> 23598 bytes ...pp_set-unset-testid-termscheck-before.jpg} | Bin 23322 -> 23572 bytes 12 files changed, 45 insertions(+), 45 deletions(-) rename static/img/shots/{app_check-0-after.jpg => app_set-0-after.jpg} (93%) rename static/img/shots/{app_check-0-before.jpg => app_set-0-before.jpg} (93%) rename static/img/shots/{app_check-uncheck-testid-termscheck-after.jpg => app_set-unset-testid-termscheck-after.jpg} (93%) rename static/img/shots/{app_check-uncheck-testid-termscheck-before.jpg => app_set-unset-testid-termscheck-before.jpg} (93%) diff --git a/data/runs.json b/data/runs.json index 296ce52..a463d51 100644 --- a/data/runs.json +++ b/data/runs.json @@ -196,23 +196,13 @@ "output": "com.android.shell Mobium — Your code is 123456\nandroid Serial console enabled — Performance is impacted. To disable, check bootloader.", "after": "/img/shots/app_notifications-1-after.jpg" }, - "app_check[0]": { - "tool": "app_check", - "index": 0, - "before": "/img/shots/app_check-0-before.jpg", - "command": "mobium check testid=termsCheck", - "verbatim": true, - "exit": 0, - "output": "testid=termsCheck is now checked", - "after": "/img/shots/app_check-0-after.jpg" - }, "app_wait_for[2]": { "tool": "app_wait_for", "index": 2, "command": "mobium wait testid=termsCheck --for checked --timeout 5s", "verbatim": true, "exit": 0, - "output": "testid=termsCheck is checked after 18ms — @e3 Accept terms (checkbox, checked)" + "output": "testid=termsCheck is checked after 29ms — @e3 Accept terms (checkbox, checked)" }, "app_fill:fill testid=username mobium": { "tool": "app_fill", @@ -587,16 +577,6 @@ "output": "no cookies for about:blank", "after": "/img/shots/app_cookies-0-after.jpg" }, - "app_check:uncheck testid=termsCheck": { - "tool": "app_check", - "index": null, - "before": "/img/shots/app_check-uncheck-testid-termscheck-before.jpg", - "command": "mobium uncheck testid=termsCheck", - "verbatim": false, - "exit": 0, - "output": "testid=termsCheck is now unchecked", - "after": "/img/shots/app_check-uncheck-testid-termscheck-after.jpg" - }, "app_open_url:open https://en.wikipedia.org/wiki/Mobile_app": { "tool": "app_open_url", "index": null, @@ -818,5 +798,25 @@ "verbatim": true, "exit": 0, "output": "TalkBack said, since listening started: \"Live cart: 1\" — Live cart: 1, not in map [a change on screen]" + }, + "app_set[0]": { + "tool": "app_set", + "index": 0, + "before": "/img/shots/app_set-0-before.jpg", + "command": "mobium set testid=termsCheck", + "verbatim": true, + "exit": 0, + "output": "testid=termsCheck is now checked", + "after": "/img/shots/app_set-0-after.jpg" + }, + "app_set:unset testid=termsCheck": { + "tool": "app_set", + "index": null, + "before": "/img/shots/app_set-unset-testid-termscheck-before.jpg", + "command": "mobium unset testid=termsCheck", + "verbatim": false, + "exit": 0, + "output": "testid=termsCheck is now unchecked", + "after": "/img/shots/app_set-unset-testid-termscheck-after.jpg" } } diff --git a/examples/canonical.json b/examples/canonical.json index 825f68c..f1dff02 100644 --- a/examples/canonical.json +++ b/examples/canonical.json @@ -122,20 +122,20 @@ } } ], - "app_check": [ + "app_set": [ { "title": "Tick a checkbox, whatever state it is in", - "cli": "mobium check testid=termsCheck", + "cli": "mobium set testid=termsCheck", "args": { "target": "testid=termsCheck" } }, { "title": "Turn a switch off", - "cli": "mobium uncheck @e4", + "cli": "mobium unset @e4", "args": { "target": "@e4", - "checked": false + "value": false } } ], diff --git a/examples/dotnet.json b/examples/dotnet.json index 43c2b4d..865a99d 100644 --- a/examples/dotnet.json +++ b/examples/dotnet.json @@ -55,12 +55,12 @@ "code": "device.IncomingCall(\"hang\");" } ], - "app_check": [ + "app_set": [ { - "code": "device.Check(\"testid=termsCheck\");" + "code": "device.Set(\"testid=termsCheck\");" }, { - "code": "device.Check(\"@e4\", false);" + "code": "device.Unset(\"@e4\");" } ], "app_clear_data": [ @@ -673,7 +673,7 @@ "NotConfirmedException": [ { "title": "Notice an action the device did not confirm", - "code": "try { device.Check(\"@e4\"); }\ncatch (NotConfirmedException e) { Console.WriteLine(e.Details.Count); }" + "code": "try { device.Set(\"@e4\"); }\ncatch (NotConfirmedException e) { Console.WriteLine(e.Details.Count); }" } ], "Until": [ diff --git a/examples/go.json b/examples/go.json index 4187aa2..fd3c24f 100644 --- a/examples/go.json +++ b/examples/go.json @@ -55,12 +55,12 @@ "code": "if err := dev.IncomingCall(ctx, \"hang\", \"\"); err != nil {\n\treturn err\n}" } ], - "app_check": [ + "app_set": [ { - "code": "if err := dev.Check(ctx, \"testid=termsCheck\", true); err != nil {\n\treturn err\n}" + "code": "if err := dev.Set(ctx, \"testid=termsCheck\", true); err != nil {\n\treturn err\n}" }, { - "code": "if err := dev.Check(ctx, \"@e4\", false); err != nil {\n\treturn err\n}" + "code": "if err := dev.Unset(ctx, \"@e4\"); err != nil {\n\treturn err\n}" } ], "app_clear_data": [ diff --git a/examples/java.json b/examples/java.json index 6822f1f..1a84f83 100644 --- a/examples/java.json +++ b/examples/java.json @@ -55,12 +55,12 @@ "code": "device.incomingCall(\"hang\");" } ], - "app_check": [ + "app_set": [ { - "code": "device.check(\"testid=termsCheck\", true); // does nothing if it is already ticked" + "code": "device.set(\"testid=termsCheck\", true); // does nothing if it is already ticked" }, { - "code": "device.check(\"@e4\", false);" + "code": "device.unset(\"@e4\");" } ], "app_clear_data": [ diff --git a/examples/javascript.json b/examples/javascript.json index a4c09f7..550bea0 100644 --- a/examples/javascript.json +++ b/examples/javascript.json @@ -55,12 +55,12 @@ "code": "await device.incomingCall('hang')" } ], - "app_check": [ + "app_set": [ { - "code": "await device.check('testid=termsCheck')" + "code": "await device.set('testid=termsCheck')" }, { - "code": "await device.check('@e4', false)" + "code": "await device.unset('@e4')" } ], "app_clear_data": [ diff --git a/examples/python.json b/examples/python.json index 7e88cff..9afb279 100644 --- a/examples/python.json +++ b/examples/python.json @@ -55,12 +55,12 @@ "code": "device.incoming_call(\"hang\")" } ], - "app_check": [ + "app_set": [ { - "code": "device.check(\"testid=termsCheck\")" + "code": "device.set(\"testid=termsCheck\")" }, { - "code": "device.check(\"@e4\", checked=False)" + "code": "device.unset(\"@e4\")" } ], "app_clear_data": [ diff --git a/scripts/capture.py b/scripts/capture.py index 14e6dfa..a07909a 100644 --- a/scripts/capture.py +++ b/scripts/capture.py @@ -104,8 +104,8 @@ def app_screen(name): restore=["accessibility bold_text off"]), dict(tool="app_notifications", i=0, setup=cleared_shade()), dict(tool="app_notifications", i=1, after=True, restore=["notifications --shade close"]), - dict(tool="app_check", i=0, setup=app_screen("Form Demo"), before=True, after=True), - dict(tool="app_wait_for", i=2, setup=app_screen("Form Demo") + ["check testid=termsCheck"]), + dict(tool="app_set", i=0, setup=app_screen("Form Demo"), before=True, after=True), + dict(tool="app_wait_for", i=2, setup=app_screen("Form Demo") + ["set testid=termsCheck"]), dict(tool="app_fill", i=None, cmd="fill testid=username mobium", setup=app_screen("Login Demo"), after=True), dict(tool="app_keyboard", i=0, setup=app_screen("Login Demo") + ["tap testid=username"], after=True), # The keyboard slides in after the tap; the pause lets the picture show it up. @@ -228,8 +228,8 @@ def app_screen(name): "`mobium tap testid=oneButtonBtn` met the Discard dialog in its way, pressed Keep Editing, and " "went on — its own alert is up, and the line under the title says what the app received — " "on an Android 15 emulator"), - dict(tool="app_check", i=None, cmd="uncheck testid=termsCheck", - setup=app_screen("Form Demo") + ["check testid=termsCheck"], before=True, after=True), + dict(tool="app_set", i=None, cmd="unset testid=termsCheck", + setup=app_screen("Form Demo") + ["set testid=termsCheck"], before=True, after=True), dict(tool="app_open_url", i=None, cmd="open https://en.wikipedia.org/wiki/Mobile_app", setup=["terminate org.wikipedia"], after=True, pause=3.0, restore=["terminate org.wikipedia"]), # A file sent to the device, then picked in MobiumApp's Files Demo, which diff --git a/static/img/shots/app_check-0-after.jpg b/static/img/shots/app_set-0-after.jpg similarity index 93% rename from static/img/shots/app_check-0-after.jpg rename to static/img/shots/app_set-0-after.jpg index 6827c7da10380d188b9b9c8aa6ae0f1757281792..5c0aed574b0758a5af7a932076c35e56c30e1e01 100644 GIT binary patch delta 1268 zcmV<&GWyyM583cMNd4$kf^cF_&h)vH}%Ha?+>PzZ6=#*DO)ckA%@&4g@sW{oum!Nc1PYP7~>q)1fLId={^~M z!ml&S_FwGrr}^J6nXpIY?&-I7Iq8hh2UDx+HyUn(bE@0IZe@Z8m0|}5MpY~n9&wT} zUzN-Id3f&ITJvYOf48``Nj_-fi(qBXAxU!B^d#i`=_TE00Zh@2>72(@u!9K{{R-~`@YMlz?TsR z7+|shKqJ(2HRfL#{9EI{2S=uAo)h~ZvPY5i6L8Uq3`@5Oe*ltLm85L80XR7I#(j%T z)2uXoJ`E>Jg>CJvqgbMi1{Dzo6+r9&uL{z>0O_!NUDW<5_=i!KSzE|_t9v`tS!1@` zLpH+Mz#DLY0f0y(&BlEK z;-851Zwh!Kf9qM$%xQG51W~-IT@cSQL|mvVouTuLjN-U&4*UwU@VCY*?}|Der!}pm z^dTQgg+zAdK%qCVTmmpR0k=DeIqhD#;-3xa-Y@X&=Z1A)-)FsvqH?DUx#-G!GMo^5 z5GVuW+kX~(K=Aj6wOw}q0L2pAc!NZ^VSlAv+rqHCe=Tw4#L*%uNU0=cS!7pWNx|oe z`$oQIpW!!-d}-pX66fMn_HtSHbg>r}yM)@8D99&50>p~QuIL%VI2gdMrf37=j}`n> z_=lmPy1LZoOQWdVSxsYUYiWy78v`2`xNy!MCPxGkSRMezE8o5s>s}?*ZZ(@tV)b=P zOADcIUT=HktPLZo4?PN@+C*-4ZUAM24%N$iTKFWsKh`a^{VA7o(}ktap8o!Z4XXgp2*q(`}j`+Ln|p_+2NF6DdQc_>iu}{#=nC88u;7c zKln#=!foy$Z!*^H6f}^(d;^TD4jFnMs1yP6_v~r$W8-(kYuoE@7r4~4J4C^~nLwhLMNyH+7AFiN68OdLM*5 z6Qle*@N^yz@Kh;p4Wvb4-U-~~a`IyZi#IHKpKADH#^13wkNzTfmgmKuE%B6BHCl*r%DV&QnX(jLM0Dgs0MHB#0MHB&&RA#fy2TfD*Kz2+3 delta 1005 zcmVQNKFasweb}?RUp!l!Go+$8g>v3wfmNqume;0z|Q<5w@TidY_ zzmVr_Y}h_#{16v~8@^vs*St5W>po*!YWFrwB#Kx(kbp$dh71TR`^1np%&(Ea#t${Z zUi=<6T0~lGddpsT71c>H@C7M^2rq<)Ql=w~F**r~FOvPNjSj;pB!Wj6yi$ z1gu#t87%t`%ti)D0CylB;rl;$>%_khJP9tb;>U(t%X|B)e?ue@`Dp6|n^m^%d=fp) za$gjDbK_qRYr4F4`h(a(VQX)5X>SF*5=nNB{#>o*Trfp3xd4tZ3X)Fh^)H0q3v@4o z-VTq!ejS==?W2}Scia^&T0@ifRYnJHD!0X-hL*n)ygs%BL@uB$<(Yvox=6bvhE1e4 z$q?X>a;z1HS1Kq2fcRJAPZ{`wU(?{b)EiK?yVKtC?kVlzic2zN2>{;%6k{P-IOpYE zz}M1s=D!Pm9$S1m@bC6$F}>969(RdKr^=xtjxb3gIHOfW1m^=Ml55hald%{vf3M09 z+Lz;(?Fr!Ti5DIiOSaJT<@xN5pdY`4@FX&_mMxwcMgpEO-2SiEj{Ix*FX69^z7zid zgm+vf-r^SXEpE|6NelPDILff$m!bNBKp!uD#-A2GH+)9DzP9mujY~tcOdHvhB&#{W zSk;sPCmgm$RAZh%KSum``0?Sde}Wzw`+fEW!u>20z>?#8fjzKY@=R9Fj`4euR7|@Fc$t{v2t3 z1D@nvzMTn(%&V|IS(_nAIP2?Q9rzFSKlq2?Ul-^amZRb;Ta7D1)L&3bbdEs9q$|Ag bak+vh&umZ!=v5R^Km`<00ze<&GWyyM583cMNd4$kf^cF_&h)vH}%Ha?+>PzZ6=#*DO)ckA%@&4g@sW{oum!Nc1PYP7~>q)1fLId={^~M z!ml&S_FwGrr}^J6nXpIY?&-I7Iq8hh2UDx+HyUn(bE@0IZe@Z8m0|}5MpY~n9&wT} zUzN-Id3f&ITJvYOf48``Nj_-fi(qBXAxU!B^d#i`=_TE00Zh@2>72(@u!9K{{R-~`@YMlz?TsR z7+|shKqJ(2HRfL#{9EI{2S=uAo)h~ZvPY5i6L8Uq3`@5Oe*ltLm85L80XR7I#(j%T z)2uXoJ`E>Jg>CJvqgbMi1{Dzo6+r9&uL{z>0O_!NUDW<5_=i!KSzE|_t9v`tS!1@` zLpH+Mz#DLY0f0y(&BlEK z;-851Zwh!Kf9qM$%xQG51W~-IT@cSQL|mvVouTuLjN-U&4*UwU@VCY*?}|Der!}pm z^dTQgg+zAdK%qCVTmmpR0k=DeIqhD#;-3xa-Y@X&=Z1A)-)FsvqH?DUx#-G!GMo^5 z5GVuW+kX~(K=Aj6wOw}q0L2pAc!NZ^VSlAv+rqHCe=Tw4#L*%uNU0=cS!7pWNx|oe z`$oQIpW!!-d}-pX66fMn_HtSHbg>r}yM)@8D99&50>p~QuIL%VI2gdMrf37=j}`n> z_=lmPy1LZoOQWdVSxsYUYiWy78v`2`xNy!MCPxGkSRMezE8o5s>s}?*ZZ(@tV)b=P zOADcIUT=HktPLZo4?PN@+C*-4ZUAM24%N$iTKFWsKh`a^{VA7o(}ktap8o!Z4XXgp2*q(`}j`+Ln|p_+2NF6DdQc_>iu}{#=nC88u;7c zKln#=!foy$Z!*^H6f}^(d;^TD4jFnMs1yP6_v~r$W8-(kYuoE@7r4~4J4C^~nLwhLMNyH+7AFiN68OdLM*5 z6Qle*@N^yz@Kh;p4Wvb4-U-~~a`IyZi#IHKpKADH#^13wkNzTfmgmKuE%B6BHCl*r%DV&QnX(jLM0Dgs0MHB#0MHB&(k0@rd%?D3X5bAb# delta 1005 zcmVQNKFasweb}?RUp!l!Go+$8g>v3wfmNqume;0z|Q<5w@TidY_ zzmVr_Y}h_#{16v~8@^vs*St5W>po*!YWFrwB#Kx(kbp$dh71TR`^1np%&(Ea#t${Z zUi=<6T0~lGddpsT71c>H@C7M^2rq<)Ql=w~F**r~FOvPNjSj;pB!Wj6yi$ z1gu#t87%t`%ti)D0CylB;rl;$>%_khJP9tb;>U(t%X|B)e?ue@`Dp6|n^m^%d=fp) za$gjDbK_qRYr4F4`h(a(VQX)5X>SF*5=nNB{#>o*Trfp3xd4tZ3X)Fh^)H0q3v@4o z-VTq!ejS==?W2}Scia^&T0@ifRYnJHD!0X-hL*n)ygs%BL@uB$<(Yvox=6bvhE1e4 z$q?X>a;z1HS1Kq2fcRJAPZ{`wU(?{b)EiK?yVKtC?kVlzic2zN2>{;%6k{P-IOpYE zz}M1s=D!Pm9$S1m@bC6$F}>969(RdKr^=xtjxb3gIHOfW1m^=Ml55hald%{vf3M09 z+Lz;(?Fr!Ti5DIiOSaJT<@xN5pdY`4@FX&_mMxwcMgpEO-2SiEj{Ix*FX69^z7zid zgm+vf-r^SXEpE|6NelPDILff$m!bNBKp!uD#-A2GH+)9DzP9mujY~tcOdHvhB&#{W zSk;sPCmgm$RAZh%KSum``0?Sde}Wzw`+fEW!u>20z>?#8fjzKY@=R9Fj`4euR7|@Fc$t{v2t3 z1D@nvzMTn(%&V|IS(_nAIP2?Q9rzFSKlq2?Ul-^amZRb;Ta7D1)L&3bbdEs9q$|Ag bak+vh&umZ!=v5R^Km`<00ze<&GWyyM583cMNd4$kf^cF_&h)vH}%Ha?+>PzZ6=#*DO)ckA%@&4g@sW{oum!Nc1PYP7~>q)1fLId={^~M z!ml&S_FwGrr}^J6nXpIY?&-I7Iq8hh2UDx+HyUn(bE@0IZe@Z8m0|}5MpY~n9&wT} zUzN-Id3f&ITJvYOf48``Nj_-fi(qBXAxU!B^d#i`=_TE00Zh@2>72(@u!9K{{R-~`@YMlz?TsR z7+|shKqJ(2HRfL#{9EI{2S=uAo)h~ZvPY5i6L8Uq3`@5Oe*ltLm85L80XR7I#(j%T z)2uXoJ`E>Jg>CJvqgbMi1{Dzo6+r9&uL{z>0O_!NUDW<5_=i!KSzE|_t9v`tS!1@` zLpH+Mz#DLY0f0y(&BlEK z;-851Zwh!Kf9qM$%xQG51W~-IT@cSQL|mvVouTuLjN-U&4*UwU@VCY*?}|Der!}pm z^dTQgg+zAdK%qCVTmmpR0k=DeIqhD#;-3xa-Y@X&=Z1A)-)FsvqH?DUx#-G!GMo^5 z5GVuW+kX~(K=Aj6wOw}q0L2pAc!NZ^VSlAv+rqHCe=Tw4#L*%uNU0=cS!7pWNx|oe z`$oQIpW!!-d}-pX66fMn_HtSHbg>r}yM)@8D99&50>p~QuIL%VI2gdMrf37=j}`n> z_=lmPy1LZoOQWdVSxsYUYiWy78v`2`xNy!MCPxGkSRMezE8o5s>s}?*ZZ(@tV)b=P zOADcIUT=HktPLZo4?PN@+C*-4ZUAM24%N$iTKFWsKh`a^{VA7o(}ktap8o!Z4XXgp2*q(`}j`+Ln|p_+2NF6DdQc_>iu}{#=nC88u;7c zKln#=!foy$Z!*^H6f}^(d;^TD4jFnMs1yP6_v~r$W8-(kYuoE@7r4~4J4C^~nLwhLMNyH+7AFiN68OdLM*5 z6Qle*@N^yz@Kh;p4Wvb4-U-~~a`IyZi#IHKpKADH#^13wkNzTfmgmKuE%B6BHCl*r%DV&QnX(jLM0Dgs0MHB#0MHB&(k0@rd%?D>w5}bC$ delta 1005 zcmVQNKFasweb}?RUp!l!Go+$8g>v3wfmNqume;0z|Q<5w@TidY_ zzmVr_Y}h_#{16v~8@^vs*St5W>po*!YWFrwB#Kx(kbp$dh71TR`^1np%&(Ea#t${Z zUi=<6T0~lGddpsT71c>H@C7M^2rq<)Ql=w~F**r~FOvPNjSj;pB!Wj6yi$ z1gu#t87%t`%ti)D0CylB;rl;$>%_khJP9tb;>U(t%X|B)e?ue@`Dp6|n^m^%d=fp) za$gjDbK_qRYr4F4`h(a(VQX)5X>SF*5=nNB{#>o*Trfp3xd4tZ3X)Fh^)H0q3v@4o z-VTq!ejS==?W2}Scia^&T0@ifRYnJHD!0X-hL*n)ygs%BL@uB$<(Yvox=6bvhE1e4 z$q?X>a;z1HS1Kq2fcRJAPZ{`wU(?{b)EiK?yVKtC?kVlzic2zN2>{;%6k{P-IOpYE zz}M1s=D!Pm9$S1m@bC6$F}>969(RdKr^=xtjxb3gIHOfW1m^=Ml55hald%{vf3M09 z+Lz;(?Fr!Ti5DIiOSaJT<@xN5pdY`4@FX&_mMxwcMgpEO-2SiEj{Ix*FX69^z7zid zgm+vf-r^SXEpE|6NelPDILff$m!bNBKp!uD#-A2GH+)9DzP9mujY~tcOdHvhB&#{W zSk;sPCmgm$RAZh%KSum``0?Sde}Wzw`+fEW!u>20z>?#8fjzKY@=R9Fj`4euR7|@Fc$t{v2t3 z1D@nvzMTn(%&V|IS(_nAIP2?Q9rzFSKlq2?Ul-^amZRb;Ta7D1)L&3bbdEs9q$|Ag bak+vh&umZ!=v5R^Km`<00ze<&GWyyM583cMNd4$kf^cF_&h)vH}%Ha?+>PzZ6=#*DO)ckA%@&4g@sW{oum!Nc1PYP7~>q)1fLId={^~M z!ml&S_FwGrr}^J6nXpIY?&-I7Iq8hh2UDx+HyUn(bE@0IZe@Z8m0|}5MpY~n9&wT} zUzN-Id3f&ITJvYOf48``Nj_-fi(qBXAxU!B^d#i`=_TE00Zh@2>72(@u!9K{{R-~`@YMlz?TsR z7+|shKqJ(2HRfL#{9EI{2S=uAo)h~ZvPY5i6L8Uq3`@5Oe*ltLm85L80XR7I#(j%T z)2uXoJ`E>Jg>CJvqgbMi1{Dzo6+r9&uL{z>0O_!NUDW<5_=i!KSzE|_t9v`tS!1@` zLpH+Mz#DLY0f0y(&BlEK z;-851Zwh!Kf9qM$%xQG51W~-IT@cSQL|mvVouTuLjN-U&4*UwU@VCY*?}|Der!}pm z^dTQgg+zAdK%qCVTmmpR0k=DeIqhD#;-3xa-Y@X&=Z1A)-)FsvqH?DUx#-G!GMo^5 z5GVuW+kX~(K=Aj6wOw}q0L2pAc!NZ^VSlAv+rqHCe=Tw4#L*%uNU0=cS!7pWNx|oe z`$oQIpW!!-d}-pX66fMn_HtSHbg>r}yM)@8D99&50>p~QuIL%VI2gdMrf37=j}`n> z_=lmPy1LZoOQWdVSxsYUYiWy78v`2`xNy!MCPxGkSRMezE8o5s>s}?*ZZ(@tV)b=P zOADcIUT=HktPLZo4?PN@+C*-4ZUAM24%N$iTKFWsKh`a^{VA7o(}ktap8o!Z4XXgp2*q(`}j`+Ln|p_+2NF6DdQc_>iu}{#=nC88u;7c zKln#=!foy$Z!*^H6f}^(d;^TD4jFnMs1yP6_v~r$W8-(kYuoE@7r4~4J4C^~nLwhLMNyH+7AFiN68OdLM*5 z6Qle*@N^yz@Kh;p4Wvb4-U-~~a`IyZi#IHKpKADH#^13wkNzTfmgmKuE%B6BHCl*r%DV&QnX(jLM0Dgs0MHB#0MHB&&RA#fy2TfD*Kz2+3 delta 1005 zcmVQNKFasweb}?RUp!l!Go+$8g>v3wfmNqume;0z|Q<5w@TidY_ zzmVr_Y}h_#{16v~8@^vs*St5W>po*!YWFrwB#Kx(kbp$dh71TR`^1np%&(Ea#t${Z zUi=<6T0~lGddpsT71c>H@C7M^2rq<)Ql=w~F**r~FOvPNjSj;pB!Wj6yi$ z1gu#t87%t`%ti)D0CylB;rl;$>%_khJP9tb;>U(t%X|B)e?ue@`Dp6|n^m^%d=fp) za$gjDbK_qRYr4F4`h(a(VQX)5X>SF*5=nNB{#>o*Trfp3xd4tZ3X)Fh^)H0q3v@4o z-VTq!ejS==?W2}Scia^&T0@ifRYnJHD!0X-hL*n)ygs%BL@uB$<(Yvox=6bvhE1e4 z$q?X>a;z1HS1Kq2fcRJAPZ{`wU(?{b)EiK?yVKtC?kVlzic2zN2>{;%6k{P-IOpYE zz}M1s=D!Pm9$S1m@bC6$F}>969(RdKr^=xtjxb3gIHOfW1m^=Ml55hald%{vf3M09 z+Lz;(?Fr!Ti5DIiOSaJT<@xN5pdY`4@FX&_mMxwcMgpEO-2SiEj{Ix*FX69^z7zid zgm+vf-r^SXEpE|6NelPDILff$m!bNBKp!uD#-A2GH+)9DzP9mujY~tcOdHvhB&#{W zSk;sPCmgm$RAZh%KSum``0?Sde}Wzw`+fEW!u>20z>?#8fjzKY@=R9Fj`4euR7|@Fc$t{v2t3 z1D@nvzMTn(%&V|IS(_nAIP2?Q9rzFSKlq2?Ul-^amZRb;Ta7D1)L&3bbdEs9q$|Ag bak+vh&umZ!=v5R^Km`<00ze