From e9e63efd9437facafad7e2ed514401c36c0f5590 Mon Sep 17 00:00:00 2001 From: 4am Date: Sat, 7 Jan 2017 22:35:35 -0500 Subject: [PATCH] migrate from 2016-12-30 Merlin source --- .gitignore | 2 + Makefile | 32 ++ bin/AppleCommander.jar | Bin 0 -> 420406 bytes bin/V2Make.scpt | Bin 0 -> 4414 bytes res/readme.txt | 1 + res/work.po | Bin 0 -> 143360 bytes src/analyze.a | 293 ++++++++++++++ src/applyglobals.a | 128 ++++++ src/compare.a | 202 ++++++++++ src/id/datasoft.a | 32 ++ src/id/dos33.a | 91 +++++ src/id/encode44.a | 19 + src/id/encode53.a | 20 + src/id/inspect0.a | 146 +++++++ src/id/jsr8b3.a | 77 ++++ src/id/mecc.a | 230 +++++++++++ src/id/protecteddos.a | 54 +++ src/id/specdelivery.a | 244 ++++++++++++ src/id/trace.a | 156 ++++++++ src/keys.a | 20 + src/lcase.a | 4 + src/lcase.ct | 1 + src/memory.a | 126 ++++++ src/mli.a | 509 ++++++++++++++++++++++++ src/modify.a | 73 ++++ src/passport.a | 767 ++++++++++++++++++++++++++++++++++++ src/patchers/a6bc95.a | 28 ++ src/patchers/bademu.a | 27 ++ src/patchers/bademu2.a | 27 ++ src/patchers/d5d5f7.a | 24 ++ src/patchers/datasoft.a | 22 ++ src/patchers/davidbb03.a | 49 +++ src/patchers/diskvol.a | 46 +++ src/patchers/fbff.a | 1 + src/patchers/jmpae8e.a | 25 ++ src/patchers/jmpb400.a | 26 ++ src/patchers/jmpb4bb.a | 39 ++ src/patchers/jmpb4bbhi.a | 24 ++ src/patchers/jmpb660.a | 26 ++ src/patchers/jmpb720.a | 24 ++ src/patchers/jmpbbfe.a | 21 + src/patchers/jmpbcf0.a | 25 ++ src/patchers/jmpbeb1.a | 46 +++ src/patchers/jmpbeca.a | 27 ++ src/patchers/jmpbeca2.a | 28 ++ src/patchers/jsrbb03.a | 37 ++ src/patchers/meccm7.a | 126 ++++++ src/patchers/meccm8.a | 130 ++++++ src/patchers/nibtable.a | 136 +++++++ src/patchers/prodosmecc.a | 146 +++++++ src/patchers/prodosrwts.a | 38 ++ src/patchers/protecteddos.a | 223 +++++++++++ src/patchers/rol1e.a | 35 ++ src/patchers/runhello.a | 52 +++ src/patchers/rwts.a | 664 +++++++++++++++++++++++++++++++ src/patchers/rwtsswap.a | 38 ++ src/patchers/rwtsswap2.a | 38 ++ src/patchers/rwtsswapmecc.a | 17 + src/patchers/sierra.a | 1 + src/patchers/sunburst.a | 71 ++++ src/patchers/thunder.a | 57 +++ src/patchers/universale7.a | 67 ++++ src/prefs.a | 115 ++++++ src/print.a | 175 ++++++++ src/rwts.a | 66 ++++ src/sectormap.a | 78 ++++ src/slots.a | 74 ++++ src/strings/en.a | 394 ++++++++++++++++++ src/strings/fi.a | 349 ++++++++++++++++ src/strings/fr.a | 343 ++++++++++++++++ src/strings/it.a | 351 +++++++++++++++++ src/universalrwts.a | 292 ++++++++++++++ 72 files changed, 7875 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 bin/AppleCommander.jar create mode 100644 bin/V2Make.scpt create mode 100755 res/readme.txt create mode 100644 res/work.po create mode 100755 src/analyze.a create mode 100755 src/applyglobals.a create mode 100755 src/compare.a create mode 100755 src/id/datasoft.a create mode 100755 src/id/dos33.a create mode 100755 src/id/encode44.a create mode 100755 src/id/encode53.a create mode 100755 src/id/inspect0.a create mode 100755 src/id/jsr8b3.a create mode 100755 src/id/mecc.a create mode 100755 src/id/protecteddos.a create mode 100755 src/id/specdelivery.a create mode 100755 src/id/trace.a create mode 100755 src/keys.a create mode 100755 src/lcase.a create mode 100755 src/lcase.ct create mode 100755 src/memory.a create mode 100755 src/mli.a create mode 100755 src/modify.a create mode 100755 src/passport.a create mode 100755 src/patchers/a6bc95.a create mode 100755 src/patchers/bademu.a create mode 100755 src/patchers/bademu2.a create mode 100755 src/patchers/d5d5f7.a create mode 100755 src/patchers/datasoft.a create mode 100755 src/patchers/davidbb03.a create mode 100755 src/patchers/diskvol.a create mode 100755 src/patchers/fbff.a create mode 100755 src/patchers/jmpae8e.a create mode 100755 src/patchers/jmpb400.a create mode 100755 src/patchers/jmpb4bb.a create mode 100755 src/patchers/jmpb4bbhi.a create mode 100755 src/patchers/jmpb660.a create mode 100755 src/patchers/jmpb720.a create mode 100755 src/patchers/jmpbbfe.a create mode 100755 src/patchers/jmpbcf0.a create mode 100755 src/patchers/jmpbeb1.a create mode 100755 src/patchers/jmpbeca.a create mode 100755 src/patchers/jmpbeca2.a create mode 100755 src/patchers/jsrbb03.a create mode 100755 src/patchers/meccm7.a create mode 100755 src/patchers/meccm8.a create mode 100755 src/patchers/nibtable.a create mode 100755 src/patchers/prodosmecc.a create mode 100755 src/patchers/prodosrwts.a create mode 100755 src/patchers/protecteddos.a create mode 100755 src/patchers/rol1e.a create mode 100755 src/patchers/runhello.a create mode 100755 src/patchers/rwts.a create mode 100755 src/patchers/rwtsswap.a create mode 100755 src/patchers/rwtsswap2.a create mode 100755 src/patchers/rwtsswapmecc.a create mode 100755 src/patchers/sierra.a create mode 100755 src/patchers/sunburst.a create mode 100755 src/patchers/thunder.a create mode 100755 src/patchers/universale7.a create mode 100755 src/prefs.a create mode 100755 src/print.a create mode 100755 src/rwts.a create mode 100755 src/sectormap.a create mode 100755 src/slots.a create mode 100755 src/strings/en.a create mode 100755 src/strings/fi.a create mode 100755 src/strings/fr.a create mode 100755 src/strings/it.a create mode 100755 src/universalrwts.a diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9955f60 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +/build/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3bc20e1 --- /dev/null +++ b/Makefile @@ -0,0 +1,32 @@ +# +# Passport Makefile +# assembles source code, optionally builds a disk image and mounts it +# +# original by Quinn Dunki on 2014-08-15 +# One Girl, One Laptop Productions +# http://www.quinndunki.com/blondihacks +# +# adapted by 4am on 2017-01-07 +# + +# third-party tools required to build +# https://sourceforge.net/projects/acme-crossass/ +ACME=/usr/local/bin/acme +# https://sourceforge.net/projects/applecommander/ +AC=bin/AppleCommander.jar + +BUILDDISK=build/passport.po + +asm: + mkdir -p build + cd src && $(ACME) passport.a && cd - + cp res/work.po $(BUILDDISK) + java -jar $(AC) -p $(BUILDDISK) "PASSPORT.SYSTEM" sys 0x2000 < build/PASSPORT.SYSTEM + +clean: + rm -rf build/ + +mount: + osascript bin/V2Make.scpt "`pwd`" $(BUILDDISK) + +all: clean asm mount diff --git a/bin/AppleCommander.jar b/bin/AppleCommander.jar new file mode 100644 index 0000000000000000000000000000000000000000..f74e7cb154386ed8690ac1009c97d272115e6c13 GIT binary patch literal 420406 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 y%`(g-b{uhe#21=sBMuj# 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

0O9AR@bSm}ucVJb1fa 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

eQQAE7KL1scKE?audtQ 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 VVZ8@#wV9+gsV55BQ!7Al{{wd8SSSDh literal 0 HcmV?d00001 diff --git a/bin/V2Make.scpt b/bin/V2Make.scpt new file mode 100644 index 0000000000000000000000000000000000000000..2e697cba4ba0d33ff7a60b7bbaffeff3143c09bf GIT binary patch literal 4414 zcmb_fX?RrC8Gi506v7?uzyyH^Di;;SfHMIt+NjV(BBI1WlHh{doh8gAvoUj%h)do6 z^?CX{{_c-H{OjequIaocRf+xFk&_&haDv#Z)v~d|*0z zD{-n9`h$grx7^EB%VockKd}^43SP~x`{hDds5d&id{8gs!fJh+$7#-l#R})h8woVS zx)alqn1&iWgzzzl0vhZuXUn0AGQU15$m2wm5U^L^OpWjAY-Nr@wmSE8@O_>u>Ky0z zw#wc%zKeE8dqNb+!R)g!g%}*fU6OJ6exO{gB|oTq)3F4L4Cr!os1i23u;_()`8|?ovE+M&nIwbbh^k?k+SQBMuXNleM5I&|AzBc zMmSp(=d2`VVI5CZL`5%Va zF3C93?=S~*E%{E7&M`={g`7XsD0t;)0iu9le>0CwH znnbHXn&r7UVjMCEJQ`oko9EjB^R{I4y3x2m$W=Za#>1u9M5<1dqol@xY|JMA!!ge# z8Atjp=Hm!UzE!02Bcy6uFRW6dMZcc+^7UZ2;Ee=f(OX}y_7+O2x8Y6#_`95iEiIEVw;IF=X|;{=yvT)wZ+h9#DKrSi2I zhbe|(ts|Wt85v1!9SSOy{7_{uNHH^}v-^dOq*(InJwA>|WT06S)Gn^!!I`SD>Q+{DMtopTDWvEmFuIKWb(Z-L9lVDYKJ5Tx~ zE}x*e9WlSYd6$-Q!jg~T^3enkE>0brgM1j557F8VCnUl` zsO1PwU+0E3-F@pj`_8uM&^CkM441^9n@apEu}XA270rpzpTEtysij0uw8%)T@rKjVyuvV;v!t^@DUxow$k{~(L>>tq01$9mRerS zpxcB?T$0i864sx~ToU7)%pme=TwXnd1G=~@0($~;%H;`Mu3)c7;tE1bySOA`v;<4# zmAJezsjp1I#f*)Az?YXDK4K1W({KDpMJX(oza#6AjHxIao!ZXe&n0LWo|;e6X~tDF zMP61FUC729>XH~0or2TlZ`dp^IefIH8rvGxe4*rzSx3F5QqI<078et;40IHmnedud z(KGa8%S+05fGq%HJBS#cfiBr8FUk%_c8==4i{)&Lv6_8jzM8Y-MP;!=S!`h&M9C$w zFCgbLak2arWs8JCT!!7vmuqPM3aT!NiRU%+vl_O#B*uN#;e7cE>JCZF>E&(KWmPcH zGgvP#G|3BKJa2`y%rILg+a1}?rF|@2E)%j@dOoj3jRXq})fgrb^6JyYIla;SsCe4U z;Wmckd6x;^=yMaY@*IZcS%;6v<@&bO&YUQA zo>!?el*$5cP)Eq0vCScgIjT38mnQ>t9_Gt4P4WyZTXyM=HPQP7@0(ZgXZ^aFg8rXB z8pNjGpoK0$f$G(M|*=Kc9OvHawPshX^9XJ4H zf_J#Y!LApq#CnyfQR6Z4>p=_VPvn$7fDv!*R+`CJjl4%4zn$%BdD_L*`)mGF@}xXr z$y1tspH%XME`M4}fep-<$znf69>+Df7QeuC@|eW|g}jEv_EC969+rn3d6XVFS=o=v zBZo+1ad~*s++@i^isD*Kohg4}CVEi*$m_%n@_@tPp$>d-LfN#riEyu{VE4!6{s}WP zaRX+{eR8kdgRA6jxl8_lez_Bu%kPns-=QdX$nA2Q{FdQ4BDXqnA45W~6>+)ukP_W9 zsYH(4P2iJNOGoY+4LXNVqJ--Z(B!quA=D^kI|Mv=;c?^+&Q6wd9l3pU@4*tMBe(Gk z%~}ps5v4juZXMlmu$+^W2T-_W_h7pF#mp_cOX=>NnYUZe+qPvoVwtu*gXtD@x9xp5 z&2e+)v3-jkU-W+4-Vf3x{*%sp$d`$XE}fB?i#f$MA2XNwNS4w*TAJq-FOrWlK4x+L zu>SrT3A!Zn*^Nou$eT=>8C(Bz>Yw~H)42ZiA7oFj#?fUs`ty?J)uEFWy_e4nYk41w zXD5q554sb$P8r^m#7(>dWX-+0#Oju2(D`KB;8Sn^Aw!WpOCAG!s)o@x{o7r;ZvP*- Ct{E!; literal 0 HcmV?d00001 diff --git a/res/readme.txt b/res/readme.txt new file mode 100755 index 0000000..7623603 --- /dev/null +++ b/res/readme.txt @@ -0,0 +1 @@ +----------------Passport--------------- A 4am hack 2016-12-30 --------------------------------------- Passport is a cracker's tool that can remove several forms of copy protection from Apple II 5.25-inch floppy disks. Minimum system requirements: - Apple //e, //c, IIgs, or ][+ with 64K - Two 5.25-inch disk drives(*) (*) fully compatible with floppy drive emulators like CFFA3000 and FloppyEMU. Some fun facts about copy protection: 1. Many companies, especially smaller ones, outsourced their copy protection. I have seen byte-for byte identical copy protection on disks from 7 different companies! 2. Even companies that wrote their own copy protection would try to re-use it on multiple disks to get the most "bang for the buck." 3. Not everything has been cracked! Because there was so much piracy in the 1980s, some people assume that everything ever published has been cracked and ultimately preserved in an emulator-friendly format. In reality, there are hundreds of disks that have never been cracked. Thirty years later, these programs are still trapped on physical media, literally rotting away. ~ Using Passport is simple. After running the program, put an original disk in slot 6, drive 1 and a blank formatted disk in any other drive. If necessary, press "S" to cycle through your drives. Then press "C" to start the cracking. If all goes well, Passport will read your original disk and write a copy in a standard format, then remove any protection checks from the copy. The copy will boot and run just as well as the original disk, but it will be copyable with COPYA or any full-disk copy program. If all does not go well, Passport will tell you where it all went wrong. In any case, Passport will NEVER write to or alter your original disk in any way. And neither should you! Don't reduce the number of original disks in the world; they aren't making any more of them. ~ Passport targets common protection schemes that were reused by multiple companies. These types of protection were common on educational software, not blockbuster arcade games. Here is a sampling of companies whose disks Passport may be able to crack: - Apple "Special Delivery" e.g. Ernie's Quiz, Instant Zoo - MECC e.g. Word Munchers, Clock Works - Sunburst Communications e.g. M-ss-ng L-nks, The Incredible Laboratory - The Learning Company e.g. Bumble Games, Gertrude's Secrets - Scholastic e.g. Math Shop, Microzine - Edu-Ware e.g. Decimals, Algebra 2 - Hartley Courseware e.g. Chariots, Cougars, and Kings; Tim and the Cat and the Big Red Hat - Hayden e.g. SAT Score Improvement System (series) - Developmental Learning Materials e.g. Curious George in Outer Space, Alien Addition - DesignWare e.g. Spellicopter, Crypto Cube - Mindscape e.g. The Halley Project, Paperboy - Focus Media e.g. The Time Tunnel (series), Travels with Za-Zoom - MindPlay e.g. Fraction-oids, Dyno-Quest - Spinnaker Software (limited) e.g. Snooper Troops (series), KidWriter - Springboard Software (limited) e.g. Early Games for Young Children, Puzzle Master, Mask Parade - Reader's Digest e.g. Key Lingo, Cogito - McCarthy-McCormack e.g. Vowel Corral, Library Magic - Troll Associates e.g. Dino Dig, Make A Face - Abracadata e.g. Design Your Own Home (series) - Methods & Solutions e.g. Fantasy Land, Behind The Wheel - Mindplay e.g. Math Magic, Ace Detective - Quest Learning Systems e.g. Bingo Bugglebee Presents Home Alone, Outdoor Safety - HRM Software e.g. Gene Machine, Heredity Dog - Pelican Software e.g. Dino Days, Graphics Converter - Unicorn Software e.g. Magical Myths, Ten Little Robots - Grolier Publishing e.g. NoteCard Maker, EduCalc - Random House e.g. Snoopy to the Rescue, Charlie Brown's ABCs - Josten Learning Systems e.g. Building Reading Skills, Explorations in Science - Heartsoft e.g. Electric Chalkboard, Tommy the Time-Telling Turtle - Ellen Nelson Learning Library e.g. Science (series), House-a-fire! - Millennium Group e.g. The Brain Game, Concentration - Media Basics e.g. Return to Reading (series) - Polarware e.g. The Electric Crayon (series), The Spy's Adventures (series) - Queue e.g. Force and Motion, Practical Grammar - Atari e.g. Defender, Gremlins - Epyx (limited) e.g. Summer Games, Deathsword - Data East (limited) e.g. Ikari Warriors, Batman - Sierra On-Line (very limited) e.g. BC's Quest for Tires, Sammy Lightfoot - Broderbund (very limited) e.g. The Playroom, Where in Time Is Carmen Sandiego ~ Passport is open source and is distributed under the MIT license. Passport Copyright (c) 2016 by 4am Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ~ 2016-12-30 - add support for DOS 3.3P e.g. Ernie's Quiz, Instant Zoo - improve support for disks created with MECC Database - faster detection of 4-and-4 encoding and 5-and-3 encoding (neither is supported) - various speed improvements 2016-09-02 - add support for Protected.DOS e.g. Moebius, Math Blaster - add support for "JMP $B660" RWTS e.g. Verb Viper, Master Match - add support for Datasoft encrypted bootloader e.g. Tomahawk, Video Title Shop - fix bug in boot sector detection that erroneously claimed some disks were unreadable - add informational messages about some RWTS variants (LSR $6A, BCS $08) - refactor code in /id/ directory 2016-07-12 - initial release ------------------EOF------------------ \ No newline at end of file diff --git a/res/work.po b/res/work.po new file mode 100644 index 0000000000000000000000000000000000000000..4a37aad6e1d2f1287cd7ab9fc650d5138ecde726 GIT binary patch literal 143360 zcmeI4dwf$x+W6<3leS6P(zLW1uAb$Z0BY5Jf14M%RD_b2P_E)-bvLMJiZ}KSukLHr zhRxQVn(pe_=mujX*b{r|i3(a@V#0NkE|-CDX|+H>C@s)(fO4lNzh_cl-QD+n|9C&2 zeSe?*eWsLT&di*dXTI~yb7r2IQ^q25w!7b7d4HVKR+*QT!jCTMEb%2Pt)^JWiYLkg zL{323j>&-%tN25!-C5+c`kn|`J#Xq_(UbUsKYjf$U3iqvb5<7~uk*gFZ#MLZI%kQv z(ud-g-L_sQzGoGaR*~@|+lpTPp=-XO zO>=dg#x$4VqHVS=7!3OM?%1$#+ZNxRoxW{5H*EId-8(n$O!y!ru)xfXOB){yS471L z{@iBV*TvwAYsT9H#paB-#>{E;rg6^6ftjU&;-#gf&inMvd4UpI4E zOzxO0a}ZqbirNE3dglUY>cYSR=UmINc}l*l=~&=qw=S^o&*=hljrzE2uIYYh2PKcRKfhV#dz(7H{h zmCI+lj(7I@`txr(-L0JOJ$AOi7w`GDvB4K=`r=cm>C+9TPWg6|Z0CHtkDWVq_QJ8F zjk}MXI{oe8-mcR6f#E&g%SSW z#z_5v6{G#X=oi%`t`am6@tTkpkzR|!um29;NGK-GV#9>TqlOGoE2t{g_$R0Gi#-Cu z{EE@?R;eyxE-Wd;xA>D<$8tdztzj5J8?~AQJv4KI^h&frO*STzkhvX;NFD@P01Cs@ zB$L%@60-IOL`K+fNHUBRk}7@*?v*?dvlg?;<3eUsO4}5-;E__srnnIgl`=QQ8C)P` zZ36E~1H1%ZigEMCMrA-1p$|9^aGY_wlCMSTgPNU?5iV`G=OVIJc?}LM#?tn71o@i%qVAs3Rb*Rc!h<8 ztr;Wbdx9(TeJps53WV&D)dNP>(VpK2TsRXXE+q{Whc( zKncJ#GpuPT?`a^enL^c<*>rJ)XI*;gV)vF^d*i#eBz)^W`!j2Qg=H#Ou79jCNZZP| zM=}a$K;@$uJz`NlVk%HE+A})Ipk0VVk1)spUq8Bj`J5Pc67G6?e$+y85X?$k`%Uyi2jM;kVv{-}yOlhCrwgR^`ThE;HiKC#zvwWKYvbvir;zIUzH;h9oYhaZ(9y7+tY z1JG3ID;>1Dzrjj+e34RwM_q6BQ0ac1qL)xK{x0SOLlh{0Pmd_nl0WMj*6PHumhQE> z(&yIdf=#tL0tI}Ag_*wLO+V3jq>Pj%fWOX{xO}enShr6(d;0jU14K0p)DJ(*jfHh%qBXH+%l3z_Je+*Q_HYt@Q4u;B zkzS9&uN~ZXS;Q7ul=1Bwl(Fqt87Wq@rz=CmqV^Lwr*Zhzc1al^;`S=cTI?cQn~#S% zvtYD~K`;@s5yo9*2#XJp&>@je%d%BKiH3iH0h$&SI2e#w;JpRkYP<&z7=W_$+ff!y z+m5uDv&f85&_o3`N{pqh(3us;v~;C8Gi7$G-e{K!qe2!L(0rxJ-+2|x9{*dl1xA%W zBdp`SUuc>Q7yZM+xx80OBf&A@J9+Qi3=$j|Uc`I9Cc%{HOcN`Hnxjyjoq)OV<3}s= zR~D=^G}qh}5eEp%$A}x9xqR64{E9K+pHdVst#o!Qg6@E2_*O*N1q0OZ19m~hSZ^QC2o#A^Tp1ULA zyCa@^BF#qr)v;T11G(l5{3d_Q)JTM|bT1#Hj4(cTS46lg(&@`?x;tVe+3$`xymv=B zUDeCSoLWA{-RVP+9TKeOmuDA7^q6(TnhmERu1?993L}uWxiHVAXiF+m!3=VDv*B_e zOVNNmwA&g-r{zKJPKegq-9PrhSZVDYiwC=0hVy~kt_{Mt&Caf4^$cM-{2i8WDQVfkr+~Ul&T^>XF zpKMb&^XyV`CjkTOEI19|^&0IQdVUN_A3k7c)?j_UCXY30ZBRL?G^BKDlUZKmONI>n zGD9Pdnq2&6e7sK7uuWe?<9tE_d_Qga4uujKNZ%#M0T(BaH=AAzx4 zR~nRdnY^d>N#B~h^ZKNtCa=8@j9JfJ5u#M3U{N()FgGD=)AFEm#17~e@f!4q?LIS% z8Ch#djSt3XUume!O({T{{L>()hclmi6p)Ww$j7aPk5ws8kWik}7&9)p#W@(l1D%7G z-0B?CtUOm!KOPbVaXh)%8ypXVxKSig-cP<0{*r|G%5jbL1>|;DD6clZ4qw_@uyx?pTMdfchXS`M zIV3iQFLxAlKrB8JxJA*WqBh@xFWMXG$GbvCe$;rWemq|^-hCQwg6jq2mE1UoGkh#0 zi5y8eZg)7=7*`JxlNS3L!|GfSS?nPr5I7JV@6I^z$#{1<>CiKFTg_a(qqH;_c8qrwYD!D-Wiw~jnFdYLo3bZmjvF+Ue8cr$eQU?% zPSuYamNkx~j~fR6`_pfH->{m0|E*nayt=XQb*r@(pfmRyP8n!yhog z54d`gWS;QI*Zo=itcfID`6$ew`Y=M~Bs!^k6ulv%!^ZMV^hP~8T=&K&=x{kgZv@fd zk3O%8B>=WYUHF(v}@+Od)TF(DEoYyThB_}4eJ_%qi|@>V9B4VU~(xSR973c-tk zY09{`MjlqeIj1Sw)id$HKyhIX2+_@ntkA<*zOdzQ631dz91r`aA~I^N{>*S?@~ufw zj`V7Bg53^TrPq>>*I}~5qZssUQthNcG#1>USb`;q8b3Ust(5C*MulK9AVAh<)0ATUNVm?;-TT!TqR zF1I}YZlq>aq!G0Pm|U8I&!}(uV!vseP#XzM7JeTIOc8z;aX=MbOPU?s zcJCw0-(H(In}5$d`;UM0*yD@sAjpwISk(%3`^`IHVM_+Gh>#V2{9HB}qepnDZa<_r z9Hb;D(h+|Wo&`@?ELZKQv}AVaeGku?F@OHUV`i7k zn(<#UuYNC5(;E@aM_P=2)$!J}U;p@kchy&&xVI)J;$uQZ zVxb}{{CD2xa2EMc`0YMr_^u-SWcXKodc$COL}`49qBnDV??Ky&gBk?7#ivIgSX$0F zr}3X2gvBD1#TT^0V0tUkkQ0eAb=u`+??xO!$s4gse~gglWaFwx!+UVm8?pH!qKVf< zL4NL8t;w#aDj>}=13 z>GWu*a{-h@Kq%+qY4RC;P(+Z~`*Oq%qtg|s`E8`SD)ME`>k(GMOvr3@R6-00b7Dd(PcN)d%~ONn&-)0uFZzI-$O|8;?lgXWyL{__H6-+h!*VtWanQ&7nS=1Hi`WS) zXG%p%$W*kZQLRDyLssRX_Au-?H7V-O@q4acdGm^ zA(&Nn#^QG>Me)UM*8F2g?Fp(ljeKOq?@+#u7rL|J6WzPx_qjFkAG(_@Vi7E(CInT3 z28wC!gd3ETHNR7XQc#T>woz7btx;-(!lbt&%Af4e6t}(s?Z-C$RMKeY z%Z@>bMRL-c+ThRN*bP3GIjC zW1aYd(Js!i*nOyaJ2bM$Sw=qQh(*FSmB06ze9VWSu%MzTNtUyRW>&C9 zyc1vO#HVB8owa4g6hq~Qah?32wF?oOBdk>G9j&MZ-`AAc!e6-Bh*f3m%2}PAD@&S~ z7H~RAJ5^_?(+aBI+RC&jhALw@Z#X0BL5svp_z0s`fZ|j^K;%I!;{6sozvc`Gx=rnu z)vQ1%N``0vSuxkMJtgq%4ck;#Z5h5QG^nt!!NYl7XO%U)UWL5;>?2ZxYAiQEnj_e3 zI1T`ZbjtVok;wAilZ{T*ol_sqZN=$c)ao^~*2z2(A`PMnv-sLhIahpeLcLn3hn##{ zr+9~ZxRs9{al~rN;tyg&tWi{Q zy&zc46?vXit8$Biu4o26TZJ>hJh>y@XH}StkambLJr*&j@h})Gpq)AO#^)N;AgGUL zq1x=i7l<7beoB;1c#?d2o>!yk_=0q~Pgtf(SNepXsPG_sT9xLg!U|QIs|x?75;bpE z{>48$yioOO+MueELP668>-$T6-u$-k{Bg*v_{(`hn`l*`z zp$g)Yp#{1;Pi>q}kji`cM~^lXtFESnYOU1;Q>!`ZmSUU%;%}L$7)Yg`LR912ROWgg z(_~dWquao*Bh65S5vlH5C~4ZvN{ON@mdtI!0#zE!;^Pz8}E+t2w% z0duGaBqBu*_Kgl%V_S-y#W+1=g$mb(tj?MI`zPHEc5yyv5NgY2+HfzapgrD>PxfnI z76=T-;})uQAcvhl-XTAZE&V7!8E#7@xuUn?3r%PGAeSqegU^c?I#puZvbi>_^Rd-S zRaf=XYRaw&Z>Sa+0#0K zPG2rGxi}`wffhMu3c&gOlk#oS=r*WL8q+2Ss+8a6N0xDJrc;lvw5KT=u@o%J4?Aq{ z9rNqML)*MlQyr{niz{-bUlShF=AEd5Z_+N!R4v^#YB>TS0>vOyU?#`}Zl{^5P;-4G zIj!Qb++F;^Wbo9VCZ_ep?T?JDB!{GoJZ$l?MPe>pGECN1jwC|`G+7>Md2*7JKKYVXNw` zRzVMr0h{Uu)!xuRY`g`ATs=-FH~*eo6I-q3F~CaU zT#&OBWb5t(Ti;4d))_|->@b)%$PP=KnXtqumL#Hd)KSPD)Z#_ z8`ig3Wc`Tf{sz9XQ(h0n%b$~5!*@r_3f$0aI1g9QIA4-HPqsrvX&|zZSYWJ)K``}n z`L@n5L_|T5%Ah3?xL3)7G?*Zz?7dNZ!0tyt4#r2k-JJoxVe%LUJFaOXL@xAO@H0mH z4cXu+;4byumMWmrWw^}WdrY3ltDW-q#hm(Vry6Y1fWd4fPTWp&4uk*!JXl;!I4d=CD##KjV@b((FY9$g5Y~Aiw9q#9YW>~7|$jwz{ZguI6|H2+mxM$XrGa13ASsZ)F2hO2LI7P)#`<rFY3N|04`@Y0e4$!;?V=M7o(OaP#B+@IT#IymBVFMQqb9cg_Is$aI*Y zH`fHnl*f7h&9x4w=StPbhVxo#i#lV`G<+T;n+-aof%wi&3(N-o2)%TmpaooN9nG$~ z5(b}aSP2YTU_bRmReBFh@rxwn&WW=yP4cO&`7PjVpVZxy(W1b~WOtVB`EK9J>k~(a z6spuFZHu``N#iH?$mOK4{Og7JQiZvPLrH@htH9R(3d%3d_Nn->rmPlcaZ`4S?e1=J zcLm%%w?`fixxk4y8mcYTiWw&SBmVL3W;oe>tXs~3k^{w_0WE==_=_ZS zeaPBTvdfBfL7cv|MC9;jINJ@+sjVgarfzu;$pTd`y^*abh$oB8))FXkkhaC6Z7D6~ z2Y0*wmDhHIg+cW&LjyNuN$P8B3D}1E+ENlTEA_Q?mYtNowFE}@r`@s%1c8ELF+bas z*W!Iu4X;u?c`fkFP>g|6rwuALGfQSUXWI!IXzV4Z&>qi*1z9Pql0Xql;V}n2u>C#N zJ-~-}e>ZF~*T9UnupZozaFqv-F)*p`kQ3`MIIgY{ZQzQ8!|nc3KG7{}Jq7|Lx5e(a z_FrFzWG5QKXZFY!QtUvPCWwqx%*rN92*1@itqDOdz#;+b;s_R+S+F{QHH34fcKKT5 zoW7QE&LASERu%r_4Q1;D&HIkR!QikR>Gqe322w0c_|J69-xDJ^9}@glall_ZrQeXL_%w^%59S}#EC$;pVtSAi6P~R?gsT}QvkO%+ zW`mxL7ML-bx%O<#ni-F-1vVDaq}Ns4*bWnZhzCK2|NDHVl`1;0+Nl$(Y>@y?JDl$djFQ0S|wGtAUElN7Cxdy?MXb!Mt zpa4g~8mhxv;mM(^@aDFXjHtzzM!W}L25MB8u?fFX>l>kA9P}$B;_NDHs)kaMkbsBR z>C$1B6ygueRxO{yzs z>0YJ6YE5`wZMvnU`#n|It_prN8`f_I(Pk4AX`7n89jdpzsgTuYHy=6!Lz%NJIs=W9 z5Aq)={9a|*Vfl>YS4)+X!WxzT{dsc{J}d;(K$){NFb7`KfSgZs%<7o6!>__`&wJz- z>w0`D46hQVbjKPMXYL2rK=7Y9XUXZiJo*sLF@h z<$+nSGnDezxL291P=>?Gzo`ITU%CZE?|xscEs9Co)owooY?q0}vINSY&CW8|p`6on zTZ>WATZGkWlfFgxKy6s1l7ZLwzG|<+T4<6o9|Ud=*=oz=yQ-8y%`to~FuP+8k)H$k zJ7&+Ar5yfZ?wuqnJde@?5P>?(|I1AiW}c~Dr7mMSYu;D2 z#=0eC&NA4ym}9a-)n(A2IUuAhbeK@Py`S&gbI>TThBgZx%unhDivvbEY-p)1h53e| z1?)BKhQqdrp!hVfcuRFBS;eLLl614K1^fZ*O=kj$%78(SjKuD&Qo;26dYkHfQLQRr z6%F_xI>RrjtzhcYu?DQsSv#M9HvF>cDQF45N-PxQgy?RF`qvY^EIOo2_$_omA=tOaC%Xmi>?o=7 zAySZ|)=Ek+K&|Brn7}4&i%v@(Dr6}>m`G}Xt0rTM5t5B9O@ms>k!KJn4euG_ggKE-9H3iqpK4BzChlH=sGh){tD9{M+Y#0Ri0-1x|bRUSY90bop!+dr79GFmU zn+v|8lxyStli(uY7aSvvGPZyZ1<(o(SOJisQ?7Qx+(if7=LNqDKGl@gLfr8J%&Lf+ zCL5+z3sVk}!Q}R#E#{X!LtDVj0aHwzMy8lB-}fJ8D8g8 zC4PGS;c%Rc!6Q&wYVMI5y)bGo_%wbn5?~PE;-a60A%9>M_-L`Q*>LXqL=ch-TAE!^ zRz7d*y-Yf4)tZzGaZTw;GPtf!X2^ZF_8Sj~^rLWUW)p*U;$HslE*J{J7i7*Td=66_ zp@}>QN`-am^Pj8I7ixBsiib&`tClVX(nVIz-my+KXraH>ksBa8;gHoLgjARa3ZD=K z`%D$qs(kttt<}3%)Z|CdL(Fy|=Z1-Sz6phyh3Nw0MyPKP)QH zeIR1Wnt|p*`{5IoYGB-8-3IZnq!NCvT4Avz{0wHkknw5N0Sh_Mkn8gmD8ZN8RG^w) z4uYc%HUOiXtdKh7(b8Ly68?6W%MjPPFZ-(kSY&_<#4E(fXUs+g9{2D(1oxoA*_=mh zzc>m$PWNQ+Q5*Svm*j!qyN-b)0>4azf_1otOsUAyalcOC|8z+%hm$I>6aj~L1}vB1 z;Q%Kj_@kE~0(_5!sFxsqyhqFK*o>2f!Qza z1)Jw2@rK5nFshs-w#V9iXhNe}$Thqj@uL*?=^&N_^Tmn%{R&Sh@Dp3{?L^E9m=c$f z8G66Zco6aPhf;q2Pf|l#0lCxVX9#HFQ`MgaPw`J-k#hz1g`3o#1kvLi2~{4@2-!m_ zf4ocPV3?EBE(_J|#6h~FMBQOkL3_bX8g#&NFV2t!sq~q;BEJ=utI}F^ML{d9R$;a| zwAJoj2aY%^Sv^k!QDD6Y4p-uYl7h_lzJ_~*91D-wJ^ zYukK9tPsA0XZlt7#|>Yq+t#VdL;ehKQ-I585I8Ax;HmI#R>{#PNW&d5K(k&YF@}q- z>MvD)M$Lby;q}mlVVhOui}2>_4awslzba=FkE^!vKOl2!;UDb{>(m(k0si9Q2Y z3Osw-oW-P`BT!EYfjiUA7haWj6N$Dre6Gg8DFXLwB=>~j`aAbD-n_?PC#~rqH=4(P58)OH0sz3@@%7==Aa13Z#e7!uyIm-o_U5fvu6MmZc3D^Ghp$Ik|orTZc zh#2%x#Pd)DV$PC|MlE_zW=k+I%liVXC&Wb-docWbMA)f@Ux)};wZnc=y~0Cpy%6y} zAAzl<8^x3)p=2oN6jt$R@Tc`VjjUC$2m_@F%!#w^P~&zL=7U{~%rqO9lvOR66Ks#j z@7@%v_UIgNwZQ}yHmJyS9>XVGa=ds|=HbdYhwNOH@p;#L$j`w94wl@PVZAX2rmo-& zPMwv8BV!V5VplT30P(qu4f zhMr{@j?-uuhGmm1%WgYz=8}AI#l?b)R}c5KKXCZ@9`2(5^w6`n_O9%0JGu4bs`F_bsyA}JjHZ2@X9P); z;FiVJ>$#c@+<*<7w1JC9WPLmx7T(pIZ5kKkkFi?0tSY`!*60j4U3e`@ej#U+vo=OJ za$-MAh{7=SO@<2FJ^jG(# z!O`L+X_PbpPj#p<2R9tZ&X=d3q#O_FWci97z7!3Ks?9&wI6I<{4sZ0*Ib(u4#sHXx$g9? z+)l$qR3Bwqx|aR*yKCyX`S;CEsWyjR?l%k$0|##{*iOR@;`9^~IF@B3N4OC9 zg1*`pu8E#F!Q*}M7+;$HjztM*mEO(jQm0Ino}*Ppp~3*CpJ8ca$d#z2ev%OA~ma z^hm<0FE^x;@qmUG65Ae0C^;myPR}RyIG|W}OnN@C{lNtOQ(#)DJCE;6$YBv-i|`N> z7>2(a!K1zI9&tSGhD#v|tse(}6T)^8>xCB*{ODc$nLS}>!6OOjg@pIv1b@#iA6Lg$ z?SdVdvPTlIC-T$8cBs?_`ua=)Y8HNyuyp@4q5MG3C`tA_l5nS$t2-V^Y=0)<=A>s5 zaEgJgxA4E&)%3FjY3xrDMkuW5C34a8Oah1D+X%&wKaDYk{Ar9eQ|w5SOlq@|hI}K~ zrD!ral!s0pWtvd<{bbTIsc5>@mYlorp-1gcIuLItJQzGlbl}d5Q81~PIW4E&$yMy7_ogBx)bAZ{$B4$5>m{txk zUn7?JhGm&Hc$we;$1(>I!yE$Je~e+64vt}tBaZ1}IpzezF()~WIfW3{%_6RcK^*8e zcNVeSIhN&m8J0WGvD^j3a2HvIy9|$yD;&dJMI3jH<+wh0ny4Jd{q1SK{|&><6q-iy z!-owWx@^Lj5x0>*>QABcypRCD+_D6$9C44`cdh!FL<~;-Jd;osrT%0|d@nwIqCXVG zXMJ3M@DKR-a!|x)6RFE_ppmJ-?aw4U&n0F*n{XMvt;YrZc@N^On+3qK+hVWMRSS>o z5q`Eu`0XCSyGQtBPhk4$8N$bVs^vYFu7xt=65ifZT?gR@NqE_w>YwcK@h;^Dsq#wp z;@+F(oxL8CVACAVh&d-Vo`OHK5=Of`i+0bL7{fijAldu$AVVtQF|_NeMY|tEyTN5( zHDB`uzZ=W!hHQ|Kii5-kl6&Fq$5;}diiAY-HHgJoFoen9bBP}`67P-gf!gVI7{4%V z?Q5pM@x1CNuk5ip4pc{BSz~emSZn`mC$2STj0-yKmVOIh;B1HXN+{u+2*iF^5uy<(7jNbphTTZCa3F7a@3cQDNDUNglDW~4gm!Y2b0edu9i zFkd6_etUm>6KPFX;9g~ZV5)LoY2e=e=)j~CG1>Sq%Kh8ixiN^`JoWFR-MeKZXG`~@ z{sM@6YbJlEA|J9kPMm1kyo>MJ8;fdS9}J8e2xd209dHY@%1$~MUK4{8+d|>K>bv$? zx)zbH9lfu5%#HAnebqzv`GO#|nG1&7cUhYjk&t6p6oL)?LEkQGT}d+N@FGysy{o6Y zDyIgf3-k9X14@$hq3N-C)BB}&-m7E=*1h)G4=41>P&lQrEFnFdFfR*&54CNNqQCLX zz+HBD`hZiRA{u@*8m^3nS3>)yfy2lUC|)zOW>G@XHDgWO=!X3Sqy0Z0+AZ*!!9&;I z^Z7k_!-u@#2ygqqYd(j>o!%8+g_q^MRVku(I`P?_7a|+M$J|+Cj`|-AC-cDJw&Ch} zG;l(#36|?Uo(c^F;E+yXgiNP9;|4d=%rDGSu88?gr}GJzx>r^{&cB%#wZVq=fvaSL ztunaM;UBSjadd>t`bM}!-{!@#CiHKxrIM!cyuvl(Q+{^k=(UUAdZHO$=0{xX812g! z->)^Tea2e>bDN_MtPectd@8WS`LsCI3GR;2lZ8WYhR;y@WWAC>ruAga@{57sLN#@m z@BqC%{-9(qz&K_a8MxLeFw@}%=g@a!+?Y|nT9W~G_W z>Wd5b-{8%%t$lg&59>ouDNk2c`uUa4xZRv1-(LGv$G^LvX|BS )xCT|+&OTzWm ze|H(Cz@+6VPdZPgG7nvY7u4#PEOssqhMw|PuyB^)qF(&i`wDE9LiRf40DxJ&IP`0m zk`Xjqs$5)1NZFPc);QvC;U9FupSpTV8QQLQKhW`nuPF5R)+g$f(!k@ZpD51(m3BT} z`GoB?L&>Fa!5Q{a%)y!r_#5E$IOU`G2KoEtR``othr4zv`g)i0J(nW8Fkbyc;Bl;v z=Hv9{!cDeU4DEXPLRXIbnadqoW4Ha-VE(alsUNL=YUNX%b#U0P9-ur8GUUcWPr0@% z#V0Et4?OLB!uFz}xiC@>9sM*u4ChLn_ELq{>STe@kjb9O7m_($Ma;RPTB8AoTb3hu z+tc@PHF@Q;-dH|BsNl+fE_`W-RW5ef1B>A;LdX?+3CZ&VuQ*?;{Eax?pFKew3+fDi zI4j$^5>lIAMKR@`VwZAfeW=p>Ms1~DIS6#FlMaHto4JdrM-|mm4>1`tz;EJsUPQeDLLtE&F}@c5b`XlvvlW zIrJq;|9InuL_Bf*)jt-!!jd-xGm+*>`Zdj`Nnd>9hCPz>pO47@-B_3*8?Qc!aC@rS zne&eDRzG6-skv~BT!)lwV6}BYo;!_y&rosh>P7=}Tl`L(?uQPVnrpdAdTG&(Wa)=_ z!ee>D<9Wi;JV@B}=*@&5(wBC<_K~|J{3`!N8WAmr9OA0KG){?nLLsXErEKL zJd@``$d7WMi1-YoWW?`83K&M~BVXT}`NI#Hi6?)x89(dP({3m{lnAt!>d$$m&)=Q+Y}PvaFmm}puW&P#)SpzBF&vN9;a@B!{G$MEd`v8LdIq-c{WHr}-N~9D)M5G%G{&fCE z_iz4bo;&M$H@UklS1mBEQrbQgrqb{OuUYWq`{w(wdXz)1=?^792~Yx*03|>PPy&PPy&P zPy&PPy&PPy&PPy&PPy&PPy&PPy&PPy&PPy&PPy&PPy&PPy&PPy&P zPy&PPy&PPy&PPy&PPy&PPy&PPy&PPy&PPy&PPy&PPy&PPy&PPy&P sPy&PPy&Inspect1_8b3 + sta $085C + lda #$60 + sta $08CC + lda #$2C + sta $083F + sta $0842 + sta $0845 + pla + plp + jmp $0801 diff --git a/src/id/mecc.a b/src/id/mecc.a new file mode 100755 index 0000000..0e5c5d6 --- /dev/null +++ b/src/id/mecc.a @@ -0,0 +1,230 @@ +;------------------------------- +; IDMECC +; identify MECC custom bootloader +; note: there are several MECC RWTSes that share +; the same bootloader, so further checks will be +; required to distinguish between them +; +; in: track buffer contains T00,S00 +; out: C clear if MECC bootloader was found +; C set if not found +; all other flags clobbered +; all registers clobbered +;------------------------------- +IDMECC + lda #$00 + ldx #$00 + ldy #$17 + jsr compare + !byte 01,$4C,$1A,08,$17,$0F,00,00 + !byte $0D,$0B,09,07,05,03,01,$0E + !byte $0C,$0A,08,06,04,02,$0F + rts + +;------------------------------- +; IDMECCM8 +; identify MECC "M8" bootloader +; +; in: track buffer contains T00,S00 +; out: C clear if MECC "M8" bootloader was found +; C set if not found +; all other flags clobbered +; all registers clobbered +;------------------------------- +IDMECCM8 + lda #$00 + sta gTrack + sta gAddress + lda #$0B + sta gSector + clc + adc #BASEPAGE + sta gAddress+1 + jsr ReadSector + bcc + +mecc_no1 + rts ++ + lda #$0B + ldx #$02 + ldy #$06 + jsr compare ; IF T00,S0B,$02 == + !byte $BD,$8C,$C0,$10,$FB,$C9 + bcs mecc_no1 + lda #$0B + ldx #$09 + ldy #$09 + jsr compare ; AND T00,S0B,$09 == + !byte $D0,$EF,$EA,$BD,$8C,$C0,$10,$FB + !byte $C9 + bcs mecc_no1 + lda #$0B + ldx #$13 + ldy #$0A + jsr compare ; AND T00,S0B,$13 == + !byte $D0,$E5,$A0,03,$BD,$8C,$C0,$10 + !byte $FB,$C9 + bcs mecc_no1 + lda #$0B + ldx #$89 + ldy #$06 + jsr compare ; AND T00,S0B,$89 == + !byte $BD,$8C,$C0,$10,$FB,$C9 + bcs mecc_no1 + lda #$0B + ldx #$90 + ldy #$09 + jsr compare ; AND T00,S0B,$90 == + !byte $D0,$F4,$EA,$BD,$8C,$C0,$10,$FB + !byte $C9 + bcs mecc_no1 + lda #$0B + ldx #$9A + ldy #$09 + jsr compare ; AND T00,S0B,$9A == + !byte $D0,$F2,$EA,$BD,$8C,$C0,$10,$FB + !byte $C9 + rts + +foundmeccm8 +; +; We found an "M8" MECC bootloader. Now we create +; an RWTS that can read the rest of the disk. +; Starting with our built-in RWTS, we modify address +; and data prologues based on the parameters of the +; original disk. +; + lda #s_meccb0 + jsr PrintByID + jsr CopyUniversal + lda #$00 + sta modsrc + lda #$0B + clc + adc #BASEPAGE + sta modsrc+1 + ldy #$08 + lda (modsrc),y + lsr + sta $B956 + ldy #$12 + lda (modsrc),y + sta $B966 + ldy #$1D + lda (modsrc),y + sta $B96F + ldy #$8F + lda (modsrc),y + sta $B8E7 + ldy #$99 + lda (modsrc),y + sta $B8F1 + ldy #$A3 + lda (modsrc),y + sta $B8FC + pla + plp + jmp ADStyle + +;------------------------------- +; IDMECCM7 +; identify MECC "M7" bootloader +; +; in: track buffer contains T00,S00 +; out: C clear if MECC "M7" bootloader was found +; C set if not found +; all other flags clobbered +; all registers clobbered +;------------------------------- +IDMECCM7 + lda #$00 + sta gTrack + sta gAddress + lda #$07 + sta gSector + clc + adc #BASEPAGE + sta gAddress+1 + jsr ReadSector + bcc + +mecc_no2 + rts ++ + lda #$07 + ldx #$7D + ldy #$06 + jsr compare ; IF T00,S07,$7D == + !byte $BD,$8C,$C0,$10,$FB,$C9 + bcs mecc_no2 + lda #$07 + ldx #$84 + ldy #$09 + jsr compare ; AND T00,S07,$84 == + !byte $D0,$F0,$EA,$BD,$8C,$C0,$10,$FB,$C9 + bcs mecc_no2 + lda #$07 + ldx #$8E + ldy #$0A + jsr compare ; and T00,S07,$8E == + !byte $D0,$F2,$A0,03,$BD,$8C,$C0,$10,$FB,$C9 + bcs mecc_no2 + lda #$07 + ldx #$0F + ldy #$06 + jsr compare ; and T00,S07,$0F == + !byte $BD,$8C,$C0,$10,$FB,$49 + bcs mecc_no2 + lda #$07 + ldx #$18 + ldy #$07 + jsr compare ; and T00,S07,$18 == + !byte $EA,$BD,$8C,$C0,$10,$FB,$C9 + bcs mecc_no2 + lda #$07 + ldx #$20 + ldy #$0A + jsr compare ; and T00,S07,$20 == + !byte $D0,$F2,$A0,$56,$BD,$8C,$C0,$10,$FB,$C9 + rts + +foundmeccm7 +; +; We found an "M7" MECC bootloader. Now we create +; an RWTS that can read the rest of the disk. +; Starting with our built-in RWTS, we modify address +; and data prologues based on the parameters of the +; original disk. +; + lda #s_meccm7 + jsr PrintByID + + jsr CopyUniversal + + lda #$00 + sta modsrc + lda #$07 + clc + adc #BASEPAGE + sta modsrc+1 + ldy #$83 + lda (modsrc),y + lsr + sta $B956 + ldy #$8D + lda (modsrc),y + sta $B966 + ldy #$98 + lda (modsrc),y + sta $B96F + ldy #$15 + lda (modsrc),y + sta $B8E7 + ldy #$1F + lda (modsrc),y + sta $B8F1 + ldy #$2A + lda (modsrc),y + sta $B8FC + pla + plp + jmp ADStyle diff --git a/src/id/protecteddos.a b/src/id/protecteddos.a new file mode 100755 index 0000000..ef7cbf3 --- /dev/null +++ b/src/id/protecteddos.a @@ -0,0 +1,54 @@ +;------------------------------- +; ProtectedDOS +; in: $0800..$08FF contains boot0 +; $B600..$BFFF contains boot1 +; out: C clear if "Protected DOS" was found +; C set if "Protected DOS" was not found +; gProtectedDOS is set to TRUE or FALSE +;------------------------------- +ProtectedDOS + lda #$B7 + ldx #$00 + ldy #$1A + jsr CompareMemory + !byte $A0,$1A,$B9,00,$B7,$49,$97,$99 + !byte 00,$B7,$C8,$D0,$F5,$EE,04,$B7 + !byte $EE,09,$B7,$AD,09,$B7,$C9,$C0 + !byte $D0,$E8 + bcs protecteddos_exit + + lda $B706 ; decryption key + sta key+1 + sta gDisplayBytes + lda #s_protdos + jsr PrintByID + +; +; decrypt RWTS in memory +; + lda #$B7 + sta decrypt+2 + sta store+2 + ldy #$1A +decrypt lda $B700,y +key eor #$FF ; set at runtime +store sta $B700,y + iny + bne decrypt + inc decrypt+2 + inc store+2 + lda store+2 + cmp #$C0 + bne decrypt + +; +; this RWTS swaps the A/Y hi/lo parameter table address +; when calling the RWTS entry point, so we need to +; set a flag so we can call it properly later +; (in ReadSector) +; + lda #TRUE + sta gIsProtDOS + clc +protecteddos_exit + rts diff --git a/src/id/specdelivery.a b/src/id/specdelivery.a new file mode 100755 index 0000000..4ef6798 --- /dev/null +++ b/src/id/specdelivery.a @@ -0,0 +1,244 @@ +; "Special Delivery" boot tracer +; for DOS 3.3P disks +; e.g. Ernie's Quiz, Elite +; +;------------------------------- +; IDSpecDel +; returns C clear if "Special Delivery" bootloader +; detected in T00,S00 +;------------------------------- +IDSpecDel + lda #$00 + ldx #$00 + ldy #$58 + jsr compare + !byte 02,$90,$4A,$C6,$27,$BD,$31,09 + !byte $49,$B0,$48,$C6,$3D,$98,$C8,$48 + !byte $CE,00,08,$A9,$20,$C6,$27,$48 + !byte $51,$26,$91,$26,$AA,$A5,$27,$85 + !byte $32,$CE,00,08,$A8,$B5,$33,$84 + !byte $29,$84,$21,$8A,$A2,$17,$86,$31 + !byte $D5,$33,$A6,$2B,$5D,$31,09,$85 + !byte $29,$5D,$32,09,$C6,$3D,$85,$28 + !byte $5D,$33,09,$85,$48,$A0,$2B,$84 + !byte $20,$C6,$40,$30,$3E,$24,$40,$30 + !byte $33,$24,$24,$24,$24,$40,$40,$40 + rts + +;------------------------------- +; TraceSpecDel +; set up boot trace to capture the bootloader and DOS +; of "Special Delivery" disks (stored in non-sector +; format on tracks 0-2) +;------------------------------- +TraceSpecDel + jsr ClearTSBuffer + lda #$00 ; set a marker to see if entire + sta $3FFF ; RWTS loads successfully later + lda #$00 ; save zero page before trace + ldx #$0A + ldy #$01 + jsr CopyMemory + + lda #TraceSpecDel2 + jmp Trace + +TraceSpecDel2 + lda #$4C + sta $0855 + lda #TraceSpecDel3 + sta $0857 + lda #$02 + sec + jmp $0801 + +TraceSpecDel3 + lda $1212 + cmp #$D8 + bne SDfail + lda #$4C + sta $10D5 + lda #TraceSpecDel4 + sta $10D7 + lda #$4C + sta $10F0 + lda #TraceSpecDel4 + sta $10F2 + jmp $1212 + +TraceSpecDel4 + lda $C0E8 ; turn off source drive + lda #$0A ; restore zero page from before trace + ldx #$00 + ldy #$01 + jsr CopyMemory + + lda $3FFF + cmp #$EA + bne SDfail + + lda #$0B + ldx #$00 + ldy #$03 + jsr compare ; if $1B00 == + !byte $4C,$4D,$2A + bcc SDsuccess +SDfail + jmp UseUniversal + +SDsuccess +; +; Restore the original code in memory before writing. +; + lda #$A2 + sta $10D5 + lda #$FF + sta $10D6 + lda #$9A + sta $10D7 + lda #$A5 + sta $10F0 + lda #$2B + sta $10F1 + lda #$4A + sta $10F2 +; +; move $1000-$13FF to $1100-$14FF to align it as we need it +; for writing to disk with the Standard Delivery bootloader +; in T00,S00 +; + lda #$13 + ldx #$14 + ldy #$01 + jsr CopyMemory + lda #$12 + ldx #$13 + ldy #$01 + jsr CopyMemory + lda #$11 + ldx #$12 + ldy #$01 + jsr CopyMemory + lda #$10 + ldx #$11 + ldy #$01 + jsr CopyMemory + +; $1B00-$1FFF is real code and in the right place +; but we should clear the rest of T00 so we're not +; writing garbage to disk on unused sectors + + lda #$10 + ldx #$00 + ldy #$01 + jsr ClearMemory + lda #$15 + ldx #$00 + ldy #$06 + jsr ClearMemory + +; copy Standard Delivery bootloader into place for T00,S00 + + ldy #$7E ; _SDboot0-SDboot0, but set here + ; manually to work around Merlin bug +sdcopy lda SDboot0,y + sta $1000,y + dey + bpl sdcopy + +; now manually write out track 0 with Standard Delivery +; bootloader + + jsr IncProgress + lda #$00 + sta gTrack + jsr WriteTrackNA + +; manually write out track 1 + + jsr IncProgress + inc gTrack + lda #$20 + ldx #$10 + ldy #$10 + jsr CopyMemory + jsr WriteTrackNA + +; manually write out track 2 with a patched RWTS + + jsr IncProgress + inc gTrack + lda #$30 + ldx #$10 + ldy #$10 + jsr CopyMemory + lda #$08 + ldx #$B6 + ldy #$04 + jsr modify + !byte $C9,$AD,$90,$E5 + lda #$18 + ldx #$38 + ldy #$01 + jsr CopyMemory + jsr WriteTrackNA + lda #$C9 + sta $38B6 + lda #$AD + sta $38B7 + lda #$90 + sta $38B8 + lda #$E5 + sta $38B9 + +; mark tracks 0-2 as "skip" in sector map + + ldy #$2F + lda #$00 +skipsectors + sta T00,y + dey + bpl skipsectors + +; set up RWTS entry point + + lda #$D5 + sta callrwts+1 + lda #$36 + sta callrwts+2 + +; read the rest of the disk with the original RWTS + + lda #$03 + sta gLastTrack + jmp ADStyle + +; Standard Delivery bootloader with DOS 3.3P support +; https://github.com/peterferrie/standard-delivery/ +; rev. a5b839d7d0fa21b0ff3a7776d9f6c9750b09ae10 of 2016-11-29 +; +SDboot0 + !byte 01,$a8,$ee,06,08,$ad,$4e,08 + !byte $c9,$c0,$f0,$40,$85,$27,$c8,$c0 + !byte $10,$90,09,$f0,05,$20,$2f,08 + !byte $a8,$2c,$a0,01,$84,$3d,$c8,$a5 + !byte $27,$f0,$df,$8a,$4a,$4a,$4a,$4a + !byte 09,$c0,$48,$a9,$5b,$48,$60,$e6 + !byte $41,06,$40,$20,$37,08,$18,$20 + !byte $3c,08,$e6,$40,$a5,$40,$29,03 + !byte $2a,05,$2b,$a8,$b9,$80,$c0,$a9 + !byte $30,$4c,$a8,$fc,$4c,$b3,$10 + !byte $1E,$1D,$1C,$1B,00,00,00,00 + !byte 00,00,$13,$12,$11,$10,$1F,$20 + !byte $2E,$2D,$2C,$2B,$2A,$29,$28,$27 + !byte $26,$25,$24,$23,$22,$21,$2F,$30 + !byte $3E,$3D,$3C,$3B,$3A,$39,$38,$37 + !byte $36,$35,$34,$33,$32,$31,$3F,$C0 +_SDboot0 diff --git a/src/id/trace.a b/src/id/trace.a new file mode 100755 index 0000000..e3a3e58 --- /dev/null +++ b/src/id/trace.a @@ -0,0 +1,156 @@ +;------------------------------- +; TraceDOS33 +; set up 1st-level boot trace on +; a DOS 3.3-shaped bootloader +;------------------------------- +TraceDOS33 +; +; Before we trace through the drive firmware (which -- +; at least on some machines -- will loop forever looking +; for each sector), we do a pre-check to ensure that all +; the sectors we're about to trace are actually readable. +; + lda #$00 + sta gTrack + lda #$09 + sta gSector +precheck + ldy #gRWTSParams + jsr $BD00 + bcc + + jmp FatalError ++ + dec gSector + bne precheck + +; pre-check passed, do the trace + + lda #TraceDOS33b + jmp Trace + +;------------------------------- +; TraceDOS33b +; set up 2nd boot trace at $084A +;------------------------------- +TraceDOS33b + lda #$4C + sta $084A + lda #TraceDOS33c + sta $084C + lda #$2C ; disable calls to + sta $083F ; TEXt/PR0/IN0 + sta $0842 + sta $0845 + jmp $0801 + +TraceDOS33c + lda $08FE ; 2nd-level trace callback is here + clc + adc #$02 +_Inspect1a + sta x1+1 + sta x2+1 + sta b4bbmodify+2 + sta b4bbmodify2+2 + clc + adc #$06 + sta b4bbcompare+1 + sec + sbc #$02 + sta x3+1 + sta x4+1 + sta callrwts+2 + jsr ProtectedDOS ; check for a specific (encrypted) + ; bootloader called "Protected DOS" + bcs notprotdos + jmp ADStyle +notprotdos + lda callrwts+2 + ldx #$00 ; check for "STY $48;STA $49" + ldy #$04 ; at RWTS entry point + jsr CompareMemory ; (e.g. $BD00 or $3D00) + !byte $84,$48,$85,$49 + bcc x1 + jmp UseUniversal +x1 lda #$FF ; check for "SEC;RTS" at $B942 + ldx #$42 + ldy #$02 + jsr CompareMemory + !byte $38,$60 + bcc x2 + jmp UseUniversal +x2 lda #$FF ; check for "LDA $C08C,X" at $B94F + ldx #$4F + ldy #$03 + jsr CompareMemory + !byte $BD,$8C,$C0 + bcc x3 + jmp UseUniversal +x3 lda #$FF ; check for "JSR $xx00" at $BDB9 + ldx #$B9 + ldy #$02 + jsr CompareMemory + !byte $20,00 + bcc + +; +; Check for RWTS variant that has extra code before +; JSR $B800 e.g. Verb Viper (DLM), Advanced Analogies (Hartley) +; +x4 lda #$FF ; check for "JSR $xx00" at $BDC5 + ldx #$C5 + ldy #$02 + jsr CompareMemory + !byte $20,00 + bcc + + jmp UseUniversal ; give up tracing; this RWTS is unsupported ++ jmp ADStyle ; use this RWTS to read the disk + +; TODO this doesn't belong here +Inspect1_8b3 + jsr WriteTrack + lda $08FE + clc + adc #$01 + jmp _Inspect1a + +;------------------------------- +; Trace +; common code for all boot tracers +; in: A = lo byte of callback +; X = hi byte of callback +; never returns +;------------------------------- +Trace + pha + txa + pha + lda #$C6 + ldx #$B6 + ldy #$01 + jsr CopyMemory + pla + tax + pla + ldy $B6F8 + cpy #$4C + bne maybe_gs + sty $B6F8 ; JMP + sta $B6F9 ; lo byte of callback + stx $B6FA ; hi byte of callback + jmp $B600 +maybe_gs + ldy $B6FB + cpy #$4C + bne unknowndrive + sty $B6FB ; JMP + sta $B6FC ; lo byte of callback + stx $B6FD ; hi byte of callback + jmp $B600 +unknowndrive + lda #s_canttrace + jsr PrintByID + jmp UseUniversal diff --git a/src/keys.a b/src/keys.a new file mode 100755 index 0000000..7c28e12 --- /dev/null +++ b/src/keys.a @@ -0,0 +1,20 @@ +KEY = $C000 +STROBE = $C010 + +WaitForKey + bit STROBE +k lda KEY + bpl k + bit STROBE + cmp #"*" + bne noast + jsr TEXT + lda #s_reset + jsr PrintByID + jmp $FF59 +noast + cmp #$E1 + bcc + + and #$DF ; force uppercase ++ + rts diff --git a/src/lcase.a b/src/lcase.a new file mode 100755 index 0000000..6ba7c0a --- /dev/null +++ b/src/lcase.a @@ -0,0 +1,4 @@ +!to "lcase.ct", plain +*=0 +!for i, 128 {!byte i+127} +!for i, 256-128 {!byte i+127} diff --git a/src/lcase.ct b/src/lcase.ct new file mode 100755 index 0000000..38dee39 --- /dev/null +++ b/src/lcase.ct @@ -0,0 +1 @@ +€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ \ No newline at end of file diff --git a/src/memory.a b/src/memory.a new file mode 100755 index 0000000..a352e43 --- /dev/null +++ b/src/memory.a @@ -0,0 +1,126 @@ +;------------------------------- +; CopyMemory +; in: A = source address (high) +; X = destination address (high) +; Y = number of pages to copy +; out: all flags and registers clobbered +;------------------------------- +CopyMemory + sta source1+2 + stx dest1+2 + ldx #$00 +source1 lda $FF00,x +dest1 sta $FF00,x + inx + bne source1 + inc source1+2 + inc dest1+2 + dey + bne source1 + rts + +;------------------------------- +; ClearMemory +; in: A = source address (high) +; X = value to set +; Y = number of pages +; out: all flags and registers clobbered +;------------------------------- +ClearMemory + sta dest2+2 + txa + ldx #$00 +dest2 sta $FF00,x + inx + bne dest2 + inc dest2+2 + dey + bne dest2 + rts + +;------------------------------- +; ClearTSBuffer +; clear the $1000 byte memory buffer +; used to store the current track's data +; in: none +; out: all flags and registers clobbered +;------------------------------- +ClearTSBuffer + lda #BASEPAGE + ldx #$00 + ldy #$10 + jmp ClearMemory + +;------------------------------- +; SwapMemory +; in: A = source address (high) +; X = destination address (high) +; Y = number of pages to copy +; out: all flags and registers clobbered +;------------------------------- +SwapMemory + sta source11+2 + sta source22+2 + stx dest11+2 + stx dest22+2 + ldx #$00 +source11 lda $FF00,x + pha +dest11 lda $FF00,x +source22 sta $FF00,x + pla +dest22 sta $FF00,x + inx + bne source11 + inc source11+2 + inc source22+2 + inc dest11+2 + inc dest22+2 + dey + bne source11 + rts + +;------------------------------- +; SaveProDOS +; saves memory pages used by ProDOS +; pages $00, $03, $BF +; in: none +; out: all flags and registers clobbered +;------------------------------- +SaveProDOS + lda #$00 + ldx #$40 + ldy #$01 + jsr CopyMemory + lda #$03 + ldx #$41 + ldy #$01 + jsr CopyMemory + lda #$BF + ldx #$42 + ldy #$01 + jsr CopyMemory +memory_exit + rts + +;------------------------------- +; SwapProDOS +; saves/restores memory pages used by ProDOS +; pages $00, $03, $BF +; in: none +; out: all flags and registers clobbered +;------------------------------- +SwapProDOS + lda #$00 + ldx #$40 + ldy #$01 + jsr SwapMemory + lda #$03 + ldx #$41 + ldy #$01 + jsr SwapMemory + lda #$BF + ldx #$42 + ldy #$01 + jsr SwapMemory + rts diff --git a/src/mli.a b/src/mli.a new file mode 100755 index 0000000..7716939 --- /dev/null +++ b/src/mli.a @@ -0,0 +1,509 @@ +; MLI command codes +CMD_CREATE = $C0 ; create new file +CMD_DESTROY = $C1 ; delete a file +CMD_SETPREFIX = $C6 ; change default pathname prefix +CMD_OPEN = $C8 ; open a file +CMD_NEWLINE = $C9 ; set line-by-line read mode +CMD_READ = $CA ; read an open file +CMD_WRITE = $CB ; write to an open file +CMD_CLOSE = $CC ; close an open file +CMD_SETMARK = $CE ; change position in an open file + +; MLI parameter counts +PC_CREATE = $07 +PC_DESTROY = $01 +PC_SETPREFIX = $01 +PC_OPEN = $03 +PC_NEWLINE = $03 +PC_READ = $04 +PC_WRITE = $04 +PC_CLOSE = $01 +PC_SETMARK = $02 + +PRODOSMLI = $BF00 ; [callable] MLI entry point + +; MLI error codes +ERR_FNF = $46 +ERR_EOF = $4C + +;------------------------------- +; WriteTrackMLI - write the contents of +; BASEPAGE data buffer to disk +; in: @SLOT contains (slot x 16) + $30 +; @DRIVE contains drive + $30 +; @gTrack contains track number +; @BASEPAGE contains data to write ($1000 bytes) +; out: if C set, write failed (A contains MLI error code) +; if C clear, write succeeded (A is clobbered) +; all other flags clobbered +; all registers clobbered +;------------------------------- +WriteTrackMLI + jsr SwapProDOS + jsr ReorderBuffer + lda #$81 ; 'write block' command + sta mlicmd + lda DRIVE ; ProDOS "unit number" is + sec + sbc #$30 + lsr ; DSSS0000, where D is the + asl ; drive number (0=drive 1, + asl ; 1=drive 2) and SSS is + asl ; the slot number (1-7). + asl ; "Beneath Apple ProDOS" + asl ; page 6-19 + asl + asl + sta mliparam+1 + lda SLOT + sec + sbc #$30 + asl + asl + asl + asl + clc + adc mliparam+1 + sta mliparam+1 + lda #$00 + sta mliparam+2 ; lo byte of data buffer + lda #$08 + sta blockcount + lda gTrack + asl + asl + asl + sta mliparam+4 ; lo byte of block number + rol + and #$01 + sta mliparam+5 ; hi byte of block number + lda #BASEPAGE ; hi byte of data buffer + sta mliparam+3 +writeloop + lda mlicmd + ldy #$03 ; parameter count + jsr mli + bcs mli_writeerr + inc mliparam+3 ; 2 pages per block + inc mliparam+3 + inc mliparam+4 + dec blockcount + bne writeloop + clc + bcc writedone +mli_writeerr +writedone + php + pha + jsr ReorderBuffer + jsr SwapProDOS + pla + plp + rts + +blockcount !byte $FF + +;------------------------------- +; ReorderBuffer - convert data +; buffer between ProDOS and +; DOS 3.3 ordering (use after +; read or before write under +; ProDOS) +; in: none +; out: all flags clobbered +; all registers clobbered +; @cmp1, @cmp2 clobbered +;------------------------------- +ReorderBuffer + lda #$00 + sta cmp1 + sta cmp2 + tay + lda #$01 + clc + adc #BASEPAGE + sta cmp1+1 + lda #$0E + clc + adc #BASEPAGE + sta cmp2+1 + ldx #$07 +L lda (cmp1),y + pha + lda (cmp2),y + sta (cmp1),y + pla + sta (cmp2),y + iny + bne L + inc cmp1+1 + dec cmp2+1 + dex + bne L + rts + +;------------------------------- +; SaveFile1Shot +; save a file to disk all at once, +; using ProDOS MLI calls +; +; in: stack contains 11 ($0B) bytes of parameters: +; +1 address of pathname +; +3 [byte] file type +; +4 [word] aux file type +; +6 address of data buffer +; +8 [word] length of data buffer +; +A address of ProDOS file buffer +; out: if C set, save failed and A contains error code +; from open or write +; if C clear, save succeeded +; all other flags clobbered +; all registers clobbered +; stack set to next instruction after parameters +;------------------------------- +SaveFile1Shot + pla + sta $00 + pla + sta $01 + tax + lda #$0B + clc + adc $00 + bcc mli_noinc1 + inx +mli_noinc1 + tay + txa + pha + tya + pha + + ldy #$01 + lda ($00),y ; lo byte of pathname + sta mliparam+1 + iny + lda ($00),y ; hi byte of pathname + sta mliparam+2 + jsr DeleteFile ; don't care if this fails + ldy #$03 + lda ($00),y ; file type + sta mliparam+4 + iny + lda ($00),y ; lo byte of aux file type + sta mliparam+5 + iny + lda ($00),y ; hi byte of aux file type + sta mliparam+6 + jsr CreateFile + bcs savefile1s + + ldy #$0A + lda ($00),y ; lo byte of ProDOS file buffer + sta mliparam+3 + iny + lda ($00),y ; hi byte of ProDOS file buffer + sta mliparam+4 + jsr OpenFile + bcs savefile1s + + pha ; push file reference number + ldy #$06 + lda ($00),y ; lo address of data buffer + sta mliparam+2 + iny + lda ($00),y ; hi address of data buffer + sta mliparam+3 + iny + lda ($00),y ; lo data length + sta mliparam+4 + iny + lda ($00),y ; hi data length + sta mliparam+5 + pla ; pull file reference number + jsr WriteFile + php ; save flags from writefile + pha + jsr CloseFile ; always close whether write worked or not + pla + plp ; restore flags from write + ; (so caller gets codes from write attempt, + ; not close) + +savefile1s + rts + +;------------------------------- +; LoadFile1Shot +; load a file into memory all at once, +; using ProDOS MLI calls +; +; in: stack contains 8 bytes of parameters: +; +1 address of pathname +; +3 address of data buffer (to receive file contents) +; +5 [word] maximum length of data to read +; +7 address of ProDOS file buffer +; out: if C set, load failed and A contains error code +; from open or read +; if C clear, load succeeded and ($02) contains +; data loaded from file +; all other flags clobbered +; all registers clobbered +; stack set to next instruction after parameters +;------------------------------- +LoadFile1Shot + pla + sta $00 + pla + sta $01 + tax + lda #$08 + clc + adc $00 + bcc mli_noinc2 + inx +mli_noinc2 + tay + txa + pha + tya + pha + + ldy #$01 + lda ($00),y ; lo byte of pathname + sta mliparam+1 + iny + lda ($00),y ; hi byte of pathname + sta mliparam+2 + ldy #$07 + lda ($00),y ; lo byte of ProDOS file buffer + sta mliparam+3 + iny + lda ($00),y ; hi byte of ProDOS file buffer + sta mliparam+4 + + jsr OpenFile + bcs loadfile1s ; C set on error + + pha ; push file reference number + ldy #$03 + lda ($00),y ; lo address of data buffer + sta mliparam+2 + iny + lda ($00),y ; hi address of data buffer + sta mliparam+3 + iny + lda ($00),y ; lo data length + sta mliparam+4 + iny + lda ($00),y ; hi data length + sta mliparam+5 + pla ; pull file reference number + jsr ReadFile + php ; save flags from readfile + pha + jsr CloseFile ; always close whether read worked or not + pla + plp ; restore flags from readfile + ; (so caller gets codes from read attempt, + ; not close) +loadfile1s + rts + +;------------------------------- +; open file via ProDOS MLI +; +; in: caller has filled @mliparam with address of +; pathname, address of data buffer, and maximum +; data length +; A = file reference number +; out: if C set, open failed and A contains error code +; if C clear, open succeeded and A contains +; file reference number +;------------------------------- +OpenFile + lda #CMD_OPEN ; MLI command + ldy #PC_OPEN ; number of parameters for 'open' command + jsr mli + bcs openfile + lda refnum ; caller should save file reference number + ; as this memory location may be + ; overwritten by later MLI calls +openfile + rts + +;------------------------------- +; set line-by-line mode via ProDOS MLI +; +; in: A = file reference number +; out: if C set, set failed and A contains error code +; if S clear, set succeeded and A contains the same +; file reference number that was passed in +;------------------------------- +lbl_mask = $7F +lbl_cr = $0D + +SetLineByLine + sta mliparam+1 ; store file reference number + lda #lbl_mask ; accept high bit set or clear + sta mliparam+2 + lda #lbl_cr ; carriage return character + sta mliparam+3 + lda #CMD_NEWLINE ; MLI 'newline' command to set read mode + ldy #PC_NEWLINE ; number of parameters for 'newline' command + jsr mli + bcs setlinebylin + lda mliparam+1 ; if no error, return file reference number +setlinebylin + rts + +;------------------------------- +; read an open file via ProDOS MLI +; +; in: A = file reference number +; caller has filled @mliparam with address of +; data buffer and maximum data length +; out: if C set, read failed and A contains error code +; if C clear, read succeeded and A contains the same +; file reference number that was passed in +;------------------------------- +ReadFile + sta mliparam+1 ; store file reference number + lda #CMD_READ ; MLI read command + ldy #PC_READ ; number of parameters for 'read' command + jsr mli + bcs readfile + lda mliparam+1 ; if no error, return file reference number +readfile + rts + +;------------------------------- +; change file position in an open file via ProDOS MLI +; +; in: A = file reference number +; caller has filled @mliparam+2/+3/+4 with +; new file position +; out: if C set, set_mark call failed and A contains error code +; if C clear, set_mark call succeeded and A contains +; the same file reference number that was passed in +;------------------------------- +SetMark + sta mliparam+1 ; store file reference number + lda #CMD_SETMARK ; MLI set_mark command + ldy #PC_SETMARK ; number of params for 'set_mark' cmd + jsr mli + bcs mli_exit + lda mliparam+1 ; if no error, return file refnum +mli_exit rts + +;------------------------------- +; write to an open file via ProDOS MLI +; +; in: A = file reference number +; caller has filled @mliparam with address of +; data buffer and data length +; out: if C set, write failed and A contains error code +; if C clear, write succeeded and A contains the same +; file reference number that was passed in +;------------------------------- +WriteFile + sta mliparam+1 ; store file reference number + lda #CMD_WRITE ; MLI write command + ldy #PC_WRITE ; number of parameters for 'write' command + jsr mli + bcs writefile + lda mliparam+1 ; if no error, return file reference number +writefile + rts + +;------------------------------- +; close an open file +; in: A = file reference number +; out: if error, C set and A contains error code +; if success, C clear +;------------------------------- +CloseFile + sta mliparam+1 ; store file reference number + lda #CMD_CLOSE ; MLI close command + ldy #PC_CLOSE ; number of parameters for 'close' command + jsr mli + rts + +;------------------------------- +; create a file via ProDOS MLI +; always sets access bits to $C3 (full access) +; always sets creation to 0 (current date/time) +; always sets storage type to 1 (file) +; in: caller has filled @mliparam +; with address of pathname, +; file type, aux file type +; out: if error, C set and A contains error code +; if success, C clear +;------------------------------- +accessbits = $C3 ; full access + +CreateFile + lda #accessbits + sta mliparam+3 ; access bits (full access) + lda #1 + sta mliparam+7 ; storage type (file) + lda #0 + sta mliparam+8 ; creation date (current) + sta mliparam+9 + sta mliparam+10 ; creation time (current) + sta mliparam+11 + lda #CMD_CREATE ; MLI create command + ldy #PC_CREATE ; number of parameters for 'create' command + jsr mli + rts + +;------------------------------- +; delete a file using ProDOS MLI +; in: caller has filled @mliparam +; with address of pathname +; out: if error, C set and A contains error code +; if success, C clear +;------------------------------- +DeleteFile + lda #CMD_DESTROY ; MLI destroy command + ldy #PC_DESTROY ; number of parameters for 'destroy' command + jsr mli + rts + +;------------------------------- +; change current directory (set prefix) +; using ProDOS MLI +; in: caller has filled @mliparam +; with address of pathname +; out: if error, C set and A contains error code +; if success, C clear +;------------------------------- +SetPrefix + lda #CMD_SETPREFIX + ldy #PC_SETPREFIX + jsr mli + rts + +;------------------------------- +; low-level MLI wrapper +; in: A = MLI command code +; Y = number of MLI parameters +; caller has filled @mliparam +; with all relevant parameters +; out: returns immediately after +; calling MLI, so whatever +; state the MLI routine sets, +; the caller will see it +; verbatim +;------------------------------- +mli sta mlicmd ; store command code + sty mliparam ; number of parameters + jsr PRODOSMLI ; call ProDOS +mlicmd !byte 00 ; command number + !word mliparam ; address of parameter table + rts +mliparam !byte $FE,$FE,$FE,$FE,$FE +refnum !byte $FE ; file refnum (set by MLI open) +mlilen !byte $FE,$FE ; file length (set by MLI read) + !byte $FE,$FE,$FE,$FE + ; used by createfile diff --git a/src/modify.a b/src/modify.a new file mode 100755 index 0000000..6d56bd5 --- /dev/null +++ b/src/modify.a @@ -0,0 +1,73 @@ +;------------------------------- +; modify subroutine +; in: A = starting address (high byte) +; X = starting address (low byte) +; Y = string length +; stack = string to set +; out $BASEPAGE buffer changed +; $gPatchCount++ +; $modsrc zero page clobbered +; $moddest zero page clobbered +; stack set to return to +; code after string +; all registers clobbered +; all flags clobbered +;------------------------------- +modify + sta gDisplayBytes + clc + adc #BASEPAGE + sta moddest+1 + stx moddest + stx gDisplayBytes+1 + pla + sta modsrc + pla + sta modsrc+1 + tax + tya + clc + adc modsrc + bcc noinc + inx +noinc + sta tmp + txa + pha + lda tmp + pha + sty modtmp + bit gMode + bpl exitnomod ; verify mode -> no modify + bvc exitnomod ; demuffin mode -> no modify + lda #s_modify + jsr PrintByID + ldy #0 +dest + lda (moddest),y + jsr PrintByte + iny + cpy modtmp + bne dest + lda #s_modifyto + jsr PrintByID + ldy #0 +src + iny + lda (modsrc),y + jsr PrintByte + cpy modtmp + bne src + lda #$8D + jsr PrintA +mod + lda (modsrc),y + dey + bmi modify_exit + sta (moddest),y + clv + bvc mod ; unconditional branch +modify_exit + inc gPatchCount +exitnomod + rts diff --git a/src/passport.a b/src/passport.a new file mode 100755 index 0000000..6fbf7a5 --- /dev/null +++ b/src/passport.a @@ -0,0 +1,767 @@ +!cpu 6502 +*=$2000 + +;------------------------------- +; Passport +; a 4am hack +; (c) 2016-7 by 4am +; +; Permission is hereby granted, free of charge, to any +; person obtaining a copy of this software and associated +; documentation files (the "Software"), to deal in the +; Software without restriction, including without limitation +; the rights to use, copy, modify, merge, publish, +; distribute, sublicense, and/or sell copies of the +; furnished to do so, subject to the following conditions: +; +; The above copyright notice and this permission notice +; shall be included in all copies or substantial portions of +; the Software. +; +; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +; KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +; WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +; PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +; OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +; OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +; OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +; +;------------------------------- + +; Supported languages +; (each has its own localized strings file +; and its own output filename) +ENGLISH = 1 ; src/strings/en, PASSPORT.SYSTEM +FRENCH = 2 ; src/strings/fr, PASSPORT.FR +SPANISH = 3 ; src/strings/es, PASSPORT.ES +ITALIAN = 4 ; src/strings/it, PASSPORT.IT +FINNISH = 5 ; src/strings/fi, PASSPORT.FI + +; Current language for this assembly +LANG = ENGLISH + + !if LANG=ENGLISH { + !to "../build/PASSPORT.SYSTEM",plain + } + !if LANG=FRENCH { + !to "../build/PASSPORT.FR",plain + } + !if LANG=SPANISH { + !to "../build/PASSPORT.SP",plain + } + !if LANG=ITALIAN { + !to "../build/PASSPORT.IT",plain + } + !if LANG=FINNISH { + !to "../build/PASSPORT.FI",plain + } + +;------------------------------- +; Addresses we read/call +TEXTTOP = $22 +VPOS = $25 +MLI = $BF00 +REBOOT = $FAA6 +TEXT = $FB2F +MACHINEID = $FBB3 +HOME = $FC58 +WAIT = $FCA8 +PRBYTE = $FDDA +COUT = $FDED +PR0 = $FE89 +IN0 = $FE93 + +; Zero-page addresses we use for variables +nibsrcindex = $EC ; byte +nibdestindex = $ED ; byte +prbuf = $EE ; word +unform = $F0 ; word +nibcount = $F2 ; byte +modtmp = $F3 ; byte +modsrc = $F4 ; word +moddest = $F6 ; word +cmp1 = $F8 ; word +cmp2 = $FA ; word +counter = $FC ; byte +tmp = $FC ; byte +tmpa = $FC ; byte +tmpx = $FD ; byte +tmpy = $FE ; byte +flag = $FF ; byte + +; Application constants (not zero addresses) +BASEPAGE = $10 ; Special Delivery tracer assumes + ; this is $10, so don't change it! +TRUE = $00 ; Lots of code assumes this is $00 + ; so it can branch with BEQ, so + ; don't change it either! +FALSE = $01 + +FirstMover + ldy #>LastMover-FirstMover + ldx #$00 +FM lda $2000,x + sta $6800,x + inx + bne FM + inc FM+2 + inc FM+5 + dey + cpy #$48 + bne FM + jmp OneTimeSetup + + !pseudopc *+$4800 { + +; use localized strings based on current language + + !if LANG=ENGLISH { + !source "strings/en.a" + } + !if LANG=FRENCH { + !source "strings/fr.a" + } + !if LANG=SPANISH { + !source "strings/es.a" + } + !if LANG=ITALIAN { + !source "strings/it.a" + } + !if LANG=FINNISH { + !source "strings/fi.a" + } + + !source "analyze.a" + !source "id/inspect0.a" + !source "id/trace.a" + !source "id/dos33.a" + !source "id/jsr8b3.a" + !source "id/mecc.a" + !source "id/datasoft.a" + !source "id/protecteddos.a" + !source "id/specdelivery.a" + !source "id/encode44.a" + !source "id/encode53.a" + !source "print.a" + !source "compare.a" + !source "modify.a" + !source "memory.a" + !source "sectormap.a" + !source "mli.a" + !source "slots.a" + !source "prefs.a" + !source "keys.a" + !source "rwts.a" + +OneTimeSetup + lda $C0E8 + jsr SaveProDOS + ldx MACHINEID + cpx #$EA + bne slotscan + lda #$DF + sta kForceLower +slotscan + jsr ScanForDiskII + lda DiskIIArray+5 + bne founds6 + jmp FatalNoSlot6 +founds6 + jsr LoadPrefs ; load preferences (if available) + bcc ResetVector + jsr SavePrefs ; save preferences (if possible) +ResetVector + lda #ResetVector + sta $03F3 + eor #$A5 + sta $03F4 + lda $C0E8 + jsr PR0 + jsr IN0 + sta $C000 + sta $C002 + sta $C004 + sta $C00C + sta $C00E +MainMenu + ldx #$FF + txs + jsr TEXT + jsr ClearScreen + lda #s_header + jsr PrintByID + lda #s_mainmenu + jsr PrintByID +:getkey + jsr WaitForKey + cmp #$9B + beq jmptoexit + cmp #k_quit + bne + +jmptoexit + jmp CleanExit ++ + cmp #k_slot + bne + + jsr NextSlot + lda #TRUE + sta gChangedPrefs + jmp MainMenu ++ + cmp #k_verify + bne + + lda #%00000000 + beq Action ; unconditional branch ++ + cmp #k_demuffin + bne + + lda #%10000000 + bne Action ; unconditional branch ++ + cmp #k_crack + bne getkey + lda #%11000000 + +; note: execution falls through here + +Action + sta gMode + jsr ResetProgress + jsr InitSectorMap + jsr CopyUniversal + lda #FALSE + sta gTriedUniv + sta gSaidWriting + lda #$00 + sta gTrack + sta gSector + sta gPatchCount + sta callrwts+1 + lda #$08 + sta gAddress+1 + jsr ClearScreen + lda #s_header + jsr PrintByID + lda #s_progbar + jsr PrintByID + lda VPOS + sta TEXTTOP + lda #s_reading + jsr PrintByID +; +; For the initial T00,S00 check, we need to wait much longer +; than usual to find the address prologue, because sector 0 +; might literally be the only standard sector on the track. +; This will get overridden as soon as we either trace the +; disk's RWTS or copy the universal RWTS again. (One of these +; is guaranteed to happen before we read the rest of the disk.) +; + lda #$E7 + sta $B945 + ldy #gRWTSParams ; if T00,S00 is readable + jsr $BD00 ; (only care about the return code) + bcs fatalt00s00 + jmp checkt00s00 +:fatalt00s00 + lda #$F0 + sta $B959 + lda #$05 + sta $B95A + ldy #gRWTSParams + jsr $BD00 + bcs reallyfatal +; +; Bad emulator detected (disk controller presents nibbles +; immediately instead of based on cycle count). Patch the +; universal RWTS to compensate. +; + lda #$F0 + sta _B959 + lda #$05 + sta _B95A + bne checkt00s00 ; unconditional branch +reallyfatal + lda #s_fail + jsr PrintByID + lda #s_fatal0000 + jsr PrintByID + jmp TheEnd +checkt00s00 + jmp CheckT00S00 ; /src/id/inspect0 + + + + + + +; +; We are now fairly confident that the RWTS in memory +; is normal enough to call, Advanced Demuffin style. +; +ADStyle + jsr IncProgress + lda #s_diskrwts + jsr PrintByID +; +; Check for protections in early boot that +; might indicate intentional bad sectors +; elsewhere in the disk that we should skip, +; or changes we need to make to the RWTS +; before we start. +; + jsr xHeredityDog + bcs noDog + lda #s_bb00 + jsr PrintByID +noDog + jsr xSunburst + bcs noSun + lda #s_sunburst + jsr PrintByID +noSun + jsr xOptimumRes + bcs noOptimum + lda #s_optimum + jsr PrintByID +noOptimum + jsr xB660 + jsr xB4BB + jmp ReadWithRWTS + +UseUniversal + jsr IncProgress + jsr StartWithUniv + +; note: execution falls through here + +ReadWithRWTS + lda #$22 + jsr ChangeTrackNW + lda #$0F + jsr ChangeSector + lda #T22S0F + sta checksector+2 +read + lda KEY + bpl checksector + jmp Cancel +checksector + lda $FFFF ; current sector in sector map + pha + beq nextsector ; #$00 = skip this sector + cmp #$FE ; #$FE = switch to built-in RWTS + bne + ; to read this sector + lda gTriedUniv + beq + + jsr SwitchToUniv ++ + jsr ReadSector + bcc nextsector + pla + pha +; +; Uh oh, we got a read error. But do we care? +; Maybe we marked this sector as optional based +; on markers in the bootloader. +; + cmp #$80 + beq optional +; +; If we're in the middle of a track, try switching to the +; universal RWTS and see if that helps. (Many disks contain +; an RWTS that can't read the early tracks or sectors that +; contain the RWTS code, since those are loaded by the +; disk controller firmware.) +; + lda gSector + cmp #$0F + bne tryuniversal +; +; We just got to this track, so check for a variety +; of whole-track conditions +; +; 1) unformatted track +; + jsr IsUnformatted + bcs checkf7 + lda #s_unformat + jsr PrintByID + jmp skiptrack +; +; 2) $F7 protection track (F7F6EFEAAB nibble sequence) +; +checkf7 + jsr IsF7 + bcs checksync + lda #s_f7 + jsr PrintByID + jmp skiptrack +; +; 3) nibble count track (mostly $FF sync bytes) +; +:checksync + jsr IsSyncBytes + bcs tryuniversal + lda #s_sync + jsr PrintByID + +; note: execution falls through here + +skiptrack + lda #$00 ; skip rest of track + jsr ChangeSector + lda checksector+1 + sec + sbc #$0F + sta checksector+1 + bcs notrackdec + dec checksector+2 +notrackdec + jmp nextsector + +:tryuniversal + lda gTriedUniv ; have we tried the universal RWTS? + beq fatal ; yes, so read error is fatal + jsr SwitchToUniv ; no, switch it in now + jmp read ; and re-read this sector + +fatal pla ; if we get to here, we've + jmp FatalError ; decided the read error is fatal + +optional + lda #s_optbad ; say we're skipping this + jsr PrintByID ; optional sector + +; note: execution falls through here + +nextsector + pla + dec checksector+1 + lda checksector+1 + cmp #$FF + bne nodec + dec checksector+2 +nodec + lda gSector + sec + sbc #$01 + jsr ChangeSector + lda gSector + bmi prevtrack + jmp read +prevtrack + lda #$0F + jsr ChangeSector + lda gTrack + sec + sbc #$01 + jsr ChangeTrack + jsr IncProgress + lda gTrack + bmi pass + cmp gLastTrack + bcc pass + jmp read +pass + bit gMode + bmi passwrite + lda #s_pass + bne passprint ; always branches +passwrite + bvs ppasscrack + lda #s_passdemuf + bne passprint ; always branches +ppasscrack + lda gPatchCount + beq ppasscrack0 + lda #s_passcrack + !byte $2C ; hide next LDA +ppasscrack0 + lda #s_passcrack0 +passprint + jsr PrintByID + jmp TheEnd + +SwitchToUniv + lda #s_switch + !byte $2C ; hide next LDA +StartWithUniv + lda #s_builtin + jsr PrintByID + lda #TRUE + sta gTriedUniv + lda #FALSE + sta gIsProtDOS + +; note: execution falls through here + +CopyUniversal + lda #>universalrwts + ldx #$B8 + ldy #$08 + jsr CopyMemory + lda #$00 + sta callrwts+1 + lda #$BD + sta callrwts+2 + rts + +Cancel + lda #s_canceled + jsr PrintByID + jmp TheEnd + +FatalError + lda #s_fail + jsr PrintByID + lda gTrack + cmp #$22 + beq failont22 + jmp TheEnd +failont22 + lda gSector + cmp #$0F + beq failont22s0f + jmp TheEnd +failont22s0f + lda #s_fatal220f + jsr PrintByID + +; note: execution falls through here + +TheEnd + lda $C0E8 + lda #s_done + jsr PrintByID + jsr WaitForKey + cmp #$9B + beq CleanExit + jmp MainMenu + +CleanExit + jsr SwapProDOS + lda gChangedPrefs + bne doquit + jsr SavePrefs +doquit + jsr MLI + !byte $65 + !word quitparm +quitparm + !byte 04,00,00,00,00,00,00 + +FatalNoSlot6 + lda #s_noslot6 + jsr PrintByID + jsr WaitForKey + jmp CleanExit + +ResetProgress + lda #$82 ; reset progress indicator + sta progressind+1 + lda #$05 + sta progressind+2 + rts + +IncProgress + lda #$20 ; display minimal progress indicator +progressind + sta $FFFF ; set at runtime + inc progressind+1 + rts + +;------------------------------- +; WriteTrack +;------------------------------- +MLI_IOERR = $27 +MLI_NODEV = $28 +MLI_WRITEPROT = $2B + +WriteTrack + jsr AnalyzeTrack +WriteTrackNA ; entry point used by Special Delivery tracer + ; to write track with "N"o "A"nalysis + bit gMode + bpl pdone ; verify mode -> no write + lda gSaidWriting + beq write + lda #s_writing ; only print "writing to" message once + jsr PrintByID + lda #TRUE + sta gSaidWriting +write + jsr WriteTrackMLI + bcc pdone + sta gDisplayBytes ; for use in error messages, if any + cmp #MLI_IOERR + beq ioerr + cmp #MLI_NODEV + beq nodev + cmp #MLI_WRITEPROT + beq pwriteprot + lda #s_othermli + !byte $2C ; hide next LDA +ioerr + lda #s_writeioerr + !byte $2C ; hide next LDA +nodev + lda #s_writenodev + !byte $2C ; hide next LDA +pwriteprot + lda #s_writeprot + pha + lda #s_writeerr + jsr PrintByID + pla + jsr PrintByID + jmp TheEnd +pdone + rts + +;------------------------------- +; ChangeTrack +; in: A = new track +;------------------------------- +ChangeTrack + pha + jsr WriteTrack + pla + +; note: execution falls through here + +ChangeTrackNW ; "N"o "W"rite + sta gTrack + jsr ClearTSBuffer + rts + +;------------------------------- +; ChangeSector +; in: A = new sector +;------------------------------- +ChangeSector + sta gSector + clc + adc #BASEPAGE + sta gAddress+1 + rts + +;------------------------------- +; AnalyzeTrack routine +; Looks at buffer in memory to detect known +; copy protections and disable/revert/modify them +; to work on standard disks. +; Prints through COUT as it finds and makes +; modifications in memory only. +; in: $BASEPAGE page contains one track worth of data +; out: if C set, no known protections were found and +; no modifications were made +; if C clear, at least one modification was made +;------------------------------- +AnalyzeTrack + lda gTrack + beq _applyToT00 + jmp _applyToAll +_applyToT00 + jsr ApplyGlobals + !source "patchers/sunburst.a" + !source "patchers/jmpbcf0.a" + !source "patchers/jmpbeb1.a" + !source "patchers/jmpbeca.a" + !source "patchers/jmpbeca2.a" + !source "patchers/jmpb660.a" + !source "patchers/jmpb720.a" + !source "patchers/bademu.a" + !source "patchers/bademu2.a" + !source "patchers/rwts.a" + !source "patchers/meccm8.a" + !source "patchers/meccm7.a" + !source "patchers/rol1e.a" + !source "patchers/jmpb4bb.a" + !source "patchers/jmpb4bbhi.a" + !source "patchers/jmpb400.a" + !source "patchers/thunder.a" + !source "patchers/jsrbb03.a" + !source "patchers/davidbb03.a" + !source "patchers/rwtsswap.a" + !source "patchers/rwtsswap2.a" + !source "patchers/jmpae8e.a" + !source "patchers/jmpbbfe.a" + !source "patchers/datasoft.a" + !source "patchers/nibtable.a" + !source "patchers/diskvol.a" +_applyToAll + !source "patchers/universale7.a" + !source "patchers/runhello.a" + !source "patchers/a6bc95.a" + !source "patchers/d5d5f7.a" + !source "patchers/prodosrwts.a" + !source "patchers/prodosmecc.a" + !source "patchers/rwtsswapmecc.a" + !source "patchers/protecteddos.a" + + lda gPatchCount + beq nopatches + clc + !byte $24 ; hide next SEC +nopatches + sec ; set carry if nothing happened + rts + +; +; Global variables +; +gTriedUniv + !byte FALSE ; 0=true, 1=false + ; reset to #FALSE before each operation +gMode + !byte %00000000 ; bit 7 0=verify, 1=see bit 6 + ; bit 6 0=demuffin, 1=crack + ; set based on main menu choice +gPatchCount + !byte 00 ; int + ; reset before each operation +gSaidWriting + !byte FALSE ; 0=true, 1=false + ; reset before each operation +gChangedPrefs + !byte FALSE ; 0=true, 1=false + ; set to #TRUE when changing slots +gLastTrack + !byte 00 ; int + ; set after reading T00 +gIsBoot0 + !byte FALSE ; 0=true, 1=false + ; set after reading T00 +gIsBoot1 + !byte FALSE ; 0=true, 1=false + ; set after reading T00 +gIsMaster + !byte FALSE ; 0=true, 1=false + ; set after reading T00 +gIsRWTS + !byte FALSE ; 0=true, 1=false + ; set after reading T00 +gIsProDOS + !byte FALSE ; 0=true, 1=false + ; set after reading T00 +gIsPascal + !byte FALSE ; 0=true, 1=false + ; set after reading T00 +gIsDatasoft + !byte FALSE ; 0=true, 1=false + ; set after reading T00 +gIsProtDOS + !byte FALSE ; 0=true, 1=false + ; set after reading T00 + + !source "applyglobals.a" + !source "universalrwts.a" +LastMover + } diff --git a/src/patchers/a6bc95.a b/src/patchers/a6bc95.a new file mode 100755 index 0000000..05edd9b --- /dev/null +++ b/src/patchers/a6bc95.a @@ -0,0 +1,28 @@ +;------------------------------- +; #A6BC95 +; nibble count after "A6 BC 95" prologue +; e.g. The Secrets of Science Island +;------------------------------- +_a6bc95 + lda gIsPascal ; only ever seen this protection + bne a6bc95_exit ; on Pascal disks + + ldy #$33 + jsr SearchTrack + !byte $AE,$F8,01,$A9,$0A,$8D,$FE,01 + !byte $BD,$8E,$C0,$BD,$89,$C0,$A9,$3A + !byte $8D,$DF,01,$A0,$20,$84,02,$88 + !byte $D0,07,$C6,02,$D0,03,$4C,$F8 + !byte 00,$BD,$8C,$C0,$10,$FB,$C9,$A6 + !byte $D0,$ED,$BD,$8C,$C0,$10,$FB,$C9 + !byte $BC,$D0,$E4 + bcs a6bc95_exit + sta gDisplayBytes + pha + lda #s_a6bc95 + jsr PrintByID + pla + ldy #$01 + jsr modify + !byte $60 +a6bc95_exit diff --git a/src/patchers/bademu.a b/src/patchers/bademu.a new file mode 100755 index 0000000..f785972 --- /dev/null +++ b/src/patchers/bademu.a @@ -0,0 +1,27 @@ +;------------------------------- +; #BADEMU +; RWTS checks for timing bit by +; checking if data latch is still +; $D5 after waiting "too long" +; but this confuses legacy emulators +; (AppleWin, older versions of MAME) +; so we patch it for compatibility +; e.g. Dino Dig, Make A Face +;------------------------------- +_bademu + lda gIsRWTS ; if DOS 3.3 RWTS + bne bademu_exit + lda #$03 + ldx #$4F + ldy #$11 + jsr compare ; and T00,S03,$4F == + !byte $BD,$8C,$C0,$10,$FB,$C9,$D5,$D0 + !byte $F0,$EA,$BD,$8C,$C0,$C9,$D5,$F0 + !byte $12 + bcs bademu_exit + lda #$03 + ldx #$58 + ldy #$02 + jsr modify ; and set T00,S03,$58 = + !byte $F0,06 +bademu_exit diff --git a/src/patchers/bademu2.a b/src/patchers/bademu2.a new file mode 100755 index 0000000..8e91092 --- /dev/null +++ b/src/patchers/bademu2.a @@ -0,0 +1,27 @@ +;------------------------------- +; #BADEMU2 +; RWTS checks for timing bit by +; checking if data latch is still +; $D5 after waiting "too long" +; but this confuses legacy emulators +; (AppleWin, older versions of MAME) +; so we patch it for compatibility +; e.g. Dinosaur Days +;------------------------------- +_bademu2 + lda gIsRWTS ; if DOS 3.3 RWTS + bne bademu2_exit + lda #$03 + ldx #$4F + ldy #$11 + jsr compare ; and T00,S03,$4F == + !byte $BD,$8C,$C0,$10,$FB,$4A,$C9,$6A + !byte $D0,$EF,$BD,$8C,$C0,$C9,$D5,$F0 + !byte $12 + bcs bademu2_exit + lda #$03 + ldx #$59 + ldy #$02 + jsr modify ; and set T00,S03,$59 = + !byte $F0,05 +bademu2_exit diff --git a/src/patchers/d5d5f7.a b/src/patchers/d5d5f7.a new file mode 100755 index 0000000..8c7900c --- /dev/null +++ b/src/patchers/d5d5f7.a @@ -0,0 +1,24 @@ +;------------------------------- +; #D5D5F7 +; nibble count with weird bitstream +; involving $D5 and $F7 as delimiters +; e.g. NoteCard Maker, many Mindplay titles +; (Ace Detective, Robomath, Fraction-oids) +;------------------------------- +_d5d5f7 + ldy #$20 + jsr SearchTrack + !byte $BD,$8C,$C0,$10,$FB,$48,$68,$C9 + !byte $D5,$D0,$F5,$A0,00,$8C,$97,$97 + !byte $BD,$8C,$C0,$10,$FB,$C9,$D5,$F0 + !byte $0F,$C9,$F7,$D0,01,$C8,$18,$6D + bcs d5d5f7_exit + sta gDisplayBytes + pha + lda #s_d5d5f7 + jsr PrintByID + pla + ldy #$01 + jsr modify + !byte $60 +d5d5f7_exit diff --git a/src/patchers/datasoft.a b/src/patchers/datasoft.a new file mode 100755 index 0000000..aad72c1 --- /dev/null +++ b/src/patchers/datasoft.a @@ -0,0 +1,22 @@ +;------------------------------- +; #DATASOFT +; nibble count in encrypted bootloader +; e.g. Video Title Shop, Tomahawk //e +;------------------------------- +_datasoft + lda gIsDatasoft ; only ever seen this protection + bne datasoft_exit ; on Datasoft disks (ID'd earlier) + + ldy #$06 + jsr SearchTrack + !byte $5D,$D4,$80,$49,00,$19 + bcs datasoft_exit + sta gDisplayBytes + pha + lda #s_datasoft + jsr PrintByID + pla + ldy #$01 + jsr modify + !byte $C0 +datasoft_exit diff --git a/src/patchers/davidbb03.a b/src/patchers/davidbb03.a new file mode 100755 index 0000000..4a0afb5 --- /dev/null +++ b/src/patchers/davidbb03.a @@ -0,0 +1,49 @@ +;------------------------------- +; #DAVIDBB03 +; David-DOS boot0 calls $BB03 +; for a self-decrypting nibble +; check which continues to $B7A9 +; on success +; e.g. Case of the Great Train +; Robbery, Case of the Missing +; Chick, Mrs. Wigglesworth's Secret +; Mystery of the Witch's Shoes +;------------------------------- +_davidbb03 + lda #$00 + ldx #$00 + ldy #$38 + jsr compare ; and T00,S00,$00 == + !byte 01,$A5,$27,$C9,09,$D0,$17,$A5 + !byte $2B,$4A,$4A,$4A,$4A,$AA,09,$C0 + !byte $85,$3F,$A9,00,$9D,$78,04,$9D + !byte $F8,04,$A9,$5C,$85,$3E,$AE,$FF + !byte 08,$30,$15,$BD,$ED,08,$85,$3D + !byte $CE,$FF,08,$AD,$FE,08,$85,$27 + !byte $CE,$FE,08,$A6,$2B,$6C,$3E,00 + bcs davidbb03_exit + lda #$00 + ldx #$8B + ldy #$03 + jsr compare ; and T00,S00,$8B == + !byte $20,03,$BB + bcs davidbb03_exit + lda #$07 + ldx #$03 + ldy #$25 + jsr compare ; and T00,S07,$03 == + !byte $4E,06,$BB,$71,$6E + !byte $0A,$BB,$40,$27,$6E,$0F,$BB,$DD + !byte $1B,$BB,$6E,$15,$BB,$DC,$1E,$BB + !byte $6E,$25,$BB,$72,00,$BB,$B3,00 + !byte $B8,$99,00,$BB,$C8,$A0,$F4,$B0 + bcs davidbb03_exit + lda #s_jsrbb03 + jsr PrintByID + lda #$07 + ldx #$03 + ldy #$0B + jsr modify ; then set T00,S07,$03 = + !byte $A9,$B5,$48,$A9,$18,$48,$A0,04 + !byte $4C,$A9,$B7 +davidbb03_exit diff --git a/src/patchers/diskvol.a b/src/patchers/diskvol.a new file mode 100755 index 0000000..4b3b1f9 --- /dev/null +++ b/src/patchers/diskvol.a @@ -0,0 +1,46 @@ +;------------------------------- +; #DISKVOL +; non-standard disk volume prevents +; DOS from loading +;------------------------------- +_diskvol + lda gIsRWTS ; if DOS 3.3 RWTS + bne diskvol_exit + lda #$01 + ldx #$EE + ldy #$01 + jsr compare ; and T00,S01,$EE == + !byte $FB + bcs diskvol_exit + lda #$01 + ldx #$FB + ldy #$04 + jsr compare ; and T00,S01,$FB == + !byte 00,01,$EF,$D8 + bcs diskvol_exit + lda #$08 + ldx #$10 + ldy #$05 + jsr compare ; and T00,S08,$10 == + !byte $A0,03,$B1,$48,$48 + bcs diskvol_exit + lda #$01 + ldx #$EB + ldy #$01 + jsr compare ; and T00,S01,$EB != + !byte $FE + bcc diskvol_exit + lda #$01 + ldx #$EB + ldy #$01 + jsr compare ; and T00,S01,$EB != + !byte 00 + bcc diskvol_exit + lda #s_diskvol + jsr PrintByID + lda #$08 + ldx #$12 + ldy #$02 + jsr modify ; then set T00,S08,$12 = + !byte $A9,00 +diskvol_exit diff --git a/src/patchers/fbff.a b/src/patchers/fbff.a new file mode 100755 index 0000000..612e7cc --- /dev/null +++ b/src/patchers/fbff.a @@ -0,0 +1 @@ +ª­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ª £ÆÂÆƪ ãïííïî ðòïôåãôéïî ãèåãë ôèáôª ìïïëó æïò Æ ÆÆ ÆÆ ÆÆ ÆÆ îéââìåª óåñõåîãå ÷éôè á óðåãéæéã ðáôôåòîª ïæ ôéíéîç âéôó éî âåô÷åå­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ßæâææ ìäù  £¤³³ êóò  ÓåáòãèÔòáãë ÈÅØ ÂøÃð±°ÆÂðÆÂÄ° ÈÅØ ÅÄÆ°°°ÅÁÅÁÂøÃð ÈÅؠ𰸲Á°°ÂÂøÃð ÈÅØ ±°ÆÂðÆÆİĸưÅ ÈÅØ ÂøÃð±°Æ¸´¹·Ã¹ ÈÅØ °ÁÄ°ÃÂÂĸÃð±°Æ ÈÅØ ³¸²Á²µ âãó  ºåøéô óôá çÄéóðìáùÂùôåó óôᠺ᫱ óôø ºø«± ìäá £óßæâææ êóò ÐòéîôÂùÉÄ ìäá £¤°´ óôá ºãïõîô«±ºãïõîô ìäø £¤ÆÆ » íïäéæéåä áô òõîôéíå âíé ºåøéô ìäá ºçáð¬ø ãìã áäã ºø«± óôá ºø«± âãã º° éî㠺᫱º° ìäá ºöáìõå¬ø óôá ºíïäöáìºá ìäá £¤ÆÆ » íïäéæéåä áô òõîôéíåºø ìäø £¤ÆÆ » íïäéæéåä áô òõîôéíå ìäù £¤°± êóò íïäéæùºíïäöáì ÈÅØ ÆÆ » íïäéæéåä áô òõîôéíå äåã ºãïõîô«± êíð ºãïõîôºçáð ÈÅØ °±°¹±·°Ã°¶ºöáìõå ÈÅØ ÆÆÁ¹²´³¸Äµºåøéô \ No newline at end of file diff --git a/src/patchers/jmpae8e.a b/src/patchers/jmpae8e.a new file mode 100755 index 0000000..475f0e5 --- /dev/null +++ b/src/patchers/jmpae8e.a @@ -0,0 +1,25 @@ +;------------------------------- +; #JMPAE8E +; Late stage DOS jumps to $AE8E +; for a nibble check +; e.g. Alien Addition +;------------------------------- +_jmpae8e + lda gIsBoot0 ; if DOS 3.3 boot0 loader + bne jmpae8e_exit + lda gIsBoot1 ; and DOS 3.3 boot1 loader + bne jmpae8e_exit + lda #$0D + ldx #$4D + ldy #$03 + jsr compare ; and T00,S0D,$4D == + !byte $4C,$8E,$AE + bcs jmpae8e_exit + lda #s_jmpae8e + jsr PrintByID + lda #$0D + ldx #$4E + ldy #$02 + jsr modify ; then set T00,S0D,$4E = + !byte $80,$A1 +jmpae8e_exit diff --git a/src/patchers/jmpb400.a b/src/patchers/jmpb400.a new file mode 100755 index 0000000..7a3ab1e --- /dev/null +++ b/src/patchers/jmpb400.a @@ -0,0 +1,26 @@ +;------------------------------- +; #JMPB400 +; boot1 jumps to nibble check at +; $B400 instead of $9D84 +; e.g. Decimal Discovery +;------------------------------- +_jmpb400 + lda gIsBoot0 ; if DOS 3.3 boot0 loader + bne jmpb400_exit + lda gIsBoot1 ; and DOS 3.3 boot1 loader + bne jmpb400_exit + lda #$01 + sta gDisplayBytes + ldx #$47 + ldy #$03 + jsr compare ; and T00,S01,$47 == + !byte $4C,00,$B4 + bcs jmpb400_exit + lda #s_jmpb400 + jsr PrintByID + lda #$01 + ldx #$48 + ldy #$02 + jsr modify ; then set T00,S01,$48 = + !byte $84,$9D +jmpb400_exit diff --git a/src/patchers/jmpb4bb.a b/src/patchers/jmpb4bb.a new file mode 100755 index 0000000..754f691 --- /dev/null +++ b/src/patchers/jmpb4bb.a @@ -0,0 +1,39 @@ +;------------------------------- +; #JMPB4BB +; boot2 jumps to $B4BB for a +; nibble check +; e.g. Troll's Tale +;------------------------------- +_jmpb4bb + lda gIsMaster ; if DOS 3.3 lomem bootloader + bne jmpb4bb_exit + lda #$0C + sta gDisplayBytes + ldx #$84 + ldy #$03 + jsr compare ; and T00,S0C,$84 == + !byte $4C,$BB,$B4 + bcs jmpb4bb_exit + lda #s_jmpb4bb + lda #$0C + ldx #$84 + ldy #$03 + jsr modify ; then set T00,S0C,$84 = + !byte $AD,$E9,$37 +; +; also check a variant that redirects the DOS input +; vector through code that is only loaded by the +; protection check we just bypassed +; + lda #$0D + ldx #$BA + ldy #$03 + jsr compare ; if T00,S0D,$BA == + !byte $4C,$0B,$37 + bcs jmpb4bb_exit + lda #$0D + ldx #$BA + ldy #$03 + jsr modify ; then set T00,S0D,$BA = + !byte $6C,$38,00 +jmpb4bb_exit diff --git a/src/patchers/jmpb4bbhi.a b/src/patchers/jmpb4bbhi.a new file mode 100755 index 0000000..16b4ee3 --- /dev/null +++ b/src/patchers/jmpb4bbhi.a @@ -0,0 +1,24 @@ +;------------------------------- +; #JMPB4BBHI +; boot2 jumps to $B4BB for a +; nibble check +; e.g. Snooper Troops 2 +;------------------------------- +_jmpb4bbhi + lda gIsBoot1 ; if DOS 3.3 bootloader + bne jmpb4bbhi_exit + lda #$0C + sta gDisplayBytes + ldx #$84 + ldy #$03 + jsr compare ; and T00,S0C,$84 == + !byte $4C,$BB,$B4 + bcs jmpb4bbhi_exit + lda #s_jmpb4bb + jsr PrintByID + lda #$0C + ldx #$84 + ldy #$03 + jsr modify ; then set T00,S0C,$84 = + !byte $AD,$E9,$B7 +jmpb4bbhi_exit diff --git a/src/patchers/jmpb660.a b/src/patchers/jmpb660.a new file mode 100755 index 0000000..6e03615 --- /dev/null +++ b/src/patchers/jmpb660.a @@ -0,0 +1,26 @@ +;------------------------------- +; #JMPB660 +; RWTS jumps to $B660 instead of +; checking third data prologue +; e.g. Analogies Tutorial, Verb Viper +;------------------------------- +_jmpb660 + lda gIsRWTS ; if DOS 3.3-shaped RWTS + bne jmpb660_exit + lda #$02 + ldx #$DC + ldy #$1D + jsr compare ; and T00,S02,$DC == + !byte $A0,$20,$88,$F0,$61,$BD,$8C,$C0 + !byte $10,$FB,$49,$97,$D0,$F4,$EA,$BD + !byte $8C,$C0,$10,$FB,$C9,$97,$D0,$F2 + !byte $A0,$56,$4C,$60,$B6 + bcs jmpb660_exit + lda #s_jmpb660 + jsr PrintByID + lda #$02 + ldx #$F6 + ldy #$03 + jsr modify ; then set T00,S02,$F6 = + !byte $BD,$8C,$C0 +jmpb660_exit diff --git a/src/patchers/jmpb720.a b/src/patchers/jmpb720.a new file mode 100755 index 0000000..b182c38 --- /dev/null +++ b/src/patchers/jmpb720.a @@ -0,0 +1,24 @@ +;------------------------------- +; #JMPB720 +; RWTS swapper forcibly reinstalls +; a jump to $B720 instead of writing +; third data prologue +; e.g. Analogies Tutorial, Verb Viper +;------------------------------- +_jmpb720 + lda gIsRWTS ; if DOS 3.3-shaped RWTS + bne jmpb720_exit + lda #$0B + ldx #$08 + ldy #$18 + jsr compare ; and T00,S0B,$08 == + !byte $4C,$20,$B7,$4C,$0E,$A9,$A2,02 + !byte $BD,$0B,$B7,$9D,$5E,$B8,$BD,08 + !byte $B7,$9D,$F6,$B8,$CA,$10,$F1,$60 + bcs jmpb720_exit + lda #$0B + ldx #$08 + ldy #$06 + jsr modify ; then set T00,S0B,$08 = + !byte $BD,$8C,$C0,$20,$B8,$B8 +jmpb720_exit diff --git a/src/patchers/jmpbbfe.a b/src/patchers/jmpbbfe.a new file mode 100755 index 0000000..934e605 --- /dev/null +++ b/src/patchers/jmpbbfe.a @@ -0,0 +1,21 @@ +;------------------------------- +; #JMPBBFE +; boot0 jumps to nibble check at +; ($BBFE) instead of ($08FD) +; e.g. Mind Over Matter +;------------------------------- +_jmpbbfe + lda gIsBoot0 ; if DOS 3.3 boot0 loader + bne jmpbbfe_exit + lda #$00 + ldx #$4A + ldy #$03 + jsr compare ; and T00,S00,$4A == + !byte $6C,$FE,$BB + bcs jmpbbfe_exit + lda #$00 + ldx #$4B + ldy #$02 + jsr modify ; then set T00,S00,$4B = + !byte $FD,08 +jmpbbfe_exit diff --git a/src/patchers/jmpbcf0.a b/src/patchers/jmpbcf0.a new file mode 100755 index 0000000..08a90a8 --- /dev/null +++ b/src/patchers/jmpbcf0.a @@ -0,0 +1,25 @@ +;------------------------------- +; #JMPBCF0 +; $B999 jumps to $BCF0 to count +; timing bits in data epilogue +; e.g. Easy as ABC +; NOTE: must be run before RWTS +; patchers due to overlapping bytes +;------------------------------- +_jmpbcf0 + lda gIsRWTS ; if DOS 3.3 RWTS + bne jmpbcf0_exit + lda #$03 + ldx #$94 + ldy #$08 + jsr compare ; and T00,S03,$94 == + !byte $DD,$8C,$C0,$D0,$A9,$4C,$F0,$BC + bcs jmpbcf0_exit + lda #s_jmpbcf0 + jsr PrintByID + lda #$03 + ldx #$94 + ldy #$08 + jsr modify ; then set T00,S03,$94 = + !byte $EA,$BD,$8C,$C0,$10,$FB,$C9,$AA +jmpbcf0_exit diff --git a/src/patchers/jmpbeb1.a b/src/patchers/jmpbeb1.a new file mode 100755 index 0000000..1b93c5b --- /dev/null +++ b/src/patchers/jmpbeb1.a @@ -0,0 +1,46 @@ +;------------------------------- +; #JMPBEB1 +; RWTS calls $BEB1 after writing +; data prologue +; e.g. Terrapin Logo 1.2, Starting with Phonics +; NOTE: must be run before RWTS +; patchers due to overlapping bytes +;------------------------------- +_jmpbeb1 + lda gIsRWTS ; if DOS 3.3 RWTS + bne jmpbeb1_exit + lda #$02 + ldx #$48 + ldy #$10 + jsr compare ; and T00,S03,$48 == + !byte $A0,03,$48,$68,$20,$B9,$B8,$88 + !byte $D0,$F8,$4C,$B1,$BE,$EA,$EA,$A9 + bcs jmpbeb1_exit + lda #$02 + ldx #$59 + ldy #$04 + jsr compare ; and T00,S02,$59 == + !byte $20,$B8,$B8,$A9 + bcs jmpbeb1_exit + lda #$02 + ldx #$5E + ldy #$03 + jsr compare ; and T00,S04,$5E == + !byte $20,$BB,$B8 + bcs jmpbeb1_exit + lda #$02 + ldx #$49 + ldy #$01 + jsr modify ; then set T00,S02,$49 = + !byte 04 + lda #$02 + ldx #$52 + ldy #$05 + jsr modify ; and set T00,S02,$52 = + !byte $A9,$D5,$20,$B8,$B8 + lda #$02 + ldx #$5F + ldy #$01 + jsr modify ; and set T00,S02,$5F = + !byte $B8 +jmpbeb1_exit diff --git a/src/patchers/jmpbeca.a b/src/patchers/jmpbeca.a new file mode 100755 index 0000000..4e5985d --- /dev/null +++ b/src/patchers/jmpbeca.a @@ -0,0 +1,27 @@ +;------------------------------- +; #JMPBECA +; RWTS calls $BECA after reading +; data prologue to burn cycles +; e.g. Terrapin Logo 1.2, Starting with Phonics +; NOTE: must be run before RWTS +; patchers due to overlapping bytes +;------------------------------- +_jmpbeca + lda gIsRWTS ; if DOS 3.3 RWTS + bne jmpbeca_exit + lda #$02 + ldx #$F4 + ldy #$0D + jsr compare ; and T00,S02,$F4 == + !byte $EA,$BD,$8C,$C0,$10,$FB,$C9,$AD + !byte $D0,$E8,$4C,$CA,$BE + bcs jmpbeca_exit + lda #s_jmpbeca + jsr PrintByID + lda #$02 + ldx #$F4 + ldy #$0D + jsr modify ; and set T00,S02,$F4 = + !byte $A0,$56,$BD,$8C,$C0,$10,$FB,$C9 + !byte $AD,$D0,$E7,$A9,$00 +jmpbeca_exit diff --git a/src/patchers/jmpbeca2.a b/src/patchers/jmpbeca2.a new file mode 100755 index 0000000..7d40cfc --- /dev/null +++ b/src/patchers/jmpbeca2.a @@ -0,0 +1,28 @@ +;------------------------------- +; #JMPBECA2 +; RWTS calls $BECA for funny business +; instead of checking data prologue +; (variation #2) +; e.g. Library Magic +; NOTE: must be run before RWTS +; patchers due to overlapping bytes +;------------------------------- +_jmpbeca2 + lda gIsRWTS ; if DOS 3.3 RWTS + bne jmpbeca2_exit + lda #$02 + ldx #$F4 + ldy #$0D + jsr compare ; and T00,S02,$F4 == + !byte $4C,$CA,$BE,$EA,$BD,$8C,$C0,$10 + !byte $FB,$49,$AD,$D0,$DD + bcs jmpbeca2_exit + lda #s_jmpbeca + jsr PrintByID + lda #$02 + ldx #$F4 + ldy #$0D + jsr modify ; and set T00,S02,$F4 = + !byte $A0,$56,$BD,$8C,$C0,$10,$FB,$C9 + !byte $AD,$D0,$E7,$A9,00 +jmpbeca2_exit diff --git a/src/patchers/jsrbb03.a b/src/patchers/jsrbb03.a new file mode 100755 index 0000000..488f5b9 --- /dev/null +++ b/src/patchers/jsrbb03.a @@ -0,0 +1,37 @@ +;------------------------------- +; #JSRBB03 +; boot1 calls $BB03 for a self- +; decrypting nibble check which +; continues to $B793 on success +; e.g. Classifying Animals with +; Backbones, EduCalc +;------------------------------- +_jsrbb03 + lda gIsBoot0 ; if DOS 3.3 boot0 loader + bne jsrbb03_exit + lda gIsBoot1 ; and DOS 3.3 boot1 loader + bne jsrbb03_exit + lda #$01 + ldx #$38 + ldy #$03 + jsr compare ; and T00,S01,$38 == + !byte $20,03,$BB + bcs jsrbb03_exit + lda #$05 + ldx #$03 + ldy #$25 + jsr compare ; and T00,S05,$03 == + !byte $4E,06,$BB,$71,$6E + !byte $0A,$BB,$40,$27,$6E,$0F,$BB,$DD + !byte $1B,$BB,$6E,$15,$BB,$DC,$1E,$BB + !byte $6E,$25,$BB,$72,00,$BB,$B3,00 + !byte $B8,$99,00,$BB,$C8,$A0,$F4,$B0 + bcs jsrbb03_exit + lda #s_jsrbb03 + jsr PrintByID + lda #$05 + ldx #$03 + ldy #$09 + jsr modify ; then set T00,S05,$03 = + !byte $A9,$B5,$48,$A9,$18,$48,$4C,$93,$B7 +jsrbb03_exit diff --git a/src/patchers/meccm7.a b/src/patchers/meccm7.a new file mode 100755 index 0000000..fd90b6b --- /dev/null +++ b/src/patchers/meccm7.a @@ -0,0 +1,126 @@ +;------------------------------- +; #MECCM7 +; MECC fastloader with custom +; address and data prologues +; e.g. Phonics Prime Time series +;------------------------------- +_meccm7 + lda #$00 + ldx #$00 + ldy #$17 + jsr compare ; if T00,S00,$00 == + !byte 01,$4C,$1A,08,$17,$0F,00,00 + !byte $0D,$0B,09,07,05,03,01,$0E + !byte $0C,$0A,08,06,04,02,$0F + bcs meccm7_exit + lda #$07 + ldx #$7D + ldy #$06 + jsr compare ; and T00,S07,$7D == + !byte $BD,$8C,$C0,$10,$FB,$C9 + bcs meccm7_exit + lda #$07 + ldx #$84 + ldy #$09 + jsr compare ; and T00,S07,$84 == + !byte $D0,$F0,$EA,$BD,$8C,$C0,$10,$FB,$C9 + bcs meccm7_exit + lda #$07 + ldx #$8E + ldy #$0A + jsr compare ; and T00,S07,$8E == + !byte $D0,$F2,$A0,03,$BD,$8C,$C0,$10,$FB,$C9 + bcs meccm7_exit + lda #$07 + ldx #$0F + ldy #$06 + jsr compare ; and T00,S07,$0F == + !byte $BD,$8C,$C0,$10,$FB,$49 + bcs meccm7_exit + lda #$07 + ldx #$18 + ldy #$07 + jsr compare ; and T00,S07,$18 == + !byte $EA,$BD,$8C,$C0,$10,$FB,$C9 + bcs meccm7_exit + lda #$07 + ldx #$20 + ldy #$0A + jsr compare ; and T00,S07,$20 == + !byte $D0,$F2,$A0,$56,$BD,$8C,$C0,$10,$FB,$C9 + bcc meccm7_allclear +meccm7_exit + jmp meccm7_exit2 +meccm7_allclear + lda #$07 + ldx #$83 + ldy #$01 + jsr compare ; if T00,S07,$83 != + !byte $D5 + bcc meccm7_addr2 + lda #$07 + ldx #$83 + ldy #$01 + jsr modify ; then set T00,S07,$83 = + !byte $D5 +meccm7_addr2 + lda #$07 + ldx #$8D + ldy #$01 + jsr compare ; if T00,S07,$8D != + !byte $AA + bcc meccm7_addr3 + lda #$07 + ldx #$8D + ldy #$01 + jsr modify ; then set T00,S07,$8D = + !byte $AA +meccm7_addr3 + lda #$07 + ldx #$98 + ldy #$01 + jsr compare ; if T00,S07,$98 != + !byte $96 + bcc meccm7_data1 + lda #$07 + ldx #$98 + ldy #$01 + jsr modify ; then set T00,S07,$98 = + !byte $96 +meccm7_data1 + lda #$07 + ldx #$15 + ldy #$01 + jsr compare ; if T00,S07,$15 != + !byte $D5 + bcc meccm7_data2 + lda #$07 + ldx #$15 + ldy #$01 + jsr modify ; then set T00,S07,$15 = + !byte $D5 +meccm7_data2 + lda #$07 + ldx #$1F + ldy #$01 + jsr compare ; if T00,S07,$1F != + !byte $AA + bcc meccm7_data3 + lda #$07 + ldx #$1F + ldy #$01 + jsr modify ; then set T00,S07,$1F = + !byte $AA +meccm7_data3 + lda #$07 + ldx #$2A + ldy #$01 + jsr compare ; if T00,S07,$2A != + !byte $AD + bcc meccm7_exit2 + lda #$07 + ldx #$2A + ldy #$01 + jsr modify ; then set T00,S07,$2A = + !byte $AD +meccm7_exit2 diff --git a/src/patchers/meccm8.a b/src/patchers/meccm8.a new file mode 100755 index 0000000..54d2626 --- /dev/null +++ b/src/patchers/meccm8.a @@ -0,0 +1,130 @@ +;------------------------------- +; #MECCM8 +; MECC fastloader with custom +; address and data prologues +; e.g. Word Munchers +;------------------------------- +_meccm8 + lda #$00 + ldx #$00 + ldy #$17 + jsr compare ; if T00,S00,$00 == + !byte 01,$4C,$1A,08,$17,$0F,00,00 + !byte $0D,$0B,09,07,05,03,01,$0E + !byte $0C,$0A,08,06,04,02,$0F + bcs meccm8_exit + lda #$0B + ldx #$02 + ldy #$06 + jsr compare ; and T00,S0B,$02 == + !byte $BD,$8C,$C0,$10,$FB,$C9 + bcs meccm8_exit + lda #$0B + ldx #$09 + ldy #$09 + jsr compare ; and T00,S0B,$09 == + !byte $D0,$EF,$EA,$BD,$8C,$C0,$10,$FB + !byte $C9 + bcs meccm8_exit + lda #$0B + ldx #$13 + ldy #$0A + jsr compare ; and T00,S0B,$13 == + !byte $D0,$E5,$A0,$03,$BD,$8C,$C0,$10 + !byte $FB,$C9 + bcs meccm8_exit + lda #$0B + ldx #$89 + ldy #$06 + jsr compare ; and T00,S0B,$89 == + !byte $BD,$8C,$C0,$10,$FB,$C9 + bcs meccm8_exit + lda #$0B + ldx #$90 + ldy #$09 + jsr compare ; and T00,S0B,$90 == + !byte $D0,$F4,$EA,$BD,$8C,$C0,$10,$FB + !byte $C9 + bcs meccm8_exit + lda #$0B + ldx #$9A + ldy #$09 + jsr compare ; and T00,S0B,$9A == + !byte $D0,$F2,$EA,$BD,$8C,$C0,$10,$FB + !byte $C9 + bcc meccm8_allclear +meccm8_exit + jmp meccm8_exit2 +meccm8_allclear + lda #$0B + ldx #$08 + ldy #$01 + jsr compare ; if T00,S0B,$08 != + !byte $D5 + bcc meccm8_addr2 + lda #$0B + ldx #$08 + ldy #$01 + jsr modify ; then set T00,S0B,$0B = + !byte $D5 +meccm8_addr2 + lda #$0B + ldx #$12 + ldy #$01 + jsr compare ; if T00,S0B,$12 != + !byte $AA + bcc meccm8_addr3 + lda #$0B + ldx #$12 + ldy #$01 + jsr modify ; then set T00,S0B,$12 = + !byte $AA +meccm8_addr3 + lda #$0B + ldx #$1D + ldy #$01 + jsr compare ; if T00,S0B,$1D != + !byte $96 + bcc meccm8_data1 + lda #$0B + ldx #$1D + ldy #$01 + jsr modify ; then set T00,S0B,$1D = + !byte $96 +meccm8_data1 + lda #$0B + ldx #$8F + ldy #$01 + jsr compare ; if T00,S0B,$8F != + !byte $D5 + bcc meccm8_data2 + lda #$0B + ldx #$8F + ldy #$01 + jsr modify ; then set T00,S0B,$8F = + !byte $D5 +meccm8_data2 + lda #$0B + ldx #$99 + ldy #$01 + jsr compare ; if T00,S0B,$99 != + !byte $AA + bcc meccm8_data3 + lda #$0B + ldx #$99 + ldy #$01 + jsr modify ; then set T00,S0B,$99 = + !byte $AA +meccm8_data3 + lda #$0B + ldx #$A3 + ldy #$01 + jsr compare ; if T00,S0B,$A3 != + !byte $AD + bcc meccm8_exit2 + lda #$0B + ldx #$A3 + ldy #$01 + jsr modify ; then set T00,S0B,$A3 = + !byte $AD +meccm8_exit2 diff --git a/src/patchers/nibtable.a b/src/patchers/nibtable.a new file mode 100755 index 0000000..6631123 --- /dev/null +++ b/src/patchers/nibtable.a @@ -0,0 +1,136 @@ +;------------------------------- +; #NIBTABLE +; detect and fix non-standard +; nibble-to-byte translation +; e.g. Travels with Za-Zoom +;------------------------------- +_nibtable + jmp checkread + +readdata + !byte 00,01 + !byte $98,$99,02,03,$9C,04,05,06 + !byte $A0,$A1,$A2,$A3,$A4,$A5,07,08 + !byte $A8,$A9,$AA,09,$0A,$0B,$0C,$0D + !byte $B0,$B1,$0E,$0F,$10,$11,$12,$13 + !byte $B8,$14,$15,$16,$17,$18,$19,$1A + !byte $C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7 + !byte $C8,$C9,$CA,$1B,$CC,$1C,$1D,$1E + !byte $D0,$D1,$D2,$1F,$D4,$D5,$20,$21 + !byte $D8,$22,$23,$24,$25,$26,$27,$28 + !byte $E0,$E1,$E2,$E3,$E4,$29,$2A,$2B + !byte $E8,$2C,$2D,$2E,$2F,$30,$31,$32 + !byte $F0,$F1,$33,$34,$35,$36,$37,$38 + !byte $F8,$39,$3A,$3B,$3C,$3D,$3E,$3F + +writedata + !byte $96,$97,$9A,$9B,$9D,$9E,$9F,$A6 + !byte $A7,$AB,$AC,$AD,$AE,$AF,$B2,$B3 + !byte $B4,$B5,$B6,$B7,$B9,$BA,$BB,$BC + !byte $BD,$BE,$BF,$CB,$CD,$CE,$CF,$D3 + !byte $D6,$D7,$D9,$DA,$DB,$DC,$DD,$DE + !byte $DF,$E5,$E6,$E7,$E9,$EA,$EB,$EC + !byte $ED,$EE,$EF,$F2,$F3,$F4,$F5,$F6 + !byte $F7,$F9,$FA,$FB,$FC,$FD,$FE,$FF + +checkread + lda gIsRWTS ; if DOS 3.3 RWTS + bne nibtable_exit + lda #$02 + ldx #$6D + ldy #$03 + jsr compare ; and T00,S02,$6D == + !byte $BD,$29,$BA + bcs checkwrite + lda #$02 + ldx #$82 + ldy #$03 + jsr compare ; and T00,S02,$82 == + !byte $BD,$29,$BA + bcs checkwrite + lda #$02 + ldx #$95 + ldy #$03 + jsr compare ; and T00,S02,$95 == + !byte $BD,$29,$BA + bcs checkwrite + jsr fixwrite +checkwrite + lda #$03 + ldx #$09 + ldy #$03 + jsr compare ; if T00,S03,$09 == + !byte $59,00,$BA + bcs nibtable_exit + lda #$03 + ldx #$1A + ldy #$03 + jsr compare ; and T00,S03,$1A == + !byte $59,00,$BA + bcs nibtable_exit + lda #$03 + ldx #$2A + ldy #$03 + jsr compare ; and T00,S03,$2A == + !byte $D9,00,$BA + bcs nibtable_exit + jsr fixread +nibtable_exit + jmp nibtable_exit2 + +fixread + lda #$00 + sta nibsrcindex + lda #$96 + sta nibdestindex +nibtable_read + ldx nibsrcindex + lda readdata,x + sta nibcmpr + sta nibmodr + lda #$04 + ldx nibdestindex + ldy #$01 + jsr compare +nibcmpr !byte $FF + bcc nomodr + lda #$04 + ldx nibdestindex + ldy #$01 + jsr modify +nibmodr !byte $FF +nomodr + inc nibsrcindex + inc nibdestindex + bne nibtable_read + rts + +fixwrite + lda #$00 + sta nibsrcindex + lda #$29 + sta nibdestindex +nibtable_write + ldx nibsrcindex + lda writedata,x + sta nibcmpw + sta nibmodw + lda #$04 + ldx nibdestindex + ldy #$01 + jsr compare +nibcmpw !byte $FF + bcc nomodw + lda #$04 + ldx nibdestindex + ldy #$01 + jsr modify +nibmodw !byte $FF +nomodw + inc nibsrcindex + inc nibdestindex + lda nibsrcindex + cmp #$40 + bne nibtable_write + rts +nibtable_exit2 diff --git a/src/patchers/prodosmecc.a b/src/patchers/prodosmecc.a new file mode 100755 index 0000000..e712454 --- /dev/null +++ b/src/patchers/prodosmecc.a @@ -0,0 +1,146 @@ +;------------------------------- +; #PRODOSMECC +; patch MECC-specific bits on +; ProDOS-based MECC disks +; [thanks LoGo] +;------------------------------- +_prodosmecc + lda gIsProDOS + beq + + jmp prodosmecc_exit ++ + ldy #$0E + jsr SearchTrack + !byte $50,$54,$58,$5C,$60,$64,$68,00 + !byte $20,$10,$30,$97,$AA,$EB + bcs + + sta gDisplayBytes + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + ldy #$01 + jsr compare + !byte $DE + bcc + + ldy #$01 + jsr modify + !byte $DE ++ + ldy #$15 + jsr SearchTrack + !byte $AD,$C4,$D1,$CD,$C8,$D4,08,$2C + !byte $81,$C0,$28,$D0,06,$C9,$DE,$F0 + !byte 02,$18,$24,$38,$60 + bcs + + sta gDisplayBytes + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + ldy #$01 + jsr compare + !byte $38 + bcs + + ldy #$01 + jsr modify + !byte $18 ++ + ldy #$18 + jsr SearchTrack + +; variation seen in e.g. A-232 Spelling Press + + !byte $AD,$C4,$D1,$CD,$C8,$D4,08,$2C + !byte $81,$C0,$28,$D0,09,$8D,$97,$97 + !byte $C9,$DE,$F0,02,$18,$24,$38,$60 + bcs + + sta gDisplayBytes + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + ldy #$01 + jsr compare + !byte $38 + bcs + + ldy #$01 + jsr modify + !byte $18 ++ + ldy #$0C + jsr SearchTrack + !byte $30,$A2,$20,00,$BF,$80,$97,$97,$B0,$98,$38,$60 + bcs + + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + ldy #$01 + jsr compare + !byte $38 + bcs + + ldy #$01 + jsr modify + !byte $18 ++ + ldy #$0B + jsr SearchTrack + !byte $30,$91,$38,$60,00,$20,00,03,00,03,00 + bcs prodosmecc_exit + inx + inx + ldy #$01 + jsr compare + !byte $38 + bcs prodosmecc_exit + ldy #$01 + jsr modify + !byte $18 +prodosmecc_exit diff --git a/src/patchers/prodosrwts.a b/src/patchers/prodosrwts.a new file mode 100755 index 0000000..6a25cee --- /dev/null +++ b/src/patchers/prodosrwts.a @@ -0,0 +1,38 @@ +;------------------------------- +; #PRODOSRWTS +; patch ProDOS RWTS +; e.g. ProDOS-based MECC disks +;------------------------------- +_prodosrwts + lda gIsProDOS + bne prodosrwts_exit + ldy #$14 + jsr SearchTrack + !byte $29,$FC,$5D,$97,$97,$D0,$0C,$A6 + !byte $97,$BD,$8C,$C0,$10,$FB,$C9,$97 + !byte $18,$F0,01,$38 + bcs prodosrwts_exit + sta gDisplayBytes + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + inx + ldy #$01 + jsr compare + !byte $DE + bcc prodosrwts_exit + ldy #$01 + jsr modify + !byte $DE +prodosrwts_exit diff --git a/src/patchers/protecteddos.a b/src/patchers/protecteddos.a new file mode 100755 index 0000000..c3d7102 --- /dev/null +++ b/src/patchers/protecteddos.a @@ -0,0 +1,223 @@ +;------------------------------- +; #PROTECTEDDOS +; patcher for "Protected.DOS", +; an insane full-DOS makeover with a self- +; decrypting bootloader, RWTS swappers, +; embedded serial numbers, and more +; e.g. Bingo Bugglebee Presents series +; (Home Alone / Outdoor Safety / Famous People), +; Math Blaster, Moebius +;------------------------------- +_protdos + lda gIsProtDOS + beq + + jmp protdos_exit ++ +; +; Find secondary/tertiary RWTS swappers on any track +; e.g. Moebius +; + ldy #$0C + jsr SearchTrack + !byte $A9,$B5,$85,$4E,$8D,$5D,$BD,$A9 + !byte $D5,$8D,$2C,$BF + bcs specific + sta swapper2+1 + inx + stx swapper1+1 + ldy #$01 + jsr modify ; offset $01: $B5 -> $AD + !byte $AD +swapper1 + lda #$FF ; modified at runtime + clc + adc #$07 + tax +swapper2 + lda #$FF ; modified at runtime + ldy #$01 + jsr modify ; offset $08: $D5 -> 9B + !byte $9B + +specific + lda gTrack + cmp #$02 + bcc strip + jmp protdos_exit +strip +; +; strip 6-digit numeric serial number +; (appears on both track 0 and 1, but +; in different sectors) +; + cmp #$01 + beq + + lda #BASEPAGE + clc + adc #$0B + tax + lda #$0B + jmp ++ ++ + ldx #BASEPAGE + inx + inx + lda #$02 +++ + stx serial+2 + stx serialb+2 + sta gDisplayBytes+3 + lda #$C5 + sta serial+1 + sta serialb+1 + ldy #$00 +serialloop + jsr serial + tax + jsr serial + jsr XA2byte + sta gDisplayBytes,y + iny + cpy #$03 + bne serialloop + lda #s_protserial + jsr PrintByID + + lda gTrack + beq track0 + +; +; disable RWTS swapper (technically make the +; "protected disk" mode the same as the +; "standard disk" mode) +; + lda #$02 + ldx #$AF + ldy #$0C + jsr compare ; if T01,S02,$AF == + !byte $A2,$B5,$86,$4E,$8E,$5D,$BD,$A2 + !byte $D5,$8E,$2C,$BF + bcs exitt1 + lda #$02 + ldx #$B0 + ldy #$01 + jsr modify ; then set T01,S02,$B0 = + !byte $AD + lda #$02 + ldx #$B7 + ldy #$01 + jsr modify ; and set T01,S02,$B7 = + !byte $9B + +exitt1 + jmp protdos_exit + +:track0 +; +; decrypt RWTS in track buffer +; + lda #s_protdosw + jsr PrintByID + ldx #BASEPAGE + inx + stx a+2 + stx b+2 + stx c+2 +a lda $FF06 ; modified at runtime + sta pdkey+1 + ldx #$09 + ldy #$1A +b lda $FF00,Y ; modified at runtime +pdkey eor #$FF ; modified at runtime +c sta $FF00,Y ; modified at runtime + iny + bne b + inc b+2 + inc c+2 + dex + bne b + +; +; disable decryption loop +; + lda #$01 + ldx #$07 + ldy #$01 + jsr modify ; set T00,S01,$07 = + !byte $2C + +; +; bypass check for duplicate T00,S00 +; + lda #$01 + ldx #$93 + ldy #$03 + jsr compare ; if T00,S01,$93 == + !byte $4C,00,$B8 + bcs skipcheck + ldy #$03 + jsr modify ; then set T00,S01,$93 = + !byte $AC,$E5,$B7 +skipcheck + +; +; fake "found disk volume" in RWTS parameter table +; so it's always 0 (many Davidson disks have +; multiple secondary checks for this) +; + lda #$05 + ldx #$15 + ldy #$02 + jsr compare ; if T00,S05,$15 == + !byte $A5,$2F + bcs protdos_exit + ldy #$02 + jsr modify ; then set T00,S05,$15 = + !byte $A9,00 + +; +; re-enable write mode if it was disabled +; + lda #$07 + ldx #$48 + ldy #$19 + jsr compare ; if T00,S07,$48 == + !byte $A0,04,$48,$68,$A0,$B9,$BD,$88 + !byte $D0,$F8,$A9,$97,$20,$B8,$BD,$A9 + !byte $97,$20,$B8,$BD,$A9,$97,$20,$B8 + !byte $BD + bcs writeIsOK + ldx #$4C + ldy #$01 + jsr modify ; then set T00,S07,$4C = + !byte $20 +writeIsOK + jmp protdos_exit + +; subroutines for getting (and erasing) the embedded +; 6-digit serial number and converting them to bytes +; for printing +serial + lda $FFFF ; modified at runtime + pha + lda #$B0 +serialb + sta $FFFF ; modified at runtime + pla + inc serial+1 + inc serialb+1 + inc gPatchCount + rts + +XA2byte + and #$0F + sta tmp + txa + asl + asl + asl + asl + ora tmp + rts + +protdos_exit diff --git a/src/patchers/rol1e.a b/src/patchers/rol1e.a new file mode 100755 index 0000000..f8598eb --- /dev/null +++ b/src/patchers/rol1e.a @@ -0,0 +1,35 @@ +;------------------------------- +; #ROL1E +; RWTS stores timing bits in $1E +; e.g. Spellicopter +;------------------------------- +_rol1e + lda #$03 + ldx #$00 + ldy #$2F + jsr compare ; if T00,S03,$00 == + !byte $86,$1B,$BA,$BD,02,01,$85,03 + !byte $18,$69,04,$85,05,$A0,00,$84 + !byte 02,$A0,$40,$84,04,$A0,$39,$A9 + !byte $93,$91,02,$C8,$A5,03,$91,02 + !byte $A0,$7F,$B1,04,$99,00,08,$88 + !byte $10,$F8,$A6,$1B,$4C,00,08 + bcs rol1e_exit + lda #$03 + ldx #$40 + ldy #$28 + jsr compare ; and T00,S03,$40 == + !byte $A9,00,$A0,$EC,$91,02,$C8,$91 + !byte 02,$A9,09,$A0,$F1,$91,02,$A9 + !byte 08,$A0,$E1,$91,02,$A9,$4C,$85 + !byte 01,$A9,$93,$85,02,$20,01,00 + !byte $A0,00,$84,02,$A5,$1E,$85,08 + bcs rol1e_exit + lda #s_rol1e + jsr PrintByID + lda #$03 + ldx #$64 + ldy #$02 + jsr modify ; then set T00,S03,$64 = + !byte $A9,$F7 +rol1e_exit diff --git a/src/patchers/runhello.a b/src/patchers/runhello.a new file mode 100755 index 0000000..e26248a --- /dev/null +++ b/src/patchers/runhello.a @@ -0,0 +1,52 @@ +;------------------------------- +; #RUNHELLO +; search and destroy a protection check +; in a startup file that runs the real +; startup program after succeeding +; e.g. Microzine 15, Alpine Tram Ride +;------------------------------- +_runhello + lda gIsProDOS ; this exact protection is only + beq runhello_exit ; on DOS 3.3 disks (other patchers + lda gIsPascal ; will catch other variations) + beq runhello_exit + lda #$0F + sta rhsector+1 +rhsector lda #$FF ; modified at runtime + ldx #$04 + ldy #$05 + jsr compare + !byte $20,$E3,03,$85,$FB + bcc + + jmp rhnextsector ++ + lda rhsector+1 + ldx #$19 + ldy #$06 + jsr compare + !byte $CA,$10,$F8,$8A,$48,$20 + bcc + + jmp rhnextsector ++ + lda rhsector+1 + ldx #$21 + ldy #$06 + jsr compare + !byte $A0,01,$B1,$FA,$AA,$20 + bcc + + jmp rhnextsector ++ + lda rhsector+1 + sta gDisplayBytes + lda #s_runhello + jsr PrintByID + lda rhsector+1 + ldx #$26 + ldy #$01 + jsr modify + !byte $2C +rhnextsector + dec rhsector+1 + bmi runhello_exit + jmp rhsector +runhello_exit diff --git a/src/patchers/rwts.a b/src/patchers/rwts.a new file mode 100755 index 0000000..2d0ecfe --- /dev/null +++ b/src/patchers/rwts.a @@ -0,0 +1,664 @@ +;------------------------------- +; RWTS fixup #AP1R +; address prologue byte 1 (read) +;------------------------------- +rwtspatcher + lda gIsRWTS ; if DOS 3.3 RWTS + bne ap1r + lda #$03 + ldx #$4F + ldy #$06 + jsr compare ; and T00,S03,$4F == + !byte $BD,$8C,$C0,$10,$FB,$C9 + bcs ap1r + ldx #$56 + ldy #$03 + jsr compare ; and T00,S03,$56 == + !byte $D0,$F0,$EA + bcs ap1r + ldx #$55 + ldy #$01 + jsr compare ; and T00,S03,$55 != + !byte $D5 + bcc ap1r + ldy #$01 + jsr modify ; then set T00,S03,$55 = + !byte $D5 +ap1r + +;------------------------------- +; RWTS fixup #AP2R +; address prologue byte 2 (read) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne ap2r + lda #$03 + ldx #$59 + ldy #$06 + jsr compare ; and T00,S03,$59 == + !byte $BD,$8C,$C0,$10,$FB,$C9 + bcs ap2r + ldx #$60 + ldy #$04 + jsr compare ; and T00,S03,$60 == + !byte $D0,$F2,$A0,$03 + bcs ap2r + ldx #$5F + ldy #$01 + jsr compare ; and T00,S03,$5F != + !byte $AA + bcc ap2r + ldy #$01 + jsr modify ; then set T00,S03,$5F = + !byte $AA +ap2r + +;------------------------------- +; RWTS fixup #AP3R +; address prologue byte 3 (read) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne ap3r + lda #$03 + ldx #$64 + ldy #$06 + jsr compare ; and T00,S03,$64 == + !byte $BD,$8C,$C0,$10,$FB,$C9 + bcs ap3r + ldx #$6B + ldy #$02 + jsr compare ; and T00,S03,$6B == + !byte $D0,$E7 + bcs ap3r + ldx #$6A + ldy #$01 + jsr compare ; and T00,S03,$6A != + !byte $96 + bcc ap3r + ldy #$01 + jsr modify ; then set T00,S03,$6A = + !byte $96 +ap3r + +;------------------------------- +; RWTS fixup #AE1R +; address epilogue byte 1 (read) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne ae1r + lda #$03 + ldx #$8B + ldy #$06 + jsr compare ; and T00,S03,$8B == + !byte $BD,$8C,$C0,$10,$FB,$C9 + bcs ae1r + ldx #$92 + ldy #$03 + jsr compare ; and T00,S03,$92 == + !byte $D0,$AE,$EA + bcs ae1r + ldx #$91 + ldy #$01 + jsr compare ; and T00,S03,$91 != + !byte $DE + bcc ae1r + ldy #$01 + jsr modify ; then set T00,S03,$91 = + !byte $DE +ae1r + +;------------------------------- +; RWTS fixup #AE2R +; address epilogue byte 2 (read) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne ae2r + lda #$03 + ldx #$95 + ldy #$06 + jsr compare ; and T00,S03,$95 == + !byte $BD,$8C,$C0,$10,$FB,$C9 + bcs ae2r + ldx #$9C + ldy #$03 + jsr compare ; and T00,S03,$9C == + !byte $D0,$A4,$18 + bcs ae2r + ldx #$9B + ldy #$01 + jsr compare ; and T00,S03,$9B != + !byte $AA + bcc ae2r + ldy #$01 + jsr modify ; then set T00,S03,$9B = + !byte $AA +ae2r + +;------------------------------- +; RWTS fixus #DP1R +; data prologue byte 1 (read) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne dp1r + lda #$02 + ldx #$E1 + ldy #$06 + jsr compare ; and T00,S02,$E1 == + !byte $BD,$8C,$C0,$10,$FB,$49 + bcs dp1r + ldx #$E8 + ldy #$03 + jsr compare ; and T00,S02,$E8 == + !byte $D0,$F4,$EA + bcs dp1r + ldx #$E7 + ldy #$01 + jsr compare ; and T00,S02,$E7 != + !byte $D5 + bcc dp1r + ldy #$01 + jsr modify ; then set T00,S02,$E7 = + !byte $D5 +dp1r + +;------------------------------- +; RWTS fixup #DP2R +; data prologue byte 2 (read) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne dp2r + lda #$02 + ldx #$EB + ldy #$06 + jsr compare ; and T00,S02,$EB == + !byte $BD,$8C,$C0,$10,$FB,$C9 + bcs dp2r + ldx #$F2 + ldy #$04 + jsr compare ; and T00,S02,$F2 == + !byte $D0,$F2,$A0,$56 + bcs dp2r + ldx #$F1 + ldy #$01 + jsr compare ; and T00,S02,$F1 != + !byte $AA + bcc dp2r + ldy #$01 + jsr modify ; then set T00,S02,$F1 = + !byte $AA +dp2r + +;------------------------------- +; RWTS fixup #DP3R +; data prologue byte 3 (read) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne dp3r + lda #$02 + ldx #$F6 + ldy #$06 + jsr compare ; and T00,S02,$F6 == + !byte $BD,$8C,$C0,$10,$FB,$C9 + bcs dp3r + ldx #$FD + ldy #$02 + jsr compare ; and T00,S02,$FD == + !byte $D0,$E7 + bcs dp3r + ldx #$FC + ldy #$01 + jsr compare ; and T00,S02,$FC != + !byte $AD + bcc dp3r + ldy #$01 + jsr modify ; then set T00,S02,$FC = + !byte $AD +dp3r + +;------------------------------- +; RWTS fixup #DE1R +; data epilogue byte 1 (read) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne de1r + lda #$03 + ldx #$2F + ldy #$06 + jsr compare ; and T00,S03,$2F == + !byte $BD,$8C,$C0,$10,$FB,$C9 + bcs de1r + ldx #$36 + ldy #$03 + jsr compare ; and T00,S03,$36 == + !byte $D0,$0A,$EA + bcs de1r + ldx #$35 + ldy #$01 + jsr compare ; and T00,S03,$35 != + !byte $DE + bcc de1r + ldy #$01 + jsr modify ; then set T00,S03,$35 = + !byte $DE +de1r + +;------------------------------- +; RWTS fixup #DE2R +; data epilogue byte 2 (read) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne de2r + lda #$03 + ldx #$39 + ldy #$06 + jsr compare ; and T00,S03,$39 == + !byte $BD,$8C,$C0,$10,$FB,$C9 + bcs de2r + ldx #$40 + ldy #$03 + jsr compare ; and T00,S03,$40 == + !byte $F0,$5C,$38 + bcs de2r + ldx #$3F + ldy #$01 + jsr compare ; and T00,S03,$3F != + !byte $AA + bcc de2r + ldy #$01 + jsr modify ; then set T00,S03,$3F = + !byte $AA +de2r + +;------------------------------- +; RWTS fixup #AP1W +; address prologue byte 1 (write) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne ap1w + lda #$06 + ldx #$79 + ldy #$01 + jsr compare ; and T00,S06,$79 == + !byte $A9 + bcs ap1w + ldx #$7B + ldy #$02 + jsr compare ; and T00,S06,$7B == + !byte $20,$D5 + bcs ap1w + ldx #$7A + ldy #$01 + jsr compare ; and T00,S06,$7A != + !byte $D5 + bcc ap1w + ldy #$01 + jsr modify ; then set T00,S06,$7A = + !byte $D5 +ap1w + +;------------------------------- +; RWTS fixup #AP2W +; address prologue byte 2 (write) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne ap2w + lda #$06 + ldx #$7E + ldy #$01 + jsr compare ; and T00,S06,$7E == + !byte $A9 + bcs ap2w + ldx #$80 + ldy #$02 + jsr compare ; and T00,S06,$80 == + !byte $20,$D5 + bcs ap2w + ldx #$7F + ldy #$01 + jsr compare ; and T00,S06,$7F != + !byte $AA + bcc ap2w + ldy #$01 + jsr modify ; then set T00,S06,$7F = + !byte $AA +ap2w + +;------------------------------- +; RWTS fixup #AP3W +; address prologue byte 3 (write) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne ap3w + lda #$06 + ldx #$83 + ldy #$01 + jsr compare ; and T00,S06,$83 == + !byte $A9 + bcs ap3w + ldx #$85 + ldy #$02 + jsr compare ; and T00,S06,$85 == + !byte $20,$D5 + bcs ap3w + ldx #$84 + ldy #$01 + jsr compare ; and T00,S06,$84 != + !byte $96 + bcc ap3w + ldy #$01 + jsr modify ; then set T00,S06,$84 = + !byte $96 +ap3w + +;------------------------------- +; RWTS fixup #AE1W +; address epilogue byte 1 (write) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne ae1w + lda #$06 + ldx #$AD + ldy #$01 + jsr compare ; and T00,S06,$AD == + !byte $A9 + bcs ae1w + ldx #$AF + ldy #$02 + jsr compare ; and T00,S06,$AF == + !byte $20,$D5 + bcs ae1w + ldx #$AE + ldy #$01 + jsr compare ; and T00,S06,$AE != + !byte $DE + bcc ae1w + ldy #$01 + jsr modify ; then set T00,S06,$AE = + !byte $DE +ae1w + +;------------------------------- +; RWTS fixup #AE2W +; address epilogue byte 2 (write) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne ae2w + lda #$06 + ldx #$B2 + ldy #$01 + jsr compare ; and T00,S06,$B2 == + !byte $A9 + bcs ae2w + ldx #$B4 + ldy #$02 + jsr compare ; and T00,S06,$B4 == + !byte $20,$D5 + bcs ae2w + ldx #$B3 + ldy #$01 + jsr compare ; and T00,S06,$B3 != + !byte $AA + bcc ae2w + ldy #$01 + jsr modify ; then set T00,S06,$B3 = + !byte $AA +ae2w + +;------------------------------- +; RWTS fixup #AE3W +; address epilogue byte 3 (write) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne ae3w + lda #$06 + ldx #$B7 + ldy #$01 + jsr compare ; and T00,S06,$B7 == + !byte $A9 + bcs ae3w + ldx #$B9 + ldy #$02 + jsr compare ; and T00,S06,$B9 == + !byte $20,$D5 + bcs ae3w + ldx #$B8 + ldy #$01 + jsr compare ; and T00,S06,$B8 != + !byte $EB + bcc ae3w + ldy #$01 + jsr modify ; then set T00,S06,$B8 = + !byte $EB +ae3w + +;------------------------------- +; RWTS fixup #DP1W +; data prologue byte 1 (write) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne dp1w + lda #$02 + ldx #$52 + ldy #$01 + jsr compare ; and T00,S02,$52 == + !byte $A9 + bcs dp1w + ldx #$54 + ldy #$02 + jsr compare ; and T00,S02,$54 == + !byte $20,$B8 + bcs dp1w + ldx #$53 + ldy #$01 + jsr compare ; and T00,S02,$53 != + !byte $D5 + bcc dp1w + ldy #$01 + jsr modify ; then set T00,S02,$53 = + !byte $D5 +dp1w + +;------------------------------- +; RWTS fixup #DP2W +; data prologue byte 2 (write) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne dp2w + lda #$02 + ldx #$57 + ldy #$01 + jsr compare ; and T00,S02,$57 == + !byte $A9 + bcs dp2w + ldx #$59 + ldy #$02 + jsr compare ; and T00,S02,$59 == + !byte $20,$B8 + bcs dp2w + ldx #$58 + ldy #$01 + jsr compare ; and T00,S02,$58 == + !byte $AA + bcc dp2w + ldy #$01 + jsr modify ; then set T00,S02,$58 = + !byte $AA +dp2w + +;------------------------------- +; RWTS fixup #DP3W +; data prologue byte 3 (write) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne dp3w + lda #$02 + ldx #$5C + ldy #$01 + jsr compare ; and T00,S02,$5C == + !byte $A9 + bcs dp3w + ldx #$5E + ldy #$02 + jsr compare ; and T00,S02,$5E == + !byte $20,$B8 + bcs dp3w + ldx #$5D + ldy #$01 + jsr compare ; and T00,S02,$5D != + !byte $AD + bcc dp3w + ldy #$01 + jsr modify ; then set T00,S02,$5D = + !byte $AD +dp3w + +;------------------------------- +; RWTS fixup #DE1W +; data epilogue byte 1 (write) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne de1w + lda #$02 + ldx #$9D + ldy #$01 + jsr compare ; and T00,S02,$9D == + !byte $A9 + bcs de1w + ldx #$9F + ldy #$02 + jsr compare ; and T00,S02,$9F == + !byte $20,$B8 + bcs de1w + ldx #$9E + ldy #$01 + jsr compare ; and T00,S02,$9E != + !byte $DE + bcc de1w + ldy #$01 + jsr modify ; then set T00,S02,$9E = + !byte $DE + +de1w + +;------------------------------- +; RWTS fixup #DE2W +; data epilogue byte 2 (write) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne de2w + lda #$02 + ldx #$A2 + ldy #$01 + jsr compare ; and T00,S02,$A2 == + !byte $A9 + bcs de2w + ldx #$A4 + ldy #$02 + jsr compare ; and T00,S02,$A4 == + !byte $20,$B8 + bcs de2w + ldx #$A3 + ldy #$01 + jsr compare ; and T00,S02,$A3 != + !byte $AA + bcc de2w + ldy #$01 + jsr modify ; then set T00,S02,$A3 = + !byte $AA + +de2w + +;------------------------------- +; RWTS fixup #DE3W +; data epilogue byte 3 (write) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne de3w + lda #$02 + ldx #$A7 + ldy #$01 + jsr compare ; and T00,S02,$A7 == + !byte $A9 + bcs de3w + ldx #$A9 + ldy #$02 + jsr compare ; and T00,S02,$A9 == + !byte $20,$B8 + bcs de3w + ldx #$A8 + ldy #$01 + jsr compare ; and T00,S02,$A8 != + !byte $EB + bcc de3w + ldy #$01 + jsr modify ; then set T00,S02,$A8 = + !byte $EB +de3w + +;------------------------------- +; RWTS fixup #DE4W +; data epilogue byte 4 (write) +; needed by some Sunburst disks +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne de4w + lda #$02 + ldx #$AC + ldy #$01 + jsr compare ; and T00,S02,$AC == + !byte $A9 + bcs de4w + ldx #$AE + ldy #$02 + jsr compare ; and T00,S02,$AE == + !byte $20,$B8 + bcs de4w + ldx #$AD + ldy #$01 + jsr compare ; and T00,S02,$AD != + !byte $FF + bcc de4w + ldy #$01 + jsr modify ; then set T00,S02,$AD = + !byte $FF +de4w + +;------------------------------- +; RWTS "LSR $6A" identification +; disk allows either $D4 or $D5 for the +; first address prologue nibble +; (no patches required, but we want to +; log it) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne rwts_lsr6a + lda #$03 + ldx #$4F + ldy #$0A + jsr compare ; and T00,S03,$4F == + !byte $BD,$8C,$C0,$10,$FB,$4A,$97,$6A,$D0,$EF + bcs rwts_lsr6a + lda #s_lsr6a + jsr PrintByID + inc gPatchCount +rwts_lsr6a + +;------------------------------- +; RWTS "CMP #$08 / BCS" identification +; disk allows either $DE or a timing bit +; for the first address epilogue nibble +; (no patches required, but we want to +; log it) +;------------------------------- + lda gIsRWTS ; if DOS 3.3 RWTS + bne rwts_bcs08 + lda #$03 + ldx #$8B + ldy #$15 + jsr compare ; and T00,S03,$8B == + !byte $BD,$8C,$C0,$10,$FB,$C9,$DE,$F0,$0A,$48,$68,$BD,$8C,$C0,$C9,08,$B0,$A5,$EA,$18,$60 + bcs rwts_bcs08 + lda #s_bcs08 + jsr PrintByID + inc gPatchCount +rwts_bcs08 diff --git a/src/patchers/rwtsswap.a b/src/patchers/rwtsswap.a new file mode 100755 index 0000000..a44af72 --- /dev/null +++ b/src/patchers/rwtsswap.a @@ -0,0 +1,38 @@ +;------------------------------- +; #RWTSSWAP +; after DOS loads, program calls +; subroutines at $BA69 and $BA7F +; to swap RWTS parameters on the +; fly +; e.g. Puzzle Master +;------------------------------- +_rwtsswap + lda gIsBoot0 ; if DOS 3.3 boot0 loader + bne rwtsswap_exit + lda gIsBoot1 ; and DOS 3.3 boot1 loader + bne rwtsswap_exit + lda #$04 + ldx #$69 + ldy #$0B + jsr compare ; and T00,S04,$69 == + !byte $A0,07,$B9,$DF,$BC,$99,$94,$B9 + !byte $88,$10,$F7 + bcs rwtsswap_exit + lda #$04 + ldx #$7F + ldy #$0B + jsr compare ; and T00,S04,$7F == + !byte $A0,07,$B9,$E7,$BC,$99,$94,$B9 + !byte $88,$10,$F7 + bcs rwtsswap_exit + lda #$04 + ldx #$69 + ldy #$01 + jsr modify ; then set T00,S04,$69 = + !byte $60 + lda #$04 + ldx #$7F + ldy #$01 + jsr modify ; and set T00,S04,$7F = + !byte $60 +rwtsswap_exit diff --git a/src/patchers/rwtsswap2.a b/src/patchers/rwtsswap2.a new file mode 100755 index 0000000..5032617 --- /dev/null +++ b/src/patchers/rwtsswap2.a @@ -0,0 +1,38 @@ +;------------------------------- +; #RWTSSWAP2 +; after DOS loads, program calls +; subroutines at $BA69 and $BA7D +; to swap RWTS parameters on the +; fly +; e.g. Mask Parade +;------------------------------- +_rwtsswap2 + lda gIsBoot0 ; if DOS 3.3 boot0 loader + bne rwtsswap2_exit + lda #$04 + ldx #$69 + ldy #$13 + jsr compare ; and T00,S04,$69 == + !byte $A9,$AB,$8D,$4B,$B8,$A9,$FF,$20 + !byte $DF,$BC,$20,$EC,$BC,$A9,$AA,$8D + !byte $29,$BA,$60 + bcs rwtsswap2_exit + lda #$04 + ldx #$7D + ldy #$15 + jsr compare ; and T00,S04,$7D == + !byte $A9,$FF,$8D,$4B,$B8,$A9,$DE,$20 + !byte $DF,$BC,$A9,$AA,$20,$EC,$BC,$A9 + !byte $96,$8D,$29,$BA,$60 + bcs rwtsswap2_exit + lda #$04 + ldx #$69 + ldy #$01 + jsr modify ; then set T00,S04,$69 = + !byte $60 + lda #$04 + ldx #$7D + ldy #$01 + jsr modify ; and set T00,S04,$7D = + !byte $60 +rwtsswap2_exit diff --git a/src/patchers/rwtsswapmecc.a b/src/patchers/rwtsswapmecc.a new file mode 100755 index 0000000..7f61319 --- /dev/null +++ b/src/patchers/rwtsswapmecc.a @@ -0,0 +1,17 @@ +;------------------------------- +; #RWTSSWAPMECC +; post-boot RWTS swapper in MECC +; disks +;------------------------------- +_rwtsswapmecc + ldy #$11 + jsr SearchTrack + !byte $0A,$18,$69,$FF,$A8,$8D,$8B,$C0 + !byte $8D,$8B,$C0,$B9,$97,$97,$8D,$AC + !byte $D5 + bcs rwtsswapmecc_exit + sta gDisplayBytes + ldy #$03 + jsr modify + !byte $A9,00,$24 +rwtsswapmecc_exit diff --git a/src/patchers/sierra.a b/src/patchers/sierra.a new file mode 100755 index 0000000..f00e797 --- /dev/null +++ b/src/patchers/sierra.a @@ -0,0 +1 @@ +ª­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ª £ÓÉÅÒÒÁª óåáòãè áîä äåóôòïù á óåìæ­äåãòùðôéîçª ðòïôåãôéïî ãèåãë õóåä ïî íáîù Óéåòò᪠äéóëó éî á ÷áù ôèáô äïåóî§ô ôòéð ôèåª ôáíðåò ãèåãë ôèáô ãèåãëóõíó ôèå ãïäåª å®ç® Óáííù Ìéçèôæïïô¬ Ãòïóóæéò媭­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ßóéåòòá ìäá £¤°Æ óôá ºóåãôïò«±ºóåãôïò ìäá £¤ÆÆ » íïäéæéåä áô òõîôéíå ìäø £¤°° ìäù £¤°² êóò ãïíðáòå ÈÅØ ÃÅ°³ âãã º° êíð ºîåøôóåãôïòº° ìäá ºóåãôïò«± ìäø £¤°³ ìäù £¤°² êóò ãïíðáòå ÈÅØ ÅÆ°³ âãã º± êíð ºîåøôóåãôïòº± ìäá ºóåãôïò«± ìäø £¤°¶ ìäù £¤°² êóò ãïíðáòå ÈÅØ ÁIJ¸ âãã º² ìäá ºóåãôïò«± ìäø £¤°¶ ìäù £¤°² êóò ãïíðáòå ÈÅØ ÁIJ´ âãã º² êíð ºîåøôóåãôïòº² ìäá ºóåãôïò«± ãìã áäã £ÂÁÓÅÐÁÇÅ óôá ºãèåãë᫲ óôá ºãèåãë⫲ºãèåãëá ìäá ¤ÆÆ°² » íïäéæéåä áâïöåºãèåãëâ ãíð ¤ÆÆ°µ » íïäéæéåä áâïöå âåñ ºùåó êíð ºîåøôóåãôïòºùåó ìäá ºóåãôïò«± óôá çÄéóðìáùÂùôåó ìäá £óßóéåòòá êóò ÐòéîôÂùÉÄ ìäá ºóåãôïò«± ìäø £¤°° ìäù £¤°² êóò íïäéæù ÈÅØ ¶°Áĺîåøôóåãôïò äåã ºóåãôïò«± âíé ºåøéô êíð ºóåãôïòºåøéô \ No newline at end of file diff --git a/src/patchers/sunburst.a b/src/patchers/sunburst.a new file mode 100755 index 0000000..0d0dc24 --- /dev/null +++ b/src/patchers/sunburst.a @@ -0,0 +1,71 @@ +;------------------------------- +; #SUNBURST +; RWTS with track-based address +; and data prologue modifications +; e.g. The Incredible Laboratory +; NOTE: must be run before RWTS +; patchers due to overlapping bytes +;------------------------------- +_sunburst + sec + lda gIsRWTS ; if DOS 3.3 RWTS + bne sunburst_exit + lda #$03 + ldx #$40 + ldy #$01 + jsr compare ; and T00,S03,$40 == + !byte $D0 + bcs sunburst_exit + lda #$03 + ldx #$9C + ldy #$01 + jsr compare ; and T00,S03,$9C == + !byte $F0 + bcs sunburst_exit + lda #$04 + ldx #$69 + ldy #$2C + jsr compare ; and T00,S04,$69 == + !byte $48,$A5,$2A,$4A,$A8,$B9,$29,$BA + !byte $8D,$6A,$B9,$8D,$84,$BC,$B9,$34 + !byte $BA,$8D,$FC,$B8,$8D,$5D,$B8,$C0 + !byte $11,$D0,03,$A9,02,$AC,$A9,$0E + !byte $8D,$C0,$BF,$68,$69,00,$48,$AD + !byte $78,04,$90,$2B + bcs sunburst_exit + lda #$06 + ldx #$69 + ldy #$06 + jsr compare ; and T00,S06,$69 == + !byte $4C,$B8,$B6,$EA,$EA,$EA + bcs sunburst_exit + lda #$08 + ldx #$8C + ldy #$02 + jsr compare ; and T00,S08,$8C == + !byte $69,$BA + bcc sunburst_yes +sunburst_exit + bcs sunburst_exit2 +sunburst_yes + lda #$03 + ldx #$40 + ldy #$01 + jsr modify ; then set T00,S03,$40 = + !byte $F0 + lda #$03 + ldx #$9C + ldy #$01 + jsr modify ; and set T00,S03,$9C = + !byte $D0 + lda #$06 + ldx #$69 + ldy #$06 + jsr modify ; and set T00,S06,$69 = + !byte $20,$C3,$BC,$20,$C3,$BC + lda #$08 + ldx #$8C + ldy #$02 + jsr modify ; and set T00,S08,$8C = + !byte $A0,$B9 +sunburst_exit2 diff --git a/src/patchers/thunder.a b/src/patchers/thunder.a new file mode 100755 index 0000000..59c34d2 --- /dev/null +++ b/src/patchers/thunder.a @@ -0,0 +1,57 @@ +;------------------------------- +; #THUNDER +; boot1 jumps to $B3C1 to change RWTS, +; epilogue checker jumps to $B6B3 to +; check timing bits, late DOS routes +; through nibble check at $B74B +; e.g. Thunder Mountain versions of +; Dig Dug, Pac-Man, Galaxian +;------------------------------- +_thunder + lda gIsBoot0 ; if DOS 3.3 boot0 loader + bne thunder_no + lda gIsBoot1 ; and DOS 3.3 boot1 loader + bne thunder_no + lda #$03 + ldx #$3E + ldy #$04 + jsr compare ; and T00,S03,$3E == + !byte $4C,$B3,$B6,$EA + bcc + +thunder_no + jmp thunder_exit ++ + lda #$01 + ldx #$47 + ldy #$4C + jsr compare ; and T00,S01,$47 == + !byte $4C + !byte $C1,$B3,$60,$48,$A9,02,$8D,$EC + !byte $B7,$A9,00,$8D,$EB,$B7,$8D,$F2 + !byte $B7,$A9,05,$8D,$ED,$B7,$A9,$36 + !byte $8D,$F0,$B7,$A9,$B4,$8D,$F1,$B7 + !byte $A9,01,$8D,$E1,$B7,$8D,$F4,$B7 + !byte $20,$93,$B7,$90,09,$4C,$62,$FA + !byte $EA,$EA,$EA,$EA,$EA,$EA,$20,$36 + !byte $B4,$68,$F0,03,$6C,$72,$AA,$6C + !byte $58,$9D,00,$A9,00,$F0,$BC,$A9 + !byte 01,$D0,$B8 + bcs thunder_exit + lda #s_thunder + jsr PrintByID + lda #$01 + ldx #$48 + ldy #$02 + jsr modify ; then set T00,S01,$48 = + !byte $1F,$B4 + lda #$01 + ldx #$7E + ldy #$01 + jsr modify ; and set T00,S01,$7E = + !byte $2C + lda #$03 + ldx #$3E + ldy #$04 + jsr modify ; and set T00,S03,$3E = + !byte $C9,$AA,$F0,$5C +thunder_exit diff --git a/src/patchers/universale7.a b/src/patchers/universale7.a new file mode 100755 index 0000000..25d84b4 --- /dev/null +++ b/src/patchers/universale7.a @@ -0,0 +1,67 @@ +;------------------------------- +; #UNIVERSALE7 +; replace remnants of E7 bitstream +; with a compatible BYTEstream that +; fools most E7 protection checks +; (invented by qkumba, see PoC||GTFO 0x11 +; and 4am crack no. 655 Rocky's Boots 4.0) +;------------------------------- +_universale7 + lda #$0F + sta sector+1 +sector lda #$FF ; modified at runtime + ldx #$A0 + ldy #$60 + jsr compare + !byte $AC,00,$AC,00,$AC,00,$AC,00 + !byte $AC,00,$AC,00,$AC,00,$AC,00 + !byte $AC,00,$AC,00,$AC,00,$AC,00 + !byte $AC,00,$AC,00,$AC,00,$AC,00 + !byte $AC,00,$AC,00,$AC,00,$AC,00 + !byte $AC,00,$AC,00,$AC,00,$AC,00 + !byte $AC,00,$AC,00,$AC,00,$AC,00 + !byte $AC,00,$AC,00,$AC,00,$AC,00 + !byte $AC,00,$AC,00,$AC,00,$AC,00 + !byte $AC,00,$AC,00,$AC,00,$AC,00 + !byte $AC,00,$AC,00,$AC,00,$AC,00 + !byte $AC,00,$AC,00,$AC,00,$AC,00 + bcc + + jmp e7nextsector ++ + lda sector+1 + ldx #$00 + ldy #$80 + jsr compare + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + bcc + + jmp e7nextsector ++ + lda sector+1 + sta gDisplayBytes + lda #s_e7 + jsr PrintByID + lda sector+1 + ldx #$A3 + ldy #$0C + jsr modify + !byte $64,$B4,$44,$80,$2C,$DC,$18,$B4,$44,$80,$44,$B4 +e7nextsector + dec sector+1 + bmi universale7_exit + jmp sector +universale7_exit diff --git a/src/prefs.a b/src/prefs.a new file mode 100755 index 0000000..1daa2ae --- /dev/null +++ b/src/prefs.a @@ -0,0 +1,115 @@ +CURRENTVER = $30 ; ASCII "0" +DEFSLOT = $36 ; ASCII "6" +DEFDRIVE = $32 ; ASCII "2" + +PREFSFILE !byte prefs_e-prefs_b +prefs_b + !text "PASSPORT.CONF" +prefs_e +PREFSBUFFER = $B000 +PREFSREADLEN = $0003 + +PREFSVER !byte $FF +SLOT !byte $FF +DRIVE !byte $FF + !byte $8D + !ct "lcase.ct" + !text "|||",$8D + !text "||+---WRITE DRIVE (1-2)",$8D + !text "|+---WRITE SLOT (1-7)",$8D + !text "+---PREFS VERSION (DO NOT CHANGE)",$8D +PREFSWRITELEN = *-PREFSVER + +;------------------------------- +; LoadPrefs +; load preferences from file +; +; in: ProDOS must be in memory +;------------------------------- +LoadPrefs + lda #$FF + sta PREFSVER + jsr LoadFile1Shot + !word PREFSFILE + !word PREFSVER + !word PREFSREADLEN + !word PREFSBUFFER + jmp ValidatePrefs + +;------------------------------- +; SavePrefs +; save preferences to file +; +; in: ProDOS must be in memory +;------------------------------- +SavePrefs + jsr ValidatePrefs + jsr SaveFile1Shot + !word PREFSFILE + !byte 04 ; text file + !byte 00,00 ; no aux file type + !word PREFSVER + !word PREFSWRITELEN + !word PREFSBUFFER + rts + +;------------------------------- +; ValidatePrefs +; Sanity-check preferences and reset to +; default values for any variables that +; are out of range. +; If the first value (PREFSVER) is +; not recognized, all other values are +; reset to defaults. +; +; in: none +; out: C set if any prefs were changed +; C clear if all prefs were valid +; A,X clobbered +;------------------------------- +ValidatePrefs + ldx #$00 + lda PREFSVER + cmp #CURRENTVER + beq checkslot + lda #CURRENTVER + sta PREFSVER + lda #$FF + sta SLOT + sta DRIVE + inx +checkslot + lda SLOT + sec + sbc #$30 + beq badslot + cmp #$08 + bcc checkdrive +badslot + lda #DEFSLOT + sta SLOT + inx +checkdrive + lda DRIVE + sec + sbc #$30 + beq baddrive + cmp #$03 + bcc checks6d1 +baddrive + lda #DEFDRIVE + sta DRIVE + inx +checks6d1 + lda SLOT + cmp #$36 + bne prefs_done + lda DRIVE + cmp #$31 + bne prefs_done + lda #$32 + sta DRIVE + inx +prefs_done + cpx #$01 ; set carry if anything changed + rts diff --git a/src/print.a b/src/print.a new file mode 100755 index 0000000..e6c66dc --- /dev/null +++ b/src/print.a @@ -0,0 +1,175 @@ +kForceLower !byte $FF ; AND mask for lowercase letters + ; (set at program startup) +gDisplayBytes !fill 10 ; array of ten bytes for use as + ; substitution strings + +;------------------------------- +; PrintByID +; Print a string from the string table; +; handles string substitutions and +; auto-uppercases on older machines +; in A = string ID +; out C clear if string was printed +; C set if string ID was invalid +; all other flags clobbered +; X register preserved, others clobbered +;------------------------------- +PrintByID + stx x + ldy #0 ; substitution mode flag + cmp #STRINGCOUNT + bcs error + asl + tax + lda StringTable,x + sta print+1 + lda StringTable+1,x + sta print+2 +print + lda $FFFF ; modified at runtime + beq print_done + cpy #0 ; are we in substitution mode? + beq nosub ; no -> branch + ldy #0 + cmp #"t" ; "%t" = current track + bne sub1 + lda gTrack + bpl printbyte ; unconditional branch +sub1 + cmp #"s" ; "%s" = current sector + bne sub2 + lda gSector + bpl printbyte ; unconditional branch +sub2 + cmp #"S" ; write slot + bne sub3 + lda SLOT + bne printsd ; unconditional branch +sub3 + cmp #"D" ; write drive + bne sub4 + lda DRIVE +printsd + ora #$80 + jsr PrintA + bvc next ; unconditional branch +sub4 + cmp #"0" ; "%0" through "%9" + bcc nosub + cmp #":" + bcs nosub + sec + sbc #"0" + tax + lda gDisplayBytes,x +printbyte + jsr PrintByte + bvc next ; unconditional branch +nosub + cmp #"%" + bne stillnosub + iny ; switch to substitution mode + bne next ; (next character will be interpreted) +stillnosub + cmp #$E1 + bcc noforce + and kForceLower +noforce + jsr COUT +next + inc print+1 + bne print + inc print+2 + bne print +print_done + clc +error + ldx x + rts +x !byte 00 + +;------------------------------- +; PrintByte +; print a hexadecimal byte +; in A contains byte to print +; out all registers preserved +; all flags clobbered +; @tmpa clobbered +; @tmpx clobbered +; @tmpy clobbered +;------------------------------- +PrintByte + sta tmpa + stx tmpx + sty tmpy + jsr PRBYTE + lda tmpa + ldx tmpx + ldy tmpy + clv + rts + +;------------------------------- +; PrintA +; print a single character through COUT +; in A contains character to print +; out all registers preserved +; all flags clobbered +; @tmpa clobbered +; @tmpx clobbered +; @tmpy clobbered +;------------------------------- +PrintA + sta tmpa + stx tmpx + sty tmpy + jsr COUT + lda tmpa + ldx tmpx + ldy tmpy + clv + rts + +;------------------------------- +; ClearScreen +;------------------------------- +ClearScreen + jsr TEXT + lda $C061 + bpl home + lda $C062 + bpl home +begin + ldx #$04 + stx counter + stx loop+2 + stx change+2 + ldy #$00 + sty flag +loop + lda $FF00,y ; modified at runtime + cmp #$A0 + beq nochange + bcs down + clc + adc #$01 + bne change +down + sec + sbc #$01 +change + sta $FF00,y ; modified at runtime + sta flag +nochange + iny + bne loop + inc loop+2 + inc change+2 + dec counter + bne loop + lda #$01 + jsr WAIT + lda flag + bne begin +home + jmp HOME diff --git a/src/rwts.a b/src/rwts.a new file mode 100755 index 0000000..30d541a --- /dev/null +++ b/src/rwts.a @@ -0,0 +1,66 @@ +;------------------------------- +; ReadSector +; high-level function to read a single sector. +; in: gIsProtDOS is TRUE or FALSE +; if gProtDOS is FALSE, callrwts+2 has been set to +; the RWTS entry point (e.g. $BD or $3D or $FD) +; if RWTS is in LC RAM, the appropriate RAM bank +; has already been selected for read/write access +; out: all registers clobbered +; C clear if read was successful +; C set if read failed +;------------------------------- +ReadSector + lda #$AA ; lots of custom RWTS routines + sta $31 ; need these zero page locations + lda #$AD ; set to magic values + sta $4E + + lda gIsProtDOS + beq _protread + + ldy #gRWTSParams +callrwts jsr $FF00 ; modified at runtime (see Inspect1) + rts + +; +; "Protected.DOS" has enough differences that we just +; split everything out here. The hi/lo RWTS parameter +; table address is set in A/Y instead of Y/A. The +; RWTS entry point is $BA00. The third data prologue +; nibble is stored in zp$4E and varies based on track +; and sector. +; +_protread + lda gTrack ; T02,S05+ use "protected" mode + cmp #$03 ; (altered data prologue and + bcs protected ; nibble translate table) + cmp #$02 ; T00,S00 - T02,S04 use + bcc standard ; "standard" mode + lda gSector + cmp #$05 + bcs protected +standard + lda #$9B + sta $BF2C + bne go ; unconditional branch +protected + lda #$B5 + sta $4E + lda #$D5 + sta $BF2C ; execution falls through here +go + lda #gRWTSParams + jsr $BA00 ; note non-standard entry point + rts + +gRWTSParams ; used to read each sector + !byte 01,$60,01,00 +gTrack !byte 00 +gSector !byte 00 + !word dct +gAddress !word $1F00 + !byte 00,00,01,00,$FE,$60,01,00,00 +dct !byte 00,01,$EF,$D8,00 diff --git a/src/sectormap.a b/src/sectormap.a new file mode 100755 index 0000000..0eede1f --- /dev/null +++ b/src/sectormap.a @@ -0,0 +1,78 @@ +InitSectorMap + lda #sectormap + sta B+2 + lda #$FF + ldx #$22 +A ldy #$0F +B sta $FFFF + inc B+1 + bne + + inc B+2 ++ dey + bpl B + dex + bpl A + rts + +;------------------------------- +; This is a map of how much we care about each sector +; on the disk. Each byte is one sector, arranged in +; increasing logical sector order from T00,S00 to T22,S0F. +; Some sectors have their own individual labels just for +; convenience. +; e.g. LDA #$80 +; STA T00S0A +; will mark T00,S0A as optional +; +; Possible values for each sector: +; 00 = ignore this sector (don't even read it) +; 80 = sector is optional -- read, but ignore any errors +; FE = sector is required, and switch to the built-in RWTS +; after reading it (if we haven't already) +; $FF = sector is required -- read, and any error is fatal +; (this is the default value for all sectors) +;------------------------------- +sectormap +T00 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T00S09 !byte $FF +T00S0A !byte $FF + !byte $FF,$FF,$FF,$FF,$FF +T01 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T01S0F !byte $FF +T02 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T03 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T04 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T05 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T06 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T07 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T08 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T09 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T0A !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T0B !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T0C !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T0D !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T0E !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T0F !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T10 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T11 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T11S0F !byte $FF +T12 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T13 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T14 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T15 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T16 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T17 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T18 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T19 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T1A !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T1B !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T1C !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T1D !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T1E !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T1F !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T20 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T21 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T22 !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +T22S0F !byte $FF diff --git a/src/slots.a b/src/slots.a new file mode 100755 index 0000000..711b627 --- /dev/null +++ b/src/slots.a @@ -0,0 +1,74 @@ +DiskIIArray + !byte 00,00,00,00,00,00,00 + +;------------------------------- +; ScanForDiskII +; scan all slots for things that +; look like Disk II cards +; +; out: all registers clobbered +; all flags clobbered +; DiskIIArray filled with 00 or FF +;------------------------------- +ScanForDiskII + lda #$00 + sta cmp1 + ldx #$07 +fingerprint + txa + ora #$C0 + sta cmp1+1 + ldy #$01 + lda (cmp1),y + cmp #$20 + bne slots_next + ldy #$03 + lda (cmp1),y + bne slots_next + ldy #$05 + lda (cmp1),y + cmp #$03 + bne slots_next + ldy #$FF + lda (cmp1),y + bne slots_next + tya + sta DiskIIArray-1,x +slots_next + dex + bne fingerprint + rts + +;------------------------------- +; NextSlot +;------------------------------- +NextSlot + lda DRIVE + cmp #$31 + bne incslot + lda #$32 + sta DRIVE + bne slots_done ; unconditional branch +incslot + lda #$31 + sta DRIVE + inc SLOT + lda SLOT + cmp #$38 + bne nowrap + lda #$31 + sta SLOT +nowrap + sec + sbc #$30 + tax + lda DiskIIArray-1,x + beq incslot +slots_done + lda SLOT + cmp #$36 + bne reallydone + lda #$32 + sta DRIVE +reallydone + rts diff --git a/src/strings/en.a b/src/strings/en.a new file mode 100755 index 0000000..f7b59c8 --- /dev/null +++ b/src/strings/en.a @@ -0,0 +1,394 @@ +; +; Main menu keys +; (should match the text in mainmenu below) +; (these are NOT case-sensitive) +; +!ct "lcase.ct" +k_verify = "V" +k_demuffin = "D" +k_crack = "C" +k_slot = "S" +k_quit = "Q" +; will also quit + +; +; String IDs +; (pass in accumulator to PrintByID) +; +s_header = $00 +s_mainmenu = $01 +s_progbar = $02 +s_reading = $03 +s_diskrwts = $04 +s_bb00 = $05 +s_sunburst = $06 +s_optimum = $07 +s_builtin = $08 +s_switch = $09 +s_writing = $0A +s_unformat = $0B +s_f7 = $0C +s_sync = $0D +s_optbad = $0E +s_pass = $0F +s_passdemuf = $10 +s_passcrack = $11 +s_passcrack0 = $12 +s_fail = $13 +s_fatal0000 = $14 +s_fatal220f = $15 +s_done = $16 +s_noslot6 = $17 +s_writeerr = $18 +s_writeioerr = $19 +s_writenodev = $1A +s_writeprot = $1B +s_othermli = $1C +s_canttrace = $1D +s_canceled = $1E +s_bademu = $1F +s_reset = $20 +s_modify = $21 +s_modifyto = $22 +s_dosb0 = $23 +s_prodosb0 = $24 +s_pascalb0 = $25 +s_meccb0 = $26 +s_sierra = $27 +s_a6bc95 = $28 +s_jmpbcf0 = $29 +s_rol1e = $2A +s_runhello = $2B +s_e7 = $2C +s_jmpb4bb = $2D +s_jmpb400 = $2E +s_jmpbeca = $2F +s_jsrbb03 = $30 +s_thunder = $31 +s_jmpae8e = $32 +s_diskvol = $33 +s_d5d5f7 = $34 +s_meccm7 = $35 +s_datasoftb0 = $36 +s_datasoft = $37 +s_lsr6a = $38 +s_bcs08 = $39 +s_jmpb660 = $3A +s_protdos = $3B +s_protdosw = $3C +s_protserial = $3D +s_fbff = $3E +s_encoded44 = $3F +s_encoded53 = $40 +s_specdel = $41 +STRINGCOUNT = $42 + +StringTable + !word header + !word mainmenu + !word progbar + !word reading + !word diskrwts + !word bb00 + !word sunburst + !word optimum + !word builtin + !word switch + !word writing + !word unformat + !word f7 + !word sync + !word optbad + !word passver + !word passdemuf + !word passcrack + !word passcrack0 + !word fail + !word fatal0000 + !word fatal220f + !word done + !word noslot6 + !word writeerr + !word writeioerr + !word writenodev + !word writeprot + !word othermli + !word canttrace + !word canceled + !word bademu + !word reset + !word smodify + !word modifyto + !word dosboot0 + !word prodosboot0 + !word pascalboot0 + !word meccboot0 + !word sierra + !word a6bc95 + !word jmpbcf0 + !word rol1e + !word runhello + !word e7 + !word jmpb4bb + !word jmpb400 + !word jmpbeca + !word jsrbb03 + !word thunder + !word jmpae8e + !word diskvol + !word d5d5f7 + !word meccm7 + !word datasoftb0 + !word datasoft + !word lsr6a + !word bcs08 + !word jmpb660 + !word protdos + !word protdosw + !word protserial + !word fbff + !word encoded44 + !word encoded53 + !word specdel +; +; Text can contain substitution strings, which +; are replaced by current values at runtime. Each +; substitution string is two bytes long. The first +; byte is always "%", which puts the print routine +; into substitution mode. The next byte controls +; which value is printed (see list below), then +; substitution mode ends automatically. Unknown +; substitution strings are silently ignored and +; produce no output. +; +; Substitution strings are case-sensitive. +; +; Supported substitution strings +; %S destination (write) slot +; %D destination (write) drive +; %t current track (during read and patch) +; %s current sector (during read) +; +; In addition, it supports "%0" through "%9" +; for printing arbitrary hexadecimal values. +; These are stored in the gDisplayBytes array and +; can be set directly before calling PrintByID. +; +header + !text "Passport by 4am 20161230-en",00 +mainmenu + !text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D + !text " " + !scrxor $40, "V" + !text "erify disk",$8D,$8D + !text " " + !scrxor $40, "D" + !text "emuffin disk",$8D,$8D + !text " " + !scrxor $40, "C" + !text "rack disk",$8D,$8D + !text " " + !scrxor $40, "Q" + !text "uit",$8D,$8D,$8D,$8D,$8D,$8D,$8D + !text "source: S6,D1 target: " + !scrxor $40, "S" + !text "%S,D%D",00 +progbar + !byte $8D + !text " ______________________________________",$8D + !text " " + !scrxor $00, " " + !text "____________________________________" + !scrxor $00, " ",$8D,$8D,$8D,00 +reading + !text "Reading from S6,D1",$8D,00 +diskrwts + !text "Using disk's own RWTS",$8D,00 +bb00 + !text "T00,S05 Found $BB00 protection check",$8D + !text "T00,S0A might be unreadable",$8D,00 +sunburst + !text "T00,S04 Found Sunburst disk",$8D + !text "T11,S0F might be unreadable",$8D,00 +optimum + !text "T00,S00 Found Optimum Resource disk",$8D + !text "T01,S0F might be unreadable",$8D,00 +builtin + !text "Using built-in RWTS",$8D,00 +switch + !text "Switching to built-in RWTS",$8D,00 +writing + !text "Writing to S%S,D%D",$8D,00 +unformat + !text "T%t is unformatted",$8D,00 +f7 + !text "T%t Found $F7F6EFEEAB protection",$8D,00 +sync + !text "T%t Found nibble count protection",$8D,00 +optbad + !text "T%t,S%s is unreadable (ignoring)",$8D,00 +passver + !text "Verification complete. The disk is good.",00 +passdemuf + !text "Demuffin complete.",$8D,00 +passcrack + !text "Crack complete.",$8D,00 +passcrack0 + !byte $8D + !text "The disk was copied successfully, but",$8D + !text "Passport did not apply any patches.",$8D,$8D + !text "Possible reasons:",$8D + !text "- The source disk is not copy protected." + !text "- The target disk works without patches." + !text "- The disk uses an unknown protection,",$8D + !text " and Passport can not help any further.",00 +fail + !byte $8D + !text "T%t,S%s Fatal read error",$8D,00 +fatal0000 + !byte $8D + !text "Possible reasons:",$8D + !text "- There is no disk in S6,D1.",$8D + !text "- It is not an Apple ][ disk.",$8D + !text "- The disk is DOS 3.2-only.",$8D + !text "- The disk is unformatted.",$8D,00 +fatal220f + !byte $8D + !text "Passport does not work on this disk.",$8D,$8D + !text "Possible reasons:",$8D + !text "- This is not a 16-sector disk.",$8D + !text "- The disk modifies its RWTS in ways",$8D + !text " that Passport is not able to detect.",$8D,00 +done + !byte $8D + !text "Press any key to continue " + !scrxor $40, " ",00 +noslot6 + !text "Passport requires a Disk II drive in S6.",$8D + !text "Press any key to quit " + !scrxor $40, " ",00 +writeerr + !byte $8D + !text "T%t Fatal write error",$8D,$8D,00 +; +; MLI error $27 +; +writeioerr + !text "Possible reasons:",$8D + !text "- There is no disk in S%S,D%D.",$8D + !text "- The disk has bad sectors.",$8D + !text "- The disk is unformatted.",$8D,$8D,00 +; +; MLI error $28 +; +writenodev + !text "S%S,D%D does not exist.",$8D,00 +; +; MLI error $2B +; +writeprot + !text "The disk in S%S,D%D is write-protected.",$8D,00 +; +; other MLI error +; +othermli + !text "MLI error $%0.",$8D + !text "Please contact the developer.",$8D,00 + +canttrace + !text "Unrecognized drive, tracing is disabled",$8D,00 +canceled + !text "Canceled at your request.",$8D,00 +bademu + !byte 00 +reset + !byte $8D + !text "Press to continue.",$8D,00 +smodify + !text "T%t,S%0,$%1: ",00 +modifyto + !text " -> ",00 +dosboot0 + !text "T00,S00 Found DOS 3.3 bootloader",$8D,00 +prodosboot0 + !text "T00,S00 Found ProDOS bootloader",$8D,00 +pascalboot0 + !text "T00,S00 Found Pascal bootloader",$8D,00 +meccboot0 + !text "T00 Found MECC M8 bootloader",$8D,00 +sierra + !text "T%t,S%0 Found Sierra protection check",$8D,00 +a6bc95 + !text "T%t,S%0 Found A6BC95 protection check",$8D,00 +jmpbcf0 + !text "T00,S03 RWTS requires a timing bit after" + !text "the first data epilogue by jumping to",$8D + !text "$BCF0.",$8D,00 +rol1e + !text "T00,S03 RWTS accumulates timing bits in",$8D + !text "$1E and checks its value later.",$8D,00 +runhello + !text "T%t,S%0 Startup program executes a",$8D + !text "protection check before running the real" + !text "startup program.",$8D,00 +e7 + !text "T%t,S%0 Found E7 bitstream",$8D,00 +jmpb4bb + !text "T00,S0C Disk calls a protection check at" + !text "$B4BB before initializing DOS.",$8D,00 +jmpb400 + !text "T00,S01 Disk calls a protection check at" + !text "$B400 before initializing DOS.",$8D,00 +jmpbeca + !text "T00,S02 RWTS requires extra nibbles and",$8D + !text "timing bits after the data prologue by",$8D + !text "jumping to $BECA.",$8D,00 +jsrbb03 + !text "T00,S05 Found a self-decrypting",$8D + !text "protection check at $BB03.",$8D,00 +thunder + !text "T00,S03 RWTS counts timing bits and",$8D + !text "checks them later.",$8D,00 +jmpae8e + !text "T00,S0D Disk calls a protection check at" + !text "$AE8E after initializing DOS.",$8D,00 +diskvol + !text "T00,S08 RWTS requires a non-standard",$8D + !text "disk volume number.",$8D,00 +d5d5f7 + !text "T%t,S%0 Found D5D5F7 protection check",$8D,00 +meccm7 + !text "T00 Found MECC M7 bootloader",$8D,00 +datasoftb0 + !text "T00,S00 Found Datasoft bootloader",$8D,00 +datasoft + !text "T%t,S%0 Found Datasoft protection check",$8D,00 +lsr6a + !text "T00,S03 RWTS accepts $D4 or $D5 for the",$8D + !text "first address prologue nibble.",$8D,00 +bcs08 + !text "T00,S03 RWTS accepts $DE or a timing bit" + !text "for the first address epilogue nibble.",$8D,00 +jmpb660 + !text "T00,S02 RWTS requires timing bits after",$8D + !text "the data prologue by jumping to $B660.",$8D,00 +protdos + !text "T00,S01 Found encrypted RWTS, key=$%0",$8D,00 +protdosw + !text "T00 Decrypting RWTS before writing",$8D,00 +protserial + !text "T%t,S%3 Erasing serial number %0%1%2",$8D,00 +fbff + !text "T%t,S%0 Found FBFF protection check",$8D,00 +encoded44 + !byte $8D + !text "T00,S00 Fatal error",$8D,$8D + !text "Passport does not work on this disk,",$8D + !text "because it uses a 4-and-4 encoding.",$8D,00 +encoded53 + !byte $8D + !text "T00,S00 Fatal error",$8D,$8D + !text "Passport does not work on this disk,",$8D + !text "because it uses a 5-and-3 encoding.",$8D,00 +specdel + !text "T00,S00 Found DOS 3.3P bootloader",$8D,00 diff --git a/src/strings/fi.a b/src/strings/fi.a new file mode 100755 index 0000000..7d77291 --- /dev/null +++ b/src/strings/fi.a @@ -0,0 +1,349 @@ +* Finnish translation by Jorma Honkanen +* +* Main menu keys +* (should match the text in :mainmenu below) +* (these are NOT case-sensitive) +* +k_verify = "T" +k_demuffin = "M" +k_crack = "P" +k_slot = "S" +k_quit = "L" +* will also quit + +* Verify = T/arkista +* Demuffin = M/uunna levyke +* Crack = P/oista suojaus +* Slot = Liitin, Slot - but not to be changed! +* Quit = L/opeta + +* +* String IDs +* (pass in accumulator to PrintByID) +* +s_header = $00 +s_mainmenu = $01 +s_progbar = $02 +s_reading = $03 +s_diskrwts = $04 +s_bb00 = $05 +s_sunburst = $06 +s_optimum = $07 +s_builtin = $08 +s_switch = $09 +s_writing = $0A +s_unformat = $0B +s_f7 = $0C +s_sync = $0D +s_optbad = $0E +s_pass = $0F +s_passdemuf = $10 +s_passcrack = $11 +s_passcrack0 = $12 +s_fail = $13 +s_fatal0000 = $14 +s_fatal220f = $15 +s_done = $16 +s_noslot6 = $17 +s_writeerr = $18 +s_writeioerr = $19 +s_writenodev = $1A +s_writeprot = $1B +s_othermli = $1C +s_canttrace = $1D +s_canceled = $1E +s_bademu = $1F +s_reset = $20 +s_modify = $21 +s_modifyto = $22 +s_dosb0 = $23 +s_prodosb0 = $24 +s_pascalb0 = $25 +s_meccb0 = $26 +s_sierra = $27 +s_a6bc95 = $28 +s_jmpbcf0 = $29 +s_rol1e = $2A +s_runhello = $2B +s_e7 = $2C +s_jmpb4bb = $2D +s_jmpb400 = $2E +s_jmpbeca = $2F +s_jsrbb03 = $30 +s_thunder = $31 +s_jmpae8e = $32 +s_diskvol = $33 +s_d5d5f7 = $34 +s_meccm7 = $35 +STRINGCOUNT = $36 + +StringTable + da :header + da :mainmenu + da :progbar + da :reading + da :diskrwts + da :bb00 + da :sunburst + da :optimum + da :builtin + da :switch + da :writing + da :unformat + da :f7 + da :sync + da :optbad + da :passver + da :passdemuf + da :passcrack + da :passcrack0 + da :fail + da :fatal0000 + da :fatal220f + da :done + da :noslot6 + da :writeerr + da :writeioerr + da :writenodev + da :writeprot + da :othermli + da :canttrace + da :canceled + da :bademu + da :reset + da :modify + da :modifyto + da :dosboot0 + da :prodosboot0 + da :pascalboot0 + da :meccboot0 + da :sierra + da :a6bc95 + da :jmpbcf0 + da :rol1e + da :runhello + da :e7 + da :jmpb4bb + da :jmpb400 + da :jmpbeca + da :jsrbb03 + da :thunder + da :jmpae8e + da :diskvol + da :d5d5f7 + da :meccm7 + +* +* Text can contain substitution strings, which +* are replaced by current values at runtime. Each +* substitution string is two bytes long. The first +* byte is always "%", which puts the print routine +* into substitution mode. The next byte controls +* which value is printed (see list below), then +* substitution mode ends automatically. Unknown +* substitution strings are silently ignored and +* produce no output. +* +* Substitution strings are case-sensitive. +* +* Supported substitution strings: +* %S destination (write) slot +* %D destination (write) drive +* %t current track (during read and patch) +* %s current sector (during read) +* +* In addition, it supports "%0" through "%9" +* for printing arbitrary hexadecimal values. +* These are stored in the gDisplayBytes array and +* can be set directly before calling PrintByID. +* +:header + ASC "Passport / 4am 20160712-fi"00 +:mainmenu + ASC "________________________________________"8D8D8D8D8D8D8D + ASC " " + INV "T" + ASC "arkista levyke"8D8D + ASC " " + INV "M" + ASC "uunna levyke"8D8D + ASC " " + INV "P" + ASC "oista suojaus levykkeelt{"8D8D + ASC " " + INV "L" + ASC "opeta"8D8D8D8D8D8D8D + ASC "alkuper{inen: S6,D1 kohde: " + INV "S" + ASC "%S,D%D"00 +:progbar + HEX 8D + ASC " ______________________________________"8D + ASC " " + INV " " + ASC "____________________________________" + INV " "8D8D8D00 +:reading + ASC "Luetaan S6,D1"8D00 +:diskrwts + ASC "K{ytet{{n levykkeen omaa RWTS:{{"8D00 +:bb00 + ASC "T00,S05 L|ysi $BB00 suojaustarkastuksen"8D + ASC "T00,S0A voi olla lukukelvoton"8D00 +:sunburst + ASC "T00,S04 L|ysi Sunburst levykkeen"8D + ASC "T11,S0F voi olla lukukelvoton"8D00 +:optimum + ASC "T00,S00 L|ysi Optimum Resource levykkeen"8D + ASC "T01,S0F voi olla lukukelvoton"8D00 +:builtin + ASC "K{ytt{{ sis{{nrakennettua RWTS:{{"8D00 +:switch + ASC "Vaihtaa sis{{nrakennettuun RWTS:{{n"8D00 +:writing + ASC "Kirjoittaa S%S,D%D"8D00 +:unformat + ASC "T%t on alustamaton"8D00 +:f7 + ASC "T%t L|ysi $F7F6EFEEAB suojauksen"8D00 +:sync + ASC "T%t L|ysi Nibble Count suojauksen"8D00 +:optbad + ASC "T%t,S%s on lukukelvoton (ei v{litet{)"8D00 +:passver + ASC "Varmistus on valmis. Levyke on luettavissa."00 +:passdemuf + ASC "Siirto valmis."8D00 +:passcrack + ASC "Suojauksen poisto valmis."8D00 +:passcrack0 + HEX 8D + ASC "Levyke kopioitiin onnistuneesti, mutta"8D + ASC "Passport ei lis{nnyt korjauksia."8D8D + ASC "Mahdollisia syit{:"8D + ASC "- Alkuper{inen levyke ei ole kopiosuojattu." + ASC "- Kohdelevyke toimii ilman korjauksia." + ASC "- Levyke k{ytt{{ tuntematonta suojausta,"8D + ASC " ja Passport ei voi auttaa."00 +:fail + HEX 8D + ASC "T%t,S%s Vakava luku virhe"8D00 +:fatal0000 + HEX 8D + ASC "Mahdollisia syit{:"8D + ASC "- Ei levykett{ asemassa S6,D1."8D + ASC "- Levyke ei ole Apple ][ levyke."8D + ASC "- Levyke on DOS 3.2 (13 sektoria)."8D + ASC "- Levyke on alustamaton."8D00 +:fatal220f + HEX 8D + ASC "Passport ei toimi t{m{n levykkeen kanssa."8D8D + ASC "Mahdollisia syit{:"8D + ASC "- Levyke ei ole 16-sektorin levyke."8D + ASC "- Levyke muuntaa RWTS:{{ tavoilla"8D + ASC " joita Passport ei pysty havaitsemaan."8D00 +:done + HEX 8D + ASC "Paina jotain n{pp{int{ jatkaaksesi " + FLS " "00 +:noslot6 + ASC "Passport vaatii Disk II aseman S6."8D + ASC "Paina jotain n{pp{int{ lopettaaksesi " + FLS " "00 +:writeerr + HEX 8D + ASC "T%t Vakava kirjoitus virhe"8D8D00 +* +* MLI error $27 +* +:writeioerr + ASC "Mahdollisia syit{:"8D + ASC "- Ei levykett{ S%S,D%D."8D + ASC "- Levykkeell{ on huonoja sektoreita."8D + ASC "- Levyke on alustamaton."8D8D00 +* +* MLI error $28 +* +:writenodev + ASC "S%S,D%D ei ole olemassa."8D00 +* +* MLI error $2B +* +:writeprot + ASC "Levyke S%S,D%D on kirjoitussuojattu."8D00 +* +* other MLI error +* +:othermli + ASC "MLI virhe $%0."8D + ASC "Ota yhteytt{ ohjelman kehitt{j{{n."8D00 + +:canttrace + ASC "Tunnistamaton asema, j{ljitt{minen on poistettu"8D00 +:canceled + ASC "Keskeytetty pyynn|st{si."8D00 +:bademu + HEX 8D + ASC "VAROITUS! K{yt{t Passport-ohjelmaa"8D + ASC "emulaattorilla joka ei asianmukaisesti"8D + ASC "tue levyke asemia. Passport yritt{{"8D + ASC "kiert{{ t{m{n, mutta jotkut levykkeet"8D + ASC "voivat olla lukukelvottomia."8D8D00 +:reset + HEX 8D + ASC "Paita jatkaaksesi."8D00 +:modify + ASC "T%t,S%0,$%1: "00 +:modifyto + ASC " -> "00 +:dosboot0 + ASC "T00,S00 L|ysi DOS 3.3 k{ynnistyslataajan"8D00 +:prodosboot0 + ASC "T00,S00 L|ysi ProDOS k{ynnistyslataajan"8D00 +:pascalboot0 + ASC "T00,S00 L|ysi Pascal k{ynnistyslataajan"8D00 +:meccboot0 + ASC "T00,S00 L|ysi MECC M8 k{ynnistyslataajan"8D00 +:sierra + ASC "T%t,S%0 L|ysi Sierra suojaustarkastuksen"8D00 +:a6bc95 + ASC "T%t,S%0 L|ysi A6BC95 suojaustarkastuksen"8D00 +:jmpbcf0 + ASC "T00,S03 RWTS vaatii ajoitus bitin ensimm{isen" + ASC "data epilogin j{lkeen hypp{{m{ll{"8D + ASC "$BCF0."8D00 +:rol1e + ASC "T00,S03 RWTS kokoaa ajoitus bittej{"8D + ASC "$1E ja tarkistaa niiden arvot my|hemmin."8D00 +:runhello + ASC "T%t,S%0 Aloitusohjelma ajaa suojaus"8D + ASC "tarkastuksen ennen oikean aloitus ohjeman" + ASC "ajamista."8D00 +:e7 + ASC "T%t,S%0 L|ysi E7 bittivirran"8D00 +:jmpb4bb + ASC "T00,S0C Levyke kutsuu suojaus tarkastusta" + ASC "$B4BB ennen DOS:in alustamista."8D00 +:jmpb400 + ASC "T00,S01 Levyke kutsuu suojaus tarkastusta" + ASC "$B400 ennen DOS:in alustamista."8D00 +:jmpbeca + ASC "T00,S02 RWTS vaatii ylim{{r{isen nibblen ja"8D + ASC "ajoitus bitin ennen data prologia"8D + ASC "hypp{{m{ll{ $BECA."8D00 +:jsrbb03 + ASC "T00,S05 L|ysi itsepurkautuvan"8D + ASC "suojaustarkastuksen $BB03."8D00 +:thunder + ASC "T00,S03 RWTS laskee ajoitus bittej{ ja"8D + ASC "tarkistaa ne my|hemmin."8D00 +:jmpae8e + ASC "T00,S0D Levyke kutsuu suojaus tarkastusta" + ASC "$AE8E DOS:in alustamisen j{lkeen."8D00 +:diskvol + ASC "T00,S08 RWTS vaatii ep{standardin"8D + ASC "levyke numeroinnin."8D00 +:d5d5f7 + ASC "T%t,S%0 L|ysi D5D5F7 suojaustarkastuksen"8D00 +:meccm7 + ASC "T00,S00 L|ysi MECC M7 k{ynnistyslataajan"8D00 diff --git a/src/strings/fr.a b/src/strings/fr.a new file mode 100755 index 0000000..7e3ada8 --- /dev/null +++ b/src/strings/fr.a @@ -0,0 +1,343 @@ +* French translation by Antoine Vignau +* +* Main menu keys +* (should match the text in :mainmenu below) +* (these are NOT case-sensitive) +* +k_verify = "V" +k_demuffin = "D" +k_crack = "C" +k_slot = "S" +k_quit = "Q" +* will also quit + +* +* String IDs +* (pass in accumulator to PrintByID) +* +s_header = $00 +s_mainmenu = $01 +s_progbar = $02 +s_reading = $03 +s_diskrwts = $04 +s_bb00 = $05 +s_sunburst = $06 +s_optimum = $07 +s_builtin = $08 +s_switch = $09 +s_writing = $0A +s_unformat = $0B +s_f7 = $0C +s_sync = $0D +s_optbad = $0E +s_pass = $0F +s_passdemuf = $10 +s_passcrack = $11 +s_passcrack0 = $12 +s_fail = $13 +s_fatal0000 = $14 +s_fatal220f = $15 +s_done = $16 +s_noslot6 = $17 +s_writeerr = $18 +s_writeioerr = $19 +s_writenodev = $1A +s_writeprot = $1B +s_othermli = $1C +s_canttrace = $1D +s_canceled = $1E +s_bademu = $1F +s_reset = $20 +s_modify = $21 +s_modifyto = $22 +s_dosb0 = $23 +s_prodosb0 = $24 +s_pascalb0 = $25 +s_meccb0 = $26 +s_sierra = $27 +s_a6bc95 = $28 +s_jmpbcf0 = $29 +s_rol1e = $2A +s_runhello = $2B +s_e7 = $2C +s_jmpb4bb = $2D +s_jmpb400 = $2E +s_jmpbeca = $2F +s_jsrbb03 = $30 +s_thunder = $31 +s_jmpae8e = $32 +s_diskvol = $33 +s_d5d5f7 = $34 +s_meccm7 = $35 +STRINGCOUNT = $36 + +StringTable + da :header + da :mainmenu + da :progbar + da :reading + da :diskrwts + da :bb00 + da :sunburst + da :optimum + da :builtin + da :switch + da :writing + da :unformat + da :f7 + da :sync + da :optbad + da :passver + da :passdemuf + da :passcrack + da :passcrack0 + da :fail + da :fatal0000 + da :fatal220f + da :done + da :noslot6 + da :writeerr + da :writeioerr + da :writenodev + da :writeprot + da :othermli + da :canttrace + da :canceled + da :bademu + da :reset + da :modify + da :modifyto + da :dosboot0 + da :prodosboot0 + da :pascalboot0 + da :meccboot0 + da :sierra + da :a6bc95 + da :jmpbcf0 + da :rol1e + da :runhello + da :e7 + da :jmpb4bb + da :jmpb400 + da :jmpbeca + da :jsrbb03 + da :thunder + da :jmpae8e + da :diskvol + da :d5d5f7 + da :meccm7 +* +* Text can contain substitution strings, which +* are replaced by current values at runtime. Each +* substitution string is two bytes long. The first +* byte is always "%", which puts the print routine +* into substitution mode. The next byte controls +* which value is printed (see list below), then +* substitution mode ends automatically. Unknown +* substitution strings are silently ignored and +* produce no output. +* +* Substitution strings are case-sensitive. +* +* Supported substitution strings: +* %S destination (write) slot +* %D destination (write) drive +* %t current track +* %s current sector +* +* In addition, it supports "%0" through "%9" +* for printing arbitrary hexadecimal values. +* These are stored in the gDisplayBytes array and +* can be set directly before calling PrintByID. +* +:header + ASC "Passport par 4am 20160712-fr"00 +:mainmenu + ASC "________________________________________"8D8D8D8D8D8D8D + ASC " " + INV "V" + ASC "{rifier"8D8D + ASC " " + INV "D" + ASC "{muffiniser"8D8D + ASC " " + INV "C" + ASC "racker"8D8D + ASC " " + INV "Q" + ASC "uitter"8D8D8D8D8D8D8D + ASC "source: S6,D1 destination: " + INV "S" + ASC "%S,D%D"00 +:progbar + HEX 8D + ASC " ______________________________________"8D + ASC " " + INV " " + ASC "____________________________________" + INV " "8D8D8D00 +:reading + ASC "Lecture depuis S6,D1"8D00 +:diskrwts + ASC "Utilisation de la RWTS de la disquette"8D00 +:bb00 + ASC "V{rif. de protection en $BB00 d{tect{e"8D + ASC "P00,S0A probablement illisible"8D00 +:sunburst + ASC "Disquette Sunburst d{tect{e"8D + ASC "P11,S0F probablement illisible"8D00 +:optimum + ASC "Disquette Optimum Resource d{tect{e"8D + ASC "P01,S0F probablement illisible"8D00 +:builtin + ASC "Utilisation de la RWTS int{gr{e"8D00 +:switch + ASC "Bascule vers la RWTS int{gr{e"8D00 +:writing + ASC "Ecriture vers S%S,D%D"8D00 +:unformat + ASC "P%t non format{e"8D00 +:f7 + ASC "Protection $F7F6EFEEAB d{tect{e P%t"8D00 +:sync + ASC "Protection Nibble count d{tect{e P%t"8D00 +:optbad + ASC "P%t,S%s n'est pas lisible (ignor{)"8D00 +:passver + ASC "V{rif. termin{e. Disquette lisible."8D00 +:passdemuf + ASC "D{muffin termin{."8D00 +:passcrack + ASC "Crack termin{."8D00 +:passcrack0 + HEX 8D + ASC "La disquette a {t{ copi{e avec succ}s"8D + ASC "mais Passport ne l'a pas modifi{e."8D8D + ASC "Causes possibles :"8D + ASC "- Disquette source non prot{g{e."8D + ASC "- Disquette destination fonctionnelle."8D + ASC "- La disquette utilise une protection"8D + ASC " inconnue non g{r{e par Passport."00 +:fail + HEX 8D + ASC "Erreur fatale de lecture P%t,S%s"8D00 +:fatal0000 + HEX 8D + ASC "Causes possibles :"8D + ASC "- Pas de disquette en S6,D1."8D + ASC "- Disquette non Apple ][."8D + ASC "- Disquette uniquement DOS 3.2."8D + ASC "- Disquette non format{e."8D00 +:fatal220f + HEX 8D + ASC "Passport ne peut g{rer cette disquette."8D8D + ASC "Causes possibles :"8D + ASC "- Disquette non 16-secteurs."8D + ASC "- Disquette modifie sa RWTS et"8D + ASC " Passport ne peut pas le d{tecter."8D00 +:done + HEX 8D + ASC "Pressez une touche pour continuer " + FLS " "00 +:noslot6 + ASC "Passport requiert un Disk II en S6."8D + ASC "Pressez une touche pour quitter " + FLS " "00 +:writeerr + HEX 8D + ASC "Erreur fatale d'{criture P%t"8D8D00 +* +* MLI error $27 +* +:writeioerr + ASC "Causes possibles :"8D + ASC "- Pas de disquette en S%S,D%D."8D + ASC "- Secteurs illisibles sur la disquette."8D + ASC "- La disquette n'est pas format{e."8D8D00 +* +* MLI error $28 +* +:writenodev + ASC "S%S,D%D n'existe pas."8D00 +* +* MLI error $2B +* +:writeprot + ASC "Disque en S%S,D%D prot{g{ en {criture."8D00 +* +* other MLI error +* +:othermli + ASC "Erreur MLI $%0."8D + ASC "Veuillez contacter le d{veloppeur."8D00 +:canttrace + ASC "Lecteur inconnu, trace d{sactiv{e"8D00 +:canceled + ASC "Op{ration annul{e @ votre demande."8D00 +:bademu + HEX 8D + ASC "ATTENTION ! Vous utilisez Passport avec"8D + ASC "un {mulateur qui ne g}re pas bien les"8D + ASC "lecteurs de disquettes. Passport tentera" + ASC "de contourner le probl}me mais certaines" + ASC "disquettes ne seront pas lisibles."8D8D00 +:reset + HEX 8D + ASC "Pressez pour continuer."8D00 +:modify + ASC "P%t,S%0,$%1: "00 +:modifyto + ASC " -> "00 +:dosboot0 + ASC "P00,S00 Secteur de boot DOS 3.3 trouv{"8D00 +:prodosboot0 + ASC "P00,S00 Secteur de boot ProDOS trouv{"8D00 +:pascalboot0 + ASC "P00,S00 Secteur de boot Pascal trouv{"8D00 +:meccboot0 + ASC "P00 Secteur de boot MECC M8 trouv{"8D00 +:sierra + ASC "P%t,S%0 V{rif. de prot. Sierra trouv{e"8D00 +:a6bc95 + ASC "P%t,S%0 V{rif. de prot. A6BC95 trouv{e"8D00 +:jmpbcf0 + ASC "P00,S03 La RWTS requiert un bit de"8D + ASC "timing apr}s le premier {pilogue du"8D + ASC "champ de donn{es en sautant @ $BCF0."8D00 +:rol1e + ASC "P00,S03 La RWTS met les bits de timing"8D + ASC "en $1E et v{rifie la valeur plus tard."8D00 +:runhello + ASC "P%T,S%0 Le programme de d{marrage"8D + ASC "v{rifie la protection avant d'ex{cuter"8D + ASC "le vrai programme de d{marrage."8D00 +:e7 + ASC "P%t,S%0 Flux de bits E7 trouv{"8D00 +:jmpb4bb + ASC "P00,S0C Le disque v{rifie la protection"8D + ASC "en $B4BB avant d'initialiser le DOS."8D00 +:jmpb400 + ASC "P00,S01 Le disque v{rifie la protection"8D + ASC "en $B400 avant d'initialiser le DOS."8D00 +:jmpbeca + ASC "P00,S02 La RWTS requiert des nibbles"8D + ASC "suppl{mentaires et des bits de timing"8D + ASC "apr}s le prologue de donn{es en $BECA."8D00 +:jsrbb03 + ASC "P00,S05 V{rification de protection"8D + ASC "auto-d{chiffrable trouv{e en $BB03."8D00 +:thunder + ASC "P00,S03 La RWTS compte les bits de"8D + ASC "timing et les v{rifie plus tard."8D00 +:jmpae8e + ASC "P00,S0D Le disque v{rifie la protection"8D + ASC "en $AE8E apr}s l'initialisation du DOS."8D00 +:diskvol + ASC "P00,S08 La RWTS requiert un num{ro de"8D + ASC "volume de disque non standard."8D00 +:d5d5f7 + ASC "P%t,S%0 V{rif. de prot. D5D5F7 trouv{e"8D00 +:meccm7 + ASC "P00 Secteur de boot MECC M7 trouv{"8D00 + +* asc "1234567890123456789012345678901234567890" diff --git a/src/strings/it.a b/src/strings/it.a new file mode 100755 index 0000000..a3aed27 --- /dev/null +++ b/src/strings/it.a @@ -0,0 +1,351 @@ +* Italian translation by Marco Verpelli +* +* Main menu keys +* (should match the text in :mainmenu below) +* (these are NOT case-sensitive) +* +k_verify = "V" +k_demuffin = "D" +k_crack = "C" +k_slot = "S" +k_quit = "F" +* will also quit + +* +* String IDs +* (pass in accumulator to PrintByID) +* +s_header = $00 +s_mainmenu = $01 +s_progbar = $02 +s_reading = $03 +s_diskrwts = $04 +s_bb00 = $05 +s_sunburst = $06 +s_optimum = $07 +s_builtin = $08 +s_switch = $09 +s_writing = $0A +s_unformat = $0B +s_f7 = $0C +s_sync = $0D +s_optbad = $0E +s_pass = $0F +s_passdemuf = $10 +s_passcrack = $11 +s_passcrack0 = $12 +s_fail = $13 +s_fatal0000 = $14 +s_fatal220f = $15 +s_done = $16 +s_noslot6 = $17 +s_writeerr = $18 +s_writeioerr = $19 +s_writenodev = $1A +s_writeprot = $1B +s_othermli = $1C +s_canttrace = $1D +s_canceled = $1E +s_bademu = $1F +s_reset = $20 +s_modify = $21 +s_modifyto = $22 +s_dosb0 = $23 +s_prodosb0 = $24 +s_pascalb0 = $25 +s_meccb0 = $26 +s_sierra = $27 +s_a6bc95 = $28 +s_jmpbcf0 = $29 +s_rol1e = $2A +s_runhello = $2B +s_e7 = $2C +s_jmpb4bb = $2D +s_jmpb400 = $2E +s_jmpbeca = $2F +s_jsrbb03 = $30 +s_thunder = $31 +s_jmpae8e = $32 +s_diskvol = $33 +s_d5d5f7 = $34 +s_meccm7 = $35 +STRINGCOUNT = $36 + +StringTable + da :header + da :mainmenu + da :progbar + da :reading + da :diskrwts + da :bb00 + da :sunburst + da :optimum + da :builtin + da :switch + da :writing + da :unformat + da :f7 + da :sync + da :optbad + da :passver + da :passdemuf + da :passcrack + da :passcrack0 + da :fail + da :fatal0000 + da :fatal220f + da :done + da :noslot6 + da :writeerr + da :writeioerr + da :writenodev + da :writeprot + da :othermli + da :canttrace + da :canceled + da :bademu + da :reset + da :modify + da :modifyto + da :dosboot0 + da :prodosboot0 + da :pascalboot0 + da :meccboot0 + da :sierra + da :a6bc95 + da :jmpbcf0 + da :rol1e + da :runhello + da :e7 + da :jmpb4bb + da :jmpb400 + da :jmpbeca + da :jsrbb03 + da :thunder + da :jmpae8e + da :diskvol + da :d5d5f7 + da :meccm7 +* +* Text can contain substitution strings, which +* are replaced by current values at runtime. Each +* substitution string is two bytes long. The first +* byte is always "%", which puts the print routine +* into substitution mode. The next byte controls +* which value is printed (see list below), then +* substitution mode ends automatically. Unknown +* substitution strings are silently ignored and +* produce no output. +* +* Substitution strings are case-sensitive. +* +* Supported substitution strings: +* %S destination (write) slot +* %D destination (write) drive +* %t current track (during read and patch) +* %s current sector (during read) +* +* In addition, it supports "%0" through "%9" +* for printing arbitrary hexadecimal values. +* These are stored in the gDisplayBytes array and +* can be set directly before calling PrintByID. +* +:header + ASC "Passport di 4am 20160712-it"00 +:mainmenu + ASC "________________________________________"8D8D8D8D8D8D8D + ASC " " + INV "V" + ASC "erifica il disco"8D8D + ASC " " + INV "D" + ASC "emuffin (copia)"8D8D + ASC " " + INV "C" + ASC "ura il disco"8D8D + ASC " " + INV "F" + ASC "ine"8D8D8D8D8D8D8D + ASC "originale: S6,D1 copia: " + INV "S" + ASC "%S,D%D"00 +:progbar + HEX 8D + ASC " ______________________________________"8D + ASC " " + INV " " + ASC "____________________________________" + INV " "8D8D8D00 +:reading + ASC "Leggo dallo S6,D1"8D00 +:diskrwts + ASC "Uso la RWTS letta dal disco"8D00 +:bb00 + ASC "T00,S05 Trovata protezione $BB00"8D + ASC "T00,S0A potrebbe essere illeggibile"8D00 +:sunburst + ASC "T00,S04 Trovato disco della Sunburst"8D + ASC "T11,S0F potrebbe essere illeggibile"8D00 +:optimum + ASC "T00,S00 Trovato disco della"8D + ASC "Optimum Resource"8D + ASC "T01,S0F potrebbe essere illegibile"8D00 +:builtin + ASC "Uso la RWTS incorporata"8D00 +:switch + ASC "Passo alla RWTS incorporata"8D00 +:writing + ASC "Scrivo sullo S%S,D%D"8D00 +:unformat + ASC "La T%t non e' formattata"8D00 +:f7 + ASC "T%t Trovata protezione $F7F6EFEEAB"8D00 +:sync + ASC "T%t Trovata protezione conteggio nibble"8D00 +:optbad + ASC "T%t,S%s e' illeggibile (ignorata)"8D00 +:passver + ASC "Verifica completata. Il disco e' buono."8D00 +:passdemuf + ASC "Demuffin (copia) completata."8D00 +:passcrack + ASC "Cura completata."8D00 +:passcrack0 + HEX 8D + ASC "Il disco e' stato copiato con successo,"8D + ASC "ma Passport non ha applicato modifiche."8D8D + ASC "Possibili cause:"8D + ASC "- L'originale non era protetto da copia." + ASC "- La copia funziona senza modifiche."8D + ASC "- L'originale usa una protezione non"8D + ASC " conosciuta e Passport non puo' essere"8D + ASC " di ulteriore aiuto."00 +:fail + HEX 8D + ASC "T%t,S%s Errore grave in lettura"8D00 +:fatal0000 + HEX 8D + ASC "Possibili cause:"8D + ASC "- Non e' inserito un disco nello S6,D1."8D + ASC "- Non e' un disco Apple ][."8D + ASC "- Il disco e' solo per DOS 3.2."8D + ASC "- Il disco non e' formattato."8D00 +:fatal220f + HEX 8D + ASC "Passport non funziona con questo disco."8D8D + ASC "Possibili cause:"8D + ASC "- Questo non e' un disco a 16 settori."8D + ASC "- Il disco ha una RWTS modificata in"8D + ASC " un modo che Passport non e' in grado"8D + ASC " di identificare."8D00 +:done + HEX 8D + ASC "Premere un tasto per continuare " + FLS " "00 +:noslot6 + ASC "Passport richiede un drive Disk II."8D + ASC "nello S6."8D + ASC "Premere un tasto per finire " + FLS " "00 +:writeerr + HEX 8D + ASC "T%t Errore grave in scrittura"8D8D00 +* +* MLI error $27 +* +:writeioerr + ASC "Possibili cause:"8D + ASC "- Non e' inserito un disco nello S%S,D%D."8D + ASC "- Il disco ha dei settori danneggiati."8D + ASC "- Il disco non e' formattato."8D8D00 +* +* MLI error $28 +* +:writenodev + ASC "Lo S%S,D%D non esiste."8D00 +* +* MLI error $2B +* +:writeprot + ASC "Il disco nello S%S,D%D e' protetto da"8D + ASC "scrittura."8D00 +* +* other MLI error +* +:othermli + ASC "Errore MLI $%0."8D + ASC "Per favore contattate lo sviluppatore."8D00 + +:canttrace + ASC "Drive non riconosciuto, tracciamento"8D + ASC "disabilitato."8D00 +:canceled + ASC "Cancellato come hai richiesto."8D00 +:bademu + HEX 8D + ASC "ATTENZIONE! Stai eseguendo Passport con"8D + ASC "un emulatore che non supporta a pieno i"8D + ASC "floppy drivers. Passport cerchera' di"8D + ASC "rimediare a questa mancanza, ma certi"8D + ASC "dischi risulteranno illeggibili."8D8D00 +:reset + HEX 8D + ASC "Premere per continuare."8D00 +:modify + ASC "T%t,S%0,$%1: "00 +:modifyto + ASC " -> "00 +:dosboot0 + ASC "T00,S00 Trovato bootloader DOS 3.3"8D00 +:prodosboot0 + ASC "T00,S00 Trovato bootloader ProDOS"8D00 +:pascalboot0 + ASC "T00,S00 Trovato bootloader Pascal"8D00 +:meccboot0 + ASC "T00 Trovato bootloader MECC M8"8D00 +:sierra + ASC "T%t,S%0 Trovata protezione Sierra"8D00 +:a6bc95 + ASC "T%t,S%0 Trovata protezione A6BC95"8D00 +:jmpbcf0 + ASC "T00,S03 La RWTS richiede un timing bit"8D + ASC "dopo il primo epologo dati via salto a"8D + ASC "$BCF0."8D00 +:rol1e + ASC "T00,S03 La RWTS accumula timing bits"8D + ASC "in $1E e dopo ne controlla il valore."8D00 +:runhello + ASC "T%t,S%0 Il programma di avvio esegue"8D + ASC "un controllo di protezione prima di"8D + ASC "lanciare il vero programma di avvio."8D00 +:e7 + ASC "T%t,S%0 Trovato bitstream E7"8D00 +:jmpb4bb + ASC "T00,S0C Il disco chiama un controllo"8D + ASC "di protezione a $B4BB prima di"8D + ASC "inizializzare il DOS."8D00 +:jmpb400 + ASC "T00,S01 il disco chiama un controllo"8D + ASC "di protezione a $B400 prima di" + ASC "inizializzare il DOS."8D00 +:jmpbeca + ASC "T00,S02 La RWTS richiede sia nibbles"8D + ASC "extra che timing bits dopo il prologo"8D + ASC "dati via salto a $BECA."8D00 +:jsrbb03 + ASC "T00,S05 Trovato un controllo di"8D + ASC "protezione con auto-decodifica a $BB03."8D00 +:thunder + ASC "T00,S03 La RWTS conta i timing bits e"8D + ASC "dopo li controlla."8D00 +:jmpae8e + ASC "T00,S0D Il disco chiama un controllo"8D + ASC "di protezione a $AE8E dopo aver"8D + ASC "inizializzato il DOS."8D00 +:diskvol + ASC "T00,S08 La RWTS richiede un disco con"8D + ASC "un numero di volume non standard."8D00 +:d5d5f7 + ASC "T%t,S%0 Trovata protezione D5D5F7"8D00 +:meccm7 + ASC "T00 Trovato bootloader MECC M7"8D00 diff --git a/src/universalrwts.a b/src/universalrwts.a new file mode 100755 index 0000000..fc59ebb --- /dev/null +++ b/src/universalrwts.a @@ -0,0 +1,292 @@ +;------------------------------- +; Universal RWTS +; Binary dump of a modified DOS 3.3-style RWTS +; that reads 16-sector (6-and-2 encoded) disks +; - address prologue "D4 AA 96", "D5 AA 96", or +; "D5" followed by a timing bit +; - any address epilogue +; - data prologue "D5 AA AD" +; - any data epilogue +; +; It verifies data field checksum byte, but it +; ignores the address field checksum. It waits +; significantly longer than a normal RWTS to +; find an address prologue -- long enough that +; it will find the prologue even if there is +; only one sector on a track. +; +; It must be loaded at $B800..$BFFF. It uses the +; standard RWTS entry point at $BD00. +; +; Write and format support have been removed. +; Any attempt to pass $02 or $04 RWTS commands +; will crash. +;------------------------------- + + ;;!align 255, 0 ;ACME bug ignores second parm + !if (* & 255) > 0 { + !fill 256-(* & 255), 0 + } +universalrwts + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,$a0,00,$a2,$56,$ca,$30 + !byte $fb,$b9,00,$bb,$5e,00,$bc,$2a + !byte $5e,00,$bc,$2a,$91,$3e,$c8,$c4 + !byte $26,$d0,$eb,$60,$a0,$20,$88,$f0 + !byte $61,$bd,$8c,$c0,$10,$fb,$49,$d5 + !byte $d0,$f4,$ea,$bd,$8c,$c0,$10,$fb + !byte $c9,$aa,$d0,$f2,$a0,$56,$bd,$8c + !byte $c0,$10,$fb,$c9,$ad,$d0,$e7,$a9 + !byte 00,$88,$84,$26,$bc,$8c,$c0,$10 + !byte $fb,$59,00,$ba,$a4,$26,$99,00 + !byte $bc,$d0,$ee,$84,$26,$bc,$8c,$c0 + !byte $10,$fb,$59,00,$ba,$a4,$26,$99 + !byte 00,$bb,$c8,$d0,$ee,$bc,$8c,$c0 + !byte $10,$fb,$d9,00,$ba,$d0,$13,$18 + !byte $60,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,$38,$60,$a0,$fc,$84,$26 + !byte $c8,$d0,04,$e6,$26,$f0,$f3,$bd + !byte $8c,$c0,$10,$fb,$4a,$c9,$6a,$d0 + !byte $ef +_B959 !byte $bd +_B95A !byte $8c,$c0,$c9,$d5,$f0,$36 + !byte $bd,$8c,$c0,$10,$fb,$c9,$aa,$d0 + !byte $df,$bd,$8c,$c0,$10,$fb,$c9,$96 + !byte $d0,$d6,$a0,03,$a9,00,$85,$27 + !byte $bd,$8c,$c0,$10,$fb,$2a,$85,$26 + !byte $bd,$8c,$c0,$10,$fb,$25,$26,$99 + !byte $2c,00,$45,$27,$88,$10,$e7,$a8 + !byte $d0,00,$18,$60,$38,$60,$8D,$9B + !byte $B9,$F0,$D7,00,00,00,$18,$60 + !byte $86,$2b,$85,$2a,$cd,$78,$04,$f0 + !byte $53,$a9,00,$85,$26,$ad,$78,04 + !byte $85,$27,$38,$e5,$2a,$f0,$33,$b0 + !byte 07,$49,$ff,$ee,$78,04,$90,05 + !byte $69,$fe,$ce,$78,04,$c5,$26,$90 + !byte 02,$a5,$26,$c9,$0c,$b0,01,$a8 + !byte $38,$20,$ee,$b9,$b9,$11,$ba,$20 + !byte 00,$ba,$a5,$27,$18,$20,$f1,$b9 + !byte $b9,$1d,$ba,$20,00,$ba,$e6,$26 + !byte $d0,$c3,$20,00,$ba,$18,$ad,$78 + !byte 04,$29,03,$2a,05,$2b,$aa,$bd + !byte $80,$c0,$a6,$2b,$60,$aa,$a0,$a0 +nibtable !byte $a2,$11,$ca,$d0,$fd,$e6,$46,$d0 + !byte 02,$e6,$47,$38,$e9,01,$d0,$f0 + !byte $60,01,$30,$28,$24,$20,$1e,$1d + !byte $1c,$1c,$1c,$1c,$1c,$70,$2c,$26 + !byte $22,$1f,$1e,$1d,$1c,$1c,$1c,$1c + !byte $1c,$96,$97,$9a,$9b,$9d,$9e,$9f + !byte $a6,$a7,$ab,$ac,$ad,$ae,$af,$b2 + !byte $b3,$b4,$b5,$b6,$b7,$b9,$ba,$bb + !byte $bc,$bd,$be,$bf,$cb,$cd,$ce,$cf + !byte $d3,$d6,$d7,$d9,$da,$db,$dc,$dd + !byte $de,$df,$e5,$e6,$e7,$e9,$ea,$eb + !byte $ec,$ed,$ee,$ef,$f2,$f3,$f4,$f5 + !byte $f6,$f7,$f9,$fa,$fb,$fc,$fd,$fe + !byte $ff,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 +; these $FF bytes (at $BA80..$BA94) are used by the +; routine that checks whether a track is formatted + !byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff + !byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff + !byte $ff,$ff,$ff,$ff,$ff,$ff,00,01 + !byte $98,$99,02,03,$9c,04,05,06 + !byte $a0,$a1,$a2,$a3,$a4,$a5,07,08 + !byte $a8,$a9,$aa,09,$0a,$0b,$0c,$0d + !byte $b0,$b1,$0e,$0f,$10,$11,$12,$13 + !byte $b8,$14,$15,$16,$17,$18,$19,$1a + !byte $c0,$c1,$c2,$c3,$c4,$c5,$c6,$c7 + !byte $c8,$c9,$ca,$1b,$cc,$1c,$1d,$1e + !byte $d0,$d1,$d2,$1f,$d4,$d5,$20,$21 + !byte $d8,$22,$23,$24,$25,$26,$27,$28 + !byte $e0,$e1,$e2,$e3,$e4,$29,$2a,$2b + !byte $e8,$2c,$2d,$2e,$2f,$30,$31,$32 + !byte $f0,$f1,$33,$34,$35,$36,$37,$38 + !byte $f8,$39,$3a,$3b,$3c,$3d,$3e +nibtableff + !byte $3f + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte $84,$48,$85,$49,$a0,02,$8c,$f8 + !byte 06,$a0,04,$8c,$f8,04,$a0,01 + !byte $b1,$48,$aa,$a0,$0f,$d1,$48,$f0 + !byte $1b,$8a,$48,$b1,$48,$aa,$68,$48 + !byte $91,$48,$bd,$8e,$c0,$a0,08,$bd + !byte $8c,$c0,$dd,$8c,$c0,$d0,$f6,$88 + !byte $d0,$f8,$68,$aa,$bd,$8e,$c0,$bd + !byte $8c,$c0,$a0,08,$bd,$8c,$c0,$48 + !byte $68,$48,$68,$8e,$f8,05,$dd,$8c + !byte $c0,$d0,03,$88,$d0,$ee,08,$bd + !byte $89,$c0,$a0,06,$b1,$48,$99,$36 + !byte 00,$c8,$c0,$0a,$d0,$f6,$a0,03 + !byte $b1,$3c,$85,$47,$a0,02,$b1,$48 + !byte $a0,$10,$d1,$48,$f0,06,$91,$48 + !byte $28,$a0,00,08,$6a,$90,05,$bd + !byte $8a,$c0,$b0,03,$bd,$8b,$c0,$66 + !byte $35,$28,$08,$d0,$0b,$a0,07,$20 + !byte 00,$ba,$88,$d0,$fa,$ae,$f8,05 + !byte $a0,04,$b1,$48,$20,$5a,$be,$28 + !byte $d0,$11,$a4,$47,$10,$0d,$a0,$12 + !byte $88,$d0,$fd,$e6,$46,$d0,$f7,$e6 + !byte $47,$d0,$f3,$a0,$0c,$b1,$48,$f0 + !byte $5a,$c9,04,$f0,$58,$6a,08,$b0 + !byte 03,$20,00,$b8,$a0,$30,$8c,$78 + !byte 05,$ae,$f8,05,$20,$44,$b9,$90 + !byte $24,$ce,$78,05,$10,$f3,$ad,$78 + !byte 04,$48,$a9,$60,$20,$95,$be,$ce + !byte $f8,06,$f0,$28,$a9,$04,$8d,$f8 + !byte 04,$a9,00,$20,$5a,$be,$68,$20 + !byte $5a,$be,$4c,$bc,$bd,$a4,$2e,$cc + !byte $78,04,$f0,$1c,$ad,$78,04,$48 + !byte $98,$20,$95,$be,$68,$ce,$f8,04 + !byte $d0,$e5,$f0,$ca,$68,$a9,$40,$28 + !byte $4c,$48,$be,$f0,$39,$4c,$af,$be + !byte $a0,03,$b1,$48,$48,$a5,$2f,$a0 + !byte $0e,$91,$48,$68,$f0,08,$c5,$2f + !byte $f0,04,$a9,$20,$d0,$e1,$a0,05 + !byte $b1,$48,$a8,$b9,$b8,$bf,$c5,$2d + !byte $d0,$97,$28,$90,$1c,$20,$dc,$b8 + !byte 08,$b0,$8e,$28,$a2,00,$86,$26 + !byte $20,$c2,$b8,$ae,$f8,05,$18,$24 + !byte $38,$a0,$0d,$91,$48,$bd,$88,$c0 + !byte $60,$20,$2a,$b8,$90,$f0,$a9,$10 + !byte $b0,$ee,$48,$a0,01,$b1,$3c,$6a + !byte $68,$90,08,$0a,$20,$6b,$be,$4e + !byte $78,04,$60,$85,$2a,$20,$8e,$be + !byte $b9,$78,04,$24,$35,$30,03,$b9 + !byte $f8,04,$8d,$78,$04,$a5,$2a,$24 + !byte $35,$30,05,$99,$f8,04,$10,03 + !byte $99,$78,04,$4c,$a0,$b9,$8a,$4a + !byte $4a,$4a,$4a,$a8,$60,$48,$a0,02 + !byte $b1,$48,$6a,$66,$35,$20,$8e,$be + !byte $68,$0a,$24,$35,$30,05,$99,$f8 + !byte 04,$10,03,$99,$78,04,$60,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,$0d,$0b,09,07,05,03,01 + !byte $0e,$0c,$0a,08,06,04,02,$0f + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00 + !byte 00,00,00,00,00,00,00,00

vn1aG6v4_F2H9Iu|+zn?Z;w(&ncbiBPVd7+;0 zTLK4y znLH!)7o&6c->3zlqG=nthVD8*Wt%($^rND84cr(7RnvMZ!93arOi*CEB3FyuH_~?D z^dfcP?WWV$+63NSf*G|=-C)1GS21pf@4P+xI=<@x@$^OaKZ~JN2j40{Uyi!6HztUt zEi>J;I$6wzC02}?PgE>ljGaXUO|>Z4ohui1=_WD<1mRWtr_L*YbET`gv$L5{QV~W9 zK?7=k-%=++jqrEx8#x_iQ@Xx=IPfISoOE*+ptmNM@8-#prZY-9sMcA3ltgn7o&w|a zpD>;e_q{SPVb(8T5H2GV&d#o>T`7R^DDz_aP0(CmLhm5V$;Bg6&s2xu-pPzWZ;$a= zqm@NmypSQ{FeK5oS`u(vmM#I#Rjji(xjE|UPT$CAu~E=yY7Z@c{%1gvIn}&MI^RTD z=fUHb)tQxXT~HRS2{b`7PjH4E!?6g4*&OQpsvvQC6lPKC)Rj#^LA;$f!EdVaX_h8g z&dgDkxg_AZ`p<_+VZOb3_pq}a75~0*_q*1IMn{8A)cEO{s63$jwk7%u&SJjcJkym+uF`e3x(woa1f$+5z#>mHyx=dg>h^$mD!nC}_ z`%iD#ikmPH1LL%ugeEr2hMO+-%1YX611^;%mM&96fuVC-6uzw@sN;@W9x9zQ$FKv_ zYR>SLINsASFhdtKS!3d;=p{&DcngY zZ;#ERukP%DXRBKTQ)@U|syhU++GVQ64p6YSsFqLko7qi6o~T`~oD(K(v)~7^s-SN2 zukO^4u2ijL1Kw?urb?+(s!STtPE_kH-GU*eKx{JSmnIphXs;2bAS8_ddws&xhDN$dfP( zxgzMcp42N!N3b@C10(9|S_(r5-q0(QL+%}-yGZR~J3)m-Sy@o3UogTPaUEeCm_1T) zHbrHS-=M7)n&W62qL$Rle_QyL>F#ngbac zb(^kBa+^a$`|Msh(6aIrt1x+4$al)ZWWG_bxTTHn4DpQYkCq7xIU*<#vV+O~AJ)0-C@xhfd#`3R^>QN9h}k*^F(0Y~DIn z@rleD(QExPZP5QB?k%I^+_oe^u`Fh0W@eTwW@ct)MqA9x%*?WwEC!32nVG?|pwoW$ z)l|*QyItK?J+riO<;tJ=>16EKvE#&c#A2Ct2rdJ+9gwHSCHIpu6noVRUJKtUbqLZ> zZw-8|=u_Nn?aLm33hoGl3+@QdRcj4>&gknJ_y+B~Th!+}aHZaw``q3KI^YbAfILOR zE0U%3OzEh#W9Vg$icj?ZwXbkMGk7>mHaHgP2$f&XM|cNi00ugjR8Qp@^+q@g@ zXT`Jt57)v5fL=<$|6LjVPj4UmQ$_&+2daRE{jc6mP16}g9PynzrE|97Yj4=vS1way zaiUNn%&cYRP-Glj6T-<+FE$C7N?lX;Xut(AJSU2M{*ku~$OHvuH1z{2)$$*)QpMit z>=2{qDhGxgN5}8oIq5k$Z%11I!%ke^6m`OKsgc0TuE!??=gM4d&~+&qOqKj?pvXX4 z_;SuD*hp~|-iUn85XYcF#mks757=Q1lQy1;?bZks&T=Dgd~>FfZ78(Lo1%bHm8!ux z+8o0h+DK)`^RM{*tkko{hOck+2t!77a(DOi=+M z+t{SOO}mfbWEp|Pp?{6?latrv-ZAk7`LTp`GV-a)=(x~)uH9DR?CTl#C9J5R*WAd5 zuoO?S!ST80RO(>nC$}x&UW;DWA1|$Fm%cUxKOIUemc!}6n;{^{z^5!7b}X+IXBm5| zohf0eI+Dq+PKyI9J<5eG#nR>-@G)3f-q}%(*+w zKQpmXR~P&>ttj@=|MRlu9S9nRV@_IUo6L*}dB0?H7dxN%4utNT7&|>tU7$;EDA_^h z4iqUygli0$Xw|+l~uZ^Zk@fYsJlQ8;(uf{HJE)ha)HIgG*G!=k&`^Fh3Of35)sFRnHd~Hzf*3VV$#UIEv2aacqLoHdoz1j72mpg%!A$LFW8=V6S=Z1x z^6|;X-~jjvjH7c~UJ0a9(u)@^XKOsndEaaU9xKB$E#{XLF(R;Eh12iX!ZJsRCZJKB$Hq+&eXNzahRhI zkx?6a^9z)!U{ICu{Mr-Zc@rW#DUD4TR?X0Iw3^ElYsmB(lYp58*fYZP{d>0UUI5YO z-z+`{-RDn2U$%#kDQ|J9Vd)s)}b;w&tvZYQ6aqn*CMD^)!7-vT^E4 z#NJT1G=-a=!W{jP@KG(hnJA(|qW0t!4ky*VA}{;F%xO)jckyf)y?tPsClkC{2p;H% ztIY=0AapT2 z@O_MkBIcv9F1Vl-e8M7f1ZP?(D+X|n=4Kqr!u`G}7e7k@de}IVk z^AX(%TZ0mDd6GmQ9q7p zhn0RLNP!}lm1@U7Xc)N!Q_Ibx{JYUqy;XCL@%5VM#wmeO+SvXNZ7bEak>oqALE6erB`V9t=E3Mrvx>EL&=%V>GB$N` z(*8qFJt7gdu0a^B1RS3A45w7eurEp+F29HZvG|nthajWqSe_G5BYUmwa6}60O~Jdu zC|jfO!F5|ncftYk4ss5)M~Ef(RJ<{TVrTry3)?rT*L1~hs-=}vKgI$;tTt+YqA zfhwhSp2Ef#aur6;;<6)JS8l3;ZpCZ#E7VSm8-Y&^F`pKG!A8ysi~}@ITg;4fTF0?j z+K^`1?*0Yj(pg#?8!N6%BA3R-R$EM;LJ`pnzJ3|Z0PqPnJEM|Lrm2=s-}$h|a0hi8 zEWZiD%`P1iV`b1~W`cwf;lAOJG>dher3!(M8P|ZZ-|EM>O!kvvlU^(>)GeeYx!^oo3p!*PNqxHr#u_g2}lJ` z$a;*wZC9nz#(p{0zAS2SLc$LkkQa2~82A)EwbOE#zYK~^5F8#_ZSNGtIBWN}o-f{w5Oy<%WzXi6x(x|lCt zpf~4IvmSK}d$2EQ3wOf@PC#Yf8<6duQfkt*mvV% zHTw4RY|R}Amkm$3H8C`%qrSCtk00NH(pqCWzF!zmlQ&|}7_KBF0wU7z#|e}+dr%7r zafo?!%+?<0%H^{zRuDgi(6-d=L(oz((G?FbHsz*z%vfe=xGMz7Cp`JCo3+XU3amq| zH6w8cbq{uZWv~_0MDHDs7_ZT3W(H03grtrVRlP@BHN)!AJTBe>Q;Jimsf*S z!=aQ4F2D67vx8Ykdc>7b7V~Z~84)!fR`@=GW=NhCOZ}(!?bHxnfH($(d>Q zv*hqFlO~HC-uwh2I>BcSX`joh%3OWs%~MZjn?e3ZKKVx7bix&haE1J+XY{;Y5>bX~ zJYBeQk2{H@5&Z$&(MppI@-G=Kz1RVo3!p_+#h^t`NCJ%$l+hrmR7|4nHojt~G|bhf z2qupR@f*A%c5@Z*`EZU0Ft@|yOY%ykD4E^H7Vq*35F8H9U}%!V3heZ)90B%<{fQ1< z_9C4UN)*}BHm?xBmBHeov~vo;DMkBRWl;0KQYGZu|Dk5u77%e>7|*k2SUf@P=Yq*47uf_jW}X=~+i zl%iJaoVmPT1zBz>Q>8nmJ(Zb#t>$BpS9%|e{RoqgeVh_r2yIcsiTQFYZq3kKJA6|x1RcMz{3b)**ok5|4u47ixW9j2f^ z!S|mny?xdJ4=@-oC;ZoiSn0p=h?QMDZA?vmTUY+?by#Ul4u=Vm4}e9aV`M~Bw!lb) z2!_B|IYP;Z^2x+a)M4)COCaJnS5`|qx4=G#$iTgz1kQdS!C}%8pZS^Vx?N*5xSY{n z8=XzEK;KU|j8&Qm#(34a3=aviuQqa^>GB^1gg@WWMSwBPdS>iH%f2h1tXBkqSjD7U z!?ak%?83yBe>@C%sB?*>nO2Va#k=ygf`gw4M}gxAqXtY6MW`40I3;>b>Y2#G6X+B= zgd%{kM{r<%B(@JUjIZMS^!OvkKWGU+Cjd?Z?B5!g6#iRJ#9x&`)%LfI$&a4YrlF=- zmP++Zno2>qq1DK@JU}H+G@r`AQ}LxFbHemn>-pumUDWvVg1`>JwX?a5gUJxU$W(|s zwGxNgK0fW3G0sczdkMlC-_d^VmycJNul~Ad>P+dwJRY&V3OD>Es6KhbW9PJXj6NgR zNd3dGx%&=@C#BH*%8u}fTrw=#hR<1K->B_&V8ETB4^?6JVj`q9Or8_S^qFXxXj#@x z%P3n*4Mck@zG4sls;ROa$u;tyi6B@FY1E+zD?(y3?za-D|88FOlvD!VNa)h(u~J); z=B<>cu)_9*6>jO?W|kygmK&5M=4jv>2uCD?0gJ7nku>4A?WGYvc1Mb7eG@bOgqp@( zt|h?y7U7XiM_jU>Ey@bBzcqjjV9M_9*-!UdTE4bIo0&K)Yp`*7F2%l)JG~7CKu6r9vA~ zOjU_ah85Ip2mwrXcy*DkCmSLLh>5lvh_Tk_#*k)Uw>CpeJk|tp#+zJD0y@@B;gt`8 zslgIu-fc*ORfR*xC>vJ@oUa4b4xAk3#`Ql)#TW?}QLpT{R{(MUXn6~sbTk%-)+G&a|FYNbPW=1}Zi=O{rl`)3s(XMc zoqu9@CH;D~O^5e_Ub;ciCPXC>W}fG4)U3b<{dj{L#yY&@wpCu%8I3kKI z*XK4QT5cUn7UQ*z21Oe)|0Aig5nOCqTwg2nzI1LFC*C6DdFh7UFkVhQY)jsy&IL%3 zx@B5@R{Qu1^!q0*jbf6)-27=(Ldv(8Zh^S+qz|#f6QYJSNX*t!l$P({qEn4=#v?3c zu(ikF)xqiy!dWB>y?sB~>Fe0z*`eulOae{2qVto5byoQYuH7sfe7=rBdQ?X*b;Kum z$HO8O%GVD^3V9ysO^MTX2QGA$5q>H%Wc+X&a<;R`5ybXBcz8>$PPUb+tz z`dc~rKoT~s4veb8Xmj+Z7R$y%gR~j&ew=9-Wf?WInH?aIM~173zU|O+VGX>=LMej- z?p=i8l&MQnr`_?st{D6AugYm8{;PwwM(rjlBRT@A1>+3|?jB-N!Ekn0dDJ{4F`}D2DyA=hT$C zA?)ljLOC7~>-R@}WH{CRfOgbj-m2m+AYfvBoC`s!?+oxZ{jM}5+8A!h03h4*$m${= zejKvp6KZtBS8Qic;N_F?Gf?Aaj9vtlIspE$2(N%;u#duPPPMESiFx&#Qq6iLEV%&C zy#qk2{&l_o-~8YHGgDPrSN^vTVUE5^H&uS!2gl(Y4NZlXk+9fy~p zIB`Vy2z7&UT#JOdlf`;RJnhG?-8`QSRI!+xUV$#4OR-Zeg}@fAnrJw`Q)u3x1=b4# z!>;7qYkgh-2dCO$O3Kn&wsf4iH${yk)xeDq9Q5glH>|54Oy5O^E!d(8-h-;T_3K9X5(eNnI0mkT3eo$ihVFg(I(GXUKUF?<7$`5?*oGH zX80sxKJ31yF#vn_Vdb^vOhU#DYbhRE%iPWgmr4HCqOLT-Gq~FAeSBM!z+X$#@-s$` z+x>@Vh9V}D4E{G?4vQO%Xy1ycV=+=NM{-Kfg%QUu^M{BJ*&|4fus*8aVv>^+2To~~ciPESZM>5>>8Bmksfot5+xd8R~we7{=* zY)bPAeATVDj1T(^+fDEDc`S3z3b-tzCaCPHbNW@*)i}po?)PqANPvZ2n4-pX#{Uf8 zZo4GZ54N@SARjA`9kb!Y@NDCeF@VQyr{*nc6?{t=-V?)^{*t9JjW0V!hEc{Ibq`cg zv15=^L6QrdS@N@J8z>fd1ucA&1dW)=eLXFtQHR+fRzvVp{ED&|M)^`eOrxer+5^KZ z?NdgtWCk{HUka~>m%&hPblqY{qe1}S?;_|D^oImW>9IDZHrkfT+MkeQ<5O;VJ!xwxFO2(mA3&OFVom&H2#Kc#6JZgI-DfLuz&Oe;oVL-}B$=;hg^CasI+?G#^;9swNcL`>@bVy(%9*M8~%hqZPIF8&2Itx~3F<>nQ&x&h0;w zc9qruD=-oHw5^SeI~Q;^&%mP|3`M~RP=zWG0_+0oi<0trZE z$v#LbxB#NWQ&`N+C(qY@jnM#wt75>5RhAiyi^AND%)xXi8|eHc{UI_atS2{zjp|*C8vD83mngtxxs?_tW{y z2hkcQ1|e$VDLw?#ks**O zd7M}AP*4_N(OCW8rpLEa3rtUhOdM1rn4O#B#G4Av#v z47}#VH?of~_TFR9A;Qj#rQE=v%)uAqXOhlMyBPwMNs4>TUto_f-+Ne60&I)JZvMEQ z-(0ki9R89*Iy+^l@|3X%C}*UHWrq)5S}5=Z*51l z$rwUKAn!<=NE#h)XOYzE9Mo309-#EdTSSR;qexZ-yUOz*@W}Ppj(!sLwKsEfwr!BT z{dLfF^C@wQ6X>RYY%W-&IC$Y9CH!b7WtZ)+;iKgN8G7Dsw>l^jd9Q zOMFh-(*-BiF7bvP9OuSu@f{xPN@Y4~&GVKXze{__8`Z|thsADZW`a3}CT#DKaM{fuNlWSsA=G#1LCgVhi{GH*` z&3$C&4H?$c*mDEe;6iNshOye}JXzUj5?_Vfu`m@+wYhV1h3U5vIqSlVADtxBcn&Rr&Q0m!?vsfFh^W8`rteUL07A4v7h(uP>%Z)(s zqn0a3BnM^Tigf*});j&B9T^GYjgGQxY&3$&5O>%~W5)a9k);1h?18`t;_+nZGo~v~AZa!Enwu-sAt3kKz(A>UBjRSGzq{dNQ79+zCQ4e%0_>8q=tpBXd|N9y<_1L= z3^g|E%vW;A*?zTi1?Cqk@To|M{uN35q>!xxLfuIzw1@FHhw_{KvJ|Q=Wt^d?(Pgks zcm*EF)MvSE`R8w61FL%aWo){EzaTx+ypvzMzY1^XVy50O_ zF5PPj`|^7O(q|s(xup<8YHxQxsstd%fkkQcNBDGN$PscI+7y9-)<(}DvW#=YQKzdGYJahdRMk3{CT-7IlKfq48Oo`hjXVo}5MD_=$VxeZ)6R)Uw^0U@_J8{O8xxIOT7<&Zp`= za<)-ZCnV?2UY9=nxVJJRCvT5jT`vPT$Ahd)Qu76xkQFDX$aQS|;8cFls-7ytFk!HA z`Q)*y9@_X$KHB&*9^Uw_?jYUdUPd6DE&?X=$lp^1e;B-y?w7n!h4ErrjDNV|tD)6- z)zw2QYb4r4?$0cvPZWlaYRUlCe|1!|$BHwRO!T*dOcH@E>eol37vSUjA|D;zq@}NT zdfMcHa@_jEMJrwpHB;IAFn0C?tOLXdF0CVrMbBuoxpUyZ18GJ+1VN}T&|rhQus?cp z+q6mgv~YSg47s)>Qaatt)4=~ZVL_I3{&J`Oj0C(a5Or|aa~VH3eylKXfV+ZEXJkF} z{1YKBg8@Y#eFnm5(S)4-^KOEJIdF%D$CJ+v{pvZi{PC?&YLcKX__^V9G3@R2^9Ea^ zMo0HhKMF+JrKvlg%dhfiiFL)Vnbf6eM)yj6m0|iaT3(#}QJle>KpvVsk7S^JKS@m& z`%x(51!QQM9A58*g=Qqy8H2EYg?}3Y%iP_OOw_=L%JD%+knGbXB8$!Si(6#(UM8UI zPAELsp^g#mX$M){-Ju#J8Dhl8pOMJQ5Uy*1-O6|~5#0)!x*UsDUQOHVh&dijDiQ>=i#F6TLpq@xunT?sO)1geFObj(gFj45NbJ5FfyGEW_KXsH1BiAcpH_BOr$Q^D*GgzP(Chy+j8!LAS;^In`Puc`J~3i*Xsz zm&VC7tfko$EXBE#BC*aSs{uBe*|XzOi91e%T0tSLCf0tWWlXke5s^r;hsJ8rbAF21 z(qWVgWATa!mDNVq(7}VERr^P7wu(aNBoXgHh?C_EJNqoA)xFA#(xMAkRqIP+K zLM=!Cm$uGX=SL0R&pwY-HER^SYmH?)qLm$hXwf;i4Nr}28wY&3EycY#5_%r;?OO5; z)-=lr#B1>Mmauh;JQ)I2xYbn@+73DaUgxNTqy!#R*m6aqL>*)eDJ=?ID<@jO7D-iw zU@fRx8V^u=YC!A?^rKO304QhKHj%>S;#4}D+HFd}Ta-7>m4t_SuQzAuwr>`S1_#>J zMubG+3WlpWtU&EHs8888iBHuw3VH6ItS=deIK^vBc$lj6iQKZ)axyd@e;5}b3Ig#$ zvnO)AOq9mt!x$?rpK3Cn@@*O&6@^eOe^cc|<%P9{Voi{I?cCstw3Li#VjHR6CC>31 z9ffPSZZr+%{KmF5=3n!2HJuGBoz_emc`H#FR#_Z4VCeE)A|Qh(RowkE$Qi}k$ZK!# zTQtwWfzW>YGQnmn%7xA*Dxw!!#nA#5_|va1ct7LP1u9T&mtU}v=v;dKY{#a>n(Ztg%V znGZ9S5C06juqho_D=+r5ahE@D>z3l{YA$qtfC+Ou)uCFDIu=WoWTrA&n9<&?FVMn3 z>mjzEDWhn&R6VZFm|#7rpR?i04n=wyFC3*_@a&-gL0pX+ z6Z47$vnXVRxcR7{xr-sWWMl^!h6xS%+`Q!b(acz0zZJ`r;n)tI*}2P@U(VKESGtly zvFdCy*jlzk-MK@m`AA{YZ2NHi7}NwI0xC>VuL>TR;OadB{=#Jw{`7Ik5ZMUPpRHhY zgSR*WdKjTCe|!Pg9AVx6)u1s@C;(%MDr!6EiP@_=7uduCNO%v)bHuQJfQtn8HA@m$yHu%*sGc(7yn7g0a61Yx!?0KguqKPA)2Sb`4w_pd73T$ww*x;?)t~F*EBK3k`at)+|-@!aoasx?3Bc6Yuq`k z^|yz1fH+@DtW66017s1o{UrE3)_hv|;vWr6j&=nypWAq6X63T8P7$c(Nsm~Pl?yI- zXdux%)V_|CuV2sz$AYiUq&tf5yNvV8H_lv^3!*OC&hsH!z-h?ziPEC8d|A#D?bAY=k_FC%O4=yNTMhP5`vJvuP-u=fG! z-t*pro^SKZ*KKxl$AS?eb~1+C_G)NKs~OyAWK(mgnUOxh$5I{gx4f?$C}@jU5l+KK zO4`1DA@Ah6WRsG=O*3ytbqhU`^=zv>y=cDmQJw{VT>ggsCKV^JWc+Zd^|~Uz?_?_` zEY1{#F6}KX9P_8n#rc{55P*OR13-0v1r@2eX9X{7O(p2vwdD2SilPbmMp|w>ooi zZf0I|`ki?O;A9jhcvT$YvGr7d?W`NUTxWS&cRrfzTG9Xh{SBz6{=^t_DS~pRJrsxE z&ZuvgZv8QSxF}GWzl3RT8xPVvo9&3-J==J)zcZA&|Enz(OUHQK_qnjOP7(xcN6JK2 zKui#^q_=IpaQf|2L}ttZ-h*TjQR$mV5wpr+_D&PN$EDy##QY@;-4a&BL+omEkt*De zZ~2W4nXnJHo)i_GW|Z?1QTg+VhRUn$q(U^pAy%Fga+x~p#L1W|Xepse+Wp?RXlEGk zi4tEGX~8gi$wJb<1bVfHd{;p##!y_pufsHedg8qX8q;vxsRX{<^A8OL#y6zvG3JH3 zMm+;&&w7Bhc9}ZTemkcI#SE~mHr0v@VwzJ!No4WYhahwPZ`HDsP#p61|o6=IU`$}OVx*$vm?`>SGf6F;?$ z8SS^N9-Yt17Yd#&y64Vzh%+U8Am*)dlM<2()hvX zLaXZtWl87C^bVM_Kz^#_>O1EK=-2cAU!UH;W-|W)4jZQt_#-H7SGgq(k#L1{Kp;h= zXxjeY@o-P$U*I8m4F^-CD8cVR?Cu_f-HXL`O6;1(gTrutMyNLk%caKJA^;ElvSRkr zVs`(+Ln24JqThJ9FdLJNd-m_~(3{Ld?=L)*2g{gga~%GIhfOn=>4Kpp`YMYc8}Y#{GET1M;VK>vLZJL01vYp^iaQ6f{q*V^_YU;vx79&QPp|XJ5?nD zJ6aN57}EU4Lt7VKmw({lYPVJ_H~LvA+}e&gZ0NH!IhiW%Wkj2z`5KgY+4ss3*~ zR6vN7tp4~X9^L`)5VQFg#&0~VylB4nVJU_=uQw-qDJJ|5w_RI@Z+P8uK3Uo_n{TOM9;3 zFHTb^S_j?H6$7#CJt_Bq7k5@So?L~@?b%5%78H-~Fqi1exaOsp-~Svb?Le;BssBF! z@vm{oKLJq~2Ifpjp+{b&M{QLJR|FM}lt>i?nUIu?oF9HelBYd;<2*{`O`W`*G~@X= zP~eA0X)xqq4@~CyBp=IB4$l+Gud}BX0w7LypQxSFPtdK0JMFPJX^)O5Ek64WYrR+m z-_o3~V**9Zlh==Gcql#7o)kU5=>r# z{mC89gxXGRBe@nwYGFE}KxaQ}898QFgiPYycPnUR?U7q(^wwvH48`al47Are!uV9H ztiN=fN?mYG9HEVG1&r=E1&UA?^lQ?Ws|U2o!vk|0Nez^DC=p1$9^GI=bE;0tm4E9z zk_Oh`Q*&dAB_HyTL_gyfwb{&ki7FW^CsXzAjk_+?K>3A=;ooqmK&>w4veTM3DZu`t z-7}ppae(oBbu9&HbTWr{tuStXef0f9)^Q~k#SO}0CVs4TA99S*IilG(?*88L2o`_E z*E*qbGXk`iBwxGJP`OxpU%;xU*s*~A9BR!hjXKw)Z4F$!Wexoo01m7Fz@Z*L01jc_ zu!pwI_7XBrHcxYay(kzZJtC^cf;M9G`M@gaeFl4u@FQnNlSwAw-&k)O?fk?qWglQ5 znD<#=@r^7>7enZ7P5e$a!VFBX%b+Ej}VvVbvy;6Ie9<~5fC(@~;cG?7Yc z$hggIfX{D+UX(s|Uv)h4H?oDZEo?qM=YJ9WNNZ;4fFdLKFhyJt4ePz=WR;%mlq7;_1jQ3O8RIWDeZKf7g^p>T^ViCE2WlW+tU(li?m zHC+dOC8R|TlPIh8_YQWZ?D2aZC#`}A({^NaZBA6+Na)YzKUD(NmhybQl~_Nb1Bd!z zAi65fOvz{p=K{$?{w(R0C~N~?n{O}@Eh5L` zgwvSiqc>8bJ|}b3My2nAKW8&rs%3hoC#n3lQn2h94?LlV?&Q`R$6Ti5;@WM{pJem2 zT2dm;F}fVChh+c51IB*rSgnQZGKX4=50{Plt&?wH{E}xT+W5xW=pLbM2i@CBH0ZrmtXa*p&yzSz zQ=|CrXN9N~x(3|LVLH8DT&a3^xX|Wp*(#KR-$J&)T`)L&fY08yf@$&$)%y9gYE19g z2OJ z^6xoyM1%dTN0v&n^UKH%%hBTrc0R1&^t9+MtIiveg$Jv;p0MHZa8V*}TZL*b=IZOizYJZqKi}dCl!h(BI~l#l8m$eg~0y zZu+cG_G;iL=2gRK%s4iOGlW$h$Yb2XqNZeAB%OLJJ5XKZi4cAFX8Gwoky5f?ek(0# zcq>UH{X19q?cTNkFyFCjbkKK8PiExzTXRDAXZarG3^7q;fL!u1rW|KMc~`_3Iy{TI z4_g7zNp>ICN;-cmxjQR1TWhv!s?@*VFmy|5wIXf|?TR&Sx|F=2J=fY<8O|?lT_a(r z2dyrLF~falnK4c4aM*=Ls*yH8tj8N%IoT(z&qW_RIBu#Su#J`>HLH=(r{r#yZk*HS z#PII=QCv?PoJ=d*yL4s62CLBUO2uk6y}w%~QP|c2SO)aNAJbyefUUBrXqp?(P7}D* zmcECLejWFy&o&dd<)YI;vOQ%!Z@&n(O$DDOC1)4jNTOgpO!jnnSF~oDzQkqpG)8zKGe*In^qjV zc>ZzQaOOA+iyv^OCkOHGh7teidp&;*BmSkj{tr**U&ZUMMpW3}Hnms~T=5kI?HrO( z2`L(rAPB?gO+qlb8*a@JYyFbFL)qHr>BFMHfb|CQxiHGT!&a+5Lu=2DnWY2JiC(39 zoBO@KzTg23U$9PQwtkHyr#Iw}21iMC930@R!Pa0kG#m}`x5m;sD9ks=v&b8WE3de2 zqOfv`CQ|1@wFh$#KDyS$qnuhf2TsBgyP}pq@rGr%LlbalZPZmoAVbK^;80zN=icvt zoOR`(Y1ZG9ZL|NSs)^u3f9k3}`#s~jf_WQm;nvdP;5IwMVPAM>2Ga&ThY8j`9;Lqu zPa^*SUR0&ew`Mau??uGJq%D!*74OTpgMp6jqTvGCmX3_la2g?3hKL~T9eX*JpNag6 zhh2=f8Ed!Ju1F&(eVpMDSI?C(UZw^seb8!f4lqkXS<1E!`vjL%7gC@HpPc*qP#3ZA z;fPmaMhjMhJ5xQ?BL&5^4R^@diBGlB8`A0+!=XYTKgcAilJj{zk}=uet6edbR9HeD zidM6Z)hG}jKutrLz|lIVIZl;bzwfB(o_=S7Zrlsj@?iI^ez+Q9I9FiNp-AE-l^BGEzu4VKNSX-w2bK z0I}Ec5Fmq^PuxPx`4J}yW00gM@*FcA!FJtpyxCEiRlGHRmm&@CE?wkKW7sEU+1R-z znaxy-);DBjbXTXrm$rEi<2OO0NOh<*0uVIpzrDEjzeCV0ZA{GouRqfxz&jv-*Yw}$ z*}qrsP?!*Xlx#U6taH>~(-}gc7Yty3NmXa&zC9Ul{6W*a*3$Yt(~F{7E|H?X)5iy*=@4d>73RJ`KtcblI& zS199LXj3LD=2jl!sn;)Xi~L$4Olv?gAR2_5Nu;%G^jp1K992-X6q;~k7+^0zv~}TZ zCvtPhE#Vle(Tc_FLA=B&v|&h|q#CaCAf76cD8`CN4W$4iJ-58C8te1ahWY2?qdBiW zKZ#ga&z}(TG%?A#P+2`qMa~+TxA#ij*g}~tlMH^C)RrA{aNVe-?mY2BY+A99_FT#& zS;))%G+&){VCFH@hBj?<;1$Necy*^RvdLa*E@QHmB3DKq^OcJajT z^M!D@QR`<{G(e7?>uu!*)#=vs@|BN>Z3GOD^0;j87qoRMi;<~RCci)1k<6}Z@g@P? zD$(BxAph;>>EFaVTYys<(GQ&(a@hat*NC#OosGp0KwIFRG)cd~x9 zrMmZIgVwFpg5&(z%zJV-vVmSxVc9~??-hTQ@SPguJtjq4Vv?pYVm0!p%@6V&L6tSNTR_rmkHMabv8ROfgP>pJKceh9u}PVTpm%D zFf8yn28+G8hjg@@8Y2GrSGCaaZR{jYRxr}=DfPSCREK!HEcKOXr8QZlTK&qf1`cY) z`-()@NxP>(Ua=94+uo`ZBq2kM@xOF%Mhp_0gB4CGVKK#K(~bFf;`H@gXU z$2xr~#ITZjGB4eHv%JDrcm9mQ>QhmOS+jl0Zy-xI4X|NPfTt4y`a=u*9I){p=rG10|v|kr2V90 zVoJSr5onkepXCNW$(V^{I%o;$iE4im7|KKcRtRl_cBWuprqD|gwNthXl&a24E(*R! zy_;roSQQ|y+Q{;5%!}N!N8MakhbLe6zy&T(?I9)ju#Z*y&BF9fNl@PWoXPhyyync&DGwszHmOaj!$s0aTUznw%UUa9h)%_)^Z}B`AGDa%!RD zyguL}1HZD;(|DHNYa_(`Q)7vEw4?A8j+&eRFDo?*z9l8r+AS`R{4~m;X8$NOuEq$> zw+4dBvqn9}JEt_i-bGe;Fk}$>(F}N7W1d9Zpq>oRY%{LVmf=Pj``VtiWz&Hc3BO5M z>DMB`qDTeHI+$7Hve=tdWT(7XUOpoY(p9ub{dmY7H=8lfsSNsHAx3I{H`U0xct(cO zI%&&dZ#SnUy}rhTO*111YE?Pi{HMDk`F_89N)N4m77w+4`15%Op37+mibtzu@KukE z04AmpXY9wijXMva-bie{KET$LJ>J1b{a@EQXT#^=E{w)^>a3j+ORSwS9ITzA`*h^? zES{mG9Uk%q4?ZHw4jzp@P-y-r^aYf?$m-Egv=Kwq(yN~D*Ko6b48h*f*ic;DomReXxEsXvo zSN!0~q-7eFodI3lj|G;zkmJUU>3VZTZje?gODti}bqo(2wJ*p#BRnl(NqQI0H{V1x z_ezv1bP1Fxq*ySK1WtT%6vT>55)u&&8XYq|JH%0?MDtn+-t`EKd-xSsX7pBZqLegxKj z8;yzgU^Jyjj`>>Ok^3w1rcRnYts#afi9b!=5KNeZ zVOxFlF?_>PYu76{K9%3DhD-}B>RWM}0J<&l{sr<%0|>v}D~e*4Di?uuX7*s`K!rs; z&7m2=ekb;-_VORr! zJ_@(RZb_H*tr)eB3a0`y!{8eiwbu}%dTTJY{Wmxs2NOQnj*3-2$?sN!?k3+z@InSt zeaIlKg{;qMmDh-cd?@C7UT8C>frpdSj}+dasXOmkMt^29W|sv|rl~fb0Q9@A z!U}sT9x0+TOzBKb{faT3-owNyFRJ+}0?Yl)mh71ojVV{%-bJcUrrEq|pN2d(i#948 z`J881xaakH-a{HtU$kDi@oE~4tmP4qM~ESbOAm#z~7SS~w;7mpE#52`q*=107ShF|VCl;!dP>HdjFE(ue&2GpLspRdy7NlO(XL?@Fy}o$8=~2 zcZ8@ZMh_Lt+du5;LAp6TfHREu-@Xt3rv%6!U7_V4yJdzyqQbwNO~mY-Yz_aTv_nbP z`p?;8vt+Z`b{n>>wWN(TTt_5A@hn>5FlZV$HR!^r{CtXq0+WAq2jfXM9t!5jhE z&bHrPHiDVK$qozd%+}Xaz26@{VFE-pgQLapfb~7D9KWsM+7Mz^=c>~J%0u013oI*u|qzm@fC>er8| zCJC_(or|woNpJm{8YaQ_q4CsZBx%0o#r>`r(4aBx{O*EwumeFU8K>h+(up;!3O zR085}Ul@v%k^6=;izW)2hBxpU$IHhW)r|fDh0`;64D5IEzS;$pc4hi-Mj$eGcBnwwtG`O30f8AX6Joo$n8X3Ie1jJcWx9tZ+jm;~^ z*K&R8s!WZ3fT_(lZ8gitXaZZI z5#quZ2n&)t;0Ue>PJyXmW-J{?kAP_U<&nuCtk0nH003@t~6spgpmo)rtJ>J}j3h`ZdA)_{R=Ya4jIw(0Z8C3=}_id}(3Z zP#$6FG3FRv%ag?Vq6<=**=;yIL7MA&O>cf2sz#1$q{gnyS#5x=`XsaF{Hs@aG6QGb z@lPt$m?BH>5SwP3$xWh!_}Rf*_Tx<_4S@?%0>A^M5C+?6fFa52!BRS;Bzbj#wFtfvu*NQ z_LgK^m-o#LycUUBLnV#54R`pP#1M(j_E<;7K8g;iMV>`E%M7P*-p(Oxxlhb=#jE^X zX4vdqXcz;Q&&ZxN_%35dh&@0Y7S(6=L@NG`QAv@0|XCSB#=UuF9gI}`a|U4NZ; zWLTB1on*xV5a*KGY|(j~!!EPv^Mk9g{RZl>pPbFcH__z`9)4$w1L#<=@tdsdA>{{3 zuD!x?$*m5jSWFhOn|`&y<{G4d9sf#Zr7GwsTh%3{aPc^h^uI?6uW#?~T$fSVEgNWw z4a`|TKE;hOrrMcJ8Wm^?-ywPyktNT^b>ai2xqY6O@5<$f(ww|;kdUBIR#3C*m&zQY zn)m!XZ)_@$s7j#FBNwPlhiRF$He6Z~+$d;&^urQ@`Xj);tCX+6EfFNJ^^Phpdc39} z+D2~CoEpWCnCe-uDsR(P$zt|kh1P(lGonY0i1B;e?BmE+$DQD5EfW)FVJdML~l4R@jDc}YRkWqiRTphTZg|xrXziodNI|9NI17Hv}f== zttMCu?r!Q;37fJmRuc0Cvm!u3W)Wlh{>lkviyeAvgG!y@kK#Yz>e!>)d|INB0hKE{X38Qw161`lj6gjPhnrv%)j~<)}Tw0rijFu$W z!WwIm#=^*dJ}kFbqtTzQuyC|%(t_Uj7*1c;_NqGey6UbNw@)`p()Nf1DcPq>)da(! z+84pvD#$wm_Sf3RU688?yNC}fzutn7386#`hQh*hQ+zD}LxD^d8bOzPx4XN~fj#PD0opw6=*3n>-N z8b3F|+LTYJ#VUCm&dl^wcOlhoTav|7wEdvMa^Ig1!G66Q@_^>#zEy@ ziu{{xs@W%b9(vOB8QDKLqJ35|%6&%hgINttrpL9gVPC~-3kbRo48gqiW?Wf3rymQYw4q#+xT9>$5n!m%Ubf6tT;nsRasKv z>y`Lv9e*WnieZU-ao$Ce&xp>X69n#?0@?6qso5e@=2Pl5Oj_WbZZ99Ip4{hOz= zl14B5)wCGJAtT>O8uy0?TuO}ULaJ@DxMcd>a-S>Uf!sIUbc>;s>#ir$gu0<%99Ne9 z+`vh4a$v;8W|GF{xyfE8t0k7%H1>~8nb{oqvHO^alzk5zj!Y) z%JApC&V+({q9m9NaZMCk9ILgF0G!KO+Vd-5 zV9F#~h*TT45@C!PQ%6&<#BRG7*3YuG*Yw-fwUS<0i+(?Ze^=z~@Sqex;3X{XW@2#o|9%+L|D^IpZj5ul3}4g?cs@W(9+JUNnIj_!v4avf37H>?7B~HIKt%3~ z95-GudBBP4aHxvkV{-A1dtHO7qGRU6MO zw#Cat$goSmVwkgbT{1B4s|wsQmZPe^jx6>J6iIQZiz|a8(}`CP9y1jg?P6}qhrvdy+j1s!xuLx z57~iB&f-0|93&0j9xE-J)-c`HN$f~(T~{yjyoeZ#*pRN#dDNd+LGurtBKIoX zl9Bv^)~9&^Pd{_8XFA8XnE3fB3qVvbDy!VIwVZZz2~TD%+tc*-@9n&7CFj|W0>|`TbxE^hgN1mX4xmbql+82VL0a= zOm^hIPD+IpT+hl@@>h8HP`9!xEZK045n4awc-V~19h_z#=;7da>X;a*3F8!z%vgC$ zGrVb&#^;n`@<{xt>JSvZ(%n+%idiL?p?zFMq>}N-sYzp+MX6PCy{hN#M6WmRMSE;_ z9+xFa%VxkrE^!P~NcU{Ej{kfbJ(q@+b=TA_up>tUAd*MA(G0}qVDlaqCh@kE!g&q5 zZFY|KVwZy@HML$9Bswh7cSf4b@jSIUOGANDLEI2}W`0BE$hzG7$*~nYw!CIn(j!gS z&|x@A8IEoDSc%nVylKwIGE)?8QJ5x!KPP?|c6dSVo`E%?`$h8HdFgk=&#JIRyLGH- zyze^6Fs1P5*tcbXO*78ALzWVYGM8H@{MLn`Or@0+C8Xiln0-0R(q8DVvfjS)G=Z2a zbA89`uLN)fG5XpE6EC%oVqTBkj_Dj>6`qULk}a`j)|Ndvqh#{{kst0U#|rqi6GVu% zGejO>Z%|hwy-9D-_X6((%c3E#Me33_)Inep>C#EpXSZabv4rpBLa-vyklsbdU@Aw1 z&0?PTFjB=zBBuJXSkM}n_RvQP%cwJjS(0$cTIA7LLR_@uU|*@?JBia8_`Z6nf0jmI zN72^v*2YidO+#zk+N^>~?m^3?^Q^g|Gg8(6+};jO49lJ{c2TXN+{2YQw2=lWyV}Z_ z#Jh6pC@zik=sTYVU_YAQW8laWFP#;g-50XF#vNQ%HHK7^)(%$Q2mLLgY)y$wou5#1 z|A`%?pNSG*zJYiZa15v){sv8kMUDr(v!xvS*-+F-Hb`auBSh7!3`AnB#s(h7TQR)1U+}jlVf;E}r_mmv5K$~co6&K-s$Oz=R zD5Ng7zUkzKYm$qN4?;*s9(>ZR#{Vhx)f(@oi^&B`Cn7r=e5S?gLTP1 zPWGI24{b87H}A6C5vQ+lQtF^l`v|Ax8DpW$dOTwn=q8dKU`_#b&QRftnSFh=TFh~& zMWY0NMhOAB+=y7 z86I2BTEm4Q+$FxA@z6+Fbeh0BF?M@1aiNevNKAO2lCzxH2!PGG&c$1OuZ6%Ig{$7Q(_On{%Dv=IWl26Zrz$^jQDT%*{|ZS~;-8t-b7~;o1FMv!zG{35mCWG) z{h*)YVYw`U7fhFsw6dzq#4MyM%qfsA!G3Bnq$9?u*3@k0K}yBPF~vGHv--46Zy+RwSW6E)a4luE_7?lF`J{@rG@7Xc-;a|$ zTZd*Irg~FF0vXTV>N!}bp1L?NhyuZ6%^0*2*ofe+A?E z;b<6jPc5S#LZ2Sr(22O8V#~F=#!i?@qIpEB`y=Hhd4QdQtIDO~bbFB7IsV{Wm5QPG zg98h$2azZs4jlg$2Xg;IN&A07gZ^7d__vwT9Yq!OcMtirOgTwgsR|%PS7H%(+B?^@ zp+txX-2z4%#Vw0}F2Ib!q73c2JK`&dBvMP`x8y8y(Rlg-@gnZo?M_Z5tp&62(_y#g zd++Y{$&ByA^B4aQu>O7q?6!k~FjDwsLzveLTr($;0Yx~ZAI*#fhKOSsxatlmr-V}i`tSc~%=%c2b7s7gG=t2k?ki;YA`4%4DosAujgZ6Mij z3W&=G)%GjC(Rj!WasQ~Myp@tjSC5yEXLgSp&j@!Q0b3!>6&g*btVwk@#mbwJ zm}T?I(b;jNn?)e9M=!ZXYTj<5vo9B*cZ2BnjB3B`5a>M}*CF7+?U5Bbd6YPpCCuTJ_Y)^I|SdyZxE7&R)kr zF*T@<8PB^>o{&3vk=bE10C2VXQU<+g4u@cVJhdh;rV&`$UWx0626oGo00mV>r@@-d#KiHE>boF&vRNGWOiI|Xu?NRf2ggq$P_rq-Fry?lGnA@&*x^T z!2No^Vuu%GTux?0#_QYgx#RO{K{s;-G*t4+m#Yv$eW_SPmGlYV zxxDL+4`xwf^w*sWFefOwPR;5>oCoq2(@xLI&^d|zbP9yI?yB}eiL!yNjaYR77j$uI zUIUC8tSBLuLf{ZJj^_{}rW*Z_uW}IQ&X0ke$7*K5B^Q?^1PQ3cr}9X#!+L!eB|NBI ztJP+mzu(ugrd_-?)EAuiB=uRBYdY8Nao>46#Fhe_|^lxugG^jw+3mnDs0 z$+Ph%2c+lLYEfDPr!UFiYP;}}I4Z&*)iy&mQ z^h92GaDm;V3HBc6mnICkHjTKM6N#>&#rtwi`0-)BTS|jqTg>;ifS)N zH8xsofu^a#)skp;U)cr3(xi(QSQaPT^^F|5s#~y;DP_ ztI@_qO&&YKh&ILDZ41r7v%u~!28J2d#GKH(&o`fc13?|$h_%+ z`@a|iIOCilW8lQ6{kId}{{lUwZ0YqM`A#KWX&gnwzt){y*f_SfciJF!2Sdx|(uEZ% zV4*?+`Kwom4CGytJDZ?D2Va7{;4l3IWHWUduPYGF`#YJ=T)1W@Q;QEnB%ealATXx6 ztukoxJQ4EmMuq^roi8Uwk&J9n;B>|H83IIwJ3TU2T-w_tOIKgnYw?6UmZZb2rp$X- zPiW;;Q%ph9`V3QsbE>~+Wj3lB`=T8;MzwyO8>*PS5NK-n)>-tMN6JH9r0-H>lOW{K zz^KabSBSzk2G-z|#+YxLE;`jDQy~g&si(f9eF4i*DQP@sqgaoVOBOD=N4@WXG4>=s z|KKxIXlFDULA8c+edEXz+SlI;Li_2<}f(JOMlmonBplXxe8Fxu|9H@ z*baIW9y-qj<2k>2rg|l#r+twS$T}qPNxWKcBlZ=ObX`pci0MH}tkUoUR+#S}#Ns!s zW}qCT+Ne5-YiC=*+?(wV+|un8I_WBdwEXYFE>Z_@IXo(4DmSW5(oe2@rA&1wVb3URN9}6?l)6!W@e`| zx!L}8?~fdx@cOFG#wwyH7*`^~??{s!$x)!mRYM$Q1{~3lWEyX&&=xZc?^}Y*fl+VG zu_AfK_q@p%89?Kn%o40jMMBjUW9lFj>L$){9F`#E&#W%VA1zXO&PYcfbM&wx295qa zK|-I53E!iUP(eBdYfu7l5J9G9L>-lE=B+9P_@WqjuL6A=KZW z0LmY-f>zPGi3&RJYj`+;>9Rl_U+Hx>KZE(An;3f39~~c;WK*}Hsfl8~^K=fsCtia* zA+LQNM-)~d35}racBZ@QuFh=6j3tY`NvU5%2dT4iUYHKG<)%}#o1B651ihJS=1eA- zxY~YZjSHUdw;2qZF_#`xXfZ`CdZu5plP&~E-^T1ddxYO#^U@>Y5)%NdDF-Rh%%>VG zRtYY`Mt>3k2U4r2;WVQH%6J46>J zZlqVDIfI0D#W5#36Ln-%<5@kk^&5N=Sz!+kf~`-Wd}Ol;se19_8|$SsuIonKH(74+015{BQ(^ zC~*ID*6B64C+kH%)1Z$|VWO#QU)7iQALL~ii%Q9^-m`|=-P4BK-A@vjBu>uT-X3ZO zTt5o+CSWIdyqSI5xgjIWn*(~WP6A}3TYO1CEqXMEPnN=?h25JiwR3H#Hh0Kuywe-E zm$mIDnRnd|olGAY!omm~B!}WVYUXQ7P-N?x+PjAecQ#f?K7FRM)NJBRVZjyW-h%yN z`GVDFfjK(A%;7|r(VzF5gA0^f9TcC%dNJ=*b-_tzNNTap{CHE3%w$De$c=sjHKlyYv>0!Cx!i4_t``x*BG084hkZRON3`}23xIQw#_}M z)B?>}w9-B3;~KU;~BVA!-aOoNN;J!lO8VPkB;(faA{0X4Mug-Ruh& z;u^lTk#g0^VSp+|i5*9+H}#_O#T&D%ogOa~ODSP3>FD#6tw z?zmyKU&u>doA%*qB*|ZI_)WR%N~}fMs_IL4h3&hFSFsi;3|ZbyFUr3-2(sR03+aIL zQSL|$ZEGWVS!dkP^TCTC%-g|?gS51b(IDP^nO6`Z%%dd2+|?91L%5CCLJzNg!l4A{ z`m@pz^5XSLxv3*n3H?Aksn@#z4H20YPI;D_|zp7{%5DF|~lv;Mv{^ zfLa^%ht5m z7XMej(Tm&4)$Q7vkt~Jv0e-ed&H8v2eZ247>I($o5k{@oCrN6nj1>@=xpEX)Su~gD z@FJq1ClO)ADrdJY)ji!e zRnUL;tVQCg%4rJ+(hoJDk69Kkq?kHbX4fhQHz$-pK~)>k#PzrFCM_hu{<67Z0htoe zgh8E<(@a8jf+q+-7}?jOi@dBL&HGvWl2h*f-PgTO{aN$N``b`Fkk3aPYJmko827*& z!IWa2U^KlFF3pVljVd_A&uAjqVEWAgGjo3o%5Uoa5DChe`TBvmZEqGCKh+Tm-+1DX ziFe>zG7~S_(4x$%G^~H>EeH5-dSi@_fjJiByi`ZDyyV;N7;6uI!BJO_xKRC+JLC_l zL;bfG4!yKHXuZ@sf;aV1YZ-4m3KE4pUgCW?D0^s1afq;2ZgKoGEXvwC=C)whvo5Zt-asLSOmzttKyfo;70gIkO!51w6exKU zf+YoOYeg!|MT0Tcu~3#xE@LzcS$^?+%YCQlaE@k`MyKtir_?B@C7(qK+-X9;2(z^o znCdKAY*cOaQ%&&<_RpZ3wTs&pJ=(Hn(yEz@WGeM2+mLxUu<%^j8i78Go z#p#rmpq=v6bIVd~@$q9jWaJKB^Yg4?^KV6kXk#&+(-R0*rrclY);pQro9hxfsihO` z$Qa@~#~pw8#2bFGf!WHk=`qKPZ8O$7D)h>uthClsq(GExQyOF4tWL3D9zv2FX1!Vw zYyz=BfvH11R)VG~p>;IEuC1CP@6xi+cB+NVj@~?#ZpCanohvXsk==B4Daxu@=c<*E z69}J9F0?IOfCSTzeirC&ZU-GHj6nfm@%f|P%$()6S0GIu9UaT zCLPn|OUzCc_sFl<@$sS?4#}QDJ&M+J1~x@5IUG1!Vj$iv(7dL8zTcU6MvK|_`4`Rj6Q464 z-h(`_72>To1VwpAR_*9&)gHKLDAB8B(eIgd)=6xyU&r6>+Li3pTw_ix8PFcET3jZTke+bMBm^F_TWt}mrqi^FLo0N}lO zhJl3as)X*!ywIt>)Q0>ngzk&IbwTq>xZSM26%HY&8;nQX(KN2F9@TsHe8PT-uZ4Mj z<#~^FeK!8cyF35kpY{YgZZo<5KLh@35>riDYFGO3kk4qeRMvR?4ml8!UAVp>b zVkxTU?`DA{4<_X67e1=>b?o=6YvgCp)rIzN1H?;bk zEIW=Cemp7NvSGm|aS5;0zKC7y8jv>M7P0L;yC2rfpWyOY37Mj#6)nroZhM84OpFZ^+ezc~d{ZTA@7m*l9`6(SlH?oI^WZXAGLA6yio1F5|& zzQVD)y%)W$b}?_9R=I-rkJ|?ihmTLCYdpJx=Wy_2;w@MEIjWN&Qh>}>xZ_7JT}y3)8zsA0P` zorg1Wt*X_!eH$=^mtKipwWuPfpn{H~_2n#MY@Fo6Nu3vc$W=iY9|0c~2jdm#2h;2c z@;khzM|?kjecwk47+%G6jp1Mnif7_CBpxL#Bld~A6)m`tPt|@Ua_Gp;bY3sl&m6C8 z5i2v*M9j}E=cb_Xr#XMsds=q2a+XXlZTt{HBjo@V_cfL=;a+=Lu^Ftcd@C&!3zzzq zFJ$%1ajkVN_g}!`Hh+_>-6!_nl7oPazEXcr{EjTlcMQmVs%zwv)GU+|N6Vp?@TSOT zn>ed&Fqa6ztOZ39Bbg%481e}T1&y|7lnj>lwp9HD7>`>q;fP-1asuq`PP&oEOUtVn zRN(FSGQJFVxY_KtQCBf;Ki%`NIq$5sh~JlV?(Yb(B;*yo@jQXYpk}zF3WvL#BTxcE zG4^qOzjFsoqZHQhav*BOddHYGVBK^Mvgnw=!T9YQFa0OAreq+0GFSd*}#295*1Xyop;^z#f9;%%BosW+@(&y{6>tB5DuMZMr+Q{_+0% z0V7~oDu$b%oiU^l^DrZVDY6nWpLhy->Alpc8V5iDk$FCWpKDHDzJQ&XW-92jBI_!r zrblz`rT4Vt3&cS?5C=kNr0qdBQ)@J1!hR-yaNwO{wSj8U^1Y>x6o`XISjlU zlC{^${ylaOFfniH?+NxOe{fKH64;3MPaN3&!2#>US?*sraE2oGiD1k(_#BOthD>W5 zCwt+)QLPU~m~dq+>((WaOG44`q}HbGspZuK0GYnMIsBj)Z8e5*S5*wPWLWZ3p$D%}16VShz_37_#cU;txY1`Gwa$}0ZP^1)-fXZQa%ApFx~ z3|JBV=%~VWsY<2WX{^A0s&o@JrbILCBO420%SuQP)+S!MKDXp{Oxc)$Lj$FGp~Eo# z0beE@%wW>PvYE$yPI6CkJZInDpMlc6$XZM|URxvlStDL?o>3TDQH{6;>bYCvlAEqF}smc z(WsnP1TBJDem_zvj`_fRf|W!xrV|Vag}j7fZ@}7D4O-POPBzPbddm9*nj~C1{uK46 zDA*HBJQ4m?6zWiRw)1_Bba>islYvDccxDFVPf>6Yanjg!_$|zmP^R#KH^w3c-J*M} zu#4~u6;mqyHmuJNWZ>A1l4e#mMC}m27;WoxS$apEVjCyo=H?$zpwQ@EthvQyt-X<7 zs$+7GeeJO*{i`Nu|A7JsdUQ=NuqOEZZB5YlztSB3L0Gk_|8hqW1q$lmw%xi)!J-uq zkH|Zv!> z9R`C<4}B)3rw}Ykk(>-LqrN_w_ThZcM?u2ZTyd4d)d+fqVL`2t z=aSN&mvU(;n>n)%rl0lE&3t+-qei_e)A=*#ax-fBF~@bDu8K%n6M&=ayy7`Ir75?< z%g0Bt7)9ICa!ENmop|Z_E9ux2G;VcrqHfsOSy_*=BQLAbd4U(-g(BE-<}u=W?V_Up z_>4M9H@SdD9g~L!Q8GzBP%Vm6Xau(vcj2|DF&i37%z&1T?f|`nWDe8xS!?vk66vTp zlsKosS;`A===%O^;<2WN)f^CF4}bfkiNag8WG=Q!PJBngG zmbtO=yNYm>BKAsO1ON?7u0;L7hHYFtBPZ%hKiKSr3bFP2O>5HTnbp9$ZGK317_K+ z1HGk)k*>ye^-qA&hC>O4%w`|`SDml*a6ZBIm#3ae$IjruH0;gf?azVRuFROqEa1I; zx=^^Rj3Fg~1h>Wg=WP7`0AuU?rv82Ht}sv|*Ff_t>gC&Gj;ogmr-hQomA*GM1$iep zdJAHrbB#qEg|R2|>T()nzA+3-aZV0o5jgXw`Y`S=tgRF2RIO3B>>{>rgxDF@&Z39Cl{IKH{ zy6Ad8A^k>!BV!%yl8zYmmeRnGPnr7x^Mb?~76@%&z6W}y6T*(xCpNnJ?Fl;zeeTV9 z#0znJPU}bVBe#`on-y(w=%xggmk(0y=WfT(Vot%aXq&LmvLrPk)Q zbq2-I-5btK8Y{ahLwK+jbw^J`Z4A|I@y5{ST&u!6V{zKk8f#;^KJM6(4D_K!>5RNB zb{hlmd=u*=0y=mEu1ITRbWN}5jpfx%ki5$)xSvxRzwavksuvffslY5gU{l;)E%u_W z04=^DQ)#^tUKT2feu|pJN3DWop|7wg)C|e&HEPS$Vz)l#PIufTIIFdjiaSzcT_6a% zja1zbS$q3S#7sSPQ1%Sel)n5e6ZQY0_=^5Dr2jEZ5ixakv9vREv9!1Q5Bi}0+W5Ex zjHtATxHL!CJIn64rgqzQ@!wgeTt$G027xrTY-BEXKfjr|_5FUiM++DxA#mNQFh+;r z2daY%*T-bH?iGh@3EUeF_Upn`5uU-!wi=sa#{l-7j_e7-+%e4|PRZkxv&sj}f+Z-- z_bQS+E>0CY;^c`gdFG>dl_^JZSiO4=*)_`CPSlIuiDl)0#~q0-V<&2}QgbPqXPrG; zPT$ItK!MsJ7r+Oh^wPXV{!DJa+1j*>zEV!rmXf5jc}Z?+m+7)xA|rP{?g~IhY|oHS z00aj>gOMnl`XjOstTi0sGdmKvMbU8~o&gNP*XTvJ6%XQ1fqSVdCft@Lbee%blh0_A zEK7dfKkh?~T)7<9^LI^f8-WK}Y5cId-qqbdZ`{;#vogB55L&y^Lp}cdU3T-k$fGV4 zqQ`jE?@~sh1A@m4S0^$*_XTIMbAAk$vVtM!rlYph{Sy;2(gw^As%74O>b_}i`Q=mB zo(`98eZf0bkLi8t(+6BSN4=bv+F8WfCkhq*6ji_~CP$^_X%zMM$!n&nU4>0sUlG$7 zX>H@FnEiLa7LA2RKArR1Uva_p^86ZqNKwCG&}U~PraR-FI(O@dwsU&imwK5NOxd?H2>%qvC-@jZV8&d@cIGw9 z>=f_f&8)tDAIKhM=b4Z{4Y%XSfGP$^$4L>^YOU+g2w_+a&(#6Bn3luj2<7ON+zP)F zdV)LS%^v%Zr*f*7Nz(qY71zcQ+g%$j7_l7j&6p#lh5e#>Adn(D>NN9^^}9_Dh|cAd zn&QEN?$zPQPt-)+kT}M{s!XaMrWL+?tz%X-G|6P1mL!|z9TI!GQa;vWF-ePvD=a1t zj$*tFqKt*aykB3YtaMO>H?0xP)v|#xWwkemFkXKZIVgnK8Uk}+iNS-ny0y|vff5xR zw^MvIRB>cHH-uhfe~Jt5>Nwr&4TtbJ+eb3Po$|^UG7kIboA^>dNj7h0gFEHz5mb(k z&Uk1zA4YE&7Ur}f6f46LFrcj{MJiob-#Rze;-!%v+8-Y)ftl5;cD|sQJ~C${u7+m# zjWJ~!4{I&($raL9V@TZmm0>t-UG#&XR6i1Lh|vSkE{gcrFZmq{w+TlL0ce%d?u-9g zHMlBEtQvZ-+1fytq(io=g5}jLuGrSORY`33ZG;Xjq(lyfOjmK^rAlT8m5iTk?OTJM zeQ-b(^_%)9xGZMo7<~0#jJ@Crqe6*GU4*H)?YPgon|5{E-&-wuAide< zw}bWWe|@_k*}dub$=C4qV$SMYQ;bQ!f6srym8*}Xb=p_>Q}zQTOUdNP!OphGFkgPZ z#3J)0XvL00R2$l!SoBx)AcD&k2{aWqyax{~gcqUslt9ZeIWC6Uq-sTN95?xiM6HfE9F(zNuB+rX`@oN{p5&blpfA-+&1; z3O#Nj@ZK%&`Tnc7m8~%U{^yUekGU^Z*Hd;uTFCQK{Nvpm_GY~-_B)%I)B66uKOjDV zaN%h?3WyWHuN;`+8aZW1eo5|PgFTyL{5HkM%Tsiyw>5U;2ZwN05v(a~5+Ru+85L>7 zJViP!MuJU?H_50GtcWL`XlN!ATx;wZam{Fyrm5wZV7sN|aqC($%E>@5&p0rd%)Me9 zrCyeayLg)rhly`?f&>?T5z(AI=0RF9=GxN87)POTC>aL%O&L3Hoa@iFxnJn{%>pQEjasd;Qm0SjJJ-RshQK*>uLsD3pyX`wS zR#09`T&A6r!LyK}CYXPXT}5Th;p>o^7*4gw&rM03tHBDgD#jy3I zwDIhM8LdZ!eF;xI^vHca2iB0S_9CWd3fWLCI@BO&O7#?V4_n1rzWB|14W!(S;zP~I zv-_Tr+6}TsJZ=(KgV)IILGX>910*I17^H4Z+tD79LzBq$dm+QsoPtbmtNh)Qqo2*0 zk*3z(*dkZ&!iKXwqz`P#zcYHKk9*7Pj6ncsCPR}L!%q|Fp+L95$h!wT zYVUdn5O0)sD1PXi4w4w5&+C=EyG^pYPBy(omm8pjgk84UU-7UOA5zBj38OVxg z%?fra`G5z8U;3w!`wm)$^{x`n2K)kdMxKa(@+!VP038hQsx(S9e^RRb z`e#`#X`Su4t!16_q-6G-;1f2C$J)|Ij%;bEVD3vHH1zY@y&*4q8>TJ-~D(2&$JRg>GK! z142oe+8geS&%GRyTB5zi=Z>&BeKg;4sQ@mWH}Tb#K|%^n)0J!7k>M=Ig$rJkp;k1_ z;|xR`&WyTsR&t(9MkBAj0vvkyB)o$BYPNIiyoX0#+01S0+ zU+{KfqwXkOs0r$_VpNic8_fmF!?tBqdMH#ZKG=@j7U_!El(uy9!>y7J{PJTZkOxLAeV!6iDTnr3XCp;QB-~NJrxCVBO$(65#R!#|0`hRJ ztowRygxs*I3Es3@%yHqFBD;b@080n$Jofnhz1l*(`9gn5;y7CEG8Ze8m^Hq%d1FkW z^`-mt-h^+qh1R-}gbzB@u{l8B4f z7upRCTW5R@)Q7L_87!|9ioka!6=*Nh4=-gIg$PmMS^sG}_!p)o z$cj}cSY?*kFLfxRNS2e)M{?>do5d&#FwXlcU5v^%=4-W$u>C|Gb-eY6zfPkDXSJ$t8a-5a3d?<7-FOj zg0H4XKl@BU+%ldS67>_O@zO$Q3{WGKx;sg00}vtO4l`U@@vw!(46Yece<@~YEdYFv zYj%@&pp4=@OfcZ79aQvw>o@C*T=}#@umXm{a&+KVfpO~kV{0PevPpgMYuczkS5Fh+ z{D_@1o&im%hqp{AScB`Z`P;I`U`0)LAzQ)1jj%C3|A)P|4C?z^)_id%xLa^{cXxLS z?he6&1$TG1;O_434#6$B2lx4rz5n~1J9TE)oqJ~Xesig!iYi|AXFc7kdwria+V5l( z+(T+Hy9qVBdCxJ$OW)G6_4+gBfFOf``B)D7?VonCl>fhXvi>9e|EG8}{5|(8&&Yka zj5N{G=wQT@nu{RC^eYiS5O~g}2!Ml@%=`%LAFA=7L>W6bHLX9?i~S6+w+Hr4*q$WX zo*4WoN#=MlzRY|u+447M9aQ|ml-@6RNZ5?FTc!cpjFu_kjM1w|=OP-PWu8EH)s~<$ z<>>iUgx{velV z7Atn`GJgBsaWsNAC2RTu+nc`6L9gi{Ufd8E!obX8k?oZnIPNHA&dS|#Mtu%1v)xRx zHPZ^ZE2mr|`OE!Ap&3qR!cp824iDF5jc1V`Dzb zfA;J*ORtijNjai!bk*Gg`3@%3h+I;Q4MM%+DO9xBLVN775DQZ2#N{{Q(H9KSoo38x zbs^}gG^_W68}Qg0MGrWZ0E?lwQRLn^#YnfK%LVaSN{u)l3z+R~oLoKQjvxjqCKMTI zKH{17Uk2p1nZ8=lUAbSsDpuaFPJvB!?=rfG>jQ;RhihJf=h>NxFa=ZtIeZ;qv-;1VA28 z0!2{xyQ7IVbVz<13m=lix47<)r!qU9zwkX@!G7XBUCLCPW8p z^LYgd53t~8u)XEXT|F}yvg{Y{pxItCl{$EgF*(;Lg4Vw6p<>Pt(|pGCMWMjM&uCu@j#@LbO(L=N&o z6>QKDnz=be4O`vp6#$%QTP-m^XGlnuFau-vmbY0$Zx1wUwKF_!l2M|w>~T-zxIKs| zGBIrk%uvk|k4y29&-ncskon06-jMAjzGoFmwANqIm13eIEtCHWpNOL3ljq_VR)Qj< zr%!+i#{^*##s7iH1(6{_Apn!*e<>z^U7nRUKO9Kk3Tbh95fVxzz71^uO!b`_*&CoIfNwL9_CG<}{T5(fJ{|wHYS)>W`s#6Yf&dhl zOi0F{BmP}1B-jmg%OM22Pha`Jj=7MX_Ze;FR zi(WM^)=~Hl?6m9^vaqg$)LXsr?+d0DwxP?nD^FgTzdeLHo{4Y0?#PmGt;krtGpm%h zH$y_NmUy`INu4xPyVnS1nOZEdDZB0r)ycIhivZUMyTql3A`rjd*;{A=L(I!$FXVrqNBQm*XjV|#&l}elMA$18F>#dmH^42w?fhY*QUr#XFWT* z5l?+d?`g2GUiL7`*lYYS)mS_Or5DN?(|&p)gA?5OZ(d=e4gfxe{C!fuKlpI=8^tQ^ zQhaubs$q`MGs;GX`wCGIE&ajAPy^&?Hh_=uf6B-I;qu}icmN)G1F{Xfq)weqMPUVP zqc`l}jlqv;^6+Vh#3X^h?>oCG9g(08E~%+(4ewIsXj+$$H{yvKI@Fy<{#cm%8)K== z2j1h^U0rm*6y^PxLrx#b27gyFpa_s`q8RU&C#xI}sV#I+#>yi}{ zM=>Ppx#uJ<#g}AZC>air- z(L&PaEBeT{O98Vl{bu&I8E&&s2ww88?oa$djU??VT#Sd#>bv1ke+v+(#vR@7Cl< zMP!NwX)cY(wA%`7QB+iJbs~P0>ilxHZ%Ulw-i#iR!|#^qz^VY zRe0al<%r~D^Lkm%YS-|B9QwuZEKEG)Zf`Wri3Z3m4A(l(Ygb15Y@oI2SZwJd+#?li zGY8MVXWEY8oNz7L`d?NoPKl%YAWFd_5k=fN%^NHkB01tB9XFU7a)qtxWNJ-{KBfTJ zKoJM95hO|?@Vy1dT9D>_Jq^+0%RT9*ImRjZd8&({;^nlO4O7GIj&O7Nd35oyQp+B5K z|L^c9L^Zwi_JgFiR|zpt)kpWB7_`nf_>hdgVKqUQ??^rQ$g;4Lwl7bt#hp%}z3!7l z5!(|4lRROZMM_-)+b{##3EnzJTQL4pYp$t&8M;wdP#@{UFNOCd1;EA7zmf~qzlzd- zaIsveHn%ACYE6wf7km^hPYVuRr~(25JTT;Zj}6HN;Nqvsd*T*k{T9OIKhlZD{zhuu zLDn;4laJ3Pkix^E5eT!hoB1En*mx*57#yMjU~$bLkLfzJQt3_R)TYR$Aj}t0o8lN> z!Z3xBR414+XgwdQ=5jc%kR3>-_Ch@s!95FIRxx`Tvh0}a&}J~I2X(t)aU8XLBw^^e zP~x%)#XX@2p}9#szak`(f_>aPRXHTI&p}q7wmyD?CLTIToBZP?Uim{a%#PHyKQsdt z`1q2S2128kDfhZr=7b65PBWBcXs}e)%H2LCsG{v@uoN4eKnbsNpeA{lCCFt08f0vnSO%qXr@It zMBb5}vmbM+iAz;_UN?JH7yN*NBRHko8U&8kF3)!Fz7&S&C^GkgCZHN+_*0Ee0jkldu(cJ;Qz)e~(z(4mz?D5veeU46FL0F2-FBD$|9&33R~05@raE(&yJW zw{sw)d!zc35Hex!*8s9!AOxcFEkc9)O{UDL3Vc9T$*NEeUK!x>>N891eWk+IXYC~} zmoyPiz8+Ktfto3!FYYwx8DyF>1kjzlp~z9nc}?aJ5&?D;ePtKN{ zx7;!+rx{wro_tnVyXm(JMK4bNCj0V|>5{}m8mc~PDM|&Xm*EzwK z-&xxed*$f%Ztnp#hrGjhAtzjgiS$o5nmIAlLZVQGaue2P9!|koGs@>CT&V|*)t4^g zArU6t3Fv7=Q=0b$q~1xR-TUb!e*O{994dNqY|U-z<%Hok)Mct+41KW|&6=cvkD3EU zWwTXan+9;-V|d4@3p0!=nV(W@7P*2bxKMZd8d?H*Iu;@5LVxdo@Bv3jDQRRT0FHm@ zRfXd(I5wqK0QKnP`LT1A`dkG~{k)3#I(}jDX9^H))`-9W@PeVEja{zl$&PUun_E5b z0)=US{VrOThb*8Vb@{6xCAdDgnA!wFT{Mz0=nRFbz-)3L?_I})A0N`_?tr={ra>a> ztGU9Fhwji#%PvOpk+_b4O{UgC6;ApY+K9z{J43+_1L${HCR4tB`9+7DN?4XTx`tLq zP!IdO@*7sD?tLK0=o48YyDqj>FLiI*9S6ZO&u5laKytxLweHTH5<=%7c3SCJgGVhA zR(7kDctly%j7kj`5_&?nd%;Fm*3Z|&SbSL z*D7|9)KGYO)8<_~HSKuFzsHr}`+OOaZ$|1t~gdkx)j)-4pRpXGj~O zC$=+*Reb#m(sGjubsK&E%^*p!ilJiCbzV;KJ#g@uSti5qH*%W>(=e7Q-{hbB3c=_X z)f@mHQ~yfw;QWh^KM%usm)E(@IlL>>3JBE7wp#i6F$hE`hx2A@6%2A`haC1@;49+^ zLo1)E!1!~7J}xXbrYZnFY(I~5i~xQ**nKX1-hn^YAQ~d>s)7{Ra>3s&0Z^Kg973J7eaI+S}(7Od9 z-zBRaGY>*f6Y@P&-)VF;>p-U-G)@y@WTI699c)53#UMUo9R)^;)-Fr|PQr!4qkA|z zJEmK2=QSJ;WMH(YgqIJRL z?r+KHgD_}kbdd1VF$5dzNn`{!4D+Cy{k)juvak*=v%+Gt@>yH0j)X6}o?cfMCRAkg<2dyqy5$VXF| z9eC?6Z1^~OhHC!(xRBQ`PFj5+=SJ6Jq3jkvL!Q$|+EXV$tv7o2E3EO2uh}3vban{g zwHcf65v<%GH%5AhkuPSeGjTR2-jK+=5coUPcf7D&w%{NMG@`{x@#7zIf-*Vk@Co7` zs{6%R`Z>RS*~v#Hn5z!XkCyfn+KI<*<#xyJs+@#NQ!L7Fu^ zJvNg}(n)iL1`i$8Np-~ktQdGl8RQ8%kW>k|W5jrrJ)LhqR{H0L+X823xF# z#6hl)O8gnEeo_T*kWmK}P{RGpLFI#m!iTSMl zYozApDE96F@H2SY@4_-`y{*C@yQXl7qgw9rSR3tjxoa9y3zCmoZs{(xpbK_AdY_Ick zi@I|U+x8KAlrq}*q=GCHB3wulJKNZlWd%QoBe6m+j@%$Nm#(PVwT7%NweXZBj@8p(vmQCUa4jHiSX}l?}i1GLb9l5;y4!~?RLJ`y>8IQ-w{mFy)t9FYXQll^~9r3#K zucg_#46m)&x_a!uD=WxIE#xS*jJ12$ASfrU0^6}2BndO=yXLMuUId2-uE>2)N*zc{ zy*6{%n=3?S4v_Mmcph)|hWo>{@$%H@jB>f!z?Us@eK1-tg>Q zMZCxkZC)YxR_uL6PO@o*eW96terI*-+)cwWnQrdT=wnh)o`Sz>=^%J03g+4gCJ^3=4jPZ)#Mi z>*~8Q7?j5akDq+4Mp+S-J4Y#+WUd5k!qk!Hg>N!J+Nj9BZ8*rgqkQtZ{X$;AGvy%s zIz(qMNKQAZ8m)4U+R$U!3bL)aU4d-KQC0F-e3|R>#RzhfYt? zzQmI{ZWeJJXS%RcDn^%4G#b`)M1Z(yowlQ=Ci)wGudyN&Ois_(tl zz--vXy>R0}x=UDIN15IrwN!-;eW4}Rj+SA5(TlNWuCvMNz)8#-YcV94R)US3$%1_j zYdhl5iX6lH{$;WtRa<-Ntevlz``0Ah(;L6<9D=UP8Aqlx+}jG-xUBGsC75ia3oNS1 zIKBGwqvHzmxMI7X*3k=+*_D$ra~H2Qm07jCDtqY!-!fS{KuYIB1oX`wt)m|4;5)lI zYC{Vsv$v^r1(15_sT{X~o9q@$6nSi=D6l1pdW}(JwHWiGN)*ZIO3E=w5^y|%-h2gn#lXp3Hl7;g@y=Crw3Bx)ubp3FZ3JA zus#_WD;$a>%A<%U)>o!CR6}@ajjj;WZ@=CPL0G;<)_|~8+ffMU4GxaTo>T`UlW-e` zyIDZq+8NY^PMET(JF(Cj!a6#k+V3$nGC4br^^jU~x2EIcu<5A^SOKdiHwSU2mc={7 zCYUD8qF6;bL*TBGYa7whN;el4)if|}HM4Cs(}iHeHov(K|3pa;1ZJ-X+)sx{Ci)}6 z*PIwnC#b8Zc9NhP;|E6bKpLcOCu!DfbFW!ZVq;u99TBPCHnp#L((}zH8xoJ zJ$$=j8~W0i+}de=IeiadpYF4C2CvX;P|WhLJ zht@Hrk}44y&!yI9reQ52m4kb%OfcvQ=7gzplyxFnA!Sox5+OULj3=E+(^TnUlk$CHW>>5hv~h=->@ll$ z2b5KrSMc)A-x0m}qKt6*mpIIikypp^6i(C1r#TP)Y1P)_^R;)-AEnuEuQUaBKxwA< zPfN4^^RfSH8l^NM1q$d6W%fs44S8+yf@SmzhpUUCvV(~#Uhz#PNcI_<9@<7;Re@n# zZb3dM8p@Y#P54uqx0brSmOiO=__TKdZ)tp09MlKr#r(<`frOEd>Bw-dAC_C5E~KiC zB^T9OKd|bAR)}Q6v?rJ}VEnb>bEw2`oE}x}>&9jT4Hvl#w*?v{Nc}5VG24< zOkD8DT4u!=uE^^o{}KAfkI)-aoMF-h`8I}N|Ck!Nv`NE4x^!8SIR?s z?+syD9y1c&=^3bpgzWeP7_Ou6s(_mY)t~fYW`sQa|fGj7x)F}DzvyolMog+~HCB8E#L8fNfV zCDxSxd5#3@+sn(CxXxK)piC;7LpcL2!`cDpPLQ6hi} z%iH;n*uP6n!{EOFzfmyaptZaIiG8vi+2;83&GgAjoL|5q)~MNisBJ8IE@d4daxOcT+$-Hui4FrQPEfc(HEkZ*5i^r#8c|TI zPs%7+5d(TE(U^2og84uf1CgxD_0JeLd&a#U!EApE1m+ZHh64k9Sh2K9m-hNWAc%|4 zk`in?0+dQ{V?L~{c;KmIBh$MFdVI&0@^EOxYw|Ag{f)Cxde250QbkPW$X&JcsP6*; zdNig8jc;Q;TNJb6E`y@)IWE4Ub>pPJnAEOgQ`;ieVD_62r}kJknnP_0-$2y#+{LzM z@-QJ79wJj;2HkGSQMnEsxG3Io$Y^kw8_NIo+U>duvEtjm;o$!@GWv(+%P>VfcX}WK zG~eUuM+owtbN@&5IhdWA!~hQ*!FfJjy8WC}yxi|WWzkV>_f~x^<>TAj0Jf)Tr7+3~ z!-s3d?5+OC!C(Au9{k(?^58204*pHk|MK9wK@!gzvq!^+LSiW6x5H%*cysQxP zDRCtV#y=!_qXsAbXlN3WMSZUAQ(tp%=~= z!JT5yFrhFjo2$0?k??PVnhvS{L-cL^K13f}opwTdhY=w9&j8Wa>hHg=@SyN7rxbF& zikY#9nI;o{d?B2X{Sf^|fatUJr2<4hQ98(Q;zRUB=0AJM{Sp1!Xr<+?zl(kpK=cs+ zqVN4j^iBVW{)xe->rd!BG=?J|qOZ;d5dDSt0At!u2}A?cPwM$?iZK>(aJ=4cd%Kl) z{S1ZyC&maO*3@T@iTptYPE`I7S60tLS9)+aeTH}X2VJ;uQAA$WW?ybj5~XRskRH2Vd!5TO=wayL>MVuDXyaf;&G^p@b91_{!Dw~w4cP}(fs zC_QdQi4OH5mv&Dg8afJ>*zP2?g3Z}etkM*oBFQsuuJlwBMN|EI|?7i<>Lo(1TM8zT_NZK-j#+ z!}HYkb~?p~pYF$Pp5g`<<;n=H$9n`1Mf@r`muukl1yACc>Qs?*Kf<7SHN!HR<2jAx zp`wm>3G^kS@l*{ixwkN;zng7nndODxdDTP0k04yd*PIQ~LDjhPS+c;_&wTIa3KOJ5 zmoLYp2vgm*`*e+~w><|lBsvJsCkR#%UEEHu2%=tdiBi`SLUmDA!C0!NxC+mg!!%fM z#%MZdKMA`CgS}xkhROe@ksy>@n6?Gb7p#B!<>-I=8U6plAAuRPcL9gq9zuBRUP((jLlAV7HUYBSN0s-8%Cmfal> zOtAg~4B_>D5isCN15jd`5tIz7EQT4u(O;>{^o0iCtFa}1(tM@CH{7na*K|8gQ@58H zV2TiDEZO0Zt9DT8QCBJ7nyjkjD^dCtta{qJ^z)_F&#u^fAm5q?ePEa8w=DRk(oB$e z{sY_Urs8El7|E)9?Q4SHMd_jbvxl{hUJrtbwc&HH^}9sR92HyLE8OZ7m7ClETVuA_ z^AL@$!WEIO(q(O!ZlPU2bvsBE)yJY3m<>b)UiY<=5$)7+)M;f4525UYJ_~MQ$EXUN zmM>~bn*jzUKk^TFnac=LfUS{=r?8^xd3;xu8ktMSoEFDhlw8Sqy=KQFq^1@;&O$Q) zOUv8JG@`Z5*}iZZ1ihzyxt=^^%h_^!A>51vK+-ob&Eu> zeOyO0{CN}|{+aQ|RzgtrRuMK|^fSwkYVAJV(>aFkydeHd4c_AmrvsrPxf>Gffu z6I4IM3}~W*qk^lc7|CPx#mQaP>eCh6a@!M;L*hw|D>D>q<9Zit6U)Gsm!lVvU%0cK zSy`Fnc*u&k@@f)$IRz(jvg}XYKy~J98)Yon`(l_)IiCq=F4n(P-~rY%KG8~Zb!hfE z7mP{YTESyn;rQ;Uem!ldYs}wn;^4o)a)u$H3Vu3$vA-)lxo!g=Ht_GR$W9UFc;BQ4 zx)*x_q6)q{aGXt*eGLZB*&wlhCRemO{L;nu<9!!o+I7bD3uisMU19Vc=b*6}e+Lov zTRqUY>-2#Z-!HxJMrH%Io}r5EsfX|&>4!4EE{g~5H^vLewUTXyAeI-DcjTYm9ZfCW z=kBudIVbNP!(c1>VE8Q312FvAuOA!H)5@b-vZum!3S9BC+^CFxn800YX%%v-wbl?{ z^}V37LmGkdSuxb!X@y05L$J5ZN>7v~C-s*lpg3&mU`@?=aDEjMz%BIn)@v^&TQ)?t z2z`89v_pL;HG)*Sgbiwx&B-OECajNF?T9)wfn_m=U9gb~R@_;Z<+8O?6!)T{EdUM+ zj;O)xVff4&Jls^T>f&HIYxIC-rRb*sGA7gXdw=sRSz877s#PK6H7;(aR!Cp(<>|Pc zda5(K-;g*ybz35}lAQK!G%it^B3kk4^cZc@J7wRV?u{3F+@Rn{&0_;3IDHh?lu%pd z{`cA144M;N*7}IL%d~9&p1OsC<`frTQIb2&X32N%QgDarvr}ySJ4Qy$tbfA>peqrz2Iket+bV{R`ToX zH}!g+bVyT**Y2;)Er*bz(o(kch}KDhdMI>ysFlBf`yM1E?-=@HsztkD>#uzY6E~|j zvf`J^O5rq9$@hmU3+h(v~Pte4Np|lOw?B6(Fr@cXSSVN`(LK#`7I~( zvL=U-{A$^o!Di_d&E~yMi%TX36DGIN;E4$ib=qf1J%mG;lPOF$Q!HhPt5YaBz8ML8 zQC83Itx-?0B?_a6M8f}lEJ@(3LM zd>s!>-4-K0>uv+&Nv*F~i$BQ>*W@|auv29{`(o3Zv;kkso6vr~XSm{hTgx%P4F=fk6 z?YJ1%eeY}s$*IOSM8B2=bHg+Q4kt{iKJ5_qcE<&LJ!J;Me6F%OS=fEh;mxK%%yn!A zy(e0@!y_Mh4^bmotRP%*I$RR_hK~_C>(4{IRwE~QmUIrxc*^%Xh?gc-z9yF)WWwKW zFf(q>i_c0M=WGK8SL}VaI+7kF5|568fqixaI+9ZgtaV0LEra5?h^t8jy@;7)WpnFudV^lk)l-z@vgGCX9#;ocHP~ z^tt}mH!?n{*Hi2nb^4qE5&9Y1-ue*#60I!pZj23f%Z;g!Go6Q`$!wAEUCz5CgW`=Rlb6wUKDku%)eK~C&MkD<2s0LZxj@J2p^#ynH9eq|rT)tm?i z(2uLFBK<*R9pK)P{!jZF|CiAD`y{JDMH}E*gUMU>Ign{hts93*{it&5^A4Jb!Hh8q z365gumBkvK%aGG*VTJXjUaC1`+QXqg|LB7(2EIKzGK%$Fm1CjVWNKFG-9c5=CNPxs zPt5*6e7LQ=Kxwu?`{hBjFAX!k4mc<&EGDDf7RshFEvBR8gxvcUlR_K4Ji_W<=4Ng{ z`obq_^)TRX8&B0$5TAq~e9MZf=sLn+20Uo<#AvXe{NbpDmO%Lj$}sRr|?8Vqx%duyPT zo*sWzDrsI(*2N7a6Mx=7@s|uR!er+NiZMxfaa2%dM;`PLmR_pTLd1n_wlIj@MNb;P zTtz>(UmM_!dUorsi9m}AE^M$ICFa@J=;IOxrcQV{GGpu*27=JN;XytKf-H?Awtw1Yv90h+@}WMRE@g|9;!QcqN6`#PSoNYA`SX2ObW7t2q>Zt7j~UC`YojwCvLz0voFr&%MAdh_S8Nv*$~z5r{y zJ((Hv719Jba`+4{3z27bKe0QtPx=Uv37Yva3;U;nI`O7IgHQ{)`en6%-7UT#L|}dL z)ope2<0HaM$a$CWnB3grOeO zG^+}k{|N?8$5edi5jyC0@2diebA#q5Dyj$&!oKR#VYPT~QBgzr@Mc>PovtKB(L*gv z5mRaPL=CBaR#E-y6u2uf5O*>!*0Jf1yHR%T(L<)kw7E{UYdD;ZcY8Ir$rxHBLScCw z^+r{cA}TmhJI;{CKq_@-%(8$lXVjbhL<5K2di7kf_BXl1Gyb}eM!37p=UWg(Lh>BV zBaETiaLVFAn{X^DCLIN1vs_y#y*7}p9OpauLo5KFrmy4Md_z28^L}?2r1Cv}zVwfs zVN$ACLsX{CE-JM6D#qq2{V`Y8s_Lr*m;)m4wS&$rnxxJ@sb6OD>ceX!KC{TQBz;f# z?fMBWUw7NYYLYbHvY*?NB&3J1kJy5w4=c<`{ajix@vTu~d5zS^WfnSSf9Nvc^Ser2 zLWqX6O^yL(hzjjb^c?>bk?# z9py{Si@@6f;s&%5H}WIsb@Pl$UhdVR)6&^{lG8asJA!3Qx%hec)`sQ*dHsQ!=tH;c zoZ?W9)&6qCy!g(79Y`mZ7>m!(EX>(B{BGg7S8K+gnR?T#@v`q+pvw?Z9V6AQ{GA0! zwp?3%%Voe6M3r_SWqk-7n6@O?)ho$Nnel*PlGd_>sHz`4G9y!-Us zXiOLl9s{l1O=BRWE8*NUAOX(gHg^bOHoRaS$-7XxVRZ zgQ^V)*Gw~h66^1W4CE#PJz+*s*ahK4Ai-m52ACxj{SY;`#Dk{1VeD&uCKzz3!ld$w zkI9V{*8u$smT0+%$Ua5{5N@uj+__a`crNr>cGK2ZYo(4O76md z^xOal=fAwN`}@$bL1q2JWaDG?x-|yk3kKqR>8cVQDk2&QA(~8l8m2VEw(Vh*i8EmL zIu`7M8krIby(bXCs9T|S3*oHD7@3FZ zN}Rc7i{Xe!&9zzw99L^p`=wr9Ska)^MkttzSApX`4XU72tpt`9YcTI}67}b_i)USB z%K>UdD|Rgd%u0fwZ}OI1Ju!10omAt@)(hB*;TL1;V!uW>LYqT&1!gs+1F~cu$h(S8 z>Lhs1n|3H>2C1rCnw%x|J0u~GbufO51;knJsl84wS;5)d)4<(?HZ)H#s1SO<iu8v>Tc1G{K;& z-5;^mi5a|yQfgQd&{dJDobd)(d=LlhJZfmYvEIFj# z3C%1t^rg__YwUw`eL4xB^ohn1j)uiKRI1V=)H1ye1!pid?-o%H+%&D1=;8|=oU{Eo zs|_>Wui1g)EzcJJ?N6ut*kAJ4Djw;g|IE<>htwS;0Wf>~JGANVlhg*4RogiML|%YT zR)n%tb3zguJZXKX#qL*Fb;1V4SgKoKRy3ZryEqLF-LWcyv`E z4*G#Ov;EUatf|R}`vbt2bwC_$26-WYAT%_Vii?Jl;bEcN8f*^g;Z)}qHHL<&eb~nk z)}SYF%;L5huZRIWUp+jt38;g9S4wbwy6^p*v=-~NcLUnhm*{l!CLJX7OroSy2@;*_ zHmFX{m<%WVPSPZDA%M6#565pWJR|97=jx6b_ndGHQQO*6-E|V0HFp4+b?Ke~H59oU zGp98b>6yh5+(Y>upZ*{>9WI*ZWH>oFZ0-0}&CXn~lc1&DnYePd3novX!}LMvnSel| zYA?W0mO}0oPqoNpMBB};(6x)iTwS^Q+( zQCrOpv~Xh~bzO{_J47FXF%8LrEn@>ToCk)FkR_&KdN_m4 zOW$(fI_jE5-J;6TdfjKQ@7Nih-+-_@Y`&Lw@Ci(2jlsvf^B6LY@7_@sNotALoK+2f zVicuf4-lkc?k~6k(F`P%sr@bdg)h8DY<6ClwfAo|V}0uUGy{NJfqw_Le;)!jsJ$!U ziXy&2aIjgEG4|xd5r7dx4+S>Q^yiR?Z6n7iQwc_W--+fp{p5;s=dzT!9rXaj_ubA= z)wbcK5Assh6M8I5hocx~LzS?lG(9uxwe|TV>nQ8>B%A*YY)gN2kW&U>o2D{#TZfs$ zwAnW3-nu;+hs|~e6sL*7XjjBej(7#a~tS;bp@38;^XlU%eq z)#J4|_j!-9e=f{S8I@qty%h;@T9%9dFu;MI!VpwBfv8$EK}7UaSn^_Z$TVni4QY9k zC%VGr4_`!Fh5v%AF*WC>HSsx|C}HpokN@UYC#WmDs<&tRuE1l_<43c&RFN7c#HdK{ zw(%R8869ts(iN%6azgIR1VjH>XY2^n5D7Xb-7d_K`vuw1YD34Tsodlp+&ej#hS&A4{n1sq2Kd;r-k~F zcEzK>!i0@xdeOz_?9B~gqlRYeHu~W}G2KW3S>scH(td#a-RN{Vxgjk|&|BWf?d%Ln zer!L+PTP8yI-X^M^o)#z}>yg4K?GgM@xfo_|9q^G?S z{34b6X81x65`kx5W~;@l>4@KFVg|}&t#$Bav77>sgK|heOZ!5!Fu`l$>b@XXeAQ`9 zcSHjBD1jYop{=OXwkzlMv-I}Cu7j(bc`atrBLkR(V53_F1@1jkMJ1fp@@rn3P&5k$ z?S`)92po?Y^2T5mRRuZTm?(BvTNKVa4eERM6_%aH7k2=DrvSewu0QymTv@$E!a z3o~NDkzh>dm2>bsQ0;k9zCyT9s{7lpw*%AF6V>F7 zw>Et_6D~$1jQX>x%yRQA;XFybIh+KD!vNce92;nQW;L@k5H%ZWTXBdXD0tgvQ;aX7 z7jji@8<_{HRc-@qnC33K%lac{1Q*m*-c??kr#SCkR}?^CmuOh{-Douat41!JA0YgjNFEB|+%FrGyPGgQ(|cSoJ(GLxF+H<6 zH)FRTnc)1{c`t>ryutYQ2ilNdNFW)eNd2dhUX`J}$@(xKI4|0VwlI)il!C4<`RJo0 zFRif1dLZ#1;G-{?9x5Qc4}3SJFCnp{ww2FkiScU(9 zL(iA6b-^?qbnkvmfd5bg_8w<|-%j7tMfwm82fIuNyWOR$0ZlLi=LP(m0n1fkV+Zu~ZQ5lCVA`oap9`+!Szce!_gfVsRg)qq(IU;+E zA&QtO3>C(IT)0(>^eSPob*IA(8{kaS8>GTH>__inwZCRTf+A;8_MsEy6U*mf$(b-j z_BbI-e#Y35VRK80sB`$FoXC6>iOWuR8>eOqXE5O=svZq#+LOF9o5RL3iOm zv3a*;2%S7!4VwJT9xL0fC18Q+w7<^Hp)rEh?bDPc=@-Insj$cbn_8;f83hqxsCgEw z3SXCsnh_`q8%E-s#s*QA6)V+zLR$0??QbLsn3nU8i6xu?AuFR*P zHy|dYELvL6Q|%_1h#(E#j@T$8mX!xOQOjPK7#%N&x%B3e+Jp!NRjFo?tqLd-EB2>(O-5eqthUDcq^$^x ziC^RBL(fVQ>_?|8IOD*jbHmuu2bl1rbLzJtzrmQgHaQRq_u|fT3vZ>!t>ngtay-%~ z4FHB#k-K%(1&#p=EF23pr$((U7f+Z%O4P07o6XjRKaYlZ$}-@}S=cBq;c(+FzksV7 zWP%{{3d8Wgc%Zpq;^*eyo_yLF`UZa2tqZMA-3)<)%7cJ2oUp4&d~8Z=3$BKB#%eg2 zAqYM-)BvOV9fQgZ$v+(HORs>*bcigJ(Nk@nn9Y1KC#s9<*eGVIsU)V7LZ2yk-_JNv zzmRB<=spyc7BB5~jRuuQb#;5ZN_B=_^73~T!FuJ?x#82&d`V@*@5tp`*b9cLNDKdi zvv-b;G-~!nW81cE+s4GUZA~yq2NT=2or%@a#I`4yV4{wlxq09BtfOz;bI*78TF-iF zt?oa%_uf^zepR)9#l@X+|APTfI&8yq#X}Q6$=4zEbn_>@myFQL;W_iFCWrhWG9Hyu zF9BuwB_81IW!g!9w$6Ca=S`eP_8iR`q&FK{Qli<0r`iATWe_hL@}Q#%K?vqm&g3z_ zu#j8rTXy+C&Yr$X%I=#vNa;(y&3fuEd#YU0(q;ku=qesRU99Cvvb9OSQOw~b_2_46KNA-bn()g4 z;nHI4Vr&fiYp53ej2F2S9f(S(Y%k?06`;!agd|e4=iv)h6v7gvAY47lQ$fmrAcXvi zCG>M9IH=Ix9%d}k`~@PQB}_PX&x29RzEwU3$ueo$a#|j0Hv0Z_#tkn4DYjm(_DmXD zE5KT=C|X0G+_0tF(GhD^`Tgj?lQxzE&oG%&&Sehsg+L+PU9tb@9xE$?_Dat zfB8+K_62E2Wy!r#uIld+0^#|vJ9gge4WiT37ypbLW+T2L1ASax=3YNeh+YFRyRsO~ z1Z@H-Nh741Q-Q{I`&R2NqTBNk2H`CU#)jT%-V^uqDW10PFDMraiu{3DD(9Q9Jl}oE zGXj}b7h-au$dqP4P^_1|BjtAK@0mpT-@}nyakUU_kS@9Ma+cig7ztL@c@SQ{7PstT zIe2Q|svboYt3E=^WS&W^v%TP*y(v`AD=Ws_7?jtxJG8~!om6b@`D}jW(=C#WE6-GqjoPAjftFp2`?ThJ4B4Za~rH=TZ^hvc&`t=KXbJn)$6C{ zlib~2f^l2o6Z5_`Lt$*5B{(f~FGd{L72j4)>IB-~y^r+kWBSXwI@b;(^l}Hsy;;pF z(7u;yXgllAZ^`nO6Vk3?_0hC+eSEUjM7e%ob}%sbx^Pcds<-%^COfe`WfQ498q;8= zRhEZOsd(YXmC*2M@}APK-*5fsU1S#ILHQ}2ctJmJ8^uMkKuP!$!-TJ#hh=?9>R4}w zQk||{^$$gT)XBbW%~SWu+}~C2>%YpPv}YA43+>nDb$W5K0;D2(f5x77WAPJ^r`$x< z1xajaJLxVx&6N3zAY(YH9oo++CY*{7_h@CMgN>?81Wkp`BVfS>5W}7d__L9J{rx@M z0s9brt#0!b>EXLuKc@(aYE+WQ_3%^c8Yu+a>_7`tLCG@I#%z(Blsrb`Asf=4klf@2 z6xXyT!GS=ur$|>Y6oI>`I3{FNKE4;{CbuV?4)ToARfR8!giL{@RrY}My%t5I%d!<-N7Jm6}((-sg@df4l z;glF`9N@GmECmDD`N;rvVz%s~5)C#Q-4L7Kk;$(15TiHgjNk{3OHX8ZUJ?*A<)#=O z@hrMh<+<7hG{Y)5=BliWAvKt4sY#_B!O0krRKZn+Xgi=r-U%ZS9R!6ic~Fc;8gyX& zS5=G|I-l3AP;N5a*}G0mwz9!vl|juPKKc;l8J?6^A^1|llCD#&{JzRNc_S7G)|{)k z#)iKE%(#Xgf}In@^*2~k7WL1=R7%)w#Jwv_Q$31{>1j zKBSs3{#t)!qd93yWG``EEKc7_(1#<`OD9e~(6`ELZRv&*_`ser_k?d&KO4+P-hZu$lX z1AH%21?0-Lqi~p9RyU-+AI^QsAk1o1feL@FhSE>l7Dg&)!q5*0R6Sw~ShZRL4AYmb zXH5cagkPnm7Jl`t?O>OuA>IX>895=!y=6`+ikrX%x*QhfjIYU<>rjU2A(QfV8%An- zC4t%b86k`qu2wGcI$qk&6=uYZX=(=JJ~#=(f%j$|5mV>ZCLimTBo^V{e$=PR!lS(iU#M>g*yS(Wt4cS_GAiDLoWs~3Q_?%7_J_?b%%!rUptq|oUv~= zJ2KyklZ8c44cxnDhoFrH?A&C#%7wj^0|JeUK2$2od+FE2^|wUE3jp1fQyl2KPMEKO zJ5XCgOoCz5Whk?~!;*0p87b@^L$0LESE?B^=)UvvQxLT5ofT7jdxaYK^S|xx6hZDV zt&DLZ2o08E2`VKf;j>m^-HRu)L%1A;?d9_gR$NX7FUil?gYNcX2ZJBVUZd+Xe6#rN zf(IxzTXv{_|C#a*_N3qaq?`aNBLANt*#B*j(f=FaI%U z_x<^7(+3PDKb#G1lo=_49k59*H55foA_FxPXFC=ZG0%2kVFoaLQuWDZi-!;HJcFd+ zRtlewwnOG5xMW|-TG+J8RItg-btB{9jHkb;w*Yv!y=Iu+l@^VP*{xj z&>~%l;lnOWA^gT?+ypjbe1ggpXccj923Z;5W1c!^Zeu@Oa|f(2Dt0`7j`}@?(w|D> zbzaZ;-A9Vfi_?Z&4?Z%)SaPHI8AMk{zJFMaPOMM( z5T`=VZhV3~zsf|DKbycnYqKdC_Jrb<|EU_HBe z`!VJF4Nk$Pwt8jN-EEeK`A-~8|HdZ^ub`yM!Lr~;yO&mv);F*P9)EI(AvL`Ug?K#e z8kKB@B)XDF|AufXDq;h81Ly-YHhqFc4Qctv=z)|8AJ6t?VVg!oDw(q7yg!6l~eYlPXegHq(WTt6a$UbLl7Vl*U!?I(bkZSWV!h45j<`mZNWX!n&R zy{sZa7-q7S&!HP~pM`e`^Jt{PfCu=GgnbMaT>3yM(^lRBvQ~6a35z$p{RHVXY(r+C zKVlbn9+~oxNztn5yXIP3bmfr;o&6n!Jy;ubn(+0k?en+vCwP6{_<3)+1W)(s9#Y;I zfcHkAgs_prAa~F|mCc11>f_-vZVLDxOOrVMzbpDY?HpPE+3{BEQ~FmVV}vijFlW{4 zSbtaX7o-RPz?^74;^v43TpL7ZALZ-GO*B0pp&*gRedT;XQUFL%?T2h4EG#fPEk-WZ z#%wcn)Dmv~sf+IguMy@|-n6_};0dhTUU~E|GLbi#>|(jgeHBLIv0J=LxOqL@^0*Q{ z-tw3cPI$d;!rcvq2P4qyhK<J64O&MgvrBz&R$LH z4L5XO{QxiAJI(0_GjyMF$`u{Rgeyqr+u!o*0H{9I=6v#I(w`tn=%B-IVW3>t{76#F zC-`p#7*F`$3Ig_m_n@IaRw4UC{!-SPEZqFX^i2Y*e!zy|u;4Hl8c5+Cy(P9dm6|Y} zTNBL0x9geZ)n%z#ZXgr!hfw?rZ z=wakfow^NIf%)RVkvG-O{>f3WJtKA^m4{a;Df3}Ule1TxRQWIypD!S!QG0PxI3M#0 zn=ENZsV-G^q|G)yyd){1nABBeLE)k+Sk{?#>%MiRdfXwTFT-vB%ud}gpETuTJ-Xlr zqrefF0x6S!Hm~6W%aDEmwF0qGfmDtpJejdoY9W%NgvzdK^JgKTJxIw#>GZTn#sfC+ zY=$`nI_g}3!ddG6lNMh*=S+LIl$pc1Kc8?(%laXzaLq6-O6J zUiO4bjb>u61QbvOu0!&9UPfi&@$>{i-FTXNGJ<7xEFN6_v}yBxQ(kT~sF&NZcHBH1 z_5wl6m_uPhe7ycLcjOi(IJZ3(6#3HF8;jo|M@>b-DwLN#A|?_gIV@d>i1U9^U)K|6 zlwG_L>(aCI@Ou_k$vO8YT__w~J_|Dds*Li)u-&&G<4>y?g}HCsu{|i_ko-Ft>MSX& zR*e1ph^wZ^x++88Mz5{fwXkZO=jrRh=#A~P@WLz@Vu#$YbN1dDdPvH(I&kM0E^Zpd z^^d;nD}xFrplGU<%sG^IYk`m;nJjt+4^CA098iB1dInJ$IV0&IX!?RfO|q4h2~enVVf&rivLH3K@4L3X`0))_J`1 zCbBc>S}qv6^GEQY8WPj+@t0d*!p&5yry07xU8wCd<*Mr;j<1jFYyF66t8(P+P7=Sf z5|YZL)E++Wqx7+0_<}s_9{F1m$VWJVdTRrv?F@fQy_sJjv!fB&5Zi1u(MWAka zHh3S_%L=?$S05Hf+3KJ{Q-(>#5-(Ep5u}ls2ba=Bm6p){8kV;GBek{Cx%V?(PvDai zlp;^Pwd_X~=EcG=Bhwl0DN*OLfIB5Iydw0OT!Zdh>H!zJ8wEDk#ZxoP6R@$P*H?sJ ztD45x;N>j$U0{p$lw7CAK}Su)dQgYh5bBvqZZTH5!OTN(x1nhrG;Q7l&3tUXd@NRF z$B+x9mkBv&rO^leu~v+vn_5Qm8;f_4<`pxtc9epVcYLL%zA+SSR~W~P5JQ2_7`LbL zuG2i!1a1cSA{R$WOn~`b%%jJLj!F0yY7(o8SoyKa5)x2o1} z{u5h+_SYgs{@}}g`A{iH^?V$lFiRn>`fKMR2Hy?d*;%lP6 zWEzH_>-e7K#kXfOxj3;r;BaUUct8i;Emf-w@itPM(&kI6FY3k(*DVjzlJ0teSHliN zSDrfX!4B>{_`wlV)s7Ay?K2ppq{J7>?ESq8bBOW*U(w0o?}gj<>&QN?`HsV0;GWs8 zJ4HxjZ4Aj|eFbyaYfXLCy{8`I1Lijl9YCq7A@ANMb7Xc6J^Jo*}5C?-T za36Ifk)z=~B7LRmo=ItIGnQ`iWJVg#c6FSMETwJJA-tu%M_h81wt-Q_$tGLtFU4qnyi?gW2gh+C9;Ux>O&7%ullgkU za<0EV7cWpiQQ~2U#z7_RGIe$%p3wC~BKQ`Aj9Cyw5<~~3nnb|2qWVeRl=l-zkX84t zxOPHJ9u!;D^js8jA~)=^^k;~2*>pCDvN^tNYy}0OG=DW3^~OefYnCVE^&>_x2?T4X zcSae;33mx}LD7#Mp$On_id3384kkWMj*hPujnQ#O&j%!kK?R}o1E`6{-Gafd-1PhO zj43X?m5Y%4ktEENvusgsNvNqRC3?kO3UJbo();j@0Vl6a$A78c(x@R{S!;)`r^=;m zbpgy5BDRh=UmNT6+<6&uCP@6Sut>SMDLeYsG3zmCYN(9zE5BT#>iE%=eSgi-BIV-E zcs7-7ISR|0HYPo{e|R?a@kn!5$9L7L(y~g~KyG*te?5ex{RIiZVw)Y2v#oo8OE~)S*<)2`A>Gs~99+Zd|w++VS9{F(;%M zU5GM~dW^W<>3RL0k^*A5PyH_V<)NNp1gkjqC|+bhI@@AizkhfmMt??gdZ?h9&hvU1Ztff`EPEA)bH$kF|003f#3UH$R0Gq zHb0CuA6jZQM4}#$jGbQ(;xBykP-$Jd* zAdYicbMItHFS0~K zvN$>X4JmXwBOTz?6XoE#ryP0+vh3(9z%zdzo{LqRcNRNY@g}>oy?|3}MFCW=d~eh| zlh7^qqGVcqxGRV(Je7IE{zo?79BaEg2n7r*kLW*#l2+`1e4l{!-v{rfWZ~k(>SJYY z;bLj!>h8j7=IZ)+m&V1($;{c(%AM8g-_fmyi?yewi-VQ(zaXxYhLH}2I@b2kDj7;8 zRqA|XIu4n%uKxGHD7`P`*fOV^QIHNu)=~Hq{S?8486=K%QaW|Z7O3x)+Q$PSfFb={ zk1LVaEsskPpO3fqYeX>&1CiXZEwEA7jA>z>$Mvazqz5x_)UU06KabFJ#vE~afBH5J zPtuAo9aKfxh#*}_;1U^I9a6ijO4Y{rQV-~8b6eFJuWQ>w0GPnbKg8#6 z+&k;h64BY#Al$8$mlYsFYr1b}`SsG`eK&8_)=st&U)H=W0@L9loJ=uT@PR{- z<*e}FCyCxT5MS0^V8qtj9H-anq{$IzJBc0r0VP-6w6W+T#+}}lcV8@xOIAG!=@ElU5}zz>8L{1h+$|Y5Vdo=J%3! zw&$J?YCZ_FJZ6uED&kJq3w6ic#pi9}$$qhY90Sm>sv+7aBodR0MEXI+zai0V)pW*H z7Fd)z!g^SPpvX!10SAOnW4ZJ(nB);DZ)%YTv9u`r0_4Um!j3O!mnf0tTSMrXn0Led zL)(C-w8Kkx}D!&OvpKRup1Nr5c(Ujw{1% zx_`Cr!MMQWJpPOno&A>zyZ^3Bg8zSX$Na>r@Ub?a!84yE@Vv+a3=QW386@BvDBJ@Vzx=rfl@=Gs z7%r*4DTclt!b(6l*4)ZS0X}+Wm!$M|g~)dD9;57v9#FhLXp+hcq{7-$Lvl0#1?(>C zk^Lo%aV70b3Zw@FpkGRMknV#67U34*IN@y2NTht>_L+b~a0z6&lD?uqSTvDO(rW-J zPKeH4ZK)Vk zEQaMp_eY(p5L9F<#f~VAi69!iP6szagyo?=CCN@Y0)d67&U6z!VvLTaX25d6iZup3 zwVt(+(a%mwGL0KKR^1wb0%sbz4zV@*un!ED38)jcLm;9tkBL zdz4??X;sdxbc@+kl8swU0Ijd8(Wa0~myb^y;TV;Kh`I4XtdCC@4>2J_(c*buq9fAd zY~*Hbe`ZAlJRdIru@e3=c4BO__xak>u69rJr3U54CE6Y#ODb}Gbu9!Bj6p%sO3}?v zTRsY>gEDenCFdFk)7Ay%4e=y1CM{TN3WeiiA$69q)>?8WN)fI$(N$FnO%TuO! zrK%dLc5-BCv!s(G4U*KY#(8b65incSX>!=rY9cntF_fh$O?bA@evy}?4?IqjYG_k| zrq=u+z>LnRQQoF^pV)zh*G}<1(b`+=R*Lz(D>`dsdsInww8+}Ss<)WtOS%1O4Zk*3 zc@05?pRw#pohMbC3Ui$aIbt7eM_-F_u?G0 zB0lr>O!wP5*gf{WPtvF$DT?QOe;)65A|D`c;Uagt@CifVwCLycCp@#2gO zV`pBiRfl?4fc$x``hI!9%zIL4PQN?RIr`}$c*HIZOp~7tN7u!x7CNI=^F-(nuv{f49eQ%J>>wt zserO(#ZDQ90v+W*;~K7K=w%+pHpTMR0Aw%ih!O-TC;H|eWdu#0UVqppT?wa#H54)@ zCU?qvm?&AKC(hF(cJq@cwB6*Z&sBz9H+h#L#aG*_;f#bg;+H8%Unv;;hU4WOn8@qC z2Kgr}Qgk;a_rl9&EsXmjwzpg-+l>BXzUh81H8Z_j*TLIcC+r)(o=C|avz`r?zl8rW zp||t#*E`i}nz;A9tZA_C?Swpku}!EVrA|JJnf}-dlhr2XfO2RAXnN<`NrqeO9vH;t zf1M*OGleM9+nY{Ej|JN~SmDv}^AJUxo(EP~@gC)tAuEw0W1ce9#Ok%0>8< zC|Y?is+AX9OSwLW?TRCA^xg33SpH!4&;3VR@*w~60gXV_k&IpP`UW~k_ja;}i1NVz zrE@bM)nzxiNXy(p^RkVKI@2gi#OTQsF)vj0+Z&4Cj z8?F$P#7Z_lxVUl=rXn_-g<*)laqd}ox!xwf7G7_`XO>~i)#BRd_WJd?=@! zUtQ$_xWR*8shCioe3T`~_FQrRe&E4lR9w(+Me>!1PeWs7NwFe`AGyb7Q(CaO_?g0x z!~DmG)~3z^uC3kc4S9gF3oaLeqsR8wcCITC0c1qovvhNWKN~q^?m-1Tkn6WltuXO} z49n9T%VQLmr+iB)-%KuaoP7RVV>So9axtZ9jnI2R!Zn0i%*tI2Ay zMQ-^XswCRRVWSZxzciXFc`?AcxtjT1HT;V)?I;Pb)jv_t2M1N|H~9|s+c36eImmPxKG=2AY`8?~c~A z{8KCw9K0H&Ejce)t8?B*I1}uYtzr0Oc~f{sW3h|(N_pPw0VgoltQXcabhAneBu8yr z16vAVQ&`xUb_C`GTvJ?jteldRQ%%-?1Xc@lcC z3K#H8u$o?$;BGuhmIx~C{gcUeXWtqY0}c!<<-hc-{_n2GKYaTCYd7BGUw()3(tR+d z4<0P&$}F6n=g5L(iki@4m%EdOm&IrQGCAE(A0jNh)B$lSviox=e*2}p3T8?{GLlp9tex zrkj9Ox(O?i|$%eXiMw}LQ{mo!3kTvv67#VfC2&AH-%?^^55T6^E$-+FebVNx5n|V z%mTJVpdEbKC*e^9u#Ng^B0C+j%Ml!p2`Vf~FFM@v61XAr%JVo369jF{&6COk*nv!Y z8$WC;_5mq{e39|FyPJjrarnGX^~d1pDPvy;nvgSWSO<#h_o>4qnJl@t&M5>UuR6Bc zG85U5L`E@c?eM>@mFaT+c|!SZs=6YNl+{&;c7k zmY8+C+jyD~l){3mCwU*L+%UpXIXGq*xq*VJo3LWOeHiB`=G<`<$EB}&9h&oWf33~4 zsNuHZaf=gVSU&CHa4O6%zN6r!lyJ+_Wji_dT>Ya&jf>BdxY!94u=Xvp|0Zuu#}&Oh zG1@n>d;WqNi1j$P7>~czgA3`&(w3kAePu0LFu%u1vZs@GM@Kr$@~fP9FR?s(EG6BA zrZ)c2e@k~*DGOa>*-Ri!!x0pbQ0V!QoUoAQcEGOO7W>QRn6RF7(T{UX9e9$s#B96= zh0};M>u@40PaEYf6rS1Nw5ZvgNSiCJupyNDSF%IO+tNINzv z1rq!2P`?z1*;Ru#8N(iSWxJ5g#(Ap^{?&c_#Cb7x{Df$fXVzNr#we=k z{1NA}>ZJJW!&MQwyH3hAf53X8>JQyyI&5+m!yf&0boY*7+Lmcf6c2}&GWYMYW_PpU zqgsQKonF00c{2m9f{wPf<=l#J-bHE^!hPkbKKepcoxp16=xmxz^K!QRHuE+oakZRH zHz0SxIjcF_`l&_h)3-FN->4j|hF`+6FU=l=22Ste09OZ@!y6(E;CI1x>9z>^+`UhLrlOaLYrLHI$^Pg+mh`>XrBfL*{YMi60;?30l$E(>4?h`xr# z5?TUeU&9JQb!K%ObTcFL24K3vn&CbG0{Q53Lu0}f_u_$9L!@xQaKTh>>~G&e6|VXn zSS*;AP&NR;AtQijST}-C*km~4-X&0vkJb=AnB}to7;$w#7!UyL1@wpXV|^fe=syuY z8SG!}U4;h>1p;1y?||1KNB}G_3;;VM35Wy^0V0Pe0kXgnfb5V3U<`Nw7#qR_&;nBc zv_l$z3g9B3Vu%x918f1<40!;KfwzF;Aw&Q!Fb04-qzK3WP69H97y&xK8i3A_17H<+ z23Q>;1n>fL0K7v60EhiL;O5>1&4|5OU1e`*EcKh=WxpL#&hPsJeWuhoD5$yjoC?0tar3G~E1>u~N! zEGj$d_hFnTrkJtYsdv=fbcTetbgso-P_>j4a=(D&!s2VW78$ImM6|D^25Uq4BYs5N z{YG>^I_H*jSogLUM4I?aAYS(jH1K2$6`ys=a#1dE6v&Yw2RYh!BySi6kEH6A z{rSGobD?fK;eBqJO`eV)IF44}5tF*gBi;B?Qp(BcztQMjt=Bk7k$0f#>wl*>0EAJ4}!4n0v5MHeq}>ize*YhAyJN+=%pC%Y#;f4~rDuaP7M zxzN5Yke4t0cgz5rc_+4ofupXJ?y?7Ri#{`Aw3bo@olptRnw7=;J!HgTgYa`4vzdD3 z8P|`fpm4spr?P0Uk_yhrWGC6*HRvQ0nwwzC=b$Yr6Ctt3<5cmf`-JykkzYrxoTIPF{xpHm zVc$}s9irl1o_C*{iYHr~LLrwK3b_<850E3K>{GGO_pm^2CAKW_$1V}g=tZsh=F@cp z|A!o-3&%Ww_(H&CZwi*~I&jz`GHQHo9kU1pUm+i^3^?*WHn*DKS|2Y3ndgt21=EE( z-^^;V(j@D2EUAjj-i5LI&plljaDL_Y8NlHEA1NF;|95*@!_(c$%;`UBU7XY=Re)kx z!jR06ZFF#b(!b&}W?*e~Z4J5R8`-k)bjp;J$gqKV@daBpJ4wmQ|$q> zrg8<3MP|PS^#_8Xt+gZ$Hiu(lF<~`j>r%&aj1fp4t)T{PTg$EfSw$MH`XdjaDxH87 z*>>9(aD`w3Pa7-q@?~s+m}q)@MvirjYFi)xWLX-Bjl#d;8 zePoy_s&LG7#aZ^dZSuAI)oUjrHxyOc;pbq{E?*;8)PMxP!=-utCjs=88y6qx+r9R0M^gjZ% ze(_9Pf}i*3yFZ`*us8qR!~0*Zji!~ar-YZYrK8oq1(h@%{=wxTEZJ_a|LD4=iN&_||&BEWd}% zW#0Skppy?M9$$!t)Vlj+OB=;LC2)wWtQhpbSsA61J8cQ^NDAXAvI?_s9p&+T!UAV?m z^%NRWj<{^0t+ar$BOany+eLVxvg@W27Y9 z{H5v4D}v0ZLDX$B}1HL{dn-)Rhv>CW!-14B=}%xD#tgtSMJWDO%Axm>Xxs=lu!1i3Z+6(t`zX=Ug?j=Fb`|LxWA(9=>I% z)gF$@L&6ggnpkK6mw*9qTyj5guc_?x^TLFCAu|+vj~+Ce=@Bz5m$#&PA!LpT_9l zhs>w+KjWLvPhCIRzuf;-h^K7j6uF!Sb2caJ6#xw6pTC(o}Z&#fH}V zs-tU<(v5L`RDxBkg`(mJTMD&^Mz?K17a=oA69v$Ie-u1uH7YcG6MC2u>i64^knvi^ zv09!By__sByHEe9`m-9{JY?2jSN=uckw1w{%-=SdAUUs!B zaJj1(r`?GVNN7J^l-kPor(Q+FWm9Cu9_6KKD_vDLI0RnakJt*{e zhiZtJ^(YJ}6f=BHQ^;gxKT~NDcwCM~M_jrOh#!#}imMeD+N5^4=LZZA$~GcN|F0uQ%1||5>;|S+=lDSN4$9 zchyPs%ddjQ+AE5bRmagyP8g<+bj!`Vk0g#F6Bdz(lIyS(((oXob|Hp!Ep{IcBgZGK zcL!Vc8zlkTSx3<9MxJx3r zM-fqLlr->pDP|o&rOIbor;I*PcoZrb6YMMM4vr{3j%In5h%&)EK5VLk=1|Gmyg{+sgr z+sW}C+7g$ntO^uEi@5rTX3wY2mlq-{f`?ZhlI`);+Zc3g-qy3J5VLr@Qt5`H3wO2i zK0a7~%sVAUl5oYdqn2a{^ZLn4o3vv~$d>W_{>d;+@erN!+9F#2FE~u@(LnpSF|6tS z^um5FO)BBwQocDERDB$9b?7mCWqzZhx&+_HZNSMic0M_{|6-5ox5is7lSL9;Se|7g zx^Kp5a=(xNZ#Yvu_}a>w5qu4chR>5j6VZCOEa`8(`;CL8T|7*>K1`hQxye!QC%+Vk zN8cNp)x*-#I5MS(bicJU#F0(2|0@bF*G`JDq;N%gmahft&mBJ7hQK)vvMc+MNCItT zGspb7B8p8z>J}%g;d?NYc?x0;*A zTj!RpkgO9_yB(*JDsJUm_8&1|gxW%WLn@n1<>W^)%8PZmorCs&KDO*b*|zwHvkq|lMO zF;I^(_|OsVnBzT0Om?bnzw_Mm!o#`qRJL(VpJNRA_RlH zQyt&ORUoX`b@F+ZHYdd{yb#zGgvr1_c@=kWm4cUC!j5_WGP$t-V^*9a$u9@KoX2|1 zZhwU5b%QktYNR9bAu_oup2dxM_`Ac$&Um6MF;$X3Qn&&y)Sd&I`It9fwN4Cj%BtaL zQ&!dQ{1ZeQey90cq)KZV|D2AQx|Dp3*a_2CmqUd>X4WvCd*zNnB))0!A*A(Bw9^`1 zQF3D6b!z7+(c2+xQ{uwH(H>p_MJ4lBLPRU)N}^W?m|lcFOhfj5kNY)-cP~7bGuD5W z)VYHzfC?YcLOsYDFvJ&JoL3N0Fxx+XUj%yog~;I;)8%PqIOmOW-VF6W%X5G9qV2@^-8UYrf==;x+oLgG1 z)$ioqu$GTZF`f~}%$|I&8ffcR;04c%lVQKOjEn2EjEaZhoxf-;4^KuX^Vw+0zqMM- z)Oq=f=JVbqx=LJe7^O62xOI6$-nDN^?KZqQv+;!ZFvR$FGj!#gte={OIC18cZ0hh_ zi`6<&HvbHhiXbl%Jt5)^8^~d5(c@DaU4!7D2?Gv|j9=Gg5Zq`|f1jBXOdE`hSZ0}Q zr4Nx34U(m0Bo8+R${G%Zp0dc(odb0=9PVmhGL(KPiG#UzRU-PDp!f+2Kwa{_3K>_G z5+LWpv^CmJ#jacSY1MrBzKEz1Z>v^ZW#@XtU#8xE;k?due)$5>qBG{MVm4@kwW=9y zwR&B*#}sw&9-kxsRfs$|sosUcDx1>JOUtP``Y{H$+;&r7X}IBspAvWR$Qp&@!#G0j z=D~`kpk>i5^QaZ&z!a|4B+jx)8%B4^KVh09j!~-1-$T;aR#c-2&27QJU^@`E{PspL zrsuTgx87tCjrL$NVMul=F;zPd)OCa9XX;Wr8=2!pH4!<@eu7^7ZU8#S#zQ9V}5!DIERE;UZ!c|{Xo zsm)VzuA=T|5$(uYlYf2#!Sg4J18P&Y43P_dkDVL#d!l$6gTaYvc>Zsd!`7ayMlrZ4UK!BZ&8DvuN#iNP7;irBES$2ewq%1iz?e7;wkUHza6+U@g<)-(7+ns4F;D3D^jV_8h}7QHa#t!b?;E6O`xSWptB|t#ulqA-R=n| zNnr5dMr{0jy3S@F?~R;G(OwdPxG_c<0>Q3y-r?va=6u1Alb-?@>Z!SvPQ6|?B;w|dTNT%Looahk>6Up&rmL2w`mMtAF^BbJ$?p}Ri&Z`%U_lIyq8RjMP z4C?$VM1iGg_#2JYtLIP5Tc?fA<48oSN9K@hEuBAimXh(sCS-y|Nm=DYDBLW0nbm&Y z2Wr-9=*(KkZul2P^VfqdMr8)-BnU zFMD?|a{cN35C+ue{ZU5VRd{Cja~4LHC9#L8u`{NbXK}fXpiWgkvX0;5_Pl-@(}e>0@+%I{Avw9e2jW8-In@8To*Zb+~6$0<75c zb@4l$mkIZo*@h?4u6dLZ?IxnlYtsj?C4mbsZ)J5=xbc*OXDe>Cq~u2Y;PquSc3HeE zc7US|$$|SvsOF+rzeT}B?SK*Xv3(a+_eD)9LnpiWj!yw{_I$<}L~0}7pXxs#!q0!k z;oqptXjc+J-1mTdX`*UqvVbNY+lk!FC1KIF^qtORYw+Her^Df=S&!vqzWko-2gmfT zQE=NjW}2K=oqJ#NKB^2 z!pAH!tP(jQ?5e*tQg4X)*)i8%9kw{+j_QGj2@!sD@5nVw*XiyLeaOec&2jf$PWf+< zW8MN$yaU@;oNefpUtug3wXY`saF#N;K>~xHS;ld~|LiP@_y7Dah(h7hVfx>>qb?q- zpCH2W^QHFB*FT84|Ir}!KO^zDv`-{1_lYf@v6-hyXg?qbF{@BUM~4MN44fr7D$=%{ zZRRjy9pPGT&)UWGe_NHMJ(!=Ky88t7XlRc-?|kA6_M$yDm|9`C{8Q8Ax7EK@Qtz@GXD>0 z?-(mg6fFxL+qP|=^Bvo^ZG6YJZQHhO+qP|czI)%B+;=m{%)GpGb~@>F`o~JIWUs2) zRe13~+)<#*@XrE5DT8PIg-jw$+}M*qQ@iSbPRe9sLsNF@CE zOdO>-9(;X!;<(ZG$x2vH1N) zV^F8)eIYszWTTW@55RGUL(pTOy)WzXQU{8*y3}iR0OBm70pluqb{c|s1th6Dp1ett zpofek_>@&U50j;FAIDijnoB~hxskf7wmtuuMV^)m)O5alKWo^|JSV3&)fXp zw7&l_`24@Oud@ZcipBq9!s+JTblK!cxc!3S=w`N&8Pyz>ZRp-9b2MHL_vY-WIvz43 zy8sUhB9Wy?kdjZyUVneBhUNz%A?^IU`pd^5oKMG}FJDH*{~gE?{@l74$~_LHvNd6G zM<}~=E>tDujhz~f1niGMm?$`Yra*DAVLwNgwBisG)(TB(8uoR7|M}}RPjDWYD9vq3 zU7un>IU#NQTCt{uZeK2}-2<-=qoI(4CZej|pR4pI7`{(sX?%)UV*)pj7v%i>qDy%a z5cprF>!)|B22U3n7nZ4Sg6x7p4!LC#Z7Nf=GN90sp^AZ(JN)m!7LoiiiO9RRK;m*N zmN0a%!w`3m8fARX+i0b44}Z&H6$PH_-DQWLL0F|;yk1(dNmfk~F4$a5NNVAt+!E!Y zJZVWJ8ITYbSvZ%R9|VBRgn|ai0Xg$#=UXRD0o3iRC?O13F~f&kY4SzPp)y)5Dj>Vn zHRHZb3Tcc_=C)Z|MC(O<(?@ETcxT~erW{}P3y|uE4cNqVeqnbLp)10=EONKiJxzb) z_V*66>TE&k2#5cHufaKt+IG8JOCx?(nQ-z&2LQiCDK8DmHE=i8l4qboEmrI0G3ULT zc2xpX$hZ%|IxoGgqlj=&;tIFT_l^-u%;KL$ceGS>WaP;}w%*2eu%hZzVQ5bAM#ZgB zOW2V<9HN!3+89BgDuDa4qj{o9{UTo;+`_G{F+ot}ysgPf&HAxCkP7;~PBv~keRm>! z_aM!ox;XoGghrJFKewS(!`H#f9OjpaGR&hV4r}+D9G={#45&O2+@+Cq#_Q}o(et-X zK`|>EKf)vV9j@&fYS3h(R&fDDEDgD23JB(b6~&bOfM`zYJpTp3^hpLf{BbV8Ze8O_ z5<$Uqs11@;Vtbc|V9Zem$by%+(LxIRM~)Af*TkYBDAz55gQ9mL!vMeP zV_t}%tX9xvF#*`^qMuy;h1G&U7}!v_Zppj&mJKA?(-TJJhjjzBeF1xP!|s|D?NnY~ zz}80a&KRRR+98MY@9q3?k+1z&Kk`=1S!B-&s?QLc#|t`Auq8K;`tnjhGUs&EJ?Hi@ z^-;PMCem}+ECvwZ!Ga}!MavG#mn@OdH+zFYzrt(gg)FmCGvD0AQJLXA3h&y2z7^@) zgPjOn*44;2G}^0Nht{u$OaC@yI;cYTe9Ox?6*jMIl*u=g<#4lMeKVwBc%9f24cZQ} zbZ8CDD0rgX`i~-w`u1Fw1awD%XT{3&q5Vj-0JXM=pb>}B65*ot=;t~)J)d8ch;Zv3 zR}gGOMDYjcYt6yKzr1?e!)5pBLYQ`#e&tqje7Pu&J@@|^5=M0fMXS@RAI-`+Eu7R1 z1izghNrAmN5I=WliVKF3Qh~XN+6B)vE|od80X<~KhaD7S9s!${bErrV*ygp=Kgd<4 zLp@wyQDC6khXJ^a%4vo|r-@ppajA*qI8(x4W$U|~1%r`>3qN{F97TK@tc_Juh?kwH3lQc9rO8~-xQaQKs%r=9 zQ_t=1jhLcwuU?3R11Gsih$QY}fND3OKXRT0)L99ntxNhOdTj!6)@Oerh>I|xUnX>B zN~6}T4}(dWkY!|MlMV3PnMFE?lQPI_I94?Rt15KOICxe#-3v)XMB8yku*_xohT*A~(7+HFs_I83Li9N@L#%6!b-~2NKioJP>|5+$;V9J` z9d)M5p%`-*hxgaNkj3JlN*-zhyrp|VKauV`UD9D{{R7HGm3^&aw z#qeNVqQL9q)|9O4ZJ648rjI&9CK#_IN?%Z%XIGpj6a_f2s`}_%^uaamdXP`A_h-`g zmhbCDR#f4B(v}FE704MzOSI3IarEy|jKK8JIcZfzbVr?W-k1?F&)@pmPk01|o8ORu z!sr1RnQ}&_BFMp3+Z+rBR?(V!gkhitx;tT(Gd?D3ED+}Wc(ae?OK)2oLR)sqyhAnr z&DT0#^;qnJD6-+sPnz=r*3MnhZ}(ry1!VwP@M>#Vr$TjETb+f|NM{RRC+6H{s=o3W z<$T4kia=59*Oq{|vgYM}Vibgg<)FSvF~|`s^-}tZxw=OBMh7?e&Pdrne+E)fZWstD zuP-k;L)yAE3R>OWSDQ=>H`&k-P{u4OQzm6xnr}vzPDXj+pxy9i{j<)e4iIY4+W0XQ zOH1d&PA&V{MIo_$=5uW9k`0~wA1e`wG}6ybnlWqQy)j1iRST3z z=hUH$^-(GQeie|_m$C^T_|{SdtozZL4fn(seF6wAL989uwQ*rH(IK)KXl2U!wostfnfe%Ss1hTUBsNlvjy%SzV= zDg<6bhFl${wOZhSvO7$t@)QO`^~yAc_D|o*N<%*3C7gmz0B)0wAwVMl)Lv4~H#!!FGuqBbRg-^(KF34575rjrttIIb`lAF-UTMPX z=L_oNmaS5prEZsu<87KLQ>m(}&}?;#t-fU9Sio#Az+U4k(pOkn3tq;ySYS^N8CK9i za5h37ayb*=)`&oNA^C>J_Sd3EBVkkvsyVvNUSO^V1Hq^R)4blUdOM}#y(1~H1M5}T zz$CmOC*=CW1-n!MXJUb5hE+j@s)=lpd@FviY=VOQCWv$1p9d@lBmgEC7yro4_+T+c zu~;Q(wWl*r!@6Vj4Hr9CKDNd2U=zBh*$oKsmi}$$0CFhPA%q>>@D*&?uL{)l*=|8) zeLO2Mnhn1g0tLi5W)aE}$M-aGDb!jwvjQuWy+N{vFVEdK8MoxiAl@mTA1PWUN8o~qms<`GRk~nyt#&2wr zxzwh`P5k4JD4j_2wSqF)EP!Tp5wvaC-Y8{l!Az`LiAaGM$28heX3e0awI|>K@ypUv zHs}|`A>R)>H%mz)z+ASd=J3&UJ{==(>8DgFca?oxGfnPu4m)NQiaA9>R-=X z34}PCfp&cMbGSQGd;W}qWYlon`2EH+Q<-#pxO>nw04jjn=9aE7;?9bnDAT!0;CnvX z`)V!~W1v_E)5*o>f&1WX5L{*es$MAYtix~bL&_RSfkl@R`j3~8s##6{25 zj+rC+U;*KfoCt5wlqqkV%fEULNqW)mPD$Fwe~T&lc>tgtQTv#xnb=5ma|QoxUFXrEl>D|EfRN_wbTUNN6`_vnyz6{WSyR zyhnG#sc*#zhJgwYWNSakSX1{OO z5rb9Yo7Q2;ICf|2iuy9=EbLc7Em`5jSeDdK#4@pxX|RB&mpQXSVxo4PKk+Q@Lq?*j zvx;HI*lBzaRnh}Y>{Oc+Ll1S41a&qVD(z&MZUm=;wM2aSh$=q_F<#3kkH;pIU+eSN z6XfKLNr-_QH^zW{<<>L#h7c#Go;auoM!~vn_I}k?Zy$r!u$YiPEq+rwUS_?5X<87v zJ7WWYk4^4Zki&}sC2YwXhv=JXv|dp@kRC@L@)O7i1^YEKpeRBeScMxZ1bko`79Mrm z-c31|%qEXct6p((hZ3B1Vy`@1xXA}hf;|s-(05K&i?y zApsm51uSz`5m{CS^Gs27 zy`5lSJqq9E9wL8d5e=uwP|T4bmmXs)Rj=j8?6~6u$w?UKFPeBu<|S1Hh@Bk>lDm zKi-O`=7L*@AZ4bvvEr!}*nwIK&R#Z+Vp@UoxZME-He`TZSGSzhr+F8DD5pe!5#I3q z`E?wzev`aidL>6V1y)jvvXNe!wBo>^Jd(CUxSF2R#=dF+DD!C}X1tcH!p2t6-Byw3j5!#|&0$LM%2SjAr3r?=N*UDp>AaS0ynQkBTly^Ug z^U1jP6>B1fbSj)G{b(vZEE@;;@$ z_TpU7iVfu@lOW zkSeZEnDP+E_z7-IZ@9=8PZFky=-8eDj)LOyH;&$>JctRf@jVFH{i%@%iR9(dHVBhyLiG3L^N*jGPzy`Mv^J~Z%8%d&nW<6MxYwkXc_rIpjh z^OvxYWearbiT8@U=$%WJr|F@=>7g&_nm{LHk!Q`B%gmw^dq7^pjH073PW=3JiV4be zBT$2clS(2nUwAfvP=?-T5Ey{#YV>toKzov&nnDp?Gxo?Im+L}krh1&jNxrIwgSyo zC*1-ilF9Ep@s7Dl-Oa<~Gqfo$e}^Gjr>Da*MG`Z!HZId(AF?hnh!^~=MRtkQxq9!` zh_G*=96Z(Zi#+Sd#ap8EuMcdn1G^_1BW*G=5!s=e^GizD;WmR3av6}$J%K0K8ku~` zGkYC{%!k`tgElE!B%c4lB$*E0@RpNG&#|E`2DVANT@u>_tMO~JmX!$aB)*P|*22oK z)0uZI;+g<9AQWH7L1@5T*tMYh*KVx@fvqC{&bHbGb>AR_JP%h8rMp@K1g)59#hAdy zbl)d2@VN(tapan&p(yu~nA5YMQC>31WI60XDC9jd{B(3+vdnbB-o!{t}FOuY|jy>Ek6AWa0XY7r#}utL(Qw{3~r}&hn&J_5;Kbr*)UiI8uOC+ z)NhY@G^;#^q<#_>#oyV5GnT#;i>#0)JV2NU`6aQYc(Oylha%|>G#W1&_|J?FDev6H zcZJHKqyF3_Q!Y&6`dIRNXg6Z;y;|{pp zD@yv3_ri>fh|z9fOUeLE>GaPqfzank-(!+&aMY_;iOyPLD!|#L%32E82n28uYt$QB z_M6`S(|&L$^aH)@A0&J7Z~Yf&`+ru9|3hhm^Pv0ah1u%3cTMt(& z!VZ67V9f25283P9LfBvmsrV*ARY0w2(5soUERFKB$Iyy4Ecg1SY%BwN$J|MTD2BUnDD_*aU(|5*;G ze|G=?0-pN+hGA3ud-nf{VO!YzlSKWao}_?5PyitQU3nEg|C_q1e@OWM{K|hCI|}{Z z$|`AFGg~?{3sYP*cb25sS0A&J>}@8Ob*xVWEGj7pV#NHBo{^~HBJ(7uRDg&G1w=$v1ZZ`gZ!l88?r!Fhk&%{kd9l&EbmnIX2^lmr3#&^jSlDhF zG$|_uYI5>W{;-P5^I#@GqWHBrhOg^QO>=V-P0hr}$jQAum~5Z56*e;)8*fWXdp9?X zML<^X5F#QXP0bA&8k&ub5+>$N0{q{Op zBp5KqdqZF_$EsFOJ3G6Il9H05B4VlvQ)@R-1qB6F)s_DK{GJ|kpuT_rwlPd|3(Utm zinR1}N=l2$%F0i4X68qCOG_$BO3G6$SqTXVC8fmte1oCWu$Y*b`e#N25JLPgS$aJk zoggNGGa?WRfjKM`Y;3De%g@@wkPxs?X$Z?mpnmyvk@cIHnCJTEiRKAsAP^IzmC=iQ zr0QX3^QwPJuj=z%5-MuX{J#)HNUH)6%&`gzf0TNl>U-+*ko3Pdy*-ILN70|^8%VvQu?1eILAQK z^m5^0VS}k?3AD^j-7KpMVLx!@w|SPgS(-hU3tq9Cc$p8GzywA{uPqkf5#SaX|tfBzJDbH#eK39wD<+58rMMz(9kNx-sdM=%7uRONXdDjZ&5(5rX^Jsz~Z zLQK0$4H1b}m}cdM{Z>63B-eF-wlAlATWB;!WrDfwB{Mvm=Z5 z^K8vMlD|HevI>vuuS`Co?ql1J?$W4O_#B{`4ezwO&n%1=!L9K?chUA|AH9)@Ohpw3 zEta1$I;rW>HeGkbDxV*%;+3HA`=N7gSA%c)k34zI6H)0iBaqd<>4f#kBQ; zcE4AjTuZ`Qtzdp2!qc{^uGs~KtnkdkS$_f%d^IW5$XTDUeFVQVlAKkmMS9OtwA?5lb) zQ;7qypPk#7JKM>3COmKrt@-*T>?6`EZ$xZ1O~q?z%v`{X(&L*)z1C_}LdDMP`FJ@K z_v;hI(<{A3`P>QA>lj{V`zi;%97WF8;NpRzjW6E@;?@|J znmdq8&R&Tsf}Hi@9LIJSut4B)?t0)z*;W?i@%ntRMatK ztkEvig$o{Iq!tm9bMX5)B`~D(&hc8Ko056N>TJzNLm-#lAtAjmOaAPH%QtVBTUet! ztMb%>&F=dLqJH)31kdz^yH8#zkR-q_y>YcVb&Y}`b0IzWechnI9zj*MOc9F}J<}AQ zLDC%Gi6_Bz*=`?#)0{-#7B^P>N)Cd^MCmBS$!69y*y<%GgnnPqxuCk4w!4OJG3tZ} z=J|TKkKQOfeW(G5Nsuh~gXu;mO(#b8ws_0a5R+$TyJejWj8>0{^TNEfdPnoqyckFh zB@#clDVIbt81-z(FnWTbG;AIu=*5IL5l)WyLq>`)AwVm~)diQgy0i$t&06UCVmvfQ z&6vFds!41_2|nii&|xcA=h}XTM0f2pWP1R35RzHz9WR}`(26Vw@{;$uDgGRZ!1DW+=A@W%ncP_X0wi??t&?ZHP4?G5* ziJkjFQ%6!?hQs@x#{n8n8?B$Eyzr65ASWOP@<392tNkp3GK#fglJb;hnf;+@TZzT$ z<_Ys`-D(rAPRU|Q)IUAZmWsDKlN^i~iohX`xun)TF>#wG9-U3c@^LJ~8yC|>KHY5~ zd;QIfB)E>|7K8SYCv1#R7hu}SJ`aj8=;nm*+;GLY{*$nzyb35J?3RA<_rUVyWDi!7 zz029+C$XEgKM0do-HF#6Gp&Q&F|k@@Txp=EN=sp}psrvWi%_@PkXrn#WNEoR7-ZgS zoFJ#aXQS2z#%>XmvmD<=?u3GNCA=RYhnc9m%_;Z(AC0dcNNB#QJUIp>HxOE0;afaN zk`}sY^MtY8zWqslrM!_mw|Rh9MjlS<9xb5BAUo=4s=JJ$nYP0Hd;WsFCj_y@bM(U3 zAIq|1B;=fZ4aC;L@Nzml9oW6E8?(A*D3wRX2^Ck9y~&gJ5V@JF?#<77v(=Ub^6^v$P3M=@HS-=TSi<<-lDv!&^j|>!HA;?EGzTKL zo^lJqRES=VLlv(-Q6QzSWNN;zT1#T6(}N4huZZ{*San|8CD=`ly2v~kBP-ojXyUvj z-RQF(Z6tpOaZM~=GAnGT6)@Br5}(f5qPuLjCGrYB$TzNtO(*VXJkpKbgYW-1>y%-t9Wm{^1(O!STp{%*Jhz42foMmxuL0XDP*s;p?B3vp=oOdf9 zvES^DirEd7B-tsylv|z(Xvk8~m4EI>xz-bv@?&;zn;~-S)k_*0fdmH%n7C-99ao3+ zOV+Dx{MH~*T?E?moA=k3T&CkC$NTeKDb1qQCP;RoRl2u*0xV#o&Ne!;!1~U#Idie;3=DbOIz9)KDpzU%lqyxLJB!Ep6_!7g?Rd%LJo0OA03q zD+lr@1U?;&Y<#W7ub^nEQZ%JxZg4Y2u-3aVp2Of{+B+ofDN2-H7gLvv&g=euNF9bu zo9s_OA*0o(6|u`8F_9-C-}m#F^)Q0MbAOt#Q!A?DC&KHb1+Y}t)1FEWVZd#YK>M-P z9jt3Fzpj8xz9kDcE1#P_gm8z{(6hPJHpq!=MKVI?K}z!n%>LuCz6>ybiH-6MJqLI- z*}~y5Vzhyd1g3XUnd)k~&DD6l3K@KgUOX_Gq^##>5 zl>i2Z0BVKNb@UB|h(csxB9(_0pcBIo^zRNauw(>xx$Qe$3(k>*!qI{)`81OpA%*@$ zP^D@XzFvdMJK-(%gwg&)TD%QfpLG8;ko%uooCgE34PVW%h3HKh763MZiOL4Xp%~|& z9Au+NBE=dG9U1}XV0nb449QFLn&e1_S|Z0QJaIXOtBbsV%77e&yIzE^`{G(D56My) za+aub@riRkZa`f&jBfLg?T0nl!jt=vsEr4vvJ6s#mLE@-YY(&hg&&CoCy6e!47YHe zwrI^;nHk}!1S4QtBLL@fwf|LbA;Il|Ls)8|482Jaf1B$=u39c+MnPxKcMVZC?PB0)D zdyNoylp*O15NBbJQ_m*ao9C5|2}ae=M)vdOAjL*Z3-Sf5LoU+l0GlCUfSEzE8L3`V z?A5y;`C^=VJx1}1tXn|v>qGoelCpz|W1dD=qo4UlwJ%Bv!I##}bF1Uy_YRY5NHus#V)Jq=6`hrvGtVAIQT6peA!3wpjVCvwQC-AULI>H#kkrm-mC*A zrq?0q`|TTBnaHG_{3wz5l{nFRI{ShxV|02Fxn@Mo`y?S=E4iUXmK7I~#2Q%|K^@kI zX;Y<`C=9hwTp*$vh6P`srQuV8paGLGDAY5i&i-~Ri4%h`DS+tOp9|mPUZ^q>-ZKD< zmiqO>IJv1xY!@bI(fb)mXCH(ggs4l$((YrlwgEyH-WAX@*0Q01hdmhi^mb~#oK<+3 z-2VxKdGuBGvJw29zg-9kUs$ZQ3lJNgG?T^U8d084j2t>KF9lLSZa-mnbO>$>*5g-% z(Wf7Jj+6h+{o4Em1hetB#)u0v3h8ed+dCVw2ZMfi7~s86qcwF*+)2=4*M zWVYvEQryT10^WiqLAbWBj!Pl5EsTrX5JJS08b2IfD68bAU3fScL1ARc3W}Nm9c!%( z2U!?FDEL<@U`=*7*EeMDwOUbG5X6x&)_q>Yu80&gTKcf%aY*(tdq#l@=0_R#xWHz? zi5o(Ea9pyHV~LP3jXB>p$3NyXm9SI_1;_M4MhH<>%`P#rvJxuvTuEVGIcrkwW(SX74Ba_6An!i@ zfqSi+kG(R91SlvhQX3`M{EBX1Ut$ctFlDr1&O2zc!^=%A%lIANx|yD;Cunab=$(15 zGnk$FaL=_ILWXG~8FELZVsqLr6Odw>=4o3w+m6XHUb8pTO-dt(OAvueO5}V|zl&qs z*4HisL^!NWa~tG%7Pv(7hGvw|+FT#U&KCVB;?alz7y{|m+g1ufzhi3CvJcM!a3U%t zBz#&^f-W|O*t)nt7ZDpR`LD#?{)1N$CHjzQpelfNjwiTW90&i1rlF%BU$B{O*y;j8 z*2dd5%AJ!=7bR$?dwbm+x^pzb${U|TCM_HM9+W8-oIG2oew*25meP||oOJRJ>ch!9hPsSy6Ttq06y z5JKfA`FDL=?brJ#LsxV^P*^@>Hlx%&*!w^XQozV~NU;iYvTHBLVs-ixf6~f=*RX1- z1cT8E1IF@d_zt3A+CW^LT-wP_WY%VMg$r-DMhEyY}&V-694paiSKBuWd& z$|1furZW5=U8lb4BV*AB2>7#}u;Zl$zdN0{=u`EG2}o`55BA6O1BO_7w*9~YAiZ!P zA=yKMf7pUP9!Sb(&pI;%EkLNjxahKRD<9q1Z_hbWg=uO~i(I9MBx@EkXWcsNd z(%O`_BnGCF8QX5(2ULluu9>(3=XZ_P+w5fvQpn0L1Dgx`chH}E(`J~Di6)Z$iK+So z98_Bu`y#cbL=@Pi-rIN9uZTDxbc*2qHsh;z_j^U!f;RN=*QfIFv4m&s`Sf)o7=+#g zqqu|R@Ou$Hp+B|g{+SS}R5M(`=RJHmsGP!3e1q@IOjUNoUP2q| zGbBzSbb$H}mJu|! z4sQ&s2?F&AOJU&ImUvO(u+5~XT=>N{U8`0E;7u2~-9YcP2nCZt2>@1&LoZ0|fpH%Y z1o2Jm@YjR9JPz{E4-nJXA!et*F_*LsRRFR-1rN7J!YUnUkO;y&V%PYlEt#zd!GKhH zCnQAgtvDZ0$sJ#xG{a7X$L9yjX+HIbPlURM&jqB zs0+lWGNhq?(ool~l^WoLBnbKNNmffA$%BL3FI|@afYR;IV)&R-oPl05B}q8Z@Lp1T^M(hCD=+_ebH`h0}P;$|5K0a-XExfO4b~4(ZwAIItrlCG4n|B zaq`AFa7f1sRUf(|i}hX{QOd_8WPy;hh+BXSkw4VD=26g^k+bpSg97TCCwL@Bslg>l zg@Hk1Jk$JT5KSOEpwOm#e~7>M?-1UHD*}cx7COyOmbO?j7Qp_R&{fd@S%RF74z)XS z%hR^j_P1*d0}Ssm9lIN@Sl(Kj3_F1x_T~UI9{PpB1TdO3SwRyfZKd@G88q}$1(qkG z2&#K`39KLuyj9N~RL>8Sn;Ct=`J~w$9bONSY|;UUnRD=s4q&6qT{F&P%sbJkTtOK~ zvLU68O|}WhaNPmMi^cF8d#W(s4SuHrnK!=W-7pYM=rZg=Y;nm6@D%l%y%X2^sdj(7 z(E@T}a~kXny%TE?xV#)&?sHQFyKSN6_6gx3=kJ;fSQH44`2mC|&FT;pvdi^8E(*RW z1lii=15@VGF*2-z|5<^#%LdVi-x61P^rivoE(-%73-hEJz(*QL*8%6`O4vNmo1g1t z;`_}O>^*R7q8MY(MUy~;uomgxzqeMq=#*|IWCfsmlRFY5?0KdqD62n_< zfwJfH{hUkZhleG1WY<*-`_;-)G9lp{f2+9->=t~NMya`rQswgwDo&&)US`ZFh&Au8 z5Ii~V#+Zx$GC2IhR0pFnEfTpX&lH#iNIf7$tY5}`miKqfWn=VSTF~aV*n(QHQ$DGW zAN3>;eKNg*dkF#iuQ(=`dC|344yngse)tdIYR_zG5+G#&gcaS!Gpfb7xp&D|+TBz4 z)G4_b=tn5XEjtRy(hC9|o>zD5*D^_i+A9`v?lbET>_qO}sQ5$X_#z*=tI=y5dk#;q ztM10xpQd31R{{ZR%BYpErUR#O<8lE?|JFQ%69w4n61;k?J#fpm-{72ZZdX zRQ>>a23jabIU2oSMp<;ZDL(~#061gDdmQyK$Vd&uU;o=;U`tq`7qJHI=GaA0xPYJ| zpySE&`u9P{8rDu~6Y_|wJf~p8@BS`XQbN^Yx0V$G@3QQga)10W6_nsdREsvP5eXqbDP_CT0T;dp2YMY#{${X{y%9$qj22PouanX!p`eJK3?P6!P z-Or_OU5QKBL}+}^{qZMg_f0_=Ge$R_@ifC$0-3BeKxTPl?11DNwn?kun5l=|e}PfG z?ORnlQI@L++fE@XXmTjr%GJ$TVzzSe_Ap&`w{CZj)EA%7G`6ClFQ{0Dq4?YhoE>3x zPTGJT)Km*_YufoJpqH(c-6j{n>{id77rYs=E888^kz78V`GX_%CH72zS&hi?AGgXv z9!i;U;gMgqkKKgegga%#gaWRUYP;qX+G+CD%iBnO4s{hW`*Xd|`^6+RHuagiV*U=> zT+DC=Ie4hl=A7R9A9+U+aye_8Ec>0WblmTS+N%6uu+5%a2NhRH=$*MY4KGqwnG^#H z806!1@JPAmf$eU5h{*iLd1MHTD!#x=tpcx7pT?Len^hed=IZjWx+}f%wOMQ0#1NS_ z`}E5;E5NI$D5|+iowCKcrP6z+uMvFkvsx$cI9r9L^e=>eGgKN~NJ#M|_o)7(c3-;W zsT|p-*{=7NO((@hRAoZQfmDoKx?c#9^=CriU!5n`VBry1iLth|ytZ&Y0>o0}RO0US z_NBjHSxVMnkO!2ePU)_CLQ^{XoHyGI=LqZ}u$gpc+2F+{Dzri`Y-{TjuKNHm4@Z0X z+=XN&8>tq08?QcGjV5u>7=Gt}sScIaym;CNJ?I}Sg)=+M8onUon?rBJH_&R2eJ-r- zJHva^5)>R9zztsfOcyF_o3=o-Hi$+~W$nfS23F+kwVS?V50;T1>=~O*y;)r8Ln8{} z$b7r4;H-SWlx8&RXbII;sSb=USkyP`z;9-+C>9|Tnazg#;I0!cc3u?uJR*UiDouKo z>LL!-tk$}`L<24}z@xd>ZLiPwG|g9C*pK)c2q{f^(FCNr0c`A~4MD;MilkVFuadKL z*nLyR#sW{+-1XT`jop=v%|Gcr)UDfSKgXXYyz4LJ;SCpsD#^NSw`nml7JS#1;)!I} zPW2qkWel=AaFe*>2?(dt{;G`= zI>I2!Ud!$0mUS91_Lso}WuR8eaK{fuj}J+&Ov>H1o_FtTpL@8f)yo|j0@r~6!j6@7X#303soMtjZ%7>x?WaF6oCJP69qI;Gj74e=L> zP^ik$g31q!6jHsQ-=1EQOXd~3_X#obWg?Krm1^s=lWp-?c9(GP^jkZIhjx602r*R+ za@Re(=QYc{!DeE?Tc*vi!q&rYYI-^p!#!fyzb-wvle97eNVe2;UQnurjg-t** zqZmor1wxMdut-bg!!0dg-FRfb4Bip`u()O52djd(*G$~r@y)=*Pu(* z3iT+^k;wB?+%o3k`LaG}-ZUyKq4KkPtl#@Q_)GsZ{hNCToYkVm$~`dUyF2H)r`NNa z&)cr`*%z9c@=7~vTB4b&x_+6HBr~;7%*kbk!6(KvB+WVy^u%P6Re1}3Q9?kLKf;JB zj{63(^7!pMewu1F2r@oo7o`&bV7=4g>8X@Lz5;^qGju2^k5M6192csj#x8SQ?V{vM zgxD+e*}H`EHN#;|7ZHz*vIu*a3f215B1=m z`j_wS5PzI!ljW$yP+l5q6}B0M&%X|%#)K4wH=Q=+aG-nxYX@#QmLDDCi*oT+s{^W% zL=!iD$swdB2SrLmd=fcVR;*5;_5zc9Gin<>Nl2`IfFOgKG+pE}1#0Emla%VSxkuNL zcRobD_Y-+m#Yu)hGZ^OnR7 z&a8710XX##1?6cB$$M8TKdpYyXdF)=BVsh-ZKP>Q&n_XMUld=^w0m<`UyGb%wKXp0 z({*<02oYCkI6>1#Jxd#}TZ0bY493OR_N#io>mPb37Y6mxOU1UOh0;OU_5prbD3|1@ z0FYB~FHNyTU++O(aJmQ+Xw(YDS%7Pt|6;nOpUYdZPw;FyP_QrB7ac!0xUvfz@(sLQ z+QV*}zGa6sOqu(jK7>OOVSn1~{~ZCc6kFK=U+&}!(K(I~x!l~!#ugCH$;|M0>@kX- zrfAIs8xn=ui-`ZS(j{K0#fBPw_b`6w`SCA^i?5p>Rj77VGNDZx*) zGBSx4Pq3mCSIykgnxr7-A~n=aA1F!??y#NA!7TgsfR{2A76DH+Jit-3JnA`^WeC7a zV%z3MOXeAmDDjsu5gHK~m^(n^-~VS&O0-GUVQ6(Wy?%?|tpw*&%eGhOSsesAvlVM# zDah$&+H0QlWy=2PwFV!Q)6KnNlRK z`82ab-Ah`k38vxq<8E%WlLy@n2TeY+(#=6sX@%-W(}s*)R*Y-V9*>OFem1&m#!SVVjUlQ`=s`{zJ zc(dTNfMLf#GqQz(quQZYY-z;CF2xJ3UW|c8{dyA6@Nm z1IsuK-M$(l#jtB4YI75G{l`AYcu|B+PKC^}sQR9(?TpYi?5j*95|Bs-S{c-N50wbU z9l0A0hQRCji}sNp;huZh5*-^sh}Uw=nE;xQHBrIonBY_h&=&>cIW43+R^vdHN)caL-a`sB*h^V-`0CT>Nw7l<2>#$~m&yXiB-&{`&_340oL2nm>v3h;{Q{L|3M+8q@r4%X&(|IwYU;>U|TSu(tW7H4l1 zoKn~qE(l>~W^$vC%^G9q^@MeRm>R;OAoJNrkCbR-2*JEZ8dOn zy6Yr+C$+(WANh$R2=qUVQ%BP-N%;O5bACyMLNh9dqzvd~@z?P(i!gmyJDepdO{4s_ z@ErLwVi2y&IBUeVHYyCMs&S3Q;d0{own$svff0ub>qSAyh}?gFI4gD-cT|v>0v0|x zWw4&o9UnGC-ptU#r+?&4aDe_`2w(Z*dAsf7W(^Z1du5d-Itt_s&jzQBBlnlVuE{K* zyiFJivt%mp1CP&cX|Rs&ArActm!7HeO1LUzre}21AVF}n)cx$UIXsm?VzzaVPwwEk zoMt%fr)TD;C)!vMzk<8u_R)$ zi$JtP}Bq7pEskUII)RkZ(_QQLQHKC)bqbWrr=?^c-n@W zj-sx3DJ?j5j#G0^P`Ge;9&PkdU}2r!B+&~^V%5TUrptIcn1yhi**vsZVz6`_A91>& z$DWd@fE7WjqpqEkXv_GU*Z;O#ubVx*cM4mn9Hyhrtzr!_hJH%RI6)96w=`@2$d!Rr z`)J))i6Z1eU9K5zK6vk^COP-vHfBTB%)SobO1S&589!327%AHBhXz!fBf@JDBMaA& zs*%x!Nr;Xv`}DyYNZ?waG;6a1;hFu_5d1%XLU>;Q%05G~$I~GyM2(|7kS(NP0j1f7 z#X8~}Q_r)5vyM2SyWpUqhDi^1q_z1DRSP(&WPs&?(kcMzmC7QG+LT>wS`8W;kI63M zdr-*Sx~(2^+B{(!jz%!sENLCgXt(IH-<1Y$C&Xr&@e^rVa!~fgAIoynv%q=qLzv8x zRf$~`l<<1)nLUA-uu3~-VDvu6b|!IsQ*L{o3wL8iAb)_S*0v7kk1o;Cw+jZiJC5NZ zzuDtojXqF^FtGwCx6d9Fq5&^w-oAHUM?PS=@-!HhoH5>JM+?uUH*3H#0I$GCTN#}$ zoFZ?fdro&q+5FM=_&qzv+&hzgUD`jcB@Z{3BLO23Z6T%hv^HCFI~{y8-XeY6)?Z0- zA5BNy8+~zd){l6QN3-6O`5rqxPUH@!Jbdo zX>2JflEla4<J!hW45yj_ocbN8N&CmYPDEvcO`A0{IKXiQFB4_jF4?ZP(^Mui*yh4~}$-@7| z*f|Dg7PNmlwrykLiEU3Nwr$(CZQHi(WMZ37oJ_1I*?D*CUvKSx+OE2*y3U95?R59) zzWR4>E<^ImZjtWK|2%8t z`@18W(yed4^`a(m6p~4zZg`N@Y5mR%u)PgKNfz0z&pHXdg!B(I9@V=+?!rHWe9C{m z$`#V6R54%(i|1m5=BXg?@Nw0@@vOs&Q)5D0rZR=#G1#~cK)?pkU!9pt-|p1Lo!!Of z{FFTe$w3#4|B+vc&T_6;cI(P|ZeA%}CApi=to5@BG4UcV6(J*)Z(`wqkpH%GA}&+V zzuQ)^cmK?guFLV$W_xbGxlD$!;^l_s;Y%{8=bHNlL`jSBM@G&u620D(&It36QcW5Q zc#xwE{i=Rza?uO7;9mK9C(kCib8OrRP=}V@-~BJp$Z<*0mv@ci#>sK1vFK&`L@>R+ zaL808lzwSi6OB&Q?I86>!KPj5>Ha4`w&jE70Da`H>IR>4u5SCw^VMPyF1*dD%UGNO zA>94=Uax+e>8{_tee?B&0Ug8*Nc^9`0yNmBL|z&YklKIsUrZCNcI5v8f&Wp$|KG6Z zKSI;N(8*N#Kj^2rrI(?T$^W35m>J%DOYz^Md)@jm4Czvg&ix@&$4boU8QP~=+U)H~ zj1poCHqF`Er}s3Gc&LQ}&NN-~VlxaW+V1H|MM^1&&u_l|fciCJz}y;lJm9FKvwL%0 z;!fCPf5|_ftu8IEt*$UJFflPQas#P3_Y~qGH%$$zjH*&ijU$apI_&fu;vvPi>~EXf z2R%d5)${tMM);;yZriS}Vg2j^$WjLIAJd&n5SJm*!NqgkYAlgS=;rp^)M(Djo#W<) z9tn`k23{4nc&_V{L?u zfg<_byWVH)Ue8=OJwnEI<)GnVp))@S-zO(5ES@q!4toF^E*ee5jYk|E6Cr@-8li-S zj_#dz=*&h-nWTh)Ig0DX!bRk6GcnkDd{sxso8}MeM>M-ozI^xRm+o|q?2*=TeeDC+O#ECK`>h<&F5Ld>H^c}JlaKT6B6%1 zZDxf!^1cOOHx&K}_fZBH7mO;J8w+)I)?@+KT`xzJ2wUWGW3|VIF?z)(oM`N1cWQES z?hnIscSd&lN=mA__XW|H-)@~ZzzQx3&gnrLpgB-Fbohsi)o)>V8Typ6G+jn!T82@u z!{x-zzf$T)IM(iluu*wj^A++AMra(46LeKRaXvRP)WCfXbP z0?%$`jjz_e!}~I>p|1}(Y^L8xz`E&;Hc4DUnC*0v9j!8cByGJeblptFMk;x z$7jDp4){Rc64-P1eJ%Ls4L`V@MMY%#Bj~aH*3sK6y1cuwZY;HA1pVN=+ z)gZ#b$$jPGezUq*8F_pSuS2e`-|KsSNaK8XU&-do-|flP&GZ5KonBvsXS(mb3;OBk zy}q7&jE~Oc1I)4e?R`EUpSBMD_juC#zh3XH)!v<5PS)mHSDr8@^H*YT{a3&1z7uO~ zzh2y(#ozZ%{l9_bl&Vg0F_BVHkz?fq@=>GEBV+qJ+r5(kt2`JXP+#D`1HR9{hrvin z2lP|$q<@^vh|%JNM~7nS>g2>p;#M}^TgF9+Z{s^2#qRp_IJaeaE34`!7LI;`P=82$ zn~JFTXL>)#zWjV&jc4$kWglLP%ru9#r@fPW;l;!yzOZM$=j#8Cp{=ocUG?yFaNe$; zeC-O*E?Kp4o%5#tV8qaeP^YE(fZ|XFyiZ?FO6mbG({wbs=ihG=C9;oeJuMcu*5W))l$$HhO5JPXq7my+n&9{7 z_N}`9y*^^H-#GsVnCVX4L%c!otAE{3&Fg*v$STXeiiEEDCa8{8Ugy&p<$;UuMS?=d zUv~a*a|+l^IduyqC%pEL;-r2a)C6AmuTs$E9cXTpc@edeGu;z%O4a?4`AhEaI<9&c zeHqiVS>%&-n4aa+4VWCqU?9bx)%d_H6z>DfevAr)I2ErZ>|6-LZ<CkM=|n<#iNF z4}7a$pD|A5u5)fhYVJ4{KD=UaZnz-kjz+!Y*v{lD0_kf(920x1ky2Ic7EwcFs2sBSnRf??u_mucvpZjxG=IMJh z)|N!kohJI_udl~4`GP4{$>g7o4)A}hF#R6aIpi$k-bli>{i+|f7^o}1{w-qMV>)<> z)I^DH&$#U9{m`KPjOs+MZq8(8qcFQ|IyoM+Ch=C-#^Cl7w6B$D1cmjDN>Bx5X|qEY z+XkjXS5l=cn_xr+wP=tW=OWV_WpRCFB<&*Mdcm|Jo2UHG#L7Fwmyp_sy<)R&Tx3b$0pbJ(S2U z=PM47CNnx4B?-xNtN(~K8Jte);;hr|gESv`&`@6K>HgbgLk5>w8!0@)8mA~d+P?*Z~Sr}AlP-MS+m!Pq8^q?cU2t9L`Qei=RT_A4?Y z{7;d~LQMi;%`a%-8bb0Hki1AyMmSrC<);b)n*QyB&Q!W&!K#h4${w)%9cRM}2%^5j zXJ_Z=>>YG{pCKHh)~fb&)cw%*vA|AMa}Z=8qDw&9}7WNnw=31bk}y_4(A(q zliNLll+?|@OFI!OoBU5mX%q)8Swy+-wrha(TZMG`+4DAiDLx#sj7xMoFRr_~eRzYV z^#4V3yf{XrSJac#O(pcI9#C)os!b{WrSCe6;?g!Em(TU2k$`;*Nj3=Z!n}Pw?KSt~ zbhSRZIt5on!grn+(nKNN4OgXl8a|Zl-1JA!XgtvUX>Y$?X8c0x)7kjFEoYLx;Q_kcmBjEG*?U}L%|Il`D z6yr+=@R>qa#4pEKNWpqQIEr}yRCtE$(sYI4GHCz;<;as%Xa`GA3-uLT&Nx>UeG2b`_qYUddQn+s|sKaV;R zX{4x}YhJ%VBlad(+vz$GI}yiLIU=O5c^GE=VFb?81?`+06YzF$QUEp`OP=EeDQ-8M zqB$B>0CL0*l?eUUjq>%2ytgwsS@FCCBl6ku3fxGhV%D5nbHd8I=5uA(bwjrKH$BZm ziz*)hIC6vu()68?Bv&iAeF7SH*U;pgzurhwZPD}+eW+`FnLmNSldIN~Lj+Hy8YkiP zU45pU2z-i(DA!)8*=lr%E&vRBeiz+RMM!~~H$p^w-@W=;SDSLoGJKpX?DcwP?d4OA zsrcQm&Wt4G?ic7+)&Cx~A z>GOuYU6+NOvVM2a2x8CYoOfUfpfiA7oORHH1`r4f3!#*N93Mn8{}R6jTM!^HiG9hl zes$6NCm?DA^A2$cgP9~5YH$%!jrpA9|2DhVIiYSvBprU~Yzm5K6B%uV!<9nyS))EX z6y}a#f{+I3R5!?n!x85SRbrHp^f`ch@foIWNed{0{wb{txPc*6QiUZc$nh`qF?`1v zqZf{EqN5w3p`&NHOhDJ$k+{yUteJ+_R8QEDY^hDdIH;n;QKupsL`g%*X_7EJ0^R8| z%`Eo-qGexQQgX+?u~C=kVI)UAjdtNIickPf;|zPm0}u#v(x(zXvQ-M-F1-@PQ*(Q?QEs`FWU-5@3xlk;*PsGI_)#kiuvbzkZtxrbf zpVen2;$xcS>&T)Fj1-}mX5=xPI?sfz481gHK#+qIWHR6@NAm!=f+Y?{1$o98Dqvic zl~Pbok_9hti)xBeJhk+37Q;x&HK~i=8$~C=LmNmv?`CW>0E0v*r$Io!?I#4|)ZIvJ z^I128gwk!3BKKOy7zC+;9OBfqj8fNh{vsuAU4}oVzk`5zRH92Tna;>O{(`LeJT(E& zMiik33kC+WL&1y+mRvjW&sETR%jn3Du0S zl43&eO}*a+_^4XjN_fdE7HL8NqQF@1V2D#DSOgeI+`e&%$auR?2PS9> zxX?BwF7_OWg&6L6giQzv0TDF*n78mO;u?g7Ad8qP$ko6wqdc$BjJuiauvU3vs>r`1 zH7s3o#_OT!vcqc3ka_yToTp!3r%qqqGMTNYt2w0~gO*}+xUzrh5Nn(h!JM8Sv%~+8 zlcKs&`|ZVm48RpxfwfZIfj^s3J(CcX{esSct;m3sS|0OjSS6Cv&8~t> zDW3QhPa>Xi&c7d#n=alGk5R)zcvsS0>SjJ2am)ig$R=8H81)(CVeSq%@?35< zi4Y4&8(#~-4_4y)jHyka)NjzfV~0)?PFG`~`}-52zl{Kd9}5T`+0jCGy67si-Fo(` zAuW7>g$PQ7CXC%q)>6Sfb|Lk5<;QY8g}pS6;> zTPYF|&+uFT0uAOyWm#2SH^(8<*7&GN+N}H@l@}VPjrI(SR8$s$pt5;~q*zD4nZTK4 zWzu05uiH`)-0ZE1M=wor4m3q)4Mc3L4QtFARknP&LWk%+ti&`I52)yF?IoNki1s0PBTCc`ltr8 zIy;$yU64-YTtfC@O}sq_`K6TD?^lt8j_`BID&&{2tTHv;oYMNl$yhpzEH1`;66k~| z41BTZvS);>@Je1dh_Do|khm_DP^5aI%(y}No0Jz}0ZE0DYwA|_5o!{ccTWrr+Og4( zhI)5JD|iJC!qGelvA-Za6~*{W<#E-f%Ys5mow`d+)mxpKVwuh^V!k*|fh3}znRALs zZ?bk)I=k;eP(vCar^IzV;-JCS zHucK}gQW_PekX?p81n7Zb-*CkK-w)e3QpwoQm-?RT>&gRDdDbU=mIc{up_p18Qdpg zT6zv85zN4^EH!~UIEQ63XLF=u){ne7Hk>z8Nfn+{J5ras;4vTzq2oH3MUwtQ41Ge_ ze=``JT=?xGWMbS9HxF*`9?U})1|;{;3?kzL;PETqST_AaLQBc?(c3Zi2dV}gzJI8I zDsG074l|*~*~(4Z5PP`U5p^aH3GfB&&&yDZ0Aj>pX4yIN9MtoW=A6YpGwqB*FfsS= zy$1rvlXBBu*Xxe%P~4WLkOXH#!7vWkpais}1j^?_Sp(yNdWD##AS`#xsB58?Q6sImM|yNjLzi*^ zBL}hHa85GADPQ}WZY465iuuT&}x1hXpXo_&v zVr=h^?|Et|ZWv5!n|?%?O|xFo5xEG9gARzT;9qC~=tV!58LBs_t!`OmFDjw&hU_=# zh5o6mX<^-!gHrX7K>sY64@~V-2DfLYxJ!Zg!Y)%cfBrFKXtZb*O|@_3j@78COsWr5 zVJZuOC-MQB(ojR1c+I6Kth;q!5c_xf4WD1hue*oSenwFxxIoy?o)$+)kW`!tBvyOD zM98n-blIG^0%oRxuoDq$w8(}GWyGl$g~GNCws}o?BAXC)d%GO_5iWM(cOcCI+T-9xN9MBk{?9Jd2iN>1e<7jevJ>>=F_n zuDNBIx2~Z;vG?aWE?gkjG30oSy}Fh?@!lG9uqwl^W8Rlnn8V78w>;WwR1=U?2o_37 zHKS2mED{;EmzdM~Bk*kFNE_nE`JAAW$c&?GEzVyb_aM+Oz$Ybci4K|wjZZH4rK{^oh++26O$h)%`~hnQ{+T$YL$UpKF-He8F@LMs8(i} z5M_Qj)L_?j5(%V;q~LnXld7W{*jA4=7ykr@NMBo=$jhUY%Jk=(mO- zO~~pR>qV(MQC7~_Mx=!lbj}f>kdJDg#3LQ}8p{V##kA#ZL4)NhBOAzbR}b?>JukyQ zM<|m+PL5mlP^d~le#+9a>Z#!^WhuCHSBqIeBA0APP&);%=Xajx(0lJn!jFAxBZDeh z{Xcgpb)5CPy-l77yNQkOOhm`(pV3Ne82Ia^$P_IX*27ok2c-#ZVW@VuMO<`Ys5(? z{e52^FDP&jVn4a-*#PVACxJc{k8S1*p)Q6;W^?-@Eoq`-&Sy3-mg(4UBBkkVE>Ft! zb^Y(sh^5ug&PUQVuBnI59BR}{%{Rv%_6u9l7jo1!{;m7hH4#D3KRVq=`hhM^16^y| z`a6H8ul-HK2&TW(?RmEzR=P>}A5Yue3%9x#yOno0hMDJv!NFjecoj0*SPybBsOul8 zPAZv^W%8m5&x7Yih6H3a3Ha-aJm~)X{;r`|So&>dE>u%Bd4nusUK4Bt0dqq(=*lX+ zlluFVeVBn|>sm&)1&&Upm(7q?xlz_JDIaB69J5ck7qAd6Ur!t;f%YxUs&inq$QUMX zzpz|_f)Gm)D#OYt>u<{Q-c; zucSgy)A!VqS*vNgoNk;P?tJqV)jiuw*gb|M2gq6xZK$>%w}D zyQ#y{v`#9<`U5N7PxLre!^oWDby?&Rr96wiHnyrcxMeGXN{c-PthAgyhC54t4h~BazNl#iRpEy&z=D7IiE2cSH#F%nZ&(Cx)`}XBp93mLmPpT$hWp!U zw2h00TiF31y(b439URncX>2bwzfg;<{0P6#!u1%!-FQ_?jlC z#iev+o`5u%+dm7=Ge~gTk-Dv;qB zrjkU9VPs#R*4ZAGz}Yq|qThqtnb3;?@1SE`TG~FgKk1*?9=<7j~~Yph-u2l=evd8%TTR6nmdE7o5(BaAAeoL_J#_a-3% zvhps~PEDMYz>DVN5fg6`RW*jP@vHPc8`$EIT5^O`W&b62Dg?Dl`c%0fRj=FO|Nu_4@m!8t+QPS$(3H zB)QPHfCuSOlp0G2LLU}1%e%CLKo!p-7cUIeRWKlNi>VerT_7>>`SKNweZw|^@24@x z%ffg&{~)^e*(ETX-b&09?#Y1Zh3Y`ijsW#4;pyZI!_^B(Vo73L5bTh^pWI^ z4+hup$7k)mWaNt!6M$z|<|t@EA+_L5j1C?XHH?r7`kkJrKUj9WBB!r((}&Y7R7_Dl zJN`E8YWbJ)voLC1_hNH>%q>&*&mD?n+C@RQPA$y_{Rb~mlXi;0aT`b64ph=jTuVKU z)3q}_@@lZOfFVXHKOI_$!RN19nC_&n5%ZDg`Ufdeot@}Dbf%5lOosf@{_n^O#g#&f z%jWR)>bNZRwzx&XPh8WLphrReT1OG4V{MaZgEp~imkyd4&i2=e#*0`L1y{zN&YVuw zIhXX}Fk%T~S~wcxwjrOkDWUz5ET{0v1f(4pH?F__;$F8PaWP``yzbV{?-QtUE@>^c zwBwIdRP7R$J+V*hjQe)W5b<*%{xBBlqrq*TGu_o{+FS4l^&4T%aZS}O%h6r!JP^da z7E8P3Z-s6~YmZVPmEc^mzYf-yXB+gPphcU4yxlV&L8(>x*hXy*){(M|V`cN??y<9y|4pHB6K<)jCAesqoekgNe-g^`O=Zj@{Ka{g&8NR|+r z@3lpb$(qYk;raI*HEYaJti%nOPOg-4@6yy?Z}{+~uT}w)%rRafp|UMj>>a`l^Xl}? z9vk>A=?!er{D7)`_TlrsB#TR_=19UfCyxqCl-^$q;X9)}Jr9FhI8=fFYV8p(#h%Y> z$p?+M6F&TL6%R5k7C*8gSH`z~pV?z3_y21R#1oA8zD}i|D1&j4vsdc$Ud~$?eE_JS ztD(3B#}IE&+gG@a42gv1D8nQ3o}&EalS4?%{&naPtr6Ioqh6eYLjVY@dR8QZZl2;V z1w+5X1Oo9)7P9{+2LfX<5s`Qo@Up1+)wV%VLwWBDA!?wLW zO7`TwBx)v!aH!}!h}n3CnmFj>DE=;j<-YOhq;KM)9E#eP>1x>ZUa0)lq#;iiS2J?yEGt$txqMxyq8EId8dczrg$mcBN4B+qM;R5RXA5KmaYp0octUGiE8|^FRd(qB(qpn^q5yNcF zs7%SAcwdwxL1t?0tJd!KplGdw|*8VY8Cxj@W7u(yh9co>2YQ`xG}KBke?D;U#R@+h+`BGxw~X5)(m+Xi&hfROq2O`7?(8nF z;h?l>eb(Rl-OYQQ<<@)d$c7JihyA;R#aV*nf26`Q9 zQ25*U-~7#11^zyvPtV^HO$e&9(DZB2$!0+uhd^_~Xhp8s8-#k^ll(TbAsR1sEB9mm zGGSRxn2F8|+D{L50AhZ4kkoQ@z~857(TD~5%!mG(XPO;JK<0t7KM!b)Ep>DlSF!a) zwrz$^r5XbPH>=-6hDys8^!)p0MPSPlZp0WmTUDO_w#-}`v6N|ei6)|i1N>vCrUP|E zQ`CRZ=`Phk4lnP6tq6{{B3okrT}CH($#ZDnxkLTVjtLF=o^l^wqlBw%gJ?*1Uf1h>#7bekT4?3MJ`)>{1WG?Mo zjSSZtYIFT;;a?W(Z(`tURKav$QeF&v3`*&W5lt9jEN0c+*uz98%u5+z>Sb1)RbFgl z8M0o<_?oSR=3?{+?oU6vjKEKeVs*^j^)t*$pq!)3pB%(B7p?U-mvU-S14UI6yUd4U zBn_VHQdhA@ge;5Ryus96Kj$BkYjVWj7LU5uMGi~B@Y@dHrMR3}rz%6r7&M?p}_#Z{dG5!cL%A@X}v2N|yx*?Fz{2UBj(?5U1RFRM>YDX5--O$EJMxx+=`Y z$oc`7&KQ|U>A?jDvxv-7uNt)(6V&8u#PFIR(aUdcOz`^xbA2DSz&)wrhvE?DNL26Q zh-Xmn%_3-=g!wShlt6`+Mv~#c5R5uWfNT6VI7+)iUHLr4BukC#2$dQbiKyFj&U6pg z*NRy2)7&8to)1Y7IK}VPtQ@4~L5b`PYZ zU&hq6pPNRJIbsAV{7kK`(l~EdxrW#;PG=^n_xd}C27CMk$+pilp$)}liBbQ!Ebl1a zyN`E%oN4+S!r2nXr_2xkvKnTw(yyO!QXfe8I$xt_b`EWN5TP%H$XIUo4Hg&>m3MFr zAj<@w5U}6X)PU$__zXgoW3I<7 z->ERxu_z6_!g>Y^{JZqpIGrFxu=iF9gsJ%bdPMZSH6*kBDM!=4@W;x#h=84%bZd@_EW}P6F48LgQh_a&7X7 z(Q~(Yq}(wF{>&uMdn_g2;wZNfVRUy_5}i|w@%q}U&b-u664wMn7Vd#hl=+^@G3WO% zt5zCl>srBAk_Ie_JCZcA78?$dx(ZN{+>uS(V_Alt9OHEGk7BZ6xu6HW7By_W3b6(&{l zN&myYbGkH6K01?IWKAVhW{un2l4D7>cvs_eAnxRHwhx2-b2qG#ye_ujCjNB*=7%4; z@HTPcv_htr7X6%}%FSTQf@;|L7tkeiIb>ZJq@6Gh0~}R`pIYaF3u{?SM=+l3Fx`K75xR}(6#${J@rg?c@Z;xiR zK8$;)d`<=!)5Omv8PBFEX|0`2p@j)wq{T;M*jvW~>}bN$lHPTlXiR}kX0);)clvUTn9ba^f=hu< z>*ftftxuN`h+SsVJn}+5a%i|3r!Z z55BDK$)~dOE%>slc@u*>hGIOeVRU7@cez=lfSweER~Xi&h*1jYWK9dPk}CD3m)@jG zExFdBZIM;-Ec&gOl9%Nsf59u*|1s{l^Dxd0XzmfbodXaGn775dJJC{r2!hUAuq7ua z3;KV3zCT@-%jdHRu?h$X@bJJ%1e)O>AR;0nBO@aq@OeMiw6|loSQGJifCxFs%OitW zw%hNmg3Ryk`W=lS%EDUM+S=OL)z#PATUqgVJz9v1kM{X~;Nj!DUvH`^D?2}5Z3IIj zV_{;RoSxckwaL<^rlq8SB&6i#_PSkf&dmJ&i6G$n-s$o8u%x8q@zDj1#`pSPq?z35 z-!^6(>wZ6==g0H>Tz+zFEI%?4!natto}8f9Bgff-16O8oaXue^^s1j$x9!$OOAFiV z50G|tdbKh$0(zYe2PdWE6c?2xI4pXN{o@uy@g-;|iSRH9cBO*){Eg*h?>mE!p-^Z= zms&Gy82D_K&#?O2l+xLS175`gsl9A{?6(be^9F3)#<^ZjZp78H$!;fDow zc=F}tC9m}2cE{hVrSf`Zfdo5iwgD~HP4ZL@>o}`EzuYD-rR3b&%8Cpzc2UuMs_?Ag zA-B?UPPtz)ZoUi)C8e@z7GYH3WuMCsR&1QBRsx8fU06T@oOd?1%`a7S4x%xm+7*JQ z`}jk1Ln8E3&0x#!1E0^)!2CChuj+3{L_vUxV! zD&DMcT^aZF*@ByFsGssu@bPhRvf!3~oIDZGOXWeic&~V&z`|g^Zt@?m6K7>-!4~T* zRBd+e);zW;{a_ha*4kQ9qWMr@w0BlgrkMOm<9QDN-*eQL^#vZ!54@f&XVT07mkIc* zXh~_|Jmuh|IWH(9drv-1He*X*`>n-$!yD?j_#;wG z>%;XTDe$;3u&_n(?rBLr`de!MTX6ha|Er&B0HcXynN5V$ep)h<&^t{A7~49F5VWXF_3_U*K&|-#Pwc(qoP>f{2q!oHm{* zss6QFwaujPdSE4|{+9om^$J=$hf^F`tnG)MtHV&i2JOp|mUnb5S-iwkzEn!_)5D*c zUMIuH1D$BJb0+r}u_U&$<)#lmdwx60>>b-(B#s#578@NG=6%b9CqA$RPdwk+6XSQE zX5KyO5AD72`G5q44Yub=T+1g={e08Tm#^Ql@v(dTHnKqX`t}=P7rY1x zrsMqppGhrGkEQ8ROq>~ob)qe;BMA`N9eF6JsqHYl%EtGQ?Mx~Nl++>W25Dta@UXiW z$B6eW7$NQRsLFogKKh8fvvM{@?g~rFi}>7YQW7*}Vc0^i3cSW({jUXKqy^2`bt`0_ z9!I5}Sn?PB_q-t~9AN_T%qlO#wBq3VV>7{dH>A@^d=d`*8UD}?qonD8@Id1$7#l(* z7G0c>0<-U(>L|yuT0SAEpsJ$fiVz#5QxVA)v__75Rh(fO zmjN(}VikG|Iq>{FKU>#r-?Op}tKUHk8x!`oU}aMU0zXti3nfzDxi*wC!dpWU3yO);oJBKOQzW=9 zG@n6@yHGD`h1Gq#Bxw0cvIZCwB-gV$qUxwm2* zLu!fNEd-1_(3J!rx?$wb-k_NjA%5D25#-b8Q3|%k?t}q^rb$w~1bsUpx%+4+m!QsX zFZ7f_@Y8La=45AMsIe0`7y%K*83=@Dqdi zxm>BtrZJ2M3=jlwDMMO)Z^#eS(3%EBh6G}n)+DzI^iS@_T1A?4zjN&ieFmn$(W1jR z?k`0$rV^7ch>f*yN4O;jK_B02%gHsw-!+M)bQpz!6aTy=6v+VyYwR~ctx`@V0-Fn% zg$Z`qzxXS^Bi_*7JdfrPHwvN+<^+i4oKu8;vmG0P6uhVSl5oFKuskk3NB5Uf_Q%z@ zZ}qRgmTW`X)Nol`^q(I;`#-dMb_QSQyPAXe@rd)*6JyPRursZSe$Wph77XAoe(g}D zGeY&_>$HDaw|WRikQ#9nI+ntp-P!XvwqC*dMU@5B8aYO(^Vf~?fa6XPC%dnJH)UuT zR1y3f!+7P0uh~(-a!G?P!M{2V6#}&(0VziGYG99keYQoPKj(#ZTuH0ny-8JhL!Ea? zCH)u7dPxBXDic_UfnYAV&ub&zrnpc|aW&FO0j~ybNpw&&{ElR^+;$9;#s)xZ(-SP5 z?Rb#J`9US6`D{BJ=QR0of!AdEm$i)yK#Ix)j}DeU z%&5Kg4jzRwV-sF4)i!IQd?M3a>>zQ@8~Lka-Jyr!&L;mdo(|U$pN!6)nkYW6a`Mwb z3h?i?MASC!u}}86MdcOM3RhX1IB430f#@Pb&){!YmMRb(z_qIYcX;;S&J`S|(|q#i zkZ8OSJ_W~l`=1Ia1s|v3MieQ^-{O%sn?iJ-mGk^i z&%1FR$QVkQ@@|ol8D}2*(Y5dFJ|svLI<9r|$JmQ2V9namHlm+|eG(jpPL_n&dn5jQ zJIb&;**AzGp-qxjIx|c>7su9ImXD4>@G*vfwBqjgcTH^ONSK{|Z182n69NL>K4Ba; zBz$5E+m?7jkLf+kx`(;)MGfUhXXl)JKJ#DLEY_xwSht{1x$T!bfv*e>4>)l*Tt(a? zqHR%`&N!={&qd6nX%`Xd{GjgJCJ$p*o@2&&OHw(6zDBgrW&64fa{a&0A@1#iK~Mc^ zyPBEKtS>!^LlNUe00F3hIS85idR}w`GH1y?--s_6)?5z=-ku^G^V6-4+fc#r0Dk_|$6?RAPggb& z&CvAijGM&UZ$hseu}9*M28>Kr4~H7h`DNkL&$SlFrQ_H0Ch?ak8w z74X-MW1kT>yWZ(2Do^tC>UYi!*~H$M(gGSWQN65!t0kuW{vW1yr(~X6^;<7}^n<#N zrIf3)B5$50DooJvHH3z#*$$dZvp5l%iC|p2d-BcI?^kBkfEwE7i7jiN{FYVU@8Olx zce1PZczfX#QwS5W8vGxOa7%cKj0h}(1sgWwwn#n4y#QX#`=j}dhprc_C-KzYt<$0u zh($@evF%YsWcJ5{x4{z?_K}kzGg|Mqf$so;8B0CiuSU+G!KKbS9pG%gbpQi)+tC;B zN1iQh$eN(EuD3KGh3G1T8WV@Aqmoq8k;_M5JhFLLxpA|aJ7+|^PLtH#+G)<8d;=E6 zS>Q4%gVZBSt-qqcj`f@v^C*FuZfz00SDECzwHDTGUCmIxjqJs!o{I|dYIA_see!9D zu)CPqj`N_@mu?%$R->~;zuYkRy7Z{d#YWY+jrAeh)+p}Zu1|ToE8nl24;stG@LvE? zyN7%FcA(H{E-)zqgX`>`o?-esD+e6Y%TdIEtTWX9!qyWhK(5?$U@BA=MHmR^8HYs z+-eD5mw)KTHPz3iK}S6X4|><0ErH8P2)Do9HZHZ+<)zewLYr3M{-U`WKJl(A)dDd# z-Wy__6Avbiy)k`bTJ|AGJ*MO#(DvTX(`5xURD_}+;pSU?ee849^&w>8SuY{IFJ_H{ zo3oACaYJ`os0~Mskyu!Er$}3YKPfC0=CLQ_kaF8Y+I^mKNdvx%g-(62#X9~FyjUp! zQ?ppM#0)PhGpT;64skU7`#Le5_b^DuWAxa8TUt`E$<(N?FwLV?l=>Af_=&5&knG2GTN|?bBJ#hpt$`m%$u{IqQc=}r@y=T7ruxAGuTe>|$A7Y^V-W`M z(bcO#RYS^mVb6}xjvXA+nb1Lfm+Y;e#K}S;p+gX80(BbL$DvzC6Jkx-#bCUuidz~w z2z|SISljRFj;_Qp`#an=N^!La&Bs1MwV$G809~Q|F<`^(BC^-_suWdx3fp5$aX7+j zbwe3N4$sK=xN=IS2$kpq#)3@(ZTQMWI$4X77fby+9r^)dhDp2>{zaA1a@CK?_=|ik z?y3$!eA;Q<`(e|Z@ygv+f?)RvvyHtIZ@f#hbbZdFb+L!z;lp^XE%XnA=8ZnxbN>|t z6Kzih#77!wLS4xAVopprz&%W~SDx>MlkjJA=x;}8TX8M~ksPM3+eNY=gA8T}014G7$$^Bkk_$=T+hCS#ZJqP3)f zTXagZUmkv1Ax$7(`hoILxCFN_u3*Bh3Hk%SIs5*Ax z?o|{JR6#rKR~d1_+`fVcG*YT!8)|2!F+Db6q~%1$>vx!aGHv$SeGql(o^<7`c0{^1 zliiNiDjhnXwKG?_2hX?qTW)`}M6NEqc**HnQ&6rZ*EKw+k$U5AUF%qT%F64gA9)L& zZ4hT+vD8oBFm`tp2sYolK7MctExEcG|27g8q!V0^)mC3TG|M0Vn}crjaTh(i${cUu z{t`P_u*~05DlPe*N}NtQ-4s&A=RtMvD#$1r_!g<@syDVrVrTRE+0ajqWac#svg*Sm zhUjbm$xBN&RF0yqk2Gn|QxQ`R zEK}un?;LVR<5^t$K2LbHxrzl|(I2)2H)QVVbY*`Bd7L01Dmb z=8g&fw3*@IksuA9+vz+`pDsb%=w7mroW7W5vnPQb;(z zF}v>H=i1OVtoi!QMhy)van(9XL3=k)7Hve!j%9JKmCy`xW)Mwzk*W87{D=((=4M1c z4(_npKFN)lA}+3}-v7neIYbGggIl(2+qP}nw)vNB+qP}nwr$(CtNQk!S5MyH4YD%N z$|U*rK8F$rsI`1vBDY_CtDpq9wyDKG#~N1NyW;Uel-+g_|F-0XnvV3n%OQlpm;@Zb zehM`Q6?n0^syI1D;TKt5UDXLy>^1ySB2AG8-fbArvjB;9kP`a1o~}<>9qvEYxV8L( z{sdRCjN5yXs~ZRdyuBJS;HN~@gPFUNxI`q`6CR3480aI;1+X~hytZW{Xn zB$5t2YNiS0_et9m7eG*xG;F6sC8&B6v_+yBXZ1*!Y5MhEXDb4=ya#9YIFOBRLN6Mo zvdy()pc?LcAUYcC;Uy0}e_j7K{JkA_V^4 z`!ODQP-|QX&pM17gX(ZP)DCL`?Nv|n#%Cp<45Ezspv`4CHt6=6PFq*JT^OE&(g-Gm zTsY6OZ~F|cVp9WX`0XKbw%%3SVb&7xu>Nh>hOKc1H+J~61FXK%B$<@sSQm_Uq+l-y zp3~n~KyqW|ZdqAT#PU&zaV2Z3LrNkS;Q23u&nV9$UC#V3E!>r4o%-t+ zS0{13s(_o{*U*1bQ%Bc7=rc@*xK~|Z=Jp%LxT&QY1m?r>nX!H@fY)K8clSh0z^|5ij9%YNwgWSf9btVOzls|* z#vE|+1cau?Y%g+uDh$#ByHsMWlXg~}fd%rZ$8uzx{?OhKkDi1sG5KpAh}xWUsEYY|c$Cw=~M2&6Y(qi1&+!N$h02(()5hzfhXg((94c@O$|eP!i8B zvv>5pXiOUV9g8{_5`+7g)fI-A8V-=50J+?@W;NS(BX513c5rd`&B}v316H-0`udRI z`1TDcUfQ)}J@=-VP5XN_^;JAZO(?DuI1=hS-My(FbA9mGsL3TX67n@E)B;s1GMxE+ zDg_&sDj(pqsj&5Hma5fDMt|J>irpG}DhR5kd$~i}46lcZWi=I;6r%~R4QbzBpv>9V zKs}n6s!i)fpqYYz9TN#m0^o{5mok8y(&bcx8r+%jBi=@MI$>eHSQv^vDUAw#xAHHbZ)2TD=7n)-p+(-Imy42%Jtqmu?L(aEn ztA5~{tA)4T6fs{ybnXi@X2+3~osrz&%fK@nHfaE~DooI-=EVBacXtc8_zO-TRVRRR z&%HLu)2)F$N^N1sW1e<_>tlua2Ln^-V{q8<>PV@;$nJ_Eax|h zG;AY=E)^*#V`a~XIyQdGo)e8N3ru>`>JeH2-()W1J~W7#QS8F{l5*44ax<~r88#KQo1 ziHl|jDVPW^=g9HW;Wt`QH-R)XKsTkH0s>zyRj!zkIY9pid1>g(l>#fMK~jOPZD+zi2eL z4g)QLusU0Dr)OsYyw@Rm(e5I_P{1E>Y^5iU$@|6twn8G1m>4NUG?3b(Xi7AeBe3)3 zV?l7A$E#_AsGDo5fU(>oVNQ{T5MYyz0VH(7S+bWb^6o-5#K>7~<60)+cYSK}HHae;=tWHq1sWSSa=YJvR8CLS7*eXHh|S zPH5V;FI@hDT5QQ$awvL|ZB^=_Zakl<6z#I6Ye#S&AvU82s@mwXnK?`;72zYIcJ+XC zI^83S_61e<1fyQ`->6c1l(l>_v<(jzZBHV`n>=#K*P8Rm5l&Q}o25nsvk%y`h(-YK zmr0%FnL;{9XsLpa}=u(Oa2$luJYin>fNxv)PZShAk`_ikT z#sk8Q*DFv<6i@T|Ac=DE)G^U7DPiNA^?VwVP~Izs3a1RqB>?<{V(AG}5Ox z7>6vEjGo(+@4np1?T~6@ErLwCn~}nL`xD9}xr9|Mz$jw3O^qvQsyjX^PT3>QCt8m|nYtx%}&07Sw zz5z4vjvW`x-QV=Di7?%E%&tMPc@!8qiTLLkqg(6$+9GM+j57gO1S=p; z0Xn6ODx}zFC3NF!4RA>js<0W*80vzh&DoLeWQdk^6DHOZePLmK}z-msc7jrLvt4 z(zkm(4hGT|rNkI?q$RD`L^q zj8;pI2(f5rFv=>ExgFuqt)6TNWDjY9F5MYL|0kCBc(Ot=4so!19E>#omZnrxptjj0z*!C)Q_5;8@m9eVdlzWl%8^KAh|{lfs7QT_i)Q(Aazu;cV{ox)@Xxj(hvD(Vai>pZDGuLe0$tF~Ds=ZiBg~HrV`j#QBPxO6Qt95ZjK1v)ittPktPjBhRE@L= z5SH~v3tObo*;)flTHFR@I!~{gZz?nJM^(<|cSr_W>c2_ci*ZgFS4!)$CHQu3x5Nqk z?dwCf#XfKo>PM-AHPz+>?v|N+R$ddqc6p9HULKs~Pz(y>LBRmN{msli?Bn&RXK__9 zFmY!?m+^49jn)E|#VG?E=|OcFc|J67r^?6k4SU|wzm!Zf@!e};WkVQ?p@3f2>t16< zZ?uGugv64rkEszWUlC96DI?=Kl_Gr^IbhBVD)~?%La2b$jKO0Ohw~nf#C8(m!&$Aq z4axbKU-REE&-w6Q()PQc7PFK6(SV8*xgx@oTQ#EW{lFS4pwY9QSP&0cG-p%WoUUI~ zb;{tydf1GsmqImb9P>6AYGTZziiAWtDz`Jap_l-HZDHPtO~m=e+1LhT9)G?tu^6aG zXjT$;C3|XJ9X_+stTgY9YomrqjDOWF?cy6Q0{tT zIE~yX+|W^PqcPUN5cR)h>&;6sfhWDc^t|}*e^I_~JAeZL%L8I!f!1BHQS}LmPAjG? zzJgoamL1y&s`@|Lu`*HZO6#EV%Ey1v*3Pl!I|ugZ=mjbBJD2PLlEQh%7TgbnQz-}k&*2T$gggo8K;CLCkt=K!2H@2iklRV{88$< zK7uxCCMnSzb!jnKJV7>#EG#Gcv`88n$GvQ!oHC!R6mJytA!vEbz0?-J3WZUsUqy^M z%yD=Ej(pLK{-jLjv;X|s&jL+;Fp<_P-A+IqReMh(O#8t<-iB5PxL-X3TqeUqg5aDK zaa*Z41&E1|H;M8rwRT7YAjsn9B_Gh7UCWt6;5Ei~Bjw*cWIB8FT4MSqm7#@0Z?D{* z4h}!xSpH@dkIi&>#EW`we|ofoa3D1O#V!mpIR#|m%?U(Y)a)jcSmxoe3?_;_B(oO( z6I|}K>v)wZ`&JBdO4!oMjY#;Es?5Judocw_{eq2VSovbMv1U;ZV(L{)bW((3U)B zIm_IEhw~xPI?$U*^DWOQV1t1?1-|FQBruc!S!Sgp0R#!lp0MZ2Dvb&`CzQ|V$S=td zkaorl%Yn=viI=_%vp`j;Ks${0ZH#=$MKxpKEUCi+)itDvDk1{-nu#xD&&MS$`l9ZR zP#_L~W`*MDsmWcB>9C1Ve8Y5nrFF}IOy-3rI=t{q{Un^v-Y+1&2lf5pc#xG)wR&CN zwDO36tzIos(~%QXkiH6x8=@UKr8Ej@yZMyy?jx|Bg#?6!61lsN5AnrU_9__p*5(mh zT31J}RFi;>ujU+!jhSGo1LW8x2e(arT}Kr#-+m zZtid{tN?5*R?qwR`~(q+ufOEP#6cf<-)VTkU`(1YkVOH|U;VKd_yHJ0>_% zHDEY=zd>Wb$TMHd25z^tm_J-<-(VnV*E);ULQh_Q1Dx4860y#sa!Lq@6WUebw52?- zvvKkSoQY)$*r^^?0!?E$3eW0euHrlAoIX}&;_J2|SB97r zZB!mZw2%sWyf!#yrYkv>@Ia9zta04qKL-lvDD$KaIoe~`d$k)%Z4KWFDt+7X%?L_=%GV059I!>uPeY(cyC5p!*?}74Ltq#9RquuK?{S3# zpT${K>6U53%N7JlN(2)>7K>nwD8!-J|de)(d?e7IQw@ zpXG~PUXi-h)A0F-SS|c7%Ju<9E}mlml%%irj9KnX8SBfZ6d?KPHkId~%%!tmQS`v= z#@|`KhtrcrY4V-gXyp}CL!TmYXf)@_t~ufr?l+tss#Zb*VV96qMHk!^HGnAfWM0&{ za*vgiy`kDr5V|>V| zeTrW4!?(PMD0XW;{HpJ@ek%l)r>{$P+4*9q`uLwrHdkdbyt;Ga{>t616r5B%>- zdXNklT+i+;z@SyDpMrcN+(1i(@7|=GIS|BeKkAkccZ?*kd%mqCNsfUr%kMGy^tzat z4xggf?4kermeg;g3@6AB|0O+bUls@bikwfF4Dv87HrRa)rkmIZYIlla5zy$gu07(a zHW!wYeqo~^HS)IYPfU#099#QuvaI%|&}2AD-+0@^*F% z9v%;X=p9X`n>kp@7Vy7?O4S#qb78c}qr&0CH_>5&!I3FMn zr6@h-S_6GR;0n1g>^IMqGE7}~z6ad?15G81nfyrdxvUGzkr3q0E;#EST(Msw>xEBp zP?dLO0XWfXBA?6=0wB?L;JHuSjYiB|Cg~g~jX{K^^DW^vn8xXFTF2O}?tW1u4;e?e zkih|-8r-h~*@fTtQi+R)cJURw+>pepBu3gj*pTyD?mB z=f792lPAoBdL8doY--V~Am*c9nSj@~|F)+T%qy8Go^`P9RBr#iHJQ{CGW_m6`#j|t zr;nfLt|eP>U}rAe>%I8W@HD;f7n|+j=xh#48S8bt{=Qin<6fp3LEdXZ@WyqszR@bf zU~uENIhj=Y%ctkELrzL?t~kDvzOak(ok2g36;+q8x7UHFUaE7cXBk;fhqvXvzX8-= z{kcs{&#?22jD|McAdo<{C!1}DMCfwX|4St$CQ|S+GnYUUiB7(U8G^o8JZtIR)X0z+ zHWx_&V=gGu{^3{E+YgDIodWs`qBJ&a7FGO!=dzdNXzqZd@`dg%dzP1OSJ@+QP>lb5ncoz z88g5m+FOP&=6-)NqmoQam?7M$LAVO!MFGa+M!cl$=oAv}lYRD7YTNT4$)Q48y^B}` znnL}$)ChZIk8mJpOid5lZB9Q@Fk0khqwTRF=+`4XK-V+SZB1}k&oMq>myCS4j zLBoQA%HtD%mj-NFA4wz_TOntdEm71irw6VOWz}u#6=2!hqnY(AKi-VjVeFWfyv@zJ zqXU#L6>^Dw*Du(gsSwLz($y>c{k1o~JPijJ%u;F#LHIB05`4g02rn2|aw_VTwNuVg4m=PF`f(kl$VOXJgoZ;UCpV0$Z|Buav&ajaFw5KcALSh?qt zB*i9}p(xFIvmC}UTW=5y=uvrLX7xhnSPVdW;lFc&DExaHSbwTTa^~Y-e0aen+Ms$4;-tRBDd!1$&Y&^j|8lEf%K6mG~GJq)a zg=}LOR)mO{(NF)9jQp}I!>o&koft+U61(m)*BYmZbO{S{Kr^a3L8|E^fM$2CT ztCw;%%;IyZ7-@Y$ip3p)ylMi?BMRic7*zpCth8(D$a;8en+!}uahe>OQ%Kb{J!1iR zXF_(E!EjUc#rvcG9O^vSOu>G51Ewi9bo53ulA!g_8IOjS7fi-zQS#wg@A&mUVH;L1 z)5h9r`*rV>m8@~2{R6cAwAm@41|#sP_vD0e-MGDb6o7D2KFJ&8ZBKkelHqq-^Tt5H zXk|=V6=I*`C19ezWn2fJD=ywkSUO2PihGXipfuJ07q^ zAwli5u}ivLnny4R=>bb?P$EK|dY7pLsWuuhU#$7`g=L8H#5*nXy$aL_3^Co~&}a0Y zCbx}^&L+|c{2L4ApxPntRS z(5%LP$p7mNJ+IIi_NNcx5diLx0o7Jr;lxNJ)NMd$fP)Mg_pYFeCC)~fCcOr4W()81en=UNXrR|!B@m&HE4{H6R$Y&-g%-I6E9txJ;v$vErt z7Ezi%0L>~0#Bhpwna-EQE1t`=Fd*5JrS(OBB{r8B80tTl-!wO4Pjz7FTwD<9vIiZC(q~hqdk_ zv(IkY!W15TqY*od0ayvjkWN6}N)HU-uDr>-zzNskw^uzvOmaD~)e3m97hZg$-5b>F zM!e~3Y}x*jdD&Ur7+`zX=M#~cQ|o$=^)lXB zja0utz6Ix{0hC=1y1|#MbQ`iB2!mUHk-{AT#^)`9x;aHU-P<-QrD74a3PO+wZ`_CyX(jr$r}mG&_q@mvW-S7GKZiYo1F34EPq@D z$sz?q@7LhSnH$PbrAm|@r%Y~G58gPEn1yplb;LU{({KMgJksA?3(euP>22EY1g+t| zW}%$_>Dy({VD$N3Q(8+TMot~s$(z+mzx|3T*+>BT*dOo2CH2EC6$xbr=aL8`hHN{HZ$V-k)V8Zam@2W+n~Pe#aT770QAv+E(gyF{efJPX zF5m6+VluxzAI@9l_S^1e!}#T8so%57#zWukC1APNYTx2_Gl;JhYJYtQFoAhKq!So>O?vXQ{RbRL?g}(Sq4`c(4L-g_S-~Mes*nJHVvO&^ph=dG${%_a zUgkmLi0S?~mvlxep3e%v3v;WEXf;su_nQ*u6=(>d9uKG$%?w6)O_Hca1?SY9*~PFn zXdel4w^uMSpBJ=hNB~^~E&!>D@q-nS02L1;Qw0UgGiXj1mCzY4XHJ5D+vjZDe+}T> z+3NfmXZiG}X-~NBG}l{TV}DG=-fe zQmPW@Gbo`f>>rxQ$Pb-}03;9E#s~c-YEON30Dd3RW)6#hUel4GzJ>>gZ)C9Yr1@(p zhbWvd8tw|qBCTS3i|K-wrFL(1>NwEZ8LY zyYS}zO$O(%F5~S{!~!?>giCs(^uYaTLhP-K((rldV*=qwYU~mLC@l%JEm4;OvOo~m z7sarp`3Sw8B?4EAO`6oPy9Onz_tKK$_g*|!3Sn{d?g9rCPMRD=*0Jvq57)0-9TlRO zzMF_QSDV!VSiAGQf#aLByIN*_GC4qleTG%ms3SLfcqcN_ zTb)n%SLwzIYU=~II34#I7DQz%bB=_0>#51E-AT(GY&T~6v>Tf{eNbHZXo+2THSbBy zZXC}7$(!4^k_Y;mlmgMT4SYzHM5~!dD5~d!w-j-OTi71*cOwESftv= zi~>%(Csvw)iMNBG@2~^f(D=n<;cn?#xV2PANwVWuJ_-jRgGCU zYz>HP!o)M5OpO+r<)p1%4yyrj3g0ebScvHumTkcHW@mo-2qjT7QZ0+WZCB`++ftXm z4sk?%>d&}Ck4ByJH#fO%R``odX=hRbkikD0&F{9KAJjSIc_d15Z3*!7E@aepcm2K$ z_g#BWc}60F)E1(4C?WJhL2gCvgeoxO8uG#)gz)P5FOCaFj)Yk8!CZU*R@S$whpfaX zWgYOYqhnA>MS8j77mAH7x^G(F5U*e|ZRTvq&kDyJN}#)BiRbUc5&;#t26LZy)is-P zwhULZL(Sn3o1*tz==4AS47D3L-{mPQpSGQ@U)^mk3;HzIpV!s4cU^k#bJS9}49De@=v5{kriPUlQSDq{T zmPZitE1xIT2ca-3s;_(Tgljx_I#|C7MtYl>p?=}Pm1}>pK)#ix_~-odGUGm+s?5vt zHIl*ea9GpQ>i{b{IoL*r{s;k)wfKy2`Y&KKrxaM+u?^u_A&A~%)DzrZY!E;Pvih1v zZ4O28Df`?9!zKpFzv~8{7&PWCK0$p$U(d9!hOZj;+6e2Q@zi)#>g>Z#U)CmW+SS*u zx%=^5Trzdx9rg^qjlVU|<#+zF`yk=z{i*5BO3wG2@h)kv>GiM1OWy5c(Zw!j|48>P z;#l_2Ys4lVLtQFHHmYydsX@88@5B7TLVN6*?kq2B_UC)bwD5d;m@e(_HRr2tXTwrA zzyZ&(oN{O6ENS>z=Xif&+}~+*FK{o}`x)-%c`wc>^REM-66pNC;H4n&?CPf8$%lKk#|E0cfD(~}U-jUBVC9pA9zQ!l)oAy_P>-THwlb;!tIP3ix8S0a>SM7$g z{B`~==yDF#Xj!+Kb$AU=)x1tUz6X`dZMFc5aY+Bi_*Qe1oNw!uXNw9Mxc~3(KT8)J zVx6wuQ<@t9faX6j_y1eF9>58-|IgU{zdQeb>pw&He`W28SU6ez54A(MZe|)u8&9tu zx#T_Z00nId#X*1XyFSxijC{kSK%Cj@GaWOLt7+w^~)fX2Xi;HRiivuj{O=nW3 zrfV%$>XuYiwafYyRW-;^@UG4>)3dX`;#evCHHB0ytA_*(9qH{r@0}dC*R*f?(Y%L&!5G`o55S*JRk{s^*zgXr)Tg z@()|kyFB0cYJ#CUAhW`2lOGOJ!L$gellsZ{dI`Jko7N~GmcU^X- zhzrDN%HH4iFYz$+v5>nGq6SOqWT|idCsC2TVryfgua&9&nX=7jW19HY-;MOmgahWI z>*GRxNoLuVtiB2ZkDHz0!OYHWwozN14fyiX(r3T6wzf+;o!OPTu&@cpl{~qrUtl&( zWmdO*GCeo@gD)|*>rCs6o1-`@GZ!5rD-$h?GtI%l!otJNJ-@cV&ieyB(pS&J#=~Rs zjSKvHxBmNgr7jN;h$H~w6DzWvA+FFScb%4fMOT;=ic=4Rb4|IV*YINMSN#63Ai=D{ zw_fWpS>agms-;hOzzB{wyv{HCzeja zi;@q)af$0*2tqY$ry~nJ*e5ahQ07an2Y+h8ji7V!f=d}tZyR3UNf{41;mJTi3B-QAw!wT+_8L~OOING+<&)@MR_eNRm`{>?YHLTJ#*yEH9m_N!LB z#&^lJ{av#*A-{WP>HL0P>h;;7=I&INxsGfFx^Gj}2iND*RL|$Dc8Y3SOE4(Jdu{ch z*B%5x#0<``&u{5S8!ZoGL;S{wr_qSAlG;!}Px4j+2$bwWH>ubBK(wVmPt6 z)G*~g>Z&7_*?D?w%$ByBlS@NQHS%s_Eq*c^UojTxSmvv*G|e2E=$Pl3?H%t`a<%OY zB6?Z`@&He5$&UcEI~F#>7&*P|XNj8fMd9i%mI#fT zzg;g9*S!Y_(+Y~l?|L;)}0A)UcQnFPofR|vH z=+nZ_yS>pJ#obpNmW6~`4i;Qzc~xj0EAZ`r;;kh1%1bF`KC}Gl7L4cPle8bdnRt#X zJ(T3Pe)7ZiqQU2ckJzrn$0_yFo+wF%Bca%C$NBX{V>%$^a@AmFiA2~0A~(F{*hZu! zxaP!T_3DazV?e|1n0FY_+re72mA7zV8q2LBpq%~I&5N82(QAP94oLyj%wDcAH9Gm- z0ORwPnEm+baIJXj2Ooze#Je;-%mn`>Y`)vIA6~{vGLQdw5?J?^6U!F{+?v0xHEEmY zOL3_>EC) zBQ>?_HMgTK5ip8}oKJGcc=^Y80f{)4uL|=VnTawvi68ocw)BvWVs5p~B664oK=1l- zkB1jsBi56($dJiP8+!G=lS+(GP)5?oCW_A-;!9Yw?W0GJ)?4Cw-4so`V9de%Q)m@YmYw^R-Nx1D-P`=H4g0WOro0 z#z0~Eja(rLJ+eGjXTWR1uJXR?qQOSgHA;u)%T~8mWovKn2-3nY?X!i=Hy12OI~`g< zry*xq#97RMFI`ecCZW>wb%TGxcYjd7tRuhDIZF@uTR6OmB6jE6OxYOsc!9u8`@?l zXWY~5o{Lz{&YeT)GKX~Uq1*Ywo|k%;3nu0$jgv24?I#scAl4hB)6!7BFwJ~r&sS#+ zoHT-u-*V6*fvCp09Rt{eOK*hHmUm~xVN|^BP)d%5c!0%?qzHFSlCukv-kNSvRo#CT zPOZA;P#-9(@#GYK1Y=LfE|&6a$6Z_UsUp$xw0T%>BTu5jE;BOFw`%y8ul3!kBp*=} zV?Jp!wc*`DP5M8)$Aq`3ih7r5*SkhC8j+0>e8L`va>aXd+d3zR1&@-ag^}VSZ9I0K zc+7=y;)38b=Nj}Vot;&txs<(brJgPzz${=D6?3eGKs#0R9zm*>)<1x;Nxl#==9~PhC};`0$&;Gna5% zv(Xpb?`P!;0Yj2IV&D9rAPoyQR~&_)OCVDzr_2yO=-oaA=pikhUt&us`hSlFXp4_A zxrVX(8-DbPBwY>USl!dqBjw`KjbD)_g0s{M6Tne045UGR4_9{y0{U1Z@rKrdK=fyIeDoc7L4Xtnf;~OU!x;CvU^@|jozoiJ%UfmOcyHSB$bxL=TwswnqX4>; zC};S>D8jSb_OfIRSgHvO5r32d)KYx?aTu5(3Ut5z8Yd{&4R6A1f6#S0rH8|#K53y` z(yL$dJ=uGOqP<&<|JBk)OK*}=(b-V%l5RPQaOzbTWfbdYWCgFi#y(W8<9he6j9nF? zd$sA$M#mFDMs69;zt43qf2|6bqrZwe#}^@u?x6)0)T=) z7jwA?N}Nebgq>IrJT)iuhf(|22uUl0b*u{85@F%(SBX-|I(lD2JVTN0nI6Iv&sSyz z`;oAy1h#Qu3Rg3zF|UL*OwPKR(b( zG9mu-l#irr)(|ip##yy1`vN}TMRi8yY&8n3I+yXJ;FtM`B)XH+INQsA%zB*i>2?K5 zYrS=lD3+mAYTqv1QYiOCC=zOb($@K|RPM$D>s#CamH$=T!P?a6sJrP1C)etLqX|ZI ztqlR43$~W>?o5eQ2Bi$JsOUzFDwf#u1MTcpS&Tz{6!hO92p2@=3*gb-q}e+$lq}KS z9M?-`->oBKJ>&tm<@HzaxUhdBekyPITtiJe*wacRQw4}T07lS|4Y9aE|2e;0EU9uX z(?R;y95$zGG(i!FpT8R`DaCM)q|0kS$J6k&h@Hu}z@g?2f7^nt$&3HG)(&r5kS9R1 zYa0F(7qFqr4K5~8LT!2aL6@7gQ4_$!Y8OQHMa9Ci&m@O1L>KMbVViBl>*wmFzieT^dkD)Cf_H#F( z83e%SjTMj4R4%S+K)-8G(jCEM5eBkW4{*U&aVGTcuRn7cBTWo<-UenHkb-L^a&5hG zF=MVO2TPV6U2V9G(nBCJRYyWJ1x4t;9(6-QIte~dGc=-M>rrz#QSF`CM#QCN$k)Di zQ^PYu5fs7qwlQj!7<&Zg2n4n5RuXplfjWmdOfvLYgS=>MwmgzPgm*porY)6;oy2>w z)u)O1kfiE624pM9Y6SjJidtJT6j@i&CH;abETV*GB*IrPFm8C`V>_UxLV8UGkmEwT zqc@{yO!qN3w1;<^%TpBVhrxg#QHUs+(Q<~dbYUbgSQ<$+u@-|#)M#V7O+p&d_=jIz zOQ>Mt-`@N84EK9j8FTj6ngyUXKDD{jMQ*szl0^5h?%*i2h@ji@LyD8tN!g|U{;H)w zATXoZmkeq6j?bPFK=B9Ha*R}H{If~jQvr$L2c_LKoRebV_E^Y?94cDe%N;J(_q#*= z`)&)fjn5G}BYseaoPs&G+MbEvPhZEhif#bGQ!Odrxz5YOS_2-QdT8`98w#sQXU_AF z{C@m9$0$ku!f^FF){e&Jf@`idu*POwtIi-lo2vkn*+Pwsx?SP!oPmTQDQ+;W!9b=F z@_ZH6^M4iFHW?hNP9a z;J-~v?A7Q`i411EkBl2@2pA`y56p0kzfzqpt4H*r>OHIqW7iItB3Xa8q#*hTyZwNj zi_FgFqggWSGtiRC_R69JgwICg?Op`qrtSK+AZ(P1(`fh{Qx8HlZ#qp=NK4W4z$2;JT4!VWXv^<2wF&eEE; zi<{2z_bfgqhZ!(A_Wa$?aW7%Xv#2R~r-^x>YI}r>dC;2NE-ckOL%ah>Vyd*Uf?k44 zah#!r_RrmW%t-%AW`;E~xMEk?(M;xS<;Uypdv(D*zVq-n@I3lpko#{#Jc$7ucvW$;fj1(kLP^S$+?BeYc%?Z7$C3)Vir;@{xD<()7Ww17 zW#)$%>DtXRZVzxtpsp*T!|l&|p-J)Y5>#?2gVa1FnIaW2oXNWrhj{5m6`;BW<>7Fk zs-5-a8rsH-tGUk;040xZu)*Evu>LIf`IwWJ0~|hiN`wiVEc_VRmu&!1hA<%{0>RkV zR-EYMU&{-kHW{NR&$}5iS>&II3I2VRzgR}Q1gMc0YSPpoh}8XGF6~viTyO~p`o+Cp z#67Htf0|&cwTO0X-SL4E2ZHn}3NJz?6;QyooIIBjK3JWRs;5)FD%3bZ1COz&%M+WDPogkjm5GKMsL{-*9zTRfBx8V%J8`6sb=XG# zFk*@Cxl8x4V$%zBH8p(4pNc@*V)O`xKB!3+bcZzKh4r;3BAG(#zZI-?=|Jz+tb5d< zQ61k}Y8A3E_6PgA&k8PzUm48SQn1hVi^qAj%dbU1BKpG%p4Cq%9DVS*G{c@^0?lBj zG}%m>bf$BGb{!FdpeB!delX&5gYascSv}3 z%CSFQGRRXGv53RnH}>*y!%#P`>sKw~&!HCptN)^!d^W6&*i3zIO1S@YFZ}A6(R=M7 z^yWr8sTh90-MICW*dNN+^K}QT*FTp8COp%J{LDs&vw58f#h%e>tNz(pU2C%!lllA_ zer0DyBU}JdWE6+dXX3Rbxk(^yG0A`^ixL9UC2n1z3XAbEkt%f0X>lGcdf45CrhPph ze5sp>WYk0A{&&Z_^rx#+jhikcP^xsJz=w49OrfGd@ek+!7}5TYCM}tMuUk_6W^`fb zi-tD5uN(TXW7_zkl8vmL5}dh^B*fJk8mLdlPiZk$ZrY`%iLm|;W#_OZiWV%$vTfV8 zZQHI>wr$(CZQHhO+jifcb+0#i|B!1Baz{pBa|)IaDH$h&Z`3mwcK1m@5@0CElDeb% zTxZzyWVYn77gj|B#!l()OWo^`bxQ?nuo+TRG*^l5+T5 zv5x(R^hhRvrdGxOfzr}Zf8~4)e(~ZUM(ny{C#AQIRRF%@cOR!~G#f&80 z7y?A-Yt^hzGxY+c`?|+($vH$JK|`&0JLri>(C~_`LN$R9y#k=wm5hSRSfB>(l|ysD zbHN6bHq~Zb&Q^3M!e)J*tc^AJw9jaZ|KmgLo)L#>IT-g4&qe8akN}DUUgs4j{I6;6 zo~BGI3A@nNO`}UDYrf+vnOS#c=@(jmR=1{}7HCdR7zH=+*4<#m###E}=f_S=0p97- zO742f6)EhZ8yu15$IywtYH7wHNON9StDFk?o2D`0%7=hP&3?CL^BT~s>~>uC5U|Vv zYjK{if4Xqwxo`l}AOy=>QI{er7DtZGH0gpgF(L^k8hi=+YQ{OiD@5}`o=kM0^lRQ~6+NRZ`AajI~{_c*l~ELfc2~;SpGJeVR|U=H+0q#X2N<{^cEH zy^Mj*2RHw?5>W=sV*I4>KmirRK12#LtN|rSk9~<-UnpTL~0Saf25I*lO|gH|ROROAe`5!z7qdEA58} zf?+WMT8w`ogJhy>fzWa=Xs?@cW{yI{f{ZPH=oev#y%1pi?4vvtauY*(Br7hoa@V?T zBK(;%jLJpni^aDH&$uep0`{tsP?B_6I$4iF?Nrw6N>?*FtuwUimrPi+ zI%L6q{V1LRmQRu%UD${HXB@9H+x2(l98i90t#n!Q$ct&VJqvD?|2au~!w_W!k6KdG zcUs$;p_}G$)~@|nE*dAd@BSO+5?^0<##Nk!cGL=d_9;pv;=ID4kjN&MX(s%LlEuGa z_#~xgu$DxO#=vIverh!+X=0*A(@8mdNC&-X*pY=9X>vkH&O%|b#T^-&!yM> z$!$(taChga=liFPH^UiI{bIG4fwAbA&oT5N|F`|J+vU@NSor%wZK;EEmegrtg<;o} z@B9}c*=Xfww&eE#Du&*Q|NYdZA}xvlaKT*gdK6q=>d8>65gX8?7~ccU7LCbZ?Pj3l zEUH90tA^ww?>{&}G!5;>xX}cwRE2QxOLf}uoXZEKEnSd(MtQ&Ap^O|#{&-v6k#I2r zXzLBBk^md;vO@aaI?ESs5UtrlF`~v0(0hVE&jkqn=yS=u8h9u+hCEU8PqjQi9l6C_ zpQ{%+k2@CWw|hoy0v(-Z?v*f8_wQy`!DVlT!ANE_0Og1IIzQ1r@!03*40%jbq-(hX z=O+w4hR$;3&W*ZZbME?stjbN#oYW{qe~Hi|23;L^>8)_BAvVfgd?m!SKFY1x|rf1yCSWwY$@D{njBKzKd5 z;DO|io{z%W{P!?L07 zvt(IAS7tSc9HfCwU5-f4NYn9cQ(!pZ5Q7)?U23pG*<(msc#}s65SnGgYcYb+amU8N zdQD$pD{4T$js{KVs|?PiYQNJP_}?_CE?~h2NM*$56*X>uc1j#^ahCf9S9nl%z&CrN zuX;Vbo7z%hOLl#Fw@FZTv05}R6>1LYf0~QS0FNR%p$EUlryvAR#s;i=A`|ONaK2s6 zQ&;zT5_5392D$SYZKvOW=Q~fI$j;(33gWdhNm9&YKL>x>y&Q;#3X;!Xo;0tR7!#3h z?F8O)uQGR%J%#D%wX?Vhl?+}=1DE z)<6Z%O_=qcw$T6;cU$Z7!|1m`Icu=IHp?HOoR{T!fSSPy5AB*0#9!Ymqu!2KyL<@|Cfgf7s z;Oy4!@iqH+FVOgjFCSYb{q*AG`4ujBa8Fqvwo5H7k5MA;}%l z9H*ow<27Nxw@0Og>{uy8+i;{YGqU4+@qkpRt-gQl1apL2rM+5Ff%0R1m9tcTdYG@YK++We4xTn@XkgN z=lcx03OB+3a>Qmb=@O8i)zYaj(74>_JmIDc7DEC|IGDLMwyR--l6&)y}IPJekzI#fw8b_ifg6CR&zP(AK{4c9ajVT@BjqgcUaH6OzO2v z)I6a@y^Olx?-dT~iJc^Er?Dx})T&}f=lvE`PFX8dhcPr+ooWhs#V`Lj+m8VWSmJ1I z!EBR_#w#tFVr#L6L;ZEo3c7DN|5Zz#MXHyxUmgX8vC!LbGp%ElriNRb0b6nAnNczr z@XN;q?~zI}cMzf-9(-gt{ua-lFieIQk`-c3W_0I}@lQh6Y7EJ)=>wNLUO-h_JqoXF zXYfW)I!o)+ofxBqdQSJe>P1_(PlmT1e$#FO^)AfQ$2r76>m6jv(}t-ij2n&PX*51_ zplz5)O%KY7G# zM;1$0T=Kv`O4M%gs?6o3x^D@`FBNVcM%!?vYzi^+$w z(o>*5`UycVIRq4VC)C?XdQ>JIR%EUy$Fo>kSJnV`uOA(YvVIDU5SmgbW&eyZVcj|( zqKU96QyyiL{?8q?)MnfraebfGBZ##>|4pMI&^}IOETn#2oqQ zqDf?!vxNdGW_N1D`k#0cOJULx0zW&8CecS*0})M_#-O2hR%<%8j@}HY23O>fzuV@F zJ@9*~cnp0MpoKpHrHK1-gY`3jmScF(XLA3gZF+cEiM`*#$C)bI$hNxDJsqTi@jHp< z0Uag!CxC=4MFrr>Gf3tN=^LKb*(?9lg~-nwswE%DF_@q6|LjuTprWfGQTq*Dw0j zy6Z1P6_FdmdHzQGya&&m?REyXIs(F*wLOW)0~xQ?%ILtJPpXBQS&=?fvygra@lods zD!WH&XIN!K1$Tu;2e}AEbtPC;ga1ECa0e9D26M?mq;ylugHTJPSR@kwtgs<8Xf~;* z45iyvc=H$8ZnC(_Jl()(=&`MK0y;x$99D5@dy9rGcZCpAtawwUe!swopfgfY!k-d} z*8ZlQWj(U?l!6scOQN$3e_b92FCR_N0r+`VoaQm;2Ko}L2qErh{nvI07CC-)z1Q*a zy8(B(VyN4p_Z25dLa;gcF2KkvX|kLJC`v^l!$2k3;vItW1`x|lS!aKd9#*^>S3rkT zDtvQ?jroB4L}*Y_^}zr#U3~3q1>GEhLs9@6MP)G>PGG9J&`P|5wVPGlj!gYGlbfBW zI{uyQdC&Oo=aXUHpfta~E<;W>APqE6eqv+x@7cda?D{gE`uyu&_Q*KwestwHOa|_t zg><092(w@^e>|$#Fq8<8eJINL$38mL7CE5ZpPf7L%zR6nbE$jpO7fAm7TW?j!I=Dz$eDf8Yy(v>pcn9GYy<&DTV7a6nAZ zj1d($m*B+L?(1*HL1;mzd(JP*^R_^w$o6}CtnSD#UBUqnCo4vL0aI=2pMm1PF*EE{ zjL9_&GE;$N2SX1qb34q2rBb(JWag19^Nn~Z;AKQzndF#$c|}^GjD(La&1+pFS=gi$ zWh)gu*PoW#3f~b~LJ#a7WW<-&j)K3?*!dvoNg{2#pYxh1e93A_-T5dNcH9Q%DKq0*yO6k4%u2u9$va6q?Yq{jY&Jpnr`}2}F-j?~ku%BSMkR9_H@m z9zjUQTs(tCNf?v_BP;#ELQZ5v^}b=Ptpzs6zppv5Zwp*v!USXGhH}hLe1IHI&{mai%3!~^4pqN+BN6F2Xj9s(yAN`C{nS#eh>t*Xu>>J47#a7lF{ULaFd)jX6 zae@wUib~-|gNbV2u+W|}2D|Gxtc$$6!r-*H&sbw|c{!+}f*Vgk*=zA|CD@-UL zlJcW;_~x>aVpi50PeNqyv)P`U$e&OMLQx5t$X6?>R}uIWgVu}QYre@f&ECKHTXl9V zw4*y)Lmtir35K~#5vkuncMwD2npjf z_czInKz+a0FT@6)hp5lO=xnCT`=W|1T>odzw>H^g7m;Jr6nw#iquV%jwA;P5-u*WH zJ^A(Ig>~AahC2J&w}sIDpro#~>atD9o|dQVj)*Hd3PI9lc3Fi9P0N_Z*B7wkLW#o| zfea-n!pCXen{_<}K>?S28b+oF2i*3XTzn?9j;oqr7lif@VsS2wx)$RqkfzLoHK3r_ z%>m+i8)9dOm7mjQ1l^>ls~|Li7S3_bO*5ZJW*s$E_R1{bFsL}yx8L1O3`&nnO4wfU6#nm!rwv-0*;b58J1E&dHXrgd?w}>EUd0 zr%L_2H|i@h5TTCc&mr?fr&mMd?mH5h90}#3>cO98mW*EmpBGHeAs|O=B~x3pANTEz^NSiA>0Vh+_eI9J>QtPMI0&01$p#yfl0V&>?bqY<+$^ zjqp^jJM*u4IFvJJ+mlvsTr_JDI~$cBx;P3`H=Wm&i*~m*@ z=6*RSe@QU9`@?l(C_ZHDt{l{Dn@lsgh27ktwC)P(wWuZhw3E5y%IHL@UJ6kjM@2l} zA#MH}?_DOG-9fg*2(U|o8>%*D5>O5l&J*)dZ!S_Wyb8AIAEE#$-`rhrpm;vdoBv)D z1To`r+&y@x^UyqgKm7+n`V8D;f{9?h7#&S7;-?f_cpkZ1Xn%c6X>mjE)5o?4nE(W* ztIL~R^?ww7VDh#a{J&#aJjd)tbYi1dlVf{CVG(TkgFt$aGl(Vi1=`8L2Z-4>ah7Y< zl{m>zT}es=n-YVF-9p)D25Tg|h}BbUW=Al_iL)@4StLko@e)45_Z3J1@J3(AFdhOy zJGAvx?Yr`Wg8kw<8-j~=hu_Si$JS}1(uG`Gt2v;vQf;gPq$-|0)WSypMF4TJkVC8o zZTDtOY12$VZ9)eLSk833XGd5R0+4O{5=)pHUaI=EB9w=6!RagM_$j^HMsR%lIAN>$ zM{EMV_;X!nn_c@rruX{zVQ+n}xicQL+i~ogG?_y5UD7Co-0l>m1rEHu$bEhn!qKmx z;Z?2HB~GpqneFM9Jw42B^q#^)H~Z`zASz}eeIV`Fp1#{$gJk(G3k>x;v09UOtXh+^ zcdE5}26APYy^1qNSiO!LZ+|YPa@y&_&ir>sJX-uFYHb|hs3U^6OjcwuJFLvc|!*RWPT>N5soj83L)z#Uk^StVP zb`*jK`k(y)|6klbH!XY_=)WKqAH)BP+vivM{(rbV&;J6q7j?I{b9DY6jVukB8*JY> zCT6o%F4?W-%vTH6%_NgebVI3xU`RyNAR=!LW@X7N#6${ZD$*&5#2P!Q1Z(ApaVF!4 z`Sp)SpQkIgS(hBY*^b<+?Kv<0H>W*A#DZQv$$@x)ZxDg16`*(?KEB_VtF`||+cGS` z_0Sg@K;pl)mDktn&H4HH)7cz8pEm?ov#_x6(9n>NkI!12exKKyt+=?jv~(03{`2#* zj7mjS6*WD*ot0IW^M#U$iHVDgi?6S*va+(Iq@;txLj*GUYMp*wZY~}=dRlTaNa(=D zQW+_dq^arYdU+1^CzYm7mz`&4Su7H4m6j(gWy~kHvy3*3nW6S=& zIr##nS6!!Gu7r^(%49N_yk4#Cb-R3jBHHZ6U|?XrzrPu*U7VdSo(kHm+5W4EjZ9Iu z)!o^Mh&V`2kTO8s?&7w#w3sj~YHQ(z2BWB}xx&E5+3xK&noM0REHFAf(Ha@)m&woN z@%eb_>dH&xsePdV8@MPbwX}*y8D4P2o}IQ1kEA$uAkjuz+O$BUr&>86EU-VIZT0>* zJ2+&m%73|7J3kyc-dwJ1O5M&i1eG~qtc?)v$h zn%Z?VmuJP?Qlc+iw!IST=TjB4WI6V?r^&|sb9P_8x~;>l&F$;?eRkg7S|_iq&dc|^ z)K9Rq!itV9)?$6*{^-6p*V|d=vUx^3bTqUHd76wOe=oD8>XqDL+^5x-1Q?P$ROn z@ZjzIOwJX}=f_uSv-NMcXoZa4xX(l$GlwaF*hyoHdH2cbxrU9z*xTB={jQ_+g429S zP3_ej-xl1h#TWVKu0w_E!3$YGOr^9eZ@$(RTWXPsto`Ps61T7F#{&{Omt(2-p#iCC zkK+CBw3&8O70Lr5)`B*;YMfDuK1g9Z3JEg4rmde1Z+GEk@bv=eRJKy^$ zoNUWq2iJ2yQm0*-XUfoZE+O2>#SQMu);n%egTOtf%GT*scHv>y=-?|GEp5&V(Su<= zG}B3O;KnYRzwOlGxck3ttocPrX0C5p*qPF&JPElmj!H^oF8#(T5!cJJNKXg zE@QfPmY+Ro{xP&`RP&yw8q8WC7r&z+lshAV?k|rPo+o~}W8cU5jI*~`Jjow3k-5|i zi*xtC(^h`hm$1NJ!`{M%dxct6HWRz~;+t`6eOz##t2xEsAoU(D`mK9z@-O__-B9WWozg|Va;yLyGa?Kb@62syN zNIt50APna0QRRZuY)}6U;{Z72bV@67LPRRY4VIYw{G_K+plL4or2wLd%2%!(o{nHs z2a`+4Xw=;K*?W$PP?G8`Av1x#LYQJMa?4Z>jZ=r!{8_4m;NNLoKxGtdPNh(v!luaM z{-bgkUOfj#41fa!7I?AxbSzKO{3oQrT%f$>!`eHhW+`ceCf5N0nHLWtr~<+|&c&>S z5VZ}J%v;vWPb+OYtunIQUURqmDb>EyzGw#2eG1s^Me!ojA3$?1^`Se-x8v%7 zmv$(=!ZfsxA~||Qf%1n5O_0m7Dsytiz?4HU2H5_&R=Sl+fRTq*=HQqM%FTv9Bvrr~ z|AGL?`W&+O)lB(!f?8Jm*ZJwehkhq}GCX$_IYpQF89QJ}g2hUNr;9IETw~~r$o(uz zk>7p=QY*Wc{SK-Nxjmv}m^7@Ebi+s=WhKsZv#wb20xAV@_$JtSOj^_eKtjsJwbGu|v^@l38P3@3QT5j*zmiBRHao&sXd6fcXO z6nFthD7}CmBU9rYF^!_2{Tdae`q-40hn`8-~eRKF1F88vVf>%$+@Kg6u z_H?dC;2(^D|43%$;I~G!6~u3?xDkCae0Rp@)4%DZH@X77;f(nuDt= zGZASPb;JSJQZMvfebeS>l=YLC z0FW9p($RCs3yY4eVT9HqpD_HLhHYuQdVeLIGOmWE6Cm`H`^&r<3CD1xuDQk-|6_)% zIq=#V+?FSKlI}HRA>SJOBC@?`|KRGB6nq@$Sc^>9j+?01G2iZ>3V%&ZfTpNyHnkbg z8y0#w@hL#@De0YzQaOa0Ux%59`HysHe-}UASMPCT_R#Vcbv|=sWC_+<=@7gw~<);7a~D(Fo3N zE$(NUIaDNiGEQsZnwQ+Try|@V%8+wf2-?$M1^J>CwwJhh;;+Mmo-v2dV{s$nK!T-k zTXPX3TVOgM_i3`?;gk=u>_3yko)(oCYFo=(w}Y;)WFbWxc^?ESfXwXvJVskHe`MQmAY#pP==Wd z@U17{LOgudyHMqyyuH(;j_W#GHt-LqX;tj^U-%`p9CD};X~O|7y?rmdMNNgzn{`$D43dgt_cOjsI=t$`Oll&+=$1-yKKXEw)=V z+lVQAunQGGtQri!G2Z#$e@CmsV6Np-(~%gyFWQTpV28&&r`Z?%b-?Yz=q|mk9YYD$ zaMIuOebioz&=D!ArXtaPi~Sn~yGy^nq>=L^NffaqU=Adh^KQUXy(P#=nMOHe3`}Xg ze2Wjputi{+ixpeRug2q5M8MCGTz)w@$(aG4H^Lau=0k73!yw)n%XWHzc zW*1=mF;3lFc>-d&cfxLgj^sYu-fk`;L4axj{j@x{gnX{X0>SE9H#dOJ&7+_*?)dM5 z39Ru8@}@4vO?g0$>YWLw;$D+xo7ZBOJ*x9>+?)f_{oWA?>e(l#wpB(jI;78hC|KhZeN* z8PM4XeRb%*O)r+nE}|AE?1S$QOYjuCAmczmk(J@h{bu{jw%UL31N)_z(rcU{3SMa? z9%Cl=5kaH8_0nSB>~=m6=D^rDpaiS(78-L4nv9YVMWFUQ`8{ZgWE5f0sjC~_l91j} z+26T?`h)L#?g1bdMo6U}u=+hNt~x4gTU3F|Kc~mgD+ZY+>zf7Hwf~L9Bg_;ZL?+v~ z5Mm3LZ!QbIgvwNh56lbLOdj?>s>MZ%5T^y6=5WZ!6Ja1JgHj?1;!kvN-zobzy|db! zdy+V2mb2uxJru3$z8^E>79X?eUhEJM_UAgEoWDK47)wXupv@KC*l)vQyx=~QzWBO` z?#byA6GmRO5D3m7urRmR-f7QMHj%O9$;@$@s5Wda=33Wfrpujg7NiFv!p^g1-W9|y*Vkvol=&43209hROT z+VrQBcV4$IDF4up|28y2G#O|Fh8_Ycq@THwkF3+Ri0T?aq2&}r1F3Gg3Z4Ge0!76D z1o7%*;~)iJ0mE|>N(yKSWDE%@s2psgU(7pjh($-H)H$tjE^0a$6tr zJ=JIJ37MToiw{GSMM7hg1dS+q%2JbO_Z}$G@=>ZZCUUgPynrA~QW%0zNeTFUjycrD zrzc5`!MmM6j+BCtXGMTijtxMt$_%*_;~_aK=v--!GVGTXgmbw}k3MFbDDIWWwH5Fj z21FdjKsAXg(a#YP5XCGdm(-rN1wtJz$3}A8B)s_BlN-@Fnga?`Zg#|yUUIQPup+-n`e%erxsZ$>y6Q*dC zk?fjhj4%8x9I1Q36BNSyIfW=QuAl~R@VdJ)bo)7dC5E%4@#TsjYM)&C{+1Qu~A=r8?D4{gUGB z@!P6!OS_cmM3GTo=@b%iYWQoRZ0rwEvs_sVjV2`8e@`Femur(*I$^aO?71!NGC9gQ z-NSPgU7YRj7E7M`YV+8~B_HNTU$IRJIxQo6a)htS-WGiB@yvTOnitU2!Ou+vty1e5_lDVTWt0YZ_y>^WW#GiEn9A`^WpA7BX(~fLv3S00 z^ISw@`ogbCC5+Yk3V3pxVv*SZf8%S~aA_ceQx1u7q1h(D9!CeaN4lnAaoY1Px%Z0P zevz)Rk%>ix#k?K4!U~U&T1gO7_66K=O3bm_>mvns`oK2Poe%zTdn#MEob9n0&V|K8 zglPxg_${>c05JNem@ym#Sk9nz6X@bT;|2<|?^8%U8WE<55XFQk5U&RJ zf?#;~!Ti1Ml~C5(Jx9x+*#)lwZZ?Kp2H5ecOP&Kze%sbg^RWWv5Kg8* z>pfqu8gOp!gM`PT@dvQ>CPQQ_mT~`pjR%ABa)UehQF5I6CT>Fc4!oBD*uP%wNHBKF=wPu=<$|hzthrx(=0O zgz1RbXC*Tes!r7nNFX>8Bh5~R*Pq3If7qw;9n-^GkyUa{-Uyt9YQjCgO9kUs?K1D!o5}fJ? zqk9KTe>RkglNh(TqRKiq7{?O<4DKkg9$G*l?^q1>3X)#pJ>HX$T7sulS-4httBT0A zW%2_3fSp3MNv`MnE+0wQiMA45|5=@;#~C`C^mjc96Wb6 zBb2mK`$bwyk!Q>=<3<~yHL=TB>wLdk8|LYE(FZ>pzsg?#in2_fsyc?^{|~c#%tC!7{fEY};=0ex&#$RKxgM#}2XI3D zSHI#Oym<7L{~H4Rrwu7O5WUV+R;oz89ZRR$ntaLe$f6y~2{@>5A9Wn1caNGn080}^UR}L-t{YA_JEbb`O{IQ|*dCGv_q+p0CB zc2=#XTZ)#RMKBBRef4SLc^ed8YxcEQA?eyxpr(f21+p=vVHU0%1R&hzt+MEgMvh?v zC9m0B!sFThpt-O4xGU!?yVQed@UaG z1mHk2%7mCBZ=qZv3GgE^uSge!O2_p?otd#Cypp{U=Bm^9adGSu}x=&N}i}LdkTQjvCf%7ZR>yna3Z;Oj_i$slU>PCrz zE=-0O9DDA&r!<#BxF<+y-V4 zXa{j0wH^YiJ684etY^0t#2Fp?Z4^lTcYtWmTXs3A!Y66i-}5SGVpIiRswR2iK&jTK2qmR z=nzZbX*jlw36xW?3V+3k;+%AX(00<7WsbC~nZ1Zj>`UKj*Ic+2tXVCVoXMTonqV{D z^GtNA?!|Jb#q=&%DsrMEP@hEVUS_NS+kgoA_Uk zXO>)k+r}C!pwGu?;XR*a^&9~-kttLVlS-J?-HCr{%!;xnF}>f1Czg0-0PLSj3hLzS z?(aSEV77#*UFbWJPo-%Ee;9uHQE%r%vdekf@K@Jz&BPl}@=fUSqlSk1%GA{OOXO?W zfso2$p)eD&={rnIy>AI_{I~Z2-&$<(i=L9+uz`Hnco}Dguy(T=S7?K1B+WItrkpH-f%$N())X?)b~GZX^9JFz~X3r4C}fYnJMG z_OlB+&LK|&O+KUZFkbEyYJ}we@{BYdaKXC`!!J9N(ChI5Ic)cnCcg#R07G#(8_Sv| zKArTFrS=gD?3(^Q#a+vcmL8V;cg@r?%A&fSYf@!pUagndre`FecO zuSF4kyf}f89LtQymDc3-`;&1PoaS9R^AHpGX@eH3z3Xrr-n0f1s-5c{yYr z3PqUt4mDwv;9*XQRCQLN-0}<(u`f=<0@MMYxXgDfY0$dW$8NpA_Ec-A<_v+hJc*o9 z&6}*eX0E>9;OJMTQ2f=e&7p+8R&V2^u3V$hFR!`mZ3X}7z#^k$)Z)(r&50dj3I(17 zz@uv#!ALDu(TK=BAC`DH108eAF6` z6BQ|dXFkyOHA;@A3D6P$*f_7}4Hq1?p`COr#vz`0K8cIQ*#lK#$dGO7^{B^anB$s> zvukm2zBa!*fRgL!1chx;Nu;{e!m8PA@_tLQi01xCDbarFqV42?q_*8!ZUG4*j6P__ z>m@h&Ry<@Wlwo63<}qEkCzF1UOkWB-qX)vu&AkwT60^-AAY}|NEb8xmJL1>AJ>p^r za&Z#j!E`4$$QucH!^xhum`~X7?}OOBU6k?FX;W8e)7#z@t`H2OtlVMb>FPOg$F<-F zWL73XlxW*psO*69C|Bl-J`Ej$TU@G-O+*iuFolJu;|F0*7t(yW`Em9lrt${@MI?Wp z9|>KU=VPwp$7en0VlNIj-sVFiv_o)67p{)w^UG8+9~g9*v01}bjZlfC(UcxrXSG01 zlsNKUZ}N7puawtM-CYQ?y8UFmzIA^dqTGiV84QQE4*7_mq)yPDaLQ$ij7g?#0z+=H z>%*$!m@BSW-tcu@?H1+J$FzuO$A3LAw1frpBKUy#ro$cGlV_fU*VoE4r_xK*lnI$z zZB+4VzsE_#N5s9cMx2cakfe_9dGu9vbhk~_w+b`yPaP}oHctWig2S2n2ZGaXVbZv} zx-e4uFTBfupLxi-7m8!rK!R6#GsRUETSxwe=V_NIEIx*+?1_I>RNZ6WwU_Pr?1!wXVC2e|T-2gQ?D zd2F-)c7Qz3HoQDYBzd5T{Yq8{|t?(d!bA~7R&VOIeqEOCI-Hx ziLr6}>Kf7z)vVFCWb=vhH5Ds)G5Qhsp~xS z17;onnyRt75p!3quD;^$Am<^(%w0+x}Q2~+!GuO<-LVcA@FF~~{qo)mLkQiuPu ztkjL?(YW#6yN_-^EC!Y8<+TAOO%0FV9Xg7>YJeR4NIxEBCl|F2fymV}wKZ-I%1XXY zKuB4&1S>TPr-F)-n4(9gUqud3fvi7KUjrZw#EUrh_W}h*3Wh!kr`bRhF)`}GX<*I2 zrZ_kS=UV}2+mv`^wUdy`Oir?+zxO+iOURy2kjOula^3*50ZEWUGf6|HMm{>;yI4ku2I{U-`nlbVmVTa+?RPN0 zcL|@}NU5A920|btYoiP~Do8ppleqSVS+_5)@UQ?UAAbz40^wTa&U&$Z^^MAXoaDd6 z*-U(=J_dISbc>?VJ}F-?$mK0>!#(ZC(VGK-GFtq ze0bzO2&9euVdf_{QX~6{r&B*BJts(>%=g@0iFtbjMy0Egv;Jg?nj9UHi1INrd#_gj(__`;V4UPx|Z^9zv4hY`5gmM_+o0JL_ z`X0u0<(6qvYQE%8Xs0q@)2CijmUw4q=*~r&=vu<(@mi|e&UhPYETo(goveUdw0TK3 zpz)Fp+A19&ZcvU(b(3CgRU!)M%C1L-$M~S9zvT?v`F@qZcw_4HG(^_Ni zk2e{1TVSdDPhIVt8Sj4$(U>XW*hT;g1dOCHOg!D`ITIzJ$RquC@718X_?-~CUY?!8 zQ?F5yGRMr){692OJ{oi52@!#^757h(xWz+AkEZ?@HN0K0O@fb z52pFc!g^gX4QC#sC(7b(RFC~v(1Inmd|tRPEn9o+Yqi1c>JwZcX z`22A=ZWX}Qozq2O8Y?3mbV3u>aF%Y~A_Uf?BV2A5o@tC?&-`*BC5S(>aqmhDVOh=h+f?k zJ~xi7Z7OC)8;6wx`$ml5qgGt+xMuQtePH{2b=Th>$-L#_Eoq{QhSBvVtf}p{M@=(L zeSDnIJBdM)%X~w3pbZSXlcqy6#iDff*#6MVN;G!6b}x9}Ent-4 zd2a|Zu^(bA|B-SOzfe$_DnRr<3%f(3f;Sa>JxW^!PWd<4e$SNc1Qml~ivZ8LW%vE^ z2+)tc@+QHu2jqHrRc-F3*&(!~LpgWvxcx9o7I@BQjyVN&ep5pJTyREcEOjjg%;2qd zbDI+cBYStGHvKFjlCtrwamaeSIwQ*CvoDuN=w-?S1b+fRbC zjXt+Uzn*LznZ}FAR5cVDx(@Cp?+I>U?ZnOC=n+D{|S11n=Gj_}Wbo|S?|6ED; zw^3Q9)$APbI$Gqk#27q2+dHWieDdT{0VzY68%23qCZT*_aOB#rLevv9T05!CD5Q00 z-AMZ;%7U?)8VAj32k{7hs&VHt{6yQ{TOy)|Jk<;W(6MMd4097z{8snC+E{(me7$0l zt2_~(Z$-)7HG8pJoAucCw`}FftkYc7OnN4!NvBIvoDYx;6aNoo=g=ewuqME^ZQHhOThq2}+qP{R)3$Bfw)N&+HukWW zt=~`;6;btN<}q~YYgYaldQKp_lA@CO&bVq>k_3;r%QkjYYswG1`azIgF|i#TQvBFi zjmqDtelJzYx5}T;vufEQ^o_!{tMUf-v`s&k487wAc<7R^G&^ycD}6$S75oH8r8$Xc ze6B`vx)Nk^N3-fNFW`;`F`!K)OS{;3aOH^|D`g&;{Oi&x*qoj7JE&JZelLPmMqa?6 z3z-8dX!`=xXkqHk9oi{WCBH7|>;QEi&zi&Uoe5_Xo3p5nRG-oDJ`VQrquvqaYkIlX z>TKuN7(r_1s066b9+YW4*BM{b*RUyvV{;nvo)n&wFXGV%avxIhK-7v$UFkGL>9RyC z1-<=Uu_WMKb%iz6#17@*CKKcXDYC+pPY4@pXa9FL!QsU^APUEK%i{?lt`Br5W-hFU$NK} z;7nI!9L>tMzI@i&)x=9eX0argW;rZ`NU$D;yqKp4&emleIIkg3m#^nbQL~N1GeLQ> z?Gd-zx%rL_O%P0$A<>y?XjjBjV1$P>Lo(0DfqJKx`Librq*= z*{QMT(V#byAu9I4G+sI0t8Ja#fZ7k6Fe6&R+-*1k{Z@FCcGj9%!g75)z;zxLzgt>< z_Z*_OiQ7^`xrp(;H9<{8=EQ=RlaOZuEQ_acFksnF^ z=korKoc2~%VLNM_Ee@D@kb*P!kcb(hUxFjU9lid#d`5z4q;%LCIpxxyqBI@M`bu`s z`)zD=jYy4+xpq6hZ(U#{({>pFoL+v5D5u3$ zjt?)!-HlqY^-X0^;-e|EV$8R(lQ)UieYfT*Y-TerEkHS1vt=P-!o+BPFWfS-Iv=;l zok+IN+3tbSCErqcYnz{p@s4HU3TWk#lB&lTIRR6qwiRTi;(<9qAf%jeGp7O|`7UNX zK2rMD%U%D9t>1DJ(wBM?41>cezVt1*<{F@P?w|N|{WawwR(WfNSOc0s_IvtwT)`=F z3`=!A(C1CLta8;FI=eD7(%x)j(7~tHI-i##9ja0O$7|nhyLr0S?&U3{hyWf(SKrNy zAMZ+*?T0;f$*6*k5Lxf<80I`uU#}Ilop{;8L(01aDxxS1sMyYS^l@YuS7OPux%&BX z>s6dVAbjo-E8tIeG`!weAVXpUhaLN>$xP-hX4wq_)`<`Ab~|98>fZLZK~*b;xB>Hl zn1-p^Q&4S{W8K4vf~D^7uxQQg_wnz+>FjyJKEvKnVBGxBb{y0p01Oh+Ft=*EjLi|T zqXXc;#6SVZ8++R~FM_x`0gpyDApzSmRT9dZSaSAz&rFu{QS+3qYB!urE{|#Ow;#JZ z>jz14ogH3{1%DCx8MH?nKoDeSh){A7G~>+I8_KnJ@Pt=#pklVb0|MfENQra7{~*RU z1lUvyZOJK2;cu4S7rc_-W+n*GQinJ-CSVBinBPwI7#F_a^(PIjk6`|sukCyj%%&T} z4}=~xCJB5*V+k$oq-51_^QTWCn-!%?9yH%IR?-o9ElADMJWuA+jmpt9nHi{b@ay^CJ1;`hy0AwUSg!29q+u?czeaTSpt?c*_PwGfg%Z@z*CREzZQ z^t#sAsv6R%{1KQ-TrUAy8Uh6vQrU4aSJi01(lk%(Z~F7-+a?9pIpR3Ap!50=BZ+s9 za?BNnTWOY+V{J9f4uoDn649f#4{*b5fiyxDL14c9m_6MpWA+3lR<50GkE-+@rZyelR#(0DV`MTG+9M2kcT&@0f88E1_fph+i>R$Q`py6} z+3U;47`#)%0oN%)>z+BTj0>?;5g&{xoXb?=Agluos({t%nqyw9t4a_>t9sn1EUn8^ zDwJl{B@Js};AJppAp+iBx)Nq0>jtc>gI|{`{rh%yQ)<)NaM|e{H$1|HRCXHobEZot zZOhJWf4up8G=7%d7j^j)JIR}j6Gg!E(|=~1Q5w{q(e6ul$+Qf(w#7$MzLw-^ybOy? zX%tMx>c|x+daLH9()pIAj?>i1OB*u8-T1k+UBq7tGP1V(^|g#(?F#iYpNlukVZoJC zk%G)>08O< zgZztvxQ18ZOz&e6*H+7AZz>nu=keFWzNqGI!fYM_c z%>)*FpXuHUfft-T3h0~>XZ?4uaN)1gf*KUbNSnALY>1(3*A^8E9frm@L1}!POy=}I zk1dk2`dD#CE1~{Eod&pGz|vO_61PEju&-Zk@T9L`k+zD@yGfauIz=lQiUyE;p)tRM z&E+m~#VsMHcMmYnpg&Lg4EZRNb41M+83#7DjiH~A{Y=vZ-u zV>u_K3KlkGFPFIr;s$9^Sr;&kV%}H+ydrjCM@`{w6QeBCZ<=59^vGwY2E5A9MGJf|jXI1{cN{j)jL`Y#{&x^8?Pj~i7!l6UU7(9aLOw$JpRRZ%q^ zG1|qQSF{y=4mQWj{`St*bHI06T3U6TRatCpf>=Vjf+H-ZV4pSW_*AS z+@pVzy;z7Dk+C56E>uv0=j#C5TChw%@&1`l_r3V6I?x1ynfwpe!f$-SrYNY;ch~UFWoG(T;757V9HF6MZvya3}Dt> zC=*BD7XEOT;l_3?z1=+>AjFw{r;u-Bp$QDdjHQ-}qc3Po!`p7V={ECxxEH<`q@I|m zJE_sFO>`V_@h5WkH%D3?gNt`mHL`zSqf%WYu20+eEj(;inZC}Pow{w1C3{sh_G<7g zsz>kGX}oo+TYj|n3yK|85I@#_fcz@Dx@WpiAEv_7(~US3y_?Q1;3cHY6s=Blh1zwJ zgOG^n?SAk$jXrI!CwHp%_^vs#DmYbyvS`=hbWktxz zM(Z9g_jTc58p0ShXpN*6@Wm;w31O^;N}iHBST;?c@X(KHMdvgVm*@H;e`Z4(hi(p@ zgkW+)LrM}R+{btlZ%SsKKTe#YK&C2~JM%k6^7N-W#>ig!@sM5M_kae7>pB2afD~_l zEPKURzVI_6ifDVwX?LZ@ecrLcYdigSl^9%&xVgyLo8pt`&pU5R#iYWyt3VV>VVvWYO{UxkYG#O~qW$81m92JCZ zDD#9qwkYDFHAz(5XHUl-@abli9mIe7W60XgVkCws1jKQcQoZ1GY?e&t@a6onGh;{5 zHS*Hy*1IVX*;@3c zg}K6&1j&Y;cJBLjUYlZYG|rC=nk{zUr(tQB&{w6e9vr9v%v3ua@2TAt9sIv>;WJD5yO-oGMd9OfH!1WhF^R|O|&;*P7 zN$z>$?~1I66Y6qFRHXtYK}Za#H^dzdk)46SGbOVT%UxGs(E*)iq?d$2>Yxw{R1hW6 z;Uu0+-n^X%=G~MfncRt%5CsH^Wc#A=DN%~ls8}__K~Tdfut57cn5Y<&fOncD0YV;~ zm=VTATKisie4eoi7hB>n!ANq>2w@lzqn{I1 z`Vuh6szs+b-?EdO^K*zN_97wH#Np1r?F(5{x_|;OtTi%Kr;s4Z3$OGFyu&s;fNQjp z-U!(dmoE!J-Vl(0lU%}y$xQa40%_G0vDlpFXv`C;aRLw6T!rK@5<889pzaCanLpZ6 z?}?AkpoE3=XtMet?9 z_sM@?I{YE-!wP7Ja9(3D^`?_nvr(sj`7ZZT|LBKOdq6D=Ri5+;-Rq*lChC*m$dXh1 zVgyx8Eqt9x+B2PkpcAQZJ8MPQ_c;DD=8^c5Ik1SFPcr=hFI($I?Xc72v#UbWcv_4G zj4~V3VHQ;*i#7jSE=Ub7@A@tSqa^xofOKKfwr2UC5boZ5l05mDp3_Zvgy=3xoTYs) zpze%sP#Qk{p6gyC!485s-4S5;oHSUu6EDm4qMmsVSz=DN%W9p@456wAsJ22X+YRF4 zLX|##oMc7|=e0Z@q4i|fbFgSu{i-*~a#pmQ(5?gc3_eec!}@5+I&cm?<6P%^>P0X)sV{&IM&Jf8F8NsA^% zgY&DKd*5-RCNRCzdRBhBou0<+yS{}mMXTM`YUw5^K11?XP4tO%jKvnH5}0Z3M<;=^ zAtFjE*zs%<9#K8yPm!N}rh*{mI5_i?`6S47Y=xA@DZ9TY(@ej+fpi(TUqi5$?x13$yD}g|mYU1HnkVF7*V`2_?}LFQnuUymgBDFcnj3}uE2c4}e$VcE zER*``7~Cl0(#YW_iFe8BWZ+H5T3vhHoRTbfiZWj`M&!-_!9a{{2f)^r01pflH^%ct z(={Q;_pbv$@cj}2TaY7~K(~#78JsCWm`#WT6{9`kEWu*}HIk!(gRDEsroZ7C5cefO zKE4&OlbADr%g&q1kfXgaW!Vd{67t zx_+KFeLPwKZh7Ex+WNFXG{-!%lQ(MK9EQdjMgc_;2(3z-mj?kU??_h1EN_2bKSDqj z0O?q#_MrA}U={S2y>oGPta)+{{4?xVa{LahKnt%#!%;z>fJn+o{dSDk$t?qt^i5i6 z$JPcXD`>S-*?i2*45xKB53_PY)wo*LW-iAab9X@5vfOP>rWcbyv)Nvlw9kO<2}wXT zV7WVY(`Qb|tMw2*NY{%tf%S`-wct_~qkOZ#a{XMz2_(49dm`pSDs_)J0oMV@bzCCw zp|lubqD}5e_3~w1Ci$>s+UDcqht+S>3G@k}aLOh8PC#!T2VSr|{yZAAVXj&1>QiGn zQw7@%pZe)^%y-BJPY{?nkXi$eE?F%0PrNTZEVVB2`ybA1`OM`xrAgzyE~C{uzi*%y zA}myJA!Kvjc#rC*oW)@DN39)rr~u^H0jh%yvrSOcl0Q8yGBI&EWn*%b$C{sw>G&m7(rjO)XLA2*8c=+?#2+Y|7l7vin}w7P^{y+v8Go2?(} zLa4pC2#xA?Z|B+@I-2H&6y$~S9mFwT0jxrW-AaB>>=L}76C1G)u;vh4bF6C88mc+b zs*VB1px;>rbiFy53vnR1pWh=wBX;fWcb$VYe$fu>6E6z;qlOupLGTRK*I=DEB!C`p ziaAEo;zu|EnBq(b(J+gE+8omtJnS2|gi;)|$wwNYHTi0J5U8f-c*=Ic|9j6u{rutT zNj6b_Lq1Vz@VDIbPYUqHf{cDXv;l3ZbAB)x#yb^n!|=po;9>Y(xUiIAdn7CY8X<_* zjzh%DLj#?I{&F>54MrD)B!tez^iqNxOKr#|cLj^}OP+x>oQH_VS4)NYZtU%}aQ7SMn)U|)`G@Anpm z5gKNYhq0>+fmY6^G)kWogj*BVwIs*u8HoKVN$=L~3gi`?ODq|4w(cM&cPB<)i~QpA zRBqiMYU!>I%YI=6%`MGtLygOwDNBF%2X!Zq&ow3$K{sFGt3x&Mu6MlCzt|OeS#*EV zN;H|S#--tW1V3r%tzS7Iz1SMV9cp!ixv+M5j~&g9xlGN4JA7GjCJZ`=0NSqpIdAvGINPO9SPic*P@DTV?#3^dSkD1PP&?M zLW~6CWw-{k`zZXj6ZgTb_cuox;O({{SrTqrY z@n%X83cuqRhcbIV;3gIbmCCiQ+oZww;&C1WdKTbm<7Z&Ce_IoxT>UFynhoSZyPBBU zrux>Rx-Ew0`wpvr^`z|J`OYZIRadI`( zE=Yi-4UMK;&51cPITIv*>VS>W3%^cP|BlX}vmRm&^r8or=eef83;P&IVvL5vcnln| zmt`?DND!=^p_2;q=^eTy!V~+Y^1=}4)?dnLP?1)!TuqwgLy_@K>m!YjTAQcA4_?0C z4H1rF=ejbM6wQI+eMn!aPiTps0drrU@7eDB{?{4x&H|CiIVL@q{APgG7NleAt-x@0 zs53EG6SVMTxSO4=%|JYl#f%Q2Q}^Dt{4_fg7#%#kY_)-#qW~~5icR^ zCw$Dm$?_MWOoF4w=_!CdTO<<$H|7_u#KvKL3ElnP3wC8DJ=P1e0zvr~bOg(OU9|ZQ zbK{(h8*6rauhD^=tv<1c?bj8kPXb9O)O|H8v!@O6>6j{CR>740+2^VElk&nAU+g<` zj{S8eMyTO$%?f0{FMp3pcK3YFZ7?WuGC_801@q6|4z++t*1xMc5)Zc%rXaGm21L^m z>QZ-h#%@d(b&aG5KmajHk#R)B-E*+Xn_sLaEWBXhMh6OhEt!M>_fiDlAA4 z&fAQNVN!f4ZJ{ynoAK)O90R=-=+od!YR?Cc5J=SH9u|hKExc^fXwE%2PY68xte8lf zALZFT$`MKk2-F)ph#0snJ)E%fumKuWbm{(X0~(Q2&OqBv+?F;f<65S%8zc>hHhQG3 z!;avepgA> z@NH|Un{V@&s%gKUk-zo@PLiO)TG7pp{vbYvr6%>5+U4hiNZo3z#CYc`4z(3hwkDGXK#JwH=7C+5K^HRMk{PuCFt>< z7-i6ykc~}NHjTL8gmqxf{*fZ9xBiJTn@&oVEJwD%53fH^e2fZJ||f zuI1s+$U+UrRS0}}W#7ZpsKA&{Reo*D)~NxyR8g^kV-4epf}rr>SIi>W@FUvjHHD;f zF1wb7%JX#OPrpkeLpf^WvU@vo|KPzO(e?g~poz}xHt7G!nuKQdQT-qpo8OG$;6JZ@ z)A^y=+j#$wX32HM*ab`Dt!X~?KH=Kv`et`~HlThrd~r%|_-S*Znn3R9!pginsh2nRm9%_P&|&Cx99dOH5%V38qF5*2PP| z1y451xOpN?w)c1o|Le6ETBxE_7Ypy?FV;g8^qPFgR5**-I9qp&e%3hCcY;ZXx`4}P z)a`DXM#AdH%SS4B|0UW?{{EdGyw6o|JGWE84J$JnP4HtYZ*yldO%Gg~dpKU`*Ft-g zHA&QMHux*D94-}v*3QXg@j+GuSQGVr%rS_ULF&y5)1_Ayv7Z?Q(e7vh^u5YT#e zR-;%JUbVnXqZ*;{*ZSiU6sZJA@=~sdiYzn{rXo{E#wA6_ehRIbdDWRv!(~WCMG28O zKPs`t`!0XxZ!E&>m2K|xU@xtbAM}ZNw-ZH0D5bu99jie*F88a?H&3`!h?ZB}`a-(? zI9XJtp_hPyi-A@K2f{4<3MheUKcdULzpuMb71&-oOfVG;dTt|a_#B()<2xHw*V+_R zy{H!(%GRRmCK|MWIH8CGvwqgv(z8IH0VJ;T5*~dMY{{15-FWT*jNAch;2$jr3_>xo zLZj^v5c{ZNC&Md&o@=rSjPQp*C)wKHw1gPP#xtCecUz zKM;_YF*Y0_0DQML-7|i;g%&A7qWla?wO}4x{Q@AE9xgyoN2E#Utx)fFk1gv)0F0)< zi5C`BX#k;VlH$NdF}K@1oV9xjSgH2bAf{w-kVAiul4SY((DRb&k|vCf))xYxSiz_` z4NZYKk_9wf%;-X^A_icHI}rQi^!;%4T_e5lYGMsQJ>W@>EHM9SG()jyE>1&;SQ-(6 zJ!Qlgw%5w`T!b0}kOrE`QLBSr$hIlK-tKp8~0@Uk@QXkb4b@3? z&;8p9HLtXV)}P|NOCix)rxbh>y{9M8Tx1*J3%ubyCcoR`0vG}+o7km1jcy+arVkc; zgT!~(CM6eil)GLy=)QmRj@PFDSRUtSNm|)cj(KItw|Xx~9v}yx{tm?1jY$dvSz|N7 z`1I2V6#H8qyPDT4(OJ^oB zs-~+`#_OWHZA0bV^iZdxxPBB-n9-7F=|WZX<11P+PUh5pixRF}MPguQP0qk{S^ zF`EWPgTaW#%6v?;tWPn+yzXhFMR1M*Mz}(jze(Ly?80n57wkrG}IAb=n9W}QqHR(dQ?2JFf zN5Kf*`r!bVAu83Sj=SK+nor4MUF$JfwvY5JSBKoD+d0Gh?DGS(Q*GiOCSoS`2LKs! z%Snc{in=a%M9Z^-YuBOZN{ByG>>-(5oNe<%im1Ht59&+zQlm|n;6Gl8?+LyR7V+%G zW~$q5kRX6w&#MMI?{DiizNQf^&&cNh_~FtUR3kmT*^&&-NUHQ^^^Xo086n~DP9Ud10W6R8j0YPjAhJo_ zb5P;j`t2kEc>A|<2)XzB_2(Y}g8;gIh&hn#R?qEXzYH+U<++tGD5=~xqZn1f`S7Sp z#mn=oySc&OL;SMKebwS7MITR-hGFJ3V9^?AOps-5kMwJozBtrpreSGktZAJK@89E4 zQ|O;Q97e|C-Kqsh!Q>5QDk|>Bt3Yzh|5AR{juRFccj3bMO}6H z>$zWFVq`^>P>+P_9PiMdL)j(gpseVUs6|}MH<6J!pR;@p^|vCc--c7HSnZ_dGj(Z( z?e{xht5m6zXMuud8RbRSCgVDH9MhlzbL2weS~Ok9rKu`4+b));Hi<~p$=Py8Q-d-f&GuVu zjS=?#UXUC9$^<0=&1Q!Pyl$I@Q-K}H+#(DWCw&cp^>}t^R6#%t^7Y$ z3peqf4DK43j#VbN*=`pp+)b!#o-Z$nTSKGk3J3j%|eW3(hB5vbCKKyLl zm?NHPu+p{zX4=>SB~O32kX4Bz_r1*Y?jbf*Z z=J&N=%YcRA2f2~tUNHC_CYmevxMW;^?E*?2cin8^qz{PdvZkn*xWtY9C#B%09L$maUW&OO`m(HXk} znuCDnfaYV`spwl4Sd@}Eh{|3CpOeGRzqOhV{!53ZG!R+`Q(h+mQo#7ceER)mZRmtQ z^x0mbqqBGF)2CxkkK};d8rE_W`pC%~N+R6B*6XP&1}CFjP_SPrYBML3izh1i3x49j zry7@q5N&Db-55?7+TJrZ{`Z2S;v6ZKcsscM;rUQTNI|$qN4N*I*Wgq^`fs#=NR29D z`A4pmCyk&5=zST6@A8< zN)d;%5g>39lIMXi1Q{cOs-j^*348x8c+|1K{yhO#ST!~=i>YuJ0bg)JpM-b#Kv1=6 zXtcdVRhqdGg4~#BYu(X9H8I5O~<;JG$&QT|nj=zK9 z9K?**2X4$|dT#?US)GwI$QAMqHd6{dQTFu~lpP+D^~w49KpJy!_`#22K8J;)DE5eK z!peXj7bSNR1O)IN00lDQMP%Sbn}>igmoNrRI5=C0nNGO&4x0NCvVGXhgw&iVp~HDi z@zh{;78&i~62S$LJgc^kXkiAZBd=&XJ|3t52x7L>TM0P2bl|RlLL;34r)&NR<6m6e zrUkr0y*YJ#yy-@&OGEOJJ@o%NsQZ zK7Q#bsedq3#KVBdqMDZ#=4^b#8`=vrk$S-$Rl;c1=E9ex%^tcQuDBn9Ktn2kO2_0o zt}At@k5KS@Me~sUZ6Ke*Ga+5w{)Qxc#yhH2)1kxaahk~qlhqe5)PE-n2Y*hd5N?W* zapewGVrro4dQ!k_6Y$ZJL?y?HPF$?4lG!ov;C0PcZY2^UaY=`A6on}s7=Eu^8>i*^ z8l;OSXV)w{uH!xpN}DZ5me^_XR(`eL--dn#%^R0u8q`xkm62nj${ukE<`Ss`N}ydl z`ySu}gnzyl)SloMuHG2rEW*1sVtV>JU97v``WQDZnW|$6fCz_&n1{uEtx~wpb73f5 zFR+|2w4C(M>duB+8ybBZ9P!CuUw#|k()LfDuorW3eHop-&0olI!b>`Yd@2L=)0N>s z|Io90PyT_zSD%!$fp%ej!mW6p*WKzW=*zB?Qg_m_dEGidEI#w(%mHGV0^@$boX@nm z40i5oxo>U!hR6AqI9T@A_Zu*!wN>^s>ItVb=p-DP6KU!~6zx|Hmxey_KQ&!a``|^G_J9H)`8+y&p14E0HF-;~x(BH|y(<<(KXu@KcKO-biIk1^^PK z_|!`sSS*3)q;bMq`33!7BxR`mIj?cjnph%3#clXMr+3uk;NQ3frl5VHTUVVCmmLCU zs@nPz7?m#zMugjmgfv@DO@PIUuk2ON8$6Mdxc&_jcOh+$coT<%{u(F4<(|E5M5hU} znc{vN0}&mGq%s6=GEeG)ep}JNmgCRBeW?5{&h+*w*Q_{DC2u3@a-pKiAOrq8={HfZ zfbda;X!4l@kRtoqsH#o5`DEoar}vb2{&xg5*L>HrdxR3d8F_a2spv`DE_~B6G6&5^ zu9^TMXexP0wmqK65|DYl;6UOJM%VrcUiZ<6C+JJ=#d;fu6|dh=Z2tYeB3f~{1{Dwo zFoK}3$jL9P{=}E?=G3^&#a?RpRM{|w&7E=IF6Fzg# z?S#*e{gGy>kC4F(onDS|f|azHSC<5IyiYTeGRiR$1ZfBvQaYJ~ACJrk{-SF$Cq*}- zx@H8ZBbJURfdwVAY=uqdatuKeEMAzk_Pms0Kpz}md?3Z{f1r5m&ZZsR9}=t<3Ogd&uzaO!RgU)w)3@j?}?(g zea%%gHln*V;ZxT+iU#Djz5zI076)xC`NYuLbuQB$K0eZnlROy{)zt!S9`P3wspmvk zxh$f#=}O{C8jcF7va024SyA<<_a^+LTd;4$(vMH5D+VTGh%TnUT+GwLrZNrTNX<4C zTb%AcA~Rprj*|j4P=lS0xLda4n3+jftAxK_6=v>5$BajcX|RJu5c1+u#v->(gQd!LD^``NY#y;BAeM_Q+*oAqxtZIc(awx@76?324tGn{gYji12fK;uE@Sc%W_IyYxGL`!zCHUnwz25QXX=2`CKyJl6l(pLS^Ae|1&-mSJXwle?UOX+< zf{|vEBRs)|3#EMYpnoJe)gRZ^lX}jY5MQyULC9eLiUx$w-i6<>GeXz>o%6ml8>-2Z z97?Nr=Z?FUf*&?6-cJF*;?@t-Y0eQO;HV0Gglk0^a@9Ya`FGaTH8qLFb-bZ}; zwj8lL#2h}X=P}A5;8!H;VT+U+LU^?(?DQC_4!6%A^s zIc#T!a7Pm;i=gn`PllOC|5)&Tq!*U!K=SCF zMN^xB**1!AyNo(Mx^P7d$cW}?``iHhxVm-Kka`3Sb6jZOrF!wZHxI$QK!e9*vSC`a zVVbRMxhuI|{q*V?i$$VA4&0Ht`C`S3Flf8zItTc(sf$6Ew?(-t%^uLa;teiPNME;U z1!PK}V(C0cI_Nc3(X)4jdLdJ!G|MqA2Re6pdt-J5>Ky?GewHD@Gy;=bV}hZMjAD^I z3OSakpz`@uxfA`&p5LoPYjq;@0~1k!;Myae9vO?tzO|%$k~#5u5k*jpp8kQAQTaG# z#}an2S;`aI3In&dR6iu^Y(f_zjG@1DDv5UjtGEhRNZ6pKhO0_1H|h0(jl`q^khGbn zQ_7^PAe7ASGvaG1_iM+fn{O5)15Gc1Gl{Py=;Nb;lep4lXloUZmvEqN*v(c?^ic7B zMOyXcyw|YpH{_o+1B)!=ajb&4guV1$=L|Hu6hgo_esWxz4S76ipA4rD47&|N4uK&+ zhk*cn3?c;jb(h^3yJyH2P4$idX~8U8D1me;0bmx23@+VByA&|^MrH_MAYfk(x<{f& z0yAYq3&5r=G@0EaO9kajQ7c-A&WlQ30N}8NHR}fMf#PID@Ssx%D%H&5t~SUifVSGG zL~DEj7YwLT#mAcho~Y7FjQ}>EZ&dx(7x& zh@(uI2sQ$MDt!Fr5XeLj-imI;#?iIm5@!|n5SOzxrQh-6-Y8d(G}j&~Z^qHhAr|2} zUI{>k{yTKu_nJ!(l}gG5!@*jCRH=;QpO|5F{A!`CEO*+t#PNk^Lm&iptR?D$G*>(v z49k#c0CMzo4kq_a^T$x&Sk{X+LgX9P0ZdpcSvrLb5nhpfH|?W(bQncI>si+_usX;% zpp(rOUN@tBS2}$zZsVy>axpX9(v&9Hr4;62D~4bI%Y{TW|=}f-rb6b}M>blkHFGWGk59fW~X8%rt zzPYyi^=c+Qec@xiJG7$gHtatY{Q8tP z-SR3w-75ex17MZ;`vCTK1zU^(s^>nv$DZSqTHVje-_gCHe)e@p1u|XwMgFFj;$uqp zTtGDs1ZQ%&o~vk9dZuH zCH|C#znDTS)G%<<02n&uLuXrB4TR8s6Mm(cV+<2l>)-28p~gU|cnmufnK>;rhbmqg;!`(Qw+28Em$i2Y#nA~u z70oJ2yZZcMmhNZ=Nh0GgGVKqQN0c2xQ0SPewI6OlzYLE%w@8kcwC2W~fdL_Qvpb(5W-K$k~;i>&Og}Syan5x{g$u5VZm-ZEw>mB zfgI|8cfewE9RBt)yxLP(v4v_Cj95x^ryfpBXsXC1tSMKh=(61L(O`+ zB%b(~$jf&@bm#<0{{|7D(Sa@6t>s7J1-mr`Hf!#09-{8QCj9A2&|5C?RXWAh8nbXVK!1NM%fZ_6E3p;z>?zi_zNPFr;I-Dy>6A_rLA#R@CAWGntEZE|q^&@5-=S&*RZ_@PAAUQgD#+lW>8!A+b^{8myv z4Uo+CUMWCee|mo(O-AuwLZ^pxB#iyj@ocZ`EV+?|1bG=szlPcjIK14tdVQP1+ykuX zRQI=B1w^#!Wzise?wXb=V8nmhn>S)7HB{ET8+a&O$*@Bst|-F?+=#^bDqJNvm0Mb4 zAHsUiN*?i35<`hyKm56GauafdEtZ>Db@qAL5wJ<5J1j>NVwy}x!wRLTfIAxkx&h=b zEU_BBDxH@puo_kGo&@ixvidq`d$|F4$(WrW$HuU5~Z z-_Xs?ksYV2+A(*4Y^TYgCe^z+fexM<&m*r;_EFE<0v3t}sRlHEI;*7sI*wZo;CS@a zz8|W58H0tzqjnXKXra>h2jhfGFKJf*2a@K=LP9(x+oOXE;PzI*HUDMU2mTV zc;FRzkMgbHwZRX99J1R#Ue>!jIX3;_)A%7QJsOkwXlWc{u7e4c&tn_hJhmyZe^DD!RXXAsPXPmEmG(1{qeRm?9!*e&}Ad6+5VXSg-^qiev0ErB7iZMhQX?sx}nYD z9;e9ZLd@1|fm+>(51y45D7O$r`9oM;Ep|N_rc=E*`008e-VdK7>~Qj=#5EB?-7Nt> z`v-6(QHibLo=Z6Oxv)C2TEyXk?P+BnfqAi=-%M!AhCQFmak4CU0e{6o7Nn9|iU|U6 z`E6Un{y*fsb#NSOvOOqfu$Y-y7BgDRXfZQ0GovMonZXt_Gcz;GVvCujZF}x}GxxsP z7jyTwe{957M@3Y$)DeBMGEbh&?E1b*G&Ajd!uF=RtQ^p|g$Prm2N?{9i@nT1%I=2q z{G<_PpzR+W>FSzxB_w^O+J`Tc!|(zNb8B^Yfw zH_7$7=m}YdyG8~?3Oe%>*gP`Kt&EujabXkiF7p9{#y% zczjT@GcoaXH`P(V8eMHlWgB~UMx!moMA#R zT{~(>?SBf)P4oKM+fz)r%!5TM1N9Wj^f?xy#{J4b9nr#Wk(*xyxs`#KhxWw!o>)vk zF5jCv$wy&eKlx7R)5A`-$n_XyVrb#AIhZwVw#}y0D=L}Rhp}((k-&N1P6|f!M z%vU`V+_{O}k4a;AVL3jGc63qGNzWBipOSSx3fUk~#BqlzeYt@1P&66ryp;7@z|6ap zFfK-a<)omJMrph27;KK4J682s7e(rRX0tUMgYLdG45o^L980{Zhr3b17O2PXGma-h z@>M*!UbM+Gt-}mO(R<&#nJ^VnmYl*kg`p!4123uaoXn|RQI%4?-QK& zXCWkH*{u6*T$fleOSR3UY^R>J6%D(~lwH@CV`--2H|!?q@LwJnlW#N-?bK-Q^&1>` zeurfyptW%ok|?cD-h5fNO5Y|(?K9wBRfc6+E^aN(T&Q*6;~srfbeYZO*7AT&_ZZc- zIkRkW@7r4luOA-9%CHEpNFN^w)Q*^%U57+!KRDMa;ihM4S$myvy649ryNyzOe(isV zTD_!yg-u&|mebY#;b61!%vUtpZnhXIHNhk8ghy%XG1Z)1HiWsf&86&S^6lkyD?C`U zc7xx;r)4kaI6sM5Zbds=H3RF$-WtmeUR~#Lh~oN)zk;D7!yPHjA9U;f_XDOUJE{=( zoIpU2-2eK3>0ftI`v`c{)X>(N!PVHn(ALP<&cT*J-_Fj;81SC8zKxNw1B0_UgSoZ7 zsj(x2zJaZ?6TPXqiQ~OfZIv{t-Uq#f6%+T%iG(#`}4)gY=Zaq_m>B^=clKK z$Lr(!^X$#3sSgAMlYU^RzBP;iW_TZfnF9UEq_=_&EL6)6R~t)TV{GK%Fnw!Z}k zPC_cMk&N%pa&7pk+GOuw4(RI*p3q*XNLW7wnA+M*pq4B6UbsZmT77xkn}V)Jfjz_L zQA1g>qsz6uuTDii=W18SECc@afNj)Paab+@-FLt#F9iyQ3Iqjs{S`m!-@*UOFy@A~ zHh;Fk!$eotRb=qqBEtvZBEJ-U)Tn^3z;EyGl@Ia3NJDy4z?XvVJ^my?+x*2*!9cy; zqUc2BDOd#fOUzJ|o~df6EV!phQ;o>mlv*cKMTD<%OZu~M@$nBSpTo*1HGXbT7#uG+ zI2r^Df<1cirbft&;-rzK=PTP-jWls+XQzgDV*}tpLQw)PxPtyG+=A8~z$SYC zJlFx3|LN^EG}E^+HMVsCIKeN#nM5n_^JS1A(_ z53xo@@C)P_5Gp9s2AS!VBWpsZ_!T-xv=eH8oq(m^pvPHcxcdac4z_!?a&t33ZzQH3 z4PUqG<1};@rPyXa-mz|GVZQnhya0#X1>XfFy>!~uGD_9Xkei(C>u2p7BcS!t^$^pI zfB=5;0ykPmD`i%7DuCh!HCTDrl~EyD$*#Ey%fNVoFv8-*@avy=gt`JkWDCxw@WI_aV*mco zid2Y;PaSA}=7&>pGgAR(>~Tq!+Nl!(lqhoOXcla`x_+}MvtBdfeF~TRv*{LQ4}#n5 z!xLX44!e_|#fjs^>(jH1=UJz8{M>Fg!uPHRyQRTrQ!8g(Pn9t{jU9Is5ZRSB>#fW! zY|o|#qB^)(t8djGovhto#$DcTNBsfoGk3pI93wq$#sz6}3VY z_3-cA@cQDyUmN_uWoQvQ9_tSy zU@}B2JB#o$wCyWtz*iP^AyxB_)zC7uL!61J%+x4MaZgQ2>MH1mG<$L2k>Qd8Y{%5O zI#}?{^yfnPHK1Gps3EbRuv^02g8abYGsV|)d0{RLSbl%#Rw{&#|EcQ`B`+q34|K(> zF43%Z$|VOppDb4*-#iy1KX44q{XiPw)^~zm-b5Oyban^~1my82Zvyw}{?noe%zx9H z09y9XjJ-70rDsdfsn;F%{(f-2sr&x!^YZq1_wMWa(7E~c=Jot~d-r^Q9upH|s;Bqx z{>~4IN%>}^Z=||v$*AZl*K4nJ7=YuBmkgN>|7tdmBay<*g|`fS%g z1-uVJWw!5u!HU}o-)e=rTI?Ux-pl6vP!GUd3poFo$xy)}0ehtW^Z3Q{|1q`O+PVKb zlT1!c>FMec@cX{Kygr|AZoa?2y#Vq#0f!wB<<##yj=0Oz<@ZAlT@(TW9|G?Kq!9$D z)KE}-R;e&;U3swvU&;_+ZBwDQ#+CypaI*?mHIgG6=Y-9{TgRK^4D^00u!%yYRI}TD zJqNc5zN(fD%DeiNxN_&9B#~HSMzBOOEH-DdrK@$^_Lt6e`XN2|->FTO>v=v8fUX#D z{u6(Ad-$L51J=>_kMSGnJLwzfJO0Hj)cU$E0BB#I@7Y;c`UVFs*#@Au`@z zJV9sv|0YvEkqKuLcUntjV<(&da^hh3EwNY_u#xccba-Mk14;41d4|`8r^)qBtK%fa z!CPBe=2O+1(ZO7=r6ooZ-)3uzwOyC&%kQm}zuP2Xg9FlY{GSN*udc@ScS7g4tNrq{ z|3M%Z+5Wk};w!70jg6bOw)_M`Dg5tmZ?Es~pvF}|{n@lpaB#SAT!aWia1iJ?{s7Ln z*XV=2Us^-kX~G$bH5<7Nh%dIMnZ-CK5owO;?>Vo%Z{zE5gVdDTDK?+5(#jh3Dj@H3 zZoW&BU}jPS{T)iSj`ZbTfNvl3zlIXm-@@mlZ*KJqpNqM%>z^_HQu-iZoqmTHVL*y> z0&qV*Mg=G^u5|-Q0}W8zfM5a8@lncg*r77L93)gT>TxU$Q5T>w@AL+~!huB5qR@gR z;-;!$B3G1sPL}wc_8Sy10ahKTkfrMY#dFfLU{(Sd*F!J=F{1oS{kLut1W|ajaL8-K`s=FI@okPAyE;t)rlT>$*Mbn6kK+xT=pw^5*0|kT z#0VHkP3)55$J*0PH&c#9l4oUUVR=sP!%&{;UdqrO5wO z6_^>j{ng)rz~Jxhu1`;QFlf~b2y|_A`T2d`d^`zPIy-&%Ka4>dfy7_f|{oS{Bi!jX^N`BmFyjeZuNhaw{-ZQ3P& z>T_ZtDz-f}VK(gAVY6jqS`Umk8JcYOTwgZ_tI)d8s@Z={)m|#1WI!8r#Z2~|O0 z2uymUn{XI^DsgsqpS!B6>_p&Tt09+!Y#VQBxEhIw-C30^MK5b@^-GM24*ny2!ZiGr zjsSM7_>&#~Pm+fD@1@E9ABRtG*I4(p{%b(s_(>GcNB#$#jMeu@_xYElU*V&bSZ**l zC<3XOsutJKwv=+XoKIx2JA-twWSwVWwTv8-Gf2U8-#8s}kkEnv zIBow|oPQ^I*yuZ%yBPo9Cy)QHwu%0FZ~sn(Wn=96t5*M?QS$$8Y6vrq-Te^mHnr8& zH>|%^We{K})k+wt1QXbkyDtj-m_vt-6Bly}tKqtA<#ur>ADLm8B~iSEk{k{(9BPG* zE3ao_LeJAcPD1(W6ytJ5pQSrM4Gh<&UHVDKN5jK}6A=X^ko7mOa)spvbpyP@?|=1* zzmq*}?Tl^yt%;_lx)^;s00QZHXXo@_va+*t(}zFSlVB(sK&t$`l$hYX*nbqBM!yQr zUv0!d!4%;ELtzjU(D<;BF@JbiL}mw=Auu;9Wd|d@{o$rs;i^l$R9r0Vaw3lSvx>4~W&y!QAFAtz?d#-^u3k?(%x)_lP7T4yIfO(4FXPXdhe?hgvNKbgG=r2K&ZP?~-K`G=tR z^h;30X2O+0!<2YaeYFwP=&(pjI^egRQK>iH+-)qpYRX-GLbilfC>};2NNG;NqTtlB z43p>C#jFV~GDcjDoFBQt~OZAY$?Dm^wbVUL7vP`@tS51t~PQB>mye2&({KUsK_Lf zESa;P*U|2_17gjNzb51$pme12Oh#gFRxJe681vuj{a4BQnoJYt3&8bDYyT6QWLD^( zN^rn(mjAKXaMX7(*8g3s{>wCBtZQm!&cK!cG3fbzakCRpKD@r(->(8{a(&DV2s|(2JkMJ;^0(QXq)tLF@4QR}01hsmWmzq8Mw=D`nLHAFG|%X)!l%BU58PnV=bMJjSrMnb^8V6EhV^aeJXb@ zyyZB-2}FLSoGJj?Uo!ij_V_D}{+;2%FMIqOx$%!y)qmNe zvx5&%Q2k+&?YFllK%?sVc;`MaXy-i;7!)+{ADtOK2t2}c;9sqofnY$HXV;{QaYXguT1fym1X4s)_>gg7>CpZG_I*!8 zzy7B}+|dazdee9K-Ou^=RcO!5)iK6srEVvtXg4LM{?;Gi?+*tM-vkL1xEyU*Z;m5s zP>i@%1|MdAsM~FKce4TO=O&>*#NcZ7fv2jTe9&^r5f)_u6p~MUhM8V(@zPw;$T&rj z?yc>YP?Fp{g0pXH$!Nioaue^9eSLpq0=Y=tlK=n`n?GfO_`eh#f2S4cWbF2ry9%hO z?6$gqJ)a+*@9zP?0JQ&ldwY9%c?p-VhZ+UD4P^;UFO_e@lVdpy{1h09waCp(TR(Gwb~wDe&uV{#zN$=_FD)j^G!tM86agW0>n9BR3pMa6w!y@ipYhjN|fT; zO`(~FvD3Ilhu!4UB+i3dSskDalDlew{DqWmaK595cnXEc%x zj}JE+fpy^E^%VSi<_(Bev#|w)KJBI5)OC=Vy(X!dnd&t?6Ddgy9p)H@jT_f=cwCNF zEVds=7^DUP59^2zqxgs_#uxU~I$z&uR>y!|*!T>L4X}{S{_LAj=to8q8JhUcquUZx zch-(uLc`~jH(G9h1Bu-qIcVx9*!TldmsyK{DL_!8JHC83X2>B$o}#e%+93_F>a&sg zPKAv$H11sd3-|W#IeSKNqQ|evL_c6|^H0P4mHr?B{~;|QEF!BUQmCozh{ImvJyT~|xJP{f8G?&O`Nx%S-m^|rm4 z+U1$adt>hI&~M8i=M6I!AY6gVx`26V?M^`Gg#a#RhNSiYmG%4 zy^HBsCN}gT(9iW@E$iyjDTgYPpgZG zT{b2i5%`jFYdUDKstp=y`rC!k7JZw7OewQc>PDkK$r$0;8VB2tTc;14ac?mbPdMLj ziX0ZlR2KcrUUt*O{kR*Unfi&Z{0J#W25DO-0)C{6d3SO}QnY%TC`| zIdwciw)rh83moDl{3XHWbR@3FFP42vz{~#gj|*7KGr^ZSer2%JDQ z&0?s`*wkWhE6nFSd$lbAV90A*;HJH>i$X7~r?Xwpg%Jz3gx z{`>4b)|d8rGOfvxZMAnVNYC3o=vwrNa*D&&XF7>HIS(;6*(!shjcsn$(3LRA<>J^a z6?)n3-I?{83l{vt=7~#Wu3y=t#8l{xL=urh+0c(*WNF;PeOeuwgIf88CBE9fq$qFR z6bFP*VYL=QeJjOOUNd|;AS^4T{T}=>ljsZ*UTqLcFe{Q)==?JtNy0NTEnYR+nUhe? z=e9wu(9(m^$v&`hT^G9cn()OZPHmo+oei2gw1!O<1Tp)kGAUae+sTT59PTV38c*>C zN2iW>3f8jc*342(@&}x{33SdBnAN9^V7wlZJGycU(B!T(YdZ*3 z)FPtX5`;kC!fq_g{vZ6TCJhfNgt<_rO~RY~g3 zs0deBRezZMNkvzJ#hA_IcA(fJ6ER(sFRYS_*^G^bd=%l1q9YjNpWDxqcV%5e3~=-@ zGUH-1-=w~5^*VWr!n33HW5{zx>6?eN2-`(6kWqTnuv4>lHiyDbXdmQj$*GtW3A=Je zb-P!ipH>xtyITn7Nam++Y)nGqEj^w2oADCUJq~3X zZLh!HKA3p1?qUqQoY+r8ym z;;Pi#hdILrK|8xp=@$}}*cUxPKiso;#m*RR@=^w#14ZB|Gs%l9*8532_>h7>E|w)N zxe|{NPs^hvfpWGwf74$mB(4khAx1)ms6B!$1Kvbp8u6iUNNRg4@=1VUkM$Oi88)bF z*(&{L-by1`U9A@^sF!PvKnZ&7I!RO#tFSuLYG9HBKW~L4R4I{_TVFdV?ge$tnjj6d z!+z11aAcIq+IPT{Z+1A;RrY48f)s7I*VhLQ*$nlv+=Q! z#JAJz_47bZ?hCig=Cwx=CPea){?>#$zXc51()^qXHBvMT^woxTTp{6e&9KNlZ|hS5 zPHdFs_jK_MD+?nDF!$ZVb7dTiCK_I)9N*IxF%us8__L5`x`tF@8 zBZX$%gDM@twl8dpQ1T}&UEh|{JKnb7h-HTCP6gG0L1}o7ReLqczt`m>1^t|ci90jV zCHhpewT?WK%OJ(`B&k6O%@jTu*gs*49kHI517%uW^M>Ye0TkUm89L#~6N2JFt?a&H zF7$(E$TqB7G-6YA*_&AsqC*d#yL9&<(CbjCU2e2JkLkLnJ(LxxJ#@nSTM-y0>csJ! zf^zJL$lepXA@XT4I1X)m(F}QRfABHOELTgAfkG_>?w+j4?tFC^Exjc)zCwLOpLNB(x-$xb{(% z$P^!itZ`3GZ^6|_GX&F-z&P&rFCCPfJ+x%UrbCT4o|jc&aRR)$h|v>~BWMv8!wH0V z_>hF0okie4ku1)8?$dm3=@fyRhTP~xS|pyxm8LUg@t zR^0=~21!#$l+Wt8AZ{B5jzs(!zS55h857gdL|f?VD&9*DIZ`hIhef?bD zw9sz0Dt9ZGL~H`Y0Jk&ein*QGOMxhA`fvSesa4AJJ&ck7_ zB)wwPsYPJuiVEDkNWOj)>hl^+v-{v^B^h7#YV{j91I+MlU@NT9X992+)jLi)@ZcA^*HqchB>f288Hp-PSG%TPsW+gL}bLkh_`6Xr}IG_ z2u?PZEmR>crudScQITg`3<$M>ujX4b*(f=N`2e>4coFRsMXi3674Hy?%Wz}|Y0 z|8)VE8*?t;3bZ9r~-MOTGVKPYim}N)=hy z#LPth>z<^!rVRJx%y$Ga#E3iuG<;UE9=QRkPiBd+%W}&I1~HB<@ZUFDtx~t+4os=3 zr{GVc#D)4Zf@b$W2uheFFmAG~BNB@{L zEHxF?h|Nbe8)MiM+YTkhb(l=sTipk;;LBhhitNwE4Gn^3qiwRX80H1j*aQ|qlm7~r z$4|+@1-u51O+;t6wPz?bh$Qcym$!{P?<(d5glJ>kea=L&S3aj-h1yAH0NQjYmSnxn zct#7s_fvQYe-d^BnK-FCOuv0RiBQEVo+v)H)}+$rCI_vwNrbAiB$?b^aEhUV`F8Y$7P)>#ja5u z^=d~1uxn3k0`tbw{=6Sc$kT`Fm~SyR>yByfF&)Xak8){BW-{OkjZ}oQ#d_98yRsx% z@0~=Xgkez~ad14lY2~~5Yk3;xhkHVV3=TaKCW21tV$2a!kM}7N)hHk{FX>^ZRG=Z3 zeEsOyX_TLRwwNu^iH;bQr}2|+=*t$gv!<|;9EdTTOJ1!tk(f6U&BqqH283|#Ocm@lmqXjl59(^^u8M;DYt7*m7NHq+8CLcgw-&+^Pq zQ#=!Q3Vu;bI+A5@|7@>L?D?I*D%|l39rb|XBjsUGOI5c1Eyhpn9L;)118WR{l2G*O zPxekj=DU?JV3 zgF5|1xZ;#e$bnR^yNwQ< z$j+z+T?uvr)#4!+iBT8N-gm19v{|0mj56(DT<{)yiu*RuhtgvoNg*792c(ENSitvv zJ{P#KuRD6;^VIb4jpn5}oY)hk;5r(DoKwrriwYO1Zm%#*%xV=;AVQ&4q&0|+&R$4f zdp$SbJNIB9qpjy0{4E59dCHrmZmSxXVp@$Wk$XfX8*X3#{KuNL`8o;J1L?dNJ79VU z6LP+yW$nn+i!wsG*1?Z-mdFAIly{5{zFX=7n}e{FFShIQY!d$F0pv&v&*>Tr4}xn- zGc>NZg7FH4xTFm+xJ`rn!Hm+a6LjZ}t<@Iqe^Fq+OA5zbT}rKn3?cy?g8LK@`X~PLTMY z13$(ir_1hg`Pk?^f81TqR-yi6l)kWnqm$2nM1ugo_eROs;)$3+)JKLlf9i;m*?U{R zAg4$L6GXsMkv=oop5I6)SZ9OzCcG&BgnC@-_rO+H{S~&P*X*iNjDzoM>*u^~vgldx z+)l)ZI0wuhd&M%j&S&k^5%(|zP;Wwb_0=HqT^$zmbXjv zu4Tt#c^2JwtiZ#m?0~SkK6WcJ~2ov>AAcKs7{ZJrN z)FfLhc+qDN6Qci~zxE&|h%Xpo2SZyd&=ecWB;qM(@&Y~#18y)ZhRWn?%b)9r>IW>* z7K^-M#r!fV?E&_{B-jso81AQ0ENed;?+iN}AwEGi`kDI?NjMufNrWWzcDqo<_9@8M zMoZML9FH-(bq_mTRz4g1^JW<%WwJ~XP+!qr&9Z7-7wa-zT-oS8eGvga*8Il;=tg3F z6{m4K2T%&)AL5tIZQywK_AIi$CN5gayo=^DL zRhGx^#@|bmf_*q(HJv*hsyLV>3FO`%QH1IB(jz)Dl{^J2>@DZW}kk+r>-{c>-?KLyVuOApDwPCwu;V3{XN z7BOr#()Tb^U0(Kgw06#Xrd;W@?DzsSGJQ;FB7QVff=@v)61b*csp?=K!UpLP+MkWL zc+Td4wh_Yz_89j)7S%7U>E+~!_yP--gzb-mT?I^fH#1iCA8~38h=}L%B@1b zUAk^f6dC9l1IlRQ%eOkD7${ecB4`v*-|;3&)xl)5ftM0Q%?*!Y`VtrhD#`n}k@7N) zOxsx9n;6m(Hq*9C7u}D*)pWuz@9kC05exZ5uW08*@|Q|Q?o~RcGfeQYagN_2x{n(V zb(vyC^c23FRq5|-nWT1X&R~3U5P#lMIA`CAzS2`*Y%CVlv>zDRCb5R1VgHamfIxF) z(rRan1A7|mFYUQ7GeA(rYr()`C_1_8wd_q%?pjgoJ#Lo0Wv}bH0X$s4(tQ}iT>(Sc9r4SbGD`c zmQJ)NFtOR&A!|5~?JO;=^F&bc&D&iCMn9yyX1k0{7?yE`E(Ku;pBF{hd5e`ur1eKL z8q{-)Ow!w|&w>`2mC z%w#B9-GF1NPXa&8Z{X>noIpVysb9=x-_NxZl&k499=bc1rw8F^NU?PlR(L1VRBL$4 zc$*t_LuZfdn0y0{Hg%Uqr{^#1*=nvQNuC+o-&ycBmM_OPzEq0FFCVUKNQ;qp`Wja9 zAr@zgf>xw|X(G-ug4b;qMXfr~;fr}oi6M7)Ufw zGtCEAe0^yaV&miSZtS&=alCE^F|fH@x$}7NJm@~i*M}pUb;3Uwf9#JJ9XxXw6MAGO z3XdsIu<3t*4XMav6E`4?&k7m@{^4M-hQ3k&|jDW!Cnos4#k&4JL*l375 za?r)T^9U9?l)s(J#+zJ9LGU?RkjY)5;T-8`P53rr|vvsN^Y+lbgF7nN~o4 zH6w)TH>8zA4>$G~mNdcL1;pJ8x%^=>t~R`-<=#V!G2boMCW12WQVT)a*EezDAFy)$ zX++YJ$WEfRtRcj&*2rsM#RMS->aK1Vg0q~t?d{p&gW8A(!Zgx5oyjEh*CVm2wA~HwoOqfj4?R;PeQG9R zAKJ;ozyy9JpC`_W&I8}_WYyqa*s`A6tMS+eI12yC>c!D^itR)R4yNf~3Y|Ti>&{;f z4u}i~UCE;Z0W|=At@F<&v{JqJuZH}8A7FqhWw}ps-m23!IP4$1*tdL_9>~}ThbbfY zz=MgT8uAMwz(-}DB=Np;_wZavUOB0Dbks`Gs6-Km5UPtgxSG0{d>@R7WN@|gXe)kv zJsQpy^DU-`iIxfaYy+pBEps#SwU$b0DQ>)Ik1TN*C!Y#(1#_l5efS9Qa+B_q@yUJ> zd?@xJm_41{neBzoijtE9k$J||NQ9?T5!tjB(>#W=_BgJiwUog*R;eSmzc6cwwL-9; z+>Ep4Hf{7wn-EXWw9mDSo-AmiCqf=f5$T0i?3`vxg9+tK=_x%nILzCdzgB^}e!lJB zJ^aMtt%#ElpT-#5FcO@m5g%8Aw1pdVvME-kN*#!v^LavHDOG%W0Ui^&7d%;=GymlX zT47TGt&Rv>8Y{KJ41MJbaNx-Ck;g|8Wo5B>a-Fuz=&MAe{ZR{*1~F_an-3U9L7e)}rg{c5Q@9E1*o4bXkiE~b`aihyR9@$_D}FYMIg>x$tJmN~(98e>b=g@E zc-RlE6&<7}BNR%kwuK}(bVC#y)h}a4b79~wYvdvdcoZ`bae3*X1S$}g1$s#Wophq5 z_c4+lTOzfI60eAY3cA3Qd`~!lE7P7d!zr!rCUKF~^TNew+uNEJ1YIuef#6e9+cTf((U;wgEoy z*d}KBclQ1=+RK?6(bFcdEMD@6xXEH!@&WM%2es<;vJ~u=$D^%kNWR;Y-ar|6y2It( zT454zJru~L(n7&P*K>LV(&4HqF%8hEqmaTDXa==!T9v`s^SUHjkk`*h-tF#c3}>BX zVnzp4p7^Btb_&x3dC-RxE-zP3WAvB$?e1{&E;>29d^-NxZlVqS$pFuCAC^ai?@#lww zSA~;3gSafw7zb;6=b-6OI9VDjbQmB67O81Mw1X!MhQgf~xi-vjT_PA2R;@< zew0@h$i{uQ(t9MtdvEy;JLnLjxZDGG`Q=*($Y&L=ufukX)3`o3i8wN%2E zmc)?HX!!AUjx?3Zj7&ngxPis~%vlNYPTb zl~I;a!&;h19G6b+@D+@qqcG0kCz#2bZTMk`)#{Hn^)-nIHpUs0m9;65Y1}(Hj96?3 zGUn`DMAj9qsv4bnkcN3}+@p(@>C->Nyn(^((aH1$ji@yk8YswU3lxyAe z9rr&7LB82!b^0luCJCO&T(!~}ZuANt9eUx~G7M9HHt~94D`-e!C$VCo-#CiBwdH)y&d@MF0pB#@?atx)N@v%lDasm zq6530&*S3tBI^<(i1#%?{gnT3llzPvq>;mb(S)l`XND0RkDo67jqikIpQ^ zL646VRM=?1Pi;mMg`&@Q?#lq7taSLb8nszjkLcKQNQ