asm_`````~`|```~`|```~```~```~```~````` ` `~~` ~~~`~`~~`~~~`~`~`~~`~`~`~~`~`~`~~`~~`~~`~~`~~~`~~~~`~`~`~~`~`~`~~`~`~`~~`~`~`~~`~`~~`~~`~~~`~~`~~~`~~~`~~~~`~~`~~`~~~`~~`~~`~~~`~~`~~~`~~~`~~~`~~~`~~~~`~~~`~~~~`~~~~`~~~~`~~~~~~~`|`|~`|`~`~`~~~`||`|`||`|||`||| wasi_snapshot_preview1clock_time_get3wasi_snapshot_preview1 random_getwasi_snapshot_preview1fd_writewasi_snapshot_preview1fd_readwasi_snapshot_preview1 environ_getwasi_snapshot_preview1environ_sizes_getwasi_snapshot_preview1fd_closewasi_snapshot_preview1 fd_fdstat_getwasi_snapshot_preview1fd_seek6wasi_snapshot_preview1 proc_exit P27<[<< 7<KO6::]7,:: :G@:%7:: :7 1 797:7447777:5 ::774: :7KGO 7%%:7::S2<+ 77 7 :"7R7 7"K": F<  7:7.::7 ::7< 74A :7E:1 <3:  #: < 77Z7 W< ::71 :>D7Z 7 "L :777' 07EZ7 ") 77] :27 Z737Y%7  7/1: :7 7 K7 D <0ZT /3 7:D777$7 7 4 4 0 7ZZ %:Z7:  "K7^Z07: :0% 0: 0 K X 7  : E   X/7J3 ] 77:%7<7* 2 "E1K7K7% K7 773  2B!221H10"G"3 D 7 Q 1M"477 / ?7K77 7 Z/7NOK  7 "/4  D" 77;7 J1 17E: :: /0 :Z  C7Z" 444Z7// ": 4 /277 \Z?777477 7772<4 /Z2"7 77^ Z /: / C Z"Z Z/B73C202]\Z3 7<77(0-:737"/777  737771W7 1 <1 417/<14 22 E 7/2/?/ DJ 7M 7 " !1/1 10:72 3M77/  /U7 / 00<7 27]C177Z2DDDDDD2 2 27/ 7Z/  #177:77 1 77ZZZZZZ7 p A #memory_start __main_void A :#%-,  m  o '              Q             4_     0 >c 8 =d^ 9`F}\(  PxrTOy 7    hGDi    / &~|#Ak"! $ (! ("Ak6@@@ AL@B!.   @@@@ BoX@ AqE  "A?@ABCklmqrstnopu|{xvvvwDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij~}zy%%%% (4 (Atj)"B AuO@ " (Aj6  7 Aj! Aj!   Ak7 Aj!   0B7 Aj! Aj!   2B7 Aj! Aj!  (4 -Atj)"B AuO@ " (Aj6 Aj!  7 Aj!  (4 -Atj)"B AuO@ " (Aj6 Aj!    "7 Aj! BpBR   ("(,A/M  (8(" (Aj6  B7 Aj!  Ak")"A0 A"-BpBQ @ )"B AuI " ("Ak6 AJ (   -7 !   (A7 Aj! Aj!  B07 Aj!  B 7 Aj!  @@@ "AF -Aq 'AF@ )"B AtK   "BpBR   ! "AuI  " (Aj6  7 Aj!  B7 Aj!  B7 Aj!  @@ ("( (()"A BoV"AylAk" A (kvAtj("@@@ ( G (, G ( E  (("  A"  B7 Aj!   (Aj6  A"7 Aj! BpBR   Aj!@@@@@@@@ - ~A!@@ ("( (()"A BoV"AylAk" A (kvAtj("@@@ ( G (, G ( E  (("  A" B   (Aj6 A"BpBR@ " A0A 7@@@@ AL@A!  ("Aj At ("E  AG@ A~q! ! ! @ )"-B AuO@ -" (Aj6  -7 Aj)"-B AuO@ -" (Aj6 Aj -7 Aj! Aj!  Aj"G  AqE  At"j)"-B AuO@ -" (Aj6  j -7 6$ A(j 6 )"-B AtK  A -B0B0A.  ("-E@ A: AA A: B B AuI  ("Ak6B AJ  ( B  -" (Aj6 A -B0B0A.  ("Ak6 AJ ( - AB0 )"- -A0.  "7 Aj! BpBR   ~  /("  H!@@@@@ ("( (()"A BoV" AylAk" A (kvAtj("@@@ ( G (, G ( E  (("  A"    (Aj6 A "BpBQ  " A0A 7@ AJ@ Aj!A! @@  ("G@@@ Ak/G Ak-AqE Ak" (Aj6  (" G  ("AjA ("E@ ("-  A: AA A:  A6  ;  -AqAr:  ("6  Aj"6 B07  6 A j 6  ( Atj6 AxrA'"E@ (" AJ@ (!  Ak" 6  -Aq@@ )"-B AuI -" (" Ak6 AJ  -  (" A j("6  6 B7 Aj  (  AAA(A  6 Aj" G   L   Atj!@ )"-B AuO@ -" (Aj6  AN~ B~ ".B} .BBV -AAH  Aj! Aj" G  B AuI ("Ak6 AJ (  B  @ )"-B AtM@ A -B0B0A.  -" (Aj6 A -B0B0A.  ("Ak6 AJ ( - (()"-B AtM@ A -B0B0A.   -" (Aj6 A -B0B0A.  ("Ak6 AJ ( -  "7 Aj! BpBR   )"B AuO@ " (Aj6  7 Aj!  (AuO@ # #(Aj6  7 Aj!   (("~  (Aj6 BpB0 7 Aj!  ~@@ ("(AyA (kvAtj("@@@ (AyG (, ( E  (("  AA" B   (Aj6 A "7 Aj! BpBR   ~A! @@ (" ("E )"BpT @@ "/"A k A4k ( "Aj-AqE @ (@"AN@ (8 Atj(" (Aj6  E  @ Aj(" Aj"F @  Ak(F@ Ak!  (" G @ AH (8 Atj(" ("Ak6 AJ   AAB  ~ )h"BpB0Q@@@ ("(AyA (kvAtj("@@@ (AyG (, ( E  (("  AA" B   (Aj6 B A"BpBQ  7h B AuO@ " (Aj6  "7 Aj! BpBR   ($" (Aj6 /! A"-Bp!. Aj!@  L .BQ 3 }!0  Atj!B!A!@ )"/B AuO@ /" (Aj6 - AH~B~ "1B} 1BBV  /AAN@ Aj! Aj! 0 B|"Q   @ -B AuI -" ("Ak6 AJ ( - B7 Aj!   -7 Aj! .BR   Ak")"B AuI  " ("Ak6 AJ  (   @ Ak")"B AuI " ("Ak6 AJ (   Ak")7  @ Ak")"B AuI " ("Ak6 AJ (   Ak")7  Ak")7  Ak)"B AuO@ " (Aj6  7 Aj!  Ak)"B AuO@ " (Aj6  7 Ak)"B AuO@ " (Aj6  7 Aj!  Ak)"B AuO@ " (Aj6  7 Ak)"B AuO@ " (Aj6  7 Ak)"B AuO@ " (Aj6  7 Aj!   Ak")7 Ak)"B AuO@ " (Aj6  7 Aj!   Ak")"7  Ak")7 B AuO@ " (Aj6  7 Aj!   Ak")"7 Ak")!-  Ak")7  -7 B AuO@ " (Aj6  7 Aj!   Ak")"7 Ak")!-  Ak")7  -7  A k")7 B AuO@ " (Aj6  7 Aj!  Ak")!  Ak")7  7 !  Ak")!  Ak")7 Ak")!-  7  -7 !  A k")!  Ak")7 Ak")!-  Ak")7  -7  7 !  A(k")!  A k")7 Ak")!-  Ak")7  -7  Ak")7  7 !  Ak")!  Ak")7 Ak")!-  7  -7 !  Ak")!  Ak")7 A k")!-  7  -7 !  Ak")!  Ak")7 A k")!-  A(k")7  -7  7 !  Ak")!  Ak")7  7 !  A k")!  Ak")7 Ak")!-  Ak")7  7  -7 !  (4 (Atj)"B AuO@ " (Aj6    "7 Aj! Aj! BpBR   Ak  Aj! / !  6  Atk"Ak)B0B0  A ".BpBQ  A#F  Aj!  AtkAk! @@ )"B AuI " (" Ak6 AJ (  Aj! Ak"  AsAtj" .7 Aj!   Aj"6  /"At" k"Ak) Ak)  A"-BpBQ  Ak!A k! @@  j)"B AuI " (" Ak6 AJ (  Aj" AG A~ kAtj" -7 Aj!   Aj"6  /"Atk"Ak) Ak)B0  A ".BpBQ  A%F  Ak!A Atk! @@  j)"B AuI " (" Ak6 AJ (  Aj" AG A~ kAtj" .7 Aj!  ($" (Aj6 /! Aj! A"BpBQ   Atk! @ E A! !@  Axk )"-B0B0A.!@ -B AuI -" ("Ak6 AJ ( - B07 AN@ Aj! Aj"F   B AuI  " ("Ak6 AJ  (   7 Aj!  Aj! Ak")  Ak" /"-BpBQ @ )"B AuI " (" Ak6 AJ (  @ )"B AuI " (" Ak6 AJ (  @ Ak)"B AuI " ("Ak6 AJ (   -7  B!@ Ak)"-BoV B! -BpB0Q AA   7 Aj!  2B0R@ !  AA  A! Ak)"-BpT  Ak)!@@ -"/"A k A4k A(j("E  (" (AsAtAyrj("E@A!  A0j!@@  AkAt" j"(AF  (Aq" A!  BpT  ( j)"-BpBR  -" )"-BV@ ( !  ("(8" (4 -B ($AkqAtj("Atj(" G   Ak")"-BoX@ AA  Ak" )!@@ -"(" (AsAtAyrj(" @ A0j!@  AkAt" j"(AF  (Aq"  ("(,AM  (8(" (Aj6  AH" E@ ("-  A: AA A:  (8 Atj("B!. AA! (! E@  Ak6 AJ  ( .   Aj6 .7  ( j)".B AuI ." (Aj6 ." )"-BV@ ( !  ("(8" (4 -B ($AkqAtj("Atj(" G   Ak")!-@ (")"B AuI " ("Ak6 AJ    -7  Aj! (!@@@@@@ -" A  #Ak"$  ( Aj 6 A  Aj$    AA  AA   6 A Aj   Aj"6 /! )!  /"Atk"Ak" )"-B AuO@ -" (Aj6 B AuO@ " (Aj6 ~ - A@ B0 ~ )B0 A Ak  )B0B0  A "-BpBQ  Ak!A Atk! @@  j)"B AuI " (" Ak6 AJ (  Aj" AG  AsAtj" -7 Aj!  Aj! /! Aj Ak")" E  )! Ak")"-B AuO@ -" (Aj6 B AuO@ " (Aj6 ~ - A@ B0 (" ~ )B0 A Ak  )B0B0 (" A ! @ !@@ )"-B AuI -" ("Ak6 AJ ( - Aj! Ak"  ("Aj ( BpBQ @ )"-B AuI -" ("Ak6 AJ ( - @ )"-B AuI -" ("Ak6 AJ ( -  7  Ak" B0 ) Ak")7  Ak")"-BpBQ @ )"B AuI " ("Ak6 AJ (   -7 !  Ak" )!/B !@ ("("E )"-BpT @@ -"/" A k A4k ( "Aj-AqE @ (@"AL@ E  A!  At" (8j(" (Aj6 A! ("(8 j(" (" Ak6 AJ   BpBQ  AjB0"0BpBQ@ B AuI  " ("Ak6 AJ  (   )!- )!.@ ("AjA8 ("E@ ("-  A: AA A:  A6 A6  6 .B AuO@ ." (Aj6  .7 -B AuO@ -" (Aj6 A j -7 B AuO@ " (Aj6 A(j 7 /B AuO@ /" (Aj6  (" 6 6 A0j /7  6  Aj6 @ B AuI " ("Ak6 AJ (  @ .B AuI ." ("Ak6 AJ ( . @ -B AuI -" ("Ak6 AN ( - @ )"B AuI " ("Ak6 AJ (  07 !  Aj!@ ((" (" (qAsAtj(" @ A0j! @A! AkAtj" ( F  (Aq"  ) "AH   AGB7 Aj!  Aj!@@ (" (" (" (qAsAtj("@ A0j!@  AkAt"j"( F  (Aq"  )"   A7k"Bp!.  ( j)"Bp".BQ@   B AuI " (Aj6 .BQ   7 Aj!  Aj! ( Ak") A9kAN   Aj! (! Ak"(E@    Ak)A"AN  AvAq  ,! A!@ ("(" (" (qAsAtj("E A0j!@ At jAk"(F@ !  (Aq" Aj! AH@ E  Aj-AqE   @ E@ -Aq   AqE  ("A q  A|qAF AqAF   ( Aj 6 A A j  Aj!  ,"AN"(" (" (" (qAsAtj(" @ A0j!@   AkAtj" (F@ !  (Aq"  -AqE@ !   AqAr AqAr "E  B0B 7 !  Ak")! -! @ )"-(" (" (qAsAtj(" E A0j!@@ At jAk" (! ( F Aq"   A A qE  Ar ! Aj! -  B0B0 .AH  )"B AuI  " ("Ak6 AJ  (    /Atj)"B AuO@ " (Aj6 Aj!  7 Aj!   /Atj")!  Ak")7 Aj! B AuI  " ("Ak6 AJ  (    /Atj! Ak)"-B AuO@ -" (Aj6 Aj! )!  -7 B AuI@ !  " ("Ak6 AJ@ !  (  !   /Atj)"B AuO@ " (Aj6 Aj!  7 Aj!   /Atj")!  Ak")7 Aj! B AuI  " ("Ak6 AJ  (    /Atj! Ak)"-B AuO@ -" (Aj6 Aj! )!  -7 B AuI@ !  " ("Ak6 AJ@ !  (  !   -Atj)"B AuO@ " (Aj6 Aj!  7 Aj!   -Atj")!  Ak")7 Aj! B AuI  " ("Ak6 AJ  (    -Atj! Ak)"-B AuO@ -" (Aj6 Aj! )!  -7 B AuI@ !  " ("Ak6 AJ@ !  (  !  )"B AuO@ " (Aj6  7 Aj!  )"B AuO@ " (Aj6  7 Aj!  )"B AuO@ " (Aj6  7 Aj!  )"B AuO@ " (Aj6  7 Aj!  )!  Ak")7 B AuI  " ("Ak6 AJ  (   )!  Ak")7 B AuI  " ("Ak6 AJ  (   )!  Ak")7 B AuI  " ("Ak6 AJ  (   )!  Ak")7 B AuI  " ("Ak6 AJ  (   Ak)"-B AuO@ -" (Aj6 )!  -7 B AuI@ !  " ("Ak6 AJ@ !  (  !  Ak)"-B AuO@ -" (Aj6 )!  -7 B AuI@ !  " ("Ak6 AJ@ !  (  !  Ak)"-B AuO@ -" (Aj6 )!  -7 B AuI@ !  " ("Ak6 AJ@ !  (  !  Ak)"-B AuO@ -" (Aj6 )!  -7 B AuI@ !  " ("Ak6 AJ@ !  (  !  )"B AuO@ " (Aj6  7 Aj!  )"B AuO@ " (Aj6  7 Aj!  )"B AuO@ " (Aj6  7 Aj!  )"B AuO@ " (Aj6  7 Aj!  )!  Ak")7 B AuI  " ("Ak6 AJ  (   )!  Ak")7 B AuI  " ("Ak6 AJ  (   )!  Ak")7 B AuI  " ("Ak6 AJ  (   )!  Ak")7 B AuI  " ("Ak6 AJ  (   Ak)"-B AuO@ -" (Aj6 )!  -7 B AuI@ !  " ("Ak6 AJ@ !  (  !  Ak)"-B AuO@ -" (Aj6 )!  -7 B AuI@ !  " ("Ak6 AJ@ !  (  !  Ak)"-B AuO@ -" (Aj6 )!  -7 B AuI@ !  " ("Ak6 AJ@ !  (  !  Ak)"-B AuO@ -" (Aj6 )!  -7 B AuI@ !  " ("Ak6 AJ@ !  (  !  (()"B AuO@ " (Aj6  7 Aj!  (()"B AuO@ " (Aj6  7 Aj!  (()"B AuO@ " (Aj6  7 Aj!  ( ()"B AuO@ " (Aj6  7 Aj!  ((")!  Ak")7 B AuI  " ("Ak6 AJ  (   ((")!  Ak")7 B AuI  " ("Ak6 AJ  (   ((")!  Ak")7 B AuI  " ("Ak6 AJ  (   ( (")!  Ak")7 B AuI  " ("Ak6 AJ  (   ((! Ak)"-B AuO@ -" (Aj6 )!  -7 B AuI@ !  " ("Ak6 AJ@ !  (  !  ((! Ak)"-B AuO@ -" (Aj6 )!  -7 B AuI@ !  " ("Ak6 AJ@ !  (  !  ((! Ak)"-B AuO@ -" (Aj6 )!  -7 B AuI@ !  " ("Ak6 AJ@ !  (  !  ( (! Ak)"-B AuO@ -" (Aj6 )!  -7 B AuI@ !  " ("Ak6 AJ@ !  (  !   /Atj(()"B AuO@ " (Aj6 Aj!  7 Aj!   /Atj((")!  Ak")7 Aj! B AuI  " ("Ak6 AJ  (    /Atj((! Ak)"-B AuO@ -" (Aj6 Aj! )!  -7 B AuI@ !  " ("Ak6 AJ@ !  (  !  Aj!  /"Atj(()"BpBR@ B AuO@ " (Aj6  7 Aj!  ($ Atj(  Aj!  /"Atj((")"BpBR@  Ak")7 B AuI  " ("Ak6 AJ  (   ($ Atj(  Aj!  /"Atj(("5B BR@ ($ Atj(   Ak")7   /Atj")! B7 Aj! B AuI@ !  " ("Ak6 AJ@ !  (  !  Aj!  /"Atj)"BpBQ@ ( "  /( jAtj(A   B AuO@ " (Aj6  7 Aj!  Aj!  /"Atj")"BpBQ@ ( "  /( jAtj(A    Ak")7 B AuI  " ("Ak6 AJ  (   Aj!  /Atj"5B BR@ AA   Ak")7  Aj!  ("F@ !  /! @ "(!@ Ak/ G Ak" -Aq !( Atj)"B AuO@ " (Aj6  (" 6 6 -Ar: A6 (! AkA:  (P" 6 6  7  Aj6 6P  Aj6  G !  Aj! /! (!@@ ("(AyA (kvAtj("@@@ (AyG (, ( E  (("  AA"  B7 Aj!   (Aj6  A"7 Aj! BpBQ@ !  @ AF@  Atj(" (Aj6   ("G@@@ Ak/ G Ak-AqE AFF Ak" (Aj6  (" G  ("AjA ("E@ ("-@ !  A: AA A: !  A6  ;  -Aq AF" Atr: (" Aj"6  6 A j 6  6 B07  % ! ( Atj6 ( A"" E@   !  6  A7 Aj!  Aj!@@@@ )"" (" (" (qAsAtj("@ A0j! @ AkAt"j"( F  (Aq"  ) "AH   B0!  ( j5B BQ@   Aj-AqE@ A  B AtK   )"B AuI  ! (Aj6  7  A7 Aj!  ("Ak6  (j! AJ@ !  ! E   ("Ak6  .j! AJ@ !  ! E   ,! ("Ak6  j! AJ@ !  ! E   Aj! Ak")"B?X@     ( jAk  ! ("Ak6 AJ  E  !  Aj! Ak")"B?X@      ( jAk ! ("Ak6 AJ ~ E ~ !  Aj! Ak")"B?X@     , jAk  ! ("Ak6 AJ } E } !  Aj! Ak")"B?X@      , jAk ! ("Ak6 AJ | E | !    (j (kB7 Aj! Aj! {  (kAj7  (j! Aj! z @ Ak")"BV " (O ( j! z AA } @@ Ak")"B "Aj"AK A tAqE !-  !- AuI " ("Ak6 AJ (  ("AjA (! (! E@ -E@ A: AA A: -B AuI p -" ("Ak6 AN p o (AyA (kvAtj("@@@ (AyG (, ( E [ (("  AA"E l k B!@ Ak)"-BpT -" /AG ( !@@ (@ (" ( O   Aj6 Axr!  (" (" ( O   Aj6 A0j Atj" ("E  Aj-AqE  ) " AH } E B! A!.  7  .7 Aj! w Ak")"A"-BpBQ z@ B AuI " ("Ak6 AJ (   -7 -A -A"BpBQ z B7  7 Aj! v -!A! A6 Aj!B0!@ A} kAtj" )"-BpB0Q A!@ - A~ kAtj) Aj"BpBQ (" A!  @ )"-B AuI -" ("Ak6 AJ ( - B07 AH z@ B AuI " ("Ak6 AJ (  B0!  7  AGB7 Aj! u Ak")"A"-BpBQ x@ B AuI " ("Ak6 AJ (   -7 -A -A"BpBQ x B7  7 Aj! t Ak")"BoX@ AA x A A"-BpBQ w -! A A"-BpBQ w " (" Ak6 AL@ (   -7  AGB7 Aj! s Ak)BoV@ ! s AA v @ Ak")"B AuI " ("Ak6 AJ (  Ak")"BpB0Q q A@ ! v )"B AuI q " ("Ak6 AJ q (  q Ak")!-@  M@ !  @ "Ak")"BpBQ @ B AuI " ("Ak6 AJ (   "I  &I@ AڐA - u  Ak")7 Ak")!  Ak")7  7  -7 Aj! p Ak) A k)B0A Ak"A "-BpBQ s@ )"B AuI " ("Ak6 AJ (   -7 ! o Aj!B!@ A k")"-AA -"Aq -A"-Bp".B Q .B0Q .BQ s )!@@ Aq@ - B0AAA ! -B AuI  -" ("Ak6 AH   - B0A AkA ! -B AuI  -" ("Ak6 AJ  ( - BpBQ s@ Ak")"-B AuI -" ("Ak6 AJ ( -  7B!  7 Aj! n  Ak")"B?X@ AG   !  EB7 ! m Aj! Ak")" ( A"-BpBQ p@ )"B AuI " ("Ak6 AJ (   -7 ! l Aj! Ak)" ( A"BpBQ o  7 Aj! k Ak")" ( Ak) AA!@ )"B AuI " ("Ak6 AJ (  Aj! AN j ! n ("AH J ("(, M u Aj! (8 Atj(" (Aj6  AH"E@ ("- n A: AA A: n  (8 Atj5B7 Aj! i Ak! Ak")"BoX@ AAB! [ )"-BpBR@ AAB! [ -" )"-BV@ ( ! Z ("(8" (4 -B ($AkqAtj("Atj(" G X Y Ak)! Ak! Ak")"-BoX@ AA T )".BpBR@ AA T ." )".BV@ ( ! S ("(8" (4 .B ($AkqAtj("Atj(" G Q R Ak)! Ak! Ak)"-BoX@ AA O )".BpBR@ AA O ." )".BV@ ( ! N ("(8" (4 .B ($AkqAtj("Atj(" G L M Ak) ( Ak")"B0B0A.!@ B AuI " ("Ak6 AJ (  Aj! AN e ! i Aj! ! Ak) (AN d h ! Ak) Ak)AN c g Ak")"BoX BpB RqE@ Ak) AAH g B AuI b " ("Ak6 AJ b (  b Ak)"-BpT@ ! b Ak)! !@@ -"/" A kcc A4kbbbb ( -AqE a@ A(j("E  (" Ak6 AJ ( Bp A! BpZ@ " (Aj6  6( ! a  AF@A} Ak)"  f Aj! (!A~ Atj!~~@@@ -"Aq B0!0A! Ak)"/  B0!-A! B0!0 Ak)"/  A! Ak)"/!0B0 !-B0 !4 )!. A!@ AH ((8 Atj()"1B@BR 1B?BR 1B@Trq 1BBQ A As! A! @ AqE@A! A qE  As! Ak!A! @ BpBQ /A6 B0B0A.!@ B AuI " ("Ak6 AJ (  AH Aqr!@ /BpT @@ /"/" A k A4k ( -AqE @ A(j(" E (" Ak6 AJ ( Bp A! .BpZ@ ." (Aj6  6( .  - 4 0 .! @ )"B AuI " ("Ak6 AJ (  A! @ AG @ AH ("(8 Atj(" (" Ak6 AJ   A~! Ak)"B AuI " ("Ak6 AJ (  Aj!  Atj! AN ` AvAq a Aj! Ak")!0 Ak! (!@@ -Aq@B !- )".BpB Q@A! )0".B AuI  ." (Aj6  B0!/A!@ .BpT@B0!-  .-AqE@B0!-  .A; .A"-Bp"B Q  BQ G -BpZ Aҙ! A F (()"-B AuO@ -" (Aj6 )0".B AuI ." (Aj6 -A -BoV! @@ ("( AylAk" A (kvAtj("@@@ ( G (, G ( E  (("  A" B0!B!/ F  (Aj6 A"/BpBQ C 0"-A0q A@@ ("( ."A .BoV" AylAk"A (kvAtj("@@@ ( G (, G ( E  (("  A" B! F  (Aj6 A "BpBQ D    "BpBQ@B0!0 E BpZ@@@@ "/" A k A4k ( -AqE @ A(j(" E ("Ak6 AJ ( Bp A! /BpZ@ /" (Aj6  6(  -Ar: B0!0 A0 3,B0B0A.@ AF@  Ak)AN  F  AH E @ B AtM@ /A< B0B0A.!  " (Aj6 /A< B0B0A.! (" Ak6 AJ (  AH D@ /B AtM@ A; /B0B0A.!  /" (Aj6 A; /B0B0A.! (" Ak6 AJ ( / AH D@ -B AuI -" ("Ak6 AJ ( - @ .B AuI  ("Ak6 AJ ( .  /7  7 ! _ Ak") Ak")!@ )"-B AuI -" ("Ak6 AJ ( -  7 BpBR ^ ! b Ak" Ak) )"7 ! BpBR ] a Ak)! Ak)"-BpB0Q@ "E a   a B AuO@ " (Aj6 - "BpBQ `  7 Aj! \ Ak" )"E _ Ak")  Ak" )A!@ AH ("(8 Atj(" ("Ak6 AJ   BpBQ _@ )"-B AuI -" ("Ak6 AJ ( - @ )"-B AuI -" ("Ak6 AJ ( - @ )"-B AuI -" ("Ak6 AJ ( - 7 [ Ak") Ak) Ak)A!@ )"B AuI " ("Ak6 AJ (  AN Z ! ^ ((!@ Ak")"BpB0Q@@ E -(AqE Ak)"E a   a )"B AuO@ " (Aj6  7  E A ((Aq  A !  Ak) Ak) !@ )"B AuI " ("Ak6 AJ (  AN Y AvAq Z Ak" )BoX@ AA ] Ak" )"E \ )  Ak) A k")AA!@ AH (" (8 Atj(" ("Ak6 AJ  @ )"B AuI " ("Ak6 AJ (  @ )"B AuI " ("Ak6 AJ (  @ )"B AuI " ("Ak6 AJ (  AN X AvAq Y Ak)!- Ak)"B AuO@ " (Aj6 -  Ak")AAN W ! [ Ak")"/BZ@ A߸A [ A! Ak" )"A A"BpBQ Z@ BpT "/A G ($AG A*j/AF! @ B AuI " ("Ak6 AJ (  )A"-BpBQ Z -A -A".BpBQ@ -B AuI [ -" ("Ak6 AJ [ ( - [ /!@@@ E .BpT ."/A G ($AG A*j/ )"BpT "/AG -AqE A(j(! ($! Aj! A0 A"BpBQ@ A6A     ( G E  Ak!@ )!/ )"B AuO@ " (Aj6 / AN~ B~ "/B} /BBV AAH  Aj! Aj! Ak"  - . Aj"BpBQ Ak!@ (  ) AN~ B~ "/B} /BBV AAH  Aj! - . Aj"BpBR -A@ -B AuI -" ("Ak6 AJ ( - .B AuI [ ." ("Ak6 AJ [ ( . [  7@ -B AuI -" ("Ak6 AJ ( - @ .B AuI ." ("Ak6 AJ ( . )"B AuI@ ! W " ("Ak6 AJ@ ! W (  ! V Aj! !  -"As" AtA`rj)  AtA@rAxqj)  AvAsAtj)AE U Y @ Ak")"B " Ak")"-B " rE@  -|"B|BV   B7 V AkAmK AkAmK B~ -B| B|"B} BBV7 U |E T X Aj!@ Ak")"-  -Atj")"BX@ - |"-B|BV   -B7 ! U BpBR -A"-BpBQ X )"B AuO@ " (Aj6  -u"BpBQ X   ! T B AuO@ " (Aj6  7p  )7x )| W  )p ! S Ak")"B " Ak")"-B "rE@ - }"B|BV   B7 S AkAmK  AkAmK  B~ -B| B|"B} BBV7 R | Ak")"-B " Ak")".B "rE@ - .~"B|BZ@ -(AqA B}B`T    @ BR - .BP D   B7 S AkAmK  AkAmK  -(Aq  .B| -B| !5 B~ 5"B} BBV7 Q Ak")" Ak")"-BV  -(Aq  - "5" 5DAc@ 5  Ax "Q@  7 Q B~ B} BBV7 P Ak")" Ak")"-BV -" AH "AL  p7 O #A k"$A Ak")".B " AkAnI!@@@@@@@@@A Ak")"B " AkAnI"AG AG  .B|7  B|7  @ AF A~qAGqE@ AG  A~qAF  Aj  . AA"E @ AuI " (" Ak6 AJ (  @ AuI ." (" Ak6 AJ ( . A! AH   )7  A"BpBQ@ AuI  ." (" Ak6 AJ  ( .  B ! .A".BpBQ@ AuI  " (" Ak6 AJ  (   A AkAnI" A .B " AkAnI"rE@ .! ! ~@@@@@@@@@ Ak   . ~!-@ ("("E -(AqE -B}B`T  B! -BR  rAN  B7A!  ("("@ -(Aq  B~  "B} BBV7A!  E  .""-BY  AH@ - }!-   -|!-  AJ ANqE@ ~  "5" 5DAc@ 5  Ax "Q@   B~ B} BBV 7A!   p!-  ("("@ -(Aq  ~  "5" 5DAc@ 5  Ax "Q@   B~ B} BBV 7A!  .}!- -B|BV  -! B  B~ -"B} BBV 7A!  AuG AuGqE@   . (Aj( A!  AwG AwGqE@   . (Aj( A!  AvG AvGqE@ (!  Aj @ .  Aj .  @ ("(" E -(AqE +"5"6D?CeE 6Dc 6DdrE 5 5b +"5"6D?CeE 6Dc 6DdrE 5 5a  @@@@@ Ak + +!5  + +!5  + +!5  + +"6"5DcE  6 5!5  +!6 +"7DcE@D!5 6D?a  6 7!5  + +!5 B~ 5"B} BBV7A!  A6 A     . Aj( A!  B07 B07A! A j$ R Ak! N Ak("E@ ! N AkAnI@ ! N ! AE M Q @| Ak")"B "E@D "E DA AxF  B }B7 ! O AkAmK  B} !5 B~ 5"B} BBV7 ! M ! AE L P @ Ak")"BV BBQ  B|B7 ! L ! AE K O @ Ak")"BV BBQ  B}B7 ! K ! AE J N Ak")A"BpBQ@ B07 N  7 B AuO@ " (Aj6  7 Aj" AkE I M Aj!@  -Atj")"BV BBQ  B|B7 ! I B AuO@ " (Aj6  7 $A L )!  )7@ B AuI " ("Ak6 AJ (  ! H Aj!@  -Atj")"BV BBQ  B}B7 ! H B AuO@ " (Aj6  7 $A K )!  )7@ B AuI " ("Ak6 AJ (  ! G Ak")"BX@  B7 ! G !#Ak"$@@ Ak" )"BpT Aj A" AH  E " (" Ak6 AL@ (  )7A  @ A"Bp"-BQ A -B~R (" (" -(AqAvA E@ A  Aj( A  Aj  5B7A  B07 A ! Aj$ E F J @@@ Ak")" Ak" )"-BV ! -(AqE  AK - B|BT  AE G K Aq! - t7 E Ak")" Ak")"-BX@ - v"AN@  7 F B~ "B} BBV7 E #Ak"$ Ak")!@@@ Ak" )A"-Bp".BQ@ B AuI  " (" Ak6 AJ  Aj!  A"Bp"/BQ@ -B AuI  -" (" Ak6 AJ  Aj! -!  ((" @ -(Aq  .B~R /B~Rq  Aj! AA@ -B AuI -" ("Ak6 AJ ( - B AuI  " ("Ak6 AN  (  B07 B07A  A j - Aj  ~ ( (v" AN@  B~ "B} BBV 7A ! Aj$ E D H @ Ak")" Ak")"-BV  - "A O -(Aq  Aq  u7 D AE C G Ak")" Ak")"-BX@   -7 C AE B F Ak") Ak")"BX@  7 B AE A E Ak")" Ak")"-BX@   -7 A AE @ D Ak")" Ak")"-BX@  - HB7 @ AzE ? C Ak")" Ak")"-BX@  - LB7 ? AzE > B Ak")" Ak")"-BX@  - JB7 > AzE = A Ak")" Ak")"-BX@  - NB7 = AzE < @ Ak")" Ak")"-BX@  - FB7 < ALE ; ? Ak")" Ak")"-BX@  - GB7 ; ALE : > Ak")" Ak")"-BX@  - FB7 : A 9 Ak")" Ak")"-BX@  - GB7 9 A 8  ( ; Ak! 7 Ak")"BoX@ AA ; Ak" )"-"E :  ! @ AH ("(8 Atj(" ("Ak6 AJ   AH :@ -B AuI -" ("Ak6 AJ ( - " ("Ak6 AL@ (  AGB7 6 Ak")" Ak")"-" AH 9@ B AuI " ("Ak6 AJ (  @ -B AuI -" ("Ak6 AJ ( -  AGB7 5 A!@@@@@@@@@@@A Ak" )"B " AkAnIA j    A! A!  A!  A!  A!  A!  " ,AH@A!  BpT A! /" A F  A0F@ ( -  ((D Alj(  A!  A!  A! @ AuI " ("Ak6 AJ (  A7 ! 4 Ak")! Ak")"-" E 7A!@ ".BpBQ ." W!@ .B AuI (" Ak6 AJ ( .  A! ((" E -(AqE AAA! @ AH (" (8 Atj(" ("Ak6 AJ  AH 7@ B AuI " ("Ak6 AJ (  @ -B AuI -" ("Ak6 AJ ( -  AGB7 3 Aj! (! )"BpBQ 6 " W!@ B AuI  ("Ak6 AJ (  AH 6  AGB7 Aj! 2 Ak")"BoV@ ! 2 "-BpBQ 5@ )"B AuI " ("Ak6 AJ (   -7 ! 1 @ Ak")"B Aj"AK A tAqE ! 1 A"-BpBQ 4@ )"B AuI " ("Ak6 AJ (   -7 ! 0 Ak)BBpB0Q@ AA 4 @ Ak")"B Aj"AK A tAqE ! 0 A"-BpBQ 3@ )"B AuI " ("Ak6 AJ (   -7 ! / A j! - ! (! Ak")" (""AH 2@ E @ E A A"-BpBQ 4 -BoX@ -B AuI  -" (" Ak6 AJ  ( -  -  -A! -" ("Ak6 AL@ ( - AH 4  @@@@@@@ Ak   A"-BpBQ 9 )!  -7 B AuI  " ("Ak6 AJ  (     Ak") AA!@ )"B AuI " ("Ak6 AJ (  AN  8 "BpBQ 7 " W!@ B AuI (" Ak6 AJ (  AH 7@ )"B AuI " (" Ak6 AJ (   AGB7   A7 Aj!    A"BpBQ 5  7 Aj!    A"-BpBQ 4@ )"B AuI " ("Ak6 AJ (   -7 B07 Aj!  jAk! ! / )"B AuI . " ("Ak6 AJ . (  . Ak)"BpB0Q   Ak)"BpB Q   @A Ak)"B " AkAnIAj ,AH   Ak)"BpT  ",AH  /"A F  A0F@ ( -  ((D Alj(AG E  B AuI " ("Ak6 AJ (  Ak)"B`B Q Ak!@ B AuI " ("Ak6 AJ (  B7 ! ' (!  6  As j6 A  *  57 Aj! Aj! % B!. * B!. ) B!. ( Ak")!. ( AAAA˧  (Aj6  AAAA AAAA AkB7 !  B0! @ .B AuI ." ("Ak6 AJ ( . @ -B AuI -" ("Ak6 AJ ( - @ 0B AuI 0" ("Ak6 AJ ( 0 @ /B AuI /" ("Ak6 AJ ( / @ B AuI " ("Ak6 AJ (  B07 B07  @ @ ( "Atj("G   & @ -" (" ( qAsAtj(" @ A0j!@  AkAtj" ( F  (Aq"  A"E   7A!   ( Aj 6` A Aj A! B AuI " ("Ak6 AJ (  @ )"B AuI " ("Ak6 AJ (    !  @ @ ( "Atj("G   " -" (" ( qAsAtj(" @ A0j!@  AkAt" j"( F  (Aq"   ( Aj 6P A Aj A! B AuI  " ("Ak6A! AH   ( j")!-  7A! -B AuI  -" ("Ak6A! -! AJ  (  @ )"B AuI " ("Ak6 AJ (  @ )"B AuI " ("Ak6 AJ (    !  @ @ ( "Atj("G    @ " (" ( qAsAtj(" @ A0j!@  AkAt" j"( F  (Aq"   ( Aj 6@ A A@kB!  ( j)"B AuI " (Aj6 @ )"-B AuI -" ("Ak6 AJ ( - @ )"-B AuI -" ("Ak6 AJ ( -  7 BpBR !  A"BpBR  ("Aj ( -B AuI  -" ("Ak6 AH   A6 -7 A6 " 6 A~qAF  -B "*AuO@ -" (Aj6 -!.@@@ .".Bp"/B R@ /BQ  Aj Aj ."A5@ .B AuI   ("Ak6 AJ  ( .  (! ("@ @ Aj! !@@ ("AH ("+(8 Atj(" (",Ak6 ,AJ +  Aj! Ak"  ("Aj  ( E @ .B AuI  ("Ak6 AJ ( . *AtK@ -" (Aj6 @ Aj Aj -A!5E@ (" ! ("! @@ @@  Aj(B B0B0AA (. Aj! Ak" Aj!@@ (" AH ("(8 Atj(" ("Ak6 AJ   Aj! Ak"  E  ("Aj ( -"-Bp".B Q  .BQ  ("Ak6 AL A E  -  @ -" -AqE ("( "AJ@ A0j!@ Aj-Aq  Aj! Ak"  A6 A(j(6  Aj Aj A5  (! ("@ Aj! !@  (B AA Aj! Ak"    ("Ak6 AL A E .B AuI  ("Ak6 AJ ( . B AuI   ("Ak6 !- AJ  ( - B7  7 !  ((" ( qAsAtj(" E@ !  A0j!@  AkAtj"( F  (Aq" !   ( Aj 60 A A0j @ @  ( "Atj("G    BoX@ AA    A!@ AH (" (8 Atj(" ("Ak6 AJ  E  B07@ )"B AuI " ("Ak6 AJ (  )"B AuI@ !  " ("Ak6 AJ@ !  (  !  @ @ ( "Atj("G    A! (" ( qAsAtj("E A0j!@   AkAtj" (F@ !  (Aq" A  A ! ! ! E  ! A!  @@ )"BpT "/AG @ (" (AsAtA~rj("@ A0j!@  AkAtj"(A5F  (Aq"   6 AAAN )! BpT "/AG -A q   M !@@ Ak")"B AuI " ("Ak6 AJ (  BpBQ@ " @ Ak")"B AuI " ("Ak6 AJ (  Ak)A !  K B!. -A0qE   6,  6  Aj( AjG@ Aj(" Aj"G@ Aj!@ "Ak/! (!@@ Ak"-Aq@ ( Atj)"B AtK   ( Atj)"B AuI  " (Aj6 AkA:  -Ar: (" 6 6 7 Aj6 6  6  G    M @@ )"B AuI " ("Ak6 AJ (  Aj" I  (6   )7 B 7 ( j! !A! Aj$ . AAAA AAAA ~#Ak"$@ ("AL Aq! (! AO@ A$j! Axq! @ A6 AjA6 AjA6 AjA6 AkA6 AkA6 AkA6 A kA6 A@k! Aj"G  E At jAj!@ A6 Aj! Ak" (<@ (A jA~6 @ (|"AL (! (t! A! AG@ Aj! A~q!@  Ak(Atj" (! 6 A k 6  (Atj" (! Aj6 Aj 6 A j! Aj" G  AqE Atj"  (Atj"(6  6 @ AH (!A! AG@ Aj! A~q! @ Ak"(AH@   A k(Atj(6 (AH@   Ak(Atj(6 Aj! Aj"G  AqE  Atj"(AN Aj  (Atj(6 AJ@ (tAj! !@@ (AN Ak("AH  ("  Atj(Atj(6 Aj! Ak"  Aj!@@~@@@@ (DE @ ( -nAq  AN@ AAA  Aj!  (xN@A A Aj Aj  (!  Aj6 ( Atj"B7 A~6 A6 (Ak 6 ( ("AN@ ((8 Atj(" (Aj6 Aq!  6 Aj" AjA AA AqA  rAqA !A ("AH   AH  Aj"A  (6  AjA ( AG  Aj"A A6  AjA  AjA @@@ Ak Aj"A  ;  AjA  AjA ( "AN@ ((8 Atj(" (Aj6  6 Aj" AjA A  AjA9 ( "AN@ ((8 Atj(" (Aj6  6 Aj AjA @ ( "AH ("(8 Atj(" ("Ak6 AJ   Aj" (H  (@ Aj"A) A  6  AjA ( Alj (6 ("Aj ( ( B7 A6 ( Atj("AH @ (t Atj"( G @  (F ( AvAqAkAM@ Aj"A  A j(Au6  Aj" A A  ;  A  Aj"A  ;  AjA ("AN  AAAA AAAA AAAAȺ AAAAȺ  (Aj6 (!  A6X Bԁ7P Aj  AjE @ (" AH (N (|! (x! (! !@ (! (!A! @  Alj(!@@@@  j"-"Ak  Aj!  AG  Aj(Alj(!@@@  j"-"Ak  AG  Aj(! Aj" AG   Aj! Bp7H  6D A6@ Aj  A@k@ (!  A64  60 Aj  A0jE   (Aj6@ ("H@ (" Alj" ("Ak6 AL ("AH  N  Alj" ("Aj6 A~L  Aj" Aq  6  AjA AF@ !   F@ !   (Aj6 Aj"A  6  AjA ! !  AAAA  (Aj6  (E  Aj   ( /"Atj("AH @ (t Atj"( G  - Aq@ Aj" A  ; AjA ("AN  H   Aj Aj)7 Aj Aj)7 )7 Aj(@ ("-  A: AA A:  #Ak"$  (6  ("6  Aj("6 (! (! Aj"B7  6 AjB7 A6@@ ("@ ("("Aj At" ("E@ ("-E@ A: AA A: A6A!   A 6 @ ("E -nAq ("("Aj At" ("E@ ("-E@ A: AA A: A6A!   A 6 A6  (6 @ (AH Aj"A  A ("AL@ Aj A7kAq  AM@ Aj"A  Aq  Aj"A  ;  AjA @ (AH Aj"A  A ("AL@ Aj A7kAq  AM@ Aj"A  Aq  Aj"A  ;  AjA @ (AH Aj"A  A ("AL@ Aj A7kAq  AM@ Aj"A  Aq  Aj"A  ;  AjA @ (AH (`@ Aj"A  (;  AjA  AjA ("AL@ Aj A7kAq  AM@ Aj"A  Aq  Aj"A  ;  AjA @ (AH A! -nAqE@ (8AG! Aj"A   @ ("AH AM@ Aj A3kAq  AM@ Aj"A  Aq  Aj"A  ;  AjA ("AL@ Aj A7kAq  AM@ Aj"A  Aq  Aj"A  ;  AjA @ (AH Aj"A  A ("AL@ Aj A7kAq  AM@ Aj"A  Aq  Aj"A  ;  AjA @ (AH Aj"A  A ("AL@ Aj A7kAq  AM@ Aj"A  Aq  Aj"A  ;  AjA @ (AH Aj"A  A ("AL@ Aj A7kAq  AM@ Aj"A  Aq  Aj"A  ;  AjA @ AL Aj! Aj! Aj! Aj! Aj!A!@@@@   j"-"AtAЫj-" j!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Ak      (6 $ ("AH   (N   Alj"( AG  A j" (6 ("@@ ( (" k! (!@@@@ (Ak ( j 6  AjAO ( j ;  AjAO  ( j : ("Aj  ( "  AjA6 # /! Bp7 Aj  @@ ("AH@ (!   6 @ (" E (" (N (" (I ( F 6 6 Aj6 Atj" 6  6 Aj Aj     ( Aj! $ @ ("E (" (N (" (I (" (F 6 6 Aj6  Atj" 6  6 Aj   " (!  (!A!  (!A!   ( AjA! (" L  (! !@@@@  j" -"Ak  Aj( G   AF   Aj" H  AAAA AAAA AAAA AAAA     Aj!  A6 BԪ7 Aj  AjE  ("AN@  6 (! ("AFA AG A ! A}qAF@@ ("E (" (N (" (I (" (F 6 6 Aj6  Atj" 6  6 Aj @ ("AH ("(8 Atj(" ("Ak6 AJ   (!  B退p7 Aj ( AjE @ ("AH@ (!   6  (  Aj  (A Bp7 Bٸp7 Aj  Aj@ ("AN@  6  ("6 A6  ("Ak6 Aj (" Aj@ ("AN@  6 (! Aj! @ ("E (" (N (" (I (" (F 6 6 Aj6  Atj" 6  6 Aj" AkAq     Bp7 B7 Aj  Aj@@ ("AH@ (!   6 @ ("E (" (N (" (I ( F 6 6 Aj6  Atj" 6  6 Aj" AkAq  -  (6  AjA (!  Bp7 B 7 Aj  AjE @ ("AH@ (!   6 @ ("E (" (N (" (I ( F 6 6 Aj6  Atj" 6  6 Aj" AkAq A (!   /"6 A6  Ak6 Aj  Aj@@ ("AH@ (!   6 @ (" E (" (N (" (I ( F 6 6 Aj6 Atj" 6  6 Aj Aj  (!  @ ("E (" (N (" (I (" (F 6 6 Aj6  Atj" 6  6 Aj    /! @ ("E (" (N (" (I (" (F 6 6 Aj6  Atj" 6  6 Aj    /"AK Bp7  6 B 7@ Aj  AjE@ AjBp7  6 A6 B7 Aj  AjE  @ ("AH@ (!   6 @ ("E (" (N (" (I ( F 6 6 Aj6  Atj" 6  6 Aj"AAA ("AF AF  Aq (!  AjBp7 Aj 6 B 7 B7 Aj  Aj@@ ("AH@ (!   6  ( @ (A/F@ AjA  Aj"A  (6  AjA Aj"A  Aq (!  AjBp7 Aj 6 B 7 B7 Aj  Aj@@ ("AH@ (!   6  (  Aj" ( A  Aq (!  AjBp7 Aj 6 AjA6 B7 Bضp7 Aj  Aj@@ ("AH@ (!   6  (  Aj" ( ( A  Aq (!   ( ( AjA   A6 Bٸp7 Aj  AjE ("AN@  6 Bp7 ("Aj!@ Aj (" Aj ("AN@  6  (6A! A6  Ak6 Aj (" AjE  (! (A ! ! @ ("E (" (N (" (I (" (F 6 6 Aj6  Atj" 6  6 Aj  ( AH   6  A6 B7 Aj  AjE @ ("AH@ (!   6 @ ("E (" (N (" (I ( F 6 6 Aj6  Atj" 6  6 Aj" -  (6  AjA (!  Bp7 Aj  Aj@ ("AN@  6 (!  Bp7 Aj  Aj@@ ("AH@ (!   6 @ ("E (" (N (" (I ( F 6 6 Aj6  Atj" 6  6 AjA) (!  Bԁp7A Aj  Aj  Bp7 Aj  Aj@@ ("AH@ (!   6  (  AjA (!  A6 B7 Aj  AjE @ ("AH@ (!   6  (  AjA (As  Bɀp7 Bضp7 Aj  Aj  A6 B 7 Aj  Aj  A6 BȐ 7 ! Aj  AjE  (! Bp7 Aj  Aj@@ AH ("(8 Atj(" ("Ak6 AJ   ("AN@  6 (!  A/G @ ("E (" (N (" (I (" (F 6 6 Aj6  Atj" 6  6 AjA  (A0G @ ("E (" (N (" (I (" (F 6 6 Aj6  Atj" 6  6 AjA  ("AJ @ (" E (" (N (" (I (" (F 6 6 Aj6 Atj" 6  6 Aj" AkAq  Aq @ ("AxrAxF Bp7 Aj  AjE ("AN@  6 Bp7@ Aj ( Aj@ ("AH   6 (!   ( ( AjA k (!  Bp7p Aj  Aj@ ("AN@  6 (!  Bԁp7` AG Aj  Aj   ( ( Aj  Bp7P Aj  Aj@@ ("AH@ (!   6 @ ("E (" (N (" (I ( F 6 6 Aj6  Atj" 6  6 AjA (!  A6H B7@ Aj  A@kE @ ("AH@ (!   6 @ ("E (" (N (" (I ( F 6 6 Aj6  Atj" 6  6 AjA (As ! (! (! Bԁp70 Aj  A0jE  A F ! ("AN@  6 (! (! (Ak F @ AH ( L ( Alj" ("Ak6 ! AJ   Bp7 Aj  A jE ("AH   6  @ ("E (" (N (" (I (" (F 6 6 Aj6  Atj" 6  6 Aj    A j-! (!@  ( AjA"AH  (N (!@ ("E (" (N ( K (" (F 6 6 Aj6  Atj" 6  6  ("Aj6 ( Atj" 6  Aj6 A6  6 Aj"   6  Aj"A   Alj"( (k6  A ( AF@ (! ("AjA ("E A6  Ak6  Alj"(!  6  6 Aj   AAAA Aj( G  AH ( L ( Alj" ("Ak6 AL  AjA  B뀀p7 Aj  AjE  (" (" L  (! (! !@@@@@  j"-"Ak  AG  Aj( F   Aj( G  AN@  6 AH ( L ( Alj" ("Ak6 AJ@ As! (! !   Aj" H  A6   Aj Aj!@ (" L (! !@@@@@@  j"-"Ak  Aj( G   AF   Aj" H   Aj( G  AH  ( L  ( Alj" ("Ak6 AJ   @ ("A(k"AK A tAqE AH ( L ( Alj" ("Ak6 AL @ (" E (" (N (" (I (" (F 6 6 Aj6 Atj" 6  6 Aj Aq     Aj!  A! @ ("E (" (N (" (I (" (F 6 6 Aj6  Atj" 6  6 AF@     Aj! AH   (N   ("Aj6 ( Atj"A6  6  6  ("Aj6 Aj! @  Alj"( "AF@@ ( Asj"AJ AkAK A6  Aj"6 Aj" Aq A (! ("AjA ("E  A6  Ak6  Alj"(!  6  6  AG  AJ  A6 A6 Aj"A A;  AjA (! ("AjA ("E  A6  Ak6  Alj"(!  6  6  @  Asj"AjAK AkAK A6  Aj"6 Aj" Aq  Aq  AG AjAK A6 A6 Aj"A  ;  AjA  Aj" Aq  A j"( (k6  AjA (AG (! ("AjA ("E  A6  Ak6  Alj"(!  6  6 !  H    AAAA ("-E@ Aj"A: AA A: AjA!  @ ("AL Aj!@ (E@ Aj! Ak"   AAAA @ (" AL (!A!A! A! @A!@ ("AkAO@ AG A! @@ ( ( Alj( (" k"AH  AjJ A6 AF@A! A6   Aj"6  AG  AjAK  B큀 7A!A! (jAk : (" ( jj"  j (  j jk  ( k6@ ("AL Aq! (! AO@ A|q! @ A j"(" H@  k6 A j"(" H@  k6 A4j"(" H@  k6 Aj"(" H@  k6 Aj! Ak"  E A j!@ ("H@   k6 Aj! Ak" @ Aj" (" N ! AsjAq@A!A jAqk!@ Aj" ("H@  k6 Aj!  Ak"G kAj! A~ kjAI Aj! k!@ A0k"(" H@  k6 A k"(" H@  k6 Ak"(" H@  k6 ("H@   k6 A@k! Ak" Aj! (" AL (!A! AG@ A~q! !@ ("I@   k6 Aj"("I@   k6 Aj!  Aj"G  AqE  Atj"(" M   k6 Aj! Aj! Aj" H E AL (A j!A!@ ( (Alj( Ak("k!@@@@ Ak(Ak ( j : (!  ( j ;  ( j 6 Aj! Aj" H Aj! ("Aj ( (A! A6 ("Aj ( ( A6@ -nAq (E (! ((! Aj" "B7  6 AjB7 A6 ("AL A!A! @@ ( Atj"("AH  F (" k"AH @@  k"Aj"AK A2K  AljAj!  A@ AI@ !  @ ArAq AK! Av"!  Aq At Aus"AI@ !  @ ArAq AK! Av"!  Aq (! ! ! Aj" H ("Aj ( ( A6  Aj Aj)7 Aj Aj)7 A6 )7 Aj(E A! ("- A: AA A: Aj$    ("6p (! ("Aj At" ("E@ ("-  A: AA A:   6x AJ@ A  A6 B7| A6t@ AjAAA @ ("AJ@@  Ak"6  (| Atj("j" -"A jAqA I@A!   Aj  AK"At" AЫj-j" (pJ@A!  (x Atj/! Aѫj-!@ A1G A!kAOqE@ / j!  AkAK  jAk!  J@A!  @ Aҫj- k j" (tL  6t AL A!  @@@@@@@@@@@ A#k     (jAj!   .jAj!  Aj"  j,j!  Aj Aj"  j,j    Aj  (jAj    Aj  (jAj  Aj   Aj  (jAj  Aj   Aj  (jAj  AjE   Aj  (jAj  Ak  Aj    (! AJ  ("Aj (x ( ("Aj (| (AA -nAq"" (Atj! (t!  @  (DE  (| (jAt j " (Atj" (j"E  A6   j"6  ("6  (  ("Aj ( ( A6  (p6 (|" (" jAJ@@@ -nAqE (D AJ@A!A!@@ (t j("AH (" (8 Atj(" (" Ak6 AJ  (! Aj! Aj" H (!  AJ@A!A!@@ ( j("AH ("(8 Atj(" (" Ak6 AJ   (! Aj! Aj" H  (" AL  (!A!A! @@  j("AH ("(8 Atj(" ("Ak6 AJ   (! (!  jA6 Aj! Aj" H    j"6  ( At ( (Atj (t (|At  (|;*  (;(  (;, ("Aj ( ( ("Aj (t (  ("68 @   j"64  ( At ("Aj ( (  ;. A6@ -nAq@ ( Aj   /Ar;  )7@ ("Aj ( Aj(" ( !@ E  ("- A: AA A: Aj 6 E@  (6P Aj (6 Aj (6 Aj (6 (" AjG@ ("Aj  (  ("6< @   j"6$  ( At ("Aj ( ( A6  /A~q /4Aqr";  /8AtAq A}qr";  -n:  /`AtAq A{qr";  AOq /lAtA0qr";  (AH (AGAtA Awqr";  /PAtAq Aqr";  A~q /TAtAqr";  A}q /XAtAqr";  A{q /\A tAqr";  Aq /hA tAqr; (Aj6 (! A:  (P"6  60  Aj"6  6P A j Aj6 (@ Aj"(" ("6  6 A6 A6 ("Aj  ( B`   6  6   ("Aj (x ( ("Aj (| ( ~B ! Aj$  AAAA AAAA p~| (Aq! (+!8@@ (@ " A j(!#Ak"$ 8!@ 8 8b@A!  B"!B BB B4Aq"" B!#A!@@@AAA B""P" "BQAA  !PAk A!  Ak  B B BQ"! AwAw  j ! #P! @@@@@@@@ AkAq"A AI"@AAA  BS!A! B? r! Ak A6 A6 A; A!A! A j  A6 A6 A; A j  A! A; E  A j 6 A; A6 A6 A j  @@@@@@@@@@@@@AtA " AH l"AI@ P  Av" Aj! A kA~ AI!A A k  BT""Ak  B "BT""Ak  B  "BT""Ak  B  "BT""Ak  B  "BT" B  "BY"k"kAlAjAnAt"AȎj)"!B"#  "B ""~"$B !B "! "~| ! B"~"!B | $B  #~B | !B|B|B |"BA@  AЎj/jk"A?q"!""B}"$"#P@ A6  AҎj/!  !"AO@ A=I  A/O@AA AI"! A/A   AA AI"! A=A   AO@AA AI"! AA   A A A K"   AA%A AAA AA AI"! AA  !@  kAj"H@ Aq!  k"  I"Ak!@@@@ Aj j  n"A0j:  lk!  F   F  Aj! A I! A n! E AAA Aj!Al k! AkA?q!&B!@  &PE@ A6  jAF  Aj j #B ~"# !A0j: B ~! # $!#  Aj"G Aj Aj    # "   Aj Aj     ! #| ! "  AȚ Aj Aj A   B ! " ("   > AA BT"6 A B 6 AjAA A jAA A6 A6  B}y}Bš~B͠|B "!@ AN@ Aj Aq  A jA k @ AH@ AjA kAq  A j Aq ( ! A j A jA  6 A j! ! !@ A)O @ E At!@ AkAq"E@ A j j!B!  Aj"Aq! Aq!  j!B!@ "Aj" 5 B "B" > 5 B씣|~ |B "B" > B씣|~ |! Ak! Ak" E  Ak" 5 B B> A k"A K@ (!  AtAj("E  ("A)O  At! !@@ AkAq"E@ A j j!B!  Aj"Aq! Aq! jA j!B! @ "Aj" 5 B " "!> 5  !~}B " "!>  !~}! Ak! Ak" E  Ak" 5 B > (A " ( " K"A(K @ E@A!  A! A!@@ AG@ Aq! A~q! Aj! A j!@ (" (j" Aqj"6 Aj" (" Aj(j"  I  Krj"6  I  Ir! Aj! Aj!  Aj" G E  At" A jj" (" Aj j(j" j"6 I  K   E  A'K  A j AtjA6 Aj!  6   K"A)O At!@@ @A Ak" A jj(" A jj("G  K"E   AA A j"j G! AM@ Aj!  E@A!  AkAq"Aj"Aq! AI@ Aj!B!  Aq! Aj!B!@ 5B ~ |"> Aj" 5B ~ B |"> Aj" 5B ~ B |"> A j" 5B ~ B |"> B ! Aj! Ak"  /! (!  A(A A׷AA @@ 5B ~ |"> Aj! B ! Ak"  "E A'K  Aj Atj 6 Aj!  6 A! @ " H"E@  k k I"  A!  A j" A j"A  6 A! ( ! A j" A  6 A! ( ! A j" A  6 A! ( ! ( ! ( ! ( ! (!A!@@ !@@@@ A)I@ Aj! At!A!@@@@ F  Aj j! Aj! (E    K"A)O  At!@@ @A Ak" A jj(" Ajj("G  K"E   AA A j j G! A AO  E A!A! AG@ Aq! A~q! A j! Aj!@ (" (Asj" Aqj"6 Aj" (" Aj(Asj"  I  Krj"6  I  Ir! Aj! Aj!  Aj" G E  At" Ajj" (" j(Asj" j"6 I  K   K   G@ Aj jA0 k Aj! E   6 !A !    K"A)O  At!@@ @A Ak" A jj(" Ajj("G  K"E   AA A j j G! @ AK@ !  @ E A!A! @ AG@ Aq! A~q! A j! Aj!@ (" (Asj" Aqj"6 Aj" (" Aj(Asj"  I  Krj"6  I  Ir! Aj! Aj!  Aj" G E  At" Ajj" (" j(Asj" j"6 I  K   E   6 Ar!    K"A)O  At!@@ @A Ak" A jj(" Ajj("G  K"E   AA A j j G! @ AK@ !  @ E A!A! @ AG@ Aq! A~q! A j! Aj!@ (" (Asj" Aqj"6 Aj" (" Aj(Asj"  I  Krj"6  I  Ir! Aj! Aj!  Aj" G E  At" Ajj" (" j(Asj" j"6 I  K   E   6 Aj!   K"A)O  At!@@ @A Ak" A jj(" Ajj("G  K"E   AA A j"j G! @ AK@ !  @ E A!A! @ AG@ Aq! A~q! A j! Aj!@ (" (Asj" Aqj"6 Aj" (" Aj(Asj"  I  Krj"6  I  Ir! Aj! Aj!  Aj" G E  At" Ajj" (" A j j(Asj" j"6 I  K   E   6 Aj!  G@ Aj j A0j: E@A!  AkAq"Aj"Aq! AI@ Aj!B!  Aq! Aj!B!@ 5B ~ |"> Aj" 5B ~ B |"> Aj" 5B ~ B |"> A j" 5B ~ B |"> B ! Aj! Ak"  A  A @@ 5B ~ |"> Aj! B ! Ak"  "E A'K  Aj Atj 6 Aj!  6  G A!   A(A @@ A)I@ E@A!  AkAq"Aj"Aq! AI@ A j!B!  Aq! A j!B!@ 5B~ |"> Aj" 5B~ B |"> Aj" 5B~ B |"> A j" 5B~ B |"> B ! Aj! Ak"  A(A @@ 5B~ |"> Aj! B ! Ak"  "E A'K  A j Atj 6 Aj!  6   K"A)O  At!@@@@@@@ E A Ak" A jj(" Ajj("G  K"E AqAF   A j"j FqE  Ak" O  Aj j-AqE  K  Aj j!A! !@@ "E  Aj! Ak" Ajj-A9F Aj j" -Aj:  O  Aj jA0   A1 E  A1:A0 AF  AjA0 AkA0 ! Aj! E   A O   : Aj!  A K  Aj!  H@ Aj   A j ( ! (  A! A; E@A! A6 A6 A j  A j 6 A; A6 A6 A j  A A! A6 A6 A j ! A j 6  6  6  6 A j! Aj$  A(A A(A(A A(A AAA   ! #A k"$ 8!@ 8 8b@A!  B"!B BB B4Aq""#B! A! @@@AAA B""P" "BQAA  !PAk A!  Ak! P! B!,  B #B #BQ"!#BB !,AwAw  j! P! @@@@@@@@@ AkAq"A AI"@AA BS"AA  !A!A B? !@ Ak #P   #B}" 7  ;  A k  # ,|"-BT""Ak  -B - "BT""Ak  B  "BT""Ak  B  "BT""Ak  B  "BT" B  "!BY"k"k"AH  B """ 7  T   ;  #7   #7  #T A kAlAjAnAt"AȎj)"$B" # "B?"""%B "2~"'B "6 $B "& 2~| & %B"$~"%B "7|!) 'B  $~B | %B|B|B !3BA AЎj/jkA?q"'"$B}!*  "" B ""~"%B  B" ~B | &~" B|B|B !. " &~!" B !/ %B !% AҎj/! & ! " B "4~"5  4~"!B "+| & B" ~"(B "0| !B  ~B | (B|B|B "1|B|"( '" AO@ A=I  A/O@AA AI"!A/A   AA AI"!A=A   AO@AA AI"!AA   A A A K"  A6 A6 A; A!A! A j  A6 A6 A; A j  A6 A6 A; A j  AAA AAA܊ AA AI"!AA  ! ) 3|!) ( *! kAj! ( " %| /| .|".}"/B|"! *!"A!@@@@@@@@ A j j" n" A0j":@  lk" '"% |" !Z@ G  Aj!B!@ !! AF  A j j B ~" 'A0j": !B ~! Aj! "B ~"" *" X  ( )}~"% |!& " } $T"  % }"' V   ! }""  '"!T! ( )}"'B|!$ 'B}"( X  ! "V  !|"' 6| 7| 3| & 2 4}~| +} 0} 1}!&B  )|}!) + 0| 1| 5|!"B . % '||}!*@@ % '|"+ (T " )| % &|Z %|!A!   Ak": !|! " *|! ( +V@ ! &|!& ! '|!' " !}!"  !Z   !T! %|!  Aj! A I! A n! E AAA jA j! $ )B ~ + 0| 1| 5|B ~} !~|!( ' }!) " $|}!*B!%@@ $|" 'T % )| (|Z A!   Ak": % *|"+ $T!  'Z  % $}!% ! $ +X  AAA̙ @  $Z   !|" $T  $ } $}Z  BT   /B}V  Aj!  ! @A  &T E@ !B~ X    $|" &T  & } &}Z  !B~ V   !BX~ "|X   #> AA #BT"6 A #B 6 A$jAA A6 A6 AjAA A6  ,> AjAA AjAA A6 A6  -B}y}Bš~B͠|B "!@ AN@ Aj Aq" Aj  Aj   AjA k @ AH@ AjA kAq" Aj  Aj   Aj Aq (! A j AjA  6 @@@ @@@@ (" K"A(M@@ E@A!  A!A! @@ AG@ Aq! A~q! Aj! A j!@  (" (j" j" 6 Aj" (" Aj(j" I Irj" 6 I Ir! Aj! Aj!  Aj"G E  At" A jj" (" Aj j(j" j" 6  I   K   E  A'K A j AtjA6 Aj!  6 ("   I"A)O  At!@@ @A Ak" A jj("  Ajj(" G  K"E   AA  A j"j G!  N@ E@A!  AkAq"Aj"Aq! AI@ Aj!B!  Aq! Aj!B! @  5B ~ |"> Aj" 5B ~ B |"> Aj" 5B ~ B |"> A j" 5B ~ B |"> B ! Aj! Ak"  Aj!   @@  5B ~ |"> Aj! B ! Ak"  "E A'K  Aj Atj 6 Aj!  6 ("A)O A!A E  AkAq"Aj" Aq! AI@ Aj!B!  Aq! Aj!B! @  5B ~ |"> Aj" 5B ~ B |"> Aj" 5B ~ B |"> A j" 5B ~ B |"> B ! Aj! Ak"  A(A @@  5B ~ |"> Aj! B ! Ak"   "E  A'K  Aj Atj 6 Aj 6   AkAq"Aj"Aq!@ AI@ Aj!B!  Aq! Aj!B! @  5B ~ |"> Aj" 5B ~ B |"> Aj" 5B ~ B |"> A j" 5B ~ B |"> B ! Aj! Ak" @@  5B ~ |"> Aj! B ! Ak"  "E@  6  A'K  Aj Atj 6 AjA 6 Aj" Aj"A  6 A! (! Aj" A  6 A! (! Aj" A  6 A!@ (" ( "  K"A(M@ (! (! (!A!@ ! At!@@ @A Ak" Ajj("  Ajj("G K"E   AA Aj j G! A!@@@@@@  AM@@ E A! A!@ AG@ Aq! A~q! Aj! Aj!@  (" (Asj"j" 6 Aj" (" Aj(Asj" I Krj"6  I Ir! Aj! Aj!  Aj"G E  At" Ajj" (" j(Asj" j"6 I  K   E   6A! ! @@@@@    K"A)I@ At!@@ @A Ak" Ajj("  Ajj("G K"E   AA Aj j G! @ AK@ !  @ E A! A!@ AG@ Aq! A~q! Aj! Aj!@  (" (Asj"j" 6 Aj" (" Aj(Asj" I Krj"6  I Ir! Aj! Aj!  Aj"G E  At" Ajj" (" j(Asj" j"6 I  K   E   6 Ar!    K"A)O  At!@@ @A Ak" Ajj("  Ajj("G  K"E   AA Aj j G! @ AK@ !  @ E A! A!@ AG@ Aq! A~q! Aj! Aj!@  (" (Asj"j" 6 Aj" (" Aj(Asj"  I  Krj"6  I  Ir! Aj! Aj!  Aj"G E  At" Ajj" ("  j(Asj" j"6  I   K   E   6 Aj!  K"A)O  At!@@ @A Ak" Ajj("  Ajj("G  K"E   AA  Aj"j G! @ AK@ !  @ E A! A!@ AG@ Aq! A~q! Aj! Aj!@  (" (Asj"j" 6 Aj" (" Aj(Asj" I Krj"6  I Ir! Aj! Aj!  Aj"G E  At" Ajj" (" Aj j(Asj" j"6 I  K   E   6 Aj! AF  A j j A0j:  ("  K"A)O  Aj! At!@@ @A Ak" Ajj("  Ajj("G  K"E   AA  Aj"j G! A j AjA  6  ("  K"A(K @ E@A!  A!A! @@ AG@ Aq! A~q! Aj! A j!@  (" (j"j"6 Aj" (" Aj(j"  I  Krj"6 I Kr! Aj! Aj!  Aj"G E  At" A jj" (" Aj j(j" j"6  I   K   E  A'K  A j AtjA6 Aj!  6    I"A)O  At!@@ @A Ak" A jj("  Ajj("G  K"E   AA  A j"j G! @  H"E  NqE@  H   A!A E  AkAq"Aj"Aq! AI@ Aj!B!  Aq! Aj!B! @  5B ~ |"> Aj" 5B ~ B |"> Aj" 5B ~ B |"> A j" 5B ~ B |"> B ! Aj! Ak"  E  AjA (" ("  K"A)O  At! Aj!@@ @  j!A Ak" Ajj(" ("G  I"E   AA  Aj"j G! AO   A(A A(A AAAȍ A(A A j j!A! !@@ "E  Aj! Ak" A jj-A9F A j j" -Aj:  K A j jA0  A1: @ @ A jA0  AK  A0: Aj! Aj!  AA؍ @@  5B ~ |"> Aj! B ! Ak"   "E  A'K  Aj Atj 6 Aj "6 E  AkAq"Aj"Aq! AI@ Aj!B!  Aq! Aj!B! @  5B ~ |"> Aj" 5B ~ B |"> Aj" 5B ~ B |"> A j" 5B ~ B |"> B ! Aj! Ak"  A(A @@  5B ~ |"> Aj! B ! Ak"  "E@ !  A'K  Aj Atj 6 Aj!  6 E@A!  AkAq"Aj"Aq! AI@ Aj!B!  Aq! Aj!B! @  5B ~ |"> Aj" 5B ~ B |"> Aj" 5B ~ B |"> A j" 5B ~ B |"> B ! Aj! Ak"  A(A @@  5B ~ |"> Aj! B ! Ak"  "E A'K  Aj Atj 6 Aj!  6    K"A(M  A(A A(A AI AA  A j A A j (! ( ! Aj 6  6  6  6 Aj! A j$  A6 #Ak"$ Aj6 Aj6 AjA A jA A jA A(A(A AAA  A(A A(A m~ Aj Aj"6 6`@@@@@@@ Aj(" Aj"F @ Ak" -"AO  (! Ak! @@@@@@@  (0"AJ@ (,!@@ )"B`T "("AL   Ak"6  -AqAG A j"(" (" 6 A6 6  (" 6 Aj"6  6  6 Aj! Ak"  (("E  ("AL  Ak"6   -AqAG  A j"(" ("6 A6  6  ("6  Aj"6  6  6  ("("AL  Ak"6@  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 ( " AJ@ A0j! ( !@@ Aj(E @@@@@ (AvAk @ ("E ("AL   Ak"6  -AqAG A j"(" (" 6 A6 6  (" 6 Aj"6  6  6 Aj("E  ("AL   ("-AqE  ("AL   (A|q"("AL   )"B`T  "("AL   Ak"6  -AqAG A j"(" (" 6 A6 6  (" 6 Aj"6  6  6 Aj! Aj! Ak"  Ak/"AF  (D Alj( "E  BpA 2  Ak-AqE ()"B`T  "("AL  Ak"6   -AqAG  A j"(" ("6 A6  6  ("6  Aj"6  6  6  @ (E @ )8"B`T "("AL  Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ ) "B`T "("AL  Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 (\"E (@" O @@ )"B`T "("AL  Ak"6  -AqAG A j"(" (" 6 A6 6  (" 6 Aj"6  6  6 Aj" I @ )"B`T "("AL  Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 )"B`T  "("AL  Ak"6   -AqAG  A j"(" ("6 A6  6  ("6  Aj"6  6  6  ($"E  ("AL   Ak"6   -AqAG  A j"(" ("6 A6  6  ("6  Aj"6  6  6  (" Aj" G@@ ("AJ@ (Aj!@@ Aj( ("E (" AL  Ak" 6 -AqAG A j" (" ("6 A6  6  (" 6 Aj"6  6 6 Aj! Ak"  @ )8"B`T "("AL  Ak"6  -AqAG A j"(" (" 6 A6 6  ("6  Aj"6  6  6 @ )@"B`T "("AL  Ak"6  -AqAG A j"(" (" 6 A6 6  ("6  Aj"6  6  6 @ )X"B`T "("AL  Ak"6  -AqAG A j"(" (" 6 A6 6  ("6  Aj"6  6  6 @ )`"B`T "("AL  Ak"6  -AqAG A j"(" (" 6 A6 6  ("6  Aj"6  6  6 (" G  @ )"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )P"B_X "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )X"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )`"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )h"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )p"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )x"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 (@"AJ@ ( !@@ )"B`T "("AL  Ak"6  -AqAG A j"(" (" 6 A6 6  (" 6 Aj"6  6  6 Aj! Ak"  @ )"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )H"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )8"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )@"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )0"B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 @ )("B`T "("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 ("E ("AL   Ak"6  -AqAG A j"(" ("6 A6  6  ("6  Aj"6  6  6 -AqAr: (E@ (" ("6 A6  6  ("6  6  6  6  "G (T" F @ Ak" (AL  Ak" -Aq":@@@@@@@  (0"AJ@A!A! @@ (, j)"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  -Aq:  6 (0! Aj! Aj" H  (("E   ("Aj6   A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq:  (" ("Aj6 E@ A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: ( AJ@A!A!@@  j"A4j(E ( j!@@@@@ A0j(AvAk @ ("E  (" Aj6 A j" (" (" 6 A6 6  (" 6 Aj" 6  6 6  -Aq: Aj("E   ("Aj6  ("-AqE   ("Aj6  (A|q" ("Aj6  )"B`T  " ("Aj6  A j(" (" 6 A6 6  ("6  Aj"6  6  6  -Aq: Aj! Aj" ( H  Ak/"AF  (D Alj( "E  BpA 2  Ak-AqE ()"B`T  " ("Aj6   A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq:  @ (E @ )8"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ ) "B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: (\" E (@" O @@ )"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  -Aq:  6 (\! Aj" I @ )"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: )"B`T  " ("Aj6   A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq:  ($"E   ("Aj6   A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq:  (" Aj" G@@ ("AJ@A!A!@@ ( j"Aj( ("E  (" Aj6 A j"(" (" 6 A6 6  (" 6 Aj" 6  6  -Aq:  6 (! Aj! Aj" H  @ )8"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )@"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )X"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )`"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: (" G  @ )"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )P"B_X " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )X"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )`"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )h"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )p"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )x"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: (@"AJ@A!A! @@ ( j)"B`T " ("Aj6  A j"(" ("6 A6  6  (P"6  Aj"6 6P  -Aq:  6 (@! Aj! Aj" H  @ )"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )H"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )8"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )@"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )0"B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: @ )("B`T " ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: ("E  ("Aj6  A j"(" ("6 A6  6  ("6  Aj"6  6  6  -Aq: (" G @ (d" F @@@@@@@@ Ak-Aq @ (0"AL (,!A! AG@ A~q! !@ )"B`Z@ " (Aj6 Aj)"B`Z@ " (Aj6 Aj!  Aj"G  AqE  Atj)"B`T " (Aj6 (("E   (Aj6  (" (Aj6 ( " AJ@ A0j! ( !@@ Aj(E @@@@@ (AvAk ("@  (Aj6 Aj("   ("-Aq   (A|q!  )"B`T  !  (Aj6 Aj! Aj! Ak"  Ak/"AF  (D Alj( "E  AkBpA 2  Ak-AqE ()"B`T  " (Aj6  @ (E )8"B`Z@ " (Aj6 ) "B`Z@ " (Aj6 (\"E (@" O @ )"B`Z@ " (Aj6 Aj" I )"B`Z@ " (Aj6 )"B`T  " (Aj6  ($"E   (Aj6  (" Aj" G@@@ ("AL (!A! AG@ Aj! A~q! @@ Ak( Ak("E  (Aj6 @ ( Ak("E  (Aj6 A(j! Aj"G  AqE  Alj"( ("E  (Aj6 )8"B`Z@ " (Aj6 )@"B`Z@ " (Aj6 )X"B`Z@ " (Aj6 )`"B`Z@ " (Aj6 (" G  )"B`Z@ " (Aj6 )"B`Z@ " (Aj6 )"B`Z@ " (Aj6 )"B`Z@ " (Aj6 )"B`Z@ " (Aj6 )P"B_V@ " (Aj6 )X"B`Z@ " (Aj6 )`"B`Z@ " (Aj6 )h"B`Z@ " (Aj6 )p"B`Z@ " (Aj6 )x"B`Z@ " (Aj6 )"B`Z@ " (Aj6 )"B`Z@ " (Aj6 @ (@"AL ( !A! AG@ A~q! !@ )"B`Z@ " (Aj6 Aj)"B`Z@ " (Aj6 Aj!  Aj"G  AqE  Atj)"B`T " (Aj6 )"B`Z@ " (Aj6 )"B`Z@ " (Aj6 )H"B`Z@ " (Aj6 )8"B`Z@ " (Aj6 )@"B`Z@ " (Aj6 )0"B`Z@ " (Aj6 )("B`Z@ " (Aj6 ("E  (Aj6 (" G A:h (d" F Aj!@@ Ak-AqE@ Akn  (" ("6 A6  6  ("6  6  6  6 (d" G A:h Aj(" Aj"G@ Aj!@ Ak-Aq  Ak! (!   (  G  6\ 6X AAA,A AAA,A AAA-A AAA,A AAA,Aݖ [ ~#Ak"$ (!@ ( " ("kAL@ (E@ AA A6B!  Aj" Aj"6B !@@@@@@@@@@@@@@@@@@@~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -"Ak1   AGB! 0  O - Aj! ,"Aq! AH + ,  kAJ  (E@ AA A6B! . "@ B! . B! - ( "AqE A0jArAA A60  kAL@ (E@ AA A6B! - Aj"6  /Aq AvA qr;A  kAL@ (E@ AA A6B! - Aj6  -":/  :@B! Aj ,@@ (" ( "O ,"Aq! Aj" AN   M  ,"AqAt r! Aj" AN   M  ,"AqAt r! Aj" AN   M  ,"AqAt r! Aj" AN   M  ,"AH  At r! Aj k"AN  (E@ (AA A6 -  j6  ;X Aj , Aj , Aj , Aj , Aj , Aj , A(j , AA /A"Aq" (hAtj" (("Atj" (lAtj"A (H A qj"E ,  )07 A6 A8j Aj)7 A0j Aj)7 A(j Aj)7 A j Aj)7 Aj Aj)7 Aj A@k)7 Aj A8j)7 @   j6  (<"@   j6$ (8@   j64 (! A:  (P" 6A! Aj" 6  6P A j Aj6 B`!@ AJ@ ( j"Ak  Ak     (Ak6 A/j  Aj" -/"AtAq (A~qr AvAqr6 Aj! Ak" (<  AJ@A!A!@ ($ j"Aj  A$j   ($; A/j  Ak -/: Aj! Aj" (   B AuI " ("Ak6 AJ (  B!  ! & "BpBQ@B! & @ B "E A jAK AAB0!  @@ ("( (()P"A BoV"AylAk"A (kvAtj("@@@ ( G (, G ( E  (("   A" B!   (Aj6  A "BpBQ  ( AO@ ((" (,N@ ( A$jA A,j Aj  ((! Aj6( ($ Atj >    % B0 "BpBQ   "BpBQ  ( AO@ ((" (,N@ ( A$jA A,j Aj  ((! Aj6( ($ Atj > B AuI $ " ("Ak6 AN $  ("AjA ("E@B! ("- $ A: AA A: $ A6 (! Aj" "B7 B7  6 A k"AqAO  AtAj) !@@ (" ( "O ,"Aq! Aj" AN   M  ,"AqAt r! Aj" AN   M  ,"AqAt r! Aj" AN   M  ,"AqAt r! Aj" AN   M  ,"AH  At r! Aj k"AN  (E@ (AA A6   j"6 AjA Aqk Avs"Aq6 AM@ A jAx6 $ @@@ Au"Ak A jA6 % A jA6 $ A j Ak  AJ6  M Aj! ,"Aq! AH ( AM@ A̻AB! #  O  Aj! ,"Aq! AH   (!  6   k6 A B! ! B0! A j6B~ )"B} BBV!   O  Aj! ,"AqAt r! AN  O  Aj! ,"AqAt r! AN  O  Aj! ,"AqAt r! AN  O  ,"AH  Aj! At r!  k"AN  (E@ AA A6B!   j6 ((" M@  6  6 A AjB!  ($ Atj(" (Aj6 Bp!   O  Aj! ,"AqAt r! AN@ !   O  Aj! ,"AqAt r! AN  O  Aj! ,"AqAt r! AN@ !   O  ,"AH  Aj! At r!  k"AN  (E@ (AA A6   j6 E@ (AA  @@ A F@ Aj"A n"  A I A A p"kA ! A AK! A!A!@@A "AK@A!  A k! AtAj!A!@ E@ ( ("kAL@ (E@ (AA A6  Aj6 -" Aq!A  AqAv!A ! A O@ (AA  ( l j! Aj! Aj" ( Atj 6 Aj" G  AjAv"E  ("("-  A: AA A:  @@ Aq"E@A!  ( " ("kAL A! Aj"6 -A Atkt" AF   kAL  Aj"6 -A( Atkt r" AF   kAL  Aj6 -A0 Atkt r ! Aj( 6  M  At!  k! ( ("k!@ AL@ (E@ (AA A6  Aj"6 ( j (6 Aj! Ak! ! Ak"  (E@ (AA A6  ("Ak6 AJ@B!  (( B!   !@ B AuI " ("Ak6 AJ (  B! B AuI  " ("Ak6 ! AJ  (   @ AuI " ("Ak6 AJ (  B AuI@B!  " ("Ak6 AJ@B!  ( B!   O  Aj! ,"AqAt r! AN  O  Aj! ,"AqAt r! AN  O  Aj! ,"AqAt r! AN  O  ,"AH  Aj! At r!  k"AN  (E@ AA A6B!   j"6   kK@ (E@ AA A6B!  @ B0 A AA"BpBQ ( AO@ ((" (,N@ ( A$jA A,j Aj  ((! Aj6( ($ Atj > ( j6  B AuI@B!  " ("Ak6 AJ@B!  ( B!  O  Aj! ,"AqAt r! AN  O  Aj! ,"AqAt r! AN  O  Aj! ,"AqAt r! AN  O  ,"AH  Aj! At r!  k"AN  (E@ AA A6B!  j"6@@  O Aj! ,"Aq!@ AN  O  Aj! ,"AqAt r! AN@ !   O  Aj! ,"AqAt r! AN  O  Aj! ,"AqAt r! AN@ !   O  ,"AH  Aj! At r!  k"AN  (E@ AA A6B!  j6 ((!@ ( AO@ " (,N@B0!B0!  A$jA A,j Aj  ((! Aj6( ($ AtjA6 B! "BpBQ #Ak"$@ BpZ@ "/AkAqAI   (" Aj (DAj(6 A A  ( ! Aj$ E@     70  AN~ B~ "B} BBV 78  AN~ B~ "B} BBV 7@ B0 A0j Aj8"BpBQ ( AO@ ($ Atj >      B! B AuI@B!   ("Ak6 AJ@B!  ( B!   O  Aj! ,"AqAt r! AN  O  Aj! ,"AqAt r! AN  O  Aj! ,"AqAt r! AN  O  ,"AH  Aj! At r!  6  k"AN  (E@ (AA A6     j6@@ E  6 ("Aj At" ("E@ ("-E@ A: AA A: A6    A!  A 6 (AL A!@ ( j  Aj! Aj" (H @@@@ (" ( "O ,"Aq! Aj" AN   M  ,"AqAt r! Aj" AN   M  ,"AqAt r! Aj" AN   M  ,"AqAt r! Aj" AN   M  ,"AH  At r! Aj !  6  k"AH   j6 E   6$   Al"6 E  ( AL A!  A6 (E@ (AA A6    @@ ( " ("kAL@ (E@ (AA A6    (! Aj" 6  j"Aj -"6@@ E@     M  ," Aq! Aj" AN   M  ," AqAt r! Aj" AN   M  ," AqAt r! Aj" AN   M  ," AqAt r! Aj" AN   M  ,"AH  At r! Aj !  6  k"AH   j6 A j  Aj  Aj! Aj" ( N   A6 (E@ (AA A6    A,j" @ ("E  60   At"6( E  (AL (! ( !A! @@@  M Aj! ," Aq! AN   M ," AqAt r! Aj" AN   M ," AqAt r! Aj" AN   M ," AqAt r! Aj" AN   M ," AH At r! Aj  A6 (E@ (AA A6   !  6 6 Aj! Aj" (H A8j" @ ("E  6<   A l"64 E  (AL A!A!@ (4 j"Ak  Ak    A j! Aj" (H  "7H BpBQ BP!      O  Aj! ,"AqAt r! AN  O  Aj! ,"AqAt r! AN  O  Aj! ,"AqAt r! AN  O  ,"AH  Aj! At r!  k"AN  (E@ AA A6B!   j6A Aqk Avs! Aj$  B#~|#Ak"$ Aj"!A k! Ak!! A7j!" A~s!# Aj!$ Ar! A r!A k!% Aj!& A8j!A!@@@@ !  AsJ  j!@@@@@@@@ -"@@@@ Aq"@ A%G  "!@ -A%G@ !  Aj! -! Aj"! A%F  !  k" As"J @ E -A q     Aj!A!@ ," A0k"A K -A$G Aj! ,! A! ! A! @ A k"AK A t"AqE Aj! @  r! "," A k"A O  Aj! A t"Aq A*F@@ ,A0k"A K -A$G  AtjA 6 Aj! A! ,At jAk(    Aj! E@A!A!   ("Aj6A! ( " AN A k! Ar!  A! A0k"A K@ !  @ A̙M@A A l" j  AsK! ,! Aj" ! A0k"A I  AH  ,!A! Aj! A0k"A I -! Aj!  E@A!  @ ("E@A!  Aj  ("E@A!  Aj  ( "E@A!  Aj  ("E@A!  A j  ("E@A!  A(j  ("E@A!  A0j  ("E@A!  A8j  ( "E@A!  A@k  ($"E@A !  Aj A! At!@  j(  Aj"A(G A! A!A! @ -A.G@ !A!  ,"A*F@@ ,A0k"A K -A$G  AtjA 6 Aj! ,At jAk(    Aj!A E   ("Aj6 ( " AsAv!  Aj! A0k"A K@A! A!  A! ! @A! A! ,! A̙M@A A l" j  AsK!  ! Aj"! A0k"A I @ ! ,"AkAFI  Aj!  A:ljAj-"AkAI @@ AG@ E  AN@  Atj 6   Atj)78  E@A!  A8j    AN  A! E A{q" Aq!@@@@@@@@@@@@@@ Ak,"A_q  AqAF  "Ak8     A! )8!(A  A!@@@@@@@ Aq (8 6  (8 6  (8 7  (8 ;  (8 :  (8 6  (8 7  A AK! Ar!A! A!A! )8"(P@ !  A q! !@ Ak" (AqAЁj- r: (BV! (B!(  AqE  AuAj!A!  ! )8"(PE@@ Ak" (AqA0r: (BV! (B!(   A!A! AqE   k"Aj  H!  )8"(BS@ B (}"(78A!A  Aq@A!A  AA Aq" !@ (BT@ (!) !  !@ Ak" ( (B ")B ~}A0r: (BV! )!(  )"E @ Ak"  A n"A lkA0r: A K! ! A AH  A{q  !@ )8"(BR A! "! (P  kj"  H! !  )8<7A!A!A! "! ! A(  (8"A  ""A A AI"" k  " j!A!A! AN  -E  (8" A!  A6  )8>  Aj"68A!  !A! !@@ (" E @ Aj " AH" kK Aj!  j"K   AH @ Aq"  N AjA k"A AI"  E@@ -A qE@ AjA  Ak"AK  -A q Aj   @ E A!@ (" E  Aj " j" K  -A qE@ Aj  Aj!  K @ AG  N AjA k"A AI" E@@ -A qE@ AjA  Ak"AK  -A q Aj     H! A AH  +8!* A6l *BS@ *!*A!A!A  Aq@A!A!A  AA Aq"! E ! *DcE@ Aj!@ Aq  N AjA k"A AI" E@@ -A qE@ AjA  Ak"AK  -A q Aj   ("A q     ( A qE@AA A q"AA  * *bA  @ AqAG  N AjA k"A AI" E@@ -A qE@ AjA  Ak"AK  -A q Aj     J!  @ * Aj"* *"*Db@  (l"Ak6l A r"AG   A r"AF  (l!A AH   Ak"6l *DA!*A AH ! AA AH"At" Ajj"!@  *DAc *Dfq@ *  A "6 Aj! * DeA"*Db @ AL@ ! !  ! @ A AH!@ Ak" I !)B!(@  (B 5 )|"( (B"(B~}> Ak" O ("E Ak" 6 @ "I@ Ak"(E   (l k"6l ! AJ AH@ AjA nAj! @A k"A A H! @  M@ (!  A v!A tAs!A! !@   (" vj6  q l! Aj" I (! E  6 Aj!  (l j"6l  EAtj" AF" Atj   kAu J! AH  A! @  M  kAuA l! ("A I A !@ Aj!  A l"O A AFk AF" AGqk"  kAuA lA kH@ Aj"A m" At" AA At"jjAk!A !@  A lk" AJ A k"Aq! AkAO@ Axq! @ A/l! Ak"  E @ A l! Ak" @ (" n" lk"E Aj"' Fq @ AqE@D@C!* AG  O  Ak-AqE  D@C!* D?D?D?  'FD?  Av"F  I!+@  -A-G +!+ *!*  k"6 * + *a   j"6 AO@ !  jj!@ AjA6  I@ Ak" A6  (Aj"6 Ak! AK Aj!  kAuA l! ("A I A !@ Aj!  A l"O Aj"   K!  j k!@@ ! " M" Ak! Ak"(E  @ E@ Aq!  AsA A " J A{Jq" j! AA~  j! Aq" Aw!@ Ak(" E A! A p A !@ Ak! A l"pE AuA lA k! A_qAF@A!  j"A AJ"  J!  A!  j j"A AJ"  J! AA r"J  AGjAj!@ A_qAG"E@ AsJ A AJ!  @ E@ "!  Au"s k! "!@ Ak"  A n" A lkA0r: Ak! A K! !   kAL@  & kj"A0  %j Ak" : AkA-A+ AH:  k" AsJ   j" AsJ   j!@ Aq" L AjA k"A AI" E@@ -A qE@ AjA  Ak"AK  -A q Aj   -A qE@    @ AG L AjA0 k"A AI" E@@ -A qE@ AjA  Ak"AK  -A q Aj      K"! @@@@ ("@A!@ Aj j  A n"A lkA0r: Ak! A K! ! Aj" Ajj! G@ AjAH   AG   A ! G  A0:X !  Aj"  j"Ak"  I"A0  k -A qE@   k  Aj" M @ E -A q AA  @ O@ !  AL@ !  @@@ ("E@ "!  " !@ Ak"  A n"A lkA0r: Ak! A K! !   AjM   Aj"j k"A0 k -A qE@  A A H  A k! Aj" O  A J! !  A jA   AA6  A!A! ! ! !  k" H" AsJ  j" H" J @ Aq" N AjA  k"A AI" E@@ -A qE@ AjA  Ak"AK  -A q Aj   -A qE@    @ AG N AjA0  k"A AI" E@@ -A qE@ AjA  Ak"AK  -A q Aj   @ N AjA0 k"A AI"  E@@ -A qE@ AjA  Ak"AK  -A q Aj   -A qE@   AG  N  AjA  k"A AI" E@@ -A qE@ AjA  Ak"AK  -A q  Aj    @ AH  Aj I! ! @@ ("E A!@  jAj  A n"A lkA0r: Ak! A K! !  E  jAj  A0:X  !@ G@  AjM  Aj"A0  k !  -A qE@ A  Aj! E ALq -A q AA   k! -A qE@    J  k! Aj" O  AN AjA -A q   k  AG  L  AjA k"A AI" E@@ -A qE@ AjA  Ak"AK  -A q  Aj     AtAuA qj! @ A K @A k"Aq"E@D0@!+  A k!D0@!+@ Aj! +D0@!+ Ak" A k! AkAO@@ +D0@D0@D0@D0@D0@D0@D0@D0@!+ Ak"  -A-F@ + * +!*  * + +!* Ar! A q! @ (l" E Au"s k!A!@  jAj  A n"A lkA0r: Ak! A K! !  E  jAj  A0:O $ "Ak" Aj: AkA-A+ AH: Aq! Aj!@ " *DAc@ *  Ax "AЁj- r: * D0@!*@ Aj" AjkAG @  AJ *Da  A.: Aj! *Db A  k" j"k H  Aj  Ajk"  #j H  " j!@ Aq" L AjA k"A AI"  E@@ -A qE@ AjA  Ak"AK  -A q Aj   -A qE@   @ AG L AjA0 k"A AI"  E@@ -A qE@ AjA  Ak"AK  -A q Aj   -A qE@ Aj   @ k"AL AjA0 A AI" E@@ -A qE@ AjA  Ak"AK  -A q Aj   -A qE@   AG L AjA k"A AI" E@@ -A qE@ AjA  Ak"AK  -A q Aj    H"AN  AA=6 A! Aj$  C~#Ak"$ Aj! Aq"Av! @@@@@@@@@@@@@@@@@@@@@ ("A'L@A~! AjQ    @ A(k AF AF (8!  Aj("6   k6 A A!  @@@@ A j)"B A j  AAH@A!  A(j(! A (@!  6` Aj AjA A  AAN A!  A (@!  >` Aj AjA A! / A!  A! A j)A  / A!  A! (8 j68 ((E@ AAA!  A!  A! A j")A (" ) A(j) (E"BpBQ@ (@"@ (hAGAt! (" () ( Aj( N  A! (    A3 / A! @ AqE A! AAAF@A! AA Aj( Aj(AAE   (A(F A(6@ A A@kA!  A! / #Ak"$A!@ A A! (A,G @@ / (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A A (@A6 (A,F   A! Aj$   A) A! A!A! AA Aj( Aj(AAE A!A! AA&E A! / AA! A! / A (@! A6` Aj Aj"A (@!A! A;` Aj A  A! / A A!  A! /  A A!  A(j(@  (( Aj ( 6P A AjA!  @@@ Aq" @  (86` AjAAF@A!A! AA Aj( Aj(AAE  (AG  ( "AG  ($  (86` AjAA F Aj(! Aj(!A! / ("AGF@A! AA  AAE  A! E @ A(F AAAF  (  AG  ((   (86` AjAAG  A! AA  AAE  ( ! @ AF@ (@(\  AAA!  AH (((8 Atj(" (Aj6 A! /  A (@!  6` Aj Aj"A  (@"(;` Aj AA!  @ AjAA=F@ AAA (\AqAAH   (AF@ A6 /  A @@ ("AF @@ AF@ / A (@"Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A (@"Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A (@AjA (@"Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A (@"Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A  (! (! AjAAA"AH @@ AF@ A ("  (@"(;` Aj AjA  (A(F@ A~q"AF@ Aj!A  A! AkA AkAI !   AA @ ("E@ A  A  (@Aj AkArA AFAq  A:  A @ ("AG@    A A  @ AAA!  AA!   A  AH (("(8 Atj(" ("Ak6 AJ   A6 (A,G  /E  ("AH  (("(8 Atj(" ("Ak6 AJ   A! A   / A!A!@@ ("AF @ ! AF  A,F  A @ ("A,G@ AF   / ("AF Aj"AKrE  Aj! A& (@!  ;` Aj AjA (!@@@ AK@ !  @@@ A,G@ AG@ AG@ A  (@"Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A (@!  Axr6` Aj AjA Aj!A! ("A,G   !  !  A! Aj! / (! A! AG AG  E  A A (@!  6` Aj Aj"A A (@! A06` Aj A  A (@!  6` Aj AjA@@@@ ("AG@A! A,G A!  / A! A E  AF  A AA! (@"Aj! ( (G@ A  (6`  AjA  (6  Aj(6   (A,G /E  @ A A (@! A06` Aj AjA  A A  A!  A!A! AAY   A! /  (A.F@ / @@ (AG A j(AG ($E  AA  (DE@ AA  /  A  (@AjAA!  A(  E@ AA  A  A)  A5A!A!  A! / @@@@ ("A(k A! (@(T  AA  AF  AA  (@(XE@ AA  A (@! A6` Aj Aj" "A (@!A! A;` Aj A A (@! A6` Aj A (@! A;` Aj A A4  A! /  (A.F@ / @@ (AG A j(AG ($E  AA  (@(PE@ AA  /  A (@! A6` Aj Aj"A (@!A! A;` Aj A  A A! (A(F@A!  A A! (@!A! A;` Aj AjA A6 Aj! A@k! @ (!@@@@@@@ ("AG"E@ /@A!  ("A(F@A!  AG   @ AG  A! (AH@A!A  AAA! A(G A! E  /@A!  A! @A! !  A !A! A!@ ("AH A! A!@@@@@ ( j"-"Ak  @ Ak A!A!  A!A!  E@A1!  Aj(A:Fq  Aj/! !@ ( Atj("AN@ (t! @ Atj"(AF@A! A!A!  ("AN  ( !A! ("  A!A!  : ! ! E Aj  @ AF@ A AjYE A!  @ AG" E@ ("Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A (! A6` Aj Aj"A (! A;` Aj A ("Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A4 ("Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A (! A6` Aj Aj"A (! A;` Aj A  AG ("Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A A!@@@ ("A)F  AF@ AAA!  AG@A! A ("A,G@ A)F  A,6 A A j  Aj! /E    6X ("Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A& (!  ;` Aj AjA ("Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A (!  6` Aj AjA@@@@ ("AG@ A)F  A E A!  A! /  A  ("Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A  ("Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A ("Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A ("A,G@ A)F  A,6 A AjA!  A! /E  /@A!  A@@@@ A1k Ak A A' (@!  AF;` Aj AjAA! A2 (@!  E@ A' (@! A;` Aj Aj"A A A (@! A6` Aj A (@!A! A;` Aj A   AF@ A A' (@! A;` Aj AjAA!  A A A' (@!A! A;` Aj AjA  Aj!  6X /E A!  @@@@ A1k Ak ("Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A$ (!  (X;` Aj AjAA!  ("Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A1 (!  (X;` Aj AjA (!  @@@ Ak A! (@!  (X;` Aj Aj"A A A (@! A6` Aj A (@!A! A;` Aj A   A! (@!  (X;` Aj AjAA!  A" (@!  (X;` Aj AjAA!  AF  A.G  /@A!  (! @ AF@@ ("AH ( j-A4G AʼnAA!  E@ AjA ("Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A ( "AN@ (((8 Atj(" (Aj6 (!  6` Aj Aj"A  ("(;` Aj A  @ AF A%jAQK AAA!  @ ("AH ( j-A4G ( ( A"A!@ B AuI (! " ("Ak6 AJ (  @A!  ("Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A  E@ AjA ("Aj! ( (G@ A  (6`  AjA  (6  Aj(6 A ( "AN@ (((8 Atj(" (Aj6 (!  6` Aj AjA A! /E   A! ("AH     (;` Aj AjA A6DA!  A! ("AN@ ( j-!  E@ AjA A! /  A  (AG@ A60 A A0j  /  ("Aj! (! (! A4F@  G@ A  (6`  AjA  (6  Aj(6 A   G@ A  (6`  AjA  (6  Aj(6 A A! Aj$  B#Ak"$ (!@@@@@@@@@@@@@@@ ("AG A(j(   (86@ A@kAA:G@ (!  A j(" AN@ ((8 Atj(" (Aj6 (@Aj!@@ ("E  ( G AA  / (A:G@ A:60 A A0j  / ("AjAI @ (@"( ("L@ Aj!A! ( AjA Aj   (!  Aj6 ( Alj"A6 B7 Bp7 A6T B7L  6H  6D  (@"(6@  A@k6  (6X -n! A6\ AtAuAA Aqq  (@" ((6 @@@@@@@@@@@@@@@@@@@ Aj   /  (AG@ @ A (AG  /E   (@( @ AA  / A!@ ("A;F AF (0 A! A  < E   /  (0@ AA  A  A/ E   /      AA! (@-nAqE" @ (AG@ !  AA! /        @ (@"( ("L@ Aj!A! ( AjA Aj   (!  Aj6 ( Alj"A6 B7 Bp7 @ (@"( ("L@ Aj!A! ( AjA Aj   (!  Aj6 ( Alj"A6 B7 Bp7 Bp7P  6L  6H  6D A6\  (@"(6@  A@k6  (6X /      A  A  A   (@" ((6  @ (@"( ("L@ Aj!A! ( AjA Aj   (!  Aj6 ( Alj"A6 B7 Bp7 @ (@"( ("L@ Aj!A! ( AjA Aj   (!  Aj6 ( Alj"A6 B7 Bp7 @ (@"( ("L@ Aj!A! ( AjA Aj   (!  Aj6 ( Alj"A6 B7 Bp7 Bp7P  6L  6H  6D A6\  (@"(6@  A@k6  (6X /    A   A    (A;F@ /  A   (@" ((6  /  A! A6<@ ("AZG@ A(G  Aj "AtAȈj("E@A!A!  A! AA Avk AFt!A!@@ (Axq k" O ! " A! !   Aj("   AvAqjAj("F  ! At!   rE@A!A t"A kr q"E  A kqhAtAȈj(! E  @ (Axq k" I!  !   ! ("  Aj( " E A( kO (!  ( "G@ ("A(I 6  6  Aj"("E@ ("E  Aj! @ ! "Aj"(" Aj! (" A6  A("M@A(!@  k"AO@  j" Ar6  j 6  Ar6   Ar6  j" (Ar6A!A! A 6A 6 Aj!  A("I@  j"  k"Ar6A 6A 6  Ar6 Aj!  A!  Aj" A(@A(  AB7AB7A A jApqAتժs6AA6AԉA6A "j"A k"q"O@AA06  @AЉ("E Aȉ(" j" K Mq A!AA06 Aԉ-Aq @@ @A؉!@  ("O@ (j K  ("  A"AF  !A("Ak" q@  k jA kqj!  M  AK AЉ("@Aȉ(" j" M   K  " G    k q"AK  " ( (jF  ! @ AF Aj M A(" kjA kq"AK@ !  AG@ j! !  A k  "AG   A!  A!  AG  AԉAԉ(Ar6 AK  !A! AF  AF  O   k" A8jM  AȉAȉ( j"6Ả( I@Ả 6 @@@A("@A؉!@ (" ("jF  ("  A("A OE@A 6 A!A܉ 6A؉ 6AA6AA(6AA6@ AԆj AȆj"6  Aj"6 Ăj 6 A܆j AІj"6  6 Aj A؆j"6  6 Aj 6 A j"AG Ax kAqA AjAq"j" A8k" k"Ar6AA(6A 6A 6 jA86  - Aq  K M Ax kAqA AjAq"j"A( j" k"Ar6   j6AA(6A 6A 6  jA86  A( K@A 6 j!A؉!@@@@@@@  (G@ ("   - AqE  A؉!@  ("O@  (j" K  (!  6  ( j6 Ax kAqA AjAqj" Ar6 Ax kAqA AjAqj"  j"k!  F@A 6AA( j"6  Ar6  A( F@A 6AA( j"6  Ar6 j 6  ("AqAF@ Axq!@ AM@ (" Av"AtAjF  ( "F@AA(A~ wq6   6  6  (!@  ( "G@ ("6  6  @ Aj"(" Aj"(" A!  @ ! "Aj"(" Aj! (" A6 E @ ("AtAȈj"( F@  6 AA(A~ wq6  AA ( Fj 6 E  6 ("@ 6  6 ("E Aj 6  6  j"(!  j!  A~q6  j 6  Ar6 AM@ AxqAj!A("A Avt"qE@A  r6  ( " 6 6  6  6  A! AM@ A& Avg"kvAq AtkA>j!  6 B7 AtAȈj!A("A t"qE@  6A r6  6  6  6  AA Avk AFt! (!@ "(Axq F  Av! At!  AqjAj"("  6  6  6  6  Ax kAqA AjAq"j" A8k" k"Ar6 jA86  A7 kAqA A7kAqjA?k"  AjI"A#6AA(6A 6A 6 AjA)7 A؉)7A Aj6A܉ 6A؉ 6AA6 A$j!@ A6 Aj" I  F   (A~q6   k"6  Ar6 AM@ AxqAj!A("A Avt"qE@A  r6  ( " 6 6  6  6  A! AM@ A& Avg"kvAq AtkA>j!  6 B7 AtAȈj!A("A t"qE@  6A r6  6  6  6  AA Avk AFt! (!@ "(Axq F  Av! At! AqjAj"("  6  6  6  6  (" 6  6 A6  6  6 Aj!  (" 6 6 A6  6  6 A(" M A(" j" k"Ar6A 6A 6  Ar6 Aj!  A!AA06  @ E @ ("AtAȈj"( F@  6 A A~ wq" 6  AA ( Fj 6 E  6 ("@ 6  6 Aj("E Aj 6  6 @ AM@   j"Ar6 j" (Ar6   j" Ar6  Ar6  j 6 AM@ AxqAj!A("A Avt"qE@A  r6  ( " 6 6  6  6  A! AM@ A& Avg"kvAq AtkA>j!  6 B7 AtAȈj! A t"qE@  6A r6  6  6  6  AA Avk AFt! (!@@ "(Axq F  Av! At! AqjAj"("  6  6  6  6  (" 6 6 A6  6  6 Aj!  @ E @ ("AtAȈj"( F@  6  A A~ wq6  AA ( Fj 6 E   6 ("@  6  6 Aj("E Aj 6  6 @ AM@  j"Ar6 j" (Ar6  j" Ar6 Ar6  j 6 @ AxqAj!A(!A Avt" qE@A  r6   ( " 6  6  6  6 A 6A 6 Aj! Aj$  .~@~ ("AjA ("E@B ("-   A6 (! Aj"B7 B7  6 B~!#Ak"$ !#A0k" $ A jA6@@ " AH"E@ -!  -"A j  AkAIAG -"A j  AkAIAG -"A j  AkAIAG ( @ ("( (A ( ! A6  6 B7  @@@ AqA+k A! -! Aj! @@@@@@ AqA0F@@@@@ -"Ak  AG  AoqE@A!  AF  E!  E!  AG   !   E  Aq"A j  AkAIAG  -"A j  AkAIAG  -"A j  AkAIAG  ( @ ("( (A ( ! A6  6  6 A6  @ AG@  AFq   E   @ -"A0k"A I AkAM@ A7k!  AkA$ AkAI! Aj! AH  ( @ ("( (A ( ! A6  6 B7  ! E  !  A ! ! A   Ak"q@ B7$ B7 (6A! Aj  AA gk AI! A!  ! Ak!@ Aj"-A0F A ! E@ Aj-! @ ( AF ("( (A ( "E A6  6 !@@@@@@@@@ -" A.G @  K @ -"A0k" A I AkAM@ A7k!  AkA$ AkAI! A.!  J !  @ !  A! -! ! Aj ! Aq" A0k" A I  AkAK A7k!  AkA$ AkAI!  K@ Aj! @  k"AL@ AH@ ("( ( ( " Aj" AlAv" H" At ( "E   6  ( "k"Atj  At  6  j! ( Atj A kv r6 Au A j"tq!  t r!   lj! Ak"  AH@ ("( ( ( "Aj" AlAv"  H"At ( "E   6   ( " k" Atj  At  6 j! ( Atj 6A! !    ! @@  F@ (!  @ E @ Aq" E@ !  !@ Ak!  l! Ak" AI @  l l l l l l l l! Ak" AH@ ("( ( ( "Aj" AlAv"  H"At ( "E   6   ( " k"Atj  At  6  j! (" Atj 6 Ak! A AtAj  G @ ("E ("E ( A (  ( @ ("( (A ( ! A6  6 B7A!   ("E ("E ( A (  ( @ ("( (A ( ! A6  6 B7A !  -!@@@@@@@@@@@@@ A F@ " A rAF A!  A! AF E  " A rAG  A!  K  A!  Aj! Aq!A!@@@ -A+k Aj!  Aj!A! AF! @@ -"A0k"A O@ AkAI  AkAfI  AK  Ak! A̙N@ ( ! E@ @ ("( (A ( ! A6  6  6 Ax6A!  @ ("( (A ( ! A6  6  6 A6A!  Aj!  A lj!  A k !    A! ! E   A!    6  j6A! ( "At! Aj!Aw!@@@@@@@@@@@@@@@@@@@@ AF  A j! Ak! Ak" ("j"(E  ( k"6 ("E A! gAs  Ax6A E  ("( (A ( ! A6  6A  AA A I!  A! AA AI! A! AA AI! A! AA AI!  A!  AA AI!  A!  AA A=I!  A!  AA AI!  A!  A! A/K   AJ AtAj(!A k"AtAj(! At"Aj-! Aj-! Aj5!A! AG@ A~q! !@   ("   ~B "k v j v" lk lj6 Aj"  ("   ~B "k v j v" lk lj6 Aj!  Aj" G  Aq@  Atj" ("   ~B "k v j v lk l j6 (  k6  (A! @ A l"Ak"AH A! ( A n"Atj" ("   A lkAj"At"Aj5 ~B "k Aj-v j Aj-v AtAj(lG Aj! Ak!@ Ak"AL@A!  (! Ak! E (!AAA Ak"AN@ A n  AkA m "AH A  M   Atj(" Awl jAt"Aj5 ~B "k Aj-v j Aj-vA p r! @ ("AN@ AL  (! ( @ ("( A ( ! A6  6  6 A6 Ar  (! ( @ ("( A ( ! A6  6  6 Ax6A  Ak"!@ AHA! AxK  Ak  A n! A o"AuA q j"E  Atj" AtAj( (" At"Aj5 ~B "k Aj-v j Aj-vl6 Ak! At!@ Aj!  j! Aj! (E AG@   jAk At kAj  k! @ ( F A  ("( ( At ( "  6  6  AAA.A !  ( " Aj"G  ( @ ("( (A ( ! A6  6  6 Ax6A!  A !  6   l lj6 AA!  B7 B7 (6 ( Atj! Aj-"A AK" Ak" Aq! ! AkAO@ Axq! @  l l l l l l l l! Ak"  (! @@  l! Ak"  A! A! (AAA"  k" Akgk AI"Al ( "@ AG@ Aj! A~q! @ Ak (6 AkB7 AkB7 A jB7 AjB7  (6 A(j! Aj" G  Aq@  Alj"B7 B7  (6  A  ! !@@ ("E Aj(" E ( A (  Aj! Ak" ( A (  @ ( @ ("( (A ( ! A6  6 B7A  6  lk j!A!#A k"$@ ( "E@  F  ( E@ (!A  ("( (A ( ! A6  6 ( At !  )7  (   E@A  F @@  ( F@ (!  ("( ( At ( "E   6  6 ( !  )7  ( AtA  ( @ ("( (A ( ! A6  6 B7A ! ( " AA AjA r!  B7 B7  (6 Aj   Au"s kAA! AH@  Aj ( AtA r   AjAAl r ! ("E ("E ( A (  A j$  ! ("E ("E ( A (  ("E  ("E  ( A (   Aj!  Aj! Ak! A0j$ ! Aj$ A q@  ("Ak6 AL@ (  B ("-    A vAq  A: AA A:B .~#Ak" $ (@! (! @@ AK @  A! (AG A j(AG ($ (86` AjAA F A! / A! A! /  (" A*F@ /  (! Ar! @@@@@ A'j AG  A j(! @ A(j(@ !  @ AG" AqE A-! A-F    AqE A.! A.G  (( Aj 6P A Aj  AG  -nAqE   AG  (D  A j("AN@ At" ((8j(" (Aj6 /E  ("(8 j(" ("Ak6 AJ     /   AF AF AA  @ ( " E AK ($AG ("AL (Aj! @  Aj(G@ Aj! Ak"   ( (G AAA! AH  ("(8 Atj(" ("Ak6 AJ     A!@ AG @  -nAq (" AN@ (t!@@  Atj" ( G - AqE  (" AN  @ E ($ ("AL (A j! @  (G@ Aj! Ak"   Ak-Aq  @@ (|" AJ@ Aj! (t AtjAk! @  (F@ Aj(E  Ak! Ak"AK  (" AtAk!@ AL  Ak! ( j! Ak! ( G Ar  Ak AzqAF  AF@ (H  A! @ E ($AK (" (G ("AL  (Aj! @@ Aj( F  Aj! Ak"  ( G  AŠA A!  A!  AA ["AN AH  ("(8 Atj(" ("Ak6 AJ     A AK ( "E@A! AH  ("(8 Atj(" ("Ak6 AJ     @  6  6p 6@  AF"6`  AG" 6L  6H  E AIq64   A|qAFr" 60@@@@@@ @ A6\  6X  6T A6P  Aq Atr;l@ AkAK (@"Aj! ( (G@ A (6` AjA  (6  Aj(6 A+ AG  Aj! B78 A  6 A k6  AA  "E A6  " B " g"t6  t Av Asvr6  6 A k6  B7  AjA Al@ ("E ("E ( A (  A j$@ ( "AF ("AF  (" (G@ AxF AxFq A Atk  AAA  H  G  ($"Ak! ( "Ak! (( AtjAk! AtAk!    JAk! @A AH A!A!  I@ (!  I@ ( j(! Ak! Ak! Ak! Ak! Ak!  F AA  I "k   AN @ ("E (("E ( A (  @ ("E ("E ( A (  A  !  A A (Aj Aj A  Ak AtAuqj"kA A@ ("AF ( "AF  (" (G@ AxF AxFq A Atk  AAA  H  G  ($"Ak! ( "Ak! AtAk! (( AtjAk!    HAk! @A AH A! A!  I@ ( j(!   K@ (!  Ak! Ak! Ak! Ak! Ak! F AA I "k   AN @ ("E (("E ( A (  Aq!@ ("E ("E ( A (  AF@A k! A6@@@ ( AF@ (!  ("( (A ( "E  A6 6 Ax6  ( @ ("( (A ( ! A6 6 A6 6A!  ( @ ("( (A ( ! A6 6 B7A!  @ ("E ("E ( A (  A! ("E (("E ( A (  A0j$ !@ ( "E (0"E ( A (  @ ("E ("E ( A (   Aq!A! @@@ AH@ AF A k! A! #A k"$@ A8j" ( "E At! (! !@ (" @ ( hj k!  Aj! A k! Ak" (! @ A N@A!A E   A! A tAsq  u ! At ("k j"Aq! (!A!  Au"K@  Atj(! @  Aj"K  Atj(A At Ast  vr! A! AqAG B7 B7  6 Ax AjF @ E@A!A  (A At ( "E   6  6 (! (! ( At !  6  (6    (  (@ ("( (A ( ! A6  6 A6 A k6 AJ@A!@@ Aj F E @@ ( " (F@ (!  A  ("( ( At ( "   6  6 ( !  )7  ( At  (@ ("( (A ( ! A6  6 B7 A! A Aj  Aj"G  ( j6A! A j$ E  A8j   ) 7,  (6$  ( k6( A j! (@!@ (D" E At k! (H!@ ("@ h k!  Aj! A k! Ak"  k"AF@ A8j"  AkA A Aj A B (  !  AF@ Aj A (  ("AH @ (8"E (H"E ( A (  AA !  (A N@ AF  (   AkA A Aj A ( K  A8j  A !  A8j  A !  A˖AA%A A8j AA! @ (8"E (H"E ( A (  6  @@@@ ("Ak ( !  ( ! ( AsF@A!  Ax!  A!A!    A! @ ( " E At k! (!@ ("@ h F!  Aj! A k! Ak" ( q!Ax! ( ! ( AxFF@ @ ("( (A ( ! A6 6 6 A6A! (E   E  Ax!  A!A! E  ("( (A ( ! A6 6 6 6 A! Aj$  '#Ak" $ A6A! @ AkAI AF A! @@@@@@@@@ ( Atj("AN@@  (t" Atj" (" F@ A}qAG@ !  " Atj- AqE  A0 AN@ ((8 Atj(" (Aj6 6  A jA A  AGrE@ A ;  A jA     AjA ("AN  A! @ A~F @ (|" AJ@ Aj! (t AtjAk! @  (F@ Aj(E  Ak! Ak" AK  (" AtAk! A! @ AL  Ak! ( j! Ak! ( G Ar!  Ak! E ANrE@  !  @@ AG AN (HE  (" AN  (|" AN@ AAA!  (xN@A! AjA Aj Aj  (|!   Aj6| (t Atj" B7 A~6 A6 (|" Ak! AL   6  AN  @ (,@ (p F  A~G    " AH  @@@@ Ak @ Aq" (t Atj- AqE A0 AN@ ((8 Atj(" (Aj6 6  A jA A @ Ak @  (t Atj( AqAG A  A ;  A jA A@ AN@ At" ((8j(" (Aj6 6  A jA A ((8 j(" (Aj6  6  A jA A 6  A jA (AG  ( j"Aj-A=G  -"AK A tAqE   A Aq@ AAA AF AF ;  A jA  @@@ Ak AA (t Atj( Aq"Av! E  AG AA AF!  AA (t Atj- Aq!   ;  A jA  A   A~F  (AHr A (;  A jA     AjA (AHrE@ A (;  A jA     AjA @@@@@@@ (" E@ !  AG! ! @@@ "( ( Atj(" AN@@  (t" Atj" ("F@ A}qAG@ !   !   " Atj- AqE  A0 AN@ ((8 Atj(" (Aj6 6  A jA A  @ AGr ( Ar6  AA AAAA" AH A ;  A jA     AjA (" AN  AN @@ A~F" @ (|" AJ@ (t AtjAk! @  (F@ Aj(E  Ak! Ak" AjAK  (" AtAk! @ AL@A!  Ak! ( j! Ak! ( G Ar!   !  AJ  Ak! @  " AN  @  (HE (" AN  (|" AN@ AAA!  (xN@A! AjA Aj Aj  (|!   Aj6| (t Atj" B7 A~6 A6 (|" Ak! AL   6   !  (,@ (p F  @  (" AHr (t Atj" ( Ar6  AA ( (AAA! A ;  A jA     AjA (" AHrE@ (t Atj" ( Ar6  AA ( (AAA! A ;  A jA     AjA (  ! (" E   Ak!   !   " AN  ( E  (" AJ@A!A! @  ( j"Aj("F@  F   A -"AvAq  AvAq AvAq Av!  @@ A~qAG@ AGrE    !  G@  A -AvAq AAA!  A ;  A jA     Aj AF (! Aj! Aj" H  AH   Aq@ ( Ak" Atj" ( Ar6  AA AAA  At" (tj" ( Ar6  AA  (t j( "Aq AvAq AvAq " AH  @@@@@@@ Ak ( Atj-"Aq@ A0 AN@ ((8 Atj(" (Aj6 6  A jA A  A! @ Ak AqAF@ A  A ;  A jA A@ AN@ At" ((8j(" (Aj6 6  A jA A ((8 j(" (Aj6  6  A jA A 6  A jA  (AG  ( j"Aj-A=G  -"AK A tAqE  AF! Ak AA ( Atj-Aq"Av! E  E AA AF!  A AA ( Atj-Aq!   ;  A jA A   @@@@@@@@ Ak (AG  ( j"Aj-A=G  -"AK A tAqE   A A8 AN@ ((8 Atj(" (Aj6 6  A jA  AsAq AN@ ((8 Atj(" (Aj6 6  A jA A: AN@ ((8 Atj(" (Aj6 6  A jA A AN@ ((8 Atj(" (Aj6 6  A jA AF  A AN@ ((8 Atj(" (Aj6 6  A jA  #Ak"$ -nAq" @ A6 AN@ ((8 Atj(" (Aj6  6  AjA  j-AK Aj : Aj! Aj-"AF A0kA I AqAkAI  j"Aj! Aj! Aj j  Aj! Aj! Aj A: Aj! A=G @ -"AF A0kA I AqAkAM Aj! A! @ Aj j" :@  j"Aj-"AF A0kA I AqAkAO AjA>K  Aj : Aj! Aj-"AF A0kA I AqAkAI  jAj! Aj j! (( ! 6 A j At"AN@ !  @ A~G ( -"E A A  E  AAA!  A! (I  AAA! ( ! AN A A j" AI  ((  AAA! Aj6  AAA!  Aj! Aj! A: AG@ AAA!  A! @@ AjAAE AjAAE A! AjAAE (PAG   (@6 A6 B7 A6#A k"$A! Aj"!@@ A,"E@    k " F@   E   jAj!  Aj! - A~   A6 B7  ( "6  ("A "6 Aj  ! Aj!A!@@@ -"! Aj Aq"AI  -! AM@ At rAk! Aj  - Atr AtrA߿k! Aj ! AN@ !  jAj  Aj!  jAj! - F@@ ("Aj" ("L@ (!  ( (  AlAm"  H"At ( "E@A!  6 6 (! Aj6  Atj 6 ("Aj6  Atj 6  ! AлI A E A!Aл! AF! A7F!A!A!@ ! ! ! ," Aq! Aj AN  -! AM@ At rAk! Aj  - Atr AtrAk! Aj "Aj!  jAj! -!@@@@@   ! "E   E   Aj"N@ !     AlAm"  H"At  "   @ - G@ Aj! Ak"    Aj"N@ !     AlAm"  H"At  "E   Atj" 6 Aj 6  ! ! j"AI @ A7G AGqE@ Aj" L@ !   "  AlAm"  HAt  "   "!  ( (  A   Aj  At"A! A6  jAjA6 AN@ Aj!A!A!@@  At"j("  Atj(G@  j! @@ ! "Aj" N Aj! Aj! Ak( (F   Atj" 6 Aj Ak(6 Aj!  Aj! ! Aj!  H   ( ( " AE  @ E ( (A (   A   ( (A (   A  A ! A j$ E  ( (A (  A~G  AAA!  @ AjAA@ AjAA   (@6 A6 B7 A6  Aj"E  ( (A (  A~G  AAA!  -  (@6 A6 B7 A6  Aj"AF@ ( (A (   AN A!#Ak"$A! Aj"!@@ A,"E@    k " F@  E   jAj!  Aj! - A~  @@@@@@@@@@@@@@@@@@@@ A"k     @ ("Aj" ("L@ (!  A ( (  AlAm"  H"At ( "E   6  6 (!  Aj6  AtjA6  ("Aj6  AtjA6A  @ ("Aj" ("L@ (!  A ( (  AlAm"  H"At ( "E   6  6 (!  Aj6  AtjA6  ("Aj6  AtjA6A  B7 B7    A jB7 B7 B7  Aj  A@kB7 B078 B70  A0j  AjB7 B7X B 7P  Aj  AjA6 AjB07 AjB7 B7x B7p  Aj AjB7 AjB 7 AjB07 AjB7 B7 B7  Aj AjA6 AjB7 B7 B?7  Aj AjB7 B7 B(7  Aj AjB7 AjB7 AjB7 AjB07 AjB7 AjB7 B7 B7  Aj AjA6 AjB7 AjB07 AjB7 AjB7 AjB7 AjB07 AjB7 B7 B7  Aj  A  A  A  AjB7 B7 B7  Aj  AjB7 B7 B7  Aj  AjB7 B7 B7  Aj  AjB7 B7 B7  Aj  A~ A!K   Aj ! Aj$ E  ( (A (  A~G  AAA!  AF@   Aj6 A!  ( 6  AAA!  ( (A ( A! Aj$ ' #A k"$@@@@@@ ("AG@A AYG  (@"-lAqE@ AAA!  (dE@ AAA!  A! /  A@k! ("A)k"AK A tAqE   A j( !A! A Ar  ("AF@@ (@"( ("L@ Aj!A! ( AjA Aj   (!  Aj6 ( Alj"A6 B7 Bp7 A{q!@ /  (@"Aj! ( (G@ A  (6  AjA  (6  Aj(6 A (@"Aj! ( (G@ A  (6  AjA  (6  Aj(6 A A  (@"Aj! ( (G@ A  (6  AjA  (6  Aj(6 A A   (AF  (! A?F@ /  AA! A  A:  AA!  Aq   (! @@ A=G Aj"A KqE@ /  Aj Aj Aj AjA A=G ?AH   @ ( (  @ A=F@ ("A"#DAc@ #  Ax "#Dp "DAc@  Ax 6 Aj Aj+ #"Dp>"#DAc@ #  Ax "#Dp "DAc@  Ax 6 + #! Aj! Ak!  Aj"G  k ! E Aj Atj Dp>"#DAc@ #  Ax "#Dp "DAc@  Ax 6 At jAk+ #!  "D?D "DAc@  Ax ! !@@@ AL"E@ At jAj" ("  u" tk"6  j!  u   At jAj(Au "AL   A! D?f A!  @ @A!  A!A! AG@ A~q! Aj!@ (!A!@  A!  A    k6A ! Aj"!(!A!@ E A!  A  !  k6A ! Aj! Aj"G  AqE Aj Atj"(!A!@  A!  A!    k6A! @  A!@@  A! At jAj" ( q6 Aj! AG D? !A! E D? ! Da@@  L  k"Aq!A! !  jAO@ A|q!  Atj!@ ( Aj( Aj( A j( rrrr! Ak! Ak! Ak"  @  Atj!@ ( r! Ak! Ak"  E At jAj! ! @ Ak! Ak! (! Ak! E  ! !@ Aj! (! Ak! E   jAtj!@ Aj  j" Atj Aj" jAtAj(9@ AL@D!  A!D! @ ! !@ Aj+ + + Aj+ ! Ak! Aj!  Aj"G  E  Atj+ Aj kAtj+ !  Atj 9 Aj!  H !  @ A k"DpAf@ Aj Atj Dp>"#DAc@ #  Ax "Dp "DAc@  Ax 6 Aj!   DAc@  Ax ! ! Aj Atj 6 @ AH D? ! Aq   Atj Aj Atj(9 Dp>! Ak ! @ Aj! At jAj! At jAk!@  Dp>"# (9 Aj Aj(9 Ak! Ak! #Dp>! Ak"  A! AH  Atj! !@    K"Aj"Aq! @ E@A!D!  A~q!D!A!A!@ Aj+  j" Aj+ Aj+ + ! Aj!  Aj"G Aj  kAtj | AtAj+   jAtj+  9 Ak! Ak!  G! Aj!  @ AH@D!  @ AjAq"E@D! !  Aj Atj!D! !@ Ak! +! Ak! Ak" AI Aj! At jAj!@ Aj+ Aj+ Aj+ +! A k! Ak" 9 + !A!@ AL Aq! AkAO@ A|q! Aj!A!@ Ak+ Ak+ Ak+ +! A j!  Aj"G Aj! E Aj Atj!@ +! Aj! Ak" 9 Aj$ Aq! +! "BS@  9  +9A k!   9  +9 A0j$  (~#Ak"$@ (8" E@ (AA ( " E@A!  AjAA 6 68 ! @ At"jAjB Aj(" "/"1> 1B!1 At!3 AjAv!0A!A!@ j" Aj 6 Aj "2B /> 0 2~"2 2BB 1~B /~ 3|}"2 2B Au q|"2B q 2j! Aj"AG Aj(!A!@  j" Aj 6 Aj "0B /> 0 0~"0 0BB 1~B /~ 3|}"0 0B Au q|"0B q 0j! Ak"AG Aj(!A!@  j"Aj 6 Aj "0B /> 0 0~"0 0BB 1~B /~ 3|}"0 0B Au q|"0B q 0j! Ak"AG Aj! Aj"AG Bժ7 AjBĈ7 AjBێӪ*7 AjB߄ݻ77 AjBǦ"7 A j! Aj!  j"At!A*! A! A! @@@A!AA jAk n"Akgk AI"AK Ak" jAL@A! Aj tAl!  Ak"  A! A! A9! A!@@AA jAk n"Akgk AI"AK  Ak"jAL@ Aj tAt" O A! ! ! !  Ak"  A! A!@@@AA jAk n"Akgk AI"AK  Ak"jAL@A! Aj tAl O   Ak"  ! ! "  6 A=A= t I A=J6B " ! @@@ AqE@ Aq  ( E  ("( (A ( ! A6  6  Aq  ! !  ! ! ! ! ("(A (" At"l" ( "E@A!     ( "A k" @ AqAG ( E ("( (A ( ! A6  6 Aq! ("(! (!@@@ A L@A! A   "E         ( E  ("( (A ( ! A6  6  A! A   "E  @ AL At!A k! A! AH! !A!@ E@    A kAj! !   l! !  !  Atj  E@  j!  j! Aj! Aj" AF   !  @ E@ ( @ ("( (A ( ! A6  6  ("( A (  ( A F  ("( ( At ( ! @A! E   6  6  E ("( A (  (! ! B!/#Ak"$ A0jA6 AjA6 B7 B7( B7 B7 A At! Ak" lA~m!A t" "Ak" Atj n"  H"!AJ@A tAsA Aq"!"A At"k! Av"A AK! Aj!# At!$ A~q!% Aq!& Ak! As j!A k! A j" Atj"'Aj!  At"j!(  A@k"j!   kAt")j!* Ar! AH!+ A I!, Aj N!-@ @@ AL A! @ A@k! !@   t jAtj("A Ak("  Ik6 Aj Aj t jAtj("A ("  Ik6 Aj! Aj! Aj" %G  &@ At" A@kj  t jAtj("A j(" Kk6 AH A! ! ! !A! @  "Aj" J@  j! $ Atj! A@k Atj!.A! ! !@  (" ( .(kj" Aj(l   #j5 ~B lk"A   Kk6 Aj! Aj! Aj!  Aj"G ! Aj! Aj! Ak!  G   (6 A!    (6 A!  + A!A! !@ Aq!  At"j5!1 A@k j(!@ E@A!  A~q! A! A j!@   1 5~|"/> Aj" 1 5~ /B |"/> /B "/! Aj! Aj"G /! @ A j Atj"  1 5~|"/> /B !/ A j Atj /> Aj! Ak! Aj" G !A Atj5!1A! (@! AG@ A~q! A j! !@  5  1 5~||"/> Aj" Aj5 1 5~ /B ||"/> /B "/! Aj! Aj!  Aj"G /! Aq@ At" A jj" j5  1 5~||"/> /B !/ At" A jj j( /j6  l! ,E@A Aq"k! A j! !@ (!  Au"K@  Atj" (  tr6 @ E Aj" O  Atj" (  vr6 Aj! A j! Ak"  Aq! '(" "q!  Au"K@  Atj" (  tr6 @ E Aj" O  Atj" ( A kvr6 @ @  J@ ! ! !@  ("At Ast vr6 Aj! Aj! ! Ak"  * (( v6  -   )  j! Aj" !G  Aj$A!  ("( A ( A! E  ("( A (  Aj$ "~#Ak"$ )!A(AG@ A-!AA:  :@@@@@@@@@@@@@@@ E@A(Aq@A(EE! A- A(E A)"B{"A)"Bټ|" B" Bޑܷ" B̓׬۷|"B |" BB"B    B "|"B |""B   B" B|"B |""B    B "|"B B|""B   B" B|"B |""B   B " |"B |""B   B" |"B |""B  B " |"B |"B B "B  |"B  |"B "BBB~! !A("Ak! A(! @   q"j)" "B B}B!@ P@  BBPE   Aj"j!  z! B} ! A Av j qk" Alj" )B Aj)BηưޅPE  AljAk(!A!@ BpT  " /G ( ! ! @  A(AqE A(E AA: AA: E @ ( A6 A|F  6tA! A AJ! @ AL@A!  @@@ A?K At"AH  A!   A- "E  Aq! A! AO@ A|q! ! !@  )7 Aj Aj" 6 Aj Aj)7 Aj 6 A j Aj)7 A(j 6 A0j Aj)7 A8j 6 A@k! A j! Aj"G  @  Atj!  Atj!@  )7 Aj Aj6 Aj! Aj! Ak"  !  6  6  6 Aj Aj (h! (l" AM@ AjB7 A6 A6 A6 Aj!  Aj ) Aj( (! ( @@@@ Ak Aą-AG@ A6  Aj6 Aj!#A k"$@@@@@Aą-"AO@ Ak   AąA: (! A6 E A-A"E  A: A: B7  6 A6 B7AąA: A j$  AA+A A AjB7 A6 A6 A6 AjA  A-A" E  A6A  A-A" E  Aȅ6A ! Aj ) Aj( -"A F@ (!  Aj Aj)7 Aj Aj)7 Aj Aj)7  -:  /;  )7  (6  : Aj Aj (! ("E@ !  (! Aj ) A(j( -"A F  Aj Aj)7 Aj Aj)7 Aj Aj)7  -:  /;  )7  ("6  : AG@ AjB7 A6 A6 A6 Aj! Aj  Aj Aj )0 A8j( -" A F  Aj Aj)7 Aj Aj)7 Aj Aj)7  -:  /;  )7  ("6  : AG@ AjB7 A6 A6 A6 Aj! Aj  Aj  j" I K Aj  j  (  -"AG (! Aj ( -"AF@ @ ] ( (@ ]  6 A: Aj Aj Aj; (E  )! Aj  Aj Aj(6  (6  : Aj! AjB7 A6 A6 A6 Aj!  (6AA+ AjAA A B7 A6 A6 A6 Aj Aj AjB7 A6 A6 A6  Aj"6AA+ AA  A A (!   A A  -:  /;  (6  : Aj! E ] ( (E ] A-A"E@A A; B 7  6 Aj Aj (d! (`!@@@@@@@@  B򅬡B٢ (( D" )! (! (! B򅬡B٢ ((C AG    6 AjB7 A6 A6 A 6  Aj6  Aj6 Aj Aj Aj (" (" ("  Aj(! (!   7  6|  6x A6 B7  Aj6 AjB7 A6 A6 A 6  Aj6  Aj6 AjA Aj  Aj Aj(6  )7 Aj Aj@ ("E@ Aj(! (!  (! AjAA  (  Aj(! (! E ] ~@@@@@ (xAk  6  Aj   6  A j   60  A0j   6@  A@k   6P  Aj ! A: @ ] (E  (|]  (" K  (! AjB7  6  6 A 6 A6 A6  Aj"6  Aj6 Aj" Aj   (  Aj(! (! E ]  6  ! A: @ ] (@ ] (" ((  AA7 AjAA Aj Aj)7  )7AA+ AjAA  A Aj Aj)7  )7AA+ AjAA A: @ ] E  ] (Aj6 Aj$  AA+A  : A6AA+ AjAA ~  Ak"Atj(! @@@ AF@@@ AM@   A6  AkAH   AtAk"j! j! AsB B "B!@     ("Au"k~  q j|B j" B ~ B |"B "jAj6  qj! Ak! Ak! Ak"  Aj!  AtAk"j! j! !@  5 B " ">   ~}! Ak! Ak! Ak"AK !  6  @@@  k"   JA2N@  F  (A Aj"  K" Aj"At ( ! (A At ( ! E  E   M@  G@ A kAt E  Aq! AO@ At Atkj!A A|qk! !@  (6 Aj Aj(6 Aj Aj(6 A j A j(6 Aj! Aj!  Ak" G A k! E   Atj!  j kAtj!@  (6 Aj! Aj! Ak"  @ E Aq! AO@  At Atkj!A A|qk! !@  (6 Aj Aj(6 Aj Aj(6 A j A j(6 Aj! Aj!  Ak" G A k! E Atj!   j kAtj!@  (6 Aj! Aj! Ak" !A!A!@@  (" " j"6  O Aj! Aj!  I"  M  A At" jA6  AO@ AsB B ! @@@ AH At jAk! At jAk! !@ (" (" F@ Ak! Ak! Ak"AJ    Atj O"6    AtjA6 AL  Atj! Aq! @ E@A!  A~q! ! !A!@  (" ("k" k6 Aj" (" Aj("k"  K  Kr"k6  I  Kr! Aj! Aj! Aj" G E At"j" (  j( jk6 Ak" AH  At Atk jAk! Aq!A A~qk! ! !@A   jAtj" ("M  @   Ak("Au"k ~  q j|B j" B ~  B |B jAj  Ak5 B  ! At!@ E ! E@A!A  A! ! !A!@  5  5 ~|}"> Aj" 5 Aj5 ~B B }B|}">A B "k! Aj! Aj!  Ak" G A k !  j! @  At"j" 5   j5 ~|}">A B "k! (" j6  O @ E@A! A  A!A!A! @ j"  j"(" (j" j"6 Aj" Aj(" (j" I Krj" 6  I  Kr! Aj!  Ak"G A k ! Ak!   At"j"  j(" (j" j"6  I  Kr AqE (Aj"6   j 6 Ak! Ak" AN  AAA Aݰ E    Atj AsAtj  @ E Aq! A! AO@ At Atj Atkj!A! A A|qk!A!@  j"  j"Aj(6 Aj Aj(6 Aj A j(6 A j Aj(6 Aj!  Ak" G A k! E At  jAtj Atk jAj!  Atj!@  (6 Aj! Aj! Ak" ( A (  ( A (  (A AtAj ( " E@A     @ AK Aj"Aq! @ E@A! A!  A~q!A! ! !A!@  (" (" k" k6 Aj" (" Aj("k" I  Kr"k6  I  Kr! Aj! Aj!  Aj" G E  At"j" (  j( jk6 ( A (  Aj! A~q! Aq!  At"j!  Ak"j!  j! @@ (" ! ! !@ Ak"AL  (! (! Ak! Ak! F K  @ AL@A!  A! @ E@A!  ! !A!@  (" (" k" k6 Aj" (" Aj("k" I  Kr"k6  I  Kr! Aj! Aj!  Aj" G @  At"j" ("  j("k" k6  K  Kr! (! k6 E A! !A!@   ("j" 6 Aj!  K!  O  Aj!  A @ ( A (  A ( A ( A ~#Ak"$ )!A(AG@ A-!AA:  :@@@@@@@@@@@@@@ E@A!A(Aq@A(EE! A- A(E A)"Bј$"A)"Bټ|" B" Bޑܷ" B̓׬۷|"B |" BB"B    B "|"B |""B   B" Bك航|"B |""B    B "|"B B|""B   B" B|"B |""B   B " |"B |""B   B" |"B |""B  B " |"B |"B B "B  |"B  |"B "BBB~! !A("Ak! A(! @   q"j)" "B B}B!@ P@  BBPE   Aj"j!  z! B} ! A Av j qk" Alj" )Bك航 Aj)BPE  AljAk(!A!@ BpT  "/G ( ! ! @  A(AqE A(E AA: AA: E @ ( A6 A|F  6tA! A AJ! @ AL@A!  @@@ A?K At"AH  A!   A- "E  Aq! A! AO@ A|q! ! !@  )7 Aj Aj" 6 Aj Aj)7 Aj 6 A j Aj)7 A(j 6 A0j Aj)7 A8j 6 A@k! A j! Aj"G  @  Atj!  Atj!@  )7 Aj Aj6 Aj! Aj! Ak"  !  6  6  6 Aj Aj (h!@@@ (l" AM@ AjB7 A6 A6 A6 Aj!  Aj ) Aj( (! ( @@ E@A-AG@ A6  Aj6 Aj A- Aj ) A(j( -"A F  Aj Aj)7 Aj Aj)7 Aj Aj)7  -:  /;  )7  ("6  : AF  AjB7 A6 A6 A6 Aj! Aj  AjB7 A6 A6 A6 Aj!  Aj Aj )0 A8j( -"A F Aj Aj)7 Aj Aj)7 Aj Aj)7  -:  /;  )7  ("6  : AG@ AjB7 A6 A6 A6 Aj! Aj  Aj Aj(( )E@ AjB7 A6 A6 A6 Aj!  A6x (( Aj )"E@ AjB7 A6 A6 A 6  Aj6  Aj6 Aj" Aj !   j" I   (x"K A-!AA:  :   j!@@A(AqE@ Aj    A(E! Aj   E  A(AqE A(E AA: AA: -"AF   -:  /;  (6  : Aj!  (! A-A" A  (6 A: Aj Aj Aj; (@ )! Aj   (6AA+ AjAA A; B 7  6 Aj Aj (d! (`!@@@  B򅬡B٢ (( D" )! (! (! B򅬡B٢ ((C AG    6 AjB7 A6 A6 A 6  Aj6  Aj6 Aj Aj Aj (" (" ("  Aj(! (!   7  6|  6x A6 B7  Aj6 AjB7 A6 A6 A 6  Aj6  Aj6 AjA Aj Aj Aj(6  )7 Aj Aj@ ("E@ Aj(! (!  (! AjAA  ( Aj(! (! E ] ~@@@@@ (xAk  6  Aj   6  A j   60  A0j   6@  A@k   6P  Aj ! A: @ ] (E (|] (" K (! AjB7  6  6 A 6 A6 A6  Aj"6  Aj6 Aj" Aj   ( Aj(! (! E ]  6  ! A: @ ] (@ ] (" (( A B7 A6 A6 A6 Aj Aj AjB7 A6 A6 A6  Aj"6AA+ AA   A  A B7 A6 A6 A6 Aj Aj AA7 AjAA Aj Aj)7  )7AA+ AjAA  A Aj Aj)7  )7AA+ AjAA A: @ ] E  ] (Aj6 Aj$  AA+A  : A6AA+ AjAA #Ak"$ (! (@! A6 Aj(!  -n"Ar:nA!@ / @@ (AF@ A(j(@  (( A j A j(6 A Aj  A j(" AN@ ((8 Atj(" (Aj6 /    AF AA  @  A " AH ((8 Atj(" (Aj6 !  ("ANF@ /  A A  (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 AA ! @  A[AH  (AG@ A6 A   / ANF"!  A Aj(! (@! A6 Aj A jA A AA/   (@Aj  A8jA6 B70 A6( B7 A6AA ! ANG! A0j! (!@@@@@@@@@ ("A;G@ AF A AXG  / (A;k / (@"Aj! ( (G@ A  (6l  AjA  (6  Aj(6 AA ! (! AjAAA! (! AH  AXF"! Aoq! Aq! A )BR  )" B|" Z  ("E  A͑A!  Aj6 B|" PE   Aj6 AkZ A! ( Aj"AI@ ( A!  ("E A! AA   A! ("E A! AA  :A! A6  Aj" Aj")7 6  >  )7 AqAG)!  )7 )7 A j$ E   Aj6 ("E A! AAE   A(j  (("@  (,@ )AG )" BV AG@ ("E A! AAE   ("E A! AAE   ("E A! AA   (! -,"E  E A! AA   A(j  (("@ Aj  (,@ (E )" BZ "AsAkAI AF A! (!A!#Ak"$@@ E A! (A' Aj(( Aj!@@ A"G@ AG  (A' ((!  A!A! (A" ((E     -!@@ AqAG@ - " - I@  Aj: A O   j-!  A!  A! A6 (! B7 (  ((E A! Aj$   A A E   ("E A! AAE   (! -,"E E A! AA  @  ("E A! AA  ("@A! AA  A! E   M  j-AF  @  ("E A! AA  ("@A! AA  AF  ("E A! AAE   @  ("E A! AA  ("@A! AבA  A!   ("E  AؑAE   @  ("E A! AA  ("@A! AA  A j!A!@ ("E @@ (" (O  j-AG Aj6  @ E ("E AՑAE A  A A)  Aj! (" A !  6  6A! (  ($AF@ ("E  AA  ("E  AAE   @  ("E A! AA  A! A2 @@@@ ("@ (" (O  Aj6  j-Ak  ("E@A!  A͑A!  ("@ AA    ("E  AAE   ("@ AA  A!#A0k"$@@ (" E @@@@@ (" ("O  j-AG Aj6  @@@@@@ E ("E AՑA@A!  (" E  (! (!  O   j-AG  Aj"6  M   j-AG  Aj6  ("E A! A͑A  B! @  M @@  j-"AG@ A0k"AqA I  AkAqAI  AkAqAO Ak!  Aj6 B|" P  BQ   Ak! Aj"6  B> )BR  )" B|" Z  Aj  (@ A(j Aj)7  )7 ("@ A j p  AA  A! A)E   (! -"E  E  AAE   Aj! ("   E AA  :A! A6  ("@ AA  A: A6  A!  A! A0j$   ("E  AAE   ("E AAE  ("E AAE  A!  ("E A! AAE  ("@A! AA  A:  Aj6A! E A! A)   ("E  AAE   E A! AA  :  E A! AA  : A! A6  A! A: A6  A!   A! (E ( Ak6 A0j$   #Ak"$@@@@@@@@@ ("AGF Aj! (@!@@@ AF A j(AG  ($   (86 A jAAGF  (  A3j (E  (! (@(!A! / @@ ("A9j  AA&E AF   (E  (86 @ A jAA(k (! (@(! /@A!  (8!@@@@@ ("Aj A j)"E@A!  /E A! AH ("(8 Atj(" ("Ak6 AJ   A(j(@  (( A j A j(6 A AjA!  A j("AN@ ((8 Atj(" (Aj6 A! /   A   (A,G  /@A!  (! AG@ A*G  /@A!  @@ (AG A j(AG ($E  AAA! /@A!  @ ("AF A%jAQK AAA! ( "AN@ ((8 Atj(" (Aj6 A! /   A    /@A!  @@ ("AF @ AF A%jAQK AAA!  ( "AH" E@ ((8 Atj(" (Aj6 / @@ (AG ( AG ($ / @ ("AF A%jAQK AA ( "AN@ ((8 Atj(" (Aj6 /E   ! ((8 Atj(" (Aj6 !    @ AH ("(8 Atj(" ("Ak6 AJ   @ ("(8 Atj(" ("Ak6 AJ   (A,G A! /E  A! A " A! @ (" ALA (!A!@ ( F  Aj! Aj"G ! (N@A! AjA Aj Aj  (!   Aj6 ( Atj! AN@ ((8 Atj(" (Aj6  6 A6 ! @ AH ("(8 Atj(" ("Ak6 AJ   AH@A!  @ (8" L Asj! (4! kAq"@ A l jAj!@  6 A j! Aj! Ak"  AI k! A l jAj!@  6 A k 6 Ak 6 A$k 6 A0k 6 A )BR  )" B|" Z   Aj6 B|" P  B|" P  (" A!@@ (" (O  j-AG Aj6A!  @ E ("E AAE A!  @A!  Ak! (" A!  ("@A! AA  A! A: A6  @ P A! AϑA  (Aj6 B  ! @ B}" P@ ("E  AӑAE   @ ("E AՑAE A!  A! (Aj6 BE  A ("E A!@@@ (" (O  j-AG Aj6A  @ E ("E AA    Ak! (" A  A ! ( k6 Aj$   ("E  (" (O   j-AG  Aj6 Aj  -  )" P  ("@ AA     A!A!#A k"$@@@@@@@ ("@ (" ("I@  j-AF     I! !@  F   j-"AF @ A0k"AqA I AkAqAO@ AkAqAO  Ak!  Ak! Aj"6  B> )BR  )" B|" Z  ("E  A͑A!  Aj6 B|" PE   Aj6 AkZ A! ( Aj"AI@ ( A!  ("E A! AA   A! ("E A! AA  :A! A6  Aj" Aj")7 6  >  )7 +!  )7 )7 A j$    A!   ("E  AA   A!A!#Ak"$@@@@@@ ("@ (" ("O   j-AG  Aj"6  O   j-AG  Aj6  ("E  A͑A!  @  O   j-"AG@@ A0k"AqA I AkAqAO@ AkAqAO  Ak!  Ak! Aj"6  B> )BR  )" B|" Z   Aj6 B|" P  B|" P  ("@ P A! AϑA  (Aj6 B  ! @ B}" P@ ("E  AӑAE   @ ("E AՑAE A!  A! (Aj6 BE  !  ("@A! AA  A! A: A6  ! ( k6 Aj$    (! -"E E A! AA  AA  A! + ("E  AA  (! -"E  E  AA  6A! A2  ("@A! AA  A:  ("E A! AA   E AA  :  A! A: A6  E A! AA  : A! A6  @ AF ("E A! AA  A! +  A! (E ( Ak6 A j$   ~#Ak"$ )!A(AG@ A-!AA:  :@@@@@@@@@@@@ E@A!A(Aq@A(EE! A- A(E A)"Bʴ:"A)"Bټ|" B" Bޑܷ" B̓׬۷|"B |" BB"B    B "|"B |""B   B" B|"B |""B    B "|"B B|""B   B" B|"B |""B   B " |"B |""B   B" |"B |""B  B " |"B |"B B "B  |"B  |"B "BBB~! !A(" Ak! A(!@  q"j)" "B B}B!@ P@  BBPE  Aj"j!  z! B} ! A Av j qk" Alj" )B Aj)B܉!PE AljAk(!A!@ BpT  " /G ( ! ! @  A(AqE A(E AA: AA: E  (E@ A6 Aj(! A! Aj(!  6l A AJ"!  @@@ A?K At"AH     A- "E  Aq!A! AO@ A|q! ! !@  )7 Aj Aj" 6 Aj Aj)7 Aj 6 A j Aj)7 A(j 6 A0j Aj)7 A8j 6 A@k! A j!  Aj" G  @  Atj!  Atj!@  )7 Aj Aj6 Aj! Aj! Ak"  A 6x  6t  6p Aj Aj (`! (d! A6 B7@ E A6x B7p ) Aj( Aj  (t! (p! (x" ( ("kK@ Aj   (! ( j     j6 @ ] AF  Atj! Aj!@ (" (F Aj  (  (jA :  (Aj6 A6x B7p ) Aj( Aj  (t! (p! (x" ( ("kK@ Aj   (! ( j     j6 @ ] Aj" G AjB7 A6t A6p A6  Aj6x  Aj6 Aj Aj ($ -"AF  Aj Aj(6  (6q  :p Aj! (@ (] A-A"E@A A; B 7t  6p Aj Aj (\! (X!@@@  B򅬡B٢ (( D" )! (! (! B򅬡B٢ ((C AG    6 AjB7 A6t A6p A 6  Aj6x  Aj6 Aj Aj Aj (" (" ("  Aj(! (!   7  6  6 A6 B7  Aj6 AjB7 A6t A6p A 6  Aj6x  Aj6 AjA Aj  Aj Aj(6  )7p Aj Aj@ ("E@ Aj(! (!  (! AjAA  (  Aj(! (! E ] ~@@@@@ (Ak  6  Aj   6  A j   60  A0j   6@  A@k   6P  Aj ! A: @ ] (E (] (" K  (! AjB7  6  6 A 6 A6t A6p  Aj"6  Aj6x Aj" Aj   (  Aj(! (! E ]  6  ! A: @ ] (@ ] (" ((  A B7| A6x A6t A6p Aj Aj AjB7 A6t A6p A6x  Aj"6pAA+ AA  Aj Aj)7  )7pAA+ AjAA  A Aj Aj)7  )7pAA+ AjAA A: E  ]  (@ (] A:p Aj Aj Aj; (E  )! Aj @ ] (Aj6 Aj$   (6AA+ AjAA AA+A  :t A6pAA+ AjAA AA7 AjAA ~#Ak"$ )!A(AG@ A-!AA:  :@@@@@@@@ E@A(Aq@A(EE! A- A(E A)"B"A)"Bټ|" B" Bޑܷ" B̓׬۷|"B |" BB"B    B "|"B |""B   B" Bߐ|"B |""B    B "|"B B|""B   B" B|"B |""B   B " |"B |""B   B" |"B |""B  B " |"B |"B B "B  |"B  |"B "BBB~! !A("Ak! A(! A!@   q"j)" "B B}B!@ P@  BBPE  Aj"j!  z! B} ! A Av j qk" Alj" )Bߐ Aj)BΎPE  AljAk(!A!@ BpT  "/G ( ! ! @  A(AqE A(E AA: AA: E @ ( A6 A|F  6tA! A AJ! @ AL@A!  @@@ A?K At"AH  A!   A- "E  Aq! A! AO@ A|q! ! !@  )7 Aj Aj" 6 Aj Aj)7 Aj 6 A j Aj)7 A(j 6 A0j Aj)7 A8j 6 A@k! A j! Aj"G  @  Atj!  Atj!@  )7 Aj Aj6 Aj! Aj! Ak"  !  6  6  6 Aj Aj (h! (l"AG  Aj ) (@ -"A G@ Aj Aj)7 Aj Aj)7 Aj Aj)7  -:  /;  )7  ("6  : AG@ AjB7 A6 A6 A 6 A6 A6  Aj6  Aj6 Aj" Aj !@@@@   Aj("E Aj  AjB8~"jAwF ( k] (E ] AjAr (E ] (E  ]  (! E   (6  6  6 A: Aj Aj Aj; (E  )! Aj  (!   (6AA+ AjAA A B7 A6 A6 A6 Aj Aj AjB7 A6 A6 A6  Aj"6AA+ AA  AjB7 A6 A6 A6  6  Aj6  Aj6 Aj" Aj ! A-A"E@A A; B 7  6 Aj Aj (d! (`!@@@@@@@@  B򅬡B٢ (( D" )! (! (! B򅬡B٢ ((C AG    6 AjB7 A6 A6 A 6  Aj6  Aj6 Aj Aj Aj (" (" ("  Aj(! (!   7  6|  6x A6 B7  Aj6 AjB7 A6 A6 A 6  Aj6  Aj6 AjA Aj  Aj Aj(6  )7 Aj Aj@ ("E@ Aj(! (!  (! AjAA  (  Aj(! (! E ] ~@@@@@ (xAk  6  Aj   6  A j   60  A0j   6@  A@k   6P  Aj ! A: @ ] (E  (|]  (" K  (! AjB7  6  6 A 6 A6 A6  Aj"6  Aj6 Aj" Aj   (  Aj(! (! E ]  6  ! A: @ ] (@ ] (" ((  AA7 AjAA Aj Aj)7  )7AA+ AjAA  A Aj Aj)7  )7AA+ AjAA A: @ ] E  ] (Aj6 Aj$  AA+A  : A6AA+ AjAA ~|#Ak" $@ BoX@ AAA!  A0q"E Av"Aq"As  qr"AFq! Aq! Aq! Aq! Aq! Aq! ! AqAF!@@@@@@@@ (" ( qAsAtj("@ A0j! @ AkAt"j"( F  (Aq"  A6 -Aq   ( j! 6 (!@ E AqE B AuO@ " (Aj6 Aj A@A!  ~ ("AN@   B~ "B} BBV !@ (" ( qAsAtj("@ A0j! @ AkAt"j"( F  (Aq"  AAAA ( j! 6 (! Av!@ A q" E@   A  sAq @ @ A|qAF" AGs  AG  Aq       A{K   A0q"A0G   A0q"A0F  E  @ ! BpZ@  /"A F   A0F@ ( -  ((D Alj(  A ! !  BpZ@ /"A F   A0F@ ( -  ((D Alj(  A !@ A|qAG@A! Aj @ ((A|qAxF@ ( (  ) (" (AqAr6 B7  Aq@  (G  A qE  (G  Aq@ ("@ Bp @ B AuI E  (Aj6 6 A qE  ("@ Bp @ B AuI E (Aj6 6  @@ Ak A! Aj  ("@ Bp ("@ Bp (" (Aq6 B07 ((!  E  Aq A!  )E   /"AF@ AN   ((O  E@ E A!  A! E  ($ Atj! B AuO@ " (Aj6 )!  7 B AuI  " ("Ak6 AJ  (   AkAqA K @@ AN@ "Bp"B0Q A! BQ @@ B "A A jAM Aj @   +""Dd DcrE  a   A! A!@@@@@@A B " AkAnIA j BB  B|B?  "Aj(E  A j(AxG  Aj(  Aj(!  !  E  A!   ((I  A!  E AFqE@ A!  A! E  B AuO@ " (Aj6    !  A|qAxF@ @ /A F@  (()E  ((! B AuO@ " (Aj6   AG A! Aj  ("()"B AuO@ " (Aj6 (! (  7 (" (Aq6  Aq@A! @ B AuO@ " (Aj6  ! AG@ !  ("A0j6A! Aj (0AvA=q  !  @ ) B AuO@ " (Aj6 7 AqE A! Aj ((AvA=q Aqr  A! ("(Av" Aq"Asq  qr"F @ (" -E (AG@ "E@A!  (" ("Ak6 AL@ (  6   kA0kAuAtjA0j"6  (" ( (A (kvAtj!@ "("A(j!  G ((6 A: (Ak6 (!  (Aq Atr6  @ -E (AG@ " E@A!  (" ("Ak6 AL@ (  6  kA0kAuAtjA0j!  ("( (A (kvAtj!@ "(" A(j! G A:  ((6  (Ak6 ("A|q  ( AqAtAj(! (A|qZ  (Aq6 B07 BpBQ@A!  7  A!      ! Aj$  ~#Ak"$ Aj" A60 (8"64 Aj(6  6 @ 6 ("6@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ,"Aq"}       (G ( G  A6  Aj6  A  @@ -A+k A6  Aj6  A6  Aj6  -A=G  A6  Aj6 @@ -A*k A6  Aj6 -A=F@ A6  Aj6  A6  Aj6 -A:kAvI  (@-nAqE  AA  -"A.F@ -A.G  A6  Aj6  A0kAqA O  (@-n! A(j"A6@ (  A jAAA Aq 1"Bp"B~R@ BQ  ( A AjE  @ B AuI (! " ("Ak6 AJ (  AA  7 A6  Aj"6  Aj"6A!@@@ -"AF@ -AG  AjA!  AN A Aj! AK  ! AvAqAj( vAq  !  E@ AA   (6 A j Aj A"E  A6 A j 6  A6  Aj6 !  -AG   Aj6@ AjA"AN@ AM@ AvAqAj( vAq    ( !   (6 A6 A j Aj A"E  ("6$ A j 6 A(jA6@ A%I A-M@ (@"-nAq  A-G  /l"Aq  AqAG  (d  ("E  -lAq   A.G  (D (@"/l"Aq AqAG  (d  ("E  -lAqE  @ A6 A6(   Ak6   6  Aj6  A6A  A6  A/6  Aj6  A6  Aj6 ( 68A ! Aj$  Aj!A !@@@@@ E@  6  @ -" AN  A A j"A~qAF  ( ! AF  A!  Aj   ( )BR  )" B|" Z  ("E  A͑A!  Aj6 B|" PE   Aj6 AkZ A! ( Aj"AI@ ( A!  ("E A! AA   A! ("E A! AA  :A! A6  Aj" Aj")7 6  > )7 AqAG2!  )7 )7 A j$    (! -$"E  E  AA   (! -!"E  E  AA   @  O Aj6  j-"AkAqAO@ Ak!A! AqAO  2@  @@@@@@@ (E@A! ("E  AA@A!  (E  A j  -  (E  )(! A j  ( E  A8j A(j)7  ) 70 AG  (4 A )BR  )" B|" Z  (! A6 A2E@ 6  AA= A jAA ("E A! AA  @A! AA  A! + AG@ ("@ AA  A2  ("E AA A! A: A6 E A! AA :  E A! AA  :  E AA  :  E AA  : A! A6  ("@ AA  A! ("@@@ (" (O  j-AG Aj6A  @ E ("E AՑAE A  A   Ak! ("  A  ("E AA  A! (E ( Ak6 A@k$  ~#Ak" $  "Atj"! !@@@ ! ! ! !@@@@@@@@@@@@@@  G@ Ak" (! Aj(" AO@ AjA|q" F   k"  I"E  ! !@ -A F  Aj! Ak"  Ak" K   A! E  -A F  AF  -A F  AF  -A F  AF  -A F  AF  -A F  AF  -A F  AF  -A F!  ("E@A!   (" jAk-A G A!@  k"6  j" 6@@@A AjA A j"E@ ( !  ! Aq"AF A: AF A! Aq  A:  A!A ! @   6 A; 6 : AjA:   j!  I  Ak! A!  K A! A6 E  Aq! @ AI@A!A!  Aj!A! A|q"!@AAAA  Ak(j"  K" Ak(j"  K" Ak(j"  K" (j"  K! A j! Ak" @ At jAj! !@A  (j"  K! Aj! Ak"   (" kM  E@A!  (! A!@  k"6  j" 6@@@A AjA A j"E@ ( !  ! Aq" AF A: AF A! Aq  A:  A!A ! @   6 A; 6 : AjA:   j!  I   A A! (    K A! A6  O  (! Aq@  j ( ("  j! Aj! AkAq@@  j ( Aj("   j"j Aj( A j("  j! Aj" G   6 A: 6  @ AI@A!A!  Aj!A! A|q"!@ ( Ak( Ak( Ak( jjjj! A j! Ak" E At jAj!@ ( j! Aj! Ak" ~@A   Aj"E@ (!B!  B Aq"AF  !  ! A: B 7   A @  j"Aj("AsAk Asq ("AsAk AsqrAxq  Aj" M A!  F k!  j!@ -A F  Aj! Ak" Ak! Aj! Ak! Aj! E  @@ ("@ (! A!@  k"6  j" 6@@@A AjA A j" E@ ( !  ! Aq"AF A: AF A! Aq  A:  A!A ! @   6 A; 6 : AjA:   j!  I  K  A6  I@AA#Aȟ @ E@A!  Aq!@ As jAI@A!A!  Aj!A! A|q" !@ ( Ak( Ak( Ak( jjjj! A j! Ak" E Aq! At jAj!@ ( j! Aj! Ak" @A   Aj"E@ (!  Aq"AG  E@ A: A6  @ E@A!A!  Aq! @ As jAI@A!A!  Aj!A! A|q" !@ ( Ak( Ak( Ak( jjjj! A j! Ak" E Aq! At jAj!@ ( j! Aj! Ak"  O@A! @  F @ j"Aj("@ (" (j ( ( k"   K"   j6 E   j!  Aj" A:  j6  A: 6   A A; A: AjA: 6 Aj$  #Ak"$ G@ (! B7l B7d  6`Ax  AjF @ ( "E@A!A  (A At ( "E   6l  6p ( !  )7d  ( At (h  (l@ (`"( (pA ( ! A6l  6p A6dA ! A! A6h (AA ( "@ Aժz6A! @ (h" AF @ (d"E@ @ AH   (l"   H! Ak! Ak! (p AtjAk! At jAk!@ AL A! A!  I@ (!   I@ (!  Ak! Ak! Ak! Ak! Ak! F K   A AtkAN   Aj6h Ak! @ ( A (  A! Aj"AO@ Av" g"Aqt"Aq AvAq AvAqAj/"At"AsA Av  lk" K" jAtr"  j"At"n" lk   lkAtjAu j Atj Avv! B7T B7L  6H B7< B74  60 B7  (`"6x  j!  Atn" Aj"At! (AA ( " A6 Ax6  6AA !  j! A6|  6 Aj"  AjAA@ (x"E ("E ( A (  A j! AJ@ !@ B7  (H"6x A6|  (AA ( "@ A6 Ax6  6A  A6|A 6 Aj Aj Aj A@ (x"E ("E ( A (  A0j Aj A B7  (H"6x A6|  (AA ( "@ A6 Ax6  6A  A6|A 6 Aj A0j Aj A@ (x"E ("E ( A (  Aj"  Aj A Ak"  B7$ B7  6 B7 B7  6 B7  6x A6|  (AA ( "@ A6 Ax6  6A  A6|A 6 Aj Aj Aj A@ (x"E ("E ( A (  Aj" Aj  A    Al B7 ( @ ("( (A ( ! A6 6 AM@@ ! A6L@@@ (TAF@ (X!  (H"( (XA ( "E  A6T  6X Ax6 A6P  (T@ (H"( (XA ( ! A6T  6X B7L A64 (Ak A!A!@ B Aq A!  A!A! A  Aq  vAqE @ A|qAxG E ( j((5B BR A!  A$j @ Aj!  @ Aj!  Aj! Aj! Aj" ( H  @@ -"AqE Aq@ AqE  A(j( j!  /"AF@ AqE  ) "BpBQ (AqA j!  ((D Alj("E ("E A! A,j A(j Bp   ((" E A0q! AqE!A!@A!@ (, jAj("AH @@ ((8 Atj()"B>Ak A!@ B Aq A!  A!  vAq@@ E@A!    "AH@ (,"@ (("E  Aj!@@ ("AH ("(8 Atj(" ("Ak6 AJ   Aj! Ak" ("Aj  ( A!  @ E@A!  (! @ )"B AuI " ("Ak6 AJ (  Av! @ )"B AuI " ("Ak6 AJ (  Aq! )"B AuI " ("Ak6 AJ (  (, j 6  AGrj! ((!  Aj! Aj" I A! ("Aj j" j j"A AJAt ("E@ ("-E@ A: AA A: A! (,"E  ((" @ Aj!@@ ("AH ("(8 Atj(" ("Ak6 AJ   Aj! Ak"  ("Aj  (  @ ("( "AL@A! ! !  A4j! Aq! A! ! ! A!@@ ("E Ak(!A! A!@ AH @@ ((8 Atj()"B>Ak A! A!@ B Aq A!  A! A! A Aq"  vAqE  A$j @ Aj! A! !  @ Aj! ! !  ! ! "Aj ! AN@ ((8 Atj(" (Aj6  Atj" Av6 6 ( ! ! ! Aj! Aj" H -" AqE  Aq@ AqE  A(j(  /AF  ((@ Aq!A!A! @ (, j"(!A! @ Aj(" AH @@ ((8 Atj()"B>Ak A! @ B Aq A!  A! @@A    vAqE  Atj" 6  6 Aj!  AH ("(8 Atj(" ("Ak6 AJ   Aj! Aj" ((I  ("Aj (, (  ("Aj  (A!  AqE  ) "BpBR  (Aq "AL Aq! @ AI@A!  A|q! At jAj!A!@ Ak Ak6 AkA6 Ak Axk6 Ak Ak6 AkA6  Ak6 A kA6 AkA6 A j!  Aj"G  j! E  Atj!@ A6 Aj Axr6 Aj! Aj! Aj! Ak"  G  G  G @ E   AA b  6  6A! A0j$  AAA;A AAA;A AAA;A  ( s! (! (" (" G@AA  H  ( "Ak! ( " Ak! AtAk! AtAk!  HAk!@A AH A!A!  I@ ( j(! I@ ( j(! Ak! Ak! Ak! Ak! Ak!  F AA  I ! s!   AH"! @  E (AJ ( @ ("( (A ( ! A6 6 AqAF6 Ax6A   !  !@@ ( "@ ( "  ("AN@ AF@ ( @ ("( (A ( ! A6 6 B7A ( !@ (AG E @ ("( (A ( ! A6 6 B7A @ ("( (A ( ! A6 6 6 A6A G@@@  ( F@ (!  A  ("( ( At ( "   6 6 (! ( ! 6 (6 ( At  ( @ ("( (A ( ! A6 6 A6  (6 6 (" ("k! @ E@A!  A! AJ Aq! At!  Atj k! (!A!@A!  j"AkAu" I@ ( Atj(! A!  j"A kAu"K@  Atj(! @A! Aj"K  Atj(A At Ast  vr!  F@ A k!   s"g!@ AI@  kAj!  AA k"tAs" qg" Asqg"  H" k!  Ajk G  A!k! A@j!A k! As!@A!A! Au" I@ ( Atj(! Au" K@  Atj(! @A! Aj" K  Atj(A At t  vr! A k! E@ A k! A k! AF  g" Asg"  H k! @  jA!jAv"  AjA m j"  H"  J" ( G@A  ("( ( At ( "  6 6 ( ! ( ! A!A k! kAt j! !  k"AH@A  k"k"Au q! Aq! At!A kAu!@ At j!@@@  j"AN  IqE@ AaH"E@A!  H  Au q"   H  !A! A!  ( Atj(! A! AaH   N  (!A! Au"K@  Atj(! E Aj"K  Atj(A At Ast  vr! Aj!  s" j" I   j"Kr!  r! AH  @ E@ (!  At Atk!A! A k! Aq! (! (!@A! (  jK@ ( j j(! A! Au" ( "I@  Atj(! j A!  Aj"K  Atj(A At Ast  vr  s" j" j" 6  I  Kr! Aj! A j! Aj" ( AGr6@  E Aj" ( G@A  ("( At ( "   6 6 AtjA6 (A j6   ( @ ("( (A ( ! A6 6 B7A  6   ~#A k"$@ B`B Q@ A×AB!  B! A" BpBQ B7 B7  6@@@ ("AjA ("E@ ("-E@ A: AA A: A6 A6 A6  B7 A6 A6  6 (" (H  Aj AjA<  (! ( !  Aj6 Aj! (@  AtjA<;   jA<: @ ( AtAj(""j" (J@ Aj A  @ (@ AL A! AG@ A~q!@ (  (jAtjAj  j" -; (  (jAtjAj Aj-;  Aj"G  AqE  ( ( jAtjAj  j-;  ( (jAj    ( j6 @A= vAq AtAj!@ (" (N@ Aj AjA   (!  Aj6 ( Aj! (@  AtjA ;   jA : @@ ( (""j" (L Aj AE (!  @ (@ AL A! AG@ A~q!@ (  (jAtjAj  j" -; (  (jAtjAj Aj-;  Aj"G  AqE  ( ( jAtjAj  j-;  ( (jAj    ( j"6 @ Aj" (J@ Aj A  ( Aj! (!@ (@  AtjA=; ( (AtjAjA";   jA;  (Aj6 @@ )"B`B Q@ A×A  A" BpBR  @ B AuI " ("Ak6 AJ (  (("Aj ( (  ")"BPE@ Aj" !A!@ (!@ BPE@ /   j- "A"F@ Aj" (J@ Aj A  ( Aj! (!@ (@  AtjA&; ( (AtjAjA; ( (AtjAjA; ( (AtjAjA; ( (AtjAjA; ( (AtjAjA;; (!   j"A(6 AjA/;  Aj6  @  (N (@  Aj6 ( AtjAj ;  AK  Aj6 ( jAj :  Aj  Aj! Aj" )"AqI  @ B AuI  ("Ak6 AJ (  (" (N@ Aj AjA"  (!  Aj6 ( Aj! (@ AtjA";  jA": @ (" (N@ Aj AjA>  (!  Aj6 ( Aj! (@ AtjA>;  jA>: Aj @@ (Aj" (L Aj AE (!  ( Aj! (!@ (@ AtjA<; ( (AtjAjA/;  jA;  (Aj"6 @@  "j" (L Aj AE (!  @ (@ AL A! AG@ A~q!@ (  (jAtjAj  j"-; (  (jAtjAj Aj-;  Aj"G  AqE  ( ( jAtjAj  j-;  ( (jAj    ( j"6 @ ( L@ Aj AjA>  (!  Aj6 ( Aj! (@ AtjA>;  jA>: Aj! A j$ ~#Ak"$ Aj-"!@@@@@ )" BoX@ B AuO@ " (Aj6 Aj @B!  )" BT  AAB!  "/"AkAqAM@ ( ! )" B AuO@ " (Aj6 @ Aj E@ )" BT  AA B!  -@ AAB!  @ A tAs"P@ ("" X  AAB!  @ )" BpB0Q@  q  } !  B! Aj   -@ AA  4 )"  |Z  AПAB!  AkAqA M@  " BpBQ @@@ ( "( ( "- B0 A(j("" AAAA"BpBQ  ( ( ( -E  B AuI " ("Ak6 AJ (  AA  A!@ BpT " /AG ( ! B  @  /G@ E B!A!  ( ( (j (  @@ AN@ ! " BpBR   B~ " B} BBV" " BpBQ  AAH  Aj! B|" R  B AuI@B!  " ("Ak6 AJ@B!  ( B!  @  " BpBQ @@@@ A A"Bp"B Q B0Q BQ  ($" (Aj6A!@ A"BpBQ  B0AAA " Bp! @@ BoV BQ @ B AuI " ("Ak6 AJ (  AA  @ BQ @ A A" BpBQ Aj" BpBQ @ (@      AN~ B~ "B} BBV AAH  Aj! Aj" BpBR B AuI " ("Ak6 AJ (  B AuI " ("Ak6 AJ (  A!@ B AuI " ("Ak6 AJ (  B! @ B AuI " ("Ak6 AJ (  BpBQ   " 7  A0 A"BpBQ@ B7  B "AuO@ " (Aj6 @ Aj " )" BY@B! BT   7 @ AuI " ("Ak6 AJ (     (Aj6 )! ! B0 AAAA" BpBQ B ) )BW B! A!@@ Ak"AN@  " BpBR   B~ " B} BBV" " BpBQ  AAH  ! Aj! )S  B AuI " ("Ak6 AJ (  B AuI " ("Ak6 AJ (  B!  B! B0 AAAA" BpBQ     )" B AuI " (Aj6 B!  "BpBQ@ B AuI  " ("Ak6 AJ  (    E@ !  B AuI " ("Ak6 AJ (  Aj$ ~#A k"$@ B`B Q@ A×AB!  A"BpBQ A!@ A"BpBQ @@@@ ("Aj "(Aq" A AKAt ("@ A!  ("-E@ A: AA A: B AuI   ("Ak6 AH   Aj! A! !@ Aj! @ )"BPE@ Atj/" AqAG  AqN  Atj/"AqAG  A tA?q AqrAj! Aj  j-! !  6 Aj! Aj! H B AuI   ("Ak6 AJ  (  ! @ B AuI " ("Ak6 AJ (  A!B! AH @ E )"BpB0Q @ Aj A"@@ -AG -AG AA -AF"j-"AkAqAK ( Aj Aj  kAjF  Ak" ("Ak6 AL@ ( B AA ("Aj (  Ak" ("Ak6  AtjAk! AJ ( B ! (!A! #A k" $ B7 6 AjB7 A6A!@ At" @@ AL  ! !@ (AK  Aj! Ak"   Av (  ("Av! (! AI A!@@ Atj" (E  Aj"L@ !  !@ ! "Atj(""E@ !  @  H@ !  !@ (" L@ !  Aj 6 Ak!  J! Ak"!  At jAj 6 Aj! Aj" G ! Aj" H Aq  AI  A AK! Ak!A!A! @ Atj(" !@@ AL @ AkAtj"(""E  L   Atj! !@ Ak"AL  (""E  Ak! AH  @@ A"kAK A"kAK Al AljAk!  @ Ak"AK A#k"AK AqAp  j!  A!A!@@ Aj  jAm"AtAj/"Av"AtAj("Av" A?qj"   AvAq AvA?q@ (k  ("k  F"AH@ Ak!  E  Aj!  N   E   6  Atj 6 Aj! Aj" G  ("  !  6 A j$ ("Aj ( "AH (! B7 A6  6  6@ ("Aj Aj ("E@ ("-  A: AA A:  A6 A6  7  6 @ @@ ("AO@ AkA vAj!@@ (" (N (E ( AtjAj ;  Aj6  Aj   AqAr! @@ (" (N (@ ( AtjAj ;  Aj6  AK ( jAj :  Aj6  Aj   Aj! Ak"  Aj!  (("Aj ( ( ("Aj ( ( A j$  ~#Ak"$ )!A(AG@ A-!AA:  :h@@@@@@@@ E@A!A(Aq@A(EE! A- A(E A)"Bð{" A)"Bټ|" B" Bޑܷ" B̓׬۷|"B |" BB" B   B "|"B |" "B   B" BƃӮ|"B |""B   B "|" B B|""B  B" B|" B |""B  B " |" B |""B  B" |" B |""B  B " |" B |"B B "B  |"B  |"B "BBB~! !A("Ak! A(!@   q"j)" "B B}B!@ P@ BBPE  Aj" j!  z! B} ! A Av j qk" Alj" )BƃӮ Aj)BPE  AljAk(!A!@ BpT  "/G ( ! !@  A(AqE A(E AA: AA: E @ ( A6 A|F  6 A AJ! @ AL@A!A!  @@@ A?K At"AH A!   A- "E  Aq! A! AO@ A|q! ! !@  )7 Aj A j" 6 Aj Aj)7 Aj 6 A j Aj)7 A(j 6 A0j Aj)7 A8j 6 A@k! A j! Aj"G  E  Atj!  Atj!@  )7 Aj A j6 Aj! Aj! Ak"  60  6,  6( Aj A(j (! (!A~A-@A)  AjB7 AjB7 AjB7 B7H B˧ٲ7@ Bޑܷ78 Bټ70 B̓׬۷7(AB Aj"   )h"B"7h A(j" Aj"A   B씣 ~|>h  AA("E@!A( A 6  ("Aj6 AH   )7h A(j AjA  ("Ak6 AF@  AA: )X 5`B8" )@"B  )0|"" B )8" )(|"B |" "B   B "|"B B|""B   B"  |"B |" "B   B " |"B |""B   B" |"B |" "B  B " |"B |"B B "B  |"B  |"B BB Bѷ}"7 Aj BЅ߁g  A:(  Aj) )B B?D90 Aj A j A(j; (pE  )h! A(j @ ]  (Aj6 Aj$  A B74 A60 A6, A6( Aj A(j A4jB7 A6, A6( A60  A(j"6(AA+ AA   ;hAA+ AjAA AjB7 A6l A6h A6p AjA  (h6$AA+ A$jAA AA+A  :, A6(AA+ A(jAA  ~|#Ak"$@@@@@@@@@@@@@@@ -Ak Aj A) (H! (P"  A6 6 Aj A) (H! (P"  A6 6 ( Aj  -AGB (H! (P"  A6 6 ( Aj  5 (H! (P"  A6 6 Aj ~ ( +"" DAc@   Ax "Q@   B~ B} BBV  (H! (P"  A6 6 Aj  ( ( A j({ (H! (P"  A6 6  (" ($" (Aj6 Aj  A (H! (P"E   (L6  6  6 A j(A(l! (! )!  Aj  (B0 A j5A (AA (H! (P"E  (L!  @ E@ B ! !  Aj  ; (H! (PE@ !  5L! Aj AjAA (H! (PE  (! B ! AN@    A   B~ "B} BBV A AN@ A(j! A(k!  ((")! B 7 Aj   (H"@ A@k Aj)7  )P78  (L64  60 AjB7 A6L A6H A 6,  A(j6P  A0j6( Aj" Aj ! (4@ (0] (<"E  A@k(E  ]  (L! A6 6  A6 6  Aj  ( (H! (P"@ (" Aj!  (L" B ! )BB! Aj(! @@@@ E  P@ !@ Ak! )! Aj" ! BB"P  zAvAHlj"A8k"(!@@@@@@@@ Aj("E@A!  AH A- "E    ! Aj  A(k; (H! (PE@ A6 6 E  ]  5L! AO@ AjA|q" F   k"   I"E A!@  j-E  Aj"G  Ak"K   E  -E@A!  AF  -E@A!  AF  -E@A!  AF  -E@A!  AF  -E@A!  AF  -E@A!  AF  - A!    Ak!A! @  j" Aj("Ak Asq (" Ak AsqrAxq  Aj" M  F  k!  j!A!@  j-E  Aj"G  6P  6L  6H  Aj (! (  ("  B AAH  A: @ ] Ak! B} !   j!  6T  6P  6L  6H Aj!  ((")! B 7 Aj  @ (H"@ A@k Aj)7  )P78  (L64  60 AjB7 A6L A6H A 6  Aj6P  A0j6 Aj" Aj ! (4@ (0] (<"E  A@k(E  ]  (L! A: E ] A6 6  A6 6  6  B 7 Aj$ #Ak"$ (@"("@ Aj!@ (@ E@ (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A (@"Aj! (! (!@ -lAF@  G@ A  (6  A jA  (6  Aj(6 A (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A (@! A6 Aj A jA (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A AA! (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A$ (@! A; Aj A jA (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A AA!  (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A  (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A   G@ A  (6  A jA  (6  Aj(6 A A}!A! ( j! (AG@ @AA !@ (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6   Ak"  E@ (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A A (A!A! (" (@! @ (`@@ E@A!  Aj! ( (G@ A  (6  A jA  (6  Aj(6 A* AA! (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A (@! Aj! ( (G@ A  (6  A jA  (6  Aj(6 A (@! A6 Aj A j"A (@! A; Aj A  (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A(  -l"@@ E@ Aj! ( (G@ A  (6  A jA  (6  Aj(6 A  AG Aj! ( (G@ A  (6  A jA  (6  Aj(6 A (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A.  Aj! ( (G@ A  (6  A jA  (6  Aj(6 A(A)  Aj$  ~#Ak"$@@@@@@@@@@@ ("AjA ("E@ ("-  A: AA A:  A6 (! Aj""B7 B7  6  B~"7 B " AuO@ " (Aj6 @@ A8j "E B " AuO@ " (Aj6 A j "  A8j F@ (8"E  (H"E  ( A (   Ak" ("Ak6 AJ ( B~  ("Ak6 AJ  (   @@@@@@@ Ak      !    AAl!  (("@ -(Aq  (! B7 B7  6    AM! ("E ("E ( A (    AAq!   AAq! (E A! (("E -(AqE  Aj! (()!A!#Ak"$@ A A"Bp"B0Q @ BQ @@ BpT " /A%G ( "   (" Aj (DAj(6 A   @ Ak" A'O B BP AtAj(AtjAj(" E@ (" Ak6 AJ  (   B AuO@ " (Aj6 A"BpBQ  B AuO@ " (Aj6 A"BpBQ@   (Aj6  7  7 BpB0A Aj!   BpBQ   7A!  @ B AuI " ("Ak6 AJ (  B07A! Aj$ @  A8j A j  A! AH@A!   )7  ~ ("AjA ("E@B ("-  A: AA A:B  A6 (! Aj"B7 B7  6 B~ "BpBR   A8j A j @ B AuI " ("Ak6 AJ (  A! B AuI " ("Ak6 AJ (  Aj! Aj(! (!  AF@       Ar !  A8j A j   A q"@  A!   7A!    AA!   A ("AxF" E AGqE@ AAx  "k  AF6    (AAr! (AN  AA$q r!     !    Ag!    Ag!    AA! @ A8j F@ (8"E  (H"E  ( A (   Ak" ("Ak6 AJ ( B~ @ A j F@ ( "E  (0"E  ( A (   Ak" ("Ak6 AJ ( B~ @ AuI " ("Ak6 AJ (  @ AuI " ("Ak6 AJ (  @  A!  A!   ((" ((AvAqA 7 Aj$  ~#A k"$ AjB7 B7  6@@@ ("AjA ("E@ ("-E@ A: AA A: A6 A6 A6  B7 A6 A6  6 (" (H  Aj AjA(  (! ( !  Aj6 Aj! (@  AtjA(;   jA(: @ A~qAG (Aj" (J@ Aj A  ( Aj! (!@ (@  AtjA; ( (AtjAjA; ( (AtjAjA; ( (AtjAjA; ( (AtjAjA; ( (AtjAjA ; (!   j"A(6 AjA/;  Aj6 @ (Aj" (J@ Aj A  ( Aj! (!@ (@  AtjA; ( (AtjAjA; ( (AtjAjA; ( (AtjAjA; ( (AtjAjA; ( (AtjAjA; ( (AtjAjA; ( (AtjAjA;   jB깛Ʈڷ7  (Aj6 @ A}qAG (" (N@ Aj AjA*  (!  Aj6 ( Aj! (@  AtjA*;   jA*: @ (A j" (J@ Aj A  ( Aj! (!@ (@  AtjA ; ( (AtjAjA; ( (AtjAjA; ( (AtjAjA; ( (AtjAjA; ( (AtjAjA; ( (AtjAjA; ( (AtjAjA; ( (AtjA jA; ( (AtjA"jA; ( (AtjA$jA(; (!   j"A)7 AjA(6  A j6 Ak!@@@ AH Aj )  AF Aj! Ak! @@ (" (N@ Aj AjA,  (!  Aj6 ( Aj! (@ AtjA,;   jA,: Aj )  Aj! Ak" @ (Aj" (J@ Aj A  ( Aj! (!@ (@  AtjA ; ( (AtjAjA); ( (AtjAjA ; ( (AtjAjA; ( (AtjAjA ; (!   j"A(6 AjA-:  Aj6 AJ@ Aj  Atj)  @ (Aj" (J@ Aj A  ( Aj! (!@ (@  AtjA ; ( (AtjAjA; ( (AtjAjA); (!   j"A/; AjA-:  Aj6 B! Aj" BpBQ  ) AA! @ B AuI " ("Ak6 AJ (  @ BpBQ BpB0Q@ !  A; A" BpBQ @ BoV  "E  (( AtAj/Atj)" B AuI " (Aj6 A!  AH !  B AuI  " ("Ak6 AJ  (   (("Aj ( (B! A j$ #Ak" $@@@@@@@@@@ (@"(" AH A!@ ( j" -" Ak  @ Ak /!@ (" A:k AF AG  AG  AAA!  -nAqE  A˱AA!  /! (! A!  A!  AjAM@ AùAA!  A_qAF@ AAA!  AAA!  (! A! Aj! A! A6 Aj 6@ @@@@@@@ Ak  @ Ak Aj! @ (" (N@ Aj!A! ( A Aj   (!  Aj6 ( Alj"A6 B7 Bp7 (@"Aj! ( (G@ A (6 A jA  (6  Aj(6 A AN@ (((8 Atj(" (Aj6 (@! 6 Aj A j"A (@! 6 Aj A (@! ; Aj A AH ( L ( Alj" ("Aj6 A~L  (@"Aj! ( (G@ A (6  A jA  (6  Aj(6A B !  A!  Av" Atj"  A~q"Atj"  k"  A jC  ( !@ AL E A k AsG@ A~q! ! !@  (" ("k" k6 Aj" (" Aj("k" I  Kr"k6  I  Kr! Aj! Aj!  Aj" G  AqE  At"j" (  j( jk6   At"j"  $   j( j!@ AM@ Aq!  A AK"Aq! A! AkAO@ Aq!A!@  j"  j" (6 Aj Aj(6 Aj Aj(6 A j A j(6 Aj!  Aj"G  @  At"j!  j!@  (6 Aj! Aj! Ak"  Aq! AI Aj! At jAk!@  At ("Avr6 Ak! Ak"AK Av! A!@@@@ AqE  F A!A k AsG@ A~q! ! !@   (" (j" j"6 Aj" Aj(" (j" I Krj" 6  I  Kr! Aj! Aj!  Aj"G  AqE  At"j"  j(" (j" j"6  I  Kr! @  F AI A! !@ (" j"6  O  Aj! Aj!  K" AK   AO   Atj     AL@A!  At!A! !@  (" j"(" k" k6 Aj" (" Aj("k"  I Kr"k6  K  Kr! Aj! Ak"  Aq  (" k6 I k"AN A!@@@ AL  ("Ak6  Aj! Ak! @  ("Ak6  Aj! "Ak! E  Aq!@ AF@A!  A~q!A! ! !@  5 5B ||"> Aj" 5 Aj5B B ||"> B ! Aj! Aj!  Aj" G ~  At"j" 5 j5B ||"> B   !A!A!@@  (" j"6  K!  M Aj! Aj!   j!  j!  6A! Aj$   ~}|#A k"$@@ BpZ@ " /AkAqA I  A6 Aւ B!  ( ( ( -@ AAB!  B! A(j(" AH A!@@@ E A!@|@ AF@A! Ak!A AH  )"B "AuO@ " (Aj6  AM@ !  AkAmK  B|  A6@ AH )"B AuO@ " (Aj6 Aj   ("AH@  j"A AJ!   "K !  Aj   + " a A!A  Df@A  cE  DAc@ !A  Ax!A   "Dc  DAc@   Ax !A ! ( ( ( -@ AG AA 5B B0R!  B7@@@A )"B " AkAnIA j  "7 !A! A  ~ B|"DCc@   B "7A!  a  !@@ /Ak A Aj AjAE    Aj! A! B!@ Aj" ("AF ~B AL  (@ B7A  AK  (" ( " AtjAk("A kv A M  AO~ At jAk5B B A k !A! 7 A ! D!A !@@@@@@@@@@@@@@@@ /Ak   E  )"B|BT   E  )"BV  ($! AG  F Aq!@ j- F@ !    j"G E )"B|BT  E )"BV  F At! ($ Atj! Aq!@  /F@ !  j!   j"G  E )"B|BT  E  )"BV   F  ! At! ($ Atj!@  (F@ !  j!   j"G  E   b@ AG  F  At! ($ Atj!@ *" \@ !  j!   j"G   "b   F  At! ($ Atj!@  *[@ !  j!   j"G  E  ($!  b@ AG   F  At! Atj!@ +" b@ !  j!   j"G   F  At! Atj!@  +a@ !  j!   j"G  E  ((" -(AqAvA E  E  )"BpS  BS   E ((" -(AqAvA E  E  )"BS  BU   F  )! At! ($ Atj!@  )Q@ !  j!   j"G A!  j Aq k"E  k! AG  ANB!  ! A j$  @@@@@@ AM@ (A At"Ar"At ( ! (A AtAj ( "E  E  @ A A AKAt AtjA6    $  Aj"Aq!A! AO@ A|q! A!@  j"  j"(6 Aj Aj(6 Aj Aj(6 A j A j(6 Aj! Aj"G  @  At"j!  j!@  (6 Aj! Aj! Ak"  AJ@ ! !@ (  Aj! Ak"  AK   ("Ak6 E    Aj! Ak!@  ("Ak6   Aj! "Ak!   (A  Ak"Av" k" j"Aj"At ( ! (A A lAj ( ! E  E   At"j"  j E     Aj"   Atj"(@ A~q! Aq! As j!  Atj"Aj! At jAj! AH!@@  ("Ak6  F  ! !@  ("Ak6   Aj! "Ak!  @ AL@A!  A!@ E@A!  ! !A!@  (" ("k" k6 Aj" (" Aj("k"  I  Kr"k6  I  Kr! Aj! Aj!  Aj"G E  At"j" ("  j("k" k6  K  Kr! @   (" k6  F  O ! !@  ("Ak6   Aj! "Ak!  (  A!  AM AtAr k"Aq!  E@A!A  A~q! !A!A!@ A ("k" k6 Aj"A ("k" AG  Kr"k6 AG  Kr! Aj!  Aj"G A k ! @  Atj"  (k6 (AjA 6  Atj  k   A AK"Aq!A! AkAO@ At A lkj!A!A Aqk! !@  (6 Aj Aj(6 Aj Aj(6 A j A j(6 Aj! Aj!  Ak"G A k! @  Atj AlkAtj!  Atj!@  (6 Aj! Aj! Ak"   F Atj!A!A!A k AsG@A!A A~qk! ! !@  (" (j" j"6 Aj" Aj(" (j"  I  Krj"6  I  Ir! Aj! Aj! Ak"G A k! AqE At"j"  j( (j j6 A! ( A (   E  ( A (  A! E  ( A (    ~ )! )! )!#Ak"$ B070 B07( B07 ("(,!  Aj6@@@ A/K@ (8(" (Aj6 AjB7 B7P  6H  B78 AjA ("  ("-E@ A: AA A: A6\ A6T A6L  AAAA˧ B7 A6 A6  6L ($" (Aj6  A"7 B!B0! @@ BpBQ @ BpT @@@ "/"A F A0G@ ((D Alj(  A0F  AF!  ( -E   7  "AH  E ($" (Aj6  A" 7( BpBQ  A0 A"BpBQ@ B7  B "AuO@ " (Aj6 @ Aj " B! )" BY@B! BT   7 @ AuI " ("Ak6 AJ (  B!   )BW B! @   "7 Bp"BQ @@@ BpZ@ /AqAG   "7 BpBR   B "A A jAIE@  "7 BpBR   BR  A Aj"BBQ@     B|!   B|" )S B "AuO@ " (Aj6 BpZ@@@@ "/Ak A!  A!@ AuI  ("Ak6 AJ (  ! BpBQ  B ! @ A A jAIE@ Aj E@A!@ ("AN@A ! A I  !  A {"70   @ BpBQ@ "A (Aq"A A I!  )8"B AuI " (Aj6  70 AuI " ("Ak6 AJ (  BpBQ @@ ("( (()"A BoV"AylAk"A (kvAtj("@@@ ( G (, G ( E  (("  A" B!   (Aj6 A" BpBQ @ B AuO@ " (Aj6 A/ AAH   (Aj6  A/ AAH  B0! Aj )8""Bp"B0Q B! BQ@ !  Aj  @ (@!  (@"(("Aj ( ( A6 @ B AuI " ("Ak6 AJ (  @ )8"B AuI " ("Ak6 AJ (  @ )0"B AuI " ("Ak6 AJ (  @ )("B AuI " ("Ak6 AJ (  @ ) "B AuI " ("Ak6 AJ (  Aj$   ~#A0k"$  7 A6  6  )"7@@@ BpZ@ " /"AkAqA I  A6 Aւ B!  ( ( ( -@ AAB!  B! A(j("AH @ Bp"B0Q BpZ@ "/"A F  A0F@ ( -  ((D Alj(  AA  @ AI Ak"AqA O   At"Aj(6 A /Aj-" t! ($! B0R@@ ("Aj At (" @ Aq!A! AO@ Aj! Axq! @ A j Aj6 Aj Aj6 Aj Aj6  Aj6 Ak Aj6 Ak Aj6 A k Aj6 Ak 6 A j! Aj" G  @ Atj!@  6 Aj! Aj! Ak"   6(  6$ AA Ajb@ ( ("Aj  t" ("  ("- A: AA A: ("Aj (  ("-  A: AA A:    !@@@@@ Ak A AK"Aq!A! AkAO@ Aj! A|q! !@   Ak(Atj)7 Aj  Ak(Atj)7 Aj  (Atj)7 Aj  Aj(Atj)7 A j! Aj! Aj"G  E  Atj!  Atj!@   (Atj)7 Aj! Aj! Ak"  A AK"Aq!A! AkAO@ A|q! A!@  j"   j" (Atj(6 Aj  Aj(Atj(6 Aj  Aj(Atj(6 A j  A j(Atj(6 Aj! Aj"G  E  At"j!  j!@   (Atj(6 Aj! Aj! Ak"  A AK"Aq!A! AkAO@ Aj! A|q! !@   Ak(Atj/; Aj  Ak(Atj/; Aj  (Atj/; Aj  Aj(Atj/; Aj! Aj! Aj"G  E  Atj!  Atj!@   (Atj/; Aj! Aj! Ak"  A AK"Aq!A! AkAO@ A|q! !@  j"  (j-: Aj  Aj(j-: Aj  Aj(j-: Aj  A j(j-: Aj! Aj"G  E  j! Atj!@   (j-: Aj! Aj! Ak" ("Aj  ( ("Aj (     Aj( Ajb (  B AuO@ (Aj6 ! A0j$   ~@@@@ AL@  )" B>F@ BV@ ( !  (8" (4 B ($AkqAtj("Atj(" F @ @   ( "Atj("G   AAAA "Aq!@ BPE@ ! E  Aq! AO@ Aj!  k!@ / Ak/ Ak/ Ak/ AljAljAljAlj! Aj!  Aj"G  E  At jAj!@ / Alj! Aj! Ak"  ! E Aq!@ AI@A!   k!A!@  j"Aj- AljAl Aj-jAl Aj-jAl Aj-j!  Aj"G E  jAj!@ - Alj! Aj! Ak"  (4 Aq" ($Akq" Atj("E  (8!@@  Atj(")" B Aq G B> G Aq G    AH   (Aj6  ( "   AG!A !@ (< A! Aj" (8 (,AlAm"A AJ"At ( "E @ (,"E@ A ("E@  (  B@7 A6  6A! A6 6, A6< 68 ((Aj6(  6< 68 6,  O  Aj! Ak!  kAq@ (8 AtjA AtAr  F6 !  F At! As j! AtAj!@ (8 j AkA 6 (8 jAjA  Aj F6 Ak! Aj! Aj! Aj" G @ @ )" B?X@  B>7  Aj" "Au Aq AvtjAj ("E@A!  A6  )Bw )B" 7  Bx )B7 Aj Aj ("Aq Avt AsAvj  ("Ak6 AJ@ !  )BZ@  !    ( !  AjA ("E@A B7 (8 (<"Atj"(!  6 Av6<  5 B B>7  6 ((Aj6( AF   (4 Atj"(6  6 (( (0H A!@ ($At"Ak qE@ Aj" At" ("@ A ! (4! ($"@ AjAq! @  Atj("@ (8! @ Atj("( !   Aj(qAtj"(6  6 " ($! Aj" I   ( At60 6$ 64  AAAA  E   ("Ak6 AJ  )BZ@   Aj  (  AJ  (Ak6    #Ak"$@@@@@ (E@ Aj ( Aj(A (| (x"! A Aj( ! Aq  E   A ! A! Aq  E  -A/G  (!A!  Aj(" -A/FA :V A:@  6<  68 A;T Aj! Aj!A! A!A! ! !@ AqAG@ Aj A/j(6 Aj A(j)7  ) 7x  )x7 Aj" Aj)7 Aj" Aj(6  :`  6\  6X  :v  :u  :t Aj Aj A8j -!@ -x" A F@ A F   A F AkAq"AjA AI"A AkAq"Aj AKG @@@@  AI   G @@@@@ Ak (" (G (| (   (" (G  (| (   (" (G  ( (    (" (G  (| (    (" (G  (| (   (" (G  ( (    -y -G   (" (G  (| (    -y -G  A(j )7 A/j (6  )7 (X! (\! -`! -t! -u! -v!  Aj A/j(6 Aj A(j)7  ) 7 AqAF AqAG@ Aj Aj(6 Aj Aj)7  )7X Aj )X7 Aj Aj)7 Aj Aj(6  :  6|  6x  :  :  :@ AqAG E@A!  @@ AqAO@@A!@A  j-A/F   Aj"G !A !@@  -A.G   j" M@  j!  k"    A @A!@A  j-A/F   Aj"G !A !    j!  k" A!  6|  6x @@@@ AG Aj O Ak! AqAK! @ Aj" K   j  j"k!  j!@A "E  Ak! -! Ak! A/G  j" K   j!A !@@  k" -A.G  E    j"k!  I   6| Aj "I E  Aj   (x  (|!  Aj(6<  68 AjB7 AjA 6 A6| A6x A*6\ A6X Aj(!  Aj6  A8j6` (  Aj!   A̫  A  Aܫ  AA!   6\  6X Aj Aj (x"@ Aj(! (!@ (|! (E@  !  A!    (   A (  Aj Aj (x"  A! Aj$  #Ak"$AA("Aj6@@@@@ AN@A- AA:AA(Aj6A("AN  AjB7 A6\ A6X  Aj"6` A@k Aj   :Q  :P  6L  6H A6D A6@ AjB7 A6\ A6X A16<  A8j6`  A@k68 A:p  Aj6x AjA Aj! -p! @ AF  (t! -p"AM AGq   (t! AG AMq  (" Aj("( (@ ] ] AjB7 A6\ A6X A6` A:@  Aj6H A@kA Aj! -@! @ AF  (D! -@"AM AGq   (D! AG AMq (" Aj("( (@ ] ] A Aj6 A j ( ($! ( !A!@  A!A(AK@A!  @@@@A؅( AA(A A!  A!  AjAƜAA؅ (X"@ (\!@@@ (`Ak -A0FAt!  AAE! @ ] Aj  A!A 6  6,A ! Aj A j"( )B̓A Aj)BDžЅ}PE@  (A )Bb Aj)B^PE  Aj  Aj (! ( !  64  60@@@A("E@!A( A 6 ("Aj6 AH   Aj("E@A!A  Aj(Ak 6<  68 AjB7 AjA 6 AjA26 A6D A6@ A 6\  Aj6H  A0j6h  A,j6`  A8j6X A:p  Aj6x AjA A@k! -p!@ @ AF  (t! -p"AM AGq  (" Aj("( (@ ] ]  (t! AG AMq (" Aj("( (@ ] ] @@@@ Ak Aj AjA (\! -X"AM AGq  (" Aj("( (@ ] ]  Aj AjA (\! -X"AM AGq  (" Aj("( (@ ] ]  AЂ-!AЂA: E AjB7 A6\ A6X A6` A:@  Aj6H A@kA Aj! -@! @ AF  (D! -@"AM AGq  (" Aj("( (@ ] ]  (D! AG AMq (" Aj("( (@ ] ] ("Ak6 AF@  AA(Ak6AA: E  AjB7 A6\ A6X A6` AjA AjB7 A6\ A6X A6` A@k Aj Aj -@ (D (" Aj("( (@ ] ] ~#A0k"$@ Aj(" Aj"F Aj"! @@@@@@@@@@@@@ (" (E  A6 (   @@@ (  B0A"A B AuI  " ("Ak6 AJ  (   A6  )7 )P  A jA" BpBQ  5Bp7(@@@ AAAA A(j"BpBQ  7 AAAA A(j" BpBR  B AuI " ("Ak6 AJ (  B AuI  " ("Ak6 AH    7 B07 B07  Aj@ B AuI " ("Ak6 AJ (  @ B AuI " ("Ak6 AJ (  B AuI  " ("Ak6 AJ  (   )A )"B AuO@ " (Aj6 (!@ AG AG @ (")" B AuI " ("Ak6 AJ    7A  (D" 7 Ak 7  Aj6D A ! A6  6 )B0 ( ((A "Bp" BQ@ (")! B 7 (AG@ A6    A B AuI  " ("Ak6 AJ  (   BX@ (DAk")! B07@ "AkAO@    7 )P  A jA"BpBQ  5Bp7( AAAA A(j" BpBR    6 B AuI"E@ " (Aj6  A"A@ B AuI " ("Ak6 AJ (    " ("Ak6 AJ  (    7 AAAA A(j" BpBQ   7 B07 B07  Aj @ B AtM " ("Ak6 AJ (  @ B AuI " ("Ak6 AJ (  B AuI  " ("Ak6 ! AJ   B0R  (DAk")! B07 (AG@ A6 (  B AuI"E@ " (Aj6  A" A@ B AuI " ("Ak6 AJ (   " ("Ak6 AJ (  (L" G   AAAϖA B AuI " ("Ak6 AJ (  B AuI  " ("Ak6 AN  (  B AuI " ("Ak6 AJ (  A0j$  ~|#Ak"$AA ! Ak" )! Ak" )! @@@@@@A B " AkAnI!@@@@@@@@@@@A B "" AkAnI"A j"AK A tAqE A j"AK A tAq   F A! AF AFq AF AFq AyF" @ AyG@ AG  B! A! A j"AM A!  AF A j"AK A tAq  A G  B! A!A!  A F A!A tAqE   rE@ F!  @@@@ AF@  AG    !  B|! AG   B|a!   a! AuG AuGqE@ A (Aj()"AH   (! AwG AwGqE@ A Aj()"AH   A Aj()"AN  @ AG Aj AA"E @ AuI " ("Ak6 AJ (  @ AuI " ("Ak6 AJ (  A! AH  )7  A! Ay! A j"AK  A F A tAq  AG  !Ax AG  B!  AG  A jAI @  !A!  !  @@ AvG AvGq (("@ -(Aq  @ @ " BpB~R  AyG  " BpB~Q  @ B AuI " ("Ak6 AJ (  A! B AuI  " ("Ak6 AJ  (   A" BpBQ@ AuI " ("Ak6  A" BpBR B AuI  " ("Ak6 !  A!  AG  A jAI  Aj AA"@@ AuI " ("Ak6 AJ (  @ AuI " ("Ak6 AJ (  A! AH  )7  A" BpBQ@ AuI  " ("Ak6  A" BpBR B AuI  " ("Ak6 !  A~q !@ BpT ,AN A AF  A! BpZ ,AHA A~qAFq !@ AuI " ("Ak6 AJ (  AuI " ("Ak6 AJ (   GB7A!  AN (  B07 B07A! Aj$  #A0k"$@@@@@ F F  F   F  F @ ( "@ ( "  ( @ ("( (A ( ! A6 6 B7@ ("AG@ ("AG  ( @ ("( (A ( ! A6  6 B7A  AG AxGqE@ ( @ ("( (A ( ! A6  6 B7A  @@@ ( " ( F@ (!  A  ("( ( At ( "   6  6 (! ( !  6  (6  ( At ( " A  ( @ ("( (A ( ! A6  6 B7A  AA Aj  (" (s!@@@@@ Ak !  As!  A!  !  6$ A6  6 A6  (" 6  ("6(  ("6  (" 6@ G@ H   Ak! Ak!   JAk! At jAk! At jAk! @ AH A! A!  I@ (! K@ (!  Ak! Ak! Ak! Ak! Ak! F M  B7 ( @ ("( (A ( ! A6 6 Aj F @  ( F@ (!A  ("( ( At ( "E   6  6 ((! ( ! ($! ( !  6  6   At  ( @ ("( (A ( ! A6  6 B7  AAA A AAA A AAA A Aj  k"A AJAjA ( "@ AA Aj  AAl  Aj AA @@@@ (" AF ("AF ( "E@  ( (s6 6A  @@@   ("Ak"6@@  G@  N    ( "  J! AtAk! ( AtjAk!A!@  jAH A! A!  j I@ ( j(!   j I@ (!  Ak! Ak! Ak! F K   6   6 AF  ( "At k"AH   Au"M  ( Atj( vAqE     ( (s6 6  B   AArA q ( !  ( @ ("( (A ( ! A6 6 B7 ( @ ("( (A ( ! A6  6 B7A   6  ( (s6 6  A  AA Aj ! A0j$  ~#Ak"$ (! Aj"B7  6 AjB7 A6@ @  6` AjA Aj AG@  6P AjA Aj AjA  A1  {"B0B0A.@ B AuI " ("Ak6 AJ (  A2 B0B0A. Aq  (("E @ ! A!@ Aq @@@ )"BpT "(" (AsAtA~rj("E A0j!@@  AkAt"j" (! (A6F Aq"   AK ( j)"BpBR A A"  A60 AjA A0j   A -6@ AjA A@k Ak" ("Ak6 AJ ( B @@@ ("/"A k A4k ( " /"Aq@A!@ Aj("E ( (Asj!  Aj(j! A! Aj("!@ !  O  Aj!@@ -"E@  O@ !  Aj! ," Aq! AH    Ak" AqAn" AlkAqjAk!    O@ !  Aj! ," AqAt r! AN  O@ !  Aj! ," AqAt r! AN  O@ !  Aj! ," AqAt r! AN  O@ !  ," AH@ !  Aj! At r!  k"AH@ !   j" M@ !  Aj! ,"Aq!@ AN  O@ !  Aj! ,"AqAt r! AN@ !   O@ !  Aj! ,"AqAt r! AN  O@ !  Aj! ,"AqAt r! AN@ !   O@ !  ,"AH@ !  Aj! At r!  k"AH@ !  A Aqk Avs j!  j ! j" M @ (@A"BpBQ@ A6 AjA Aj  A A!@ B AuI " ("Ak6 AJ (   A 6 AjA A j E Ak" ("Ak6 AJ ( B AG@  6 AjA  AjA) AjA  ! Aq   Aj"AA A  ! (" AjAB ! (tE@ (h" {! Aj A5 B0B0A.@ B AuI " ("Ak6 AJ (  Aj$ ~#A k"$ )!A!@@ AH@B0! B0!  B0! )" BpB0Q @ BpZ@ "/"A F  A0F@ ( -  ((D Alj(  AAB!  A! AI )! @@~@@@@ A A"Bp" B0R@ BQ @ B AuI " ("Ak6 AJ (  B0! ~@ BpT -AqE  AAA  ($" (Aj6 A " BpBQ@B0! B0!  @ B AuO@ " (Aj6 A"BpBQ   ("Ak6 AJ  (   A"BpBR  B0! !  B! B0! " BpBQ@B0!  A0 A"BpBQ@ B7B0!  B "AuO@ " (Aj6 @ Aj " B! )"BY@B! BT   7 @ AuI " ("Ak6 AJ (  AH@B! B0!  ~ )"B|BX@ B  B~ "B} BBV "7~@ BpT -AqE  A AjA  B0A Aj ! @ B AuI " ("Ak6 AJ (  BpBQ@B0!  )BW@B0!B!  B!@ "BpBQ@B0!  @ @ !   B7  7 B0A AjA !@ B AuI " ("Ak6 AJ (  BpBR B0!  "BZ~B~ "B} BBV  AAH@B0!  B|" )S B0!  A A" BpBQ@B0!  @  Aj"BpBQ B!@ ( @ @ !   B7  7 B0A AjA !@ B AuI " ("Ak6 AJ (  BpBQ  "BZ~B~ "B} BBV  AAH  B|!  Aj"BpBR BpB0Q  A  "AH  B  B~ "B} BBV ! A0  AAAN  @ B AuI " ("Ak6 AJ (  B! @ B AuI " ("Ak6 AJ (  @ B AuI " ("Ak6 AJ (  B AuI " ("Ak6 AJ (  A j$ ~#A0k"$ B07(@@@@ Aq"@ B AuO@ " (Aj6 @@@ BpZ@ "/AkAqA I  A6 Aւ   ( ( ( -E  AA B7   A(j4" 7 BY   "A0 A" BpBQ@ B7  B "AuO@ " (Aj6 @ Aj " )" BY@B! BT   7 @ AuI " ("Ak6 AJ (    )!B0! AN@ )! @ BpZ@ "/"A F  A0F@ ( -  ((D Alj(  AA  B0! @@@@@@@@   B!  B!  ~ )" B|BX@ B  B~ " B} BBV " BpBR    7  57 A Aj" BpBR   ($" (Aj6 A" BpBQ   B" BpBQ  @ )BU@B! @@@ @   " 7( BpBR    A(j"AH  E  ! BT"E@B~ " B} BBV!  BpBQ   7  )(" 7  7  B0A AjA ! @ B AuI " ("Ak6 AJ (  BpBQ @@@@@@@    B! E B!  ~ B~ " B} BBV AAN   B AAN   E  B AuO@ " (Aj6 B|BX~ BB~ " B} BBV AAH  B|!  B AuI " ("Ak6 AJ (  @ B AuI " ("Ak6 AJ (  B07( B|" )S  A G@ !   7  B7 A Aj" BpBQ   7 ~ Aj! A A" BpBQ@  B0A A ! @ B AuI " ("Ak6 AJ (     @ )(" B AuI " ("Ak6 AJ (  B AuI  " ("Ak6 AH   B AuI " ("Ak6 AJ (  @ )(" B AuI " ("Ak6 AJ (  B! B AuI  " ("Ak6 AJ  (  A0j$  ~#A0k"$@@@@@@@@@ ("(AG@ -! A:  :, E  B7 A6 A6 A6 A,j Aj (Aj"E   6  A6 A6 (  A6 Aj   (  Aj("E@A!   ( " jAk-A G A!@   k"6   j"6@@@A AjA A,j" E@ (,!  ! Aq"AF A: AF A! Aq  A: A! A ! @    6 A; 6 : AjA:   j!  I  AA&A AЦ ( !@@@@@ Aj("@ ( ! A!@   k"6   j"6@@@A AjA A,j" E@ (,!  ! Aq" AF A: AF A! Aq  A:  A! A ! @    6 A; 6 : AjA:  j!  I  K  A6 Aj" K   6  6@A AjA A,j"E@ (,!  ! Aq"AG  E@ A: A6   I@  k" Aj("K@   k"K    j"  (E@ !  (Aj" M   A  j!   M@  j!  k!   A  A  A A; A: AjA: 6   A (" ( j  Aj( k"   I"  j6   j6 A:   K A! A6  Aj( kO@ !A!#Ak" $@@@ A j"(" (" k O E@A!  (! @ k"6  j"6@@@A AjA A j" E@ ( !  ! Aq" AF A: AF  Aq! A  A: A! A ! @    6 A;  6  : AjA:  j!  I  K A! A6  I@ ( j    6   j6 A:  6 6~@A AjA A j"E@ ( !B!  B Aq"AF  !  ! A:  B 7 Aj$   A ( j   6   j6 A:  (Aj6  (Ak"6 E@ A: A6 A0j$  A #Ak"$@@@@@@@@@@@@@@@@ A "AH   "BpBQ   "Bp"B0R@ BQ  Aj   Aj! )!  Aj     Aj E  ( ! (!  E -Aq@ Aj  )!  ( j" (J@ Aj A  (E  AL@ (!  A! (! ( ! E@  AtjAj!@   j"Aj-; Aj Aj-; Aj Aj-; Aj Aj-; Aj!  Aj"G  E   j!   jAtjAj! !@  -; Aj! Aj! Ak"  )!  (" ( jAj    j6 )! ("Aj  ( B  Aj"     ! A0j$  ~#A0k"$@@@ " A0 A"BpBQ@ B7 B0!  B "AuO@ " (Aj6 @ A j " ) " BY@B! BT   7 @ AuI " ("Ak6 AJ (  B0!  ) ! )" B AuO@ " (Aj6 Aj  @@ )" BS@   |" 7B! BS  " Y   7 ! @@@ @@@@  B!  ) }!  ) ! )"B AuO@ " (Aj6 Aj   Ak!B!@ )" BS }"U !   7   ) "7 )" BpB0R~ Aj    )! )  }"B BU!A!   7A! ) | }BS AA  B|BX~ BB~ " B} BBV "! @ B AuI " ("Ak6 AJ (  @ BpBQ  )" |" 7B!@ BpT@ !  "/AG@ !  -AqE@ !  BpT@ !  "/AG@ !  -AqE@ !  BW@ !  A(j5" W@ !  ($ Atj!@ )"B AuO@ " (Aj6 ! BZ~B~ " B} BBV AAH  B|" |" )" Y  Aj!  S  S@@  A(j"AH  @ )(! " BZ~B~ " B} BBV AAH  B|! B|" )S  A0 BZ~B~ "B} BBV  AAAH E  ) " "| )"}! @  Q )" |  |" }AA  UAH  ) !@  W  B}"AN  @ Aj!B!@  )|! )" B AuO@ " (Aj6 AH  Aj!  B|"R  A0 B|BX~ BB~ "B} BBV AAAN  ! @ B AuI " ("Ak6 AJ (  B! B AuI  " ("Ak6 AJ  (    A0j$ #Ak"$ (! (! A6@ -E (! @@@ E@ Aj!  6 B7 AtAȈj!@A("A t"qE@  6A  r6  6  6  6  AA Avk AFt! (!@@ "(Axq F  Av! At!  AqjAj"("  6  6  6  6  (" 6  6 A6  6  6 AA(Ak"A 6 ~#A@j" $@ BpT "/A0G ( ! @ -@ AAA!  A! )"A A"Bp" BQ B0  B Q" BpB0Q@ )     .!  A"BpBQ@ B AuI  " ("Ak6 AJ  (   @@@@ ("( (()"A BoV" AylAk" A (kvAtj("@@@ ( G (, G ( E  (("  A"E    (Aj6 A"BpBQ @ AqE B AtM@ A B0B0A.  " (Aj6 A B0B0A.  ("Ak6 AJ (  @ A qE B AtM@ A B0B0A.  " (Aj6 A B0B0A.  ("Ak6 AJ (  @ AqE B AtM@ A B0B0A.  " (Aj6 A B0B0A.  ("Ak6 AJ (  Aq@ A> AvAqBB0B0A. Aq@ A? AvAqBB0B0A. Aq@ A= AqBB0B0A. )! 70 7( 7 )B0A A jA !@ B AuI " ("Ak6 AJ (  @ B AuI " ("Ak6 AJ (  @ B AuI " ("Ak6 AJ (  BpBQ   A! AqE  AAA!  @ B AuI " ("Ak6 AJ (  B AuI  " ("Ak6 AJ  (   (" "AH Aq!@@ E@ AF A! -AqE   @ (" E Aq AFq @ A0q@ AqAG  Aq@  )E  A qE   )   AqE AqE Aq"AFq    )E  AqE  (AqAG   AAA!  A! A@k$  #A k" $ (! B7 B7 6 Aj"  A j"A    Al@ (AF@ ( @ ("( (A ( ! A6 6 B7  A!#Ak"$@ Aj" G@ (! B7, B7$  6 @ (AH@AA (!  A j"A A Aj   A A (("AN@A! AG  ($Aj!  AL AM@A (0 (,AtjAk(A kv"k  ($!  AxA ($! A! Aj"AO@ Av" g"Aqt"Aq AvAq AvAqAj/"At" AsA Av  lk" K"  jAtr"  j"At" n" lk  lkAtjAu j Atj Avv! A j"  ("A AJj Ak n" Aj" jAtjAj"A ( Aj    A    A (,"@  ((A k"A| A|J"A AHj6( A jAA Aj A6 B7 B7  6@@@ ( AF@ (!  ("( (A ( "E  A6 6 Ax6 A6  ( @ ("( (A ( ! A6 6 B7 AM@@ ! A6 @@@ (AF@ (!  ("( (A ( "E  A6  6   g"t6 A k6  (@ ("( (A ( ! A6  6 B7 Aj" A j  A  Al B7D A6<  ("68  (AA ( "@ A6D Ax6  6HA  A6j! 6 B7 AtAȈj!A("A t"qE@  6A  r6 6 6 6  AA Avk AFt! (!@@ "(Axq F  Av! At!  AqjAj"("  6 6 6 6 (" 6  6 A6 6 6  ~#Ak"$A )T"B(B8   BxB7T (AJ@A!@A ( j(fAH  Aj! Aj" (H  @@ ( "AJ@@@ (" Alj"(AG ( "AF ( (Atj(! A6h B7` Aj Aj   Aj! (h"AJ@A!A!@@ (` j("AH (" (8 Atj(" (" Ak6 AJ  (h! Aj! Aj" H  ("Aj (` (  ( ! Aj" H  A (P  (H($! (8AJ@A!@ ( (4 A lj" (Atj(!@ ("AF@ "BpBQ   (Atj(")!  7 B AuI  " ("Ak6 AJ  (   A6h B7` Aj Aj   Aj! (h"AJ@A!A!@@ (` j(" AH (" (8 Atj(" (" Ak6 AJ  (h! Aj! Aj" H  ("Aj (` ( @ Aj(!A!@@@ Aj A!  A! ( Aj !  ( A j (6  6    @ ("( AF@ (( (Atj("BpBQ  ("AjA ("E@ ("-E@ A: AA A:   B7 A6  -Ar: (! A: (P" Aj"6  6  Aj"6 A j Aj6  6P    ("E@ ((H($ (Atj(!  (Aj6  (Atj 6 Aj" (8H ( ! AJ@A!A!@ ( j"Aj(E@  Ak(Atj(" (Aj6  6 ( ! Aj! Aj" H  A )HBB0AAA "BpBQ  A   Alj(!A!@@@ Aj A!  A! ( Aj !  ( A j (6  6  Aj A ! Aj$  #Ak"$@@@@ F F (AJ@ (! (AJ@ (! @ E B7 B7  ("6 B7D  68 A6<  (AA ( "@ A6D Ax6  6HA  A6   B~}>    "">    ~}>  B7$ B7 B7 B7  (" 6  6  At Aj"vAjAv"k! At" ArAlj! A! A(lj" ( E@A!  AA! A6@ (AA ( " @ A6 Ax6  6 A6  B7A !  Aj lAjA  rr!  Aj   lAl r! ($" @ AjAA Aj! @@  Aj AAl  rr   AArA q A! @ (E ( E @   AA  Ak! (E  ( A j! Alj"Aj! Aj!@@@ (" ("G@  N   ( " Ak! ("Ak! ( AtjAk! AtAk!  JAk!@ AH A! A!  I@ (!   I@ ( j(!  Ak! Ak! Ak! Ak! Ak! F K    AA  Aj!  @ Aj"     Atj Aj     k       kE  @ ("E (("E ( A (  @ ("E ("E ( A (  A  @ ("E (("E ( A (  ("E ("E ( A (  A ! A0j$  ~#A k"$   ( ( I"" (   " (s!@@ ( "E@@ ("AG@ ("AG  ( @ ("( (A ( ! A6 6 B7A!  AG AGqE@@ AF@ AxF   AxG  AG  ( @ ("( (A ( ! A6 6 B7A!  ( @ ("( (A ( ! A6 6 6 Ax6A!  ( "! ! AqAF@  A!jAv"  H!    H! ( Atj Atk! ( Atj Atk!@@@@ AO@ (    F"Ar  F"   @ F F ! (  B7 B7  (6 Aj! ! A  j"F@ (!  ("( ( At ( ! E    ! ( @ ("( (A ( ! A6 6 B7A   6  6  Atj  Aq! 5!@ AF@A!  A~q! A! ! !@ 5 ~ |"> Aj Aj5 ~ B |"> B ! Aj! Aj! Aj"G ~  At"j j5 ~ |"> B   A 6 AO@ Aj! Aq!A A~qk!A! @A!   jAtj   At"j5!B! AFAA! ! !@ Ak" 5 5 ~ ||"> 5 Aj5 ~ B ||"> B ! Aj! Aj!  Ak"G A k ! ~ At"  jj" 5 j5 ~ ||"> B   A 6 Aj! Aj" G  ! 6 ( (j6   ! AjF  AjG  ("@ ("( A (  )7 Aj Aj(6 Aj Aj)7  ( @ ("( (A ( ! A6 6 6 A6A! A j$   ~#Ak"$A(!AB7@ @A)! A܄A6AԄ(!AԄA6 E  A؄("6#A@j"$ A j"B7 A0j"B7 A(jB7 A8jB7  /Aj;  B " ( j6 A6 A6 B7  6  6   j6@ AL@ AAB!  -"AG@ A6  6 A B!  @@ AM ,"Aq! Aj AN  AH  ,"AqAt r! Aj AN  AH  ,"AqAt r! Aj AN  AH  ,"AqAt r! Aj AN  AH  ,"AH  At r! Aj !  6$  Aj"k"AN  AAB!    j6 @ ("Aj At" ("E@ ("-E@ A: AA A: A6(B!  A!  A 6(A!@B! Aj"E  ( "E  (( j 6@ (0"AqE  ( j F  Axq60 Aj! Aj" ($I  Aj! @ (("E@ (!  (! ($"@ !@@ ("AH ("(8 Atj(" (" Ak6 AJ   Aj! Ak"  ("Aj  ( ("Aj (4 ( A@k$ A0j Aj  (0!@@ (8"E ("  54B )AABpBQ@ ((")! B 7 A0j  (0"@ Aj A@k)7 )87 (46 6 A!   ("E  (Aj6  Bp"  %!  AH@B!  E -Aq@ ) ) AA!  )!  ((," B0! E B! A j$ ~#A0k"$B!@ A jB0" BpBQ A j@@@@ BpT "/A7G ( "  AӄA  @@@ E@ )"B "AuI  " (Aj6  )"AA AF A"Bp"B Q  B0Q  BQ  B !  )  AJ  Aj"7@ AuI " ("Ak6 AJ (  Bp"BQ  (AF@ Aj!@ A A"BpBR@ ! A A"BpBR  A!B!  6  7  Bp"BQ  BR   )"B ! AF@ AuO@ " (Aj6  A7A  AuO@ " (Aj6  )P  AjA"BpBQ@ )  (!#Ak"$  AGB7 AAAA Aj! Aj$  " 7B! BpBR@ ) B07   A j!   )  )( @   !   ) )  )(   (")! B 7  7A Atr)B0B0A A !@ )"B AuI " ("Ak6 AJ (  @ B AuI " ("Ak6 AJ (  @ ) "B AuI " ("Ak6 AJ (  )("B AuI@ !  " ("Ak6 AJ@ !  (  ! A0j$   ~@@@@@ BpBR@ A"BpBQ  !  " (Aj6 Aj! )" " Aq!@@@ BP@@ @ Aq!@ AI@   k!@   j"Aj-Avj Aj-Avj Aj-Avj Aj-Avj!  Aj"G @  jAj!@  -Avj! Aj! Ak"    !    ("Aj  j"Aj (" E@  A! A6 A6 Aq7 Aj! E@ !  Aq! AG@  k!@  j" Aj,"AN Aj  A?qAr: AqAvA@r! Aj !  : Aj,"AH@  A?qAr: AqAvA@r! Aj  Aj !  :  Aj"G    !  ("Aj Al"Aj (" E@  A6 A6 7 Aj! E @ Aj! Atj/"AM@  : Aj  @ AqAG   N Atj/" AqAG A tA?q AqrAj! Aj!   j ! " H    j,"AH@  A?qAr: AqAvA@r! Aj  Aj !  : A:  Aj" kAq )Bx7@ B AuI ("Ak6 AJ (  E  (Aq!  ("- Aj! A: AA A: A!A! A! E   6 !  ~|#A@j"$@||@@@@A  Bp" B0Q" @@ )" BpT "/A G ) " B "A j! A AI AM  B| AO     +  B AuO@ " (Aj6  A" 78@ BpBQ@  A8j(! " ("Ak6 AL@ (  BpBQ  B "AM@  9 +  AkAmK   B|7 +  B "AM@  9 +  AkAmM@  B|7 +       E  B!  A0jB7 A(jB7 A jB7 AjB7 AjB?7 B7 B7 A AH!@@ AL A AJ!A!@@@  j)" B "AuO@ " (Aj6  AM@  " 98  AkAmK  B|" 78 !  A8j   +8! " Dd DcrE   j 9@  +" DfE DY@cE  D@9 Aj!  Aj"G ! D  G  A  B!   )B~ )B|  + " DD D>CeD D>f ! A " BpBQ@ !  ~ " DAc@  Ax "Q@   B~ B} BBV  B0R@ !   A! B AuI " ("Ak6 AJ (  A@k$  ~#A k"$ (!@@@@@@@@@@ ("AL@ Aj AF  AG@ AG B!  ("( (()"A BoV"AylAk"A (kvAtj("@@@ ( G (, G ( E (("   A"E  B!  ($" (Aj6  A"BpBQ @ (AF "BpBQ A!@   AN~ B~ " B} BBV AAH (A,G   (L@ (AF  Aj! "BpBR  A  A j)"B AuO@ " (Aj6    A j)!    A j(Ak"AK  AtAj)!    AA  (8!  Aj("6   k6 A    (Aj6  A"BpBQ @@ ("AF @@ AF@  ) "   (LE  AG  ( "AH ((8 Atj(" (Aj6 @@  (A:G@ A:6 A Aj     "BpBR        B0B0A.!@ B AuI " ("Ak6 AJ (  @ AH ("(8 Atj(" ("Ak6 AJ   AH  (A,G    (! (LE AG A   AA B AuI " ("Ak6 AJ (  B! A j$    E@  A@O@AA06A A AjApq A I! Ak"("Axq!@@ AqE@ AI   ArI   kA(AtM   Ak" j!  O@  k"AI    AqrAr6  j" Ar6  (Ar6  e  A( F@A( j" M    AqrAr6A  j"6A  k"6  Ar6  A( F@A( j" I @  k"AO@   AqrAr6  j" Ar6  j" 6  (A~q6   Aq rAr6  j" (Ar6A! A 6A 6  ("Aq Axq j" I k! @ AM@ (" Av"AtAjF  ( "F@AA(A~ wq6   6  6  (! @  ( "G@ ("A(I  6  6  @ Aj"(" Aj"(" A!  @ ! "Aj"(" Aj! (" A6 E @ ("AtAȈj"( F@  6  AA(A~ wq6  AA ( Fj 6 E   6 ("@  6  6 ("E Aj 6  6 AM@  Aq rAr6  j" (Ar6    AqrAr6  j" Ar6  j" (Ar6  e  "E@A  A|Ax ("Aq Axqj"   K! ] ! ~#Ak"$ Aj" (8"64 Aj(6  6@@@@@ 6 ("6@@@@@@@@@@@@@@@@ ,"Aq"{     ( 5BBBAAH  A? 5BBBAAH  A= 5BBAAH   @ AH ("(8 Atj(" ("Ak6 AJ   @ B AuI " ("Ak6 AJ (  !  @ )"B AuI " ("Ak6 AJ (  @ )"B AuI " ("Ak6 AJ (  @ )"B AuI " ("Ak6 AJ (  B AuI " ("Ak6 AJ (  AH ("(8 Atj(" ("Ak6 AJ   @ B AuI " ("Ak6 AJ (  B! A j$  #Ak"$  6\@@@@@@@@@@@@ Al" jAk!@@  (\"Aj6\ ("AG@@@@@@   AN  j" ("A 6  ( 6 A6 B7  Aj6\ Aj!  (E   AN  j" ("A 6  ( 6 A6 B7  Aj6\ Aj!  (E   AN  j" ("A 6  ( 6 A6 B7  Aj6\ Aj!  (E  AJ A!  AL AO  j" ("A 6  ( 6 A6 B7  A(k"( ( Ak"( ( Ak   AkAlj"( Aj"(A (   Ak"Alj"( Aj(A (  Aj Aj(6  Aj)7  )7  AL E   AG @ (" ("N@ (!  ( (  AlAm"  J"At ( "E@ (!A  6 6  (" At 6A ! ( A (   Aj! A! AG@ A~q! A$j!@ Ak( Ak(A Ak(  Ak( Ak(A (  A(j! Aj"G  A! AqE  Alj"( (A (  Aj$  AAA A AAA A AAA A AAA A AAA A AAA A AAA A  #A k" $@@@@@@ G@@@ ( E@@@@ ("Ak ( @ ("( (A ( ! A6 6 B7 (   ( E@ (!A  ("( (A ( ! A6 6 (! ( At ! 6 (6  (   (E  ( @ ("( (A ( ! A6 6 B7  (! AtAj" Av" ( G@A AO ("( ( At ( "  6 6 (A At" ( "E   A At" ( "  J" kAt"j At"k ( ( Atj k  -Aq@ AI  Aj! At jAk!A!@  At ("Avr6 Ak! Ak" AK Aq!  Aj! (" AM  (A A?qAj ( "E        AtjC!  F  ( A (   AAAA Aj! ( !      AtjC! E  ( A (  ( @ ("( (A ( ! A6 6 B7  @@ E@ At!A!@  j("E@  G! Aj!  ( A (    ( k"AL  (!@ (  Aj! Ak"  ( A (  (" (Ar6 A6 (AjAu6 ( "E   Aj A j$ ~#Ak"$@@@@@@@@@@ ("A L@ Aj& A!k"A K A tA(qE   A! /  A A!@ (@"("AH ( j"-AG A: A  (@!A! /  A A!@ ("AH @@@@@@@ ( j"-"Ak  Ak A! A6 Aj 6 ( ("A"A! (  (  E  A6 Aj 6 A ("AF  AF  -nAq@ AAA!  A: AAA! A6 Aj 6 A0 (@! A6 Aj A jA (@AjA  A A   (@"-lAqE@ AٶAA!  (dE@ AAA!  A! /  A  A  AjAO @ / A A j Aj  AjAA ? AkAq ( ( ( (AAR  A!  AG  A! /  A @@@@@@ A!k  AF  AG  A  A  A  A  A A  A! AqAr  (0 ("AjAK A j Aj  AjAA ?  AkAq ( ( ( (AAR /  A! AqE  (A~qAG @ AqE (@-nAq (AAA!  A! /  A  A A! Aj$  ~#Ak"$@@@@@@@@ E @@@ ("A*G@ AG @@@@ A j("Ak AG  ($   (86 A jAA F  ( "AN@ (((8 Atj(" (Aj6 / A!A! (" A(k" AM   ($E   ($  / A! (" A(k" AK A tAqE   / A!  A tAqE   AF AA AF!  AF  ( A! (A*G / A! ("AG A%jARIq A! AF@ A(j(E! A j("AN@ (((8 Atj(" (Aj6 /  A! E  E    ("A:G E A(Grq!  @@@ Aj ( A j)"E  / A!  @ A j)" BpB~Q@ (" Aj A(j4 (Aj(#" BpBQ  ( ! B AuI  (! " ("Ak6 AJ  (   ( ! E  / A!  AG@ E  AG  A j("AN@ (((8 Atj(" (Aj6 / A!  /  A  A A!A! AI  (A(F  AH (("(8 Atj(" ("Ak6 AJ   A۫A   6  r  AH (("(8 Atj(" ("Ak6 AJ   A6A ! Aj$  ~#A0k"$A-@@@A"@ A¥6 B7  6  AjA- (! (!A"E  B7 6 Aj 6A)! @ B|" P A A)" Q"7 ! E 7A( A 6mA-AG@ A: Aj!#A k"$@@@@@@@@@@A-Ak AA: -! A: @ A:Aą-AG@ A6  Aj6  Aj6#A k"$@@@@Aą-"AO@ Ak   AąA: (! A6 E  (! A: B7 B7 B7 AjA: A:AąA: A j$  AA+A AjB7 A6 A6 A6 AjA -  @@A(AG@A-!A!AA: AA6  A(Aj"E  A 6A( AA6A- A!A("E A(!@   k"6   j"6@@@@A A Aj"E@ (!  ! AqAk  E    j!  I  AA&A AA+A A jB7 A6 Aн6  A jB7 A6 A6  A  M  A A(@A(] AB7AA6AA(Aj6AA(Ak"6AA: AA:AA6 AA: A j$  A6 A  A0j$A A A  A jB7 A6 A6  A,j"6 A j Aj - ( ~#A k"$@@  A&j"BpBQ @ ("AjA ("E@ ("-  A: AA A:  B7  AvAq6 AjB7 Aj Aj"6  6 BpZ@  6  A6 ("AjA ("E@ ("-E@ A: AA A: A6   6 A6  6  6 AL  )"BBpB0Q @ AA Aq" A" BpBQ @ BpZ@ "/"A F  A0F@ ( -  ((D Alj(  AA  @ A"BpBQ @ A A" BpBQ   Aj" 7 BpBQ @@@ (E@@ @ B0A AjA " BpBR  )  BoX@ AAB0!  B" BpBQ  )B" BpBQ   7  7 B0A A " BpBQ     )   Aj" 7 BpBR        B0! )   BpZ@ A B AuI " ("Ak6 AJ (  B AuI " ("Ak6 AJ (  B AuI " ("Ak6 AJ (  B AuI " ("Ak6 AJ (  B! A j$   ("Aj!A!A~!@@@@@@@@@ -"A0k"I A !  A !  A !  A !  A !  @ E -AG Aj! -!A!@@ Aq"A0k"A I AkAM@ A7k!  A! AkAzI  AI  Ak!  Atr"AK@A -! Aj"! AG  AA AF"j"Aj!A!@@ -"A0k"A I AkAM@ A7k!  A! AkAzI  AI  Ak! Aj!  Atr! Ak" AG@ !  AxqAG@ !  -AG@ !  -AG@ !  @ -"A0k"A I AkAM@ A7k!  AkAzI@ !  AI@ !  Ak! @ -"A0k"A I AkAO@ AkAzI@ !  AI@ !  Ak!  A7k! @ -"A0k"A I AkAO@ AkAzI@ !  AI@ !  Ak!  A7k! @ -"A0k"A I AkAO@ AkAzI@ !  AI@ !  Ak!  A7k!   At AtrrAtr"AxqAG@ !  A tA?q AqrAj! Aj!  AF@A!  A! -A:kAvI   -A0k"AK@ !  Aj!  Atr"AK -A0k"AK Aj!  Atr! 6 !  ~#Ak"$@ BoX@ AAB!  B! @ )A" BpBQ @ A A"BpBQ@ !  A! @ B AuI " ("Ak6 AJ (  BpBQ "Aj! )"Aq!@~@@ BPE@ E @ /AF  Aj! Ak"  E @ -AF  Aj! Ak" B0!    A A"AH  AB AAAH  ($" (Aj6B0! A"BpBQ  !@@ B AuI " ("Ak6 AJ (   "Bp"B R@ BQ  B"A! @ B AuI " ("Ak6 AJ (   Bp"BR@A BR   (AqE !  AH  @ Aj A AAH  A~  ) "B|BX@ B  B~ "B} BBV AAAH  B|!    B !     @ B AuI " ("Ak6 AJ (  B AuI " ("Ak6 AJ (  B AuI " ("Ak6 AJ (  B AuI " ("Ak6 AJ (  Aj$ #Ak"$@@@@@@@@@@ (Ak  Aj6  (AA Aj((  :  6 A: A6 Aj A! - ! ("E@ AG!  A!  (! AG  - E  -Aq  (AA Aj((  E    Aj6  (AA Aj((  :  6 A: A6 Aj A! - ! ("E@ AG!  A!  (! AG  - E  -Aq  (AA Aj((  E    Aj6  (AA Aj((  :  6 A: A6 Aj A! - ! ("E@ AG!  A!  (! AG  - E  -Aq  (AA Aj((  E    Aj6  (AA Aj((  :  6 A: A6 Aj A! - ! ("E@ AG!  A!  (! AG  - E  -Aq  (AA Aj((  E    Aj6  (AA Aj((  :  6 A: A6 Aj A! - ! ("E@ AG!  A!  (!@ AG - E -Aq (AA Aj((   (AA Aj((  !  (AA Aj((  !  (AA Aj((  !  (AA Aj((  !  (AA Aj((  ! Aj$  @ (" ("r@@ E  j! A j(Aj! !@@ ! Ak" E  F  ,"AN@ Aq! Aj  -A?q! Aq! A_M@ At r! Aj  -A?q Atr! ApI@  A tr! Aj  AtAq -A?q Atrr"AF  Aj "  kj! AG    F @ ,"AN A`I ApI AqAtAq -A?q -A?qAt -A?qA trrrAF  @@ E  M@A!  F   A!  j,A@H  !   !   ! E  (!@ AO@  !  E@A!  Aq! AI@A!A  ,AJ ,AJj ,AJj ,AJj" A|q"AF   ,AJj ,AJj ,AJj ,AJj" AF   ,AJj , AJj , AJj , AJj ! E  j!@  ,AJj! Aj! Ak" @  I@  k!A!@@@ - Ak !A!  Av! AjAv! Aj! Aj(! (! (!@ Ak"E   (E A  A!   (  AA!@   F  Aj!  (E Ak I  (   Aj((   (   Aj((  ~#Ak" $@@@@ -"AqE /"AF@@ Aq@@ AH@ Aq"6  A(j(G  AqE  A0q   AvqAqAG  B AuO@ " (Aj6   !  A j E  A! E   A j E  (")" B AuO@ " (Aj6 Aj  ( Aj" (M  (A3j-AqE@ A0!  AN~ B~ " B} BBV ! )!  7 B AuI  " ("Ak6 AJ  (   AkAqA M@ " Bp" B0Q A! BQ   A!  Aq ((D Alj(" E ( " @ Bp      B!  @ A0G@ Aq!  Bp"AN A!  E  -Aq  A!    AqAr Aq A0q""E@A!  @ A6@ BpT AqE "/"A G@ A0F@ ( -  ((D Alj(AG E   (Aj6  6 A6A! BpT  A qE  "/"A G@ A0F@ ( -  ((D Alj(AG E   (Aj6  6  @ Aq@ B AuO@ " (Aj6  7  B07 A! Aj$  #Ak"$ B 7 - ! (! (! (! -!@ ! @ E@@  I @  j!@@@@  k"AO@ AjA|q" F   k"   I"E A!@  j-A F   Aj"G  Ak"K    F@ !  A! -A F  AF@ !  A! -A F  AF@ !  A! -A F  AF@ !  A! -A F  AF@ !  A! -A F  AF@ !  A! -A F  AF@ !  A! -A F  !  Ak!A! @  j" Aj("AsAk Asq (" AsAk AsqrAxq  Aj" M  F@ !   j!  k k!A!@@  j-A F   Aj"G !   j! @  j"Aj"E  I  j- G A! !   O !A! !A! ! E  A  @@@@ E@ A:  A! (AA ((  E   E  (A ((  E  (AA ((  E    6, A6L  A,j6HA! A:l A6h B 7` A6D A64 A60 A6< B7X A6P  Aj6@  Aj68 ( ( A0j   (AA ((   Aj! (  j  k ((  E  A ! Aj$   ~#Ak"$~ BoX@ AAB  " (Aj6 (()" B AuO@ " (Aj6 @  AE@ /AG@  (" Aj (DAj(6 A B  ( ")""Aq"  AA{  A6$ A6  Av"6  6  6@ ("Aj  t AujAj ("E@ ("-E@ A: AA A: A6$ A6 A6  A6  B7 A6  6 (Aq" @ Aj!A!A!@ "Aj!A!@@@@@@@@ )B"P" E@  Atj/   j- "Ak @ A k A/G  E A!A/!  A!  N  Aj! E@  Atj/! !   j-! !  A!A!  A! @A!   N@A!  Aj! P@AA  j-AF"!   !A!  A!AA  Atj/AF" !   !  A  A  A!A/ !A! @@ (" (N ( @ ( AtjAj ;  Aj6  AK ( jAj :  Aj6  Aj  @ AH @ (" (N ( @ ( AtjAj ;  Aj6  AK ( jAj :  Aj6  Aj   H  Aj ! Aj$  @@ A M@ AqE  E  -: Ak! Aj! Aj"AqE  E  -: Ak! Aj! Aj"AqE  E  -: Ak! Aj! Aj"AqE  E  -: Ak! Aj! Aj!     ! ! ! @ Aq"E@@ AI@ !  Ak"AqE@  )7  )7 Aj! Aj! ! AI !@  )7  )7  )7  )7 A j! A j! A k"AK AO@  )7 Aj! Aj! Aq@  (6 Aj! Aj! Aq@  /; Aj! Aj! AqE   -:  @@@ A O@@@ Ak  (;  Aj(6  Aj)7 Aj!A! Aj(!A! Aj   (:  Aj(6  Aj)7 Aj!A ! A j(!A! Aj   AI@ !    -:  (6  )7  / ;  -: Aj! Aj ! Aq    (":  Av:  Av:  Aj(6  Aj)7 Aj!A! Aj(!A ! Aj !  j 6  )7 Aj! Aj! Aq@  (6 Aj! Aj! Aq@  /; Aj! Aj! AqE  -: ~ )!A!@ )"BpT A A"Bp"BQ@  B0Q@ /AF!  "AN B @@ BpB0R (()! E BpB0R A< A"BpBQ@  B "AuO@ " (Aj6 B AuO@ " (Aj6  A!@ AuI " ("Ak6 AJ (  E B AuI  " (Aj6  @@@@@ BpT "/AG ( " (Aj6 B! BpB0R  ($" (Aj6   B @@@ @ A A"BpBQ@B0! !  BpB0Q@ ! A A"BpBR   ! B AtK   B AuO@ " (Aj6 B AuI  " (Aj6 ! BpB0Q@ ("(,A/M  (8(" (Aj6 B!  A!@ B AuI " ("Ak6 AJ (  BpBQ   A"BpBR   AAAA˧  c"BpBQ @ B AuI " ("Ak6 AJ (     @ B AuI " ("Ak6 AJ (  B! B AuI " ("Ak6 AJ (    ~@ )TB0B8 @@ (P@ ( "AL A!@ ( j"(E@ ("AjA ("E@A! ("-  A: AA A:A B07 A6  -Ar: (! A: (P" Aj" 6  6  Aj6 A j Aj6  6P Ak 6 ( ! Aj! Aj" H  )H! @@ ("( )0" A BoV"AylAk"A (kvAtj("@@@ ( G (, G ( E  (("  A" A  (Aj6 A " BpBQ@A " "6  (Aj6 B7$@ (<"E ("Aj At" ("E@  A!  A 6$ (<"AL @ ($ j-"Aq@ ("AjA ("E@  A6 BB0 Aq7  -Ar: (! A: (P" Aj" 6  6  Aj6 A j Aj6  6P  6 (H! A=K! AI!@  l" Aq!A!  Au"K@  Atj(! @A!  Aj"K  Atj(A At Ast  vr! @ E@  q"!  A!  A jAu"K@  Atj(! @A!  Aj"K  Atj(A At Ast vr! E@  qB !   E@A!  A@kAu" K@  Atj(! A!  Aj" K  Atj(A At Ast  vr  q  q!A ! Av B B!! Aq! E@ BB! ! ! ! !@ Aj("  At" "  j5"~B ~|}"  B Auq|"B q j!     B " BB ~B ~ |}" B Au q|"B q j 6 Aj!  j! Ak"  Aj! Aj" G  ~#A k"$@ Aq@A!@ BpT "/A0G ( ! -@ AAB!  B! )"A A"Bp" BQ @ )" BpZ@ -Aq  AA  B0  B Q"BpB0Q@   A!  @  " BpBQ )!  7  7  7  )B0A A "BoV BpBQ @ B AuI " ("Ak6 AJ (  AAB! @ B AuI " ("Ak6 AJ (  B AuI  " ("Ak6 AJ  (   A!@ BpT "/A0G ( ! -@ AAB!  B! )"A A"Bp" BQ B0  B Q! -E@@ B AuI " ("Ak6 AJ (  AA  BpB0Q@ ) B0  A !   " BpBR@ )!  7  7  7  )B0A A ! @ B AuI " ("Ak6 AJ (  B AuI " ("Ak6 AJ (  A j$  ~@@ @ B`B R   BpT  @@ B "Aj ! @ BoXA  "/A0F@A!#Ak"$@ BpT "/A0G ( ! @ -@ AA  )"A A"Bp" BQ )! B0  B Q"BpB0Q@     7  7  )B0A A ! @ B AuI " ("Ak6 AJ (  BpBQ E@A E  AA  )"BpZ~@ "/A0G@ -Aq!  "AH  A   )  "BpBQ A  F  AA A ! Aj$  ("(, F -AqE@ E@A AAA @ E !@  F@ E@A AAA ((," AuI " (Aj6 @ -E (AG@ "E@A (" ("Ak6 AL@ (   6  ("( (A (kvAtj!@ "(" A(j!  G  ((6 A:  (Ak6 (! (,"@ Bp  6, A AAA  #A0k" $@ BpT A!@ " -AqE ((D /Alj("E AA (! A! A,j A(j 5 @@ ((" @ A BoV! (," Aj! Aj! AK! !@@@@ E A  ("E AH   E@ Aj ("AH  E  (!@ )"B AuI " ("Ak6 AJ (  @ ) "B AuI " ("Ak6 AJ (  Aq!@ )"B AuI " ("Ak6 AJ (  E   ( A"BpBQ (!@ @    AA!    B0B0A.! B AuI " ("Ak6 AJ (  AN  Aj!@@ ("AH ("(8 Atj(" ("Ak6 AJ   Aj!A! Ak"  Aj! Ak" E  Aj!@@ ("AH ("(8 Atj(" (" Ak6 AJ   Aj! Ak"  (," A!  Aj! A! ("Aj ( A0j$   #A k"$@@@ ("(AG@ - ! A:  : E  B7 A6 A6 A6 Aj Aj (Aj"E   6  A6 A6 @@@ ( A6 AtF Aj! #A k"$@@@@ E Aj! At! AkAqAj!@@ (  Aj! Aj! Ak" !  I   k"E  Atj!@@@A   Aj"E@ ("E@ A6 A:  Aj! At! AkAqAj!A! @  (" I  Aj! Aj!  k! Ak" !  AqAF  A6 Aq6   I   k!  At" j!  F@ ! ! E  AjB7 A6 A6 A6 AjA   j"("M@ Aj  k6  ( j6 ! !  AjB7 A6 A6 A6 AjA  A:  A  A A j$@ -"AF AF ( !  AF  )7  A A:  (Aj6  (Ak"6 E@ A6 A jA: A j$ AA&A ~#A k"$@@ "A0 A"BpBQ@ B7  B "AuO@ " (Aj6 @ Aj " )" BY@B! BT   7 @ AuI " ("Ak6 AJ (   ~@ )" BW B! B7@ AH )"B AuO@ " (Aj6 Aj  @ )"BS@   |"7B! BS  " Z   7 ! @ BpT "/AG -AqE  A(j5" Z ($!@ )"B AuO@ " (Aj6  Atj)"B AuO@ " (Aj6  A! )"    B|"7  S  )Y @   Aj"AH @ E@ )!  )"B AuO@ " (Aj6  )A! )"    B|"7  )S B !@ B AuI " ("Ak6 AJ (  B|BX@ B!  B~ "B} BBV!  B! B AuI " ("Ak6 AJ (  A j$  ~#Ak"$@ BpT "/A0G ( ! @ -@ AAA!  A! )"A A"Bp" BQ (!B0  B Q"BpB0Q@   !  A" BpBQ@ B AuI  " ("Ak6 AJ  (   )!  7H  7@  )B0A A@kA ! @ B AuI " ("Ak6 AJ (  @ B AuI " ("Ak6 AJ (  Bp"BQ @@@ BoV B0Q     "AH@   @ E@A! B0Q    B0R -AqE A! -AqE   A!@ )"BpT "/A0G@ -Aq!  A! "AN   A j !  AH@A!  @ @ ("A:A ( "Aq rE  Aq  Aq  Aq  Aq   E - Aq  A j AAA!  @ @  ) 7 Aj A8j)7 Aj A0j)7 Aj A(j)7  A j A! Aj$     ("(AlAm"  J! @ @ ("Aj ( At" ( !@ E  A ("-   E@A  6 ("Aj"!@ "At!  I @  G@ ("Aj At" AtjA0j ("E@A ("-   A j"(" ("6  6A! A6 A6  j"  ( AtA0j" (" (P" 6 Aj" 6  Ak" 6 6P A j Aj6 A ! ( "@  AtjA4j!@@ ("E@ Aj!  Ak" (A`q   qAsAtj"(Aqr6  Aj"6 ( ! Aj!  I  ("Aj  (AsAtj (  A j"(" ("6  6 A6 A6 ("Aj  AsAtj At AtjA0j" ( !@@@ E  ("-  A: AA A:     ("(P"6  Aj"6 6P  Aj6 A  Atj" ("(P"6  Aj"6 6P A j Aj6  6  6A  A: AA A:A #Ak"$A A j A  (A3j-AqE@ A0  -Aq@ ( " A(j("I@ At!@@ ($ j)"B AuI " (" Ak6 AJ (  Aj!  Ak"G  6( ( AN~ B~ "B} BBV 7A  ()"B AuO@ " (Aj6 Aj  ( " !@ (" M ("( "  kO@ !@A!#Ak"$@ Ak"AN@ Axr!   6 Aj" A A  {"BpBQ ( AH! Aj$  "W!  E  " K !  ! AL A0j! A4j!@@ (" E Aj E (" I  Aj Ak-Aq! Aj! Aj" ( " H AL A! A0!@@ (" E Aj E ( I  (W (" j! Aj! Aj! Aj" ( H ( AN~ B~ "B} BBV A  M  A ! Aj$  ~#Ak"$@ B`B Q@ A×AB!  A"BpBQ@ !  @@@@@@@ )"BpZ~B0! A A"Bp"B0R@ BQ    /AF "  )  A"BpBQ   " (Aq"A AF6 " (!@ AH )"BpB0Q A j  A   Aq" k!  AL AA @ B AuI " ("Ak6 AJ (  B! B AuI  " ("Ak6 AJ  (   ( !  ( " J!B! ! E   ( k"! B! AH  J E@B!  Aj!  jAj! )B! )B! At jAj! @ ! ! ! "!@ PE@ /  -  PE@ /  - G@ Aj! Aj!  G! Aj!    Aj! Aj! Aj! Aj! Ak" B! @ B AuI ("Ak6 AJ (  B AuI ("Ak6 AJ (  Aj$  ~#Ak"$@ A j )A"E@B!  ( !#Ak"$ AA"A6  6 B7  68   j6< A6 A6L@@  "BpBR@ (AF  AA B AuI " ("Ak6 AJ (   AjB! Aj$ Ak" ("Ak6 AL@ ( B AH@ !  BpBQ@ !  )"BpT@ !  @ "/"A F  A0F@ ( -  ((D Alj( !  @@@@@ ("( (()" A BoV"AylAk"A (kvAtj("@@@ ( G (, G ( E  (("  A"E    (Aj6 A" BpBR  B! B AuI  " ("Ak6 AH   A/ B0B0A.!@ B AuI " ("Ak6 AJ (  AH@B! B AuI  " ("Ak6 ! AH   A/ ! B AuI  " ("Ak6 ! AJ  (  Aj$  ~@ Aq"E @ ("A)I@ E@ A6  AtAj5! AkAq"Aj"Aq! AI@ !  Aq! !@  5 ~ |"> Aj" 5 ~ B |"> Aj" 5 ~ B |"> A j" 5 ~ B |"> B ! Aj! Ak"  A(A @@  5 ~ |"> Aj! B ! Ak"  @ " A'K  Atj 6 Aj  6  A(A(A @ Aq@@@ ("A)I@ E@A!  AkAq"Aj"Aq! AI@B! !  Aq!B! !@  5B/~ |"> Aj" 5B/~ B |"> Aj" 5B/~ B |"> A j" 5B/~ B |"> B ! Aj! Ak"  A(A @@  5B/~ |"> Aj! B ! Ak"  "E A'K  Atj 6 Aj! 6 Aq@ AA A q@ AA Aq@ AA Aq@ A؋A Aq@ AA  A(A(A ~A t" Av! AtAj("At!@@ AF@ !  At!A! !A! @ ! A!@ "AJ Alj Alj AtjA j"(" AtAj(! A! ("(AA t ( "E Ak! Alj Alj Atj"Aj5! Aj(! ! !A! A!@  6 Aj " B >  l  ~B lk"A  Ik! Aj! v! Aj! E  6 ! "E  Av! AM At A AK! At! At! At!A! ! !@ @ (! 5! ! ! ! @  j(" ("j"A   Kk6  j  k j" l   ~B lk6 Aj! Aj! Ak"  Aj!  j!  j! Aj" G  ! Ak! ! ! " AG  A A AK! At!@A!  j(" ("j"A   Ik6 j  k A  Kj6 Aj! Aj! Ak"  ~#A k"$@ BpT "/A9G ( ! @@@ AjB0"BpBQ E@ AA (")! B 7  7 )"B0B0A AjA ! @ )" B AuI " ("Ak6 AJ (  @ B AuI " ("Ak6 AJ (  @ )" B AuI " ("Ak6 AJ (  B AuI  " ("Ak6 AJ  (   ("AjA0 ("  ("-E@ A: AA A: @ )"B AuI " ("Ak6 AJ (  @ )"B AuI " ("Ak6 AJ (  B AuI " ("Ak6 AJ (  B!  Aj"B7 B7 A(jB7 A jB7 AjB7 AjB7  6 )"B AuO@ " (Aj6  7 B AuO@ " (Aj6  (H"6  6  7  )7 A(j )7  6H  Aj6 (AF K A j$  ~#Ak"$~@@@ BpT "/A G ( "   (" Aj (DAj(6 A   Aj-! )"B AuO@ " (Aj6 Aj  )" BZ@ AA  A6 B7 )!@ AL@ B AuO@ " (Aj6 B Aj    AM@B Aj    @@ B "AuO@ " (Aj6  AM@  9  AkAmK  B|7  Aj   AF@  +8   )7 A! AN@ )"B AuO@ " (Aj6 As! ( ( "-@ AA  5 A t|T@ AȸA  ( (jj!@@@@@ Ak  (:B0  /"At Avr ;B0  ("At AqAtr AvAq Avrr 6B0  )"B8 BB( BB BB BB BB B(B B8  7B0  B ! Aj$  ~#A0k"$@ BW Ak! Bp! AL! @ !B!   A(j"AH @~  E  B0R@  )(7  7  "BZ~B~ "B} BBV  7   B0A A "7(@ )"B AuI " ("Ak6 AJ (  @ )"B AuI " ("Ak6 AJ (  BpBQ  @ )("BpT @ " /"A0G@ AF!  "AH  E A0 A"BpBQ@ B7  B AuI" E@ " (Aj6 @ A j " B! ) "BY@B! BT   7 @ " ("Ak6 AJ (  AH    )  B0B0"BS  ("Ak6  AJ  (    BY@ AA )(!  )(!  B|BX~ BB~ "B} BBV AAH  B| !  B|"R   B AuI " ("Ak6 AJ (  A0j$  @ BpT "/A%G ( "E A!@  j"Aj("@   AF@ (TAJ@A!A8!@ (X j"A4k("@   A0k("@   A,k("@   A(k("@   A$k("@   A k("@   Ak("@   Ak("@   Ak("@   Ak("@   A k("@   Ak("@   Ak("@   ("@   A@ A> A"BpBQ AA  r! A?@ A? A"BpBQ AA  r! B0!@@ AE@B0!  B0! A A" BpBQ@  Ar! @@ AE B0! Ar! A A"Bp" B0Q A! BQ  BpT  "/"A F  A0F@ ( -  ((D Alj(AG E  @ AE@B0!  A r! A A"Bp"B0Q A! BQ  BpT  "/"A F  A0F@ ( -  ((D Alj(AG E  A0q@A! Aq   7  7  7  6A A @ B AuI " ("Ak6 AJ (  @ B AuI " ("Ak6 AJ (  B AuI " ("Ak6 AJ (  A ~#Ak"$@@@ "A0 A"BpBQ@ B7  B "AuO@ " (Aj6 @ Aj " )" BY@B! BT   7 @ AuI " ("Ak6 AJ (   B! @ )" BW B! B7@ AH )"B AuO@ " (Aj6   @ )"BS@   |"7B! BS  " Z   7 ! @ BpT "/AG -AqE  A(j5" Z ($!@ )"B AuO@ " (Aj6  Atj)"B AuO@ " (Aj6  A@B!   )B|"7  S  )Y @  "BpBQ  )"B AuO@ " (Aj6  A@B!   )B|"7  )S B AuI  " ("Ak6 AN   B! B AuI  " ("Ak6 AJ  (  Aj$ ~#A k"$ (!@@ AG ("@ -(Aq  AAA! B AuI  " ("Ak6 AJ  (   AjA ("E@ ("-E@ A: AA A: A! B AuI  " ("Ak6 AJ  (   A6 (! Aj""B7 B7  6 B "AtK@ " (Aj6 B~! Aj "E@A!  ("Ak6 AL@ (  AuI  " ("Ak6 AJ  (   @@@@@@ Ak   !   ! Aj" (As6   B! Aj" (As6    AtAk! @ Aj F@ ("E  ("E  ( A (   Ak" ("Ak6 AJ ( B~ @ AuI " ("Ak6 AJ (  @  A!  A!  ((" ((AvAqA 7 A j$  #Ak"$@@@@@@@@@@ ( A; B7 A;  A; B7 A;  A; B7 A;  A; B7 A;  A; B7 A;  A; B7 A;  AF  @@@ E@ E  6 A:  AjA: A; A:  AqAԜj-:  AvAqAԜj-:  AvAqAԜj-:  A vAqAԜj-:  AvAqAԜj-:  AvAqAԜj-: ArgAvAk"A O  Aj j"Aܶ/; AjA޶-: A : : )7 Aj Aj/;  AjA: A; A:  AqAԜj-:  AvAqAԜj-:  AvAqAԜj-:  A vAqAԜj-:  AvAqAԜj-:  AvAqAԜj-: ArgAvAk"A O  Aj j"Aܶ/; AjA޶-: A : : )7 Aj Aj/;  A A̶ A A̶ A; B7 Aܸ; Aj$ ~#A k"$@@@@@@@@@@ ("E (" ("O @@  j-Ak Aj6 A2E A! Aj"6  I@  j-AF     K!@  F   j-"AG@@ A0k"AqA I AkAqAO@ AkAqAO  Ak!  Ak! Aj"6  B> )BR  )" B|" Z   Aj6 B|"PE   AA A2!  @ ("E AAE A!  ("E@A!  A!@@@ (" (O  j-AG A! Aj6 @ E ("E A! AՑA   Ak! (" A!  A!  Aj6  T  A! ("E  AA   A! ( Aj"AM@ (E  Aj" Aj")7 6  >  )7 !  )7 )7  ("E  AAE  A!  : A6 A! A j$  ~#Ak" $@ BpT "/AF@ -Aq  A! @ BW AH! AN! @ B |  " |!  |!@@ E -AqE BS  5("Z  Z  }! E@ B|" S" B|" S" BW  At! At! !@ ($" j!  j)"B AuO@ " (Aj6 )!  7@ B AuI " ("Ak6 AJ (  Ak! Ak! B}"PE   }" S"  }" S" BW  At! At! !@ ($" j!  j)"B AuO@ " (Aj6 )!  7@ B AuI " ("Ak6 AJ (  Aj! Aj! B}"PE  A!   Aj"AH  @B!   )AN   B!  AH  |" S A! Aj$  ~#A k"$ B07@@ "A0 A"BpBQ@ B7  B "AuO@ " (Aj6 @ Aj " )" BY@B! BT   7 @ AuI " ("Ak6 AJ (   @@ BpT "/AG -AqE )" A(j("R  AI@ !  Ak! ($" AtjAk!A!@ )! )7  7 Aj! Ak!  Ak"I! Aj!  !  )! BS@ !  B}!B!@@@   Aj"AH   Aj"AH @@ @   )AH  E    )AN   E   AH    )AH  B07   AN  )"B AuI  " ("Ak6 AJ  (   B|" B}"S !  B! B AuI " ("Ak6 AJ (  A j$  #A0k"$ (!@@@@@@@@@@ Aq" @   A j r!@A("E@!A( A 6  ("Aj6 AH   ("  F" 6 A:  6  A|q6 @ -E@@A("E@!A( A 6  ("Aj6 AH   ("Ak6 AF@  -E  @ ( "E  ("Ak6 AG (  (!   AqF@@ ( "E  ("Ak6 AG (  !  @ ( "E  ("Ak6 AG (  (!  Aj ("  F6  G! !   (! (! AA 6  Aq"6 AG  Ak"E @ (! A6 E  (! A:  ("Ak6 AF@  " A0j$ A6#Ak"$ A6 A j6 AjA A jA AjA AA+A A$jB7 A6 A6 A6 AjA #Ak"$@@@@@@@@@@ ( AF   A; B7 A;  A; B7 A;  A; B7 A;  A; B7 Aܸ;  A; B7 A;  AqE  A; B7 A;  AqE A; B7 A;  @@ Aq@     AjA: A;  AvAqAԜj-:  A vAqAԜj-:  AvAqAԜj-:  AvAqAԜj-: ArgAvAk" Ajj"Aܶ/;  AvAqAԜj-: AjA޶-: Aj" AqAԜj-: )7 A: Aj /; A : :  AjA: A;  AvAqAԜj-:  A vAqAԜj-:  AvAqAԜj-:  AvAqAԜj-: ArgAvAk" Ajj"Aܶ/;  AvAqAԜj-: AjA޶-: Aj" AqAԜj-: )7 A: Aj /; A : :  6 A: Aj$ ~|#Ak"$ B7~@ AL @@ )"B "AuO@ " (Aj6  AM@  9  AkAmK  B|7  B Aj   +! AG@ Aj! Ak!@@@ )"B "AuO@ " (Aj6  AM@  " 9  AkAmK  B|"7 !  B    +! Aj!| B" B"  T"! B4"AG|    V"" P  B4"AF   kAN | A O@ D0! D0! Dk  D? AK  Dk! Dk! D0 " " DA" " " DA" " "  ! Ak"  ! " DAc@  Ax "Q@  B~ B} BBV ! Aj$   ~#Ak" $@ BoX@ AA  A0 A" BpBQ A j  ( "AO@ AA  ("Aj A AKAt" ("E@A! ("-  A: AA A:  A !@@@ "/Ak -AqE  A(j(G E A! AG@ A~q! A!@ ($ jAk)"B AuO@ " (Aj6 j" Ak 7 ($ j)"B AuO@ " (Aj6 7 Aj! Aj"G  AqE  At" ($j)"B AuO@ " (Aj6  j 7  E ! !@ !  AH~B~ " B} BBV " BpBQ@ @ !@@ )"B AuI " ("Ak6 AJ (  Aj! Ak"  ("Aj  (A!   7 Aj! Aj!  B|" R  6 Aj$  #A k"$@ " ( "E ("( A6 /A2k!@@ AL@B0!  )!  BpT " (Aj6 )"B AuO@ " (Aj6 @@  A@ AA  A A"BpBR  (")! B 7 ) A B AuI  " ("Ak6 AJ  (   BpZ@ "/"A F  A0F@ ( -  ((D Alj(   )     7  7  )7A!@ ("AjA0 ("E@ ("-  A: AA A:  A6 A6  6 A j! !@ )"B AuO@ " (Aj6 Ak 7 Aj)"B AuO@ " (Aj6 7 Aj! Aj! Aj"AG  At"j)"B AuO@ " (Aj6  jAj 7 (" 6  6  Aj6  6  A j$B0 ~@@ ("AjA ("E@A! ("-  A: AA A:A B7 ! B AuI! A!@@@@@@ ("( )0" A BoV"AylAk" A (kvAtj("@@@ ( G (, G ( E  (("  A"E    (Aj6  A2r" BpBQ ("AjA ("  ("-E@ A: AA A: B AuI " ("Ak6 AJ (  Aq!A!   )"B AuI  " ("Ak6 AJ  (    6  (Aj6 E@  (Aj6  7 BpZ@ 6  A0BB0B0A. ("(,A/M  (8(" (Aj6 A6 B" B0B0A.  ("Ak6 AL@ (   Atj 7A! Aq!A!    (Ak"6  ("Aj  (  AAAA˧ #Ak"$@  k"AF@@ E@ A6@@ ( AF@ (!  ("( (A ( "E  A6  6 A|6 A6  ( @ ("( (A ( ! A6  6 B7    A6  AtAr  (Aj6 F @@ ( " ( F@ (!  A  ("( ( At ( "  6 6 ( ! )7  ( At  ( @ ("( (A ( ! A6 6 B7  (!    Av j"A B7D B7<  68 B7, B7$  6 B7 B7  6 A8j" A j Aj"    AAl   AAl AA @   A jAAl   AjAAl@ (8"E (H"E ( A (  @ ( "E (0"E ( A (  ("E ("E ( A (  Aj$ ~#Ak"$ A&j!@@@@ BpT  "/G ( "   (" Aj (D Alj(6 A B!  )! B0! AN@ )!  @ BpZ@ "/"A F  A0F@ ( -  ((D Alj(  AAB!  Aj(" Aj" G@@  A k"(E@ Ak" (Aj6 )" B AuO@ " (Aj6  7@  )" B AuI " (Aj6  7  7 B0A AjA ! @ )" B AuI " ("Ak6 AJ (  @  )" B AuI " ("Ak6 AJ (   (Ak"6 (! E@ (E  (! (" 6  6 A6 A6 Aj  ( BpBQ   B AuI  " ("Ak6  AJ  (    ( "G  B0! Aj$  AAAA   AjA|q"k"j"Aq!A! G@  AsjAO@@  j",AJj Aj,AJj Aj,AJj Aj,AJj! Aj"  @  ,AJj! Aj! Aj"  @ E  A|qj",AJ! AF  ,AJj! AF  ,AJj! Av!  j!@@ ! E  A AI"Aq! At!A! AO@  Aqj! !@  ("AsAv AvrAqj Aj("AsAv AvrAqj Aj("AsAv AvrAqj A j("AsAv AvrAqj! Aj" G   k!  j! AvAq AqjAlAv j! E   AqAtj"("AsAv AvrAq" AF  ("AsAv AvrAqj" AF  ("AsAv AvrAqj "AvAq AqjAlAv j!  A!@ (LE @@@@ Ak ("AN  (|"AN@ AA A6A   (xN@A AjA Aj Aj  (|!  Aj6| (t Atj"B7 A~6 A6 (|Ak "6  ("AN  (|"AN@ AA A6A   (xN@A AjA Aj Aj  (|!  Aj6| (t Atj"B7 A~6 A6 (|Ak "6  ("AN  (|"AN@ AA A6A   (xN@A AjA Aj Aj  (|!  Aj6| (t Atj"B7 A~6 A6 (|Ak "6  AG ("AN @ (|"AN@ AAA!  Aj!  (xN@A! A Aj Aj  (|!  Aj6| (t Atj"B7 A~6 A6 (|"Ak! AL (`E ( Atj" ( Ar6  6   ~@ BpT "/A1G ( "E ( B " AuO@ " (Aj6 )!  7@ B AuI " ("Ak6 AJ (   Aj"6@ AG ( ("("E  A ( I  Atj"Aj(" Aj" G@ AGB! ! @ "Aj)! )! )! (!@ (" AjA ("E@ ("-  A: AA A:  A6 A6  6 B AuO@ " (Aj6  7 B AuO@ " (Aj6 A j 7 B AuO@ " (Aj6 A0j 7 A(j 7 AuO@ (Aj6  ("6  6 A8j 7 6  Aj6 (" (" 6 6 A6 A6 (   G  A kAtj"Aj(" Aj"F @ (" ("6  6 A6 A6 (  " G ~@@@@@ BpZ@ "/A/F  A6  ( ! A6   AA  Aj!@@@@@@@ ("Ak E  (  A6 B0! Ak )"B AuO@ " (Aj6 @ AG AG @ (")"B AuI " ("Ak6 AJ    7A  Aj"(" 7 Ak 7  Aj6 A ! A6 Aj 6  )B0 Aj( A(j(A ! A6 BpBQ@ (  A6  Aj(Ak")! B07 BX@ BQ@ A6 A6  A6  @ B AuI " ("Ak6 AJ (  (AF  (  A6  )"B AuI  " (Aj6  )"B AuO@ " (Aj6 @ (")"B AuI " ("Ak6 AJ  7  AA B!  ~@@ ("( )0" A BoV"AylAk"A (kvAtj("@@@ ( G (, G ( E  (("  A" B  (Aj6 A" BpBQ@  @@@ ("Aj AtAj ("E@ ("-E@ A: AA A: B! B AuI  " ("Ak6 ! AH    ;  :  :  6@ AL A! AG@ Aj! A~q! !@ )" B AuO@ " (Aj6 Ak 7 Aj)" B AuO@ " (Aj6  7 Aj! Aj!  Aj"G  AqE  At"j)" B AuO@ " (Aj6  jAj 7 BpZ@ 6  A0 B0B0A. ("(,A/M  (8(" (Aj6 A6 B" B0B0A.  ("Ak6 ! AJ  (   AAAA˧ ~@ E A Ak"  I! AjA|q k!A!@@@@  j-""AN@  kAq   O @  j"Aj( (rAxq  Aj" I  B ! B! @@~@@@@@@@@@ Aj-Ak Aj" I B! B! B! Aj" I B!  B! Aj" I B!   j,AJ    j,!@@@ Ak A`qAF   AJ   AjAqA O@ A~qAnG  A@H   A@H    j,!@@@@ Ak AjAqAK  A@N   AjAqA0O   AJ   Aj"M@B!   j,AJ B! Aj" O   j,AL B  B  B! Aj" O   j,AL  B ! B!  7 A6 Aj!  Aj!   M @  j,AH   Aj"G   K 6 Aj 6 A6  ~#Ak"$ AA! @@@@@@@  ("M@ A)O  At! Aj!  Atj! @ Atj!@ ! !  F  Aj! Aj! (! Aj" ! E !B! ! ! !@ A(O    5| 5 ~|"> B ! Aj! Aj! Aj! Ak" "  j"A(O  Atj 6   j"  I! !  A)O  At! Aj! Atj! !@ Atj!@ ! !  F  Aj! Aj! (! Aj"! E !B! ! ! !@ A(O    5| 5 ~|"> B ! Aj! Aj! Aj! Ak" "  j"A(O  Atj 6   j"  I! ! A 6 Aj$ A(A A(A A(A A(A A(A A(A #A0k"$@@@@@@@@ ("@ (" ("  K! !@  "F  Aj"6  j-"A0kAqA I AkAqAI AG   K  @  j,AL   k"Aq  B 7  A~q"6   j"6   j"6@ AjX"AI AG  (" A!  ("E@  A͑A!  A! (A" Aj((  B 7  6  6  6@ AjX"AG@ A(j!@@@ AG@ A'F  A j  - !@@ AG@ -*" -+O   Aj:* A O  A j j-!  A! A6 ($! B7 (  ((E  AA+ A jAĈA؆ (A' ((  AjX"AG  (A" ((!  A A ("E A! AAE   ("E A! AA  A! A: A6  A! A0j$     AԐ @ AM@ @ A j  AkAI!  A k  AkAI!  AG!A!@@@   jAv"AtAj("Av"I@ Ak!  AvAq j K  Aj!  L   AtAq" Aj-"r!@@@@@@@@@ Av"Aq"   AqG@ AG AI   k AtAj(Avj!   k"Aq AGF  As j!   k"AF@AA  j!   EAtG AA~  j!   k! E@ A6  AvAqAj/j6A  A?qAtAj/j!  AF   AFAtj!  AF  AtAj/ AFj!  A k G  AtAj/!  A k G  A?qAtAj/6 AvAqAj/  kj6A  AvAj/6 AqAtAj/6 AvAqAj/6A 6A ~#Ak"$ )!@@@@ ("( (()"A BoV"AylAk"A (kvAtj("@@@ ( G (, G ( E  (("  A"    (Aj6 A"BpBQ @ A"BpBQ @ A A"BpBQ   A j"BpBQ @ ( @@ B AuI " ("Ak6 AJ (     @@ BoX@ AA  B" BpBQ B" BpBQ@    AAN  B AuI  " ("Ak6 AJ  (      A j"BpBR BpZ@ A B AuI " ("Ak6 AJ (  @ B AuI " ("Ak6 AJ (  B AuI " ("Ak6 AJ (  B! Aj$  ~#A k"$@ ("AjA ("E@B! ("-  A: AA A:  A6 (! Aj""B7 B7  6 ("AjA ("E@B! ("-  A: AA A:  A6 (! Aj"B7 B7  6 )"B AuO@ " (Aj6 B~! B~! @ Aj "E   !@ Aj F@ ("E  ("E  ( A (   Ak" ("Ak6 AJ ( B~ Aoq@   ((" ((AvAqA ! @ ($" (Aj6 A"BpBQ  B A B ((" ((AvAqA A   ("Ak6 AL@ (  !  @ B AuI " ("Ak6 AJ (   ("Ak6B! AJ (  A j$  ~#A k"$@@@ )"BpZ@ "/"A F  A0F@ ( -  ((D Alj(  AA  A1"BpBQ @ ("AjA ("E@ ("-  A: AA A:  B7 Aj"B7 Aj"B7 B07  Aj"6  A j"6  6  6 BpZ@  6  Aj  @ B0B0A AjA "BpBQ@ (")! B 7  7 )B0B0A AjA !@ )" B AuI " ("Ak6 AJ (  BpBQ   @ B AuI " ("Ak6 AJ (  @ )"B AuI " ("Ak6 AJ (  )"B AuI  " ("Ak6 AJ  (   ) ) B AuI " ("Ak6 AJ (  B! A j$  ~#A k"$ B7 B7  ("6@ ("AjA1 ("E@ ("-E@ A: AA A: A6  A6 B 7 A6  6 @@  (A ~#Ak"$@@@ BpT "/A-G ( "   (" Aj (DAj(6 A  A6B!  B0!@ )" BpB0R@ ( " ")" Aq" I @ B AuI  ("Ak6 AJ (  B07 A6  Aj! Aj!@@ BPE@  Atj" /"AqAG   N   Atj/AqAG   Aj6 A6 ("AjA (" B! ("-  A: AA A:   j-!  6 A6 ("AjA (! AI@ E@B! ("-  A: AA A:  A:  : A6 B7 A6 B!  E@B! ("-  A: AA A:   ; A6 B7 A6 B!  A6 B7 A6  (6 B! Aj$  #Ak"$ (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A (@! A6 Aj A j"A  (@"(; Aj A (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A AA! (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A (@! A6 Aj A j"A (@! A; Aj A (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A$ (@! A; Aj A jA  (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A Aj$ ~ (8 j68@ (<"E@  ~ A k"  I"AM@B  A! 5 !  ArK@  j3 At ! Ar! )0  I~  j1 At   AtA8q"70  O@ ) " )|" )" B )|" " |" B7 B 7 B"B  B |"7  7   j6<  k"Aq! Axq" K@ )! )! )! )! @   j)" " |"  |" B "|" B!  B"B  B |" ! B ! ! Aj" I 7 7 7 7  AM@B!A   j5!A "ArK@   jj3 At ! Ar!  I~   jj1 At   70 6< ~#A k"$@@ " A0 A"BpBQ@ B7  B "AuO@ " (Aj6 @ Aj " )"BY@B! BT   7 @ AuI " ("Ak6 AJ (   )! )"B AuO@ " (Aj6 Aj  @@ )"BS@   |"7B! BS  " Y   7 )! )"B AuO@ " (Aj6 Aj  @@ )"BS@   |"7B! BS  " Y   7 !  )"7~  AH   )"BpB0Q       )! )! ) ! )"   }"  }"  U"AA  |SA  S !  B! B AuI " ("Ak6 AJ (  A j$  ~#Ak"$A!B!@@@@@@@@@@@@@@@A B " AkAnIA j     AuI@ !  " (Aj6 !  > Aj"A A  AA A! ("(,AM @ (8"(")"B@BQ BBR (! (Aj6 B! ("(,AM @ (8"(")"B@BQ BBR (! (Aj6 B!  AuO@ " (Aj6 A"BpBQ@ !   ! B AuI  " ("Ak6 AJ  (   @ AuI@ !  " (Aj6 !  AA  Aj" B|A AAt  {!   ((1!   ((1!   ((1!  A!  {! Aj$  AAAA˧ ~#A@j"$@ BpT "/A0G ( ! @@@ -@ AA  A! )"A A"Bp" BQ B0  B Q"BpB0Q@ )! B AuO@ " (Aj6     A!  A" BpBQ@ B AuI  " ("Ak6 AJ  (   )!  78  70  7(  7  )B0A A jA !@ B AuI " (" Ak6 AJ (  @ B AuI " (" Ak6 AJ (  BpBQ  "@  ( "AH  E @ ("AqE@ ) E   AqAG  Aj5B B0R   AA  AqE@A! AqE  (("E  -(AqE  AA A!   A@k$   #A0k"$ A$j 6 A:, A 6 A6(  6 A6 A6 @@@ (" E@ A j("E  (" Atj! AkAqAj! (!@ Aj("@ ( (  ($(   ( A j Aj(  Aj! Aj" G  Aj("E At! AkA?qAj! (! (!@ Aj("@ ( (  ($(     j"Aj(6  Aj-:,  Aj(6( A j(!A! A!@@@ Aj(Ak At j" (AG  ((! A!  6  6 Aj(!@@@ (Ak At j"(AG  ((! A!  6  6  Aj(Atj"( A j Aj(  Aj! A j"G  (O  ( ( Atj"( ( ($(  E  A  A ! A0j$  ~#Ak"$@@@@@@ "A0 A"BpBQ@ B7  B "AuO@ " (Aj6 @ Aj " )" BY@B! BT   7 @ AuI " ("Ak6 AJ (  B0!   A6 E  )!B0! AN@ )!  BpZ@ "/"A F  A0F@ ( -  ((D Alj(  AA B0!  AL@B0!  B0! )" BpB0Q B AuO@ " (Aj6 Aj AH  B" BpBQ@ !   )B (  BS@ !  B AuI  " ("Ak6 AN   @ B AuI " ("Ak6 AJ (  B! B AuI  " ("Ak6 ! AJ  (  Aj$ ~#A k"$ )!@ B0"BpBQ@ !  @@@@ BpZ@ "/"A F  A0F@ ( -  ((D Alj(  B AuO@ " (Aj6  7  7   7  7  AAAA "7B! BpBQ   AAAA "7 BpBQ  @ B AuI " ("Ak6 AJ (  @ A A"BpBQ@ !   B0A AjA ! B AuI " ("Ak6 AJ (  @ )"B AuI " ("Ak6 AJ (  )"B AuI  " ("Ak6 AJ  (   B AuI " ("Ak6 AJ (  B AuI " ("Ak6 AJ (  A j$  @@ BpT BV " "A(j(O @@@@@@@@@@@ /Ak  ($ Atj)"B AuI " (Aj6  ($ j0B ($ j1 ($ Atj2B ($ Atj3 ($ Atj5 ($ Atj("AN@  B~ "B} BBV ($ Atj)!@ (("E B|BV ((AqE B|BX@ B B~ "B} BBV  ($ Atj) B~ ($ Atj*"B} BBV B~ ($ Atj)"B} BBV !@ B AuI " ("Ak6 AJ (  E@B   A! AH ("(8 Atj(" ("Ak6 AJ     (!@@@@ "Aj!@@ -"A k5 E A  @@@ -A*k @A  A/!@ Aq"A MAA tAq  -! Aj! Aj!@@@@@ -" E  A G A  E A  A*G Aj-A/G Aj!  Aj! A/!   AN@ AvAqAj( vAq   E @@@@@ Ak  -"AF -E@A -  AqAG  -AG  -AG  -AG  -AG  -  Aj6AO -AG  - A[ -AG  -AG  -AG  -AG  -AG  -  Aj6AM -AG -AG -AG -AG -AG -AG -AG - AG A A=!A -A>F   ~#Ak"$@@ B`B Q@ A×AB!  A"BpBQ@ !  )"B AuO@ " (Aj6 ! A j @B! B AuI   ("Ak6 AJ  (   ( !@ E AN (Aq j! @@ AN@  )"AqI  B0!   ("(,A/M  (8(" (Aj6 B!  Aj! BPE@  Atj/   j- ! ("AjA (! AqAM@ E@B! ("-  A: AA A:  A:  : A6 B7 A6 B!  E@B! ("-  A: AA A:   ; A6 B7 A6 B! B AuI  ("Ak6 AJ (  Aj$  AAAA˧ ~#Ak"$@ BoX@ AAB!  B! A A"AH  A: A j Aj !  A̩A " A!@ AH ("(8 Atj(" ("Ak6 AJ   "AH @ A: Aj!  AA " A!@ AH ("(8 Atj(" ("Ak6 AJ   "AH @ A: Aj!  AA" A!@ AH ("(8 Atj(" ("Ak6 AJ   "AH @ A: Aj! A A"AH @ A: Aj!  AA" A!@ AH ("(8 Atj(" ("Ak6 AJ   "AH Aj"  A: Aj  k{! Aj$  ~@@@@@@@ (" ( qAsAtj("@ A0j!@  AkAt"j"( F  (Aq"  A! -"AqE  AqE  AN  Aq" A(j("I!  O  E  B07 B07 A6  Bp 7A ( j! (! E  B07 B07 B07  AvAq"6 (Av"E @@@ Ak  Ar6 ("@  Bp7 (Aj6 ("E@A  Bp7 (Aj6A (()"BpBQ  B AuO@ " (Aj6  7A    E A )"B AuO@ " (Aj6  7A A! A|qAxG  ((5B BR  A ((D /Alj("E ("E  Bp  %!  @@ (" ( "O ,"Aq! Aj" AN   O  ,"AqAt r! Aj" AN   O  ,"AqAt r! Aj" AN   O  ,"AqAt r! Aj" AN   O  ,"AH  At r! Aj k"AN  (E@ (AA A6A  j6 ("("Aj Av" Aq"t" kAj ("E@ ("-E@ A: AA A: A6A  At r7 A6 A6   ( ("kK@ (@ A6 A6 ((  (AA A6  ("Ak6A AJ  (( ! )BZ@ A Aj  (A Aj  ! ( j6 E@  jA:   #Ak"$ ("@A (  (   A j("@ (" A lj! Aj! A j! @@@@@ /Ak @ ("AO@ A j(!@A AA   A@j"AK  E  A j(! A   E A  ( Aj( A j( E A  /! A: A6 Aj@@@@@@ /Ak Aj  /"AO@AA AI!  A! A I AA AI!  Aj ("AI@  A  AA Aq Aj j! !   j" A n"Al jA0r: A AF  Ak!@  Aq"A n" A pA0r: Aj Al jA0r: An!  AjF! Ak! E  A j( E A  A j" G  A ! Aj$  ~#Ak"$ A*j!@@@@@ BpT  "/G ( "   (" Aj (D Alj(6 A  A6B!  B0!@ )" BpB0R@ BpT  "/ A&jG  ( " E @ ( "E@ Aj(!   (Ak"6 Aj(!  (E  (! (" 6  6 A6 A6 Aj  ( Aj" G@@ A k(E  (" G  A6 @ )" B AuI " ("Ak6 AJ (  B07 A6  Ak" (Aj6  6 A6 ("E@ )"B AuI  " (Aj6   )"7 E@ )!  7 AF@ B AuI  " (Aj6  A Aj! Aj$  AAAA AAAA ~#A0k"$@ BpT "/A0G ( ! @ -@ AAA!  A! )"A A"Bp"BQ B0  B Q"BpB0Q@ )"BpBQ  " W! B AuI   ("Ak6 AJ  (   A"BpBQ@ B AuI  " ("Ak6 AJ  (   )!  7(  7  )B0A A jA !@ B AuI " ("Ak6 AJ (  @ B AuI " ("Ak6 AJ (  BpBQ "E@A!   ( "AH @@@@ -AqE )"BpT @ "/A0G@ -Aq!  "AH    AA    ! A0j$   E@ (!A-! Aj  A+A ("Aq"!  j !@ AqE@A!  @ E@  Aq" E !@  ,AJj! Aj! Ak"  j! @@ (E@A! (" ("      ("O@A! (" ("     Aq@ (! A06 - ! A! A: (" ("     kAj!@@ Ak"E  A0 (E A A!    (   : 6A!   k!@@@ - "Ak !A!  Av! AjAv! Aj! Aj(! (! (!@@ Ak"E   (E A A!      (  A!@  F@A Aj!  (E Ak I     (  ~#Ak"$@@ "A0 A"BpBQ@ B7  B "AuO@ " (Aj6 @ Aj " )" BY@B! BT   7 @ AuI " ("Ak6 AJ (   )" " |" BY@ AA  @@@ AL" E  B A!B! E     ! @ )" B AuO@ " (Aj6   AH  B|! Aj! B}" PE A0 B|" BX~ BB~ "B} BBV AAAH @ B AuI " ("Ak6 AJ (  BX@ B!  B~ "B} BBV!  B! B AuI " ("Ak6 AJ (  Aj$  #A k"$@@@ ( E@@@@@ ("Ak ( @ ("( (A ( ! A6 6 B7  (  F  ( E@ (!A  ("( (A ( ! A6 6 (! ( At ! 6 (6  (  A! E  B7 ( E  ("( (A ( ! A6  6  (E  ( @ ("( (A ( ! A6 6 B7A! E  B7 ( E  ("( (A ( ! A6  6   (AjAmA ( "@ AA Aj ! E@ B7 B7  (6 Aj!  AAl  (As6   AAA ! (AG@ ( AGAt!  ("E ("E ( A (  A j$  Aq! AvAq! A!@ ! -"Aq! Aj Av"AG  ,"Aq! AN@ Aj! Aj  -! AM@ At rAk! Aj  - Atr AtrAk! Aj !  jAj!@@ AF@@   j" O @@ ("Aj" ("L@ (!  ( (  AlAm"  J"At ( "E@A 6 6 (! Aj6  Atj 6 ("Aj6  Atj Aj6 Aj" I   vAqE  @ ("Aj" ("L@ (!  ( (  AlAm"  J"At ( "E@A 6 6 (! Aj6  Atj 6 ("Aj6  Atj 6 AI A  #Ak"$@@@ (@ (! A j A j("6  ("6  ("6  ("6 - ! (! -Aq  ! !   ( ( !  (   Aj((  A! A: A0! A06 A6 A6A  k"  K!A ! @ A l!@@@@ /Ak Aj(  Aj(  Aj/"AO@AA AI  A A I AA AI ! A j!  j! A k"  @  I@  k!@@@ Aq"Ak !A!  Av! AjAv! Aj! Aj(! (!@ Ak"E    (E  ( (      A!@   F  Aj!   (E Ak I ! : 6  A! Aj$  #Ak"$@@@ ("AG@ E@A! (" ( Aj( Aj(( "    Aj6 (!  6 B7 AqE  A$jA6 AjA6 A)6, A6 A6  6( A:L A6H B 7@ A68 A60  A0j6  A(j6 AjA Aj  A$j("E  ( !@ A0j @@ (0E@  (4 (8   -9! -8! (4! AAE  A!  AqE   j" M@ j!  k"    Aܵ A Aj Aj5 ~ B |"> B ! Aj! Aj!  Aj"G ~  At"j j5 ~ |"> B   A 6 AI Aj! A~q! Aq! A!@   jAtj   At" j5!B!A! AG@ ! !@ Ak" 5 5 ~ ||">  5 Aj5 ~ B ||"> B ! Aj! Aj! Aj"G  ~ At"  jj" 5 j5 ~ ||"> B   A 6 Aj! Aj" G A! A j$  ~ AH@ Aq  ("(,I@@@ (8 Atj(")"B@BR Aj! Aq!@ BPE@ E @ "/"A-G Aj! /"A0G B! AF  A:kAuK  AG   Atj kAG  AjAAE   E @ "-"A-G Aj! -"A0G B! AF  A:kAuK AG   j kAG  AjAA   (Aj6 BA"BpBQ@  A"BpBQ@ B AuI  " ("Ak6 AJ  (    " (Aq" (Aq"  J!@ B AuI  ("Ak6 AJ (  @   G   B0!  AAAA ~@ ("AN@A! Aq B! AG  4B|7A AL@ B7A A?M@ (" ( "AtjAk(! B A M~ A kv AO~ At jAk5B B A k "}  (7A A! AqE@ (E@ B7A B! AG  ( ( "Atj"Ak5B ! B! AO@ Ak5! B7  BR ( "At k"Aq! (!A!  Au"K@  Atj(! @  Aj"K  Atj(A At Ast  vr! A!  A jAu"K@  Atj(! B  A!  Aj"K  Atj(A At Ast  vr  B "}  (!A! 7  #A k"$@@@@@@@@@ Aj"@ AH A- "E    ! AO@ AjA|q" F   k"   K"E A!@  j-E  Aj"G  Ak"K   E  -E A! AF  -E A! AF  -E A! AF  -E A! AF  -E A! AF  -E  AF  -" AA !  AA+A   Ak!A! @  j"Aj(" Ak Asq ("Ak AsqrAxq  Aj" M  F  k!  j!A!@  j-E   Aj"G  6  6  6 Aj Aj )7A!   j! 6 6 6 6 A j$   (! (! (! @@  @@  I @  j!@@@@  k"AO@ AjA|q" F  k"E A!@ j-A F   Aj"G  Ak"K    F@ !  A!@ j-A F   Aj"G !  Ak!A! @  j"Aj(" AsAk Asq ("AsAk AsqrAxq  Aj" M  F@ !   j!  k k!A!@@ j-A F   Aj"G !  j! j"Aj!@ O j-A G A! "!   O A! !  "F  @ -@ AA (    j! k!A! G  jAk-A FA : !   (  E  A!  AtAj(" AtAj/j! A!@ Aj! -"A?M@  AvjAj! @@ ("Aj" ("L@ (!  ( (  AlAm"  H"At ( "E@A 6 6 (! Aj6  Atj 6 ("Aj6  Atj 6 As! Aq jAj!   ! AH@  jAk!   -! AM@  Atj jAk! Aj  -  Atj AtjjAk! Aj ! @@ ("Aj" ("L@ (!  ( (  AlAm"  H"At ( "E@A 6 6 (! Aj6  Atj 6 ("Aj6  Atj 6 As! !  I A ~#Ak"$@@@@ BpT "/A,G ( "   (" Aj (DAj(6 A   B0!@ )"BpB0R@@ "/AkAqA M@ ( ( ( -E  AA  A0 A"BpBQ  A j   A j  A(j ! ( " (I @ )"B AuI " ("Ak6 AJ (  B07 A6   Aj6 A6 (E@ AN@ !  B~ "B} BBV!  )! AN~ B~ "B} BBV !B!  "BpBQ  (AF@ !   7  AN~ B~ "B} BBV "7 A Aj!    A6B! Aj$    (!#Ak" Aj"6 A! @ ("AG@ (! @ ! ! "L @   j" -"At" AЫj-j" J  AF@ (! "J    G@ AI  E @  AqF  AvAqF  AvAqF Av G  6 Aj!@@@@@@@@@ Aӫj-Ak  j-!  Aj"6 ("AF@ 6 !  !  F   j/!  Aj"6 ("AF@ 6 !  !  F   j(6   j"(6 /6   j(6   j"(6 -6   j"(6 /6   j"(6 (6 -6  Aj"6 ("AG  6 6A! ~|#Ak"$ "B "AuO@ " (Aj6 B! @ A"BpBQ B "A j!@ A AI |  AM  B| AO  Aj AH  + " Dd Dcr B !   AA " A!@ AH ("(8 Atj(" ("Ak6 AJ   BpBQ @@ BpZ@ "/"A F  A0F@ ( -  ((D Alj(  AǷA B AuI  " ("Ak6 AH    B0AAA !  ("Ak6 AJ  (  @ AuI " ("Ak6 AJ (  @ B AuI " ("Ak6 AJ (  Aj$ |#A k"$  6  6 B7 A6~@ ("Aj Aj ("E@ ("-E@ A: AA A: A6  A6 A6  Aq7  6@ AJ@@@ )"BX@ "AM   @@ B "AuO@ " (Aj6  AM@  "9  AkAmK  B|"7 !  Aj   +! Dc  D0Ad   DAc@   Ax "b  AO@  AkA vAj  AqAr! @@ (" ( N (@ ( AtjAj ;  Aj6  AK ( jAj :  Aj6     Aj! Ak"    AA (("Aj ( (B ! A j$  ~|@@@|@ "B Aq"AЍO@ b  BS@D D9B.@dE  D AI  AK BY@A!DvD۪DUZ?DD?"D@  "D@ ! E@      !@@@ Aj D?D࿠ Dпc@  D?D " D? AjB4! A9O@ D?" D  AFD A kB4! AM|D?    D? ! #Ak" $ Aj! (!@@ A6 A6 AJ@ (! !@@ ( G Aj( G A!  Aj! Ak"    (H  A Aj@A!  ( "Aj"6 ( Atj" 6 AN@ ((8 Atj(" (Aj6  6@ ( "AJ@ (!@ Aj( F  Aj! Ak"  AG@ (,AJ@A!A!@@@ A j Aj ( (( j(Atj(  "Aj ("@ ( ( F@ (( ( F  A6 A6A!   ( 6  (6 Aj! Aj" (,H  A! (  A!  @ Aj(E A j("AF ( (Atj(!   6  6A! Aj$  ~#A k"$@@ "A0 A"BpBQ@ B7  B "AuO@ " (Aj6 @ Aj " )"BY@B! BT   7 @ AuI " ("Ak6 AJ (   )"B AuO@ " (Aj6 Aj  )! )"BS@   |"7 @  S BYqE@ B07  @ BpT "/AG -AqE  A(j5Z ($ Atj)"B AuO@ " (Aj6  7    Aj"AH   B07 @ B AuI " ("Ak6 AJ (  )!  B! B AuI " ("Ak6 AJ (  A j$  #Ak"$ (@@ (!@ (" (I@@ -"A)F  AF  (!A!   @ (" k" j  ( j" j   k (" j  j  (" (I  -! A! AqAG A k! (!@ Aj6 Aj@ AAA!  ( j"Aj  ( k (Aj6 ( jA : ( j  j6 A (! A6 A jA (! (" (I@@@ -"A)F AF (!A!   @ (" k" j  ( j" j   k (" j  j  (" (I  (! ( j  kAk6A! -AF Aj$  ~|#A@j"$ +" D(@" DAc@  Ax "A j  AH"AL!~ + D(@" DCc@  B " B~ B}B| B}" B"} B?B|B| B }" B"} B?B||B|B+}! @  B! B! Aq!@ AF@A!  PA}A} PAA BPjj! A~q!A!A!@ ( Aj(A  j! Aj!  Aj"G E AtAj(! +D𿠠DpA +0 +(D@@ +D@wKA + DL@! @ ~ DCc@  B B78 A8j Aj (,ADmAl!  A@k$ DD D>CeD D>f  #Ak"$@ (@"E@   (" ("H@ (! !   Aj" AlAm"  H" At! ("("Aj! (!@ (" AjF@ A   ! (!@ E  A! -  A: AA A:   ( !  A!      ! (!@ E  A! -  A: AA A:   ( ! @A  k"  K  A!   ( (AtA  k"  K !  6  Av j6 (@! ( Aj6  Atj )7 Aj! ( (G@ A  (6  AjA  (6  Aj(6 A (@!  ; Aj AjA  6 Aj$  |@@@@@@@A B " AkAnI"Aj s ")""Aq! BPE@ E  Aq!@ AI@A!  Aj!  k!A!@ / Ak/ Ak/ Ak/ AljAljAljAlj! Aj!  Aj"G E  At jAj!@ / Alj! Aj! Ak"  E  Aq!@ AI@A!   k!A!@  j"Aj- AljAl Aj-jAl Aj-jAl Aj-j!  Aj"G E   jAj!@ - Alj! Aj! Ak"  Al s Al!  B|"" a B! B Al!  s ~#Ak"$@@@@@ BpT "/A.G ( "   (" Aj (DAj(6 A B!  (@B0!A!  )" )" "Bp"BQ@B0!  B Q@A! A6B0!  (@ B"A!@ B AuI " ("Ak6 AJ (  Bp"BQ @ BR (Aq Aj A AAH  A~ ) ("B|BX@ B  B~ "B} BBV AAAH    A6 A!  @ B AuI " ("Ak6 AJ (  B!A! B AuI " ("Ak6 AJ (   6 Aj$  @ G@ (! ( E@@@ (Ak ( ! (@ @ ( (A ( ! A6 6 B7 @ ( (A ( ! A6 6 B7 ( @ ( (A ( ! A6 6 B7 (@  @ (AA ( "@ Ax6@ ("AF ( AG ( "E At" (jAk(AxG Ak! A AJAk! Ak!@ AL A!  K@ ( j(!  Ak! Ak! Ak! E ( A (    AA ( @ ("( (A ( ! A6 6 B7 ( A (  AAA#A ( @ ( (A ( ! A6 6 B7 ~|#Ak"$B! @  Aj Aq" AvAq"E"AH  AvAq k"  H"AJ@A k! Aj Atj!@@@ )" B "AuO@ " (Aj6  AM@  " 9  AkAmK  B|" 7 !  Aj   +!  9 A " Dd Dcr! Aj! Aj! Aj"  D! @ AL E Aj ! @ BpT "/A G @ ) "B AuI " ("Ak6 AJ (  ~ " DAc@  Ax "Q@   B~ B} BBV " 7 B AuI  " (Aj6  AA Aj$ ~#Ak"$@ BoX@ AAB!  @  )"BpT "/A1G ( E A< A"BpBQ  B AuI"E@ " (Aj6 " (Aj6  A!@  " ("Ak6 AJ (  E )"B AuI  " (Aj6  @  "BpBQ  Atj)B0B0A A !@ )"B AuI " ("Ak6 AJ (  @ )"B AuI " ("Ak6 AJ (  BpBQ@ B AuI  " ("Ak6 AJ  (   B AuI " ("Ak6 AJ (  ! Aj$  ~#Ak"$@@ BpZ@ "/AkAqA I  A6 Aւ B!  ( ( ( -@ AAB!  A(j("AH@B!  )" B AuO@ " (Aj6 A j @B!  @@ ( " AH@  j"A AJ!  !  O  ! )" B AuO@ " (Aj6 Aj @B!  @@ ("AH@  j"A AJ!  !  O  !  6  AH   )" BpB0Q  Aj  @B!  ( k"  k"  J"AJ@ ( ( ( -@ AAB!  ($" /Aj-"tj  tj  t  (Aj6 Aj$  ~#Ak"$ Aj A!@ B AuI " ("Ak6 AJ (  @ E@B!   6 !@@ ,"AN@ Aq"A kAO A Gq  Aj!  A A jE ( !   6 ((!@ (  kF@ @B! -(Aq  B!   AjA @A ((Aq  A A1! ("!@@ ,"AN@ Aq"A kAO A Gq  Aj!  A A jE ( !   (  kj"6 BpBQ@ !  (  kF@ !  B~! B AuI " ("Ak6 AJ (  Ak" ("Ak6 AJ ( B Aj$  ~|#Ak"$@@@@@@@ Ak")"B "AkAnI @ BpT Aj  "AH  E @ AuI " ("Ak6 AJ (   )7A  A"BpBQ @@@@ B A j  !@@@@ Ak B P B }!   AtAk|!  B|BX~ BB~ "B} BBV 7A B7A (!     (Aj( A     (Aj( A  ("("@ -(Aq  B|!@ Ak !  AtAk ! B~ "B} BBV7A     Aj( A  B07 A ! Aj$  ~ " 6 B7$@@@ (<"E ("Aj At" ("E@  A!  A " 6$ (  6A k  AA  "E  A6  " B "g"t6   t Av Asvr6  6A k  A6 P@ Ax6  (! (!@ BX@ AA  "E  A6   g">  6 A k6  AA  "E A6  " B "g"t6   t Av Asvr6  6 A k6  B7 A !  A !A ! A6  6  AjAA!@ ("E ("E ( A (  A j$  r  (!@  "BpBQ @@@@ BZ@ AA  ("AjA ("E@A! ("-  A: AA A:   " 6 E @ AG (" E  Aj( A AJ "6 E  A   ("Aj A AJ" ("  ("-E@ A: AA A: A6 @ B AuI " ("Ak6 AJ (  ("Aj  (B  A 6  @ AG Aj("E Aj(    6  6 A6 A: Aj A j"6  6  AF:@ E E (   BpT  6  #Ak"$@@ E@ AqAr!  A! Ak"  AK  A{q! Aq! Ak!@ (!@@@@@@@@@@@@  A!A!@@ A%k   A! AA (@-nAq! A!A!@ A+k A! Aj"AI A! A!@@@@ Aj    A!@ A$  > AB AAAH   (Aj6  B AuI " ("Ak6 AJ (  B! Aj$  AAAA˧ ~ BoX@ AAB @@ A6 A"BpB0Q@ ("(,AM @ (8"(")"B@BQ BBR (!  (Aj6 B!  A! B AuI " ("Ak6 AJ (  B!@ Bp"BQ @ A3 A"BpB0Q@ ("(,A/M  (8(" (Aj6 B!  A! B AuI " ("Ak6 AJ (  B! Bp"BQ@ B AuI  " ("Ak6 AJ  ( B @ BQ@ (AqE  BQ@ (AqE  A As!  u!  AAAA˧  ("@ (!@@ Aj!   j-""AN @@@@@@@@@@@ Aj-Ak  jA  I-AqAG Aj  jA  I,! Ak  jA  I,! Ak A`qAG   AJ   AjAqA O@ A~qAnG  A@N   A@N   AjAqAK  A@N   AjAqA0O   AJ   Aj"jA  I-AqAG   Aj"jA  I-AqAG  Aj   Aj"jA  I-AqAG  Aj "" I  6 6   k6   j6  k6  j6 A6 ~ BoX@ AAB B0!@@@ )A"BpBQ@B0!  A A"BpBQ B AuO@ " (Aj6 BAE@ AB AAAH  @  "Bp"BQ A A"BpBQ  @   A  AAAN B0! B AuI " ("Ak6 AJ (  @ B AuI " ("Ak6 AJ (  @ B AuI " ("Ak6 AJ (  B! B AuI  " ("Ak6 AJ  (    B! B Q A A!    #A k"$ B7  ("6@@ BS@ (! (!B }"BX@ AA  "E  A6   g">  6A k  AA  "E  A6  " B " g"t6  t Av Asvr6  6A k  A6 P@ Ax6  (! (!@ BX@ AA  "E  A6   g">  6 A k6  AA  "E A6  " B " g"t6  t Av Asvr6  6 A k6  B7  A ! A6  6  Aj  l@ ("E ("E ( A (  A j$ #Ak"$ (AH@@ (@"( ("L@ Aj!A! ( AjA Aj   (!  Aj6 ( Alj"A6 B7 Bp7  6 (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A AA! AJ@@ (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A Ak"  (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A A (  Aj$ ~@ (@A! B AuI  (! " ("Ak6 AJ  ( A @ BpBQ ( "BpBR (("Aj ( ( A6 B7 A6A A ")" "Aq"E  Aj! BPE@    ( j" ( J@A A  @ (@ Aq! AG@  k!@ (  (jAtjAj  j"Aj-; (  (jAtjAj Aj-;  Aj"G  E  ( ( jAtjAj  j-;  ( (jAj   ( j6A ! B AuI (!  ("Ak6 AJ (   ~#Ak"$B!@ B  "BpBQ  7@@ AAAA Aj"BpBQ @@ ("( (()"A BoV"AylAk"A (kvAtj("@@@ ( G (, G ( E  (("  A"E    (Aj6 A"BpBQ Aj! A B0B0A.@ B AuI " ("Ak6 AJ (  A B0B0A. B AuI  " ("Ak6 AH   @ B AuI " ("Ak6 AJ (  B! B AuI  " ("Ak6 AJ  Aj! (  Aj$  #Ak"$  7@@ BpZ@@ /"A0G@ AF!  "AN B!    B0A Aj!  A< A"Bp"BQ@ !  @@ BpZ~@ "-AqE "E@  ("Ak6B! AJ  (   F  (Aj6 )@"B AuO@ " (Aj6  AE  ("Ak6 AJ  (   A A!  ("Ak6 AL@ (  Bp"BQ B0  B Q"Bp  B0R  B0A Aj!   A AjA! B AuI " ("Ak6 AJ (  Aj$  ~| "B?}BX@ D" DA" " A+""" ""   A+ A+ A+A+ Aد+ AЯ+Aȯ+ A+ A+A+      @ B0"AkA~M@ BP@D BQ  AqAG AMqE@ "  D0CB}! B?}"B4"A+ B-AqAt"Aj+" Aj+  Bx} Aj+ Aj+"" "  A+A+ A+A+ A+ A+  ! A!@@  jAv"AtAj("Av"I@ Ak!  AvAq jI@A Aj!  N A!A!@ AO@A! AK A!@  jAm"  Al"Aj/ Aj-AtAqr K""   "kAJ A! At Al"Aj-"AvrA j"AH  Aj/ AtAqr! Aj!@ Aj!@@ -"A?M@  AvjAj" K  As! Aq jAj   jAk AH  -! AM@ Aj!  Atj jAk  Aj! -  Atj AtjjAk " M  !  As! !  @@ A I@ Av!@@ ("@ Ak! At jAk!  jAt jAk! A)I!@ E   j"A(O   (6 Ak! Ak! Ak"AG  Aq! A O@ A A AKAt ( j! E@ 6  Ak"A'K  ! Atj("A k"v"E  A'M@ Atj 6 Aj!  A(A A(A A(A AAA A(A @  Aj"K@ Aq! At jAk!@ AkA(O  Aj  t (" vr6 Ak!  Ak"I  Atj" ( t6 6  AA(A ~#Ak"$@ B`B Q@ A×AB!  A"BpBQ@ !  "(! )"B AuO@ " (Aj6 @@@@ A j E@ Aq!@@ ( "AH@  j"A AJ!  !  O  !  6 )"BpB0Q  B AuO@ " (Aj6 Aj   ("AN   j"A AJ!  B! B AuI   ("Ak6 AJ  (    O  !      J! B AuI   ("Ak6 AJ  (   B! B AuI  ("Ak6 AJ (  Aj$  ~|#A k"$@ ( (!  (" ( (" ( lj (7   (  ( lj (7@  )B0B0A AjA "BpBQ@ A6  @ BX@ "Au AGr  |  B "AM  B| AkAmM A!  Aj AH  + "Dd Dck "E@ K Ik! @@ )"BpZ@ "/AkAqA I  A6 Aւ   ( ( ( -E  AA A6  A6 @ )"B AuI " ("Ak6 AJ (  )"B AuI " ("Ak6 AJ (  A j$  ~|@@@@@@@@@@A B "" AkAnIA j (("E  -(AqE  (! B7 B7  6    (("E  -(AqE  B|""Dd DcrE  (! B7 B7  6    Aj ! (("E  -(AqE  "A j(AJ  (! B7 B7  6  Aj A AuI   ("Ak6 AJ  (   "Bp"BQ@A B~R  A՛AA A"BpBR A @ AuI " ("Ak6 AJ (  A! AA  #A0k"$@@ Aj "E@A! B AuI  " ("Ak6 AH    "E@@  AjG ("E (("E ( A (  A! B AuI  " ("Ak6 ! AH   @@@@@@ Ak  AL   Av   AL   E   Av !@  AjG ("E (("E ( A (  @  G ("E ("E ( A (  @ B AuI " ("Ak6 AJ (  B AuI  " ("Ak6 AJ  (  A0j$  #Ak"$@@@ (" ( "O ,"Aq! Aj" AN   O  ,"AqAt r! Aj" AN   O  ,"AqAt r! Aj" AN   O  ,"AqAt r! Aj" AN   O  ,"AH  At r! Aj k"AN  (  (AA   j"6 Av!@ Aq@  Axr6  @@ (" K@ AK    k" (O@ (!   (k6 A  A6  ( Atj("AH  (((8 Atj(" (Aj6  6 A  A6A ! Aj$  ~ A,j(" A(j"G@ Aj!@ "Ak/! (!@@ Ak"-"Aq@ ( Atj)" B AtK   ($ Atj)" B AuI  " (Aj6 -!  Ar: AkA: (" 6  6  7  Aj6  6  6  G  @ A j("@ ACeD D>f!@ ) "B AuI " ("Ak6 AJ (  ~ " DAc@   Ax "Q@  B~ B} BBV "7 B AuI  " (Aj6  AAB! Aj$   #A k"$@@@@@@@@ ("(AG@ -! A:  : E  B7 A6 A6 A6 Aj Aj (Aj"E   6  A6 A6 (  A6 Aj("E  A j(!A!@   k"6   j" 6@@@A AjA Aj"E@ (!  ! Aq" AF A: AF  Aq!A  A:  A!A ! @    6 6 6   j!  I  AA&A A  K  A6 A6   A  (Aj6  (Ak"6 E@ A: A6 A j$ ~#Ak"$ A@k"B7 B78  70  B˧ٲ7  Bޑܷ7  7(  Bټ7  B̓׬۷7 Aj"   A:O  AjA )! )! 5! )8! ) ! )! Aj$   B8" "B  |""B  |"B |"" B  B "|"B B|"" B  B"  |"B |" "B   B " |"B |""B   B" |"B |" "B  B " |"B |"B B "B |"B |"B  AM@  @ A AK" AkqE@ !  A !@ "At! I A@ kO@AA06A  A A AjApq A I"jA j"E  Ak!@ Ak qE@ !  Ak"("Axq jAkA kqAk"A  kAKj" k"k! AqE@ 6 ( j6   (AqrAr6 j" (Ar6   (AqrAr6  j" (Ar6  e @ ("AqE Axq" AjM  AqrAr6 j"  k"Ar6 j" (Ar6  e Aj |#A k"$@@@@@@@ B "A j  "AH   6  Aj "Aj"A (! Aj"B7 B7  6  5  !@ ("E ("E ( A (   ("Ak6 AL@ (     AkAmM@  B|"DAc Dfq@   A "6  a   @A! A"BpBQ  Aj AE   AuO@ " (Aj6 Aj @   A! A"BpBQ  Aj A  ( (F  AA A!   (6A! A j$  ~#A k"$ )A"BpBR@ B7 A6  6 (!  ")" Aq"6@ Aj Aj ("E@ ("-E@ A: AA A: A6 A6 A6  A6 A6  B7  6 (Aq"@ Aj! Aj"!@@@@ -AqE@ -!  /"AK  A AE (" (H@  Aj6 ( Aj! (@ Atj ;   j :  Aj   Aj  Aj! Aj! Ak"  @ B AuI  ("Ak6 AJ (  Aj! A j$  #Ak"$@@ AF@A! A E   A! A   A! ( G @ (@"( ("L@ Aj!A! ( AjA Aj   (!  Aj6 ( Alj"A6 B7 Bp7 AA AF! A{q!@A! /  (@"Aj! ( (G@ A  (6  AjA  (6  Aj(6 A   (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6 A@ AF@ A E   A   (" F AF@ AA  A! Aj$  ~#A k"$  ("AF|D B7 B7  ("6~B AjF @@@ ( "E@A!A  (A At ( "E   6  6 (! ( At !  6  (6  ( @ ("AJ ("E AjA5A Aj (! AG B!B  (@ ("( (A ( ! A6  6 B7 A!  AxG B  (!~ (AF@ )  5B "Ax k AxL  AjB4! B B !   5 B?!@ ("E ("E ( A (   9 A j$ ~@ )"Aq"E@ !  )"Aq! BP" E@ /  - !A!  j J Aj! Aj! Aj! Aj! Ak! Aj! B! AK! AI!@@ P"E@  N  Atj!@  /F  Aj! Aj" G     N @  j- AqF  Aj" G  "AH   j J  @  Aj!  j! Atj! ! ! ! @@ E@ /  -  E@ /  - G  Aj! Aj! Aj! Aj! Ak"   j L  ~|#Ak"$@@ B "E A jAK @ BpT "/AG ) "B "E  A jAK  AAB!  BpBQ@ !  @ B "AM@  9  AkAmM@  B|7  B!    )"B AuO@ " (Aj6 B! A j  +"DcE@ B~ "B} BBV"A! B AuI  " ("Ak6 AJ  (    5B B0Q@A!A  ( "AO@ AA  A! Aj ! Aj" A  t  {! Aj$  #Ak"$@@@@@@@@@ ("@ (" ("  K! !@ "F  Aj"6  j-"A0kAqA I AkAqAI AG   K @  j,AL    j"  k" (! )  A!  ("E@  A͑A!  A! AA   E   E@A!  A! )A   A! -Aq  AkAq"AO A vAqE  At"Aj( A̔j(E   ("@A! AA  A! A: A6  AA+A ! Aj$     AԐ ~@ )T" Aq  B~B7T (AL @ ( j"(! (A" BpBQ@A A A!@ B AuI " ("Ak6 AJ (  E@A @@@ A" BpBR@ A A!@ B AuI " ("Ak6 AJ (    A! Ak" ("Ak6A! AH    ! Ak" ("Ak6 AL@ ( B Ak" ("Ak6 AJ  ( B E@A Aj 6A! AH  Aj! Aj" (H A  ~A!@   Av"A AI AH"  k" A t" A t" A    A  @  G@A!@   tAt"j  j   Aj"G  Alj Atj"Aj5! Aj(! At"Aj("! jAj5! At! !A!@   5 (" A   Kk~" BB ~B ~ |}" B Au q|"B q j" l  ~B lk6 Aj! Aj!  v! Aj! E AA   A !  #Ak"$@@@@@@@@@@ B "A j  ")BT    -hAF  "(" A j"("6  6 A6  Aj"6 Aj"(!  Aj"6  6  6 -h  A:h  (\"G@@ Ak"( n (\" G  A:h  @ "("E Aj("E ( A (  Aj  (  @ "("E Aj("E ( A (  Aj  (     6#Ak"$ 6 A؃A  Aj$ Aj  ( Aj$ AAA*A ~@ BpT "/A0G ( ! @ -@ AA  )"A A"Bp"BQ B0  B Q"BpB0Q@ )  )B0A A !@ B AuI " ("Ak6 AJ (  BpBQ@  @@ B "Aj )"BpZ~@ "/A0G@ -Aq!  "AN AuI  " ("Ak6 AJ  ( B @  )  "BpBQ@ B   G  @ AuI " ("Ak6 AJ (  AA B  (!@@@@@@ A:k AG (@"(!  (@"("AL  (Aj! !  AAA @  (G@ Aj! Ak"   AAA AH AAA (8!@  (N@A!  AjA Aj Aj  (!  Aj6 ( Atj" ; AFA r: AN@ ((8 Atj(" (Aj6 6A! ("AL (8" (G  G A   Aj6 -AF A  AN  A A j"AxqAG  ( A Aj"AxqAG   (6 A t jAk!  A jA! AM A   Aj6 @ F@ AM@ AvAqAj( vAq   A   AM@ AvAqAj( vAq  A~qAF r A  A  kAJ  AM@  : Aj! ( !    j! ( !  A:  ( Aj6A ! Aj$  A! (E@ ("("Aj ( AtAj" ( ! (!@@@ E  -  A: AA A:   ( !   (("Aj ( ( A6 B7 A6A A! A  k"  KAvj!@ ("AL "Aq"@ Aj! At jAj!@   j-; Ak! Ak! Ak"  AI At!@  j"Aj  j"Aj-; A j Aj-; A j A j-; Aj A j-; Ak! Ak! Ak! AK 6 A6 6  ~#A0k"$  7(@ BBpB0Q@ AAB!  @ )"BBpB0Q B!   A"Bp"BQ @ AG AN   BB0Q  A A(j!   A"7B! BpBQ  7@@ AG@B0!A  AܣA{"BpBQ   7A ! )H"   AjA!@ B AuI " ("Ak6 AJ (  BpBR  B AuI  " ("Ak6 AJ  (    A Aj! ) A0j$  ~|#Ak"$ A@kB7 A8jB7 A0jB7 A(jB7 A jB?7 B7 B7B~!@ E AJ@ A AH!A!@@@  j)"B "AuO@ " (Aj6  AM@  "9  AkAmK  B|"7 !  Aj @B!  +! " Dd DcrE  Aj j 9@  +"DfE DY@cE  D@9 Aj! Ak"  AjA"" DAc@   Ax "Q@ !  B~ B} BBV! Aj$  #Ak"$@@@@@A("A("FA(" MqE@@  I@A(!  A("I A!A(" jA  k  6  6@A AjA A j"E@  ( "  I!  Aq"AG  A 6A 6A!  j!   k"  I"AF      AB7  6  6A!@@A AjA A j"E@ ( !A!  Aq"AF  6 6  A: A6   -: 6 A:A  j"  I6  A6 6   A Aj$  -"AGA "Aq!@@ AF"A @ -! A E  !A!  A! -"AkAqAK  (! (!A!@  AF A! AI   F   j"-!@@ Aj"  jF" A.G A! -A/F   A! As A.GrAq  A! A! A!@  -"AF A!@@@@@ Ak Aj(Aj!  Aj( Aj("AjA jAj!  Aj(Aj!  Aj( Aj("AjA jAj!  A!  j j A A ~|#Ak"$@@ B "E A jAK @ BpT "/AG ) "B "E  A jAK  AAB!  BpBQ@ !  @ B "AM@  9  AkAmM@  B|7  B!    @ B~~ )"BpB0Q@ )  B AuO@ " (Aj6 B! A j   +"Dc   "B} BBV"A! B AuI  " ("Ak6 AJ  (   ( "AkAM@ AA   A! Aj$  ~#Ak"$ AF@ )! )"B AuO@ " (Aj6 !  ) "7@@ BpB0Q@ B ! @ AuO@ " (Aj6 @ (")"B AuI " ("Ak6 AJ    7  AuI  " (Aj6  B0B0A AjA !  7A BpBR  (")! B 7  7A !B0!  Atj)"BpB0R@ B0B0A A ! )! @ B AuI " ("Ak6 AJ (  Aj$  AAAA  #"!  "( "(" j"AtAjApqk" $@ AL Aq! AO@ A|q!A!@  j"  j" Aj)7 Aj A j)7 Aj A(j)7 Aj A0j)7 A j!  Aj"G  E At"j!  jAj!@  )7 Aj! Aj! Ak" AJ@ Atj  At Aq@ B AuO@  (Aj6 B AuO@ " (Aj6  A! )"     A! $  ) )B0  A ! $  #A k"$~@ BoX@ AA  AjB7 B7  6@ ("AjA ("E@ ("-E@ A: AA A: A6 A6 A6  A6 B7 A6  6 @ AjAA/  ("Aj6 ( Aj! (@  AtjA/;   jA/: @ Aj A A @ (" (N@ Aj AjA/  (!  Aj6 ( Aj! (@  AtjA/;   jA/: Aj A A Aj  (("Aj ( ( B ! A j$  #Ak"$@ ("AO@ AAA!  AM@ A A6 A jA  ( Atj"Ak("AF@ Ak(! Av! AM@ A  ; A jAA! (AL A!A!@  ( j(; A jA A ( jAj(Ak" A~F; A jA Aj! Aj" (H  A  ; A jAA! (AL A!A!@  ( j(6 A jA  ( jAj(Ak6 A jA Aj! Aj" (H Aj$    ( "At!A`! !@@ E  A j! Ak! Ak" (" j"(E ( k6 Aj! (g"@A k!A!A! AO@ A|q! !@  (" t  vr6 Aj" (" t  vr6 Aj" (" t  vr6 A j" (" t  vr6 Aj! Aj"G  Aq@ Aq! Atj!@   v (" tr6 Aj! Ak"  ( k6   Aj Ax6 E@A ("( (A ( ! A6 6A ~@@ E@ (!A  -A:kAuK  Aq!@ AI@A!  A|q!A!@  j"- AljAl Aj-jAl Aj-jAl Aj-j!  Aj"G @  j!@ - Alj! Aj! Ak"  (! Aq ! (4 ($Ak qAtj("E (8!@@@  Atj(")"B Aq G B@BR Aq G BBR Aj   AH   (Aj6  ( "     A!  {"BpBQ !  ~@@ BpT A!@ "(" (AsAtA~rj("E A0j!@@  Ak"Atj"(! (A6F Aq"   AK  ( Atj)" BpBR  (Aq  "E  A!@ AH @ ((8 Atj()" B@BR B?BR B@Trq BBQ A As! AI ("(8 Atj(" ("Ak6 AJ   BpBQ  A6 B0B0A.!@ B AuI " ("Ak6 AJ (  AH  A!  @@@@  L @  j"-"At"AЫj-!@@@@ Ak   (6  ("AH  ( L  ( Alj"("AH    (E AAAA Aӫj-"AK A t"AqE@ AqE@ AqE  ("AH  ( L  ( Alj" ("Ak6 AJ   ("AH  ( L  ( Alj" ("Ak6 AL  ("AH (("(8 Atj(" ("Ak6 AJ    j" H  AAAA AAAA ~|#A k"$@ ( (!@@ (@ ) )Q   )7  )7  )B0B0A AjA "BpBQ  BX@ "Au AGr  |  B "AM  B| AkAmM   Aj AH  + " Dd Dck "   ("E@  )A"BpBQ  "6 ("E@  )A"BpBQ   "6 (!   (Aq" (Aq"  H"   F AA  I!  A6  )" )" U  Sk! A j$  ~A!@ )"BpT "/A9G ( ! Aq! (! )!@@@ AN@ A~qAG  A6 @  AB0 B AuO@ " (Aj6  A"A B AuI  " ("Ak6 AJ  ( B0 AG  Aj 6 B !@ @ AuO@ " (Aj6 ("Aj! )"B AuI  " ("Ak6 AJ     AuO@ " (Aj6 Aj(Ak!  7 K B0 AAAA֑ AAAA֑ ~@@ ("( A BoV"AylAk" A (kvAtj("@@@ ( G (, G ( E  (("  A" B  (Aj6 @ A "BpBQ (Aj6 "A*j ; A)j : A(j :  6$  6  -Aq AkAIAtr: A " ! A0 B0B0A. A6 A" B0B0A.@ B AuI " ("Ak6 AJ (  AH ("(8 Atj(" ("Ak6 AJ    A!@ ( BpBR@ ( A"BpBQ@ (("Aj ( ( A6 B7 A6A "A (Aq! (   ")""Aq"@ Aj! BPE@   ( j" ( J@ A  @ (@ Aq!A! AG@  k!@ (  (jAtjAj  j"Aj-; (  (jAtjAj Aj-;  Aj"G  E  ( ( jAtjAj  j-;  ( (jAj   ( j6 A!  ~| "B Aq"AO@  AkrE@ D-DT!?Dp8 D  @ AM@ A@jAI  "     D =?DuI?D;h(DUDU?D}oԿDUUUUUU?    D.Ÿ?DYl濠DȊY*@DK-':D?  D? D?" D =?DuI?D;h(DUDU?D}oԿDUUUUUU? D.Ÿ?DYl濠DȊY*@DK-':D?! !| AO@D-DT!?   " D\3&  D-DT!? Bp"    D\3&<    " D-DT!? " BS! ~ "B! B?!@@@ B4Aq"@ AG  ( ! PE@ @ ("( (A ( ! A6 6 A6 A6A @ ("( (A ( ! A6 6 A6  P@ ( @ ("( (A ( ! A6 6 Ax6  B " y"!A k!  B B! Ak6@@ ( AF@ (!  ("( (A ( "E  A6 6  7  ( @ ("( (A ( ! A6 6 A6 A6A  6A  G@ E@ A6@@ ( AF@ (!  ("( (A ( "E  A6 6 Ax6 A6A ( @ ("( (A ( ! A6 6 B7A  @@ ( " ( F@ (!  A  ("( ( At ( "  6 6 ( ! )7  ( AtA  ( @ ("( (A ( ! A6 6 B7A ! g"AG@A k!@  l r!  Ak"vAq@   l r! AJ   AAAA @ ("Aj (AjAt" (AtjA0j" ("E@A! ("-  A: AA A:A   (AsAtj ! (!  j"A: (P" Aj"6  6 A6 A: A j Aj6  6P (,"@  (Aj6 ( "E A0j! AG@ A~q!@ Aj("AN@ ((8 Atj(" (Aj6 A j("AN@ ((8 Atj(" (Aj6 Aj! Ak"  AqE ("AH ((8 Atj(" (Aj6  ~#Ak"$@ A"BpBQ @@@ A j A"E Aj! ("Aj " ( jAj ("  ("-E@ A: AA A: Ak" ("Ak6 AJ ( B B AuI  " ("Ak6 AJ  Aj!    ( " ( j    ( jjA:  ( j! ("Aj  ( Ak" ("Ak6 AL@ ( B B AuI  " ("Ak6 AN  (  Aj$  ~@@@@@@ ("Aj, )"B AuI  (! " ("Ak6 AJ  (  )"B AuI  (! " ("Ak6 AJ  (  (!@ )"B AuI " ("Ak6 AJ (  (! Aj)"B AuI  " ("Ak6 AJ  (  ("AH  (("(8 Atj(" ("Ak6 AJ    AjA-K ("AH (("(8 Atj(" ("Ak6 AJ   @ BpT "/A%G ( "E A!@@  j("E  ("Ak6 AJ Bp Aj"AG (TAJ@A!A!@ (X j!A!@@  j("E  ("Ak6 AJ Bp Aj"A?D˖dF?DY"$I?DUUUUU?  "D {? D6+Y= Dխ8=! ~||@ "B4Aq"AkA?I@ !  D? AI  AI D BxQ  AF@ D? BS@D D A+ A+"" "A+ A+ " " A+A+ A+A+ "AtAq"Aj+ ! Aj) B-|! E@| BP@ B?}"  D  B?|" " "D?c| D?"    D? D  D  "  ~#Ak"$@@@@ ("E (" ("O @@  j-Ak Aj"6  I   Aj6 A)  +   j-AG Aj6  @@  O   j-"AG@@ A0k"AqA I AkAqAO@ AkAqAO  Ak!  Ak! Aj"6  B> )BR  )" B|" Z   Aj6 B|"PE  ("@A AA  A: A6A   ! Aj$  #Ak"$ A6  ( "6A!@@  ("O @@@@@@ -"Ak A(F  !   Aj"6  O @@@ -Ak Aj!  "Aj"6  I  Aj!  -A?F@ -AD2?Dh&0?DW?Dn&?DA?  "! E@A Atk"     " "  |D " Bp"  Bp"  D?   ~| "B !||@ AK BYqE@ A{O@D Da  D AtAI@  A{O D  AM  D?""B A%j"AvAk! AM@ D? D𿠡 AK ! B A?qAjB D!  "DB.? D@" D?"  " " Dx ?Dxq?D?  DDR>?D˖dF?DY"$I?DUUUUU? Dv A k6A @ AF@ (!  ("( (A ( "E  A6 6  " B "g"t6   t Av Asvr6 A k6A ( @ ("( (A ( ! A6 6 B7A !  ~|#Ak"$@@ B "E A jAK @ BpT "/AG ) "B "E  A jAK  AAB!  BpBQ@ !  @ B "AM@  9  AkAmM@  B|7  B!    )"B AuO@ " (Aj6 B! A j  ( "AO@ AA  +"DPKDf@ B~ "B} BBV!   A! Aj$  ~ )! )!B!@ "BpBQ @ BpZ@ "/"A F  A0F@ ( -  ((D Alj(  AA B AuI  " ("Ak6 AJ  ( B "E@ B  B0B0   B0 AA .!@ B AuI " ("Ak6 AJ (  @ AH ("(8 Atj(" ("Ak6 AJ   BB0 AH!   (8!@@@ -nAq@ E@Aш! (@  Aݳ!@ A:k ("AL  (!@@@ (A:k Aj! Ak"   A!  E /l"A F A! AvAk ("AL@A (!A!@@@  Atj("E ! ! @@ ( F  Aj! Ak"  (|"AL (t!@@ ( G Aj( A!  Aj! Ak" Aj" G A A! AA!  @@@ Aq"@ AqE  -"E@   AqG    j Aj"AqE@ !  -"E   AqF  Aj"AqE@ !  -"E   AqF  Aj"AqE@ !  -"E   AqF  Aj! @ ("As AkqAxq Al!@  s"As AkqAxq  Aj"("As AkqAxqE Ak!@ Aj"-"E  AqG  ~#Ak"$ @@ (" ("I@ (" j-AF  B7   Aj"6@@  O  j-AG  Aj6  @@  O   j-"AG@@ A0k"AqA I AkAqAO@ AkAqAO  Ak!  Ak!  Aj"6  B> )BR  )" B|" Z    Aj6 B|"PE  A:A  B|"P@ A:A  7 A : Aj$   Atj! AqAv! Aq! @@@@@ Aj!  -"j! -"G@  K  ! " G    K   I   j!@ E@ ! " G   Ak! -! Aj!  G A!   Aܪ  Aܪ Aq!  j!A!@ Aj!@ -""AN@ !  G@ - AqAtr! Aj!  AA+A̪  k"AH  As!  G Aq #Ak"$ A Ak AFAq AN@ ((8 Atj(" (Aj6  6  AjA@ ("AN (" (N@ Aj!A! ( AjA Aj   (!  Aj6 ( Alj"A6 B7 Bp7  6  6  A jA  Aq@@ ("AH ( L ( Alj" ("Aj6 A~L   (Aj6 Aj$ AAAA AAAA ~#Ak"$ A&j!@@@ BpT  "/G ( "   (" Aj (D Alj(6 A B!  B0! ( (AkB )" B AkAnI B|BP" qAt"j"(" F ! B AuI!@ )" B AuO@ " (Aj6 E@  (Aj6 AE@ (" ( jG   )"B AuI " (Aj6 Aj$  ~@@@@A BpT A "/A0G  ( "-@ AA  )"A A"Bp"BQ B0  B Q"BpB0R  )"BpT@A "/A0F  -Aq:A  )B0A A !@ B AuI " ("Ak6 AJ (  BpBQ "E@A )"BpT @ "/A0G@ -Aq!  "AH  E  AA A!  ~#Ak"$ A6@@ AO@ AI  AO   A?qAr:  A vAr:  AvA?qAr:A   :A   A?qAr:  AvAr:A   A?qAr:  AvA?qAr:  A vA?qAr:  AvAqAr:A ! Aj (( Aj  -"AG@ (! )! -"AM AGqE@ (" Aj("( (@ ] ] 7 Aj$ AG @ AN ) "BpBR Aq" ")"AqO A! E Aj! BPE@  Atj/   j- ! A6 ("AjA (!@ AM@ E@B! ("-  A: AA A:  A:  : A6 B7 A6 B!  E@B! ("-  A: AA A:   ; A6 B7 A6 B! B07 B07  7  #A@j"$A܅-!A!A܅A:  :0 E@A(Aq@A(E! AjB7 A6 A6 A06(  :/  A$j6  A/j6$ A:0  68@ A0jA A j@ -0AF@ A6 A:  )07  A: (4! -0"AM AGq (" Aj("( (@ ] ] @ E A(AqE A(E A݅A: A܅A: A@k$ B7 A6 A6 A6 A0j A j ~@@@@A BpT A "/A0G  ( "-@ AA  )"A A"Bp"BQ B0  B Q"BpB0R  )"BpT@A "/A0F -Aq  )B0A A !@ B AuI " ("Ak6 AJ (  BpBQ !@ )"BpT@A!  "/A0G@ -Aq!  "AH   F  AخA A!  ~#A@j"$A!@ - -! ("("AqE@ (AՑA AA  Aj((   (   ((   (AA ((     !  E@ (AA Aj((   (! A: A4jA6  )7  Aj6  )7$ )!  68  (6,  - :<  7  A j"60    A jAA  Aj  (0AA (4(  ! A: : A@k$ ~ B`B Q@ A×AB A"BpBQ@  "(Aq!@ AqE E Aj! Aj"!@ -Aq@ /   j- E  Aj!  Aj"G ! @ AqE@ !  AtAj! Aj!@ " L  -Aq@  j/   jAj- ! Ak! Ak!    ! @ B AuI  ("Ak6 AJ (  ~ AH@  Aq6A  ("(,I@@@ (8 Atj(")"B@BR Aq"A kAvI  BP"E@ /  - "A0k"A K @ A0G@A! AI  Aj! Ak! Aj!  A!A! AG   @ E@ /  - A0k"A K   B ~|"BZ  Aj! Aj! ! Ak" A! "AG  A!A!  6  AAAA  Aj!@ ("-E (AG@ "E@A (" ("Ak6 AL@ (   6  ("( (A (kvAtj!@ "("A(j!  G  ((6 A:  (Ak6 (!  A(j(" ( j" (K@A     ($! @A!@  AxrA )7 Aj!  Aj"G ($! ("Aj  ( A6( B7  -Aq:A |A!@@@@@@@@@ B "A j AG  " ("Ak6 )BBR! AJ   " ("Ak6 A j(AjA~I! AJ   " ("Ak6 A j(AjA~I! AJ   " ("Ak6 ,AN! AJ   AkAmM@ B|"Dd Dcr A! AuI " ("Ak6A! AJ (   (     ("AN@A Aq A AG  (Aj6 AL@ A6 AM@ A ( ( AtjAk(A kv"k (6 AqE@ (E@ A6 Ax A G  ( ( AtjAk( Ax6 ( "At k"Aq! (!A!  Au"K@  Atj(! @  Aj"K  Atj(A At Ast  vr! A k  ( 6 #"! @ BpT "/AG ( !    -"H  AtAjAqk"$ AJ@   At !  kAq"@  Atj!@ B07 Aj! Aj! Ak"  As jAO@ At!  k!@ j"B07 A8jB07 A0jB07 A(jB07 A jB07 AjB07 AjB07 AjB07 A@k! Ak"    / Aj (<! $  #A k"$@@@ (("(AG@ - ! A:  : E  B7 A6 A6 A6 Aj Aj (Aj"E   6  A6 A6  6 A:  Aj6@ AjA @ -AF@ A6 A:  )7  A: ( ! -"AM AGq (" Aj("( (@ ] ] (" (Ak"6 E@ A: A6 A j$ AA&A @@ (AG A(j( A j(! (@"-nAqE  A:k AAA AN@ (((8 Atj(" (Aj6 @@@ E @ ("AJ@ (!@ ( F  Aj! Ak"  (|"AL  (t!@ ( F  Aj! Ak"  A! AA AN   A  /"! AH  E  (("(8 Atj(" ("Ak6A! AJ    #Ak"$ Aj  -HA G@ A@k Aj)7 A8j Aj)7 A0j Aj)7 A(j" Aj)7 A jB7  )H7 A6 A6 A6  A j6  Aj6 A !@@@@@@ -  A,j("E  A(j  AjB8~"jAwF  (( k  (   A jAr (   (E  ($ ] Aj$   (L6 AA+ A jAÁ #Ak"$@@ AL@@@@@@@@@@@ A"k?  A;kAq A7kAq A3kAq A/kAq  A+kAq  A'kAq  A#kAq  AkAq  AkAq  AkAq  AK @@@ Ak A Aq  A Aq  A Aq  Aq  ; AjA Aj$ ~#Ak"$B!@~@ BpT -AqE  7  A AjA  ($" (Aj6 A "BpBQ @ AJ@ ! B!@ )"B AuO@ " (Aj6   AAH  Aj! B|"R  A0 AN~ B~ "B} BBV AAAH !  B AuI " ("Ak6 AJ (  Aj$  #A k"$@@@ ("(AG@ -! A:  : E  B7 A6 A6 A6 Aj Aj (Aj"E   6  A6 A6  6 A:  Aj6@ AjA @ -AF@ A6 A:  )7  A: ( ! -"AM AGq (" Aj("( (@ ] ] (" (Ak"6 E@ A: A6 A j$ AA&A #Ak"$@@ AO@ A6 AI  AI@  A?qAr:  A vAr:  AvA?qAr: A   A?qAr:  AvA?qAr:  A vA?qAr:  AvAqAr: A  (" (F@  (! Aj6 ( j :   A?qAr:  AvAr: A !  ( ("kK@   (! ( j A j   j6 Aj$A #Ak"$@@ AO@ A6 AI  AI@  A?qAr:  A vAr:  AvA?qAr: A   A?qAr:  AvA?qAr:  A vA?qAr:  AvAqAr: A  (" (F@  (! Aj6 ( j :   A?qAr:  AvAr: A !  ( ("kK@   (! ( j A j   j6 Aj$A #A k"$@@@ ("(AG@ - ! A:  : E  B7 A6 A6 A6 Aj Aj (Aj"E   6  A6 A6 @@@ ( A6 AtF  6  6@A AjA Aj"E@ (!A!  A! Aq"AF  6 6  A A: 6  (Aj6  (Ak"6 E@ A6 A jA: A j$ AA&A ~#Ak"$ A&j!@@@ BpT  "/G ( "   (" Aj (D Alj(6 A B!  B! ( (AkB )" B AkAnI B|BP" qAt"j"(" F ! B AuI!@ )" B AuO@ " (Aj6 E@  (Aj6 AE@ (" ( jG   (  AkB! Aj$  ~#Ak"$@@@ (("( A6 AtF  B!@  6  6@@A AjA A j"E@ ( "E@B!   I   j!  k!  AqAF  Aq"AG@ !   (Aj6   A̪  (AjA 6  AЧ  (Aj6 (! -"AM AGqE@ (" Aj("( (@ ] ] B 7A! Aj$  ~@@@ BoX@ AA  A< A"Bp"BQ@  B0Q@ B AuI   BoX@@ B AuI " ("Ak6 AJ (  AA  A A! " ("Ak6 AL@ (  @ Bp"B R@ BQ@  B0R  B AuI   @ BpT -AqE   AA B!  " (Aj6  A  O   k! Aj! Aj-Aq@  Atj  ( j" ( J@A A   j!@ (@ AL A!A k AsG@  j! A~q!@ (  (jAtjAj  j"Aj-; (  (jAtjAj Aj-;  Aj"G  AqE  ( ( jAtjAj  j-;  ( (jAj   ( j6A #Ak"$@@ (@"("AH A!@ ( j-"A#kL AkAI  @ AN (" (N@ Aj!A! ( AjA Aj   (!  Aj6 ( Alj"A6 B7 Bp7 (@"Aj! ( (G@ A  (6  AjA  (6  Aj(6  Aq (@!  6 Aj A jA (@( Alj" (Aj6 ! Aj$   "!@ AjA|q k" M@   kAq"k!  I  !  j"  jk! Ak!@@ E@@  "I@ Ak!  j"Ak("AsAk Asq Ak("AsAk AsqrAxqE   O@ Ak!@A E   j! Ak"! -A G   A̢ Ak! -! Ak! A G  j! A ! 6 6  Aܢ #A@j"$@@@@@ -Ak  ("6 A j"  A4jB7 A$jA6 A6, A6( A6 Aj(!  Aj60  Aj6  6 ( A(j! (E  ( ]  -! A4jB7 A6, A6( A 6  At"Aj(6  Aj(6 Aj(!  A j60  Aj6 ( A(j!   ("( (!  ("(  ((! A@k$ ~#A k"$ AF@ )! )!@ Aj )AH@B!  @  B0A AjA "BpBR (")! B 7  7 )B0B0A AjA ! )"B AuI " ("Ak6 AJ (  @ )"B AuI " ("Ak6 AJ (  )"B AuI " ("Ak6 AJ (  A j$  AAAA ~#Ak"$ (!@@@@@ (" ("I@  j-AF     I!@@  F   j-"AF @ A0k"AqA I AkAqAO@ AkAqAO  Ak!  Ak!  Aj"6  B> )BR  )" B|" Z  A!  Aj6 B|"P  7A!  B7  Aj6A!  A:  A:A! : Aj$ ~A!@@ )"Aq" L Aj! BP"E@  Atj/   j- A%G A! Aj N Aj!@ E@  Atj/   j- "A0k"A I AkAM@ A7k!  AkAzI  Ak! Aj!@ E@  Atj/   j- "A0k"A I AkAO@ AkAzI  Ak!  A7k!  Atr"AN  A!  #Ak"$@@@ ("AqE@ A q  (" AsB| AN"   (!A!@  "j"A0A Aq"A I j: Ak! AI! Av! E AK  AAA A k  (!A!@  "j"A0A7 Aq"A I j: Ak! AI! Av! E AK  AAA A k ! Aj$  AA AA ~#A0k"$A'!@ BT@ !  @ A j j"Ak B"B~ |"AqAn"AtAj/; Ak Al jAqAtAj/; Ak! B/V! !  "AK@ Ak" A jj "AqAn"Al jAqAtAj/; @ A O@ Ak" A jj AtAj/;  Ak" A jj A0j:  AA A j jA' k! A0j$  #A@j"$A!@ ("AA Aj("( " ( ! AjB7 A ( !A !  6 Aj$ #Ak"$A!@@ ("A' Aj(("  (A@ -AF@ Aj!A!@@ AG@ - " - O   Aj: A O  j-!  A! A6 (! B7   E  - "A A K! - "   I!@  F   Aj": F   j! !  - E  A' ! Aj$  A A @@ (" ( "O ,"Aq! Aj" AN   O  ,"AqAt r! Aj" AN   O  ,"AqAt r! Aj" AN   O  ,"AqAt r! Aj" AN   O  ,"AH  At r! Aj k"AN  (E@ (AA A6 A;A  j6  ;A #Ak"$  7@ A A"BpBQ @ BpT "/"A G@ A0F@ ( -  ((D Alj(AG E   B0A AjA !  ("Ak6 AL@ (  BoV@ !  BB Q@ !   AAB!  @ B AuI " ("Ak6 AJ (    Aj! Aj$  #Ak"$@@@ ("AqE@ A q  5A   (!A!@  "j"A0A Aq"A I j: Ak! AI! Av! E AK  AAA A k  (!A!@  "j"A0A7 Aq"A I j: Ak! AI! Av! E AK  AAA A k ! Aj$  AA AA #Ak"$@@@ ("AqE@ A q  3A   /!A!@  "j"A0A Aq"A I j: Ak! Aq"Av! AO AK  AAA A k  /!A!@  "j"A0A7 Aq"A I j: Ak! Aq"Av! AO AK  AAA A k ! Aj$  AA AA ~@@@ B Aj "/AG ) "BpBQ  AAB " (Aj6 BpBQ@  B0! )"AxG@@ BV@ ( !  ("(8" (4 B ($AkqAtj("Atj(" F @ @   ( "Atj("G   AAAA A! @ B AuI  ("Ak6 AJ (   ~#Ak"$ ()!@@@ ("AqE@ A q  A   A!@  "j"A0A Aq"A I j: Ak! BT! B! E AK  AAA A k  A!@  "j"A0A7 Aq"A I j: Ak! BT! B! E AK  AAA A k ! Aj$  AA AA #A k"$@ (" ("k @ Aj"E AsAv!@ E@ A6   6 A6  (6 Aj   Aj ( ! (E@  6  6 !  AxF  E Aj(   F@   (! (!  Aj"6 (" jA:@@  O E@ ]A!   "E  6 6 A j$  ~@ ("AjA ("E@B! ("-  A: AA A:B AjAA (! A: (P" Aj"6  6 A6 AjB07 B07 A j Aj6  6P@ AjB0" BpBR@ A(j    E  @ B AuI " ("Ak6 AJ (  ( B A6  (  ~@@ ("( (()"A BoV"AylAk"A (kvAtj("@@@ ( G (, G ( E  (("  A" B  (Aj6 @ A"BpBQ  (Aj6 A< Bp"B0B0A.!  ("Ak6 AL@ (  AN@  B AuI " ("Ak6 AJ (  B  AM@ : Aj  @ AM@ AvAr: !   AM@ A vAr: Aj  @ AM@ AvAr: !   AM@ AvAr: Aj  A AH  AvAr: AvA?qAr: Aj " AvA?qAr:  A vA?qAr: Aj " AvA?qAr:  A?qAr: Aj k ~#Ak"$@@ BpB~Q @ BpT "/A!G ) "BpB~Q  AAB!  " (Aj6A !@ E )"BpB0Q B AuO@ " (Aj6 A j E@ ( "A%kA\K  AA  ("Ak6B! AJ  (    B!  ("Ak6 AJ (  Aj$  @ ("AjA ("E@B! ("-  A: AA A:B @ AA"Aj"    E@@  )B0 Aj( A(j(A "BpBQ @ B AuI " ("Ak6 AJ (  A/"BpBQ BpT   6  (AF  (  A6 ("Aj  (B!  #A@j"$ A68  6(  6 B70  -"6  -"6    tj6  -"AvAq6  AvAq6  At" AtjAj6,  AvAq"6$  A   AG6 @ A At"A AKAt  AjAqk"$ Aj A Aj   tjA! ((("Aj (0A (  A@k$ @@@ BpZ@ "/"A F  A0F@ ( -  ((D Alj(  AAB A!@ A k A4k @ ( "/"AqE Aj("E  Aj({ A! AvAqAk"AK AtAj(! @  A6 A"BpB0Q~ ("(,A/M  (8(" (Aj6 B  As AAAA˧ ~@ ("(" ( qAsAtj("@ A0j!@  Ak"Atj"( F  (Aq"  )"    (("@A ((Aq  A A ( Atj")!@ AF BpBQ@  Aj(A Aj-Aq  AA  7@ B AuI " ("Ak6 AJ (  A #Ak"$@@@ ("AqE@ A q  A   A!@  "j"A0A Aq"A I j: Ak! AI! Av! E AK  AAA A k  A!@  "j"A0A7 Aq"A I j: Ak! AI! Av! E AK  AAA A k ! Aj$  AA AA ~@ ("-E (AG@ "E@A (" ("Ak6 AL@ (   6   kA0kAuAtjA0j!  ("( (A (kvAtj!@ "("A(j!  G A:  ((6  (Ak6 ("A|q   ( AqAtAj(! (A|qZ  (Aq6 B0 BpBQ"7AA  ~#A@j"$ (! A -  ("("AqE@A (AՑA AA  Aj((     (   E@A (AğA Aj((   (! A: A4jA6  )7  Aj6  )7$ )!  68  (6,  - :<  7  A j60A  Aj (   (0AA (4(  : Aj6 A@k$ @@ ("AjA ("E@B! ("-  A: AA A:B AA"Aj Aj"6  6H Aj"    @ A6   )B0 Aj( A(j(A "BpBQ @ B AuI " ("Ak6 AJ (  A9"BpBQ   "6 BpT 6  ( B ~B0!@@ )"BpBQ AH  Aj! Ak!@@ )"BBpB0Q "BpBQ   B0A  B AuI " ("Ak6 AJ (  Aj! Ak"  @ B AuI " ("Ak6 AJ (  B! B AuI " ("Ak6 AJ (   #Ak"$  6  6  ("6  ( k"6A!  j" (8 A"G@ !@ AH@ A6 B7 (A r6A AF   (k    ("K"Atj"  A k" (j6 A A j" ( k6  k" (8 "  k""G  (("6 6  (,j6  ! Aj$  #Ak"$A-A!@@@A"@ A6  6 A @@A("AF@A!  B7 Aj 6  @  6 Aj A (" (" A("AF B7 Aj 6 E  ]  A  "6  K@@ E@ ]A!   "E   6  6 )7 Aj A j(6 Aj$  ~B!@ "BpBQ @ A A"BpBQ @ BpZ@ "/"A F  A0F@ ( -  ((D Alj(  @ B AuI " ("Ak6 AJ (   !   B0AAA !  ("Ak6 AJ (  B AuI " ("Ak6 AJ (   ~@ )"BoV" BpB Q AAB @@ ("( A "AylAk"A (kvAtj("@@@ ( G (, G ( E  (("  A" B  (Aj6 @ A"BpBQ )"BpB0Q@   E@  B AuI " ("Ak6 AJ (  B ~@@ BpT !@@ -AqE ((D /Alj("E ("E  (Aj6 Bp"  3!  ("Ak6 AJ  (    (Aj6 A  !  ("Ak6 AL@ ( Bp  @ /AkAqA K "Bp"B0Q A! BQ    ((," A!  ~ )B! Aj-AqE@ P@ Aj Aj  @ AL Aj! Aj!@ / -k"  Aj! Aj! Ak" A! A k Aj! Aj!@ P@ AL@A @ / -k"  Aj! Aj! Ak" A AL@A @ / /k"  Aj! Aj! Ak" A  ~#A@j"$A!@ - -!@ ("("AqE@ E A! (AՑA Aj((  E   E@A! (AКA Aj((   (! A! A: A4jA6  )7  Aj6  )7$ )!  68  (6,  - :<  7  A j60  Aj  (0AA (4(  !   ! A: : A@k$ #A0k"$  (O@  6$  6 A A jA  @ ( N  6 AH  6  6 A A  ( Atj"/"AG@A  F   6  6  6 A AjA   ; (" (N@A A jA Aj Aj  (!  Aj6 ( Atj 6A ! A0j$  @ ("AN (|"AN@ AAA Aj!  (xN@A! A Aj Aj  (|!  Aj6| (t Atj"B7 AjB7 AN@ ((8 Atj(" (Aj6  ( A~r6  6 (|"Ak! AL  6 At" (tj" ( A~qAr6 -nAqE ( j" ( Ar6  #Ak"$@@ AA! ""AO@  AAjA:A    AjA AN@ Aj   (E@ (!@ Aj("E@A!  AH A- "E    ! 6 6 6 Aj$  )7AA+ AjAA AjB7 A6 Aл6 A6 AjAػ   @ BpT "/A1G ( "E Aj(" Aj"G@@ )"B`Z@   Aj)"B`Z@   )"B`Z@   (" G  Aj(" A j"G@@ )"B`Z@   Aj)"B`Z@   )"B`Z@   (" G  )"B`T    (|"AN@ AAA @  (xN@A! AjA Aj Aj  (|!  Aj6| (t Atj"B7 AjB7 AN@ ((8 Atj(" (Aj6  ( A~r6  6 (|"Ak! AL (t Atj" ( A~q AtAqr6 ("6 (!  6 6 ( Atj 6   E@A  AM@ :A  @A(E@ AqAG  :A  AM@ A?qAr: AvAr:A  A@qAG AOqE@ A?qAr: A vAr: AvA?qAr:A  AkA?M@ A?qAr: AvAr: AvA?qAr: A vA?qAr:A  AA6A A #Ak"$ (! ( (r@ A6  A j@@ AO@ AI  AO   A?qAr:  A vAr:  AvA?qAr: A   : A   A?qAr:  AvAr: A   A?qAr:  AvAr:  AvA?qAr:  A vA?qAr: A   ( Aj(( ! Aj$  #A0k"$ Aj(! ("(! A6 (8! A68 @ Aj @ (")P Aj("E  AjB~"jAwF Aj( k] (! B7 )7 Aj Aj)7 Aj Aj)7 A j A j)7 A(j A(j)7 A0j$A AjB7 A6 A6 A6 AjA ~B!@ (~B (! ("E@ (("Aj  ( A6 (("(,A/M  (8(" (Aj6 B ( J@ (("Aj   ("t kAj ( "E@ (! 6  ("   (jAjA: ( At )Bw"7  Bx 5B7 A6 B  AAAA˧ ~@@ AN ) " BpBR Aq" ")" AqO @ AqAF AqAF Aq@ A0q  AqAF  A! AqE  BpBR " )"BBR Aj! BPE@  Atj/   j-  BPE@ /  - F  A      Ar.!  #Ak"$@ BpBR@ 6 7  ((")! B 7 A0j   (0"@ Aj A@k)7  )87  (46  6 A A! ( !  6 Aj$  @ BX@  Axr"AL@ B07   "BpBR   7A #A0k"$ Axr BX   7 Aj"AA A  {"BpBQ  ( AH ! A0j$ E@ B07A @  "AL@B0!    A"BpBR A!   7  #A k"$ A;  6  6 A6 A6 #Ak"$ A j"("E@AA+A  ( 6  6  6#Ak"$ Aj"("A j(!@@@ (  A!A    ("(! ( ! 6 6 A ("( ( - -J A6 6 A̳ ("( ( - -J #A k"$@ AF@ 5!  At Aj" vAjAv!  Alj" ( E@  AA"   Atj  k   " AAl" B7 B7  (6 Aj     "E@ AjAA! ("E ("E ( A (  A j$  @@@@@@@A B " AkAnIA j (! B7 B7  6     (! B7 B7  6  B|E  A! ("E  ("E  ( A ( A Aj (! B7 B7  6 ( @ ("( (A ( ! A6  6 B7 ! ~@ BpT E @ "(" (AsAtA~rj("E A0j!@@  Ak"Atj"(! (A6F Aq"   AK  ( Atj)"BpBR  (Aq  A6 A"B0B0A.!@ B AuI " ("Ak6 AJ (  AN A A #A@j"$ AjB7 A6 A6 A6(  6,  A$j6  A,j6$ A:0  A?j68 A0jA A j! -0!@ @ AF  (4! -0"AM AGq  (" Aj("( (@ ] ]  (4! AG AMq (" Aj("( (@ ] ] A@k$ ~@ AI Av! Aq )! )7 )! )7  7  7 Aj! Aj! Ak  ! AF @ )! )7 Aj")!  Aj")7  7  7 Aj")!  Aj")7 Aj")!  Aj")7  7  7 A j! A j! Ak" ~#Ak"$  7@ BpZ@@ A A"Bp"B Q B0Q A BQ   B0A AjA !@ B AuI " ("Ak6 AJ (    "/"A F  A0F@ ( -  ((D Alj(  AAA    ! Aj$  #A@j"$@ -"AF@ )7 Aj A j(6  A$jB7 A6 A6 A 64 A6< A68  A0j6  A8j60 A j" Aj ! A6 6@@@@  Aj  Aj(E  (]  Aj" Aj(E  (]  Aj(E (] A@k$ @ AI Av"Ak! Aq"@@ (! (6  6 Aj! Aj! Ak! Ak"  AI @ (! (6  6 Aj"(!  Aj"(6  6 Aj"(!  Aj"(6  6 A j"(!  A j"(6  6 Aj! Aj! Ak" @ AI Av"Ak! Aq"@@ /! /;  ; Aj! Aj! Ak! Ak"  AI @ /! /;  ; Aj"/!  Aj"/;  ; Aj"/!  Aj"/;  ; Aj"/!  Aj"/;  ; Aj! Aj! Ak" ~@ AI Av"Ak! Aq"@@ )! )7  7 Aj! Aj! Ak! Ak"  AI @ )! )7  7 Aj")!  Aj")7  7 Aj")!  Aj")7  7 Aj")!  Aj")7  7 A j! A j! Ak"  )"E@B @ "BpBQ@ AH  ("(8 Atj(" ("Ak6 AJ     A " !@ AH ("(8 Atj(" ("Ak6 AJ   @ B AuI  ("Ak6 AJ (  AH@B AGB!  @ E @ Aq"E@ !  !@ -! -:  : Aj! Aj! Ak! Ak" AI @ -! -:  : Aj"-!  Aj"-:  : Aj"-!  Aj"-:  : Aj"-!  Aj"-:  : Aj! Aj! Ak" ~#A k"$ -! Aj ) !@ (" BBR B "(" Aj("( (@ ] ] AjB7A! A6 A6 A6@ (" Aj(" Aj E@ AjB7 A6 A6 A6   Aj  A! @ E BP ] A j$   "/Aj1! ("AjA ("E@ ("-E@ A: AA A: A B AuI  " ("Ak6A AJ  ( A  "( "( "6  6   >  "6  6  6 6  A j6 A(j >  6  ( j6$A #Ak"$@ ("-E@ (AA Aj((  !  A!  Aj6  (AA Aj((  :  6 A: A6 Aj Aȃ! - ! ("E@ AG!   (!@ AG - E -Aq (AA Aj((   (AA Aj((  ! Aj$ #Ak"$@ ("-E@ (AA Aj((  !  A!  Aj6  (AA Aj((  :  6 A: A6 Aj A! - ! ("E@ AG!   (!@ AG - E -Aq (AA Aj((   (AA Aj((  ! Aj$ #Ak"$@@ E @  6  6A AjA A j"E@ ( "E@A!A   I   j!  k"   AqAF@    A! Aq ! (! -"AM AGqE@ (" Aj("( (@ ] ] 6 6A! Aj$   A̪ ~ ( !@@@ )"B@Z@ (8!  @  (8" (4 B ($AkqAtj"("Atj("F@  6  @ ! E   ( "Atj(" G  6 !  Atj ($  > ABB0B0A.  @ B AuI " ("Ak6 AJ (  B! B AuI " ("Ak6 AJ ( B   !@ B AuI " ("Ak6 AJ (  E@ A   B0B0 Ar.!@ B AuI " ("Ak6 AJ (  @ AH ("(8 Atj(" ("Ak6 AJ     "/A5k! ( ! AL~B0 ) ! A4j 6 B !@ @ AuO@ " (Aj6 ("Aj! )"B AuI  " ("Ak6 AJ     AuO@ " (Aj6 Aj(Ak!  7 B0 ~#Ak"$@~ AH@  Aq6 Aj"AA   {  ("(, M @@ (8" Atj(")"B@BQ E  AxG (!  (Aj6 B   (Aj6 B ! Aj$  AAAA˧ ~  (Ak"6 E@ ( @ A(j A6  @ )"B AuI " ("Ak6 AJ  @ Aj)"B AuI " ("Ak6 AJ  A j"(" ("6  6 A6 A6 Aj  ( #A0k"$ -@  Aj-: A$jB7 AjA6 A6 A6  6 A6 Aj(!  Aj6  Aj6 ( Aj  A$jB7 A6 A6 A6  6 Aj(!  Aj6 ( Aj ! A0j$ #Ak"$  6  (AA Aj((  :  6 A: A6 Aj A! - ! AG ("E A  (!@ AG - E -Aq A (AA Aj((   (AA Aj((  ! Aj$  ~A!@ (" )"Aq"N Aj! BP"E@ Atj/  j- "A0kA K    J kAF Aj! E@ Atj/  j- "A0kA K  Aj6  A l |B}7A!  @ A I @A AI  AI @ AO@ A kAк+I  A˦ kAI  A kA I  A kAI  A kAI  A~qA F  A`qA G   AA,AīAAA A A kAI  AkAtI  AʰA(AAAA A #Ak"$  (AA Aj((  :  6 A: A6 Aj    ! - "AG ("E A   (!@ AG - E -Aq A (AA Aj((   (AA Aj((  ! Aj$ ~ )"! AN@ )! BoX@ AAB )!B!@ )"E B AuO@ " (Aj6    AA!@ AH ("(8 Atj(" ("Ak6 AJ   AH AGB!  #Ak"$  j-ADa*D?!  ! E@   DIUUUUUſ   D?    DIUUUUU? ~#Ak"$@  L A0  k"A AI"! E@@ -A qE@ A  Ak"AK  -A q    Aj$ ~@ (" )"AqN Aj" Atj!@ BPE@ /   j- A G   Aj"6 Aj!  )"AqH ~ "B4Aq"AM@ B!@ BQ AG B?  AM| B? |BA k"B|B } s~} *! *" \@  [ A!@  \  ^ A!  ] A! C\ ! AH@ B?As B?!  w "A(j(@@@ ($ j)"B AuI " ("Ak6 AJ  Aj! Aj" ((I  Aj ($ ( #Ak"$~@ BpZ@ "/AkAqA I  A6 Aւ B  ( ( ( -@ AAB      ! Aj$  ~#A@j"$  6  6  6  6 A$jB7 ADwQlVDLUUUUU?  "   D8Dı!>DRO~  ~ "B4Aq"AG| E@ Da@ A6  DC !  (A@j6   Ak6 BB? s@@ (" (O@ (!  (!@ E@ ]A!   At""E   6  6 6 6  k@ (" ( N (@ Aj6 ( AtjAj ;A AK Aj6 ( jAj :A  x B4Aq"AM@ D"  AM@ D D𿠟  D9B.? s#A k"$A (   AjB7 A6 A̜6 A6A ( Aj( Aj  (  ! A j$ r#Ak"$@@ BpT "/ G ( "   (" Aj (D Alj(6 A A! Aj$  o#Ak"$ (!  A j (A  Aj E@AAA9A (! ( ! Aj$A G K m#A0k"$  6  6 AjB7 A,jA6 A6 A6 A6$  A j6  Aj6(  6 Aj  m#A0k"$  6  6 AjB7 A,jA6 A6 A6 A6$  A j6  6(  Aj6 Aj  m#A0k"$  6  6 AjB7 A,jA6 A6 A6 A6$  A j6  Aj6(  6 Aj  m#A0k"$  6  6 AjB7 A,jA6 A6 A6 A6$  A j6  Aj6(  6 Aj  z~ )"B AuO@ " (Aj6 AGB! BpB0Q@  A"BpBR@    y#Ak"$@ A q@ ("-  A: AA A:  AAA Aq Aq6 A  Aj$ n~ )"B AuO@ " (Aj6 @ (")"B AuI " ("Ak6 AJ  7B r~ A7 A"BpBQ@   B0AAA !@ B AuI " ("Ak6 AJ (   ~ )!@ (("E B|BV ((AqE B|BX@ B B~ "B} BBV  g@ B "E A jAK @ BpT "/AG ) "B "E  A jAK  AAB!  gA (" O A (  ( ( AlAv"   I" ( "E@ A6 A 6 6A q#A k"$ B7 B7  (6 Aj   M!@ ("E ("E ( A (  A j$  e B AuO@ " (Aj6 @  " @ ("AH@ j"A AJ!  L   6  o@@A! BpT  "/A0G  ( "E  -@ AAA )"BpT  /"A0F AF!  e ! Aj("AJ@ (D" j!A!@@ " G    Aj! jAj" I  A i (" ( N@A Aj   ("Aj6 (Aj!@ (@  Atj ;   j : A h~ B AuO@ " (Aj6 @  " )"BS@   |"7 BY@ " Y   7 p#Ak"$ (@"Aj! ( (G@ A  (6  A jA  (6  Aj(6   Aj$ q#Ak"$ A j(!@@@ (  AA   ("( (  Aj"   ! Aj$ q#Ak"$ A j(!@@@ (  AA   ("( (  Aj"   ! Aj$ x )"BoX@ E@B AAB @ "/A0G@ -Aq!  "AN B AGB y@@@ B Aj "/AG ) "BpBQ  AAB BpBR~ AA A  k~#Ak"$A!@ B"BpBQ A j  B ( j"AAH E! Aj$  #Ak"$ ~ )B~ )B|"B|BX@ B  B~ "B} BBV ! Aj$  t~ A6@ ("("E  ( E AAA! ()"BpT "/AG -A r:  f@ B "AuO@ " (Aj6  AM@  9A AkAmK  B|7A   k ( "@@@ -E Aj("E Aj( (   ("E ( (  Aj  ( y~B!  )"Bp"BR~@ B AuI " ("Ak6 AJ (  B RBB m~ Aj(! ("(! A6 (! A6 )!@ ("("E (E ] (! 7 6A x@ BpB~Q@  @ BpT "/A!G ) "BpB~R  AAB " (Aj6  [ -!@ -"E  G Aj! Aj!@ -! -"E  Aj! Aj!  F  k `~ )! )"B AuO@ " (Aj6 B AuO@ " (Aj6  AAGB c@  F@ ("E  ("E  ( A (  Ak" ("Ak6 AJ ( B~ d#A k"$ A jB7 A6 Aԅ6 A6  A j6 Aj(!  Aj6 ( ! A j$ j@ ("E (" (N ( K ( F 6 6 Aj6  Atj" 6 6 #Ak"$ ~ ) )B=~|"B|BX@ B  B~ "B} BBV ! Aj$  mA؂(!@ E@ Aj""@   AA06A  AjO@  A!AA6 a ("AM AGqE@ Aj -AF@ A j("(" Aj("( (@ ] ] ] Z (" ( qAsAtj("@ A0j!@A AkAtj"( F  (Aq"  A s~@ BpT @@ "/"A k A4k ( "E -Aq B0 -Aq  AAB h~ ("(! A6 (! A6 )!@ ("("("E (E ] (! 7 6A l@@@ B Aj "/AG ) "BpBR  AAB " (Aj6  m@@@ B Aj "/AG ) "BpBR  AAB " (Aj6  ]#Ak"$ AN@ (((8 Atj(" (Aj6 (@!  6 Aj A jA Aj$ h#Ak"$~@ BpZ@ "/AkAqA I  A6 Aւ B  A(j5 ! Aj$  N~A B4Aq"AI A AK ABA k"B} BR AA P W#Ak"$ )"B AuO@ " (Aj6 A j ! ( ! Aj$B g  e@ ("Aj Aj ("E@ ("-  A: AA A:     jA:  Y~B !@A B "A j AkAnI"AK A vAqE (( AtAj(Atj)!  ^#Ak"$ (!  6 A  A  () ( ( (@" (hAGAtA N Aj$ ] ("AM AGqE@ Aj -AF@ A j("(" Aj("( (@ ] ] ]#Ak"$@ ("AF A;G@ AF  (0  A;6 A A!  /! Aj$  f@ )"BpT "/A0G ( "E A:  ("Ak6 AL@ (  B 7 B0 a~ "BpBQ@  !@ B AuI " ("Ak6 AJ (   \#A0k"$  6  6 AjB7 A6 A6 A 6,  A(j6  Aj6( Aj  \   " A!@ AH ("(8 Atj(" ("Ak6 AJ    k~B0!@ BpT @@ "/"A k A4k ( "E Aj-AqE (@A!   )"B "B "B "7B~ B%~B B?D𿠽"B} BBV \~#Ak"$ @ B7AB Aj )"B"7  B~}An7 Aj$ a "($" ("Ak6 AL@ B ( " ("Ak6 AL@ B V~ )"B AuO@ " (Aj6 )"B AuO@ " (Aj6   Z (<"Ak r6< ("Aq@ A r6A B7 (("6 6  (,j6A h~B0!@ BpT @@ "/"A k A4k ( "E Aj-AqE Aj5!  [ (8!#Ak"$~   Aq AjAq"@AA  AF6B  ) ! Aj$  ]#Ak"$A!@ AH@AA6    A jAq"@A 6  ( ! Aj$  _@ BpT "/A0G ( "E )"B`Z@   )"B`T   _@ BpT "/A7G ( "E )"B`Z@   )"B`T   R@ Aj("E Aj(! A: E ] @ AF ("Ak6 AG ] Z (@ A6A (" k6  K"6A! A ("(   Aj((  X#Ak"$ -AGA Aj ("( (($ ( ! ( ! 6 6 Aj$ X#Ak"$ -AGA Aj ("( (( ( ! ( ! 6 6 Aj$ \ @@ ( (" jI "E Aj6 (Aj6 !  AAA A |~B0! BBpB0Q@ AAB BpB R BoXq~B0BB0  AAH S (" j" (KA   (  ("j  j  ( j6A  ~ )"BpBR@ AAB B0! ")B@BQ~ (Aj6 BBB0 R ( "@@ )"B AuI " ("Ak6 AJ  Aj  ( T "A(j("@@ ($ j)"B`Z@   ((! Aj! Aj" I  W@@ ("@ (   -AG  Aj("(" Aj("( (E ] ] Y ( ("kAL@ A: (E@ (AA A6A Aj6  -:A U@ BpT "/A/G ( "E (AG@ Aj A6 Aj  ( T   B0B0 Ar.!@ B AuI " ("Ak6 AJ (   X#A k"$ A6 A6 Aj6 A j6 Aj6A AjA A j$ L@ ( ")"B AuI " ("Ak6 AJ  Aj  ( PA ( F  ("( ( At ( ! @A E  6 6A N (" j" (KA   (  (j   ( j6A  I B AuO@ " (Aj6 B AuO@ " (Aj6  A N#A0k"$ AjB7 A6 A6 A6(  A$j6  A/j6$ A j  K  B0  A !@ B AuI " ("Ak6 AJ (   Q#Ak"$  6  6  6  6#Ak"$ 6 AA  Aj$ PA/! )"BpZ ((D "/"A0FA A0 ( -  Alj(A/ A W ("Aj  ("@ A  ("-E@ A: AA A:  F E@?At @ Aq AH Av@"AF@AA06A At P#Ak"$ Aj  ((  ( ( ( (! (6 6 Aj$ L@@@ E@A!  AH A- "E  6 6   n B|BX@  B A B~ "B} BBV A O (! (!@ ("-E AA (  E A A F:   ( M (! A6 (! B7 (! ( !    A!  A   V@@@ B Aj "/AG ) "BpBQ  AAB!  D@ E @ -" -"F@ Aj! Aj! Ak"    k!  J B "AM@  9A AkAmM@  B|7A   H (! -"AM AGqE@ (" Aj("( (@ ] ] CA ((Av F A    (" (Aq Atr6A ? (   "AN@ (t Atj" AtAq ( AtqrAr6  H#A k"$ A jB7 A6 A6  6  6  Aj6   B@ B AuI " ("Ak6 AJ (  AAA C~ )!  7@ B AuI " ("Ak6 AJ (  D~ A!@ B AuI " ("Ak6 AJ (   E@ ") "B AuI " ("Ak6 AJ  B07 M~B0!@ BpT /"AkAqA K ((D Alj(A!  CA! ( jA ( j" j  ( k ( j6A D  ( ("kK@   (! ( j    j6A D  ( ("kK@   (! ( j    j6A D  ( ("kK@   (! ( j    j6A N ( "E@A ( A| A|J"A AHj6   Aj A~ v!@ B AuI " ("Ak6 AJ (   F@ B AuI " ("Ak6 AJ (  BpBQ A@ )"B "AF E A~qAGq AAB  GA (  (" A   ( ( ( jA : A6A B Aq"AM AGqE@ (" Aj("( (@ ] ] @@ (@"("AH @ ( j-"A#kL AkAI  A!  C )" )AAH@B B AuO@ " (Aj6  KA- (! (!A"E@A  6  6 A6 6 H@ ( "E )"B`Z@   )"B`T   K@ ("Aj  (" ("- A: AA A:  C#Ak"$  (G@  6 A A   ! Aj$ B#Ak"$  (G@  6 A A  / ! Aj$ ;#Ak"$ Aq   (kAk6 A jA Aj$ F@ AN ) "BpBR A Aq (AqI  A ?@ AH ("(8 Atj(" ("Ak6 AJ   ^  B|BX~ BB~ "B} BBV A ; ("AM AGqE@ Aj A$j(@ A j(] ] H~B! )" )~B B AuO@ " (Aj6  ; AM@ AvAqAj( vAq A~qAF AGr B#Ak"$   ( Aj A 6 A  Aj$ A AL@ B0B0AAA   )B0 Ak AjA @ Aj(! ("(! A6 A6 (" (6 A6A 4@ ("E   AjB8~"jAwF ( k] <#Ak"$ Aj (( (  ( (! Aj$ 7 ("AM AGqE@ Aj A$j(@ A j(] 8 ("AM AGqE@ Aj A j(@ (] ] < ("@ ( A (  B7 AjB7 AjB7 @#A k"$ AjB7 A6 A܄6 A6 AjA @#A k"$ AjB7 A6 A6 A6 AjA @#A k"$ AjB7 A6 A̛6 A6 AjAԛ 5@ B AuI " ("Ak6 AJ (  :@ AG@A  (   A    (  = -AF@ ("(" Aj("( (@ ] ] GA(" AA6A (A AKAtAj/Aj 8#Ak"$  6  A jA A jA! Aj$ 8#Ak"$  6  A jA A jA! Aj$ 8#Ak"$  6  A jA A jA! Aj$ 3@ Ak"A'O B BP AtAj( = ("(! A6 A6 (! (("A6 6A 7@ (<"AN (8AN A%([A? '7<A? '`A? '.A? ><A? %A? tnputs8'SA? .000"A? s""A? @A?  A? m'A? A? !'A? AA? 38#Math/!~$<@A? &A? 42A? (".1A? .)0A? 50A? @A?  A? .A? !A? }!<.letstruc050vas_conte0.<TextEncoifnction 4(*(kA? !)orasij1A? A? ijA?  I.IX[^I(k) ij.A? (ij$C;$ijA? A? %% IIhX[^I(,k4`)ijA? A? C;ijY\_fer IYIX[^Ix(k4`)((C;IY\_X[^Y5Y5 Y5bY5A? c/X\IC;ijY\_ `A? %m  YLA? \A? /G^ A? 4`A? bget descriptioncies]A? (?>(@?ABCADE$?E$@?AFCADGHIJKLMNOPKLfunction.mjsQ Rcrates/core/src/main.rsL 4SLT L UVL/L*L$-L%+L5+W XYZlibrary/alloc/src/raw_vec.rscapacity overflowH,!library/alloc/src/ffi/c_str.rst7nul byte found in provided data at position: -a formatting trait implementation returned an error[A I\library/alloc/src/fmt.rs d ] ^_`[A \assertion failed: self.is_char_boundary(new_len)$Kt backtrace capture failed/Users/matthewprock/.cargo/registry/src/index.crates.io-6f17d22bba15001f/anyhow-1.0.79/src/error.rscT Caused by:D 4abc pstack backtrace:Stack backtrace: assertion failed: self.is_char_boundary(n)$K|] de`4abc assertion failed: edelta >= 0library/core/src/num/diy_float.rs8!L 8!N  N@ -1 5wo#A ſt[Am-Aċ jd8n헧?OA &>. 8/t#ڰͼ3&NA |.[Ӿr؇/PkpnJؕnq&fƭ$6ZB<TcsUe(U܀n_Slibrary/core/src/num/flt2dec/strategy/dragon.rsassertion failed: d.mant > 0|/ |/ |/6|/q$|/vW|/6|/e |/K"E=ƚpOܼw kAV<Ѝ,U1(\QFɦqaˋ#w"{mSx@I̮ Wζ]y<7VM6OH8oꖐ$:%˅t,φ4* 45<5*g8PD;?ȄkL'DŅT%Οk\b}$lۺd_ Xfl&ޓt |J|l_b%S04`?U&NZ~)p$wt帟ߦ}t_ϛpDk11eU%{?;+*\.Ӓsi$$Icd~̈Po ̼,eXѳA @A̓  Aړ bxA x9?A {Η8$A p\{2~S,A h髤8m4A E"&'O<A '1cDAȔ Ȍ8eްLAؔ eǃTA qB]\A X,iM dA pd'lA JwmBtA k}{x \|A wyTwAȕ ś[[Aؕ =]S5ȬA \*A _FA %94›A \rA ξTSܷ1A A"LAȖ x\ӛ fAؖ S!{ZA :0ܵA \S٨A b'0' #0.+NaNinfassertion failed: buf.len() >= maxlen # library/core/src/fmt/mod.rs..G0123456789abcdefBorrowMutErroralready borrowed: rKA H[H[panicked at [A findex out of bounds: the len is but the index is  4g==assertion `left right` failed left: right: &= right` failed: left: `p = 4 hij { , { .. }( library/core/src/fmt/num.rsi000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990000000000000000000000000000000000000000000000000000000000000000,,5 ,. "library/core/src/slice/memchr.rs, , range start index out of range for slice of length l~"range end index ~"slice index starts at but ends at  invalid utf-8 sequence of bytes from index incomplete utf-8 byte sequence from index @*attempted to index str up to maximum usizet*A 3A library/core/src/str/pattern.rsFF(9gh[...]begin <= end ( <= ) when slicing ``+/?byte index is not a char boundary; it is inside (bytes ) of `` k&? is out of bounds of `` ?library/core/src/str/mod.rs ,library/core/src/unicode/printable.rs$%6$% +    $jk   ';>NO{ 6=>V67VW5 )14:EFIJNOde\ 69: 7 ;>fio_ZbST./'(U :?EQ͠"%>? #%&(38:HJLPSUVXZ\^`cefksx}Юno^"{-f/.1$ +D*$$(4 NC7  ;E9c 0!@8K/  @ ' 6: PI73 3. &RK+*& N$ D  H' u B>*; QbH ^"E  : 6,!p-@:*)L DL=<U4,d V 8 ,  w_  8 ("NT  6  %         +- .012 xy0WXKL./?\]_ℍ)147:;=IJ] )14:;EFIJ^de ):;EIW[\^_de EIde񃅋HINOWY^_[\mqno_}~FGNOXZ\^~rstu&./ߚ@0NOZ['/no7=?BESgu _"D /4 PU   NW PC- :%_ mj%Y    j Y+F , 1 ,  /1M<<8+/-!! /; "t   7 \ ; 8F t ZY   L 1&  *L library/core/src/unicode/unicode_data.rs(P((\library/core/src/escape.rs04 \u{0b#library/core/src/num/bignum.rspassertion failed: noborrowassertion failed: digits < 40assertion failed: other > 0 `]  `,+*0 ,o,`-`. 6`66 !7$ 7a9/90aHL@4aPjQOo!RRaSeѡS!TUaW!YY YZp-H 0e#[ :  +<* 7 :  9 9: ;  (7 : 9  HQ b I7 $ f @ -u"v : 010(  8: @!` i P & .0'C /3*(PF 1{6) 1=$> 4 _9QUje   ( . RzH 4;?Q.72d=m`A A A A AԿ A A Hash table capacity overflowO /rust/deps/hashbrown-0.14.2/src/raw/mod.rst *X(LayoutErrorassertion failed: new_size >= original_sizecrates/javy/src/alloc.rs ([A k -A A?lm/Users/matthewprock/misc_gits/javy/crates/quickjs-wasm-rs/src/js_binding/context.rsP!S!A assertion failed: 0 == JS_NewClass(JS_GetRuntime(self.inner), id, &JSClassDef { class_name: b"\0" as *const _ as *const i8, finalizer: None, gc_mark: None, call: None, exotic: ptr::null_mut(), })P!ST P!SeLnoUnknown errorP!SkS - truncated due to null byteKA )t#P!S<P!S"[A pP!SDOP!S>type mismatch# P!SP!S.P!S%] qrsa Display implementation returned an error unexpectedly[A \/rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/string.rs$K3 4$4tTryFromIntError4uKA ;PMInvalid number of parametersH%4vwxyz{|4}~crates/apis/src/stream_io/mod.rs% $!Only stdout and stderr are supported%$Data needs to be an ArrayBuffer&% ;%Only stdin is supportedP&Expecting 5 arguments, received p& Provided offset and length is not valid for provided buffer&;The encoded data was not valid utf-8Expecting 1 argument, got '4$4tD'6869] ;] <;'6=869UUV'9nn'66945454(67869,?,@?p(ACAD$?$@?(AFCAD,?,@?(ACAD(?(@?$)ABCAD$?$@?`)ACADPLJLLLLSyntax4TypeReferenceRangeInternal/rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/io/stdio.rsF*KF*K4vwxyz{|4}~] qrsPoisonError4 Lazy instance has previously been poisoned<+*/Users/matthewprock/.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/src/lib.rsp+d/rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys/wasi/../unsupported/locks/mutex.rs+f 4 logconsoleMathrandomJavy__javy_io_writeSync__javy_io_readSyncio.js(function () { const __javy_io_readSync = globalThis.__javy_io_readSync; const __javy_io_writeSync = globalThis.__javy_io_writeSync; globalThis.Javy.IO = { readSync(fd, data) { if (!(data instanceof Uint8Array)) { throw TypeError("Data needs to be an Uint8Array"); } return __javy_io_readSync( fd, data.buffer, data.byteOffset, data.byteLength ); }, writeSync(fd, data) { if (!(data instanceof Uint8Array)) { throw TypeError("Data needs to be an Uint8Array"); } return __javy_io_writeSync( fd, data.buffer, data.byteOffset, data.byteLength ); }, }; Reflect.deleteProperty(globalThis, "__javy_io_readSync"); Reflect.deleteProperty(globalThis, "__javy_io_writeSync"); })(); __javy_decodeUtf8BufferToString__javy_encodeStringToUtf8Buffertext-encoding.js(function () { const __javy_decodeUtf8BufferToString = globalThis.__javy_decodeUtf8BufferToString; const __javy_encodeStringToUtf8Buffer = globalThis.__javy_encodeStringToUtf8Buffer; class TextDecoder { constructor(label = "utf-8", options = {}) { label = label.trim().toLowerCase(); const acceptedLabels = ["utf-8", "utf8", "unicode-1-1-utf-8", "unicode11utf8", "unicode20utf8", "x-unicode20utf8"]; if (!acceptedLabels.includes(label)) { // Not spec-compliant behaviour throw new RangeError("The encoding label provided must be utf-8"); } Object.defineProperties(this, { encoding: { value: "utf-8", enumerable: true, writable: false }, fatal: { value: !!options.fatal, enumerable: true, writable: false }, ignoreBOM: { value: !!options.ignoreBOM, enumerable: true, writable: false }, }) } decode(input, options = {}) { if (input === undefined) { return ""; } if (options.stream) { throw new Error("Streaming decode is not supported"); } // backing buffer would not have byteOffset and may have different byteLength let byteOffset = input.byteOffset || 0; let byteLength = input.byteLength; if (ArrayBuffer.isView(input)) { input = input.buffer; } if (!(input instanceof ArrayBuffer)) { throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'"); } return __javy_decodeUtf8BufferToString(input, byteOffset, byteLength, this.fatal, this.ignoreBOM); } } class TextEncoder { constructor() { Object.defineProperties(this, { encoding: { value: "utf-8", enumerable: true, writable: false }, }); } encode(input = "") { input = input.toString(); // non-string inputs are converted to strings return new Uint8Array(__javy_encodeStringToUtf8Buffer(input)); } encodeInto(source, destination) { throw new Error("encodeInto is not supported"); } } globalThis.TextDecoder = TextDecoder; globalThis.TextEncoder = TextEncoder; Reflect.deleteProperty(globalThis, "__javy_decodeUtf8BufferToString"); Reflect.deleteProperty(globalThis, "__javy_encodeStringToUtf8Buffer"); })(); JSContextRefinner4 4 defaultimport { } from ''; ();{: : ::import { default as defaultFn } from ''; defaultFn();:&:runtime.mjsAdding tasks to the event queue is not supported;0Error while running JS: @;PM4/Users/matthewprock/.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/src/imp_std.rs|;h6|;h Couldn't create JavaScript runtime<"crates/quickjs-wasm-rs/src/js_binding/context.rs0<0= Couldn't create JavaScript contextp<"0<0B undefined< null<[object ArrayBuffer]<[object Object]<description() is deprecated; use Display4$4tnul byte found in datainvalid utf-8: corrupt contents4545=67869nn=669] ] <=6=869444>669,?,@?p>ACAD(?(@?>ABCAD$?$@?>AFCAD$?$@?$?ACADPLJLLLalloc::vec::VecCan't represent as bool??crates/quickjs-wasm-rs/src/js_binding/value.rs?.7Error length should always be available on underlying buffer?.?.* as an array buffer?@T ?.,attempt to join into collection with len > usize::MAX/rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/str.rsAH AHstackUncaught A Error: could not convert JSValue to usizeA)4Error: could not convert JSValue to A$alloc::string::Stringinternal error: entered unreachable code: invalid Once stateB</rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys/wasi/../unsupported/once.rs`B_6BA lengthunhandled tag: B/rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rsCP/rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/str/pattern.rshCOhCO!hCO!/rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/escape.rsCJb#[Ä EmptyInvalidDigitPosOverflowNegOverflowZeroParseIntError4 hCO;$hCO7_ZN/rust/deps/rustc-demangle-0.1.23/src/legacy.rsD.= D.: D.6 D.fD.o'D.pD.r!D.s::D.~D.&D.!D.ID.D./CD.5,(><&*@D.,D.%D.%D.rH__R/rust/deps/rustc-demangle-0.1.23/src/v0.rsKF*2KF*/KF*+KF*Z(`fmt::Error`s should be impossible without a `fmt::Formatter`[A \KF*KKF* punycode{-}0KF*1KF*1KF*4Ginternal error: entered unreachable code: str::from_utf8() = was expected to have 1 char, but chars were founddG9GG"GKF*\KF*Qboolcharstri8i16i32i64i128isizeu8u16u32u64u128usizef32f64!_...KF*KF*KF*#"KF*$%KF*{invalid syntax}{recursion limit reached}?'for<> , []::{closureshim# as mut const ; dyn + unsafe extern "KF*-" fn( -> = falsetrue{ { }0xKF*-.llvm./rust/deps/rustc-demangle-0.1.23/src/lib.rsVI+bVI+i{size limit reached}`fmt::Error` from `SizeLimitedFmtAdapter` was discarded[A VI+SSizeLimitExhausted TDYDeDpD{DHHHJHHGHH3H.HBHH$H8H*H>HNHHH!H5HKOHH'H;HMH()/rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/io/borrowed_buf.rs4reentrant initK/rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/cell/once.rsKMBA 4 called `Option::unwrap()` on a `None` valueinternal error: entered unreachable code/rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/vec/mod.rscLL$NulErrorUtf8Errorvalid_up_toerror_lenNoneSome     library/std/src/rt.rsQMr library/std/src/thread/mod.rsfailed to generate unique thread ID: bitspace exhaustedM7xM library/std/src/sync/lazy_lock.rsM!library/std/src/backtrace.rsRUST_LIB_BACKTRACERUST_BACKTRACEunsupported backtracedisabled backtraceNcalled `Result::unwrap()` on an `Err` valuestream did not contain valid UTF-8N"failed to write the buffered dataN!KA library/std/src/io/buffered/linewritershim.rs4O-Y4O-|'4O-~04O-wassertion failed: mid <= self.len()4O-"4O-)entity not foundpermission deniedconnection refusedconnection resethost unreachablenetwork unreachableconnection abortednot connectedaddress in useaddress not availablenetwork downbroken pipeentity already existsoperation would blocknot a directoryis a directorydirectory not emptyread-only filesystem or storage mediumfilesystem loop or indirection limit (e.g. symlink loop)stale network file handleinvalid input parameterinvalid datatimed outwrite zerono storage spaceseek on unseekable filefilesystem quota exceededfile too largeresource busyexecutable file busydeadlockcross-device link or renametoo many linksinvalid filenameargument list too longoperation interruptedunsupportedunexpected end of fileout of memoryother erroruncategorized errorOskind-KindErrorCustomerror (os error )KA S Slibrary/std/src/io/stdio.rs$S~$S$S$S$S$S$S$S$S$S$Sfailed printing to : ST$S stderrlibrary/std/src/io/mod.rsKSB.T5KS.Ts advancing io slices beyond their lengthT'.Tu advancing IoSlice beyond its lengthT#library/std/src/sys/wasi/io.rsT failed to write whole buffer$U.T]$formatter error\U(library/std/src/panic.rsxUfulllibrary/std/src/path.rs.U!U&U,U 'U'U)U+U/U/U+cannot recursively acquire mutex\V library/std/src/sys/wasi/../unsupported/locks/mutex.rsV6 library/std/src/sync/once.rsV2VV1lock count overflow in reentrant mutexlibrary/std/src/sync/remutex.rs>Wstack backtrace: pWnote: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. WXUKA /fatal runtime error: assertion failed: thread_info.stack_guard.get().is_none() && thread_info.thread.get().is_none() Xu�memory allocation of bytes failed XXlibrary/std/src/panicking.rsBoxthread '' panicked at : XX YPMnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace 0YNX 44[A ?f panicked after panic::always_abort(), aborting. KA Y1thread panicked while processing panic. aborting. 4Z2thread caused non-unwinding panic. aborting. pZ-library/std/src/../../backtrace/src/symbolize/mod.rsZ4v0KA T - KA )Z [ W at 0[:H[PMNotFoundPermissionDeniedConnectionRefusedConnectionResetHostUnreachableNetworkUnreachableConnectionAbortedNotConnectedAddrInUseAddrNotAvailableNetworkDownBrokenPipeAlreadyExistsWouldBlockNotADirectoryIsADirectoryDirectoryNotEmptyReadOnlyFilesystemFilesystemLoopStaleNetworkFileHandleInvalidInputInvalidDataTimedOutWriteZeroStorageFullNotSeekableFilesystemQuotaExceededFileTooLargeResourceBusyExecutableFileBusyDeadlockCrossesDevicesTooManyLinksInvalidFilenameArgumentListTooLongInterruptedUnsupportedUnexpectedEofOutOfMemoryOtherUncategorized4library/std/src/sys/wasi/os.rs]C6strerror_r failure]]A library/std/src/sys/wasi/time.rs]  random_get failurelibrary/std/src/sys/wasi/mod.rs:^%fatal runtime error: rwlock locked for writing l^/Once instance has previously been poisoned^*one-time initialization may not be performed recursively^8  &8    OO PP+P;PNP`PmP{PPPPPPPPQ'Q_QxQQQQQQQQQ RR%R@RNR^RtRRRRRR        \[d[t[[[[[[[[[[\ \\$\0\A\S\a\w\\\\\\\\\\\\ ]]']:]E]P]]]h]m]" $ ((((((( ((((#((( ((! ((((((&(($(($((( ($(((codenamemessageSUCCESS2BIGACCESADDRINUSEADDRNOTAVAILAFNOSUPPORTAGAINALREADYBADFBADMSGBUSYCANCELEDCHILDCONNABORTEDCONNREFUSEDCONNRESETDEADLKDESTADDRREQDOMDQUOTEXISTFAULTFBIGHOSTUNREACHIDRMILSEQINPROGRESSINTRINVALIOISCONNISDIRLOOPMFILEMLINKMSGSIZEMULTIHOPNAMETOOLONGNETDOWNNETRESETNETUNREACHNFILENOBUFSNODEVNOENTNOEXECNOLCKNOLINKNOMEMNOMSGNOPROTOOPTNOSPCNOSYSNOTCONNNOTDIRNOTEMPTYNOTRECOVERABLENOTSOCKNOTSUPNOTTYNXIOOVERFLOWOWNERDEADPERMPIPEPROTOPROTONOSUPPORTPROTOTYPERANGEROFSSPIPESRCHSTALETIMEDOUTTXTBSYXDEVNOTCAPABLENo error occurred. System call completed successfully.Argument list too long.Permission denied.Address in use.Address not available.Address family not supported.Resource unavailable, or operation would block.Connection already in progress.Bad file descriptor.Bad message.Device or resource busy.Operation canceled.No child processes.Connection aborted.Connection refused.Connection reset.Resource deadlock would occur.Destination address required.Mathematics argument out of domain of function.Reserved.File exists.Bad address.File too large.Host is unreachable.Identifier removed.Illegal byte sequence.Operation in progress.Interrupted function.Invalid argument.I/O error.Socket is connected.Is a directory.Too many levels of symbolic links.File descriptor value too large.Too many links.Message too large.Filename too long.Network is down.Connection aborted by network.Network unreachable.Too many files open in system.No buffer space available.No such device.No such file or directory.Executable file format error.No locks available.Not enough space.No message of the desired type.Protocol not available.No space left on device.Function not supported.The socket is not connected.Not a directory or a symbolic link to a directory.Directory not empty.State not recoverable.Not a socket.Not supported, or operation not supported on socket.Inappropriate I/O control operation.No such device or address.Value too large to be stored in data type.Previous owner died.Operation not permitted.Broken pipe.Protocol error.Protocol not supported.Protocol wrong type for socket.Result too large.Read-only file system.Invalid seek.No such process.Connection timed out.Text file busy.Cross-device link.Extension: Capabilities insufficient.Errno           b bbbb(b3b8b?bCbIbMbUbZbebpbybbbbbbbbbbbbbbbbbbbbbbbc ccc c%c*c0c5c;c@cEcOcTcYc`cfcnc|cccccccccccccccccccc6/ /  "   2 4$*   %c0dGdYdhd~ddddd e!e4eGeZeme~eeeeee ff,f?fUfkfffffffgge!g3gCgaguggggggehh6hMheh|hhhhhi5iYisiiiiiiij+jAjNje^jsjjjA  (){}(){super(...arguments);}() { [native code] }cannot mix ?? with && or ||ctzproxy: property not present in target were returned by non extensible proxyrevoked proxyProxyadd_propertyproxy: cannot set propertyno setter for propertyvalue has no propertycould not delete propertyproxy: duplicate propertyJS_DefineAutoInitPropertyhasOwnPropertyproxy: inconsistent deletePropertyproxy: inconsistent definePropertyJS_DefineProperty!mr->emptyInfinityout of memoryunknown unicode general categoryGeneral_Categoryeveryanyapply'%s' is read-onlyexpecting catch or finallystickybigint are forbidden in JSON.stringifysubarrayempty arraynon integer index in typed arraynegative index in typed arrayout-of-bound index in typed arraycannot create numeric index in typed arrayinvalid typed arrayisArrayTypedArraygetDaygetUTCDayjs_get_atom_indexinvalid array indexJS_AtomIsArrayIndexfindLastIndexfindIndexinvalid export syntaxinvalid assignment syntaxmax\u%04xinvalid opcode: pc=%u opcode=0x%02x-+ 0X0x-0X+0X 0X-0x+0x 0xline terminator not allowed after throwbf_pownowinteger overflowstack overflowmust be called with newisViewDataViewrawtdivfdivedivcdiv%uclass declarations can't appear in single-statement contextfunction declarations can't appear in single-statement contextlexical declarations can't appear in single-statement contextduplicate argument names not allowed in this contextduplicate parameter names not allowed in this contextimport.meta not supported in this contextJS_FreeContextjs_map_iterator_nextjs_async_generator_resume_nextunexpected end of inputttexported variable '%s' does not existprivate class field '%s' does not existtestassignment rest property must be lastfindLastbf_sqrtsortcbrttrimStartpadStartunknown unicode scriptScripthypotfree_zero_refcountstr_index == num_keys_count + str_keys_countnum_index == num_keys_countsym_index == atom_countlabel >= 0 && label < s->label_countlab1 >= 0 && lab1 < s->label_countval < s->capture_countval2 < s->capture_countinvalid repeat countinvalid repetition countfontinvalid code pointfromCodePointinvalid hintcannot convert NaN or Infinity to bigintcannot convert to bigintboth operands must be bigintnot a bigintencodeURIComponentdecodeURIComponentunexpected end of commentinvalid switch statementBigIntparseIntduplicate defaultsplitexpecting hex digitinvalid digittrimRightreduceRightunshifttrimLeftinvalid offsetinvalid byteOffsetgetTimezoneOffsetresolving function already setproxy: inconsistent setfind_jump_targetexpecting targetinvalid destructuring targetproxy: inconsistent getWeakSetconstructJS_FreeAtomStructuse strictReflectrejectnot an AsyncGenerator objectcannot convert to objectinvalid brand on objectoperand 'prototype' property is not an objectiterator must return an objectnot a Date objectnot a objectObjectparseFloatflatnothing to repeatconcatcodePointAtcharAtcharCodeAtkeysproxy: target property must be present in proxy ownKeysexport '%s' in module '%s' is ambiguousprivate class field '%s' already existstoo many argumentsToo many call argumentsinvalid number of digitsinvalid property accessjs_op_define_classfd->byte_code.buf[define_class_pos] == OP_define_classunsupported object class__getClasssetHoursgetHourssetUTCHoursgetUTCHoursgetOwnPropertyDescriptorstoo many imbricated quantifiersunicode_prop_opsacosfor await is only valid in asynchronous functionsnew.target only allowed within functionsproxy: inconsistent preventExtensionsScript_Extensionsproxy: properties must be strings or symbolsgetOwnPropertySymbolsresolve_labelsJS_EvalThisinvalid descriptor flagsinvalid regular expression flagsvaluessetMinutesgetMinutessetUTCMinutesgetUTCMinutestoo many capturesgetOwnPropertyNamesgc_free_cyclesadd_eval_variablesresolve_variablestoo many local variablestoo many closure variablescompact_propertiesdefinePropertiesentriesfromEntriestoo many rangesincludessetMillisecondsgetMillisecondssetUTCMillisecondsgetUTCMillisecondssetSecondsgetSecondssetUTCSecondsgetUTCSecondsitalicsabsproxy: inconsistent has%.*s (%sset %sget %s at %sno overloaded operator %snot a %sunsupported keyword: %ssubstrproxy: inconsistent getOwnPropertyDescriptorsuper() is only valid in a derived class constructorparent class must be constructornot a constructorArray IteratorSet IteratorMap IteratorRegExp String Iteratornot an Async-from-Sync Iteratorcannot invoke a running generatornot a generatorAsyncGeneratorsyntax errorSyntaxErrorEvalErrorInternalErrorAggregateErrorTypeErrorRangeErrorReferenceErrorURIErrorfloorfontcoloranchorforkeyForexpecting surrogate paira declaration in the head of a for-%s loop can't have an initializer'arguments' identifier is not allowed in class field initializerinvalid number of arguments for getter or setterinvalid setterinvalid getterfiltermissing formal parameter"use strict" not allowed in function with default or destructuring parameterinvalid characterunexpected characterprivate class field forbidden after superinvalid redefinition of lexical identifier'let' is not a valid lexical identifierinvalid redefinition of global identifieryield is a reserved identifier'%s' is a reserved identifieratom1_is_integer && atom2_is_integercannot convert to bigint: not an integerisIntegerisSafeIntegerread after the end of the bufferJS_WriteSharedArrayBuffercannot use identical ArrayBuffercannot convert bigint to numbercannot convert bigfloat to numbercannot convert symbol to numbercannot convert bigdecimal to numbernot a numberlineNumbermalformed unicode charclearsetYeargetYearsetFullYeargetFullYearsetUTCFullYeargetUTCFullYearq != runexpected line terminator in regexpunexpected end of regexpRegExpsupinvalid grouppopcontinue must be inside loopbf_logic_opnum_keys_cmpuse stripmapflatMapWeakMapexpecting '{' after \plog1pdivision by zero0ohasOwniterator_close_returnpromise self resolutionout of memory in regexp executiondescriptionproxy: defineProperty exceptionjs_async_generator_resolve_functionjs_create_functionset/add is not a functionreturn not in a functionAsyncGeneratorFunctionAsyncFunctioninvalid operationunsupported operationawait in default expressionyield in default expressioninvalid decimal escape in regular expressionback reference out of range in regular expressioninvalid escape sequence in regular expressionexpected 'of' or 'in' in for control expressiontoo complicated destructuring expressionexpected '}' after template expressiontoPrecisionasinjoinmincopyWithintemplate literal cannot appear in an optional chaincircular prototype chainassign!y->signisFrozenmark_children(pos + len) <= bc_buf_leni < a->lenunexpected ellipsis tokenthensetter is forbiddennull or undefined are forbiddenatannannot a booleanBooleangc_scanJS_WriteBigNumbad normalization formJS_NewSymbolFromAtomfromrandomtrimtdivremfdivremedivremcdivrembf_divremsqrtremimulnot a symbolSymbolRegExp exec method must return an object or nullparent prototype must be an object or nullcannot set property '%s' of nullcannot read property '%s' of nullNullfillnew ArrayBuffer is too smallTypedArray length is too smallcalldotAllmatchAllreplaceAllceilupdate_labelbc_buf[pos] == OP_labelevalinvalid bigint literalinvalid number literalmalformed escape sequence in string literalbf_exp_internalbf_log_internalbf_atof_internalbf_ftoa_internalJS_SetPropertyInternalJS_GetOwnPropertyNamesInternal__JS_EvalInternalntt_fft_partialtoExponentialsealglobalblink__date_clocklre_exec_backtracks->is_weakbf_pow_uisetMonthgetMonthsetUTCMonthgetUTCMonthinvalid keyword: withstartsWithendsWithprop == JS_ATOM_lengthinvalid array lengthinvalid array buffer lengthinvalid bignum lengthinvalid lengthinvalid byteLengthuse mathMathpushacoshJS_ResizeAtomHashasinhatanhbreak must be inside loop or switchmatchcatchsearchforEachbf_logArray too longstring too longArray loo longsubstringcannot convert symbol to stringunexpected end of stringnot a stringinvalid character in a JSON stringtoStringtoDateStringtoLocaleDateStringtoTimeStringtoLocaleTimeStringtoLocaleStringtoGMTStringtoISOStringtoUTCStringduplicate import bindinginvalid import bindingbigregexp must have the 'g' flagofinfInfdiff == (int8_t)diffdiff == (int16_t)diffhrefgc_decreffree_var_refoptimize_scope_make_global_refreset_weak_refdelete_weak_refoptimize_scope_make_refindexOflastIndexOfvalueOfsetPrototypeOfgetPrototypeOfisPrototypeOf%.*ffontsizenew_size <= sh->prop_sizedescr < rt->atom_sizeatom < rt->atom_sizecompute_stack_sizen < buf_sizenormalizefreezeresolvetoPrimitiveput_lvalueunknown unicode property valuerest element cannot have a default valueinvalid ret value__JS_AtomToValue__quoteisFinitedeletecreateNumber tag expected for datesetDategetDatesetUTCDategetUTCDateInvalid Datereverseparseproxy preventExtensions handler returned falsePromisetoLowerCasetoLocaleLowerCasetoUpperCasetoLocaleUpperCaseignoreCaselocaleCompareproxy: inconsistent prototypeproxy: bad prototypenot a prototypeinvalid object typeunescaperest element must be the last onemultilinesomeJS_FreeRuntimesetTimegetTimeset_object_nameexpecting property nameunknown unicode property nameinvalid property nameduplicate __proto__ property nameinvalid redefinition of parameter nameexpecting group nameduplicate group nameinvalid group nameduplicate label nameinvalid first character of private nameinvalid lexical variable nameinvalid method nameexpecting field nameinvalid field nameclass statement requires a namefileNamecompileobject is not extensibleproxy: inconsistent isExtensiblecannot have setter/getter and value or writableproperty is not configurablevalue is not iterablepropertyIsEnumerablemissing initializer for const variablelexical variableinvalid redefinition of a variablerevocablestrikemp_divnorm_largebignum exponent is too largebignum is too largeinvalid class rangemessageasync_func_freeinvalid lvalue in strict modeinvalid variable name in strict modecannot delete a direct reference in strict modeoctal escape sequences are not allowed in strict modeoctal literals are deprecated in strict modeunicodeskip_dead_codeinvalid argument name in strict codeinvalid function name in strict codeinvalid redefinition of global identifier in module codeimport.meta only valid in module codefromCharCodeinvalid for in/of left hand-sideinvalid assignment left-hand sidereducesource'this' can be initialized only onceproperty constructor appears more than onceinvalid UTF-8 sequencecircular referenceslicespliceracereplace%+.*eunexpected 'await' keywordunexpected 'yield' keywordmap_decref_recorditerator does not have a throw methodobject needs toISOString method'super' is only valid in a methodfround__bf_round__bfdec_roundbreak/continue label not foundout of boundfindbindinvalid index for appendextraneous characters at the endunexpected data at the endunexpected endinvalid increment/decrement operandinvalid 'instanceof' right operandinvalid 'in' operandtrimEndpadEndbold%lldgc_decref_childresolve_scope_private_fieldcannot delete a private class fieldexpecting private field%s is not initializedfixedtoFixedobject references are not allowedset_object_name_computedregex not supportedeval is not supportedRegExp are not supportedonly value properties are supportedinterrupted%s object expectedidentifier expectedbytecode function expectedstring expectedfrom clause expectedfunction name expectedvariable name expectedmeta expectedrejectedderived class constructor must return an object or undefinedcannot set property '%s' of undefinedcannot read property '%s' of undefinedflags must be undefinedUndefinedprivate class field is already defined'%s' is not definedgroup name not definedoperator %s: no function definedallSettledfulfilledcannot be calledisSealed!sh->is_hashedvar_ref->is_detached!abuf->detachedArrayBuffer is detachedadd%+07d%04d%02d%02dp%+d%c%+d%02d/%02d/%0*d%.3s %.3s %02d %0*dp%d%c%d:%dinvalid throw var type %dscjs_def_malloctruncgcexecbf_integer_to_radix_recmp_shl_decquickjs/quickjs.cquickjs/libregexp.cquickjs/libbf.cquickjs/libunicode.csubpromise_reaction_jobjs_promise_resolve_thenable_job0br != a && r != bq != a && q != br != a__lookupSetter____defineSetter____lookupGetter____defineGetter____proto__[Symbol.split][Symbol.species][Symbol.iterator][Symbol.asyncIterator][Symbol.matchAll][Symbol.match][Symbol.search][Symbol.toStringTag][Symbol.toPrimitive][unsupported type][function bytecode][Symbol.hasInstance][Symbol.replace][%02d:%02d:%02d.%03dZPOSITIVE_INFINITYNEGATIVE_INFINITYp->class_id == JS_CLASS_ARRAYstack_len < POP_STACK_LEN_MAX-%02d-%02dTJS_AtomGetStrRTopcode < REOP_COUNTBYTES_PER_ELEMENT%02d:%02d:%02d GMTJS_VALUE_GET_TAG(sf->cur_func) == JS_TAG_OBJECTshift >= 1 && shift < LIMB_DIGITSvar_kind == JS_VAR_PRIVATE_SETTERMAX_SAFE_INTEGERMIN_SAFE_INTEGERasUintNasIntNisNaNDate value is NaNtoJSONEPSILONNAN%02d:%02d:%02d %cMs->label_slots[label].first_reloc == NULLlabel_slots[i].first_reloc == NULLprs != NULLsf->cur_sp != NULLsf != NULLmr1 != NULLvar_kind != JS_VAR_NORMALb->func_kind == JS_FUNC_NORMALencodeURIdecodeURIPIspecial == PUT_LVALUE_NOKEEP || special == PUT_LVALUE_NOKEEP_DEPTHs->state == JS_ASYNC_GENERATOR_STATE_EXECUTINGprec != BF_PREC_INFprec1 != BF_PREC_INF0123456789ABCDEFMAX_VALUEMIN_VALUEeval_type == JS_EVAL_TYPE_GLOBAL || eval_type == JS_EVAL_TYPE_MODULEp->gc_obj_type == JS_GC_OBJ_TYPE_JS_OBJECT || p->gc_obj_type == JS_GC_OBJ_TYPE_FUNCTION_BYTECODELOG2ELOG10Es->state == JS_ASYNC_GENERATOR_STATE_AWAITING_RETURN || s->state == JS_ASYNC_GENERATOR_STATE_COMPLETEDUTCbigint operands are forbidden for >>>"setUint8getUint8setInt8getInt8malformed UTF-8radix must be between 2 and 36setUint16getUint16setInt16getInt16argc == 5setBigUint64getBigUint64setBigInt64getBigInt64setFloat64getFloat64argc == 3atan2log2floorLog2SQRT1_2SQRT2LN2clz32setUint32getUint32setInt32getInt32setFloat32getFloat32stack_len >= 2JS_AtomIsNumericIndex1js_fcvt1JS_CompactBigInt1expm1r != a1 && r != b1ls->addr == -1nq >= 1stack_len >= 1p->header.ref_count == 1p->shape->header.ref_count == 1stack_len == 1js_free_shape0log10LN10radix == 10p->ref_count > 0var_ref->header.ref_count > 0len > 0stack_size > 0cpool_idx >= 0rt->atom_count >= 0ls->ref_count >= 0s->is_eval || s->closure_var_count == 0p->ref_count == 0ctx->header.ref_count == 0sh->header.ref_count == 0p->mark == 0(n2 % strip_len) == 0(pr->u.init.realm_and_id & 3) == 0(new_hash_size & (new_hash_size - 1)) == 0i != 0size != 0^$\.*+?()[]{}|/0.missing binding pattern...bigint argument with unary +async function * })invalid atom index (pos=%u)invalid tag (tag=%d pos=%u)invalid object reference (%u >= %u)list_empty(&rt->gc_obj_list)j == (sh->prop_count - sh->deleted_prop_count)JS_IsUndefined(func_ret)!__JS_AtomIsTaggedInt(descr)!atom_is_free(p)(null) (native)js_class_has_bytecode(p->class_id)invalid version (%d expected=%d)inconsistent stack size: %d %d (pc=%d)bytecode buffer overflow (op=%d, pc=%d)stack overflow (op=%d, pc=%d)stack underflow (op=%d, pc=%d)invalid opcode (op=%d, pc=%d)unsupported tag (%d)(?:)no function filename for import()-_.!~*'() anonymous(Symbol(expecting '}'class constructors must be invoked with 'new'expecting 'as'unexpected token in expression: '%.*s'unexpected token: '%.*s'redeclaration of '%s'duplicate exported name '%s'circular reference when looking for export '%s' in module '%s'Could not find export '%s' in module '%s'could not load module '%s'cannot define variable '%s'undefined private field '%s'unsupported reference to 'super'invalid use of 'super''for await' loop should be used with 'of'expecting '%c'unparenthesized unary expression can't appear on the left-hand side of '**'invalid use of 'import()'expecting %%;/?:@&=+$,#set get [object async function bound %.3s, %02d %.3s %0*d async : ) { __JS_FreeValue: unknown tag=%d Support for formatting long double values is currently disabled. To enable it, add -lc-printscan-long-double to the link command. Assertion failed: %s (%s: %s: %d) A `NP@h 7 d1z>u2-iS*0'a(Tzjj&&>%DȺg# )"=Ȳ!+W; )| ~PX,o⦊!] !͝4CxL$e z6 >[K +רhLi4r?C;o.uo8F8;b0YV梕+0}̙_1`{("O jF2= A  G2@&A (1_R27;n$Y5hW/{t8,A (UIlF. `2  8)f>2 @/ v.A 0 0sZ0`0lop|@0@@@.0@p0@0@0@000@0000@000@0@0@0@0@0@@PPP@@P@00@(0@1@01@ 0!0"0"@ #(())*+,-.0012344556789:>@AACDDEFINOs@@0000000s0ssss@sss@0@000  (@"0@6E0`@`g@`h01&P1c1f+h~P   t@t@tAtAtBtBtCCD0+H0^@~@?KKLLMM0O@`P0000000000ghhׁ00as؁0bЁЁ00ӁӁ001ف00b11@1[h100@001010223@306070708@9@:0?@d@@u@y&@. S@@S@S@>S@S0S@ S@S0S@SS@S0S0S0S0S0S0S0S0S1S@S1S0S0S@S@S@S@SU PU}}}ځ}}}}}}}}}11((1$X$l1 11Ƃ1ʂ˂тق݂13@3`1 P `1  01""A M SJQRS:TUWY?]\FacBdfhjln@ 5'!$"*km&$'>?9="!A@%%&( *H,C.K0L2DB}~vw{|xyu3t./0O!""*456IZ6EBF!@``)@F`m789_eDGObNPHA <ZG[VX`^pioN;gEXXo]\_^a`fghibcdekjmlonqpA sBFILSiNJ 5RH1TW YA(hDF;N=bJ`kA @Ӏထ0 91@ւAbKrL@AЀ( $K&`y@C4`\`DԀ ASG3-APA  , !!JA A@@@8ڊ ;   ( ȁ(  ݀B_C7 @ 0=  9(A' KߟAԀ$܅܂`oDA ρ̀ @)   ㄈ`O/@B<@€B@@D(BE @BK@ߟB)`uρA#ҁ  $@8 `O#B@B@@A$EV @B<ApςŊ 0*!;ы(@+1 2@Г@1ѐЌҎ@@( 120A8*0 'AH2T`6 ՉC3Ѐ`LR`B"/9@EA8 EO0@AcACՆ4Rl@A p @W ` @A 7 P : !tZ!DZj!EA!Adlam,AdlmAhom,AhomAnatolian_Hieroglyphs,HluwArabic,ArabArmenian,ArmnAvestan,AvstBalinese,BaliBamum,BamuBassa_Vah,BassBatak,BatkBengali,BengBhaiksuki,BhksBopomofo,BopoBrahmi,BrahBraille,BraiBuginese,BugiBuhid,BuhdCanadian_Aboriginal,CansCarian,CariCaucasian_Albanian,AghbChakma,CakmCham,ChamCherokee,CherChorasmian,ChrsCommon,ZyyyCoptic,Copt,QaacCuneiform,XsuxCypriot,CprtCyrillic,CyrlCypro_Minoan,CpmnDeseret,DsrtDevanagari,DevaDives_Akuru,DiakDogra,DogrDuployan,DuplEgyptian_Hieroglyphs,EgypElbasan,ElbaElymaic,ElymEthiopic,EthiGeorgian,GeorGlagolitic,GlagGothic,GothGrantha,GranGreek,GrekGujarati,GujrGunjala_Gondi,GongGurmukhi,GuruHan,HaniHangul,HangHanifi_Rohingya,RohgHanunoo,HanoHatran,HatrHebrew,HebrHiragana,HiraImperial_Aramaic,ArmiInherited,Zinh,QaaiInscriptional_Pahlavi,PhliInscriptional_Parthian,PrtiJavanese,JavaKaithi,KthiKannada,KndaKatakana,KanaKawi,KawiKayah_Li,KaliKharoshthi,KharKhmer,KhmrKhojki,KhojKhitan_Small_Script,KitsKhudawadi,SindLao,LaooLatin,LatnLepcha,LepcLimbu,LimbLinear_A,LinaLinear_B,LinbLisu,LisuLycian,LyciLydian,LydiMakasar,MakaMahajani,MahjMalayalam,MlymMandaic,MandManichaean,ManiMarchen,MarcMasaram_Gondi,GonmMedefaidrin,MedfMeetei_Mayek,MteiMende_Kikakui,MendMeroitic_Cursive,MercMeroitic_Hieroglyphs,MeroMiao,PlrdModi,ModiMongolian,MongMro,MrooMultani,MultMyanmar,MymrNabataean,NbatNag_Mundari,NagmNandinagari,NandNew_Tai_Lue,TaluNewa,NewaNko,NkooNushu,NshuNyiakeng_Puachue_Hmong,HmnpOgham,OgamOl_Chiki,OlckOld_Hungarian,HungOld_Italic,ItalOld_North_Arabian,NarbOld_Permic,PermOld_Persian,XpeoOld_Sogdian,SogoOld_South_Arabian,SarbOld_Turkic,OrkhOld_Uyghur,OugrOriya,OryaOsage,OsgeOsmanya,OsmaPahawh_Hmong,HmngPalmyrene,PalmPau_Cin_Hau,PaucPhags_Pa,PhagPhoenician,PhnxPsalter_Pahlavi,PhlpRejang,RjngRunic,RunrSamaritan,SamrSaurashtra,SaurSharada,ShrdShavian,ShawSiddham,SiddSignWriting,SgnwSinhala,SinhSogdian,SogdSora_Sompeng,SoraSoyombo,SoyoSundanese,SundSyloti_Nagri,SyloSyriac,SyrcTagalog,TglgTagbanwa,TagbTai_Le,TaleTai_Tham,LanaTai_Viet,TavtTakri,TakrTamil,TamlTangut,TangTelugu,TeluThaana,ThaaThai,ThaiTibetan,TibtTifinagh,TfngTirhuta,TirhTangsa,TnsaToto,TotoUgaritic,UgarVai,VaiiVithkuqi,VithWancho,WchoWarang_Citi,WaraYezidi,YeziYi,YiiiZanabazar_Square,ZanbA GGGGGG`GG 8,,,,,,,,,,,$8H555 88  ffRR 8           //////////////// --------------tttttttttttttt  ============= QQQQQQQ $FFFFFFFFFFFǗ$?`(((((1''''''''''''''''''i~~3 BBB]]]]] IIIII ddddB80  HHHj((888888G,G,G,GG,8G,,,,,,,,,,,,,,,,8GGG8,GGGG6?)G((( '''''''''!00 u0000810686>> 1  >11>>G _0A0,L˝GGGGGGzŀ @@} }1;;;``W '''''GG,GWWC1 11p 0 0%G 555555 88&GG>>11111 KKKKKK!K,,.8`!M8ll*noo)vvuu% BJJ JGGGD77xaa/444{{NN?ZYYYAAAAAAAAqmSS::99|| |Or6k kk22`ŞJps%&< <P߁ CC=_____EE+++++++8++++++++`*eeǙ`E!\ \]5`X"`Ҡ !!!!!!!!Ecccǣ҈ y ` TTTHUUUUUUU......`՘O???UL 9` ci $oIpX^^^Κ  w wwwwbOV`[[[?g0D 0 ⟓uD)p>>>>6>66> >+gh #####p88; 8888,`  `&+cGG`t))))) `hhhh`ߞaobb''''dXX(bK`a3`  M76  `9wM 2$c00}0!0 0k0e00z`8,, Gn)G)f2 f2f2 RSs|2  b2 +-/=GQt +-/=GQt ".U+-/=PQctE ".U+-/=IPQctE  " 106>0  106> 106> 106> 106>  0 106>6> 106>06>0X6>6>Y 106>6>0#0;'0700 020W0 0_01)0G "-/C= 106> 6>,6>KK,JKKuSs++6+++\K#;0]0-A Cn,UnassignedLu,Uppercase_LetterLl,Lowercase_LetterLt,Titlecase_LetterLm,Modifier_LetterLo,Other_LetterMn,Nonspacing_MarkMc,Spacing_MarkMe,Enclosing_MarkNd,Decimal_Number,digitNl,Letter_NumberNo,Other_NumberSm,Math_SymbolSc,Currency_SymbolSk,Modifier_SymbolSo,Other_SymbolPc,Connector_PunctuationPd,Dash_PunctuationPs,Open_PunctuationPe,Close_PunctuationPi,Initial_PunctuationPf,Final_PunctuationPo,Other_PunctuationZs,Space_SeparatorZl,Line_SeparatorZp,Paragraph_SeparatorCc,Control,cntrlCf,FormatCs,SurrogateCo,Private_UseLC,Cased_LetterL,LetterM,Mark,Combining_MarkN,NumberS,SymbolP,Punctuation,punctZ,SeparatorC,OtherA >A.A@>@@>DDA0D4D5D6D8D:D>a/B@J@LM.V.r wwA. 0"1.2Rvw/@@.A@@@@ ? KLO^fDBDB D D"D"D"D"D>D"D"D>L@@@@   @>D@>C>@@@ @        "D%*@@@AAA@B-B@EEBFH@HHIIJJKBM@NNOBQTTTWX@XXXY@YYYZ@ZZZ[@\\\]@]]]^@^^^_@b>fkAs@@@BDDDDD>D A #E   +E ! " %E$ & % ' -  4 : @  [  D -  -  B " " " "A " % #& ' ' + B1 "4 "4 "5 "A6 "7 = = ? ? -JL EQ S Y d A ) A )A … @ A  D # -  @  #B #E  A @   1A A 3 1 @ 3 @ 5A  @ /B 1A @ / @  @   @ 3 @ @ ! %  @  A ' ? @ B B ?C 1 @ @  @  ?    A @    %E % %A ))))*@*@>J>?j>>>/>ų>>>?A>>A>>@>>>>> > >>>-1>>/>->//????? A D G J V \ ` b d h j p x | 0 a-k  ' 1 ! 5 9 = A E I M Q U Y o q s   " . z (,026<>ACFw{ "(3=ELQW^cipv} #)/269?EYay|AIMSWZnqu{}o Slrx~+IbLRWww}w#08<Rd1 "$&(*H~ )DFHJLNPRrtvxz""""""""""  9=C`-ht,%8:>DJLPRZ]_eg0m3 D E!U![!U"s#A B 23 1o141234AAAAAACEEEEIIIINOOOOOUUUUYaaaaaaceeeeiiiinooooouuuuyyAAACCCCDEEEEEGGGGHIIIIIIJijJKLLLLk kNNNnOOORRRSSSSTTUUUUUUWYYZZZOUD}D~d~LJLjljNJNjnjAIOU&GKOjDZDzdzGNAAEEIIOORRUUSTHAEO.Yhfjry{wy clsx  #8553V:8Ct-###'+e',-!-.#-'M!MM#MTTT( < 0 < 3 <  '''' ' '''  2 < 8 <  &&&+ < G V > ! <  F V >   M2BLQV[@qrqAq%.55 5 5 55:5<5>5B5ABDEGO"PRTUWaPQbdeY[\gkmKoTptuov%iruvRcU\f_aehij{mqprstuxzABBBDDDDDEE(FGHHHHHIKKKL6LLMMMNNNNLLPPRRZRSSZ`bTTTTUUUhjVVWWWWWXXYZZZhtwyaAAEEEIIOOUUYYYY‘µ ! ! !—()()()¹010101™898989¿@@HHPPP¥YYY`a`a`a©hihihi±E E`EpűŬ¶ő ¨tŷŮŕſ¹BBBB`|ş  .....2 2 2 5 5 5 !! ???!!?2 0i456789+=()n0+"=()aeoxYhklmnpstRsa/ca/sCc/oc/uFH $NoPQRRRSMTELTMKBCeEFMoFAX"Ddeij17191101323152535451656183858781IIIIIIVVIVIIVIIIIXXIXIILCDMiiiiiiivviviiviiiixxixiilcdm03!!!!!!"" "#"%"+"+"+"."."."<"C"E"H"=a"M"<>d"e"r"v"z"""""""|"""8011020(1)(10)(20)1.10.20.(a)Aa+"::======*jVN(6?Y?Q&,CWlR^zSSSVWXY YY'YsYP[[[\"\8\n\q\]]]]r^z^^^^ __P_a_s__b6bKb/e4eeeeeeefg(g kbkykkkkkll4lkp*r6r;r?rGrYr[rrssttuu(u0uuuvv}vvvvwww:yyytzzzs||6Q 3)8y Tyr]yRN|Tf[vOnjTSmyOOU|^e{PTE2130 aaaaaa a a aaai ci nNN NVNmQNkQ]NASgkp4l(gёWe*h g>y Tyr]yRy7usYi*QpSlOQck N-N N]S;S[f[vOnjTSY3640501g10gHgergeVLTD0 "$&()*+,-0369<=>?@BDFGHIJKMNOPNT00['J4R90ZI0'O 0OO0T!0TT0OX<F0>B?Q0AGG2000N08=O>O000@<30@4O>0@B0900 E<$O GI0>M0K:K,0 G0> G+0:C0::C04<0*$+ 0A8 0 80,02&I0%<0! 804H"(02Y%0/D00)M<000" 3 ";"D!D09O$0#000*3"3*0: I0:G:+:G 0'<0<00>D000,0005G5P?0BZ'BZIDQ0'(000(0&000:AA0,0p10p20phPadaAUbaroVpcdmdmIUs^b-fT'Yckfl*h_O>ypAnAAmAkAKBMBGBcalkcalpFnFFgmgkgHzkHzMHzGHzTHz!m!d!k!fmnmmmmcmkmc O Omc O P Pmkmm"sm"sPakPaMPaGParadradsrad"spsnssmspVnVVmVkVMVpWnWWmWkWMWkMa.m.BqcccdCkgCo.dBGyhaHPinKKKMktlmlnloglxmbmilmolPHp.m.PPMPRsrSvWbVmAm1e10e20e30egalJLCFQ&S'7kRHfʎȌn2NSQYёUHYaiv?jmps=jNuSkr-P]oͅdb؁^gjmrΐOQRdjrv\2oxy}Ƀ֊X_`|~brxŒXb\jmo/}7~KRQQz}ubj9N[`spuSxO_ Nlxe"}S^XwIklb傠ceuNiQQh|oҊϑRBTsY^eo*yjΞRfwkbt^abd#oIqty}o&#JRRTpˆ^_{ck>|usNV[]`sitF4HOy`NP[?\ejqBv|f.R{ggAmn tYukx}^mQ.bx+P]m*_Dahs)RTe\fNghltuyψ̑?SnTqtWgmz {|rpXN6:RR^b|[mf;LM^@QUZXtfQ*svyIyHyPyVy]yyy@zz{} ~A~ryyW9ӌ8;u`B&NQhQOEQQRRUUUUUZXXDYTYbZ([^^i__`Naaa`aa4bcdRdVetfggVgykkAmnn"opnqw5rr*sqtu;uvvvvvJw@wxz{{|[}}>RyAˊ98rv|Vۗ ;J(D(3;@9@IR\~C*fffiflffiffltste II-./01"+q  33335555'' 8888>>>>BBBB@@@@IIJJJJOOPPPPMMMMaabbIdddd~~}}.||&""###&#$#$#$#$    #$#$#$#$#$     # $!!!#!$$$$$$#$$ J J#J LQQ&  #$   #$  & #$   #$#$#$#$#$  # $#J$ $ $$ $#$$!!!    !     !!!!J$$$$$!!!!!  !!  !$$!@NQ'"#"#"# " # " #"#"#"#"#"#       "#"#"# " # " #"#"#"#"#"#                 $$*                              (!!"!""""!"!"!"!! ! " """""""""""""""""""""  ""5 '   !# ! 5'" # ! ' ' ,00:;!?00&  __(){}0  []> > > > ___,0.;:?! (){}00#&*+-<>=\$%@@ M@!  !!!!""""####$$$$%%%%&&&&''(())))"""""""""!)0 񠢤11O1U1[1a1 %!!!!%%SfVWX^db`'glߎnߎvwqz}~gq, A@1'2'UG>GWUUPU50WeXe_n_o_p_q_rUUUeѺeѻnѼnѻoѼoUUUAaAaiAaACDGJKNOPQSTUVWXYZabcdfhpAaABDEFGJSaABDEFGIJKLMOSaAaAaAaAaAaAa17$ $ $ $ $  000000:>KMN0&( a&%/{Q'*     DwE(,G34*+.6:-JDF395B4.6:o(,G-7JCEF39A5B4*+.68:n' ! #*    (,/H2-7J*    0.0,(A)0S0CRCDWZAHVMVSDSSPPVWCMCMDMRDJK00hhKbW[S0NY)YN f!qeMR_QeRB}uX9TobUcN NJ]-NScpSbyzzTn gg3urRUM00,g NN[pSbvRWe_S08N "`OOOPzPPPP4:MQTQdQwQ4gQQKQQNQQߑQR4;RFRrRwR5 R3>?P, ppSSc SSTT8THThTTTUSUcUUUUUUUWVWQVtVRXWW XW2X1XXXXYY"YbYYZ'ZYfZ66[>[>[[[[[[\S_"\7`\n\\\C]n]k]|]]]/8](^=^i^b8!|8^^^^^1#1#"_"_82ab_k_8____`:99`&`A  (Ha2Fj\g]bTw +=cbhccc+"dcc.:id~ddwdl:Oele 0efIf;f;:QQgfCgg!g^gSg3I;ggRhhm4hhi;Biiij6jmwmAmimxmm=4m/nnn3=nn>mno^??o9ppp=Jp}pwpp%EqcBqC(r5rPrFrr5G   Hzss>s>>Gt\tqttt?$u6L>uLpu!vOODP?@vPPQ3QwwwJw9@wF@@TNxxx@&VVyVVyy/A@zJzOz|YZZzB[{{'B\|B||}_c}C}~E~4C(bGbYCbz>cd#e`ep_3C D>Zgg33kDRFg&G`'F`@6 $` @&' 6-'  )f''@6&f'&F%$&GF'v'&@@E6# AFe%&$78Z ? "aNB"aNb "aNN B"a.64v0V    LL@hH/o/A"A/ aae/"!?B /?j /`,o / / ,/  쀄 ,I  = 4F/  .g p$x{7z( / a((_!"A??$AZF?v 6 06V661v/VQN`V /3f'/J/N &.$RD#V/k88@/ 6倄V% &H$&>&."6." aA??D?$Ee'&o@/ ,v'*&6 V%6'@F''f'&G`6!'&'&E  vO*F%&&%6&'6$ #d.`H''' `)`xx b %%d 8 . O106vPVvV L 6` V V 66L6  6%$@ E@- -l/[/  % sV`%@-k +O@'%z@)`k `" F `` ,!";倯"= $%@ /( %@80`+% &F&feE F`+K&`.@ vHA/++f"& %CFk fv -` %&F%Gf'&6v Fv'6&(G'evfV  GF'&%6e'G&' % %&'g ' G ' @-G'Fe6E(Gg&&%'Gf g&&e&(G'&V #'. F'f`+V1$G&\  %' &V> Gf &g f'F&&VAn @6 &&A%@&%&' &'6&'@'N m ^gԀ ASA#H/M( "BC1I`BkO5FYA 7E[N@DHAL A`͏@OA AHE(IH(HąBmՀA A@% @@Ѐ@;@ šڊɀ퀏퀏퀏퀏쁏(ꀌʁ 0BC@AZA89瀎@ј( ؋ALA= @䂩AЎ `#@B CZaĭ@ɀ@ʙ @ŀ@ԯ( @A@A @_@׀مAnހŀ@ƀ@恉(((AsA΂DـBXae@AA=A ԪыA@C@BBˀKAFRԄGP`̚@@Έ`T·l.OAБ *  ! ( * / 0 _ ` 00A -,IH@I0:A 0:A[_`a{A !A ABA =CDCDCDCDABA CDA NEFGHIJKLGHMNOAؔ PA PA QRQRQRQRQRQRQRQRQRQRQRQRCDCDSA CDTUVWVWVWVWXYXYZ[Z[\]^_A `AЗ aAؗ bcA dA efgA hijklmnA \\p]]^ ^ opqrqrGHstst/uvGHwxAЙ ͂ ׂcopyWithinentriesfillfindfindIndexfindLastfindLastIndexflatflatMapincludeskeysvaluesAԚ nullfalsetrueifelsereturnvarthisdeletevoidtypeofnewininstanceofdowhileforbreakcontinueswitchcasedefaultthrowtrycatchfinallyfunctiondebuggerwithclassconstenumexportextendsimportsuperimplementsinterfaceletpackageprivateprotectedpublicstaticyieldawaitlengthfileNamelineNumbermessageerrorsstacknametoStringtoLocaleStringvalueOfevalprototypeconstructorconfigurablewritableenumerablevaluegetsetof__proto__undefinednumberbooleanstringobjectsymbolintegerunknownargumentscalleecallerlastIndextargetindexinputdefinePropertiesapplyjoinconcatsplitconstructgetPrototypeOfsetPrototypeOfisExtensiblepreventExtensionshasdeletePropertydefinePropertygetOwnPropertyDescriptorownKeysadddonenextvaluessourceflagsglobalunicoderawnew.targetthis.active_func#constructorasfrommeta*default**ModulethenresolverejectpromiseproxyrevokeasyncexecgroupsstatusreasonglobalThisbigintbigfloatbigdecimalroundingModemaximumSignificantDigitsmaximumFractionDigitstoJSONObjectArrayErrorNumberStringBooleanSymbolArgumentsMathJSONDateFunctionGeneratorFunctionForInIteratorRegExpArrayBufferSharedArrayBufferUint8ClampedArrayInt8ArrayUint8ArrayInt16ArrayUint16ArrayInt32ArrayUint32ArrayBigInt64ArrayBigUint64ArrayFloat32ArrayFloat64ArrayDataViewBigIntBigFloatBigFloatEnvBigDecimalOperatorSetOperatorsMapSetWeakMapWeakSetMap IteratorSet IteratorArray IteratorString IteratorRegExp String IteratorGeneratorProxyPromisePromiseResolveFunctionPromiseRejectFunctionAsyncFunctionAsyncFunctionResolveAsyncFunctionRejectAsyncGeneratorFunctionAsyncGeneratorEvalErrorRangeErrorReferenceErrorSyntaxErrorTypeErrorURIErrorInternalErrorSymbol.toPrimitiveSymbol.iteratorSymbol.matchSymbol.matchAllSymbol.replaceSymbol.searchSymbol.splitSymbol.toStringTagSymbol.isConcatSpreadableSymbol.hasInstanceSymbol.speciesSymbol.unscopablesSymbol.asyncIteratorSymbol.operatorSetAЫ                        yz{nfinity 48A I+-*/%**|&^<<>>>>>==<posneg++--~A AA |`}A ~A ܎A ̔A gA Aе A r A 5G77cwA ^MȢעm|A v <A ;[S"sA jLz { <A [`fj|Q QA J <A [`fj| f fQ ({A Kz {A ;${A v /A v "A |Aм ;SrA jR[{ErF|A WA A ovitvitA @A A h t#9Y3&1F2zA A .B]'< !3 }1}0xA@πQPa`sqsp~qpĀqڀpmqp}q}p1(0100&61N0SunMonTueWedThuFriSatA $JanFebMarAprMayJunJulAugSepOctNovDecA 5uA 9SA A yA ȤRuWuau\uV^nfwpA )A ֱA Lr@~j|fQl~})D׎KkT}YSA YA A rܗcR0ArZA 8.A A A I|E|rq`1EzEUMtw?tuA YYʇSzQzKA w9?.|f fj|QsEޑA |A v A y#|Ϥӥyɥy><xrA A A A IABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@*_+-./A UɎĝҊYA y yA #| #|A YϤA A A uA A '<?C?A A :ayNu؏A I|_|X|E|L|ui^MYz  w 9 >| K'wQ;z wYz wA A ܓה1.'Ӓ V   )A A A wA x+x<A A VA A A v CA @p,t!#w6~ފߨ 7~!"k#t$ߊ%&>'O()*$+,-#./9012w3w4JA ?5 678A QiW @%Uk@9B.?F+eG?L&{?ݥ-DT! @;f?;f?S{sr9,{:Lr)r; {<=l|>~z?@S{A A AA BBA CA [8D<Ev Fi Ft FA EA GA 9H_A >uI|A GA 9H8A |A ؏JA I|K)LA MA yzNA ZzOfP fj|PQPQA Rrq `  1 Ez ESUTMtTwT?tTKA U9V,sWwXYYYZZuZE[ޑA \|A )LA MA yzNA &]]z]g])]]]]=]ʨ]^ ^q^]^ ^ ^^^2^^EuA 9 A A }$!"!!!!!!!!!!!--T::.A A ! A  A A fɰ_`_abcdefghijiklmnopqrA A dOag?-DT!? s?-DT!?e/"+z<\3&5D.&pA~_֑9S99_(;/ Zmm~6 'FOf?-_'u={9Rk_]0V{Fk 6^ae_@h'sM1Vɨs{`kGg Y*vDW>3~?2O}2&=k^5:|!j$|n0-w;C,MA ]}Fq-ƚ3b|7U>Mvd*p׫c|zWIV;8$#֊wZT# 1fjWaG~"e2`l6 ]?X;ޛ"((XM2}P[.4bH[HJCg_Bja (ә\wƒa<sxZo׽-c&gUE6(aw&FYDMC)Ip>(q>. E {.G{2/ Umrk1˖yJAy߉蔗1k__6HglqrB]2 1%t90 Kh,XGt$}nHrSQ 3K~ch>_@]UR)7dm2H2[LuNqETn *if']P;vIk}'i)̬Tjى,rPw0p'qfId=݃?C 1A9p;7+\ZlK8Yvba˻lj@Iu'" &/dv ;3Q:\&mM-zV? +@m19 [ƭKNʥ76BhcvhR71 dMf)e0WVG:ju(0f"=W6 NB3#Oe ?[x#v{rƦSonJXڷfv-íwH]ƀ/?\m*۶%:SW)-K~v{Y*ܷ-vl>pn(>ag3*Mmng91[H0-C%a5p0˸llZݠ!oGb\paIkVRPU7շ3n_]0.26!i'w @-O͠ /] B}ʢj\.U'U dA*k%{4hjOJ*OZ-ZǕ M :W_?8 q݆޶`MekQUHr;@5{EN)A|ddپ1wXi:<FFUu_ҽn.]D>Bać)"|o5׍nj|]tkn>r{jϩ)sɺQ t$}`t؊ , ~f)zvVE~6ė1'n6بV-oW4,V k^>*_ J;m,Ԅ.5/9a8!D Jj/SNT"*U pid&Z`?R4-4]^`g3aXWQ>qH-!,FYzTOVy"68"gU&8Q 3iHeL6!{J!@GUt:gB^_{gzU+#AUYn!*9GI@VY+ZGņCb!;,ya*L{,C&x<{:&g e+=| Q'ci)h( D Npc~|#2V!*o~MQa6:rm9zk2\F'[4wUYMqA E@!?-Dt>F<`Qx;9@ %z8"6i5+eGg@A 28CB.v:; ??fz^n?g5RҌ?m{]<lX?<2? n4jf?/*RVQ[?UNP1l?չ#ɑ-?U\Ӏ ?MuM<1 ?LtB<1Lp?J]9ݏ<d?[;_?hPKJ˩:7?-Qfm?6>q4?γ-?mL*H<"4L?i(z`E?[HX*.! ?Ig,|P?`cC<-a`?d; fZ~dxt_u?}JtH?U2gBV? ^˜T'?47;iL?:^#F?nWrPԔD٨?[g?11̐!Ղ_{3|? G;*)F?ӈ:`tF ?3ƿݣ?WĿ09 XJ?$¿"S?ZYb<n?uG_H?[W{хX#?`'"S?GL:w ?@x?ـY?B}8@{>?o;%s?wOz\ Q? Ũ# 0?x)&j!~%? wk~?PS?eD???M?Z:W?@W2?=?Р?8w?@r?CMr ?`P?cuܲ?v?Q?? wC?L O+?@ގ?`l}?j ?3.n6 ?ί ?9P)&p?g y?1'm?h????gI?NF?|p?: -?9 ?P Q?Y?q?m?}?X)?9|<?TRn3}<`Z_?1LV̮.?wKu<6;?3}< ?(=-ϯ~<|8 `?e70.8B.?0gǓW.=A "[0QUUU?EϿ$?uUſA wUUUUU?Ͽ ݕ?EgUUUſ0D$I?e=B*(q?hC뙹Я?EuR4?y׿,jx? o׿`?Q׿}?x(8[ֿѴ I?xU]ֿ /3G?vֿ#B"q?ʨտOR?PVCOտ$V3?@k7Կܝk?PԿL\Rd?9EԿO,g?9ӿސ[˼?pDΖӿxa?@ӿVFV?FҿkΗc?08ҿ%G?ڌ>ҿEB*?')ѿ߽"?H+mѿ4G?gAѿ@(C?пȣx>?п%?cRGп4$?E"Ͽ -m?uJGϿT9S?0=DοZD':?D οA ?w)`Ϳ>ڂ?̿W]?V) ̿L ?˿+`?ʿu+$?.@EʿП"?hwɿz[u?0Him ɿ6I]?E qȿ@MyF?0ǿ$\/?pb<<ǿI uw?`7ƿ9>7?T1 ƿAN?0$v}sſѩ ?0{Ŀ*?Q,FĿ z?ÿ0`r?IkÿWW}?@T¿;h?yS?,%`;ɪ>? W@+*?I<2A̖y?KW ?@@7 HMI?@>ieR?Ng|~W#?`/ yܺ&t|?(, ?rFp{?%w?8Et1L5d?m^_'Q?\HL2??jM3r,?`y 1(0? bF4?jlkN?@wJڭΟ*]?켫!,cD?@|?3X6ƃ/?g^q9۝?eI\R?@dI(N/{?r5j?RRU,Y?b=,II?(8? {12ye(?]5Hs'$?x?$y `&?o?ta?=5A܇?.c?ģΓ?ͭ<%???ذ?x?[? t?@\? :?Wj'?V` ?u?w? S?| ?8.?\f\?WY?^,'?j5vڷ?,k>n?`NC?ym?` x?m7m&? 2C?X]X?`q1 ?3&?@+g???G?u?0n&?(J ?PŦ?,>e?3eI*??`?hc_Y?)c%? 0?w?`Cr?%g?m&w?Wy?0O? V?/2?kO?<[Bl~?S-~?Ry qf{<g/?$&<{F0?vKN.?7Z@fI??O*?_?<i?p>xQ?>j<[ e? 8ZOE<@?–w|?S ? AI?)G%*z?i퀷~8B.?0gǓW.=A `UUUUUA "?NUY?z)UUUEH[I?&+?A ?A ȹ,ֿV7($<A ?A Xտ A `?A XEwvտmPդb#A @?A -տgA  ?A xw_Կ>)iA ?A `‹aԿ̄LH/=A ?A 0Կ: B<A ?A HiULӿ`QƱ =A ?A GӿMY%=A ?A  ҿ+{&=A `?A Zҿ?϶=A `?A Zҿ?϶=A @?A xA)ҿvS($ZA  ?A iѿThA ?A \gѿ3=A ?A HѿfZĨ&A ?A s$п~k A ?A д%@п-6A ?A д%@п-6A ?A @^mϿ<*W =A `?A `˭ο$&+=A @?A *n'ο?TO/A  ?A Ok!\Ϳhʻ!=A ?A ̿4hOy'=A ?A ̿4hOy'=A ?A -t˿1N=A ?A Nʿf?cN<A ?A #ʿFd%A ?A #ʿFd%A ?A PZRɿ*A `?A  eȿ +=A @?A ǿXJSr+=A @?A ǿXJSr+=A  ?A ƿfⲣjA ?A p0ſ9PCA ?A p0ſ9PCA ?A &ſ[ A ?A l+MĿA ?A `F;? V]2%A ?A ѧ?Nۥ^,=A `?A MZ?]<i,A @?A  ?2흩<A ?A @Y]^3?G:\#=A ?A `j?h+A ?A @X?ӬZF&=A `?A  9Ǿ?Eh-A @?A 9? O4%A ?A '?-x!=A ?A #~+?48D,=A ?A  a?l=A ?A e?rK#/<A @?A 3=?xTy%=A  ?A '?}i3&=A ?A NW?x.<,=A ?A pu?!%A ?A PD?CpfA `?A 9믾?,T=A @?A ZZ?oX(=A ?A extendsA #>=KimportA #gQsuperAܭ W# F>implements# -+iinterface#:A#letA #UwIpackageAܮ #cHprivateA :# Gprotected#2&kpublicA #s0staticAܯ #\syieldA #QuFawaitA #A @A #F8lengthAܰ [#ФHfileName# VMlineNumber#bmessageA #4wAerrorsAܱ #WAPstackA #TnameA B#ξUtoString3+sDtoLocaleStringA #YzfvalueOfA #]+KMevalA `# Y}prototype# 1IWconstructor3 gffVconfigurableA Y#o?writable# ƴWenumerable#5S;valueA #EAgetA #\AsetA #@IofAܵ Z# 2p__proto__# sundefined#GnumberA #SqbooleanAܶ #TEstringA #QobjectA #VRsymbolA #e0|integerAܷ #zunknownA :# ]D~arguments#o [calleeA #| [callerAܸ #cA #IA #jNA :# >k#ŕbA :# sqjlastIndex#JStargetA #1lfindexAܺ #&finputA $3FI{definePropertiesA #U~applyA̻ #dPjoinA #;hvconcatA #IKsplitA B# SLkconstruct30egetPrototypeOfA "3h֧QsetPrototypeOfA 3 .~isExtensibleAܽ %3sR[preventExtensionsA #YAhasA "3/}DdeletePropertyAܾ "3^CdefinePropertyA K3jU`getOwnPropertyDescriptor#T}BownKeysAܿ #\|AaddA #JOdoneA #7TnextA #i|UvaluesA #TawsourceA #`LflagsA #<,O~8globalA #̟sunicodeA #GJArawA D# oLnew.target3 Xthis.active_funcA !3 *NA $3 sA +3BGA '3W]A # FA 3 `'H#constructorA #Kr@asA #SD=LhfromA #NSmetaA 5# hB*default*#1@*A #(dModuleA #`[thenA #aresolveA #VPrejectA #HpromiseA #2vproxyA #,]revokeA # Z8BasyncA #-KexecA #gmgroupsA #[sstatusA #kFreasonA :# K nglobalThis#>HbigintA `#Egbigfloat# R5NXbigdecimal3 QroundingModeA Y3imaximumSignificantDigits3/ImaximumFractionDigitsA #5@toJSONA #8_ObjectA #[ArrayA #L\PErrorA #UiNumberA #KSStringA #ujBooleanA #2_SymbolA 8# =lfArguments#qMathA #1mJSONA #MgDateA E##WFunction3[AGeneratorFunctionA !3 TForInIteratorA #BZRegExpA E# @{ArrayBuffer3YSSharedArrayBufferA %3~=Uint8ClampedArrayA # DDInt8Array# \bfUint8Array# VqdInt16Array# IqUint16Array# GaInt32Array# g)UUint32Array3 ;ok>BigInt64ArrayA "3-nwBigUint64ArrayA 3 yFloat32ArrayA 3 w2Float64ArrayA :#HYxDataView#mwUBigIntA #xBigFloat# x|BigFloatEnv# RzvBigDecimal# R*OperatorSet# v:COperators#+=gAMapA #qmA,SetA #K!WeakMapA #YKWeakSetA 3 ,FMap IteratorA 3 UPlSet IteratorA "3hArray IteratorA #3'kString IteratorA *3za|RegExp String IteratorA 9# J#HGenerator#6QProxyA #bAPromiseA *3 RqIPromiseResolveFunctionA )39@~PromiseRejectFunctionA !3 ;M\gAsyncFunctionA (3[+wAsyncFunctionResolveA '3AN AsyncFunctionRejectA *3@( AsyncGeneratorFunctionA "30gAsyncGeneratorA b# w`+EvalError# \RRangeError3bReferenceErrorA # rsSyntaxError# VTypeError#(~URIError3 MHInternalErrorA #A 3A Symbol.toPrimitiveA 3A Symbol.iteratorA 3 A Symbol.matchA 3A Symbol.matchAllA 0/A BlBlBlBlBlBlBlBmBmB mB0mB@mBPmB`mBpmBmBmBmBmBmBmBmBm``B@nBPnB`nBpnBnBnBnBnBnBnBnBnBoBoB oB0oB@oBPoB`oBpoBoBoB`Z <A 0A A 3A 4\A 5A A  A  A 6A #6HsmallA ;#QEstrike#lAsub@A #lAsupDA  'P#;XFreplace# !9VreplaceAll#>epadEnd@#MpadStart#Zk[trim#xBztrimEnd0# {DtrimRight# |dtoUpperCase3sLtoLocaleLowerCase0 'PC &A !@ @#A o0P# OmtrimStart#r6utrimLeftC h(>@A !@`$(p**#A ='.p%##km__quote'cA !h6A PA A `Cؗ A D@A CDA #A  A ?#ЗACA CDA > #0 E#sAlogHA Z# uerror#J}vconsoleG#DLZsignA #`HcoshA ;#KLZsinh Ch99A QRA >#Hceilp # AminRA #SAmaxA =# Z|AabsQ#oLfloorA #)kvLOG2EB#+hLOG10EB#`@FPIpB#߹|kSQRT1_2B#DSQRT2BC;9X<;A !qp)qBqBqBA "P#nY[tanhA #ًpacoshA A P#]mroundZ#w'BasinhB#ϙ4CatanhB#PTH|expm1B#%~log1pB#WRlog2q #GWcpushA #/GCshift`#@(\unshiftB#ѫJnreverseB#GRZ3sortgB#!~GsliceB#9Jsplice C 8!A `i@rA SA + B`iBpiBi`A۷ 6A #;C8!""!A ;B`iBpiBC# "A̸ AԸ 0rA #ulparseInt# fparseFloat#hfk&isNaN 3ϴPget [Symbol.species]0cA B0gB@gBPgB`gBpgBgBgBgBgBgBgBgBgBhBhB hB0hB@h@hB`hBphBhBhBhBhBhBhBhBhBiBiB@iBPiAܼ %A A A !Aн $#A &A g " XA T ?*&A P(0A A \A A A Aÿ A˿ Aӿ Aۿ A A A A A A A  A  A [A  7A 8A  A  A  A A A A A A A A A k A A  <A A A A A %h w A 0A 6A ;A zA CDA jsA #BiBiA  A  A   A !  A A A A A A  A A kA y3 &L__date_clock0SBjBkBkB kB0kB@k$ 0A ,B8$)P#A A  A #A 5# 3 ptoExponentialA [#h/ZtoFixed# stoPrecisionC )H(A ; k@@k @C #)-+A @A #ΠVrepeatB3 ja}localeCompareBlB# UestoLowerCase3 +yfromCodePointBjBCA '0p.BPlB`lBplA BA A 18/h A 0P0A 6A ;A 1A 2pA 3A  A #/\charAt 3 p!@fromCharCodeB݈#5dumatchAll+HB x.&&%A @A %# GzpcharCodeAtsA )]hkx0 A PDA A , <$@(C (s@0A @L A #A );A , &]l5C /1kA %@N[CA iBtp0A 0A `A A 1x01{A 0A 6A ;A ̩A 4D$C1H2/1A A A  3@2A BuB u2A C3(z0xA A 0A ,  &PC 122A @G A  A  #A 0kA C H23@^jA @!!A "A #A /(1 C 21@3A !@  #A  A \ # 8YbyteOffset# sSNdescriptionC h4A AA P@C9A $@C(>h4 4A `mA spmBmBmB#BpB pBmB#$[ReflectC33A4A `nA ?pnBnBnBCBsBtBtB t3A M@P#FGboldq#r8IfixedA # Afontcolor#(sfontsize#Һfpitalics# =Rlink`G#TPˡ1.=0q@L*;@;rcgfu< a YN4x?A F4-Nun=!:{`b"B>gaQw>gaQw>A C=(6A pA A A C67A  7A A A #A  A r#6#Pfio.js 3Wd__javy_io_readSyncpB#A Y Bq #Z@readSyncs t#_w@Nfda cA !RxyA P (ncA`38h8/e6A0#Y@IO 3&%#"!  A A $A A ',+*)('A W+??,A PA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A (;(;A L0C@H HHH`HPIIIJJPCpCCIJ J@J`JJKJ0K`KKKKL LPLLLL#;;A HA McA A !RX<b&A > P `Y[ __`C<<A ! )<`su0#A  @## )3newriteSync#{/Jdata5:!!!3  A A A w3210/4-,+*)('%$#"! 3A T3 ??4A P <A 0A A 3A 4A \A 5A A  A  A 6A 7A 8A 9A :A ];<A A =A >A ?A @A AA BA  CA  DA  EA  F 79A GH I JA KA LA MA NA OA P&QA RA SA TA UA VA WA XA Y.̔À #M.[keyForA [# QtoStringTag# GjhasInstanceC AEECÁ @A =B݈# c\IrtoPrimitive 6P#A @AA #3|\get descriptionA A A )3@CA P7A˃ 9AӃ A D[A  <A ;#31KiteratorCE8F0GFA @tAĄ Pt0#A JBtB AP3misConcatSpreadableA a#cyuspecies# VD|unscopables3 )`asyncIteratorA A # fZoperatorSet# BgetFullYear3cImgetUTCFullYearB `B#vgetMonth#Bt BpF A p`4B@tBPt0`@p0`S A  A A A = @(B@A 0A 6AĊ ;Aˊ Aӊ ]A܊ ^A _A 8A 9>A :]A `A aA bA cA dA eAċ fA̋ cA܋ %8GG1A ;A <A C(BxFECA C 8F8GFA @A #A I00FCB`tBptBtBt0FA A A A !xFEdA܎ PjA A A <A C EG`BA @A܏ CGHpVpSA # S6toGMTString# nlLtoUTCString3 :*etoTimeStringHB/h&" 7LtoISOString3 gxrtoDateStringA 0C GxV0IA @A #A @HA̒ )3UōytoLocaleDateStringA )3 @ltoLocaleTimeString9A &3yogetTimezoneOffsetAؓ ?0# ق|getUTCMonth#cogetDateA # %#ogetUTCDate#OdgetHours# H/jgetUTCHours# HgetMinutes# %@getSeconds#*@getTimeAܕ #T]FgetYearA 3 xGgetUTCMinutesHB3 #getUTCSecondsB@`B3Wt}getMillisecondsB`B3SgetUTCMillisecondsA _#kwgetDay# EdxgetUTCDay#6{setTimeA %3#lsetMillisecondsAɘ -E3zWsetUTCMilliseconds hA B# FIsetSeconds3 luQ}setUTCSecondsAÙ qA˙ # oERsetMinutes3 EsetUTCMinutesHB#@setHours# tsetUTCHours#/TjsetDateB# y_ysetUTCDate#IRsetMonth# %FsetUTCMonth#AsetYear# -#LsetFullYear378k]Streaming decode is not supported3 F^blobCaptures3 akoutputFormatP0cD5uThe provided value is not of type '(ArrayBuffer or ArrayBufferView)'!XA A " ~n TextEncoder8B0n;A n(n@A -  A  v+e$8BY L@ L? L>L$)#k!/i #'q|encode3nXA Raa0#Estream 3!5_GacceptedLabelsA  A r #Z\utf8ode20u3Gunicode-1-1-utf-83 /unicode11utf8A "A !3 S_Zzunicode20utf8A T  36}~`x-unicode20utf8  CkpnA YA [B7A lP@C)0DThe encoding label provided must be utf-8 #taencoding # %V4VignoreBOM#j~decode A -PvA A bA EA <A )A A Џ A tA A A +PA @0!A A  wA &A AA 8A pgA  A "A A 0^A A 1A A C 0s@sA @M A #A 0kA %# H JTypedArray3A wA 0B#A / }h)P C sHtP)A @N A "3naPget byteOffsetA C sutA @PA g #A @D0A #A  )DA #A 0A scA A % (ww3ZEA 1A A , <z`C Hhhv wvA pv@"A [vBvB3 HBYTES_PER_ELEMENTP0C HtztA @QA sA % w|wA @u0A 6A 3;h)PC Hu(wvA !Pv@#A  A CA `sBPwB`w`vA 1A A A %hvtͅA 0A 6A zA CD;A CtwtwA A A A A #A wA C wvvsA @#A @c(A BPu0A sA sA +Bu@t@tBuBuuA BuBvBvB vB0vB@vBPvB`vBpvBvBvBvBvBvBvBvBvBwBwB wB0wB@w@h@uA #A "A A A A A  A A  A  A A ;! uHhA >m?*#A PD0A A DA DA DA B kA  A A A DA A A A A A A A A A A A A ̰A A [A 8A A  A  A 7 <A C(}}t`|A 3A 0#A }A  Cv(}tsA C}~t}A 3A 0#A /~; C |(|v`}A @#A 3A 0|A C~t}A 3A 0#A /; C (||v0~A @#A 3A P |A Cht~A 3A 0#A /`; C |}vA @#A 3A p|A Ch8tpA 3A 0#A /0; C }h~vA @#A 3A }A C8t@A 3A 0#Aɀ .; C h~8vA @#A 3A `~Á C؂tA 3A 0#A /Ђ; C 8vpAЂ @#A 3A 0A C؂tAă 3A؃ 0#A /; C ؀v@A @#A 3AȄ A CxtA 3A 0#A /p; C ؀vA @#A 3A  ЀA CxHPA 3A ?0#YYgetUint8C xvA @#A܇ 3A PA {#AgetInt16# tKgetUint16#AgetInt32C xHvA @#A 3A pA܉ #f ugetInt8A 13 fgetBigUint64wBwBA #@*C HA @L A #A )A C HA @M A܋ #A 0kA C ȋ@A @N A #AȌ tA܌ A# ~$getFloat32# 'getFloat64A *# ~KgetUint32# JBgetBigInt64#^usetUint8#c/\setInt16# TsetUint16#m1\setInt32# TsetUint32# LsetBigInt643 aAsetBigUint64DAۏ FD# ҇HsetFloat32# HsetFloat64#A /@ #2%osetInt8Aܐ #Hd|AallA !#:.Yrace^B#A /̀ C ȋ Aܑ ;px@$xBxCȈЍpA  A A CXPAܒ ^A O0r#B_ΆC H؏Џ A @Aӓ $̴@C  A @)A ̼A 8# c+SallSettledP@Aؔ A A BwBwBwBwBwBxBxB xB0xB@xBPxB`xBpxBxBxBxBxBxBxBxBxA 5 A A A AȈ)4A PDA DA DA ̳A ̴A ̵A ̶A ̷A ̸A ̹AØ ̺A˘ ̻AӘ ̼Aۘ ̽A ̾A ̿A A A A A A A  <Aܙ #cf|AanyA sA ;@B^B^B^B^B^B^Aɚ Aܚ A A 9CBP^B`^Bp^B^0A A Aě AЛ !(XeA 0GPA A A  <A jcA̜ %؍HVqA A ,<D`C (A @Aܝ A  A )؍B@ A̞ 0A۞ 6̀A ́A A A A DA ;A cA̟ %X?A 0A 6A ;A #A @cA̠ %؏` A /PA CXhPAܡ #B_A cA !h(~A  ijAӢ Aܢ CA #B _B0_B@_A C:8Aܣ ccBcA ?@#F\[tdiv C Aܤ {3BPcB`cBpcB݈#w.LfdivBPC h(Aܥ @/A @C(ȓE@A ;#B_ CȒ `A iu;A ;#YF|asUintN C ЏA @A #A @PCBP_B`_Bp_B_Aܨ A A A !ȓhA jA Aé Aө <A %#SasIntN sA )ȒnA̪ P7A۪ 9A  <A A#`B##WktruncBAī @P#Hcdiv #-KedivA #̕eBtdivrem#ާ/Sfdivrem#+Dcdivrem#Mxedivrem#TZsqrtA #q>sqrtremA̭ # ~floorLog2#~Actz;#p8A3X8H 0#7`+{v8A I 3 BBd#A̯ C:8A 0B݈A #A 0A +0 CȑؗpA̰ A۰ A #A   A `BcBcBcBcBcBcBcBcBdBdB dB0dB@dBPdA SA A̲ 5 A !(ȑAܳ 0A 6A ;A A A A A A A A Aô A˴ A۴ A A A AP #p.P+`4A̵ GA A 0FPi1w| ||}`~0Ѐp@`A A A i[Pcpfghi03\ BA @A !` Aܸ A A A A A A A A A A A A AĹ A̹ AԹ Aܹ A A A A A A A A A A A A 3Aغ A ABA A CDA CDA̻ KCDA CDA ABA K A  CDAȼ  Aܼ K EFA  GHA IJA KLA GHAؽ MNA OA PA PA QRAо QRA QRA QRA QRA QRAȿ QRA QRA QRA QRA QRA  QRA !CDA "CDA #SA $CDA %TUA &VWA 'VWA (VWA )VWA *XYA +XYA ,Z[A -Z[A .\]A /^_A &0L1opA 2qr(A 3qr(A 4GH'A 5st&A 6st&A 7/uvA 8GH%A 9wxA :A ;A <A =A >A ?A mQx8gAiAbGAFAbGBAbP5hBX;A A @A -*A A aaaAAAAbbbbb((squareDistance() { let xdif = this.x1 - this.x2 let ydif = this.y1 - this.y2 let squareDistance = (xdif * xdif) + (ydif * ydif) return squareDistance }@`draw() { canvas_context.fillStyle = this.color canvas_context.fillRect(this.x, this.y, this.width, this.height) }A #++++555555a A R 3SdoesPerimeterTouchi03jUBHOA 7( @Ȩ*/QA 1RQRQ]A NA     aaaAUB$eAAASATA!bB$eB$eAASAAT!C^eA^AU!B$eA^AU!B$eB_AAAQ8Bb$bAR8Bb$bASAT$eACeACeCeB$)X SSP#hypotenuse() { let xdif = this.x1 - this.x2 let ydif = this.y1 - this.y2 let hypotenuse = (xdif * xdif) + (ydif * ydif) if (hypotenuse < 10000000 - 1) { if (hypotenuse > 1000) { return squaretable[`${Math.round(10 * Math.round((hypotenuse * .1)))}`] } else { return squaretable[`${Math.round(hypotenuse)}`] } } else { return Math.sqrt(hypotenuse) } }#ox@gm/B\xALH@A *dz Y zA GA HA A zGA HIJ0K aaaa aa&abbiaeAbbAbbbAbbAbbb!bbbCbbbbCbB b$bcfb(?S?q : BP# GQostrokeStyle# RlineWidthAXinXACteBXAXXA@" }UfillStyle# J/Smove  NNqq# uLbeginPath#ojmoveTo #@F{lineTo@# ٦Estroke1A "PxcHd0ArA ihA htmA DA wA A kA ^A A A cA A A "+49>1A kn3#A A "eycYA A .( xc:QA .  K`VSTA IbA gA %A J$A I]A M6A "tK#P~A I2wn{aZ8{@A BA hA goA 5A :<A 6?q\)ft].A @m2A sxA QYmSA 7^uA pA V"[A )A  A *:A 2A dA f,LA ,A B4}`d 79}A W|A 'bL#A :w\0 {A OA 6;svR^`aA .~B5'vA F(A%FpU)A A sA A qnA _^A @UMA e]A A *A 6SE& A A .$A A Mu=A 2e}4/kjyA )&i_!-[A A zA {A A 8A  A A cA )pfeA ЍP <A  !A cA %XlrNA P <A  &A '`#A /pC knA 0)A 4`a#A pA Cn A A B#gth # zvideo/webm35]Pvideo/webm,codecs=vp9V!!&DC A bmA d8$#A /mC @A A A #A +n4`38xxA PA C лA A  A 4`#A /)8 C 8X0A 0A #A <A CA A BsB sB0sBPsB`sBpsBsBsBsBsBsBsBsZ^A eA dA SA A A A  C XoA +PZA ^A eA  dA AA fA _A caA gA b BA `A A A #C X8A @; A v#A 0eA C>8(`A ;carBsBC7A `s`psBsBsB#Bs3u2Wtext-encoding.js0Cf__javy_decodeUtf8BufferToString A C?(X0A dAA fA _A #aA gAÀ $b CHA aA A #A * = #Aȁ 6 CvrData needs to be an Uint8ArrayA B/A h@   ` A  A  8 8/eAAA#`X ?5PreadSync(fd, data) { if (!(data instanceof Uint8Array)) { throw TypeError("Data needs to be an Uint8Array"); } return __javy_io_readSync( fd, data.buffer, data.byteOffset, data.byteLength ); }A ا(A A A Ă AԆ A݆ A d@%^^mZ?26AЇ A G^ A 4`"A A uA  Ä "L*@KLA 4` A "TOgmimeType# 4fp@video/vp8c# K4yhandleStop#{xo labels Cx8A A Å P8PwriteSync(fd, data) { if (!(data instanceof Uint8Array)) { throw TypeError("Data needs to be an Uint8Array"); } return __javy_io_writeSync( fd, data.buffer, data.byteOffset, data.byteLength ); }A C 8A PA #A X7T # `TextDecoder3MUNDOMContentLoadedA N&&P0P0@$@(BiBiBjBjB jB0jB@jBPjA Bj$0.0/P@G N[B[Xacgh`k2w }}~`0Ђp`A A A keds to be an Uint8Array"); } return __javy_io_writeSync( fd, data.buffer, data.byteOffset, data.byteLength ); }, }; Reflect.deleteProperty(globalThis, "__javy_io_readSync"); R#ѐzevental #=Loptions 6B/A @A   = A  A 9 =8 8/eAAA#A 3Aė  A̗ ;Aԗ A  A A 9&AԘ !Aܘ *)('A u:876543210B.-,+$#% AA "A <A XAԚ ^BA P A  A  A  A  A  A  A  A  A  AÛ  A˛  Aӛ  Aۛ  A A A A A A  A !A "A #A EA $AÜ  A˜  AӜ  A Z A  :A    ̛A  A  A  A  A "     A  A  A  A  A  A  A  A  A  A  A  A  AÞ A˞ A؞ A  /%A 7hC@;@A 1*+_K0A UA  0 A9 @ B CY[aLMNOPQR&abb/8SBTbbG$bbGf bceH)a eLVLW&fl8Seb!f l)/e^CXe^CZeB\d$)Q((A (<Pfunction Record() { let formats = [ 'video/vp8', "video/webm", 'video/webm,codecs=vp9', "video/webm\;codecs=vp8", "video/webm\;codecs=daala", "video/webm\;codecs=h264", "video/mpeg" ]; for (let t = 0; t < formats.length; t++) { if (MediaRecorder.isTypeSupported(formats[t])) { outputFormat = formats[t] break } } if (typeof outputFormat != "string") { return } else { let videoSettings = { mimeType: outputFormat, videoBitsPerSecond: bitrate || 2000000 // 2Mbps }; blobCaptures = [] try { recorder = new MediaRecorder(canvasInput, videoSettings) } catch (error) { return; } recorder.onstop = handleStop recorder.ondataavailable = handleAvailableData recorder.start(100) } }natioBA޲ @A *:A 8B$(#UOBZsubtract# =VsuperBuffer#& 000 5hg a #.eBloblect.de#&oAURL #kr[type"); })(X5NNDDm@%A @A 3XA X laB7$8e!([3XlhH$ [A0#0 +I ?&S(5I [8iBA A @A 8g lplA (A T8)!/ 0PN?Psm@Aи @A ,`PXA A XAĹ %A  aa aa8E(A"8#!/AA8B$A88$!/ebbAA #Ȝ8(TA̻ Aػ A A A A A lpg@pA A %*A 4`sAȽ A A A !$*A 4`{A  AA88Aо (Aݾ ap0hhA (A A A̿ AԿ A޿ g7@B  @ A A A 4`!jA A A A ! j*A 4` CM A rA  "Adocument$3 ovYNcreateElementjC!!&# 7B%canvasInput#iTnoneA }#Jsformats5P3 %OvcaptureStream\"3dhhCPTA H@A *} R@A A A vA A A A  o ɵeA}ǣ@eA}Gѩ. Җ(eA{eA{Gѩ ɓ($EA8<A1Ypj)GA ED@"b[video#( [PstyleA # Qdisplay Cdecode(input, options = {}) { if (input === undefined) { return ""; } if (options.stream) { throw new Error("Streaming decode is not supported"); } // backing buffer would not have byteOffset and may have different byteLength let byteOffset = input.byteOffset || 0; let byteLength = input.byteLength; if (ArrayBuffer.isView(input)) { input = input.buffer; } if (!(input instanceof ArrayBuffer)) { throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'"); } return __javy_decodeUtf8BufferToString(input, byteOffset, byteLength, this.fatal, this.ignoreBOM); }A # ? uencodeInto# U0Y(destination3$qZencodeInto is not supported]OI?PlPSclass TextDecoder { constructor(label = "utf-8", options = {}) { label = label.trim().toLowerCase(); const acceptedLabels = ["utf-8", "utf8", "unicode-1-1-utf-8", "unicode11utf8", "unicode20utf8", "x-unicode20utf8"]; if (!acceptedLabels.includes(label)) { // Not spec-compliant behaviour throw new RangeError("The encoding label provided must be utf-8"); } Object.defineProperties(this, { encoding: { value: "utf-8", enumerable: true, writable: false }, fatal: { value: !!options.fatal, enumerable: true, writable: false }, ignoreBOM: { value: !!options.ignoreBOM, enumerable: true, writable: false }, }) } decode(input, options = {}) { if (input === undefined) { return ""; } if (options.stream) { throw new Error("Streaming decode is not supported"); } // backing buffer would not have byteOffset and may have different byteLength let byteOffset = input.byteOffset || 0; let byteLength = input.byteLength; if (ArrayBuffer.isView(input)) { input = input.buffer; } if (!(input instanceof ArrayBuffer)) { throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'"); } return __javy_decodeUtf8BufferToString(input, byteOffset, byteLength, this.fatal, this.ignoreBOM); } }A sfunction (evt) { gamepadAPI.turbo = false; delete gamepadAPI.controller; }#"Image /#iAsrc3)wwCanvasCaptureToWEBM# ^canvasA B##WZGstopC #̺|bitratei1h($aaa e!0"Hrecord<#URecord11hption.mjs window addEventListener0" (ibXclearRectPA @A *A 0A M)8+B,-$)3Cvideo_recorderA H# RFrecording3cmsaveToDownloadsA =#FRErecorder#=8FAiBjb$bBk$8ld)1_A fA 02BZU/videoBitsPerSecondp03SkJnvideo/webm;codecs=vp8ideo_r# bc>o video/mpeg#jyRonstop 3&J|video/webm;codecs=daalacanv3˳video/webm;codecs=h264tart shxmBHA T@ @*I. 0 A A  )/aaaAIAAVAAIAAVAbbbbbYb2eB\8B 8Bb$$$G(eB\8Bb$$G(8Bb%)# D{5F{5FX5FX5 ]]]] bb9cfunction Stop() { recorder.stop() video.controls = true }1h*A pR)A 02:qRcreateObjectURL_!]#?.'['controls3 ٝ'rLMediaRecorderasInput) { `C=A A @A *WY@ B EeB<$e Cb)function handleAvailableData(event) { if (event.data && event.data.size > 0) { blobCaptures.push(event.data) } }=vp8", 3hTLisTypeSupporteda", XC@7Y(@A *S`1] @ A Ea8^e eL_!e8+A`Bab$C5)r37tSondataavailable#ɾAPstart 3 @!videoSettings if (3SkQhandleAvailableDataA M3lg5++b5bbqVqUU:bg5gg5GB$8+mC;A A @A *:gAŃ AՃ bA A A A d8B$8B$ ŦƤ(ťƣ(X e[Z(lB A A @A * 8@QhAŅ AՅ DCe) PH8@A X@A B  A A A A  v+e$aa aBB$BI$&bB $8!/8BY L@ L? L>L AL@ L? L>L A L@ L? L>L $) aa[Y[i \Yaa[8Ei/([A"i8#!/[AjY[AY 8B[$i![A\"$[8i%8$!/&(e[bbXAXA "(A AA ޔàfunction.mjs window addEventListener DOMContentLoaded eventsquaretabletvideo_recorderrecordingpom&CanvasCaptureToWEBMgamepadAPI canvascanvas_contextkeysPressedFLEX_engineTIP_engineXS_engineYS_engine Point VectorLine LineOPRectangle CirclePolygon Shape SpringSpringOP ColorSoftbodyObserver setUpgamepad_controlcontrol&getRandomLightColorgetRandomColor$getRandomDarkColorcastBetween"castBetweenPoints DisangBezierHitbox WeightPerceptronNetworkDatasetup_canvas inputsnet countpixworlderrorxycgocarrkmainsqrt Imagercpomaoml3.pngsrccontroller turboconnectdisconnect updatebuttonPressedABXYLBRBLeft-TriggerRight-TriggerBack StartAxis-LeftAxis-RightDPad-UpDPad-DownDPad-LeftDPad-Right PowerbuttonsbuttonsCachebuttonsStatusaxesStatuspointDistanceisToward rotatemagnitudenormalizemultiplysubtract dividedraw anglesquareDistancehypotenuseintersectsmoveisPointInside$doesPerimeterTouch unmovefrictiveMovefrictiveunMoveinnerShapeisInsideOf0adjustByFromDisplacement,adjustByToDisplacement mixInpushbalancerandomLightrandomDark randomcircularizebeamgetQuadraticXY"getQuadraticAnglebetween weightsetChangesetWeightsetErrorsetDelta newInsetBiascomputerelusig gauss,zalculateDeltasSigmoidzadjustWeightszomputedocumentgetElementByIdgetImageDatabitrateblobCapturesoutputFormatrecordercanvasInput video Record&handleAvailableDatahandleStopStopsaveToDownloads recordstopdownloadcaptureStreamcreateElement stylenonedisplayformatsvideoSettings errorvideo/vp8video/webm*video/webm,codecs=vp9*video/webm;codecs=vp8.video/webm;codecs=daala,video/webm;codecs=h264video/mpegMediaRecorderisTypeSupportedmimeType$videoBitsPerSecond onstopondataavailable startdatasizesuperBufferBlobtypeURLcreateObjectURLcontrolsbloburlstorageElementvideo_out.webmahrefbodyappendChild clicksetTimeoutremoveChildrevokeObjectURLevtinavigatorgetGamepadsgamepadsconnectedpressedbaxestoFixed buttonholdnewPresssjp radius pointtransparentxmomymomlinkdis1 dummy link2dis2angleGoalcossinvectend#FFFFFFx2y2 color widthx1y1 atan2xdifydif round linewidthstoragelineWidthstrokeStylebeginPath moveTo lineTo strokelinedetgmlmconsolelog heightfillstrokeWidthfillStylefillRectfrictionreflectstrokeColorarcPI areaY areaX sidesnode nodesangleIncrementclosePath shapesboxfromRatiotoRatiogravity anchor yellow xmomentumaverage ymomentumaveragebaseColorred greenblue alphahuerglettershash 0123456789ABCDEF# floormembersmemberLength forcespringspin springforceConstantcentroid xpoint ypoint rangeraysrayrayrangeglobalanglegapanglecurrentangleobstaclesraymakefqceil whitecollidedlifespancanvas_pass"continued_stimuli#000000getContext2dbackgroundsetIntervalkeydown keyuppointerdownpointermovepointerupkeye*getBoundingClientRectclientXleftclientYtop speedwdtogranularity limitshape_arraycircdisangcxcyexey disangmetapoint angles hitboxconstructedabs tline medianbezierCurveTodxdyinclusiveminmax change deltanummarkCountbiasweights"outputConnectionszdrpercreluslimepowElayerSetupArrayscaffoldceptclustercetp checkmomentumlearningRate setupstructureztructureoutputsnodeCountclustersincludesflaglastinputslastgoalsswap goals layerperceptron output"currentConnectionconnectiondataoutputskinputslxzyxosortnclearRectdrawImage hrgb(, ))8B$)^u_p[ ` `@p`` ` ` ` ` `[0p`[p p  [0 p` [0 p`[0p [0p`[0!p [0$p#`[0'p&`[0*p) [p-p, [00p/ [03p2 6789:;<@ [0!>p5`"[0#Ap@ $[0%DpC`&[0'GpF`([0)JpI`*[0+MpL`O P`,[ Q`S`T`U`V`W`X`Y`Z`.[ 0\ =@K5L6M7N8O9P:Q;RT?T@hhaaVTATBTCT@haaVTDTBTCTAT@haaVT@TETF TGhaa!V"T@#TE$TH%TI&TJ'TF(TGha a!)V*TF+TE,T@! h!"a#a$-V.T@/TE0TF1TG2TK3TL4TM5TN6TO7TP$#h$%a&a'8V9TQ:T@;TE'&h'(a)a*T@?TE*)h*+a,a-@VAT<BTRCTSDTT-,h-h,.a/a0EVFTUGTQ0/h01a2a3HVITVJT@32h34a=a>SV>=h>?a@aATVUTFVTGWT@XTWYTXA@hAB8A;ZCYaCaD[V\T9]TZ^T[_T\DChDEaFaG`V aT]bT^cT_dT`eT[fTZgT9hTaiTbjTckTdGFhGHaIaJlV mTenTfoTgpTaJIhJKaLaMqV rT9sTZMLhMN8hBi$O5bO&PaQQbQ,bPBPbN!$bQcQbKbPa&!RSbBj22$TUVWXY&Za[[b[28a\\b\2 bZBPb[b\&$b\c\b[c[) S0;5 : !.  6 ?S+++ +;"- --- +I +:$ -+: +:24488+:@4,+:-+;F ,:4--+;x+ID4+:B +  ;\ - +: (---+:$  ---$--+:":,+:-+:g&Ig5]bIIl5 C  @````p@@   aaaaa Cv Cw Cx& By$b8Eb)8hBzp$bA{|C})& 000 5hgC        a&abb/8BbbG$bbGf bceH)a eLL&fl8eb!f l)/e^Ce^CeBd$)+ Nq?5@+N+g0 ::JC* A"AAeBPA$)Nv^C70   a8e eL!e8ABb$C)SqC  eBw$e C)W?0Cl00pp  aaaa8e eL!8ABb$8hBz$bA{|C}bbCbbCx8hABb$bB$8d)[ ?:qqb]::q?B,  8hABe$8ABe$)eqlC  8B$G$e8B$GCe C8B$G#e8B$GCe Ci8B$G#e8B$GCe C48B$G!e8B$GCe Cab8(8bG8bGAbc)nbv0qv0lv0lv1X5N5C e Ce)00C e8B$GCe&C5eA6eA5qeA6GIe&C6eA &A49A4(A4GABPeA4G$&A5A"BPAGB$$eC7eC6(v:Nl:I+XNh+b51CT ɵeA6ǣ@eA6Gѩ. Җ(eA5eA5Gѩ ɓ(  XI bIB% +e$CCŵC)N&&&B e!BC% @Q     +e$aaa e!CCCI);&&&B       aaaaaeAI!bBB$eAIAAAIAA!eb!bBB$bb ( ( ]S??D0Bn `    aaaaeAA!bBC$b8B$b8B$bCbC)N{?bb55B eAA!BC% @T  aaB;$BbCBbCBњCBњC)X5NNDDBB   aae!eAAAA!bB8b%+5B* eAIAAAA!( B* eAIAAAA!( B* eAIAAAA!( BW    aaeAIAAAIAA!eAIb!bB@$)+v:B> +e$CCCC[C[C)N&&&&00B)8BAAAA% B;   aaaAAAAbbbbb(:IISB     aaaAAAAbbbbbYb2eB\8B 8Bb$$$G(eB\8Bb$$G(8Bb% :IISD0?B~  aeAeACeACeB$eBAA$eBAA$eB$ebC) 0II?{{?:B, +e$CICVCC)N&&&&B8B$AVAAIAAVAAIAAVAAIAAVAAIA͵ (AVAAIAAVAAIAAIAAVAAVAAIAśAIAAVAAVAAIAAVAAIAAVAAIAśʵǣǶ ƣƶ( O`bbBO   aaaAIAAVAAIAAVAbbbbb(:{{SB     aaaAIAAVAAIAAVAbbbbbYb2eB\8B 8Bb$$$G(eB\8Bb$$G(8Bb% :{{SD0?B=8BAIAAVAAIAAVA% B  aeAeACeACeB$eBAIAAIA$eBAVAAVA$eB$ebC) 0II??:@          +e$aaaaaaaa[[][][]CCCC[CCC[C[C[C) `++++5++555B4 eACeBAAAA$) IB'BACBAC) ]]BPAA>AA/AAAAAA ( ( NNqqBlAAASAAA=AAAA AAAA ( ( qq@             +e $a aaaaaaaaa[][][][][][  ] C C C C [C [C [C [C [C [ C)++++555555B eACeACeB$ASeBAAA8A $eACeB$eB$) II?5I? B AiAAeAABCAAeAABCAAABCAAABCBACBAC) D{5F{5FX5FX5 ]]B AiAAeAABCAAeAABCAAABCAAABCBACBAC) D{5F{5FX5FX5 ]]B AiAAeAABCAAeAABCAAABCAAABCBACBACBACBAC) D{5F{5FX5FX5 ]]]]B AiAAeAABCAAeAABCAAABCAAABCBACBACBACBAC) D{5F{5FX5FX5 ]]]]BWAACAACAAAAAA ( ( bbBeAACAACAAAAAAAA ( ( bb9@            !   +e $aaaaaaaaa[][][][][][\ [C [C [C eӿ!C &C [CA C C 8A[C [Ca b [ia e AA A8B AA$ AA A8B AA$! ABPb $ BA ACAb c `)z&55555++v5labg:n?BAAACA (AAACAAACAAAAAAAA ( ( 5{{5n?B AiAAeAABCAAeAABCAAABCAAABCABACABAC) Dq5Fq5FN5FN5 vvB     &C8AACAAACabAiaeAAA8BAA$AAA8BAA$!ABPb$BAACAbcgeACeACeCeB$eBAGAAGA$abA5eBAbGAAbGA$bceBAGAAGA$eB$eB$eB$) 0vZ]]:II0?]5??:n?B$ +e$C)N&B2 abAAbGB@$bc) ]b5B AFƵCAFƵCabATAbGBACAbGBACAbGB@$bc) N'N']b5B7 abA"AbGBF$ (bc ( ]l5B7 abA"AbGBG$ (bc ( ]l5B@ abA+AbGBG$ AbG(bc ( ]l55B7 abA"BFAbG$ (bc ( ]l5B abAoAbGAFMAbGBAbGACAbGBAbGACbc) ]{5B abAoAbGAFMAbGBAbGACAbGBAbGACbc) ]{5BW  abHabbGA(ABPbGAbG$bcbc) Dq55BABP$) N@  `     `   '   +e$aaaaaaaa[][][][][we!Ce!CeAAAAAAAA[!CV[C0m[Ce!CeAAAAAAAA[!CV[C0[C[C)i&]]F5 5]F655B    aaeAAAAAAAAA!CVAVBC$iABAAAA雝CABAAAA雝CABAAAA雞CABAAAA雞CABAAAA雞CABAAAA雞CABAAAA雝CABAAAA雝CAAAAAAAAAAAbCAAAbCAAAbCAAAbC)+DqۅB s eAAAAAAAAA!CVAVB@$AB@$AB@$) DNNIB(ABACABE$) vI@q `  `   *  +e$aaaaa[ bA]CCe[!CVC0)D++g+B  aaAVBC$iABAAAA雝CABAAAA雝CABAAAA雞CABAAAA雞CAVBC$iABAAAA雞CABAAAA雞CABAAAA雝CABAAAA雝CAAAAAAAAAAAbCAAAbCAAAbCAAAbC)+qڀ܅BAVB@$) IBA )@      - +e$aaaaa[]CҴiӴiԴiCCC[5[ [C"[CA CA CA CA CA CA CA"C)CCC)!K+{+++&&5 I:D6D6D6:,:,:,++,BuA žCA žCA žCAŵCAŵCAŵC) ?1?1?15'5'5'B, ʵǻ)8B8BT$ $Gʓeƽ78BT$78BT$78BT$!( !!&DBv, ʵǻ'8B8BT$ $Gʓe8BT$8BT$8BT$!( !!&;Bv, ʵǻ'8B8BT$$Gʓe8BT$8BT$8BT$!( !!&;@           0  (   +e $aaaaaaaa[ ][][ ][] &C e!C e A[[!C ABP A$ab[~ e AA[[!Cb[ ABP A$+ A AC ABP A$bc| [C e!C)k5]vN:v bw:5SB  ǵC ǵC abA[B AbGAAA雝C B AbGAAA雝C bcAA CAA CǵCA8AACabAiAbGAAA8BAA$ACAbGAAA8BAA$ACBAACAbca) &&]5XX&l::]:B       aA鶞bAbGBQ$bcC C abAaB AbGAAA雝C B AbGAAA雝C bcAA CAA CabAi%eAAAAAbGAAAbGAA!CABC$iAbGABAbGAAAAABC$ACAbGABAbGAAAAABC$ACbcabAAbGBE$bcabAAbGB@$bc)lg5++b5bbqVqUU:bg5gg5@       3  +e$aaaaaaa[d][ ][8A]e!CC&C [C8AC[CC&C[C) f]+55X5+55A !?B        ACabAiaBA8BA$CeAAAA8BAA$8BAA$!bCbACA BPb$bc.abAiabA iA bGAdA bGBE$abA<AbGBFA bG$A bGCbcbcobcO)S{^0Xb:lqgggY6::B  BV$AB@$eCeACeACeB$eBAAAA$abA WeBA bGAA bGA$eBAAAA$bceB$eB$&C ) 5N0II?]խ5??0A   ]        aaf^e D!feB$f eA{C8B $8hB!$8hB"$8B#$8B$$8B%$){!glI &O!O!!gOC+ ab8B $bc)5B eA& I):B eA&)5BZeB($fA)eA*fA+eA,feeCeeCeeC)Sgg::;B)CZeB($fA)eA*fA+eA,feeCeeCeeC)Sgg:::A   aaAVeA7GHeA7G;ABeA7GҚCABeA7GҚC)KeA7G>eA7G1BeA7GҚCBeA7GҚC) Y0DDDD{A   aaAve.GABҞCe/GABҝCeGABҝCeGxABҞC)ae.GBҞCe/GBҝCeGBҝCeGBҞC)X0:^:^:^:^:E:E:E:FC=ʵǻ)8B8BT$ $Gʓ(!!&C=ʵǻ)8B8BT$$Gʓ(!!&C;ʵǻ'8B8BT$ $Gʓ(!!&A          % aaaa aa&abbiaeAbbAbbbAbbAbbb!bbbCbbbbCbBPb$bcfeb!( lQNbN:A          aaaa aa&abbiaeAbbAbbbAbbAbbb!bbbCbbbbCbBPb$bcfb( lQNbN:B> +e$C5CA)N&&@              A  <   ?  +e $aaaaaaa[[[ ]a [C C C C7 C8 [C9 [C: eӝ[ԝ[!C< dC1 &e A A!e A9 A:! A1"RCe A A A9 A:!BA$ &C=ab A1 A=BPb$bca b O ABP BWb $$ A=BP BXb $$b A1c  &C>a b Aka a e Ab G A<! eb BC$b BA$8A! A>BPb $b c  C?)M5++++550C5bb5Dg5b5+B     aaaeA<!bBA$8AbBC$abA>i8B@A>bGAAA>bGAA$^bBYA>bGAAA>bGAA$/bA>bGA5A>bGA5 (bcU ( ?S?q :A ?B     aaaeA<!bBA$8AbBC$abA>i8B@A>bGAAA>bGAA$obBYA>bGAAA>bGAA$@bA>bGA5A>bGA5A A=bG(bcD ( ?S?q3: :A ?B         aaaA<B@$eAAA9A:A!bB@$eB$eAA9AA:!CBeABA<!BA$eABA<!BC$eBCAAA78Bb$bA88Bb$bA9A:$eACeACeCeB$) :N??䏏`II0:A ?A ?RQ?RQ?BZ eўўAўњA7њA9ўўAўњA8њA:!(  Bm ˷ўA7AњA9A7ɷўA8AњA:A88B$8A(  A ?C;  8BG$8BH$ ŦƤ(ťƣ(  SSB;D +e$BZ$C@CzC0ŵCIŶCJ) NN&&&&B A@(  B8BT$( A ?B  CI)  &B  C@)  &B G +e$ƵCL8BT$CMAMC@&CN&COC ƵCƶCJabA -ANBPBZA bG$$bcƴCPƵCI) N&?00&&&]5&&A $?B C)  &B;  CJabAO AObGAJCJbc)  &]l5BH C abA -ANBPBZA bG$$bc)  &]5B  CM)  &B  CI)  &B/ E ae!їFAOBPb$b( 55^B A@(  @    aa A C AMC@abibAN鶞GANBPBZ$$B@bGB9$ANbGB9$C@-B@bGB9$ANbGB9$C@bckBc$8BT$ҶA@( &?SN{ :6s?B48BG8BHA@8RAS$$C@)  B+Ŷ8BT8AUA@$C@)  B98BG8BH8B@A@$$$C@)  6:0yE>B                          J H  +e$C[CCSC\C]C^C &C_&C`&CaCbCLabia&BbbGCbabbGiab2eA !cbALCLBLCL6eA_bG!cbALCLBLCLbBPb$bchA_BPb$bc!abbG&CObc&CcabAbia&ab8B8BT$Ab$iwae!8BT$ia a 8B8BT$$ 8B8BT$b G$ bb Cbb CbBdA_bAGbAG$ibBPA_bAGbAG$a 8B8BT$$ bb CbBdbAG$Ra bAG b bAGB9$C@b bACeb CbBPb $bc^AcBPb$bc"&&C`a b Aciaaaab A_bGb.bA_bGcbcbA_bA_bGbG8Bb$b&CNb&COb c VabAciaaaabA_bGb.bA_bGcbcbA_bA_bGbGb&CNb&C bB_AcbG$bbCLbBaAcbG$A`GbALqbIbc&A RCf&AfRCg&Ch) `X++000++555++b]q &bND NEN:b:ID55::::ս!:?S0P:b:E]l+? XX:::^l+? Y;:v:vq:gg5h㈵>j;kY?j;kY??B   0 0     0   a A`鶞bia A`bGab鶞biaaabbGbB9$b鸞bbGbcYabbAODaabAObGbbA0AJbB9$cbcbB]b$ B8B@b$CbB^bbb$bcbc) ?+D?I I6N::B   0 0   0  abA`iaA`bGabbiaabbGbAJabbANiaabANbGbAIA]bbA bGB9$A\bcbB[b$bB\bB9$b$bclbB`bAMA]b$bcbc) ?{+5I5N:::@       N  a A &RC abActabAcbGSAcbGbGA1AcbGbGA AcbGbGAeGC@bcbcabA`iabA`bGwb4A`GbGBaAcA`GbGALG$2A`GbGBaAcA`GbGALG$bczbcX&Ca&CoabA`A`鶞GoAaBPA`A`鶞GbGB9$$AoBPeA`A`鶞GbGB9$!$bc{eG8B$) lIbv{55q{& ::555::T@    N a A &RC abA_iabA_bGib#A_bGbGBaA $_bA_鶞)A_bGbGBaA_bG$'A_bGbGBaA_bG$bc[bc:&Ca&CoabA_A_鶞GoAaBPA_A_鶞GbGB9$$AoBPeA_A_鶞GbGB9$!$bc{) lIq& S ::555:@J M +e$aƵCJ&COѽBZ$C@)C@) &0!N'B A@(  B8BT$( A ?C           % & & & ' &  Z R K P     S X T V W Y N U aaaaaeGL&fab27ab2 eBPbb&$bcbcetG+eBu$eBu$eBu$evGee!!!&!f)eBweAeA$eB!$eBxeeAeA22$ e'G e f e  eyGeBj22$f e f 8BT$f 8BT$8BT$8BT$ezGccce f e 2f e f e 2f eqGE8B8BT$2$f 8B8BT$2$f efee GGf ee GGf &abi&bBPe8Be b28A$ !$bBPe8Be b28A$ !$bBPe8Be b28A$ !$bBPe8Be b28A$!$bceBgb$e{B\eAaeAa鸞G|eAaeAa鷞G|eAaeAa鶞G}$CeB2e e $8Be e 2$e AbGe AbGce AbGe AbGce AbGe AbGcezGie{B\eAaeAa鸞G|eAaeAa鷞G|eAaeAa鶞G}$CeBeAeA$)a&a b eA`G鸞4bBPeeA`Gb GB9$!$b c bBPeb!$bBPeb!$bBPeb!$eGeBeb$eBf$e{B\eAaeAa鸞G|eAaeAa鷞G|eAaeAa鶞G}$Ce f e aif fa b eiaa a a eb GG eb GG & abi&b BPe8Bb b28A$!$b BPe8Bb b28A$!$b BPe8Bb b28A$!$b BPe8Bb b28A$!$bceBgb $e{B\eAaeAa鸞G|eAaeAa鷞G|eAaeAa鶞G}$C8Bb b 2$e AbGce AbGce AbGce8B@eAaeAa鸞Gb$fe8B@eAaeAa鷞Gb$fe8B@eAaeAa鶞Gb$feB2b b $b c 8Be$) O:+DDl56:IIK:|@:@qq,]"IIN:!!"++!++#;+]]]EEEEIOl Il) qqr?N@l+?! ::]EEEEINllvvv;B8BT$(( A 5?B8BT$(( A 5?B8BT$(( A ?A '?{Gz????A ?A ?A ?A ?A ?A ?A ?A ?A ????A ?A ?A ?A ?A ?A ?A ?A (?= new Line(this.centroid.x, this.centroid.y, this.springs[s].anchor.x, this.springs[s].anchor.y, 0, "transparent") if (this.link.hypotenuse() != 0) { this.springs[s].anchor.xmom += (((this.springs[s].anchor.x - this.centroid.x) / (this.link.hypotenuse()))) * this.forceConstant this.springs[s].anchor.ymom += (((this.springs[s].anchor.y - this.centroid.y) / (this.link.hypotenuse()))) * this.forceConstant } } for (let s = 0; s < this.springs.length; s++) { this.springs[s].move() } for (let s = 0; s < this.springs.length; s++) { this.springs[s].draw() } } } class Observer { constructor(x, y, radius, color, range = 100, rays = 10, angle = (Math.PI * .125)) { this.body = new Circle(x, y, radius, color) this.color = color this.ray = [] this.rayrange = range this.globalangle = Math.PI this.gapangle = angle this.currentangle = 0 this.obstacles = [] this.raymake = rays } beam() { this.currentangle = this.gapangle / 2 for (let k = 0; k < this.raymake; k++) { this.currentangle += (this.gapangle / Math.ceil(this.raymake / 2)) let ray = new Circle(this.body.x, this.body.y, 1, "white", (((Math.cos(this.globalangle + this.currentangle)))), (((Math.sin(this.globalangle + this.currentangle))))) ray.collided = 0 ray.lifespan = this.rayrange - 1 this.ray.push(ray) } for (let f = 0; f < this.rayrange; f++) { for (let t = 0; t < this.ray.length; t++) { if (this.ray[t].collided < 1) { this.ray[t].move() for (let q = 0; q < this.obstacles.length; q++) { if (this.obstacles[q].isPointInside(this.ray[t])) { this.ray[t].collided = 1 } } } } } } draw() { this.beam() this.body.draw() canvas_context.lineWidth = 1 canvas_context.fillStyle = this.color canvas_context.strokeStyle = this.color canvas_context.beginPath() canvas_context.moveTo(this.body.x, this.body.y) for (let y = 0; y < this.ray.length; y++) { canvas_context.lineTo(this.ray[y].x, this.ray[y].y) canvas_context.lineTo(this.body.x, this.body.y) } canvas_context.stroke() canvas_context.fill() this.ray = [] } } function setUp(canvas_pass, style = "#000000") { canvas = canvas_pass video_recorder = new CanvasCaptureToWEBM(canvas, 4500000); canvas_context = canvas.getContext('2d'); canvas.style.background = style window.setInterval(function () { for (let t = 0; t < Math.floor(2499/3); t++) { main() } }, 1) document.addEventListener('keydown', (event) => { keysPressed[event.key] = true; }); document.addEventListener('keyup', (event) => { delete keysPressed[event.key]; }); window.addEventListener('pointerdown', e => { FLEX_engine = canvas.getBoundingClientRect(); XS_engine = e.clientX - FLEX_engine.left; YS_engine = e.clientY - FLEX_engine.top; TIP_engine.x = XS_engine TIP_engine.y = YS_engine TIP_engine.body = TIP_engine // example usage: if(object.isPointInside(TIP_engine)){ take action } }); window.addEventListener('pointermove', continued_stimuli); window.addEventListener('pointerup', e => { // window.removeEventListener("pointermove", continued_stimuli); }) function continued_stimuli(e) { FLEX_engine = canvas.getBoundingClientRect(); XS_engine = e.clientX - FLEX_engine.left; YS_engine = e.clientY - FLEX_engine.top; TIP_engine.x = XS_engine TIP_engine.y = YS_engine TIP_engine.body = TIP_engine } } function gamepad_control(object, speed = 1) { // basic control for objects using the controler // console.log(gamepadAPI.axesStatus[1]*gamepadAPI.axesStatus[0]) //debugging if (typeof object.body != 'undefined') { if (typeof (gamepadAPI.axesStatus[1]) != 'undefined') { if (typeof (gamepadAPI.axesStatus[0]) != 'undefined') { object.body.x += (gamepadAPI.axesStatus[0] * speed) object.body.y += (gamepadAPI.axesStatus[1] * speed) } } } else if (typeof object != 'undefined') { if (typeof (gamepadAPI.axesStatus[1]) != 'undefined') { if (typeof (gamepadAPI.axesStatus[0]) != 'undefined') { jxxA | epadAPI.axesStatus[0] * speed) object.y += (gamepadAPI.axesStatus[1] * speed) } } } } function control(object, speed = 1) { // basic control for objects if (typeof object.body != 'undefined') { if (keysPressed['w']) { object.body.y -= speed } if (keysPressed['d']) { object.body.x += speed } if (keysPressed['s']) { object.body.y += speed } if (keysPressed['a']) { object.body.x -= speed } } else if (typeof object != 'undefined') { if (keysPressed['w']) { object.y -= speed } if (keysPressed['d']) { object.x += speed } if (keysPressed['s']) { object.y += speed } if (keysPressed['a']) { object.x -= speed } } } function getRandomLightColor() { // random color that will be visible on black background var letters = '0123456789ABCDEF'; var color = '#'; for (var i = 0; i < 6; i++) { color += letters[(Math.floor(Math.random() * 12) + 4)]; } return color; } function getRandomColor() { // random color var letters = '0123456789ABCDEF'; var color = '#'; for (var i = 0; i < 6; i++) { color += letters[(Math.floor(Math.random() * 16) + 0)]; } return color; } function getRandomDarkColor() {// color that will be visible on a black background var letters = '0123456789ABCDEF'; var color = '#'; for (var i = 0; i < 6; i++) { color += letters[(Math.floor(Math.random() * 12))]; } return color; } function castBetween(from, to, granularity = 10, radius = 1) { //creates a sort of beam hitbox between two points, with a granularity (number of members over distance), with a radius defined as well let limit = granularity let shape_array = [] for (let t = 0; t < limit; t++) { let circ = new Circle((from.x * (t / limit)) + (to.x * ((limit - t) / limit)), (from.y * (t / limit)) + (to.y * ((limit - t) / limit)), radius, "red") circ.toRatio = t / limit circ.fromRatio = (limit - t) / limit shape_array.push(circ) } return (new Shape(shape_array)) } function castBetweenPoints(from, to, granularity = 10, radius = 1) { //creates a sort of beam hitbox between two points, with a granularity (number of members over distance), with a radius defined as well let limit = granularity let shape_array = [] for (let t = 0; t < limit; t++) { let circ = new Circle((from.x * (t / limit)) + (to.x * ((limit - t) / limit)), (from.y * (t / limit)) + (to.y * ((limit - t) / limit)), radius, "red") circ.toRatio = t / limit circ.fromRatio = (limit - t) / limit shape_array.push(circ) } return shape_array } class Disang { constructor(dis, ang) { this.dis = dis this.angle = ang } } class BezierHitbox { constructor(x, y, cx, cy, ex, ey, color = "red") { // this function takes a starting x,y, a control point x,y, and a end point x,y this.color = color this.x = x this.y = y this.cx = cx this.cy = cy this.ex = ex this.ey = ey this.metapoint = new Circle((x + cx + ex) / 3, (y + cy + ey) / 3, 3, "#FFFFFF") this.granularity = 100 this.body = [...castBetweenPoints((new Point(this.x, this.y)), (new Point(this.ex, this.ey)), this.granularity, 0)] let angle = (new Line(this.x, this.y, this.ex, this.ey)).angle() this.angles = [] for (let t = 0; t < this.granularity; t++) { this.angles.push(angle) } for (let t = 0; t <= 1; t += 1 / this.granularity) { this.body.push(this.getQuadraticXY(t)) this.angles.push(this.getQuadraticAngle(t)) } this.hitbox = [] for (let t = 0; t < this.body.length; t++) { let link = new LineOP(this.body[t], this.metapoint) let disang = new Disang(link.hypotenuse(), link.angle() + (Math.PI * 2)) this.hitbox.push(disang) } this.constructed = 1 } isPointInside(point) { let link = new LineOP(point, this.metapoint) let angle = (link.angle() + (Math.PI * 2)) let dis = link.hypotenuse() for (let t = 1; t < this.hitbox.length; t++) { if (Math.abs(this.hitbox[t].angle - this.hitbox[t - 1].angle) > 1) { continue } if (angle.between(this.hitbox[t].angle, this.hitbox[t - 1].angle)) { if (dis < (this.hitbox[t].dis + this.hitbox[t - 1].dis) * .5) { return true } } } return false } doesPerimeterTouch(point) { let link = new LineOP(point, this.metapoint) let angle = (link.angle() + (Math.PI * 2)) let dis = link.hypotenuse() for (let t = 1; t < this.hitbox.length; t++) { if (Math.abs(this.hitbox[t].angle - this.hitbox[t - 1].angle) > 1) { continue } if (angle.between(this.hitbox[t].angle, this.hitbox[t - 1].angle)) { if (dis < ((this.hitbox[t].dis + this.hitbox[t - 1].dis) * .5) + point.radius) { return this.angles[t] } } } return false } draw() { this.metapoint.draw() let tline = new Line(this.x, this.y, this.ex, this.ey, this.color, 3) tline.draw() canvas_context.beginPath() this.median = new Point((this.x + this.ex) * .5, (this.y + this.ey) * .5) let angle = (new LineOP(this.median, this.metapoint)).angle() let dis = (new LineOP(this.median, this.metapoint)).hypotenuse() canvas_context.bezierCurveTo(this.x, this.y, this.cx - (Math.cos(angle) * dis * .38), this.cy - (Math.sin(angle) * dis * .38), this.ex, this.ey) canvas_context.fillStyle = this.color canvas_context.strokeStyle = this.color canvas_context.lineWidth = 3 canvas_context.stroke() } getQuadraticXY(t) { return new Point((((1 - t) * (1 - t)) * this.x) + (2 * (1 - t) * t * this.cx) + (t * t * this.ex), (((1 - t) * (1 - t)) * this.y) + (2 * (1 - t) * t * this.cy) + (t * t * this.ey)) } getQuadraticAngle(t) { var dx = 2 * (1 - t) * (this.cx - this.x) + 2 * t * (this.ex - this.cx); var dy = 2 * (1 - t) * (this.cy - this.y) + 2 * t * (this.ey - this.cy); return -Math.atan2(dx, dy) + 0.5 * Math.PI; } } Number.prototype.between = function (a, b, inclusive) { var min = Math.min(a, b), max = Math.max(a, b); return inclusive ? this >= min && this <= max : this > min && this < max; } class Weight { constructor(from, to) { this.value = this.weight() this.from = from this.to = to this.change = 0 this.delta = 1 } valueOf() { return this.value } weight() { return ((Math.random() - .5) * 2) / 1 } setChange(num) { this.change = num } setWeight(num) { this.value = num } } class Perceptron { constructor(inputs) { this.markCount = 0 this.bias = (((Math.random() - .5) * 2) / 1) / 1 this.value = this.bias this.weights = [] this.outputConnections = [] this.inputs = inputs this.error = 0 this.delta = 1 for (let t = 0; t < this.inputs.length; t++) { this.weights.push(this.weight(this.inputs[t])) } this.z = -1 this.change = 0 } setError(error) { this.error = error } setDelta(delta) { this.delta = delta for (let t = 0; t < this.outputConnections.length; t++) { this.outputConnections[t].delta = this.delta } } newIn(inputs) { this.inputs = inputs for (let t = 0; t < this.inputs.length; t++) { this.weights.push(this.weight(this.inputs[t])) } } setBias(bias) { this.bias = bias } setChange(num) { this.change = num } weight(link) { let weight = new Weight(link, this) if (typeof link != "number") { link.outputConnections.push(weight) } return weight } valueOf() { return this.value } compute(inputs = this.inputs, dr = 0) { this.inputs = inputs this.value = this.bias for (let t = 0; t < inputs.length; t++) { if (t > this.weights.length - 1) { this.weights.push(this.weight()) this.value += (inputs[t].valueOf() * this.weights[t].valueOf()) } else { this.value += (inputs[t].valueOf() * this.weights[t].valueOf()) } } this.sig() // this.gauss() if (Math.random() < .05 && dr == 1) { // return 0 //Math.random() //dropout } return this.value } relu() { this.value = Math.min(Math.max(this.value, perc.reluslime), 1) } sig() { this.value = 1 / (1 + (Math.pow(Math.E, -this.value))) } gauss() { this.value = Math.min(Math.max(Math.abs(this.value), 0.00000001), 1) } } class Network { constructor(inputs, layerSetupArray) { this.check = 0 this.error = 0 this.reluslime = .00001 this.momentum = 0.001551565 this.learningRate = 0.001551565 this.setup = layerSetupArray this.inputs = inputs this.structure = [] this.ztructure = [] this.outputs = [] this.nodeCount = 0 this.markCount = 0 for (let t = 0; t < layerSetupArray.length; t++) { let scaffold = [] this.nodeCount += layerSetupArray[t] for (let k = 0; k < layerSetupArray[t]; k++) { let cept if (t == 0) { cept = new Perceptron(this.inputs) cept.markCount = this.markCount this.markCount++ } else { cept = new Perceptron(this.structure[t - 1]) cept.markCount = this.markCount this.markCount++ } scaffold.push(cept) } this.structure.push(scaffold) } for (let t = 0; t < inputs.length; t++) { inputs[t].outputConnections = [] } this.clusters = [] for (let t = 0; t < this.nodeCount; t++) { let cluster = [] for (let k = 0; k < Math.floor(Math.random() * this.nodeCount * 30) + 30; k++) { let index = new Point(-1, -1) if (Math.random() < .9) { let x = Math.floor(Math.random() * layerSetupArray.length) let y = Math.floor(Math.random() * layerSetupArray[x]) index.x = x index.y = y if (!cluster.includes(this.structure[index.x][index.y])) { cluster.push(this.structure[index.x][index.y]) } } else { let x = Math.floor(Math.random() * inputs.length) index.x = x if (!cluster.includes(inputs[index.x])) { let node = inputs[index.x] node.value = inputs[index.x].valueOf() node.flag = index.x node.data = 1 cluster.push(node) } } } this.clusters.push(cluster) } this.ztructure = [[]] for (let t = 0; t < this.clusters.length; t++) { let s = 0 let f = t while (this.structure[s].length <= f) { f -= this.structure[s].length s++ if (s > this.structure.length) { break } } let g = f let cetp = this.structure[s][g] /// new Perceptron(this.clusters[t]) console.log(cetp) cetp.weights = [] cetp.outputConnections = [] } for (let t = 0; t < this.clusters.length; t++) { let s = 0 let f = t while (this.structure[s].length <= f) { // console.log(f, this.structure[s]) f -= this.structure[s].length s++ if (s > this.structure.length) { break } } let g = f // console.log(s, g) let cetp = this.structure[s][g] /// new Perceptron(this.clusters[t]) // console.log(cetp) cetp.weights = [] // cetp.outputConnections = [] cetp.inputs = [] cetp.newIn(this.clusters[t]) cetp.markCount = t cetp.compute(this.clusters[t]) this.ztructure[0][cetp.markCount] = cetp } this.lastinputs = [...this.inputs] this.lastgoals = [...this.lastinputs] this.swap = [] } zalculateDeltasSigmoid(goals) { for (let t = this.ztructure.length - 1; t >= 0; t--) { const layer = this.ztructure[t] for (let k = layer.length - 1; k >= 0; k--) { const perceptron = layer[k] let output = perceptron.valueOf() let error = 0 if (layer.length-3 <= k) { error = goals[k] - output; } else { for (let k = 0; k < perceptron.outputConnections.length; k++) { const currentConnection = perceptron.outputConnections[k] error += currentConnection.to.delta * currentConnection.valueOf() let j = 0 // while(currentConnection.to.outputConnections.length > 0){ // j++ // if(j > 1000){ // break // } // } } } perceptron.setError(error) this.error += Math.abs(error) perceptron.setDelta(error * output * (1 - output)) } } } zadjustWeights() { for (let t = 0; t < this.ztructure.length; t++) { const layer = this.ztructure[t] for (let k = 0; k < layer.length; k++) { const perceptron = layer[k] let delta = perceptron.delta for (let i = 0; i < perceptron.weights.length; i++) { const connection = perceptron.weights[i] let change = connection.change change = (this.learningRate * delta * perceptron.inputs[i].valueOf()) + (this.momentum * change); connection.setChange(change) connection.setWeight(connection.valueOf() + change) } perceptron.setBias(perceptron.bias + (this.learningRate * delta)) } } } zompute(inputs = this.inputs) { this.inputs = [...inputs] for (let t = 0; t < this.clusters.length; t++) { for (let k = 0; k < this.clusters[t].length; k++) { if (this.clusters[t][k].data == 1) { this.clusters[t][k].value = this.inputs[this.clusters[t][k].flag] } } } for (let t = 0; t < this.ztructure.length; t++) { for (let k = 0; k < this.ztructure[t].length; k++) { if (t == 0) { this.ztructure[0][k].compute(this.clusters[this.ztructure[0][k].markCount], 1) } else { this.ztructure[0][k].compute(this.clusters[this.ztructure[0][k].markCount], 1) } } } this.outputs = [] this.dataoutputs = [] for (let t = 0; t < this.ztructure[this.ztructure.length - 1].length; t++) { this.outputs.push(this.ztructure[this.ztructure.length - 1][t].valueOf()) this.dataoutputs.push(new Data(this.ztructure[this.ztructure.length - 1][t].valueOf())) } if (keysPressed['k']) { console.log(this) } } compute(inputs = this.inputs) { this.inputs = [...inputs] for (let t = 0; t < this.structure.length; t++) { for (let k = 0; k < this.structure[t].length; k++) { if (t == 0) { this.structure[t][k].compute(this.inputs, 1) } else { if (t != this.structure.length - 1) { this.structure[t][k].compute(this.structure[t - 1], 1) } else { this.structure[t][k].compute(this.structure[t - 1], 0) } } } } this.outputs = [] this.dataoutputs = [] for (let t = 0; t < this.structure[this.structure.length - 1].length; t++) { this.outputs.push(this.structure[this.structure.length - 1][t].valueOf()) this.dataoutputs.push(new Data(this.structure[this.structure.length - 1][t].valueOf())) } } } class Data { constructor(input = -100) { this.delta = 0 this.outputConnections = [] if (input == -100) { this.value = this.weight() } else { this.value = input } } valueOf() { return this.value } weight() { return Math.random() - .5 } } let setup_canvas = document.getElementById('canvas') //getting canvas from document setUp(setup_canvas) let inputs = [] for (let t = 0; t < 44; t++) { inputs.push(new Data(0)) } let net = new Network(inputs, [97, 3]) let count = 0 let pix = canvas_context.getImageData(0, 0, 50, 50) let worlderror = 0 let x = 0 let y = 0 let cgo = 0 let c = 1 let arr = [] for (let t = 0; t < 50; t++) { for (let k = 0; k < 50; k++) { arr.push([t, k]) } } // arr.sort((a, b) => Math.random() > .5 ? 1 : -1) // arr.sort((a, b) => Math.random() > .5 ? 1 : -1) // arr.sort((a, b) => Math.random() > .5 ? 1 : -1) function main() { if(keysPressed['a']){ arr = [] for (let t = 0; t < 50; t++) { for (let k = 0; k < 50; k++) { arr.push([t, k]) } } } if(keysPressed['o']){ arr.sort((a, b) => Math.random() > .5 ? 1 : -1) arr.sort((a, b) => Math.random() > .5 ? 1 : -1) arr.sort((a, b) => Math.random() > .5 ? 1 : -1) } if (keysPressed['n']) { net = new Network(inputs, [33, 33, 33, 3]) return } canvas_context.clearRect(0, 0, canvas.width * .5, canvas.height) // refreshes the image gamepadAPI.update() //checks for button presses/stick movement on the connected controller) // game code goes here canvas_context.drawImage(pom, 0, 0, pom.width, pom.width, 0, 0, 50, 50) // return if (keysPressed['e']) { count += 1000 } if (cgo < 1000 || keysPressed[' ']) { pix = canvas_context.getImageData(0, 0, 50, 50) cgo++ } if (Math.random() < .01) { cgo = 0 } let r = Math.random() let g = Math.random() let b = Math.random() if (keysPressed['h']) { r = 1 g = 1 b = 1 } x++ if (x > 50) { x = 0 y++ if (y > 50) { y = 0 } } if (keysPressed['l']) { x = Math.floor(Math.random() * 50) y = Math.floor(Math.random() * 50) } c++ x = arr[c % 2500][0]//Math.floor(x*1) y = arr[c % 2500][1]// Math.floor(y*1) let kinputs = [] for (let l = .1; l < 1.1; l += .1) { kinputs.push(new Data((Math.cos((((x - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.sin((((y - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.sin((((x - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.cos((((y - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) } net.zompute(kinputs) canvas_context.fillStyle = `rgb(${net.outputs[net.outputs.length - 3] * 255}, ${net.outputs[net.outputs.length - 2] * 255}, ${net.outputs[net.outputs.length - 1] * 255})` canvas_context.fillRect(50 + x, y, 1, 1) // x = arr[t][0]//Math.floor(x*1) // y = arr[t][1]// Math.floor(y*1) let index = Math.floor((x + (y * 50)) * 4) r = (pix.data[index] / 255)*(pix.data[index+3]/255)//x/50 //(y>25?1:0) // ((Math.cos(x/3)*.5)+.5)//pix.data[index]/255// g = (pix.data[index + 1] / 255)*(pix.data[index+3]/255)//(x>25?1:0) // ((Math.cos(x/3)*.5)+.5)//pix.data[index+1]/255 b = (pix.data[index + 2] / 255)*(pix.data[index+3]/255)//(x>25?1:0) // ((Math.cos(x/3)*.5)+.5)//pix.data[index+2]/255 if (keysPressed['h']) { canvas_context.fillStyle = `rgb(${net.outputs[net.outputs.length - 3] * 255}, ${net.outputs[net.outputs.length - 2] * 255}, ${net.outputs[net.outputs.length - 1] * 255})` canvas_context.fillRect(0, 0, canvas.width * .5, canvas.height) } else { let inputs = [] for (let t = 0; t < net.ztructure[0].length - 3; t++) { // if (Math.random() > .05) { inputs.push(new Data(net.ztructure[0][t].valueOf())) // } else { // inputs.push(new Data(Math.random())) // } } // inputs.push(new Data(((Math.sign(r-net.outputs[net.outputs.length-3])*.5)+.5)*2)) // inputs.push(new Data(((Math.sign(g-net.outputs[net.outputs.length-2])*.5)+.5)*2)) // inputs.push(new Data(((Math.sign(b-net.outputs[net.outputs.length-1])*.5)+.5)*2)) inputs.push(new Data(r)) inputs.push(new Data(g)) inputs.push(new Data(b)) if (!keysPressed['q']) { net.zalculateDeltasSigmoid(inputs) net.zadjustWeights() } canvas_context.fillStyle = `rgb(${net.outputs[net.outputs.length - 3] * 255}, ${net.outputs[net.outputs.length - 2] * 255}, ${net.outputs[net.outputs.length - 1] * 255})` count++ if (count > 25000) { count = 0 worlderror = 0 // if(keysPressed['l']){ // arr.sort((a, b) => Math.random() > .5 ? 1 : -1) // } // for (let t = 0; t < arr.length; t++) { for (let t = 0; t < arr.length; t++) { // for (let t = 0; t < 50; t++) { // for (let k = 0; k < 50; k++) { let xz = arr[t][0] let yx = arr[t][1] let kinputs = [] for (let l = .1; l < 1.1; l += .1) { kinputs.push(new Data((Math.cos((((xz - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.sin((((yx - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.sin((((xz - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.cos((((yx - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) } net.zompute(kinputs) canvas_context.fillStyle = `rgb(${net.outputs[net.outputs.length - 3] * 255}, ${net.outputs[net.outputs.length - 2] * 255}, ${net.outputs[net.outputs.length - 1] * 255})` let index = Math.floor((xz + (yx * 50)) * 4) r = pix.data[index] / 255 g = pix.data[index + 1] / 255 b = pix.data[index + 2] / 255 worlderror += Math.abs(net.outputs[net.outputs.length - 3] - r) worlderror += Math.abs(net.outputs[net.outputs.length - 2] - g) worlderror += Math.abs(net.outputs[net.outputs.length - 1] - b) canvas_context.fillRect(50 + xz, yx, 1, 1) } console.log(worlderror) } } } }) // let g = {"ChatID":"3,6,2","Dialogue":[{"ID":3,"Says":"Bad morning"}, {"ID":6,"Says":"Bad morning to you as well"}, {"ID":3,"Says":"Fuck off!"}], "DependsOn":["12,7,2", "3,6,1"]j6C070A  @/A B*M  CpP8A 9A @AA 6BCE;A [A YA =A ?A A   aaaaa C: C< C>& BD$b8Eb)8FBGE$bAHJCI)A`BaA8<V)chor.y, 0, "transparent") @function handleStop() { const superBuffer = new Blob(blobCaptures, { type: outputFormat }) video.src = window.URL.createObjectURL(superBuffer) }t 8HA iR&fab2i:ab2 eB bb&$bcbceG+eB$eB$eB$eGee!!!&!f)eBeAeA$eBz$eBeeAeA22$ e5G e f e  eGeB22$f e f 8B$f 8B$8B$8B$eGccce f e 2f 2 |NbuttonsCache0jPB(5WA 45@A 1* 0UA A l  aaeAIAAAIAA!eAIb!bB$)A PȥB5)A 5A @A *Wo cA -8BAAAA%A #FAurlk++) #ƝGblobc ?:qqb]::q?00P3&V^Pvideo_out.webmet ray = new /fC@7 A 787@A *nf SsA v  o8tBu$G$e8tBu$GCpe Cq8tBu$G#e8tBu$GCpe Cqi8tBu$G#e8tBu$GCpe Cq48tBu$G!e8tBu$GCpe Cqab8w(8wbG8wbGAxbc)3z4astorageElementollided < 1) QhAeACeACeB$eBbbPmultiply(vect) { let point = new Point(0, 0) let end = new Point(this.xmom + vect.xmom, this.ymom + vect.ymom) return point.pointDistance(end) }G# h@a} #bhNhref } #_#G<body # 5ZCappendChild#(t!clickw() # V[setTimeoutdcaؠB8;A :(;@A * R`A UA 5A   aaaaaeAI!bB$eAIAAAIAA!eb!bB$bb ( (A(geAIAAAIAA!e@" R;gamepadAPI# yremoveChildAx1}ǣieA}Gѩi ҖieA{@2p\revokeObjectURL canvas = a^`() => { document.body.removeChild(storageElement) window.URL.revokeObjectURL(url) }et t = 0; t B8>WA =A @A *P|pA 0|A A abHabbGA(AB bGAbG$bcbc)C(?=C>A @A *@-` A A vA   ʵǻ)8B8B$ $Gʓ(function saveToDownloads(input) { // specifying a file name for the output const name = input || 'video_out.webm' const blob = new Blob(blobCaptures, { type: outputFormat }) const url = window.URL.createObjectURL(blob) const storageElement = document.createElement('a') storageElement.style.display = 'none' storageElement.href = url storageElement.download = name document.body.appendChild(storageElement) storageElement.click() setTimeout(() => { document.body.removeChild(storageElement) window.URL.revokeObjectURL(url) }, 100) }_engine x[BB7A BA @A *_A 0AŅ abA"AbGB$ (bc (BA ]l55c function CanvasCaptureToWEBM(canvas, bitrate) { // the video_recorder is set to '= new CanvasCaptureToWEBM(canvas, 4500000);' in the setup, // it uses the same canvas as the rest of the file. // to start a recording call .record() on video_recorder /* for example, if(keysPressed['-'] && recording == 0){ recording = 1 video_recorder.record() } if(keysPressed['='] && recording == 1){ recording = 0 video_recorder.stop() video_recorder.download('File Name As A String.webm') } */ this.record = Record this.stop = Stop this.download = saveToDownloads let blobCaptures = [] let outputFormat = {} let recorder = {} let canvasInput = canvas.captureStream() if (typeof canvasInput == undefined || !canvasInput) { return } const video = document.createElement('video') video.style.display = 'none' function Record() { let formats = [ 'video/vp8', "video/webm", 'video/webm,codecs=vp9', "video/webm\;codecs=vp8", "video/webm\;codecs=daala", "video/webm\;codecs=h264", "video/mpeg" ]; for (let t = 0; t < formats.length; t++) { if (MediaRecorder.isTypeSupported(formats[t])) { outputFormat = formats[t] break } } if (typeof outputFormat != "string") { return } else { let videoSettings = { mimeType: outputFormat, videoBitsPerSecond: bitrate || 2000000 // 2Mbps }; blobCaptures = [] try { recorder = new MediaRecorder(canvasInput, videoSettings) } catch (error) { return; } recorder.onstop = handleStop recorder.ondataavailable = handleAvailableData recorder.start(100) } } function handleAvailableData(event) { if (event.data && event.data.size > 0) { blobCaptures.push(event.data) } } function handleStop() { const superBuffer = new Blob(blobCaptures, { type: outputFormat }) video.src = window.URL.createObjectURL(superBuffer) } function Stop() { recorder.stop() video.controls = true } function saveToDownloads(input) { // specifying a file name for the output const name = input || 'video_out.webm' const blob = new Blob(blobCaptures, { type: outputFormat }) const url = window.URL.createObjectURL(blob) const storageElement = document.createElement('a') storageElement.style.display = 'none' storageElement.href = url storageElement.download = name document.body.appendChild(storageElement) storageElement.click() setTimeout(() => { document.body.removeChild(storageElement) window.URL.revokeObjectURL(url) }, 100) } }= granularity # P?Econtrollere#Mn-turboimit; #qWconnect= ne#45BQ>A 8QQ@A *AŢ Aբ A A A A A t v+e$CCCC[C[C)4`(l,BhR A XRA @A *3B A A@(#ZAevtierHitbo XI bI]S??D0# ΎS[navigator /# p@imepads # &l9getGamepadsfunction (evt) { if (navigator.getGamepads()[0] != null) { gamepadAPI.controller = navigator.getGamepads()[0] gamepadAPI.turbo = true; } else if (navigator.getGamepads()[1] != null) { gamepadAPI.controller = navigator.getGamepads()[0] gamepadAPI.turbo = true; } else if (navigator.getGamepads()[2] != null) { gamepadAPI.controller = navigator.getGamepads()[0] gamepadAPI.turbo = true; } else if (navigator.getGamepads()[3] != null) { gamepadAPI.controller = navigator.getGamepads()[0] gamepadAPI.turbo = true; } for (let i = 0; i < gamepads.length; i++) { if (gamepads[i] === null) { continue; } if (!gamepads[i].connected) { continue; } } }cx_B`WA HWXW@A *@_@AAծ  8AiAAeAABCAAeAABCAAABCAAABCBACBAC)A̰ Ah`AiXAXAebb@add(vect) { return new Vector(this.object, this.xmom + vect.xmom, this.ymom + vect.ymom) } w A0lQNbN:lQNbN: P#!Ushapesq(px+f^e D!feB,-$f eAHC.8+eBp"CQEgamepads { NzBpZA HZhZ@A *}Q 0Aմ A R $v+e$C)# XOconnectedneCCAĵ addEventListener DOMContentLoaded eventsquaretabletvideo_recorderrecordingpom&CanvasCaptureToWEBMgamepadAPI canvascanvas_contextkeysPressedFLEX_engineTIP_engineXS_engineYS_engine Point VectorLine LineOPRectangle CirclePolygon Shape SpringSpringOP ColorSoftbodyObserver setUpgamepad_controlcontrol&getRandomLightColorgetRandomColor$getRandomDarkColorcastBetween"castBetweenPoints DisangBezierHitbox WeightPerceptronNetworkDatasetup_canvas inputsnet countpixworlderrorxycgocarrkmainsqrt Imagercpomaoml3.pngsrccontroller turboconnectdisconnect updatebuttonPressedABXYLBRBLeft-TriggerRight-TriggerBack StartAxis-LeftAxis-RightDPad-UpDPad-DownDPad-LeftDPad-Right PowerbuttonsbuttonsCachebuttonsStatusaxesStatuspointDistanceisToward rotatemagnitudenormalizemultiplysubtract dividedraw anglesquareDistancehypotenuseintersectsmoveisPointInside$doesPerimeterTouch unmovefrictiveMovefrictiveunMoveinnerShapeisInsideOf0w LineOP(this.median,"jtbutton # Cmdisconnectva<c}ǣieA}Gѩi4 Җi+eA{eA{Gѩ ɓ`"r6qupdate cV(B_A __@A *B0KA  _8AiAAeAABCAAeAABCAAABCAAABCBACBAC)AHXH]#($a%b&c'XB@"Z^.A#FFFFFFI:IISD00II??:#@x2th$ #r@kttonsStatu3Xh:@xbQA ahb@A *bIA A A IA A  v +e$aaa e!CCCI)# 0vZ]]:II0?]5??: 3 ʕubuttonsStatusWeight { cangle() { return Math.atan2(this.y1 - this.y2, this.x1 - this.x2) }5P#@y1#&r|<angle$a^$fA7eA8fA9eA:feeCeeCeeCi`"_xdif IP#j@Xcnum) { fC`eA dXe@A *If t|A ~A A A 0A A gA A  oe8tBu$GCpe&C{eA}eA{qeA}GIe&C}eAp &A9A(AGAB eAG$&A5A"B AGB&$$eCeC}(ؠxgBfA ff@A *^0A  eAA!B%#Ik]pressed.errA;XiaAAAAbbbbb@"sY|buttonsr (lQh8%Y[i+\YY[fA:P"i@Jbthis.deltacȥBhA U`hh @Xh* @aA A  /aaaAAAAbbbbbYb2eB\8B 8Bb$$$G(eB\8Bb$$G(8Bb%A A(gH$AVAAIAAVAAI@normalize(size = 1) { let magnitude = this.magnitude() this.xmom /= magnitude this.ymom /= magnitude this.xmom *= size this.ymom *= size }o»#%IvDmultiply _xBhkA 6k`k@j*HA 翧A UA %N0A  aaaeAU!bB$8AbB$abAYi8BAYbGAAYbGA$obB\AYbGAAYbGA$@bAYbGANAYbGANA AVbG(bcD ( this.#Faxesss() hnBm'A lA @A *vRA BACBAC)Oe#@ x this.vaXmXmX|)\ (Math.pow(Math.E, -this.value))) } mmA <\$GCp‹o&C{Œ|A Y|oA}A0ikoA{|qoA}|GIŽ| { const squaretable = {} // this section of code is an optimization for use of the hypotenuse function on Line and LineOP objects for (let t = 0; t < 10000000; t++) { squaretable[`${t}`] = Math.sqrt(t) if (t > 999) { t += 9 } } let video_recorder let recording = 0 let pom = new Image() pom.src = "rcpomaoml3.png" function CanvasCaptureToWEBM(canvas, bitrate) { // the video_recorder is set to '= new CanvasCaptureToWEBM(canvas, 4500000);' in the setup, // it uses the same canvas as the rest of the file. // to start a recording call .record() on video_recorder /* for example, if(keysPressed['-'] && recording == 0){ recording = 1 video_recorder.record() } if(keysPressed['='] && recording == 1){ recording = 0 video_recorder.stop() video_recorder.download('File Name As A String.webm') } */ this.record = Record this.stop = Stop this.download = saveToDownloads let blobCaptures = [] let outputFormat = {} let recorder = {} let canvasInput = canvas.captureStream() if (typeof canvasInput == undefined || !canvasInput) { return } const video = document.createElement('video') video.style.display = 'none' function Record() { let formats = [ 'video/vp8', "video/webm", 'video/webm,codecs=vp9', "video/webm\;codecs=vp8", "video/webm\;codecs=daala", "video/webm\;codecs=h264", "video/mpeg" ]; for (let t = 0; t < formats.length; t++) { if (MediaRecorder.isTypeSupported(formats[t])) { outputFormat = formats[t] break } } if (typeof outputFormat != "string") { return } else { let videoSettings = { mimeType: outputFormat, videoBitsPerSecond: bitrate || 2000000 // 2Mbps }; blobCaptures = [] try { recorder = new MediaRecorder(canvasInput, videoSettings) } catch (error) { return; } recorder.onstop = handleStop recorder.ondataavailable = handleAvailableData recorder.start(100) } } function handleAvailableData(event) { if (event.data && event.data.size > 0) { blobCaptures.push(event.data) } } function handleStop() { const superBuffer = new Blob(blobCaptures, { type: outputFormat }) video.src = window.URL.createObjectURL(superBuffer) } function Stop() { recorder.stop() video.controls = true } function saveToDownloads(input) { // specifying a file name for the output const name = input || 'video_out.webm' const blob = new Blob(blobCaptures, { type: outputFormat }) const url = window.URL.createObjectURL(blob) const storageElement = document.createElement('a') storageElement.style.display = 'none' storageElement.href = url storageElement.download = name document.body.appendChild(storageElement) storageElement.click() setTimeout(() => { document.body.removeChild(storageElement) window.URL.revokeObjectURL(url) }, 100) } } const gamepadAPI = { controller: {}, turbo: true, connect: function (evt) { if (navigator.getGamepads()[0] != null) { gamepadAPI.controller = navigator.getGamepads()[0] gamepadAPI.turbo = true; } else if (navigator.getGamepads()[1] != null) { gamepadAPI.controller = navigator.getGamepads()[0] gamepadAPI.turbo = true; } else if (navigator.getGamepads()[2] != null) { gamepadAPI.controller = navigator.getGamepads()[0] gamepadAPI.turbo = true; } else if (navigator.getGamepads()[3] != null) { gamepadAPI.controller = navigator.getGamepads()[0] gamepadAPI.turbo = true; } for (let i = 0; i < gamepads.length; i++) { if (gamepads[i] === null) { continue; } if (!gamepads[i].connected) { continue; } } }, disconnect: function (evt) { gamepadAPI.turbo = false; delete gamepadAPI.controller; }, update: function () { gamepadAPI.controller = navigator.getGamepads()[0] gamepadAPI.buttonsCache = [];// clear the buttons cache for (var k = 0; k < gamepadAPI.buttonsStatus.length; k++) {// move the buttons status from the previous frame to the cache gamepadAPI.buttonsCache[k] = gamepadAPI.buttonsStatus[k]; } gamepadAPI.buttonsStatus = [];// clear the buttons status var c = gamepadAPI.controller || {}; // get the gamepad object var pressed = []; if (c.buttons) { for (var b = 0, t = c.buttons.length; b < t; b++) {// loop through buttons and push the pressed ones to the array if (c.buttons[b].pressed) { pressed.push(gamepadAPI.buttons[b]); } } } var axes = []; if (c.axes) { for (var a = 0, x = c.axes.length; a < x; a++) {// loop through axes and push their values to the array axes.push(c.axes[a].toFixed(2)); } } gamepadAPI.axesStatus = axes;// assign received values gamepadAPI.buttonsStatus = pressed; // console.log(pressed); // return buttons for debugging purposes return pressed; }, buttonPressed: function (button, hold) { var newPress = false; for (var i = 0, s = gamepadAPI.buttonsStatus.length; i < s; i++) {// loop through pressed buttons if (gamepadAPI.buttonsStatus[i] == button) {// if we found the button we're looking for... newPress = true;// set the boolean variable to true if (!hold) {// if we want to check the single press for (var j = 0, p = gamepadAPI.buttonsCache.length; j < p; j++) {// loop through the cached states from the previous frame if (gamepadAPI.buttonsCache[j] == button) { // if the button was already pressed, ignore new press newPress = false; } } } } } return newPress; }, buttons: [ 'A', 'B', 'X', 'Y', 'LB', 'RB', 'Left-Trigger', 'Right-Trigger', 'Back', 'Start', 'Axis-Left', 'Axis-Right', 'DPad-Up', 'DPad-Down', 'DPad-Left', 'DPad-Right', "Power" ], buttonsCache: [], buttonsStatus: [], axesStatus: [] }; let canvas let canvas_context let keysPressed = {} let FLEX_engine let TIP_engine = {} let XS_engine let YS_engine class Point { constructor(x, y) { this.x = x this.y = y this.radius = 0 } pointDistance(point) { return (new LineOP(this, point, "transparent", 0)).hypotenuse() } } class Vector { // vector math and physics if you prefer this over vector components on circles constructor(object = (new Point(0, 0)), xmom = 0, ymom = 0) { this.xmom = xmom this.ymom = ymom this.object = object } isToward(point) { let link = new LineOP(this.object, point) let dis1 = link.squareDistance() let dummy = new Point(this.object.x + this.xmom, this.object.y + this.ymom) let link2 = new LineOP(dummy, point) let dis2 = link2.squareDistance() if (dis2 < dis1) { return true } else { return false } } rotate(angleGoal) { let link = new Line(this.xmom, this.ymom, 0, 0) let length = link.hypotenuse() let x = (length * Math.cos(angleGoal)) let y = (length * Math.sin(angleGoal)) this.xmom = x this.ymom = y } magnitude() { return (new Line(this.xmom, this.ymom, 0, 0)).hypotenuse() } normalize(size = 1) { let magnitude = this.magnitude() this.xmom /= magnitude this.ymom /= magnitude this.xmom *= size this.ymom *= size } multiply(vect) { let point = new Point(0, 0) let end = new Point(this.xmom + vect.xmom, this.ymom + vect.ymom) return point.pointDistance(end) } add(vect) { return new Vector(this.object, this.xmom + vect.xmom, this.ymom + vect.ymom) } subtract(vect) { return new Vector(this.object, this.xmom - vect.xmom, this.ymom - vect.ymom) } divide(vect) { return new Vector(this.object, this.xmom / vect.xmom, this.ymom / vect.ymom) //be careful with this, I don't think this is right } draw() { let dummy = new Point(this.object.x + this.xmom, this.object.y + this.ymom) let link = new LineOP(this.object, dummy, "#FFFFFF", 1) link.draw() } } class Line { constructor(x, y, x2, y2, color, width) { this.x1 = x this.y1 = y this.x2 = x2 this.y2 = y2 this.color = color this.width = width } angle() { return Math.atan2(this.y1 - this.y2, this.x1 - this.x2) } squareDistance() { let xdif = this.x1 - this.x2 let ydif = this.y1 - this.y2 let squareDistance = (xdif * xdif) + (ydif * ydif) return squareDistance } hypotenuse() { let xdif = this.x1 - this.x2 let ydif = this.y1 - this.y2 let hypotenuse = (xdif * xdif) + (ydif * ydif) if (hypotenuse < 10000000 - 1) { if (hypotenuse > 1000) { return squaretable[`${Math.round(10 * Math.round((hypotenuse * .1)))}`] } else { return squaretable[`${Math.round(hypotenuse)}`] } } else { return Math.sqrt(hypotenuse) } } draw() { let linewidthstorage = canvas_context.lineWidth canvas_context.strokeStyle = this.color canvas_context.lineWidth = this.width canvas_context.beginPath() canvas_context.moveTo(this.x1, this.y1) canvas_context.lineTo(this.x2, this.y2) canvas_context.stroke() canvas_context.lineWidth = linewidthstorage } } class LineOP { constructor(object, target, color, width) { this.object = object this.target = target this.color = color this.width = width } intersects(line) { console.log(line) var det, gm, lm; det = (this.target.x - this.object.x) * (line.target.y - line.object.y) - (line.target.x - line.object.x) * (this.target.y - this.object.y); if (det === 0) { return false; } else { lm = ((line.target.y - line.object.y) * (line.target.x - this.object.x) + (line.object.x - line.target.x) * (line.target.y - this.object.y)) / det; gm = ((this.object.y - this.target.y) * (line.target.x - this.object.x) + (this.target.x - this.object.x) * (line.target.y - this.object.y)) / det; return (0 < lm && lm < 1) && (0 < gm && gm < 1); } } squareDistance() { let xdif = this.object.x - this.target.x let ydif = this.object.y - this.target.y let squareDistance = (xdif * xdif) + (ydif * ydif) return squareDistance } hypotenuse() { let xdif = this.object.x - this.target.x let ydif = this.object.y - this.target.y let hypotenuse = (xdif * xdif) + (ydif * ydif) if (hypotenuse < 10000000 - 1) { if (hypotenuse > 1000) { return squaretable[`${Math.round(10 * Math.round((hypotenuse * .1)))}`] } else { return squaretable[`${Math.round(hypotenuse)}`] } } else { return Math.sqrt(hypotenuse) } } angle() { return Math.atan2(this.object.y - this.target.y, this.object.x - this.target.x) } draw() { let linewidthstorage = canvas_context.lineWidth canvas_context.strokeStyle = this.color canvas_context.lineWidth = this.width canvas_context.beginPath() canvas_context.moveTo(this.object.x, this.object.y) canvas_context.lineTo(this.target.x, this.target.y) canvas_context.stroke() canvas_context.lineWidth = linewidthstorage } } class Rectangle { constructor(x, y, width, height, color, fill = 1, stroke = 0, strokeWidth = 1) { this.x = x this.y = y this.height = height this.width = width this.color = color this.xmom = 0 this.ymom = 0 this.stroke = stroke this.strokeWidth = strokeWidth this.fill = fill } draw() { canvas_context.fillStyle = this.color canvas_context.fillRect(this.x, this.y, this.width, this.height) } move() { this.x += this.xmom this.y += this.ymom } isPointInside(point) { if (point.x >= this.x) { if (point.y >= this.y) { if (point.x <= this.x + this.width) { if (point.y <= this.y + this.height) { return true } } } } return false } doesPerimeterTouch(point) { if (point.x + point.radius >= this.x) { if (point.y + point.radius >= this.y) { if (point.x - point.radius <= this.x + this.width) { if (point.y - point.radius <= this.y + this.height) { return true } } } } return false } } class Circle { constructor(x, y, radius, color, xmom = 0, ymom = 0, friction = 1, reflect = 0, strokeWidth = 0, strokeColor = "transparent") { this.x = x this.y = y this.radius = radius this.color = color this.xmom = xmom this.ymom = ymom this.friction = friction this.reflect = reflect this.strokeWidth = strokeWidth this.strokeColor = strokeColor } draw() { canvas_context.lineWidth = this.strokeWidth canvas_context.strokeStyle = this.color canvas_context.beginPath(); if (this.radius > 0) { canvas_context.arc(this.x, this.y, this.radius, 0, (Math.PI * 2), true) canvas_context.fillStyle = this.color canvas_context.fill() canvas_context.stroke(); } else { // console.log("The circle is below a radius of 0, and has not been drawn. The circle is:", this) } } move() { if (this.reflect == 1) { if (this.x + this.radius > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.y + this.radius > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.x - this.radius < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.y - this.radius < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.x += this.xmom this.y += this.ymom } unmove() { if (this.reflect == 1) { if (this.x + this.radius > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.y + this.radius > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.x - this.radius < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.y - this.radius < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.x -= this.xmom this.y -= this.ymom } frictiveMove() { if (this.reflect == 1) { if (this.x + this.radius > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.y + this.radius > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.x - this.radius < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.y - this.radius < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.x += this.xmom this.y += this.ymom this.xmom *= this.friction this.ymom *= this.friction } frictiveunMove() { if (this.reflect == 1) { if (this.x + this.radius > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.y + this.radius > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.x - this.radius < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.y - this.radius < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.xmom /= this.friction this.ymom /= this.friction this.x -= this.xmom this.y -= this.ymom } isPointInside(point) { this.areaY = point.y - this.y this.areaX = point.x - this.x if (((this.areaX * this.areaX) + (this.areaY * this.areaY)) <= (this.radius * this.radius)) { return true } return false } doesPerimeterTouch(point) { this.areaY = point.y - this.y this.areaX = point.x - this.x if (((this.areaX * this.areaX) + (this.areaY * this.areaY)) <= ((this.radius + point.radius) * (this.radius + point.radius))) { return true } return false } } class Polygon { constructor(x, y, size, color, sides = 3, xmom = 0, ymom = 0, angle = 0, reflect = 0) { if (sides < 2) { sides = 2 } this.reflect = reflect this.xmom = xmom this.ymom = ymom this.body = new Circle(x, y, size - (size * .293), "transparent") this.nodes = [] this.angle = angle this.size = size this.color = color this.angleIncrement = (Math.PI * 2) / sides this.sides = sides for (let t = 0; t < sides; t++) { let node = new Circle(this.body.x + (this.size * (Math.cos(this.angle))), this.body.y + (this.size * (Math.sin(this.angle))), 0, "transparent") this.nodes.push(node) this.angle += this.angleIncrement } } isPointInside(point) { // rough approximation this.body.radius = this.size - (this.size * .293) if (this.sides <= 2) { return false } this.areaY = point.y - this.body.y this.areaX = point.x - this.body.x if (((this.areaX * this.areaX) + (this.areaY * this.areaY)) <= (this.body.radius * this.body.radius)) { return true } return false } move() { if (this.reflect == 1) { if (this.body.x > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.body.y > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.body.x < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.body.y < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.body.x += this.xmom this.body.y += this.ymom } draw() { this.nodes = [] this.angleIncrement = (Math.PI * 2) / this.sides this.body.radius = this.size - (this.size * .293) for (let t = 0; t < this.sides; t++) { let node = new Circle(this.body.x + (this.size * (Math.cos(this.angle))), this.body.y + (this.size * (Math.sin(this.angle))), 0, "transparent") this.nodes.push(node) this.angle += this.angleIncrement } canvas_context.strokeStyle = this.color canvas_context.fillStyle = this.color canvas_context.lineWidth = 0 canvas_context.beginPath() canvas_context.moveTo(this.nodes[0].x, this.nodes[0].y) for (let t = 1; t < this.nodes.length; t++) { canvas_context.lineTo(this.nodes[t].x, this.nodes[t].y) } canvas_context.lineTo(this.nodes[0].x, this.nodes[0].y) canvas_context.fill() canvas_context.stroke() canvas_context.closePath() } } class Shape { constructor(shapes) { this.shapes = shapes } draw() { for (let t = 0; t < this.shapes.length; t++) { this.shapes[t].draw() } } move() { if (typeof this.xmom != "number") { this.xmom = 0 } if (typeof this.ymom != "number") { this.ymom = 0 } for (let t = 0; t < this.shapes.length; t++) { this.shapes[t].x += this.xmom this.shapes[t].y += this.ymom this.shapes[t].draw() } } isPointInside(point) { for (let t = 0; t < this.shapes.length; t++) { if (this.shapes[t].isPointInside(point)) { return true } } return false } doesPerimeterTouch(point) { for (let t = 0; t < this.shapes.length; t++) { if (this.shapes[t].doesPerimeterTouch(point)) { return true } } return false } innerShape(point) { for (let t = 0; t < this.shapes.length; t++) { if (this.shapes[t].doesPerimeterTouch(point)) { return this.shapes[t] } } return false } isInsideOf(box) { for (let t = 0; t < this.shapes.length; t++) { if (box.isPointInside(this.shapes[t])) { return true } } return false } adjustByFromDisplacement(x, y) { for (let t = 0; t < this.shapes.length; t++) { if (typeof this.shapes[t].fromRatio == "number") { this.shapes[t].x += x * this.shapes[t].fromRatio this.shapes[t].y += y * this.shapes[t].fromRatio } } } adjustByToDisplacement(x, y) { for (let t = 0; t < this.shapes.length; t++) { if (typeof this.shapes[t].toRatio == "number") { this.shapes[t].x += x * this.shapes[t].toRatio this.shapes[t].y += y * this.shapes[t].toRatio } } } mixIn(arr) { for (let t = 0; t < arr.length; t++) { for (let k = 0; k < arr[t].shapes.length; k++) { this.shapes.push(arr[t].shapes[k]) } } } push(object) { this.shapes.push(object) } } class Spring { constructor(x, y, radius, color, body = 0, length = 1, gravity = 0, width = 1) { if (body == 0) { this.body = new Circle(x, y, radius, color) this.anchor = new Circle(x, y, radius, color) this.beam = new Line(this.body.x, this.body.y, this.anchor.x, this.anchor.y, "yellow", width) this.length = length } else { this.body = body this.anchor = new Circle(x, y, radius, color) this.beam = new Line(this.body.x, this.body.y, this.anchor.x, this.anchor.y, "yellow", width) this.length = length } this.gravity = gravity this.width = width } balance() { this.beam = new Line(this.body.x, this.body.y, this.anchor.x, this.anchor.y, "yellow", this.width) if (this.beam.hypotenuse() < this.length) { this.body.xmom += (this.body.x - this.anchor.x) / this.length this.body.ymom += (this.body.y - this.anchor.y) / this.length this.anchor.xmom -= (this.body.x - this.anchor.x) / this.length this.anchor.ymom -= (this.body.y - this.anchor.y) / this.length } else { this.body.xmom -= (this.body.x - this.anchor.x) / this.length this.body.ymom -= (this.body.y - this.anchor.y) / this.length this.anchor.xmom += (this.body.x - this.anchor.x) / this.length this.anchor.ymom += (this.body.y - this.anchor.y) / this.length } let xmomentumaverage = (this.body.xmom + this.anchor.xmom) / 2 let ymomentumaverage = (this.body.ymom + this.anchor.ymom) / 2 this.body.xmom = (this.body.xmom + xmomentumaverage) / 2 this.body.ymom = (this.body.ymom + ymomentumaverage) / 2 this.anchor.xmom = (this.anchor.xmom + xmomentumaverage) / 2 this.anchor.ymom = (this.anchor.ymom + ymomentumaverage) / 2 } draw() { this.beam = new Line(this.body.x, this.body.y, this.anchor.x, this.anchor.y, "yellow", this.width) this.beam.draw() this.body.draw() this.anchor.draw() } move() { this.anchor.ymom += this.gravity this.anchor.move() } } class SpringOP { constructor(body, anchor, length, width = 3, color = body.color) { this.body = body this.anchor = anchor this.beam = new LineOP(body, anchor, color, width) this.length = length } balance() { if (this.beam.hypotenuse() < this.length) { this.body.xmom += ((this.body.x - this.anchor.x) / this.length) this.body.ymom += ((this.body.y - this.anchor.y) / this.length) this.anchor.xmom -= ((this.body.x - this.anchor.x) / this.length) this.anchor.ymom -= ((this.body.y - this.anchor.y) / this.length) } else if (this.beam.hypotenuse() > this.length) { this.body.xmom -= (this.body.x - this.anchor.x) / (this.length) this.body.ymom -= (this.body.y - this.anchor.y) / (this.length) this.anchor.xmom += (this.body.x - this.anchor.x) / (this.length) this.anchor.ymom += (this.body.y - this.anchor.y) / (this.length) } let xmomentumaverage = (this.body.xmom + this.anchor.xmom) / 2 let ymomentumaverage = (this.body.ymom + this.anchor.ymom) / 2 this.body.xmom = (this.body.xmom + xmomentumaverage) / 2 this.body.ymom = (this.body.ymom + ymomentumaverage) / 2 this.anchor.xmom = (this.anchor.xmom + xmomentumaverage) / 2 this.anchor.ymom = (this.anchor.ymom + ymomentumaverage) / 2 } draw() { this.beam.draw() } move() { //movement of SpringOP objects should be handled separate from their linkage, to allow for many connections, balance here with this object, move nodes independently } } class Color { constructor(baseColor, red = -1, green = -1, blue = -1, alpha = 1) { this.hue = baseColor if (red != -1 && green != -1 && blue != -1) { this.r = red this.g = green this.b = blue if (alpha != 1) { if (alpha < 1) { this.alpha = alpha } else { this.alpha = alpha / 255 if (this.alpha > 1) { this.alpha = 1 } } } if (this.r > 255) { this.r = 255 } if (this.g > 255) { this.g = 255 } if (this.b > 255) { this.b = 255 } if (this.r < 0) { this.r = 0 } if (this.g < 0) { this.g = 0 } if (this.b < 0) { this.b = 0 } } else { this.r = 0 this.g = 0 this.b = 0 } } normalize() { if (this.r > 255) { this.r = 255 } if (this.g > 255) { this.g = 255 } if (this.b > 255) { this.b = 255 } if (this.r < 0) { this.r = 0 } if (this.g < 0) { this.g = 0 } if (this.b < 0) { this.b = 0 } } randomLight() { var letters = '0123456789ABCDEF'; var hash = '#'; for (var i = 0; i < 6; i++) { hash += letters[(Math.floor(Math.random() * 12) + 4)]; } var color = new Color(hash, 55 + Math.random() * 200, 55 + Math.random() * 200, 55 + Math.random() * 200) return color; } randomDark() { var letters = '0123456789ABCDEF'; var hash = '#'; for (var i = 0; i < 6; i++) { hash += letters[(Math.floor(Math.random() * 12))]; } var color = new Color(hash, Math.random() * 200, Math.random() * 200, Math.random() * 200) return color; } random() { var letters = '0123456789ABCDEF'; var hash = '#'; for (var i = 0; i < 6; i++) { hash += letters[(Math.floor(Math.random() * 16))]; } var color = new Color(hash, Math.random() * 255, Math.random() * 255, Math.random() * 255) return color; } } class Softbody { //buggy, spins in place constructor(x, y, radius, color, members = 10, memberLength = 5, force = 10, gravity = 0) { this.springs = [] this.pin = new Circle(x, y, radius, color) this.spring = new Spring(x, y, radius, color, this.pin, memberLength, gravity) this.springs.push(this.spring) for (let k = 0; k < members; k++) { this.spring = new Spring(x, y, radius, color, this.spring.anchor, memberLength, gravity) if (k < members - 1) { this.springs.push(this.spring) } else { this.spring.anchor = this.pin this.springs.push(this.spring) } } this.forceConstant = force this.centroid = new Point(0, 0) } circularize() { this.xpoint = 0 this.ypoint = 0 for (let s = 0; s < this.springs.length; s++) { this.xpoint += (this.springs[s].anchor.x / this.springs.length) this.ypoint += (this.springs[s].anchor.y / this.springs.length) } this.centroid.x = this.xpoint this.centroid.y = this.ypoint this.angle = 0 this.angleIncrement = (Math.PI * 2) / this.springs.length for (let t = 0; t < this.springs.length; t++) { this.springs[t].body.x = this.centroid.x + (Math.cos(this.angle) * this.forceConstant) this.springs[t].body.y = this.centroid.y + (Math.sin(this.angle) * this.forceConstant) this.angle += this.angleIncrement } } balance() { for (let s = this.springs.length - 1; s >= 0; s--) { this.springs[s].balance() } this.xpoint = 0 this.ypoint = 0 for (let s = 0; s < this.springs.length; s++) { this.xpoint += (this.springs[s].anchor.x / this.springs.length) this.ypoint += (this.springs[s].anchor.y / this.springs.length) } this.centroid.x = this.xpoint this.centroid.y = this.ypoint for (let s = 0; s < this.springs.length; s++) { this.link = new Line(this.centroid.x, this.centroid.y, this.springs[s].anchor.x, this.springs[s].anchor.y, 0, "transparent") if (this.link.hypotenuse() != 0) { this.springs[s].anchor.xmom += (((this.springs[s].anchor.x - this.centroid.x) / (this.link.hypotenuse()))) * this.forceConstant this.springs[s].anchor.ymom += (((this.springs[s].anchor.y - this.centroid.y) / (this.link.hypotenuse()))) * this.forceConstant } } for (let s = 0; s < this.springs.length; s++) { this.springs[s].move() } for (let s = 0; s < this.springs.length; s++) { this.springs[s].draw() } } } class Observer { constructor(x, y, radius, color, range = 100, rays = 10, angle = (Math.PI * .125)) { this.body = new Circle(x, y, radius, color) this.color = color this.ray = [] this.rayrange = range this.globalangle = Math.PI this.gapangle = angle this.currentangle = 0 this.obstacles = [] this.raymake = rays } beam() { this.currentangle = this.gapangle / 2 for (let k = 0; k < this.raymake; k++) { this.currentangle += (this.gapangle / Math.ceil(this.raymake / 2)) let ray = new Circle(this.body.x, this.body.y, 1, "white", (((Math.cos(this.globalangle + this.currentangle)))), (((Math.sin(this.globalangle + this.currentangle))))) ray.collided = 0 ray.lifespan = this.rayrange - 1 this.ray.push(ray) } for (let f = 0; f < this.rayrange; f++) { for (let t = 0; t < this.ray.length; t++) { if (this.ray[t].collided < 1) { this.ray[t].move() for (let q = 0; q < this.obstacles.length; q++) { if (this.obstacles[q].isPointInside(this.ray[t])) { this.ray[t].collided = 1 } } } } } } draw() { this.beam() this.body.draw() canvas_context.lineWidth = 1 canvas_context.fillStyle = this.color canvas_context.strokeStyle = this.color canvas_context.beginPath() canvas_context.moveTo(this.body.x, this.body.y) for (let y = 0; y < this.ray.length; y++) { canvas_context.lineTo(this.ray[y].x, this.ray[y].y) canvas_context.lineTo(this.body.x, this.body.y) } canvas_context.stroke() canvas_context.fill() this.ray = [] } } function setUp(canvas_pass, style = "#000000") { canvas = canvas_pass video_recorder = new CanvasCaptureToWEBM(canvas, 4500000); canvas_context = canvas.getContext('2d'); canvas.style.background = style window.setInterval(function () { for (let t = 0; t < Math.floor(2499/3); t++) { main() } }, 1) document.addEventListener('keydown', (event) => { keysPressed[event.key] = true; }); document.addEventListener('keyup', (event) => { delete keysPressed[event.key]; }); window.addEventListener('pointerdown', e => { FLEX_engine = canvas.getBoundingClientRect(); XS_engine = e.clientX - FLEX_engine.left; YS_engine = e.clientY - FLEX_engine.top; TIP_engine.x = XS_engine TIP_engine.y = YS_engine TIP_engine.body = TIP_engine // example usage: if(object.isPointInside(TIP_engine)){ take action } }); window.addEventListener('pointermove', continued_stimuli); window.addEventListener('pointerup', e => { // window.removeEventListener("pointermove", continued_stimuli); }) function continued_stimuli(e) { FLEX_engine = canvas.getBoundingClientRect(); XS_engine = e.clientX - FLEX_engine.left; YS_engine = e.clientY - FLEX_engine.top; TIP_engine.x = XS_engine TIP_engine.y = YS_engine TIP_engine.body = TIP_engine } } function gamepad_control(object, speed = 1) { // basic control for objects using the controler // console.log(gamepadAPI.axesStatus[1]*gamepadAPI.axesStatus[0]) //debugging if (typeof object.body != 'undefined') { if (typeof (gamepadAPI.axesStatus[1]) != 'undefined') { if (typeof (gamepadAPI.axesStatus[0]) != 'undefined') { object.body.x += (gamepadAPI.axesStatus[0] * speed) object.body.y += (gamepadAPI.axesStatus[1] * speed) } } } else if (typeof object != 'undefined') { if (typeof (gamepadAPI.axesStatus[1]) != 'undefined') { if (typeof (gamepadAPI.axesStatus[0]) != 'undefined') { object.x += (gamepadAPI.axesStatus[0] * speed) object.y += (gamepadAPI.axesStatus[1] * speed) } } } } function control(object, speed = 1) { // basic control for objects if (typeof object.body != 'undefined') { if (keysPressed['w']) { object.body.y -= speed } if (keysPressed['d']) { object.body.x += speed } if (keysPressed['s']) { object.body.y += speed } if (keysPressed['a']) { object.body.x -= speed } } else if (typeof object != 'undefined') { if (keysPressed['w']) { object.y -= speed } if (keysPressed['d']) { object.x += speed } if (keysPressed['s']) { object.y += speed } if (keysPressed['a']) { object.x -= speed } } } function getRandomLightColor() { // random color that will be visible on black background var letters = '0123456789ABCDEF'; var color = '#'; for (var i = 0; i < 6; i++) { color += letters[(Math.floor(Math.random() * 12) + 4)]; } return color; } function getRandomColor() { // random color var letters = '0123456789ABCDEF'; var color = '#'; for (var i = 0; i < 6; i++) { color += letters[(Math.floor(Math.random() * 16) + 0)]; } return color; } function getRandomDarkColor() {// color that will be visible on a black background var letters = '0123456789ABCDEF'; var color = '#'; for (var i = 0; i < 6; i++) { color += letters[(Math.floor(Math.random() * 12))]; } return color; } function castBetween(from, to, granularity = 10, radius = 1) { //creates a sort of beam hitbox between two points, with a granularity (number of members over distance), with a radius defined as well let limit = granularity let shape_array = [] for (let t = 0; t < limit; t++) { let circ = new Circle((from.x * (t / limit)) + (to.x * ((limit - t) / limit)), (from.y * (t / limit)) + (to.y * ((limit - t) / limit)), radius, "red") circ.toRatio = t / limit circ.fromRatio = (limit - t) / limit shape_array.push(circ) } return (new Shape(shape_array)) } function castBetweenPoints(from, to, granularity = 10, radius = 1) { //creates a sort of beam hitbox between two points, with a granularity (number of members over distance), with a radius defined as well let limit = granularity let shape_array = [] for (let t = 0; t < limit; t++) { let circ = new Circle((from.x * (t / limit)) + (to.x * ((limit - t) / limit)), (from.y * (t / limit)) + (to.y * ((limit - t) / limit)), radius, "red") circ.toRatio = t / limit circ.fromRatio = (limit - t) / limit shape_array.push(circ) } return shape_array } class Disang { constructor(dis, ang) { this.dis = dis this.angle = ang } } class BezierHitbox { constructor(x, y, cx, cy, ex, ey, color = "red") { // this function takes a starting x,y, a control point x,y, and a end point x,y this.color = color this.x = x this.y = y this.cx = cx this.cy = cy this.ex = ex this.ey = ey this.metapoint = new Circle((x + cx + ex) / 3, (y + cy + ey) / 3, 3, "#FFFFFF") this.granularity = 100 this.body = [...castBetweenPoints((new Point(this.x, this.y)), (new Point(this.ex, this.ey)), this.granularity, 0)] let angle = (new Line(this.x, this.y, this.ex, this.ey)).angle() this.angles = [] for (let t = 0; t < this.granularity; t++) { this.angles.push(angle) } for (let t = 0; t <= 1; t += 1 / this.granularity) { this.body.push(this.getQuadraticXY(t)) this.angles.push(this.getQuadraticAngle(t)) } this.hitbox = [] for (let t = 0; t < this.body.length; t++) { let link = new LineOP(this.body[t], this.metapoint) let disang = new Disang(link.hypotenuse(), link.angle() + (Math.PI * 2)) this.hitbox.push(disang) } this.constructed = 1 } isPointInside(point) { let link = new LineOP(point, this.metapoint) let angle = (link.angle() + (Math.PI * 2)) let dis = link.hypotenuse() for (let t = 1; t < this.hitbox.length; t++) { if (Math.abs(this.hitbox[t].angle - this.hitbox[t - 1].angle) > 1) { continue } if (angle.between(this.hitbox[t].angle, this.hitbox[t - 1].angle)) { if (dis < (this.hitbox[t].dis + this.hitbox[t - 1].dis) * .5) { return true } } } return false } doesPerimeterTouch(point) { let link = new LineOP(point, this.metapoint) let angle = (link.angle() + (Math.PI * 2)) let dis = link.hypotenuse() for (let t = 1; t < this.hitbox.length; t++) { if (Math.abs(this.hitbox[t].angle - this.hitbox[t - 1].angle) > 1) { continue } if (angle.between(this.hitbox[t].angle, this.hitbox[t - 1].angle)) { if (dis < ((this.hitbox[t].dis + this.hitbox[t - 1].dis) * .5) + point.radius) { return this.angles[t] } } } return false } draw() { this.metapoint.draw() let tline = new Line(this.x, this.y, this.ex, this.ey, this.color, 3) tline.draw() canvas_context.beginPath() this.median = new Point((this.x + this.ex) * .5, (this.y + this.ey) * .5) let angle = (new LineOP(this.median, this.metapoint)).angle() let dis = (new LineOP(this.median, this.metapoint)).hypotenuse() canvas_context.bezierCurveTo(this.x, this.y, this.cx - (Math.cos(angle) * dis * .38), this.cy - (Math.sin(angle) * dis * .38), this.ex, this.ey) canvas_context.fillStyle = this.color canvas_context.strokeStyle = this.color canvas_context.lineWidth = 3 canvas_context.stroke() } getQuadraticXY(t) { return new Point((((1 - t) * (1 - t)) * this.x) + (2 * (1 - t) * t * this.cx) + (t * t * this.ex), (((1 - t) * (1 - t)) * this.y) + (2 * (1 - t) * t * this.cy) + (t * t * this.ey)) } getQuadraticAngle(t) { var dx = 2 * (1 - t) * (this.cx - this.x) + 2 * t * (this.ex - this.cx); var dy = 2 * (1 - t) * (this.cy - this.y) + 2 * t * (this.ey - this.cy); return -Math.atan2(dx, dy) + 0.5 * Math.PI; } } Number.prototype.between = function (a, b, inclusive) { var min = Math.min(a, b), max = Math.max(a, b); return inclusive ? this >= min && this <= max : this > min && this < max; } class Weight { constructor(from, to) { this.value = this.weight() this.from = from this.to = to this.change = 0 this.delta = 1 } valueOf() { return this.value } weight() { return ((Math.random() - .5) * 2) / 1 } setChange(num) { this.change = num } setWeight(num) { this.value = num } } class Perceptron { constructor(inputs) { this.markCount = 0 this.bias = (((Math.random() - .5) * 2) / 1) / 1 this.value = this.bias this.weights = [] this.outputConnections = [] this.inputs = inputs this.error = 0 this.delta = 1 for (let t = 0; t < this.inputs.length; t++) { this.weights.push(this.weight(this.inputs[t])) } this.z = -1 this.change = 0 } setError(error) { this.error = error } setDelta(delta) { this.delta = delta for (let t = 0; t < this.outputConnections.length; t++) { this.outputConnections[t].delta = this.delta } } newIn(inputs) { this.inputs = inputs for (let t = 0; t < this.inputs.length; t++) { this.weights.push(this.weight(this.inputs[t])) } } setBias(bias) { this.bias = bias } setChange(num) { this.change = num } weight(link) { let weight = new Weight(link, this) if (typeof link != "number") { link.outputConnections.push(weight) } return weight } valueOf() { return this.value } compute(inputs = this.inputs, dr = 0) { this.inputs = inputs this.value = this.bias for (let t = 0; t < inputs.length; t++) { if (t > this.weights.length - 1) { this.weights.push(this.weight()) this.value += (inputs[t].valueOf() * this.weights[t].valueOf()) } else { this.value += (inputs[t].valueOf() * this.weights[t].valueOf()) } } this.sig() // this.gauss() if (Math.random() < .05 && dr == 1) { // return 0 //Math.random() //dropout } return this.value } relu() { this.value = Math.min(Math.max(this.value, perc.reluslime), 1) } sig() { this.value = 1 / (1 + (Math.pow(Math.E, -this.value))) } gauss() { this.value = Math.min(Math.max(Math.abs(this.value), 0.00000001), 1) } } class Network { constructor(inputs, layerSetupArray) { this.check = 0 this.error = 0 this.reluslime = .00001 this.momentum = 0.001551565 this.learningRate = 0.001551565 this.setup = layerSetupArray this.inputs = inputs this.structure = [] this.ztructure = [] this.outputs = [] this.nodeCount = 0 this.markCount = 0 for (let t = 0; t < layerSetupArray.length; t++) { let scaffold = [] this.nodeCount += layerSetupArray[t] for (let k = 0; k < layerSetupArray[t]; k++) { let cept if (t == 0) { cept = new Perceptron(this.inputs) cept.markCount = this.markCount this.markCount++ } else { cept = new Perceptron(this.structure[t - 1]) cept.markCount = this.markCount this.markCount++ } scaffold.push(cept) } this.structure.push(scaffold) } for (let t = 0; t < inputs.length; t++) { inputs[t].outputConnections = [] } this.clusters = [] for (let t = 0; t < this.nodeCount; t++) { let cluster = [] for (let k = 0; k < Math.floor(Math.random() * this.nodeCount * 30) + 30; k++) { let index = new Point(-1, -1) if (Math.random() < .9) { let x = Math.floor(Math.random() * layerSetupArray.length) let y = Math.floor(Math.random() * layerSetupArray[x]) index.x = x index.y = y if (!cluster.includes(this.structure[index.x][index.y])) { cluster.push(this.structure[index.x][index.y]) } } else { let x = Math.floor(Math.random() * inputs.length) index.x = x if (!cluster.includes(inputs[index.x])) { let node = inputs[index.x] node.value = inputs[index.x].valueOf() node.flag = index.x node.data = 1 cluster.push(node) } } } this.clusters.push(cluster) } this.ztructure = [[]] for (let t = 0; t < this.clusters.length; t++) { let s = 0 let f = t while (this.structure[s].length <= f) { f -= this.structure[s].length s++ if (s > this.structure.length) { break } } let g = f let cetp = this.structure[s][g] /// new Perceptron(this.clusters[t]) console.log(cetp) cetp.weights = [] cetp.outputConnections = [] } for (let t = 0; t < this.clusters.length; t++) { let s = 0 let f = t while (this.structure[s].length <= f) { // console.log(f, this.structure[s]) f -= this.structure[s].length s++ if (s > this.structure.length) { break } } let g = f // console.log(s, g) let cetp = this.structure[s][g] /// new Perceptron(this.clusters[t]) // console.log(cetp) cetp.weights = [] // cetp.outputConnections = [] cetp.inputs = [] cetp.newIn(this.clusters[t]) cetp.markCount = t cetp.compute(this.clusters[t]) this.ztructure[0][cetp.markCount] = cetp } this.lastinputs = [...this.inputs] this.lastgoals = [...this.lastinputs] this.swap = [] } zalculateDeltasSigmoid(goals) { for (let t = this.ztructure.length - 1; t >= 0; t--) { const layer = this.ztructure[t] for (let k = layer.length - 1; k >= 0; k--) { const perceptron = layer[k] let output = perceptron.valueOf() let error = 0 if (layer.length-3 <= k) { error = goals[k] - output; } else { for (let k = 0; k < perceptron.outputConnections.length; k++) { const currentConnection = perceptron.outputConnections[k] error += currentConnection.to.delta * currentConnection.valueOf() let j = 0 // while(currentConnection.to.outputConnections.length > 0){ // j++ // if(j > 1000){ // break // } // } } } perceptron.setError(error) this.error += Math.abs(error) perceptron.setDelta(error * output * (1 - output)) } } } zadjustWeights() { for (let t = 0; t < this.ztructure.length; t++) { const layer = this.ztructure[t] for (let k = 0; k < layer.length; k++) { const perceptron = layer[k] let delta = perceptron.delta for (let i = 0; i < perceptron.weights.length; i++) { const connection = perceptron.weights[i] let change = connection.change change = (this.learningRate * delta * perceptron.inputs[i].valueOf()) + (this.momentum * change); connection.setChange(change) connection.setWeight(connection.valueOf() + change) } perceptron.setBias(perceptron.bias + (this.learningRate * delta)) } } } zompute(inputs = this.inputs) { this.inputs = [...inputs] for (let t = 0; t < this.clusters.length; t++) { for (let k = 0; k < this.clusters[t].length; k++) { if (this.clusters[t][k].data == 1) { this.clusters[t][k].value = this.inputs[this.clusters[t][k].flag] } } } for (let t = 0; t < this.ztructure.length; t++) { for (let k = 0; k < this.ztructure[t].length; k++) { if (t == 0) { this.ztructure[0][k].compute(this.clusters[this.ztructure[0][k].markCount], 1) } else { this.ztructure[0][k].compute(this.clusters[this.ztructure[0][k].markCount], 1) } } } this.outputs = [] this.dataoutputs = [] for (let t = 0; t < this.ztructure[this.ztructure.length - 1].length; t++) { this.outputs.push(this.ztructure[this.ztructure.length - 1][t].valueOf()) this.dataoutputs.push(new Data(this.ztructure[this.ztructure.length - 1][t].valueOf())) } if (keysPressed['k']) { console.log(this) } } compute(inputs = this.inputs) { this.inputs = [...inputs] for (let t = 0; t < this.structure.length; t++) { for (let k = 0; k < this.structure[t].length; k++) { if (t == 0) { this.structure[t][k].compute(this.inputs, 1) } else { if (t != this.structure.length - 1) { this.structure[t][k].compute(this.structure[t - 1], 1) } else { this.structure[t][k].compute(this.structure[t - 1], 0) } } } } this.outputs = [] this.dataoutputs = [] for (let t = 0; t < this.structure[this.structure.length - 1].length; t++) { this.outputs.push(this.structure[this.structure.length - 1][t].valueOf()) this.dataoutputs.push(new Data(this.structure[this.structure.length - 1][t].valueOf())) } } } class Data { constructor(input = -100) { this.delta = 0 this.outputConnections = [] if (input == -100) { this.value = this.weight() } else { this.value = input } } valueOf() { return this.value } weight() { return Math.random() - .5 } } let setup_canvas = document.getElementById('canvas') //getting canvas from document setUp(setup_canvas) let inputs = [] for (let t = 0; t < 44; t++) { inputs.push(new Data(0)) } let net = new Network(inputs, [97, 3]) let count = 0 let pix = canvas_context.getImageData(0, 0, 50, 50) let worlderror = 0 let x = 0 let y = 0 let cgo = 0 let c = 1 let arr = [] for (let t = 0; t < 50; t++) { for (let k = 0; k < 50; k++) { arr.push([t, k]) } } // arr.sort((a, b) => Math.random() > .5 ? 1 : -1) // arr.sort((a, b) => Math.random() > .5 ? 1 : -1) // arr.sort((a, b) => Math.random() > .5 ? 1 : -1) function main() { if(keysPressed['a']){ arr = [] for (let t = 0; t < 50; t++) { for (let k = 0; k < 50; k++) { arr.push([t, k]) } } } if(keysPressed['o']){ arr.sort((a, b) => Math.random() > .5 ? 1 : -1) arr.sort((a, b) => Math.random() > .5 ? 1 : -1) arr.sort((a, b) => Math.random() > .5 ? 1 : -1) } if (keysPressed['n']) { net = new Network(inputs, [33, 33, 33, 3]) return } canvas_context.clearRect(0, 0, canvas.width * .5, canvas.height) // refreshes the image gamepadAPI.update() //checks for button presses/stick movement on the connected controller) // game code goes here canvas_context.drawImage(pom, 0, 0, pom.width, pom.width, 0, 0, 50, 50) // return if (keysPressed['e']) { count += 1000 } if (cgo < 1000 || keysPressed[' ']) { pix = canvas_context.getImageData(0, 0, 50, 50) cgo++ } if (Math.random() < .01) { cgo = 0 } let r = Math.random() let g = Math.random() let b = Math.random() if (keysPressed['h']) { r = 1 g = 1 b = 1 } x++ if (x > 50) { x = 0 y++ if (y > 50) { y = 0 } } if (keysPressed['l']) { x = Math.floor(Math.random() * 50) y = Math.floor(Math.random() * 50) } c++ x = arr[c % 2500][0]//Math.floor(x*1) y = arr[c % 2500][1]// Math.floor(y*1) let kinputs = [] for (let l = .1; l < 1.1; l += .1) { kinputs.push(new Data((Math.cos((((x - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.sin((((y - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.sin((((x - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.cos((((y - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) } net.zompute(kinputs) canvas_context.fillStyle = `rgb(${net.outputs[net.outputs.length - 3] * 255}, ${net.outputs[net.outputs.length - 2] * 255}, ${net.outputs[net.outputs.length - 1] * 255})` canvas_context.fillRect(50 + x, y, 1, 1) // x = arr[t][0]//Math.floor(x*1) // y = arr[t][1]// Math.floor(y*1) let index = Math.floor((x + (y * 50)) * 4) r = (pix.data[index] / 255)*(pix.data[index+3]/255)//x/50 //(y>25?1:0) // ((Math.cos(x/3)*.5)+.5)//pix.data[index]/255// g = (pix.data[index + 1] / 255)*(pix.data[index+3]/255)//(x>25?1:0) // ((Math.cos(x/3)*.5)+.5)//pix.data[index+1]/255 b = (pix.data[index + 2] / 255)*(pix.data[index+3]/255)//(x>25?1:0) // ((Math.cos(x/3)*.5)+.5)//pix.data[index+2]/255 if (keysPressed['h']) { canvas_context.fillStyle = `rgb(${net.outputs[net.outputs.length - 3] * 255}, ${net.outputs[net.outputs.length - 2] * 255}, ${net.outputs[net.outputs.length - 1] * 255})` canvas_context.fillRect(0, 0, canvas.width * .5, canvas.height) } else { let inputs = [] for (let t = 0; t < net.ztructure[0].length - 3; t++) { // if (Math.random() > .05) { inputs.push(new Data(net.ztructure[0][t].valueOf())) // } else { // inputs.push(new Data(Math.random())) // } } // inputs.push(new Data(((Math.sign(r-net.outputs[net.outputs.length-3])*.5)+.5)*2)) // inputs.push(new Data(((Math.sign(g-net.outputs[net.outputs.length-2])*.5)+.5)*2)) // inputs.push(new Data(((Math.sign(b-net.outputs[net.outputs.length-1])*.5)+.5)*2)) inputs.push(new Data(r)) inputs.push(new Data(g)) inputs.push(new Data(b)) if (!keysPressed['q']) { net.zalculateDeltasSigmoid(inputs) net.zadjustWeights() } canvas_context.fillStyle = `rgb(${net.outputs[net.outputs.length - 3] * 255}, ${net.outputs[net.outputs.length - 2] * 255}, ${net.outputs[net.outputs.length - 1] * 255})` count++ if (count > 25000) { count = 0 worlderror = 0 // if(keysPressed['l']){ // arr.sort((a, b) => Math.random() > .5 ? 1 : -1) // } // for (let t = 0; t < arr.length; t++) { for (let t = 0; t < arr.length; t++) { // for (let t = 0; t < 50; t++) { // for (let k = 0; k < 50; k++) { let xz = arr[t][0] let yx = arr[t][1] let kinputs = [] for (let l = .1; l < 1.1; l += .1) { kinputs.push(new Data((Math.cos((((xz - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.sin((((yx - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.sin((((xz - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.cos((((yx - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) } net.zompute(kinputs) canvas_context.fillStyle = `rgb(${net.outputs[net.outputs.length - 3] * 255}, ${net.outputs[net.outputs.length - 2] * 255}, ${net.outputs[net.outputs.length - 1] * 255})` let index = Math.floor((xz + (yx * 50)) * 4) r = pix.data[index] / 255 g = pix.data[index + 1] / 255 b = pix.data[index + 2] / 255 worlderror += Math.abs(net.outputs[net.outputs.length - 3] - r) worlderror += Math.abs(net.outputs[net.outputs.length - 2] - g) worlderror += Math.abs(net.outputs[net.outputs.length - 1] - b) canvas_context.fillRect(50 + xz, yx, 1, 1) } console.log(worlderror) } } } }) // let g = {"ChatID":"3,6,2","Dialogue":[{"ID":3,"Says":"Bad morning"}, {"ID":6,"Says":"Bad morning to you as well"}, {"ID":3,"Says":"Fuck off!"}], "DependsOn":["12,7,2", "3,6,1"]}A !ȹȹh`A A A A A A A ;A LA A A TmA 4`A A A !S*pA 4`iA @ A A A A A A A i0gg`A A BZA 4`A A !4*@A 4`8A @@ @@A A A A A A A lП0A A *<A 4`QA A !* ;A 4`XnA @ A A A A A A A lПA A *<A 4`QA A !*/A 4`sA @ A A A A A A A lП@A A *<A 4`QA A !*CA 4`A 0divide(vect) { return new Vector(this.object, this.xmom / vect.xmom, this.ymom / vect.ymom) //be careful with this, I don't think this is right }A s%@ЮVA Ȯ@A *" !0iA A A A A A 5A  -v+e$aaaaa[]CҴiӴiԴiCCC[5[ [C"[CA CA CA CA CA CA CA"C)CCC)pdraw() { let dummy = new Point(this.object.x + this.xmom, this.object.y + this.ymom) let link = new LineOP(this.object, dummy, "#FFFFFF", 1) link.draw() }A sclass Vector { // vector math and physics if you prefer this over vector components on circles constructor(object = (new Point(0, 0)), xmom = 0, ymom = 0) { this.xmom = xmom this.ymom = ymom this.object = object } isToward(point) { let link = new LineOP(this.object, point) let dis1 = link.squareDistance() let dummy = new Point(this.object.x + this.xmom, this.object.y + this.ymom) let link2 = new LineOP(dummy, point) let dis2 = link2.squareDistance() if (dis2 < dis1) { return true } else { return false } } rotate(angleGoal) { let link = new Line(this.xmom, this.ymom, 0, 0) let length = link.hypotenuse() let x = (length * Math.cos(angleGoal)) let y = (length * Math.sin(angleGoal)) this.xmom = x this.ymom = y } magnitude() { return (new Line(this.xmom, this.ymom, 0, 0)).hypotenuse() } normalize(size = 1) { let magnitude = this.magnitude() this.xmom /= magnitude this.ymom /= magnitude this.xmom *= size this.ymom *= size } multiply(vect) { let point = new Point(0, 0) let end = new Point(this.xmom + vect.xmom, this.ymom + vect.ymom) return point.pointDistance(end) } add(vect) { return new Vector(this.object, this.xmom + vect.xmom, this.ymom + vect.ymom) } subtract(vect) { return new Vector(this.object, this.xmom - vect.xmom, this.ymom - vect.ymom) } divide(vect) { return new Vector(this.object, this.xmom / vect.xmom, this.ymom / vect.ymom) //be careful with this, I don't think this is right } draw() { let dummy = new Point(this.object.x + this.xmom, this.object.y + this.ymom) let link = new LineOP(this.object, dummy, "#FFFFFF", 1) link.draw() } }A zxBA ȹA @A )* 0A AFƵCAFƵCabATAbGBACAbGBACAbGB$bc)qXYAijeAGAiBҞCeBGAiBҝCe_p N'N']b5X Bh(A XA @A *^@ A TAMBACAMB$)iA#=B8A A @A *J`_A A 0A abAoAbGAFMAbGBAbGACAbGBAbGACbc)CB(+A A @A *.TA bŶ8B8AA@$C@)#{@0unmoveh/A A \VBA ȿؿ@A *; Ў1A  |eACeACeB$ASeBAAA8A $eACeB$eB$)AnHXA eAC!``AiP@" ~-"`Rectangle# [WstrokeWidth# vJintersects.#=Rline CBzAЂ  @A m**0  A & aA鶞bAbGB$bcCCabAaBAbGAMAA雝CBAbGAMAA雝CbcAACAACabAi%eAAAAAbGAMAAbGAMA!CUAUB$iAbGAMBAbGAMAAAAUB$ACAbGAMBAbGAMAAAAUB$ACbcabAAbGB$bcabAAbGB$bc)` @` @` @` @` @` @` @p @` @` @` @`0P0` @` P0` @` @`0`0Pp0`0Pp P0Pp@p @` P @`0`@p0`00P`  @ `  @ `    p    @ ` @`0P` @p` @` #$@$`$(p**(*''.p%p/.@'--./'`''% @`` %P% p&&&&45 5@5`55@43@AP@@Bp@B@BBC0C@H HHH`HPIIIJJPCpCCIJ J@J`JJKJ0K`KKKKL LPLLLLL M@M`MMMMMN NONPPRRS S@SOYNZZXp[@Y`Y[ __`Pj0k0j())`3t ) h`su0PІ`@0Pp` Е0PpЖ @` @`Pp @0Pp0P`@`7@7877<<0l`o0oPooooPpplppnl mmn@@  Pp@llpP0 @`@p  P06P606P8999: :@: <<<PPPRRSRYZ^`_`4ab`dgpggl@mty^yyz|0|Є0Pp0PpІpy@`0 Џ@Ж P@` jp a`aPPpcc0d0 @@Ь`0P@p 0(`EQ0]]'P )]' P@Y)` @`` @``@%&Pp$ %<%<p_0(%SSSpSHT^ TPz|0| `(((`yyyz0P((yy`0`pp @`  `@PBBAC0CBB0BPB,`/@/. MXXX:`;;;0stu12P2o0o11n0~`Ќ  еКp @p@P`0Ppp>; >?< ?@?PUp0`[[P\acegikmoqsuwy{}   !#%')+-/13579;=?ACEGIKMOQSA _BA x@Aܪ *VA  8AiAAeAABCAAeAABCAAABCAAABCBACBACBACBAC) # D{5F{5FX5FX5 ]]]]A hB@~A 8@A -*% A  aeAeACeACeB$eBAA$eBAA$eB$ebC)XiA̯ 1X$CICVCC0draw() { let linewidthstorage = canvas_context.lineWidth canvas_context.strokeStyle = this.color canvas_context.lineWidth = this.width canvas_context.beginPath() canvas_context.moveTo(this.x1, this.y1) canvas_context.lineTo(this.x2, this.y2) canvas_context.stroke() canvas_context.lineWidth = linewidthstorage }A class Line { constructor(x, y, x2, y2, color, width) { this.x1 = x this.y1 = y this.x2 = x2 this.y2 = y2 this.color = color this.width = width } angle() { return Math.atan2(this.y1 - this.y2, this.x1 - this.x2) } squareDistance() { let xdif = this.x1 - this.x2 let ydif = this.y1 - this.y2 let squareDistance = (xdif * xdif) + (ydif * ydif) return squareDistance } hypotenuse() { let xdif = this.x1 - this.x2 let ydif = this.y1 - this.y2 let hypotenuse = (xdif * xdif) + (ydif * ydif) if (hypotenuse < 10000000 - 1) { if (hypotenuse > 1000) { return squaretable[`${Math.round(10 * Math.round((hypotenuse * .1)))}`] } else { return squaretable[`${Math.round(hypotenuse)}`] } } else { return Math.sqrt(hypotenuse) } } draw() { let linewidthstorage = canvas_context.lineWidth canvas_context.strokeStyle = this.color canvas_context.lineWidth = this.width canvas_context.beginPath() canvas_context.moveTo(this.x1, this.y1) canvas_context.lineTo(this.x2, this.y2) canvas_context.stroke() canvas_context.lineWidth = linewidthstorage } }A 38@Aп 7@*H 0@A ǿA A A A A A A A UA  {3v +e$aaaaaaa[d][ ][8A]e!CiC&C[C8AC[C C!&C"[C#)3 ڨyisPointInside }0xkB,A h@A *1 IA VA A A A U v+e$CICVCC)BbA Hx @A 1* Ћ@A A  aaeAiAAiAAMAAMAA!CAB$iAiBAiAAMA雝CAiBAiAAMA雝CAMBAiAAMA雞CAMBAiAAMA雞CAiBAiAAMA雞CAiBAiAAMA雞CAMBAiAAMA雝CAMBAiAAMA雝CAiAAMAAiAAMAAiAiAbCAiAiAbCAMAMAbCAMAMAbC)A AhX.ʵǻ8B8B$ $G@" `a8cheight#`uYxfillRectH~B8Qb8%PQA E8aVAAIAAVA@RA A 88A HHA H|A A A ZEA SA SA ZZA $:A A AVAA TAIAAVAAIAAVAAIAA AVAA AIAY;i< (=k>AVAAIAAVAA BAIAAIAAVAAVAA /AIAY?A AIAA AVAAVAA AIAA AVAA AIAAVAA AIAY@iii(AB)A intersects(line) { console.log(line) var det, gm, lm; det = (this.target.x - this.object.x) * (line.target.y - line.object.y) - (line.target.x - line.object.x) * (this.target.y - this.object.y); if (det === 0) { return false; } else { lm = ((line.target.y - line.object.y) * (line.target.x - this.object.x) + (line.object.x - line.target.x) * (line.target.y - this.object.y)) / det; gm = ((this.object.y - this.target.y) * (line.target.x - this.object.x) + (this.target.x - this.object.x) * (line.target.y - this.object.y)) / det; return (0 < lm && lm < 1) && (0 < gm && gm < 1); } }A lpBhPA HA @A *zx Я A A AA>AA/AAAAAA ( (squareDistance() { let xdif = this.object.x - this.target.x let ydif = this.object.y - this.target.y let squareDistance = (xdif * xdif) + (ydif * ydif) return squareDistance }A sDo@pA B` @*+ 'nwڿA A A A A A A A A A 0 A  !v  +e $aaaaaaaaa[][][][][][\ [C [C [C eӿ!Ci &C [C C C 8A[C [Ca b [ia e AiA A8B A$ AiA A8B A$! AB b $ B ACb c `)Chypotenuse() { let xdif = this.object.x - this.target.x let ydif = this.object.y - this.target.y let hypotenuse = (xdif * xdif) + (ydif * ydif) if (hypotenuse < 10000000 - 1) { if (hypotenuse > 1000) { return squaretable[`${Math.round(10 * Math.round((hypotenuse * .1)))}`] } else { return squaretable[`${Math.round(hypotenuse)}`] } } else { return Math.sqrt(hypotenuse) } }A 3hn@A  @A *f A A A A A A A A A eA  v+e$aaaaaaaa[[][][]CCCC[CCC[C[C[C)angle() { return Math.atan2(this.object.y - this.target.y, this.object.x - this.target.x) }A coNBA hx@A *K&'`A  8AiAiAeAABCAiAeAABCAiAABCAiAABCAiBACAiBAC)AAH]ʵǻ8B8B$$Gʓ@"xmhB0A (@A -*Z PaA  )aeAeACeACeB$eBAIAAIA$eBAVAAVA$eB$ebC)A #`++++5++555$aA  draw() { let linewidthstorage = canvas_context.lineWidth canvas_context.strokeStyle = this.color canvas_context.lineWidth = this.width canvas_context.beginPath() canvas_context.moveTo(this.object.x, this.object.y) canvas_context.lineTo(this.target.x, this.target.y) canvas_context.stroke() canvas_context.lineWidth = linewidthstorage }A # class LineOP { constructor(object, target, color, width) { this.object = object this.target = target this.color = color this.width = width } intersects(line) { console.log(line) var det, gm, lm; det = (this.target.x - this.object.x) * (line.target.y - line.object.y) - (line.target.x - line.object.x) * (this.target.y - this.object.y); if (det === 0) { return false; } else { lm = ((line.target.y - line.object.y) * (line.target.x - this.object.x) + (line.object.x - line.target.x) * (line.target.y - this.object.y)) / det; gm = ((this.object.y - this.target.y) * (line.target.x - this.object.x) + (this.target.x - this.object.x) * (line.target.y - this.object.y)) / det; return (0 < lm && lm < 1) && (0 < gm && gm < 1); } } squareDistance() { let xdif = this.object.x - this.target.x let ydif = this.object.y - this.target.y let squareDistance = (xdif * xdif) + (ydif * ydif) return squareDistance } hypotenuse() { let xdif = this.object.x - this.target.x let ydif = this.object.y - this.target.y let hypotenuse = (xdif * xdif) + (ydif * ydif) if (hypotenuse < 10000000 - 1) { if (hypotenuse > 1000) { return squaretable[`${Math.round(10 * Math.round((hypotenuse * .1)))}`] } else { return squaretable[`${Math.round(hypotenuse)}`] } } else { return Math.sqrt(hypotenuse) } } angle() { return Math.atan2(this.object.y - this.target.y, this.object.x - this.target.x) } draw() { let linewidthstorage = canvas_context.lineWidth canvas_context.strokeStyle = this.color canvas_context.lineWidth = this.width canvas_context.beginPath() canvas_context.moveTo(this.object.x, this.object.y) canvas_context.lineTo(this.target.x, this.target.y) canvas_context.stroke() canvas_context.lineWidth = linewidthstorage } }A̍ QxX|P:Q;RT?T*)h*+a,a-@VATBTCT DT-,h-h,.a/a0EVFTGT0/h01a2a3HVITJT32h34a=a>SVM>=h>?a@aATVPUTVTWTXTWYTXA@hAB8A;ZC\aCaD[Vc\T9]Td^Tg_TiDChDEaFaG`VjaTqbTrcTsdTteTgfTdgT9hTuiTxjTwkT{GFhGHaIaJlV|mTnToTP" TclosePath vIP#C|WD=sides #@"}1friction  A 601237o8)>@CDEFLMPcj|k~|0465pqryz{}  WX\dgiqrstuxw{F9@ABCE;[Y=?:<>DGHJIKULMNOPQRSTVWXZ\ ]^_`abdefcghijklmnsvtuwx&UM     !"#'($%&A Ybmove() { this.x += this.xmom this.y += this.ymom }A 1h A P:Q;R= this.x) { if (point.y >= this.y) { if (point.x <= this.x + this.width) { if (point.y <= this.y + this.height) { return true } } } } return false }AF@Aܱ *X Y`zA GA HA A zGAԲ HIJ0K  %aaaa aa&abbiaeAbbAbbbAbbAbbb!bbbCbbbbCbB b$bcfeb!(# cYCircleA#ij|A>arcAAh8R ST5U9VY@" DcreflectA̶ x2A P:Q;R= this.x) { if (point.y + point.radius >= this.y) { if (point.x - point.radius <= this.x + this.width) { if (point.y - point.radius <= this.y + this.height) { return true } } } } return false }class Rectangle { constructor(x, y, width, height, color, fill = 1, stroke = 0, strokeWidth = 1) { this.x = x this.y = y this.height = height this.width = width this.color = color this.xmom = 0 this.ymom = 0 this.stroke = stroke this.strokeWidth = strokeWidth this.fill = fill } draw() { canvas_context.fillStyle = this.color canvas_context.fillRect(this.x, this.y, this.width, this.height) } move() { this.x += this.xmom this.y += this.ymom } isPointInside(point) { if (point.x >= this.x) { if (point.y >= this.y) { if (point.x <= this.x + this.width) { if (point.y <= this.y + this.height) { return true } } } } return false } doesPerimeterTouch(point) { if (point.x + point.radius >= this.x) { if (point.y + point.radius >= this.y) { if (point.x - point.radius <= this.x + this.width) { if (point.y - point.radius <= this.y + this.height) { return true } } } } return false } }A #Lfletters# bjgErandomDark#VNPhash Qg{a aa&abbi:7P"Oforced bb#ŗzTalphaȭHBH&uA 8&A @A *J z@TA A žCA žCA žCAŵCAŵCAŵC)#ЃAhue(;C`'+A H'X'@A *w@@00ab8B $bc)#z&55555++v5labg:A #DPPolygon##Tinode# Dq5Fq5FN5FN5 vvA # V!WstrokeColor3 ) dmemberLength[3 ۃlcurrentangleA # 6fobstacles#praymake#JG`#000000# N'getContext IPhB)A )A @x)A *7%A @A gA A n8B$((G# 7zinnerShape# hxgnodes 8 A XmP:Q;RT?T@hhaaVTATBTCT@haaVTDTBTCTAT@haaVT@TETF TGhaa!V"T@#TE$TH%TI&TJ'TF(TGha a!)V*TF+TE,T@! h!"a#a$-V.T@/TE0TF1TG2TK3TL4TM5TN6TO7TP$#h$%a&a'8V9TQ:T@;TE'&h'(a)a*T@?TE*)h*+a,a-@VAT<BTRCTSDTT-,h-h,.a/a0EVFTUGTQ0/h01a2a3HVITVJT@32h34a=a>SV>=h>?a@aATVUTFVTGWT@XTWYTXA@hAB8A;ZCYaCaD[V\T9]TZ^T[_T\DChDEaFaG`V aT]bT^cT_dT`eT[fTZgT9hTaiTbjTckTdGFhGHaIaJlV mTenTfoTgpTaJIhJKaLaMqV rT9sTZMLhMN8hBi$O5bO&PaQQbQ,bPBPbN!$bQcQbKbPa&!RSbBj22$TUVWXY&Za[[b[28a\\b\2 bZBPb[b\&$b\c\b[c[)A qA Bdraw() { canvas_context.lineWidth = this.strokeWidth canvas_context.strokeStyle = this.color canvas_context.beginPath(); if (this.radius > 0) { canvas_context.arc(this.x, this.y, this.radius, 0, (Math.PI * 2), true) canvas_context.fillStyle = this.color canvas_context.fill() canvas_context.stroke(); } else { // console.log("The circle is below a radius of 0, and has not been drawn. The circle is:", this) } }class SpringOP { constructor(body, anchor, length, width = 3, color = body.color) { this.body = body this.anchor = anchor this.beam = new LineOP(body, anchor, color, width) this.length = length } balance() { if (this.beam.hypotenuse() < this.length) { this.body.xmom += ((this.body.x - this.anchor.x) / this.length) this.body.ymom += ((this.body.y - this.anchor.y) / this.length) this.anchor.xmom -= ((this.body.x - this.anchor.x) / this.length) this.anchor.ymom -= ((this.body.y - this.anchor.y) / this.length) } else if (this.beam.hypotenuse() > this.length) { this.body.xmom -= (this.body.x - this.anchor.x) / (this.length) this.body.ymom -= (this.body.y - this.anchor.y) / (this.length) this.anchor.xmom += (this.body.x - this.anchor.x) / (this.length) this.anchor.ymom += (this.body.y - this.anchor.y) / (this.length) } let xmomentumaverage = (this.body.xmom + this.anchor.xmom) / 2 let ymomentumaverage = (this.body.ymom + this.anchor.ymom) / 2 this.body.xmom = (this.body.xmom + xmomentumaverage) / 2 this.body.ymom = (this.body.ymom + ymomentumaverage) / 2 this.anchor.xmom = (this.anchor.xmom + xmomentumaverage) / 2 this.anchor.ymom = (this.anchor.ymom + ymomentumaverage) / 2 } draw() { this.beam.draw() } move() { //movement of SpringOP objects should be handled separate from their linkage, to allow for many connections, balance here with this object, move nodes independently } }&B;A x;;@A -*cpA  B$AiB$eCeACeACeB$eBAiAAiA$abAWeBAbGAAbGA$eBAiAAiA$bceB$eB$&C)#*@s#A#+h6SoftbodyattA u A vA A (PZZA i¯A AA %A8Ai°A Ai±A =BC²³´A AA %A8Ai µ A Ai ¶A =BC · ¸¹ A AA Ai ºA Ai»A =BC¼ ½ ¾A AA Ai¿A AiA JBCA BA ACA BA AC)A `Rmove() { if (this.reflect == 1) { if (this.x + this.radius > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.y + this.radius > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.x - this.radius < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.y - this.radius < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.x += this.xmom this.y += this.ymom }A 8BEeA DA @AЉ *!H00mA A AACAACAAAAAAAA ( (8A3 nNfrictiveMove 8QAċ :'.@[vA !pBA A AȌ AҌ @XFXFA H|>A y>A PmA @mAč VA؍ LA pA `A (=ZA iAԎ AA %A8AiA AiA =BCA AA %A8Ai  A Ai A =BC   A AA Ai A AiAБ =BC  A AA AiA AiA JBCA BA ACAԓ BA AC)A Runmove() { if (this.reflect == 1) { if (this.x + this.radius > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.y + this.radius > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.x - this.radius < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.y - this.radius < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.x -= this.xmom this.y -= this.ymom }A YB0OA UN O@N*ebPnwڿ0A 0A   &C8AACAiAACabAiaeAiAA8BA$AiAA8BA$!AB b$BACbcgeACeACeCeB$eBAGAAGA$abA5eBAbGAAbGA$bceBAGAAGA$eB$eB$eB$)A ]l53oxfrictiveunMove EA̢ hAݢ A A A A A A Aͣ A8QQA XFA >A y>A PmA @mAԤ VA LA pA `A (=ZAĥ iA AA %A8AiA AiA =BCA AA %A8Ai  A Ai AЧ =BC   A AA Ai A AiA =BC  A AA AiAѩ AiA JBCA BA˪ ACA BA ACA BA ACA BA AC)A frictiveMove() { if (this.reflect == 1) { if (this.x + this.radius > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.y + this.radius > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.x - this.radius < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.y - this.radius < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.x += this.xmom this.y += this.ymom this.xmom *= this.friction this.ymom *= this.friction }Aܴ XZXZA 8addEventListener DOMContentLoaded eventsquaretabletvideo_recorderrecordingpom&CanvasCaptureToWEBMgamepadAPI canvascanvas_contextkeysPressedFLEX_engineTIP_engineXS_engineYS_engine Point VectorLine LineOPRectangle CirclePolygon Shape SpringSpringOP ColorSoftbodyObserver setUpgamepad_controlcontrol&getRandomLightColorgetRandomColor$getRandomDarkColorcastBetween"castBetweenPoints DisangBezierHitbox WeightPerceptronNetworkDatasetup_canvas inputsnet countpixworlderrorxycgocarrkmainsqrt Imagercpomaoml3.pngsrccontroller turboconnectdisconnect updatebuttonPressedABXYLBRBLeft-TriggerRight-TriggerBack Start" z AfareaXA # { AareaYA`hiabbGAABC@2-oangleIncrement``C]]Aл MY7NY8OY9PY:QY;RY<tY]aZaYaXaWaVaUaTaSaRaPaOaNaKaHaEaBa?a4a1a.a+a(a%a"aaaaaaa a a a a aaaaaaa YaYbikb/B\b$q8Bb$Ibib c bck Y Y 84!Y b6C5k l Lpm Lq„MrLrˆMyLy£MzLz³ML´µ&¶L·&L{¸&L}¹&LºY»Y¼Y½ Y ¾Y ¿ Y Y Y aaVTYYhYaaVT T T T T ThTTTYYhhYaaVTT$T.T/YYhY0aaVBTHTVTYTcTdYYA frictiveunMove() { if (this.reflect == 1) { if (this.x + this.radius > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.y + this.radius > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.x - this.radius < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.y - this.radius < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.xmom /= this.friction this.ymom /= this.friction this.x -= this.xmom this.y -= this.ymom }A AbGB$bcCCabAaBAbGAMAA雝CBAbGAMAA雝CbcAACAACabAi%eAAAAAbGAMAAbGAMA!CUAUB$iAbGAMBAbGAMAAAAUB$ACAbGAMBAbGAMAAAAUB$ACbcabAAbGB$bcabAAbGB$bc)){2isPointInside(point) { this.areaY = point.y - this.y this.areaX = point.x - this.x if (((this.areaX * this.areaX) + (this.areaY * this.areaY)) <= (this.radius * this.radius)) { return true } return false }A X Bj4A jA @A -* &A A 0aaAB$iAiBAiAAMA雝CAiBAiAAMA雝CAMBAiAAMA雞CAMBAiAAMA雞CAB$iAiBAiAAMA雞CAiBAiAAMA雞CAMBAiAAMA雝CAMBAiAAMA雝CAiAAMAAiAAMAAiAiAbCAiAiAbCAMAMAbCAMAMAbC)#k5]vN:v bw:5Sa SdoesPerimeterTouch(point) { this.areaY = point.y - this.y this.areaX = point.x - this.x if (((this.areaX * this.areaX) + (this.areaY * this.areaY)) <= ((this.radius + point.radius) * (this.radius + point.radius))) { return true } return false }class Circle { constructor(x, y, radius, color, xmom = 0, ymom = 0, friction = 1, reflect = 0, strokeWidth = 0, strokeColor = "transparent") { this.x = x this.y = y this.radius = radius this.color = color this.xmom = xmom this.ymom = ymom this.friction = friction this.reflect = reflect this.strokeWidth = strokeWidth this.strokeColor = strokeColor } draw() { canvas_context.lineWidth = this.strokeWidth canvas_context.strokeStyle = this.color canvas_context.beginPath(); if (this.radius > 0) { canvas_context.arc(this.x, this.y, this.radius, 0, (Math.PI * 2), true) canvas_context.fillStyle = this.color canvas_context.fill() canvas_context.stroke(); } else { // console.log("The circle is below a radius of 0, and has not been drawn. The circle is:", this) } } move() { if (this.reflect == 1) { if (this.x + this.radius > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.y + this.radius > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.x - this.radius < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.y - this.radius < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.x += this.xmom this.y += this.ymom } unmove() { if (this.reflect == 1) { if (this.x + this.radius > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.y + this.radius > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.x - this.radius < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.y - this.radius < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.x -= this.xmom this.y -= this.ymom } frictiveMove() { if (this.reflect == 1) { if (this.x + this.radius > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.y + this.radius > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.x - this.radius < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.y - this.radius < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.x += this.xmom this.y += this.ymom this.xmom *= this.friction this.ymom *= this.friction } frictiveunMove() { if (this.reflect == 1) { if (this.x + this.radius > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.y + this.radius > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.x - this.radius < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.y - this.radius < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.xmom /= this.friction this.ymom /= this.friction this.x -= this.xmom this.y -= this.ymom } isPointInside(point) { this.areaY = point.y - this.y this.areaX = point.x - this.x if (((this.areaX * this.areaX) + (this.areaY * this.areaY)) <= (this.radius * this.radius)) { return true } return false } doesPerimeterTouch(point) { this.areaY = point.y - this.y this.areaX = point.x - this.x if (((this.areaX * this.areaX) + (this.areaY * this.areaY)) <= ((this.radius + point.radius) * (this.radius + point.radius))) { return true } return false } }A Cx_@PA h @Ă *xp\A A QA RA SA TAŇ AՇ A QRST000U Z A  0Av <L  {  ?M +e $aaaaaaa[[[ ]a [C C C CQ CR [CS [CT eӝ[ԝ[!CU dCH &e A A!e AS AT! AH"RCie A A AS AT!B$ &CVab AH AVB b$bca b O AiB  BWb $$ AVB  BXb $$b AHc  &CYa b Aika a e Aib G AU! eb B$b B$8A! AYB b $b c  C[)AŎ M@#x]CShapeA a hh/HȹA Ai)G (H$C~CCzCCCCk&C&C&CAȥ ` isPointInside(point) { // rough approximation this.body.radius = this.size - (this.size * .293) if (this.sides <= 2) { return false } this.areaY = point.y - this.body.y this.areaX = point.x - this.body.x if (((this.areaX * this.areaX) + (this.areaY * this.areaY)) <= (this.body.radius * this.body.radius)) { return true } return false }#H(VBPvAЩ H@A *g^ `a A A vA A  ,  ʵǻ'8B8B$ $Gʓe8B$8B$8B$!(8.B0A @(A *FpBrA 58B$(# y@rA # n@gA +# yJrandomLightA 8QAܭ A A A A A A bA a A /A 4`dAد  A A  A !d*K'A 4``&A̰ (=ZA iMA )AiA8AiNA AiOAѱ =BCPQRA )AiA8Ai S A Ai TA =BC U VW A "AiAi XAɳ AiYA =BCZ [ \A "AiAi]AѴ Ai^A JBC_`abA AiBAе ACcA AiBA ACd)Aظ 2move() { if (this.reflect == 1) { if (this.body.x > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.body.y > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.body.x < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.body.y < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.body.x += this.xmom this.body.y += this.ymom }A @gA   @A̿ *U p@A A A A iA 0A A A A ei0A  'v  +e$aaaaaaaa[][][][][we!Cie!CMeAiAAiAAMAAMA[!C[C0m[Cie!CMeAiAAiAAMAAMA[!C[C0[C[C)draw() { for (let t = 0; t < this.shapes.length; t++) { this.shapes[t].draw() } } canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.body.y > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.body.x < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.body.y < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.body.x += this.xmom this.body.y += this.ymom } draw() { this.nodes = [] this.angleIncrement = (Math.PI * 2) / this.sides this.body.radius = this.size - (this.size * .293) for (let t = 0; t < this.sides; t++) { let node = new Circle(this.body.x + (this.size * (Math.cos(this.angle))), this.body.y + (this.size * (Math.sin(this.angle))), 0, "transparent") this.nodes.push(node) this.angle += this.angleIncrement } canvas_context.strokeStyle = this.color canvas_context.fillStyle = this.color canvas_context.lineWidth = 0 canvas_context.beginPath() canvas_context.moveTo(this.nodes[0].x, this.nodes[0].y) for (let t = 1; t < this.nodes.length; t++) { canvas_context.lineTo(this.nodes[t].x, this.nodes[t].y) } canvas_context.lineTo(this.nodes[0].x, this.nodes[0].y) canvas_context.fill() canvas_context.stroke() canvas_context.closePath() } }A (A 0A FAA0ik”A A0GB$i• (–—0 ?eBeAeA$@eBz$B"%ptoRatioA O#hUmixIn#xj|AarrSX?A 8 qA  Q((AԹ GxA f5A fA Y4xA =(AԺ 0A FAA0ik¼A (A0GAFi½A A0GBA "A0GAC¾A A0GBA̼ cA0GAC¿0DQbalance @A X@A *PkA dk0|0 | 0A  N a Ak&RCkabAtabAbGSAbGbGA 1AbGbGAkAbGbGAGC@bcbcabAiabAbGwb4AGbGBuAAGbGAlG$2AGbGBuAAGbGAlG$bczbcX&C&CabAA鶞GoAB AA鶞GbGB9$$AB eAA鶞GbGB9$!$bc{e|G8B$)a bAG1hA GC02^yNxmomentumaverage0hhA X|da=A ~KA YA gA A 'RA 1A [[[[[i\i[i\0[i\[i\iiA 5!CiA 5!CMA A AiAA AiAA AMAA 'AMA!CA *0C0kA iCiA 5!CMA A AiAA AiAA AMAA 'AMA!CA %0C0A CA C)A @<ppA A A A A A A i@0AĀ AЀ A qA 4`A A A A !p* A 4`04A Bdraw() { this.beam.draw() }#pgreenA # ZbaseColorȼB9A A @A !*1eA:0yMA Z8B8B8BA@$$$C@) NP88AЄ addEventListener DOMContentLoaded eventsquaretabletvideo_recorderrecordingpom&CanvasCaptureToWEBMgamepadAPI canvascanvas_contextkeysPressedFLEX_engineTIP_engineXS_engineYS_engine Point VectorLine LineOPRectangle CirclePolygon Shape SpringSpringOP ColorSoftbodyObserver setUpgamepad_controlcontrol&getRandomLightColorgetRandomColor$getRandomDarkColorcastBetween"castBetweenPoints DisangBezierHitbox WeightPerceptronNetworkDatasetup_canvas inputsnet countpixworlderrorxycgocarrkmainsqrt Imagercpomaoml3.pngsrccontroller turboconnectdisconnect updatebuttonPressedABXYLBRBLeft-TriggerRight-TriggerBack StartAxis-LeftAxis-RightDPad-UpDPad-DownDPad-LeftDPad-Right PowerbuttonsbuttonsCachebuttonsStatusaxesStatuspointDistanceisToward rotatemagnitudenormalizemultiplysubtract dividedraw anglesquareDistancehypotenuseintersectsmoveisPointInside$doesPerimeterTouch unmovefrictiveMovefrictiveunMoveinnerShapeisInsideOf0adjustByFromDisplacement,adjustByToDisplacement mixInpushbalancerandomLightrandomDark randomcircularizebeamgetQuadraticXY"getQuadraticAnglebetween weightsetChangesetWeightsetErrorsetDelta newInsetBiascomputerelusig gauss,zalculateDeltasSigmoidzadjustWeightszomputedocumentgetElementByIdgetImageDatabitrateblobCapturesoutputFormatrecordercanvasInput video Record&handleAvailableDatahandleStopStopsaveToDownloads recordstopdownloadcaptureStreamcreateElement stylenonedisplayformatsbalance() { this.beam = new Line(this.body.x, this.body.y, this.anchor.x, this.anchor.y, "yellow", this.width) if (this.beam.hypotenuse() < this.length) { this.body.xmom += (this.body.x - this.anchor.x) / this.length this.body.ymom += (this.body.y - this.anchor.y) / this.length this.anchor.xmom -= (this.body.x - this.anchor.x) / this.length this.anchor.ymom -= (this.body.y - this.anchor.y) / this.length } else { this.body.xmom -= (this.body.x - this.anchor.x) / this.length this.body.ymom -= (this.body.y - this.anchor.y) / this.length this.anchor.xmom += (this.body.x - this.anchor.x) / this.length this.anchor.ymom += (this.body.y - this.anchor.y) / this.length } let xmomentumaverage = (this.body.xmom + this.anchor.xmom) / 2 let ymomentumaverage = (this.body.ymom + this.anchor.ymom) / 2 this.body.xmom = (this.body.xmom + xmomentumaverage) / 2 this.body.ymom = (this.body.ymom + ymomentumaverage) / 2 this.anchor.xmom = (this.anchor.xmom + xmomentumaverage) / 2 this.anchor.ymom = (this.anchor.ymom + ymomentumaverage) / 2 }Xj@hqA  X@A *04iA MAś 0A՛ A A iMA 50A՜  c*v +e$aaaaa[ bA]CiCMe[!CC0)!!&;draw() { this.beam = new Line(this.body.x, this.body.y, this.anchor.x, this.anchor.y, "yellow", this.width) this.beam.draw() this.body.draw() this.anchor.draw() }h+8BXfA (A @A 9*: 0Aՠ ǵCǵCabA[BAbGAMAA雝CBAbGAMAA雝CbcAACAACǵC8AACabAiAbGAiAA8BA$ACAbGAiAA8BA$ACBACbca)Aɣ esmove() { this.anchor.ymom += this.gravity this.anchor.move() }A c class Spring { constructor(x, y, radius, color, body = 0, length = 1, gravity = 0, width = 1) { if (body == 0) { this.body = new Circle(x, y, radius, color) this.anchor = new Circle(x, y, radius, color) this.beam = new Line(this.body.x, this.body.y, this.anchor.x, this.anchor.y, "yellow", width) this.length = length } else { this.body = body this.anchor = new Circle(x, y, radius, color) this.beam = new Line(this.body.x, this.body.y, this.anchor.x, this.anchor.y, "yellow", width) this.length = length } this.gravity = gravity this.width = width } balance() { this.beam = new Line(this.body.x, this.body.y, this.anchor.x, this.anchor.y, "yellow", this.width) if (this.beam.hypotenuse() < this.length) { this.body.xmom += (this.body.x - this.anchor.x) / this.length this.body.ymom += (this.body.y - this.anchor.y) / this.length this.anchor.xmom -= (this.body.x - this.anchor.x) / this.length this.anchor.ymom -= (this.body.y - this.anchor.y) / this.length } else { this.body.xmom -= (this.body.x - this.anchor.x) / this.length this.body.ymom -= (this.body.y - this.anchor.y) / this.length this.anchor.xmom += (this.body.x - this.anchor.x) / this.length this.anchor.ymom += (this.body.y - this.anchor.y) / this.length } let xmomentumaverage = (this.body.xmom + this.anchor.xmom) / 2 let ymomentumaverage = (this.body.ymom + this.anchor.ymom) / 2 this.body.xmom = (this.body.xmom + xmomentumaverage) / 2 this.body.ymom = (this.body.ymom + ymomentumaverage) / 2 this.anchor.xmom = (this.anchor.xmom + xmomentumaverage) / 2 this.anchor.ymom = (this.anchor.ymom + ymomentumaverage) / 2 } draw() { this.beam = new Line(this.body.x, this.body.y, this.anchor.x, this.anchor.y, "yellow", this.width) this.beam.draw() this.body.draw() this.anchor.draw() } move() { this.anchor.ymom += this.gravity this.anchor.move() } }A s(;B`A X @Aܷ 1*@|A 5'0( Aո  A C!abA#iaB!A 8BA#$C!eAiAAiA$8BAA!$8BAA!$!bC%bAC&AB b$bc.abAiabAiAbGA%dAbGB$abA"<A"bGBAbG$AbGC%bcbcobcO)p# &&]5XX&l::]:f]+55X5+55#S{^0Xb:lqgggY6:: #PNAred 3"ZJ0123456789ABCDEFD++g+#Gblue qB!WA ZX @8*7#`0h㈩j;kaj;kakA }A 0A |0 0  | W  0 '0'A &Jv Hj +e$C~CCzCCCCk&C&C&CCClabia&BbGCabbGiab2eAk!cbAlClBlCl6eAbG!cbAlClBlClbB b$bchAB b$bc!abbG&Cobc&CabAia&ab8B8B$A$iwae!8B$ia a 8B8B$$ 8B8B$b G$ bb Cbb CbB AbAGbAG$ibB AbAGbAG$a 8B8B$$ bb CbB bAG$Ra bAG b bAGB9$C@b bACb C bB b $bc^AB b$bc"&&Ca b Aiaaaab AbGb.bAbGcbcbAbAbGbG8Bb$b&Cnb&Cob c VabAiaaaabAbGb.bAbGcbcbAbAbGbGb&Cnb&CkbBsAbG$bbClbBuAbG$AGbAlqbIbc&AkRC&ARC&C)A H('balance() { if (this.beam.hypotenuse() < this.length) { this.body.xmom += ((this.body.x - this.anchor.x) / this.length) this.body.ymom += ((this.body.y - this.anchor.y) / this.length) this.anchor.xmom -= ((this.body.x - this.anchor.x) / this.length) this.anchor.ymom -= ((this.body.y - this.anchor.y) / this.length) } else if (this.beam.hypotenuse() > this.length) { this.body.xmom -= (this.body.x - this.anchor.x) / (this.length) this.body.ymom -= (this.body.y - this.anchor.y) / (this.length) this.anchor.xmom += (this.body.x - this.anchor.x) / (this.length) this.anchor.ymom += (this.body.y - this.anchor.y) / (this.length) } let xmomentumaverage = (this.body.xmom + this.anchor.xmom) / 2 let ymomentumaverage = (this.body.ymom + this.anchor.ymom) / 2 this.body.xmom = (this.body.xmom + xmomentumaverage) / 2 this.body.ymom = (this.body.ymom + ymomentumaverage) / 2 this.anchor.xmom = (this.anchor.xmom + xmomentumaverage) / 2 this.anchor.ymom = (this.anchor.ymom + ymomentumaverage) / 2 }A (V@,dA +,  @A *{ m A A A A A A A A A u|A  0v  (  +e $aaaaaaaa[ ][][ ][] &C e!C e A[[!C AB  A$ab[~ e AAM[[!Cb[ AB  A$+ A ACM AB  A$bc| [C e!C)Aʵǻ8B8B$$G@move() { //movement of SpringOP objects should be handled separate from their linkage, to allow for many connections, balance here with this object, move nodes independently }A xxA A A A A A A A l1@0A A  A 4`"A ! *nA 4``17A QA HA 1(;A XhC@)BsetWeight(num) { this.value = num }A # _}RPerceptron#@.z 3 RoutputConnections0#hinputsA #lIq& S ::555:& # a?eAmarkCount#compute(inputs = this.inputs) { this.inputs = [...inputs] for (let t = 0; t < this.structure.length; t++) { for (let k = 0; k < this.structure[t].length; k++) { if (t == 0) { this.structure[t][k].compute(this.inputs, 1) } else { if (t != this.structure.length - 1) { this.structure[t][k].compute(this.structure[t - 1], 1) } else { this.structure[t][k].compute(this.structure[t - 1], 0) } } } } this.outputs = [] this.dataoutputs = [] for (let t = 0; t < this.structure[this.structure.length - 1].length; t++) { this.outputs.push(this.structure[this.structure.length - 1][t].valueOf()) this.dataoutputs.push(new Data(this.structure[this.structure.length - 1][t].valueOf())) } }A 8a8%   !#$&')*,-/023= >@"AC$DF&GI(JL*MQ,Q[.[/\0\A kA =&kRCk00A AA0iAHHA A A A A A A A >A LA A J^A 4` A A A A ! I*' A 4`pA @r+@:@:A A A A A A A `A P;A A  A 4`A !* PA 4`3A &@2ѻ\getElementByIdA GAB 3 iUmgetImageDataA00Ahh(A x01237o8)>@CDEFLMPcj|k~|0465pqryz{}  WX\dgiqrstuxw{F%@2 wmf(setup_canvas[0AHxmKY5LY6MY7NY8OY9dM@"4xcount) { #6Apix 0 # W0e}worlderror #{~Acgo == -100A xAbGBQ$bcC C abAaB AbGAAA雝C B AbGAAA雝C bcAA CAA CabAi%eAAAAAbGAAAbGAA!CABC$iAbGABAbGAAAAABC$ACAbGABAbGAAAAABC$ACbcabAAbGBE$bcabAAbGB@$bc" lv@ex 3(^HgetQuadraticAngleA #chitbox#bDdisang0P#^t@cx)34cgetQuadraticXY &P#_t@cy/,ȼBhC4A XCA @A *+]nA 8B8BA@8yAz$$C@)#ibangles # mv@ey!= PZZ H|8YA A A AȈ AԈ A݈ A mA a&A uA 4`]A A Å ! ]t*Jz A 4`@TA ((A iLA &CMNA AiOA &CPQA AiRAՌ &CSTA Ai UA &C VW Aʍ Ai XA &C Y Z A Ai [A /C \ ])pR A A vA A A RAď c" qTcentroidQ HHA hMY7NY8OY9PY:QY;RY<tY]aZaYaXaWaVaUaTaSaRaPaOaNaKaHaEaBa?a4a1a.a+a(a%a"aaaaaaa a a a a aaaaaaa YaYbikb/B\b$q8Bb$Ibib c bck Y Y 84!Y b6C5k l Lpm Lq„MrLrˆMyLy£MzLz³ML´µ&¶L·&L{¸&L}¹&LºY»Y¼Y½ Y ¾Y ¿ Y Y Y aaVTYYhYaaVT T T T T ThTTTYYhhYaaVTT$T.T/YYhY0aaVBTHTVTYTcTdYYhYeaaVuTyT…T‘ T’YYhY“aa!V¬"T#T$T%T&T 'T((T)YYhY*a a!)VJ*Td+Tz,T{Y!Y h!Y"|a#a$-V„.T‘/T™0T¡1T©2T±3T¹4T5T6T7T Y$Y#h$Y%a&a'8V9T:T;TY'Y&h'Y(a)a*<V=T>T?TY*Y)h*Y+!a,a-@V]ATfBToCT xDTyY-Y,h-h,Y.za/a0EVœFT¶GT·Y0Y/h0Y1¸a2a3HVITJTY3Y2h3Y4pa=a>SVMuY>Y=h>Y?wa@aATVP¥UTµVTWTXTWYTXYAY@hAYB8A;ZC\aCaD[Vc\T9]Td^Tg_TiYDYChDYEaFaG`VjaTqbTrcTs dTteTgfTdgT9*hTu-iTx0jTw4kT{5YGYFhGYH6aIaJqAIA /A  %>AЦ A֦ P 2 EWforceConstant0#]{springs #6Apin this#FBQPspring.g = # lWXcircularize#8[ypoint normalize() { if (this.r > 255) { this.r = 255 } if (this.g > 255) { this.g = 255 } if (this.b > 255) { this.b = 255 } if (this.r < 0) { this.r = 0 } if (this.g < 0) { this.g = 0 } if (this.b < 0) { this.b = 0 } }A #h+BVvA xVV@Aܬ *pZ Фh A A vA A  ,  ʵǻ'8B8B$$Gʓe8B$8B$8B$!(xBW A WW@A *Acp.A eA2)randomLight() { var letters = '0123456789ABCDEF'; var hash = '#'; for (var i = 0; i < 6; i++) { hash += letters[(Math.floor(Math.random() * 12) + 4)]; } var color = new Color(hash, 55 + Math.random() * 200, 55 + Math.random() * 200, 55 + Math.random() * 200) return color; } UUC8%X9A Xb,A 5A DA 9Aг A A ~A AA A 8f8fA 9A Xb,A 7A DAȵ ;A A A Aܶ ((A Y`  YavYvikb < BB$ $GYcv 1) { this.alpha = 1 } } } if (this.r > 255) { this.r = 255 } if (this.g > 255) { this.g = 255 } if (this.b > 255) { this.b = 255 } if (this.r < 0) { this.r = 0 } if (this.g < 0) { this.g = 0 } if (this.b < 0) { this.b = 0 } } else { this.r = 0 this.g = 0 this.b = 0 } } normalize() { if (this.r > 255) { this.r = 255 } if (this.g > 255) { this.g = 255 } if (this.b > 255) { this.b = 255 } if (this.r < 0) { this.r = 0 } if (this.g < 0) { this.g = 0 } if (this.b < 0) { this.b = 0 } } randomLight() { var letters = '0123456789ABCDEF'; var hash = '#'; for (var i = 0; i < 6; i++) { hash += letters[(Math.floor(Math.random() * 12) + 4)]; } var color = new Color(hash, 55 + Math.random() * 200, 55 + Math.random() * 200, 55 + Math.random() * 200) return color; } randomDark() { var letters = '0123456789ABCDEF'; var hash = '#'; for (var i = 0; i < 6; i++) { hash += letters[(Math.floor(Math.random() * 12))]; } var color = new Color(hash, Math.random() * 200, Math.random() * 200, Math.random() * 200) return color; } random() { var letters = '0123456789ABCDEF'; var hash = '#'; for (var i = 0; i < 6; i++) { hash += letters[(Math.floor(Math.random() * 16))]; } var color = new Color(hash, Math.random() * 255, Math.random() * 255, Math.random() * 255) return color; } }A a<<A [[[[[i \[i\[i \[i\|A &C}A 5!C~A &A $A!CA AB A lA$€||ikA &A NAAM!C‚|i ƒA AB A %A$„k …A AA ACM†A AB A RA$‡ ˆ| = 0; s--) { this.springs[s].balance() } this.xpoint = 0 this.ypoint = 0 for (let s = 0; s < this.springs.length; s++) { this.xpoint += (this.springs[s].anchor.x / this.springs.length) this.ypoint += (this.springs[s].anchor.y / this.springs.length) } this.centroid.x = this.xpoint this.centroid.y = this.ypoint for (let s = 0; s < this.springs.length; s++) { this.link = new Line(this.centroid.x, this.centroid.y, this.springs[s].anchor.x, this.springs[s].anchor.y, 0, "transparent") if (this.link.hypotenuse() != 0) { this.springs[s].anchor.xmom += (((this.springs[s].anchor.x - this.centroid.x) / (this.link.hypotenuse()))) * this.forceConstant this.springs[s].anchor.ymom += (((this.springs[s].anchor.y - this.centroid.y) / (this.link.hypotenuse()))) * this.forceConstant } } for (let s = 0; s < this.springs.length; s++) { this.springs[s].move() } for (let s = 0; s < this.springs.length; s++) { this.springs[s].draw() } }#OGxEObserverA hC 0 @(*+l )`{Gz翚0|A Wk00%& & & 'W&  &  Z R K| Pk  8 o 3 S X T V W bY~ N UaaaaaegGL&fab27ab2 eB bb&$bcbceG+eB$eB$eB$eGee!!!&!f)eBeAeA$eBz$eBeeAeA22$ e5G e f e  eGeB22$f e f 8B$f 8B$8B$8B$eGccce f e 2f e f e 2f eGE8B8B$2$f 8B8B$2$f efee GGf ee GGf &abi&bB e8Be b28A$ !$bB e8Be b28A$ !$bB e8Be b28A$ !$bB e8Be b28A$!$bceBb$eB\eAeA鸞GeAeA鷞GeAeA鶞G$CeB2e e $8Be e 2$e A bGe A bGce A bGe A bGce A bGe A bGceGieB\eAeA鸞GeAeA鷞GeAeA鶞G$CeBeAeA$)a&a b eAG鸞4bB eeAGb GB9$!$b c bB eb!$bB eb!$bB eb!$e(GeBb$eB$eB\eAeA鸞GeAeA鷞GeAeA鶞G$Ce f e aif fa b eiaa a a eb GG eb GG & abi&b B e8Bb b28A$!$b B e8Bb b28A$!$b B e8Bb b28A$!$b B e8Bb b28A$!$bceBb $eB\eAeA鸞GeAeA鷞GeAeA鶞G$C8Bb b 2$e A bGce A bGce A bGce8BeAeA鸞Gb$fe8BeAeA鷞Gb$fe8BeAeA鶞Gb$feB2b b $b c 8Be$)A̶ tion.mjs window addEventListener DOMContentLoaded eventsquaretabletvideo_recorderrecordingpom&CanvasCaptureToWEBMgamepadAPI canvascanvas_contextkeysPressedFLEX_engineTIP_engine[C class Softbody { //buggy, spins in place constructor(x, y, radius, color, members = 10, memberLength = 5, force = 10, gravity = 0) { this.springs = [] this.pin = new Circle(x, y, radius, color) this.spring = new Spring(x, y, radius, color, this.pin, memberLength, gravity) this.springs.push(this.spring) for (let k = 0; k < members; k++) { this.spring = new Spring(x, y, radius, color, this.spring.anchor, memberLength, gravity) if (k < members - 1) { this.springs.push(this.spring) } else { this.spring.anchor = this.pin this.springs.push(this.spring) } } this.forceConstant = force this.centroid = new Point(0, 0) } circularize() { this.xpoint = 0 this.ypoint = 0 for (let s = 0; s < this.springs.length; s++) { this.xpoint += (this.springs[s].anchor.x / this.springs.length) this.ypoint += (this.springs[s].anchor.y / this.springs.length) } this.centroid.x = this.xpoint this.centroid.y = this.ypoint this.angle = 0 this.angleIncrement = (Math.PI * 2) / this.springs.length for (let t = 0; t < this.springs.length; t++) { this.springs[t].body.x = this.centroid.x + (Math.cos(this.angle) * this.forceConstant) this.springs[t].body.y = this.centroid.y + (Math.sin(this.angle) * this.forceConstant) this.angle += this.angleIncrement } } balance() { for (let s = this.springs.length - 1; s >= 0; s--) { this.springs[s].balance() } this.xpoint = 0 this.ypoint = 0 for (let s = 0; s < this.springs.length; s++) { this.xpoint += (this.springs[s].anchor.x / this.springs.length) this.ypoint += (this.springs[s].anchor.y / this.springs.length) } this.centroid.x = this.xpoint this.centroid.y = this.ypoint for (let s = 0; s < this.springs.length; s++) { this.link = new Line(this.centroid.x, this.centroid.y, this.springs[s].anchor.x, this.springs[s].anchor.y, 0, "transparent") if (this.link.hypotenuse() != 0) { this.springs[s].anchor.xmom += (((this.springs[s].anchor.x - this.centroid.x) / (this.link.hypotenuse()))) * this.forceConstant this.springs[s].anchor.ymom += (((this.springs[s].anchor.y - this.centroid.y) / (this.link.hypotenuse()))) * this.forceConstant } } for (let s = 0; s < this.springs.length; s++) { this.springs[s].move() } for (let s = 0; s < this.springs.length; s++) { this.springs[s].draw() } } }A xxA ([[[[[id\[i \[iA\ºA 5!Ci»A C¼A &C½A C¾A AC¿A C A C!A &C"A C#)A @KA A A A A A o)0yA A A A 4`A A  A A !*A 4`,A K ]]PshA0>(@A * `IA ?A I?A  oaaAiVeAGHeAG;AiBeAGҚCAiBeAGҚC)KeAG>eAG1BeAGҚCBeAGҚC)1(;!їFAoB b$0"@setUp# ?Fucanvas_pass36rPVgamepad_control8Hy0#x@/q8f8fA LA M(A ^A sA jA QA A |pA 8A A WA J%A 'EA A n3SA A A O|<=k''A DAik' < =k@A U    A " fwsetInterval#{!glI &O!O!!gO #J[S+main &HWBp A Xh@A *A.A "{eA2 I)axxA PA A '`88A 9C!||A >A#ikA B!A A BA &A#$C!A AiAA "AiA$BA AA A!$BA AA 9A!$!C%A AC&A lAB $|a b Aka a e Ab G A<! eb BC$b BA$8A! A>BPb $b c  C?)Ab!`)('Pfunction () { for (let t = 0; t < Math.floor(2499/3); t++) { main() } }A #8*MkeydownAܟ HA A \Y[i\YX[CkXXAmC@aYb[A0ikbXAnA0iXAnB XBd$$XB@[bGB9$XAnbGB9$C@ k!XB@[bGB9$XAnbGB9$C@"#bck$XBw$&8B$i [ i ( )X"AkeyAܣ u3M5++++550C5bb5Dg5b5+a{P0S(event) => { keysPressed[event.key] = true; }Aܤ #Q:VkeyupA h/A R(event) => { delete keysPressed[event.key]; }A (Aԩ +\H8*f178 D!f8B,-$f 8AHHC.+B/M$FB,1M$FB,3M$+B,4M$+B,;<$+B,=M$)A A _A̭ Aح A A A A A `pA A ZZA 4`Aȯ A A !Y*| A 4`0zA "5AͰ :{{SP# QLpointermove3 Mcontinued_stimuliA9N&&&&#uAtopA '>Cx=DHA @A *H  Aв A vA E  ʵǻ)8B8B$$Gʓ(A qxaeAU!bB$8AbB$abAYi8ape => { FLEX_engine = canvas.getBoundingClientRect(); XS_engine = e.clientX - FLEX_engine.left; YS_engine = e.clientY - FLEX_engine.top; TIP_engine.x = XS_engine TIP_engine.y = YS_engine TIP_engine.body = TIP_engine // example usage: if(object.isPointInside(TIP_engine)){ take action } }# E}pointerup>Ap@(h@A *#j IA ?AŸ I?A  aaAiveAGAiBҞCeBGAiBҝCeGAiBҝCegGxAiBҞC)aeAGBҞCeBGBҝCeGBҝCegGBҞC)se => { // window.removeEventListener("pointermove", continued_stimuli); }Aܻ ((A p^zA !A AԼ A A A A <A `@A A ZZA 4`AȾ A A !Y* A 4`AA AAؿ XA )B*HA <A -`2I?A AhhA HA \Y[AiEieAGEieAGEi[AiBeAG[C[AiBeAG[Ck[EieAGEieARfunction continued_stimuli(e) { FLEX_engine = canvas.getBoundingClientRect(); XS_engine = e.clientX - FLEX_engine.left; YS_engine = e.clientY - FLEX_engine.top; TIP_engine.x = XS_engine TIP_engine.y = YS_engine TIP_engine.body = TIP_engine }A Cfunction setUp(canvas_pass, style = "#000000") { canvas = canvas_pass video_recorder = new CanvasCaptureToWEBM(canvas, 4500000); canvas_context = canvas.getContext('2d'); canvas.style.background = style window.setInterval(function () { for (let t = 0; t < Math.floor(2499/3); t++) { main() } }, 1) document.addEventListener('keydown', (event) => { keysPressed[event.key] = true; }); document.addEventListener('keyup', (event) => { delete keysPressed[event.key]; }); window.addEventListener('pointerdown', e => { FLEX_engine = canvas.getBoundingClientRect(); XS_engine = e.clientX - FLEX_engine.left; YS_engine = e.clientY - FLEX_engine.top; TIP_engine.x = XS_engine TIP_engine.y = YS_engine TIP_engine.body = TIP_engine // example usage: if(object.isPointInside(TIP_engine)){ take action } }); window.addEventListener('pointermove', continued_stimuli); window.addEventListener('pointerup', e => { // window.removeEventListener("pointermove", continued_stimuli); }) function continued_stimuli(e) { FLEX_engine = canvas.getBoundingClientRect(); XS_engine = e.clientX - FLEX_engine.left; YS_engine = e.clientY - FLEX_engine.top; TIP_engine.x = XS_engine TIP_engine.y = YS_engine TIP_engine.body = TIP_engine } }A |A aaaaaa[][][][][][\ [C [C [C eӿ!C &C [CA C C 8A[C [Ca b [ia e AA A8B AA$ AA A8B AA$! ABPb $ BA ACAb c `)!`0II?{{?:#ƘKspeedA aH,A -i?A s`"k@_d# Fshape_arrayCh;E8A @A *P! A A vA   ʵǻ'8B8B$ $Gʓ(eGqYAQAњASAQɷўARAњATAR8B$Np"X0:^:^:^:^:E:E:E:FC # wcontrol3sUPKgetRandomColor0#~@w[I3y[getRandomLightColorA 088f8NP:Q;Rv+e$CNC)bCbmؕB AЊ Aڊ @A *3YA A@( Cfunction getRandomLightColor() { // random color that will be visible on black background var letters = '0123456789ABCDEF'; var color = '#'; for (var i = 0; i < 6; i++) { color += letters[(Math.floor(Math.random() * 12) + 4)]; } return color; }A (A A A A̎ AԎ Aގ DpA EȀ A =QA 4`*NA  A A̐ !N;*HA 4` A A 9A Xb,A 7A DA ;A A A̒ AhA YJ YKvYvikL< BB$$GYMv ?eBeAeA$@eBz$BeBeeAeA22$ De5GiEe f FGe jeGiHeB22$f Ie f JK8B$iLf MN8B$YO8B$YP8B$YQeGiRcScTcUVe f We 2iXf Ye f Ze 2i[f \]^eGi!`8B8B$2$f a8Aȟ 02function getRandomDarkColor() {// color that will be visible on a black background var letters = '0123456789ABCDEF'; var color = '#'; for (var i = 0; i < 6; i++) { color += letters[(Math.floor(Math.random() * 12))]; } return color; }A c@A X@A *02p2kA Dk0|0 A  Na Ak&RCkabAiabAbGib#AbGbGBuAk$_bA鶞)AbGbGBuAbG$'AbGbGBuAbG$bc[bc:&C&CabAA鶞GoAB AA鶞GbGB9$$AB eAA鶞GbGB9$!$bc{)!`xmA %8 "QCDisangA ;#?S?q3: :AU N&&&&00HoA /0<1Q2[3e5p6~78;<>?@BDE)G?HUI]KoLuNOPQRSTVWXYZ[^`a8c@dRedfig{hijJklmop/uJvrwxyz@{a|e}j~< ( N |    Aخ function castBetween(from, to, granularity = 10, radius = 1) { //creates a sort of beam hitbox between two points, with a granularity (number of members over distance), with a radius defined as well let limit = granularity let shape_array = [] for (let t = 0; t < limit; t++) { let circ = new Circle((from.x * (t / limit)) + (to.x * ((limit - t) / limit)), (from.y * (t / limit)) + (to.y * ((limit - t) / limit)), radius, "red") circ.toRatio = t / limit circ.fromRatio = (limit - t) / limit shape_array.push(circ) } return (new Shape(shape_array)) }A TBh A HA @A *:02}Aմ A 4C)BdAkYB;A A @A *`0fA 0A CfabAo AobGAfCfbc)A8>X$a[id\@2 :G6BezierHitboxr0# ͋A;disAط  Qh\;5 : !.  6 ?S+++ +;"-RY<P" odXmetapoint#Qf|A3ang[1 A iR&fab2i:ab2 eB bb&$bcbceG+eB$eB$eB$eGee!!!&!f)eBeAeA$eBz$eBeeAeA22$ e5G e f e  eGeB22$f e f 8B$f 8B$8B$8B$eGccce f e 2f e f e 2f eGE8B8B$2$f 8B8B$2$f efee GGf ee GGf &abi&bB e8Be b28A$ !$bB e8Be b28A$ !$bB e8Be b28A$ !$bB e8Be b28A$!$bceBb$eB\eAeA鸞GeAeA鷞GeAeA鶞G$CeB20function castBetweenPoints(from, to, granularity = 10, radius = 1) { //creates a sort of beam hitbox between two points, with a granularity (number of members over distance), with a radius defined as well let limit = granularity let shape_array = [] for (let t = 0; t < limit; t++) { let circ = new Circle((from.x * (t / limit)) + (to.x * ((limit - t) / limit)), (from.y * (t / limit)) + (to.y * ((limit - t) / limit)), radius, "red") circ.toRatio = t / limit circ.fromRatio = (limit - t) / limit shape_array.push(circ) } return shape_array }(HsA )8B$)^u_p[ ` `@p`` ` ` ` ` `[0*+,-./01237o8)>@CDEFLMPcj|k~|046class Disang { constructor(dis, ang) { this.dis = dis this.angle = ang } }A )8%8%6h8YZ1A &237A o8    Zv Zv  Zv  Zv ZvZvZv Zv#"Zv&%Zv)(Zv,+Zv/.Zv21)A K>A 5L@A 6MCA 7NDA 8OEA 9PFA :QLA ;RM Zv!=M4P"Zv#@P?c$Zv%CcBj&Zv'FjE|(Zv)I|H*Zv+LKNkO0,ZPRSTUVW~XY0.Z|0[0A <tA !"UhB+mA +A @+A *0Y`[A 0A `A aA A ˷ўAQAњASAQɷўARAњATAR8B$8A(ASAT$a88 AkCkAmC@abibAn鶞An(`" ݛIconstructedRC@-A 0-A @(-A "* nkA vA kvA 0A aa AkCkAmC@abibAn鶞GAnB Bd$$B@bGB9$AnbGB9$C@-B@bGB9$AnbGB9$C@bckBw$8B$ҶA@(A#RsQmedian$ؕ(zB(/ A /A @A *8B`uhA A Ce)$#dtline #G/c.between#:N??䏏`II0:B$  CPQ //A hL&fab27ab2 eBPbb&$bcbcetG+eBu$eBu$eBu$evGee!!!&!f)eBweAeA$eB!$eBxeeAeA22$ e'G e f e  eyGeBj22$f e f 8BT$f 8BT$8BT$8BT$ezGccce f e 2f e f e 2f eqGE8B8BT$2$f 8B8BT$2$f efee GGf ee GGf &abi&bBPe8Be b28A$ !$bBPe8Be b28A$ !$bBPe8Be b28A$ !$bBPe8Be b28A$!$bceBgb$e{B\eAaeAa鸞G|eAaeAa鷞G|eAaeAa鶞G}$CeB2e e $8Be e 2$e AbGe AbGce AbGe AbGce AbGe AbGcezGie{B\eAaeAa鸞G|eAaeAa鷞G|eAaeAa鶞G}$CeBeAeA$)a&a b eA`G鸞4bBPeeA`Gb GB9$!$b c bBPeb!$bBPeb!$bBPeb!$eGeBeb$eBf$e{B\eAaeAa鸞G|eAaeAa鷞G|eAaeAa鶞G}$Ce f e aif fa b eiaa a a eb GG eb GG & abi&b BPe8Bb b28A$!$b BPe8Bb b28A$!$b BPe8Bb b28A$!$b BPe8Bb b28A$!$bceBgb $e{B\eAaeAa鸞G|eAaeAa鷞G|eAaeAa鶞G}$C8Bb b 2$e AbGce AbGce AbGce8B@eAaeAa鸞Gb$fe8B@eAaeAa鷞Gb$fe8B@eAaeAa鶞Gb$feB2b b $b c 8Be$);<LA A A !"*A 4`:A P function (a, b, inclusive) { var min = Math.min(a, b), max = Math.max(a, b); return inclusive ? this >= min && this <= max : this > min && this < max; }#IPrWeight#?+D?I I6N::i # ~Jmdelta$ /P1([+A O0" )dweight#ɏ+\change1 ;;A H|\YX&[RCkaYbXAA0ikaYbXAbGA0i kXAbGbGA i XAbGbGXAkXAbGbGAGC@ bck bckaY bXAA0ikaYbXAbGA0ikbiXAGbGBuXAXAGbGAlG$kXAGbGBuXAXAGbGAlG$bck bck X&CX&CaYbXAXAA0GA0ikXAB XAXAA0GbGB9$$XAB eXAXAA0GbGB9$!$bcke|Gi8BX$)i   ( ¡¢£0 1) { continue } if (angle.between(this.hitbox[t].angle, this.hitbox[t - 1].angle)) { if (dis < (this.hitbox[t].dis + this.hitbox[t - 1].dis) * .5) { return true } } } return false }A܅ hH~A A A A A AĆ A͆ AԆ }/ @EA <A 4`A  A A A ! *A 4`HA 1xDxDA HA bA WA Aԉ tA ZA OA ?A AYA0ikr"0A  =HNA A }AU!U¨UB$A©UB$Nª00A RAYA0ik«BAǍ AY0GAA cAY0GA$i¬k­®B\AȎ AY0GAA 4AY0GA$i¯NA AY0GANA 1) { continue } if (angle.between(this.hitbox[t].angle, this.hitbox[t - 1].angle)) { if (dis < ((this.hitbox[t].dis + this.hitbox[t - 1].dis) * .5) + point.radius) { return this.angles[t] } } } return false }A S S0;5 : !.  6 ?S+++ +;"- --- +I +:$ -+: +:24488+:@4,+:-+;F ,:4--+;x+ID4+:B +  ;\ - +: (---+:$  ---$--+:":,+:-+:g&Ig5]bIIl5 Htion.mjs window addEventListener DOMContentLoaded eventsquaretabletvideo_recorderrecordingpom&CanvasCaptureToWEBM())A2 \bezierCurveToA!getQuadraticXY(t) { return new Point((((1 - t) * (1 - t)) * this.x) + (2 * (1 - t) * t * this.cx) + (t * t * this.ex), (((1 - t) * (1 - t)) * this.y) + (2 * (1 - t) * t * this.cy) + (t * t * this.ey)) }A 8N8NxPA $¸A AA AA ASA ATA EA!]¹]B$ºB$»A A AA ASA AA %AT!C^¼Aߞ A^A &AU!B$½A A^A *AU!B$N¾B_Aџ AAݟ AA ,AQB$NA ,ARB$NAˠ ASAנ AT$A ACA ?ACCB$)A draw() { this.metapoint.draw() let tline = new Line(this.x, this.y, this.ex, this.ey, this.color, 3) tline.draw() canvas_context.beginPath() this.median = new Point((this.x + this.ex) * .5, (this.y + this.ey) * .5) let angle = (new LineOP(this.median, this.metapoint)).angle() let dis = (new LineOP(this.median, this.metapoint)).hypotenuse() canvas_context.bezierCurveTo(this.x, this.y, this.cx - (Math.cos(angle) * dis * .38), this.cy - (Math.sin(angle) * dis * .38), this.ex, this.ey) canvas_context.fillStyle = this.color canvas_context.strokeStyle = this.color canvas_context.lineWidth = 3 canvas_context.stroke() }A S(zBTA 7pTT@hT* nA kA 0A  XGv+e$ƵCl8B$CmAmC@&Cn&CoCkƵCƶCfabAk-AnB BdAkbG$$bcƴCpƵCe)Quh$aƵCf&CoѽBd$C-)Px8+B0VZAЫ V(V@A *PM0A A v eўўAўњAQњASўўAўњARњAT!(!ȒA x\YX&[RCkaYbXAA0ikaYbXAbGA0i kbi XAbGbGBuXAk$k bXAA0i XAbGbGBuXAbG$k XAbGbGBuXAbG$ bck bckX&CX&C`A &h&P "eu@HdxA̱ # ;kUinclusive#fu@/dy q(555++b]q &bND NEN:b:ID55::::ս!:?S0P:b:E]l+? XX:::^l+? Y;:v:vq:gpBvalueOf() { return this.value }A !@ZBHZHA ZA @A *XkA 0AŴ tCkabAk-AnB BdAkbG$$bc)aYhB[ A ZAȵ @A * 6YmA A Cm)A1(;555++b]q &bND NEN:b:ID55::0getQuadraticAngle(t) { var dx = 2 * (1 - t) * (this.cx - this.x) + 2 * t * (this.ex - this.cx); var dy = 2 * (1 - t) * (this.cy - this.y) + 2 * t * (this.ey - this.cy); return -Math.atan2(dx, dy) + 0.5 * Math.PI; }A class BezierHitbox { constructor(x, y, cx, cy, ex, ey, color = "red") { // this function takes a starting x,y, a control point x,y, and a end point x,y this.color = color this.x = x this.y = y this.cx = cx this.cy = cy this.ex = ex this.ey = ey this.metapoint = new Circle((x + cx + ex) / 3, (y + cy + ey) / 3, 3, "#FFFFFF") this.granularity = 100 this.body = [...castBetweenPoints((new Point(this.x, this.y)), (new Point(this.ex, this.ey)), this.granularity, 0)] let angle = (new Line(this.x, this.y, this.ex, this.ey)).angle() this.angles = [] for (let t = 0; t < this.granularity; t++) { this.angles.push(angle) } for (let t = 0; t <= 1; t += 1 / this.granularity) { this.body.push(this.getQuadraticXY(t)) this.angles.push(this.getQuadraticAngle(t)) } this.hitbox = [] for (let t = 0; t < this.body.length; t++) { let link = new LineOP(this.body[t], this.metapoint) let disang = new Disang(link.hypotenuse(), link.angle() + (Math.PI * 2)) this.hitbox.push(disang) } this.constructed = 1 } isPointInside(point) { let link = new LineOP(point, this.metapoint) let angle = (link.angle() + (Math.PI * 2)) let dis = link.hypotenuse() for (let t = 1; t < this.hitbox.length; t++) { if (Math.abs(this.hitbox[t].angle - this.hitbox[t - 1].angle) > 1) { continue } if (angle.between(this.hitbox[t].angle, this.hitbox[t - 1].angle)) { if (dis < (this.hitbox[t].dis + this.hitbox[t - 1].dis) * .5) { return true } } } return false } doesPerimeterTouch(point) { let link = new LineOP(point, this.metapoint) let angle = (link.angle() + (Math.PI * 2)) let dis = link.hypotenuse() for (let t = 1; t < this.hitbox.length; t++) { if (Math.abs(this.hitbox[t].angle - this.hitbox[t - 1].angle) > 1) { continue } if (angle.between(this.hitbox[t].angle, this.hitbox[t - 1].angle)) { if (dis < ((this.hitbox[t].dis + this.hitbox[t - 1].dis) * .5) + point.radius) { return this.angles[t] } } } return false } draw() { this.metapoint.draw() let tline = new Line(this.x, this.y, this.ex, this.ey, this.color, 3) tline.draw() canvas_context.beginPath() this.median = new Point((this.x + this.ex) * .5, (this.y + this.ey) * .5) let angle = (new LineOP(this.median, this.metapoint)).angle() let dis = (new LineOP(this.median, this.metapoint)).hypotenuse() canvas_context.bezierCurveTo(this.x, this.y, this.cx - (Math.cos(angle) * dis * .38), this.cy - (Math.sin(angle) * dis * .38), this.ex, this.ey) canvas_context.fillStyle = this.color canvas_context.strokeStyle = this.color canvas_context.lineWidth = 3 canvas_context.stroke() } getQuadraticXY(t) { return new Point((((1 - t) * (1 - t)) * this.x) + (2 * (1 - t) * t * this.cx) + (t * t * this.ex), (((1 - t) * (1 - t)) * this.y) + (2 * (1 - t) * t * this.cy) + (t * t * this.ey)) } getQuadraticAngle(t) { var dx = 2 * (1 - t) * (this.cx - this.x) + 2 * t * (this.ex - this.cx); var dy = 2 * (1 - t) * (this.cy - this.y) + 2 * t * (this.ey - this.cy); return -Math.atan2(dx, dy) + 0.5 * Math.PI; } }A hRBl/A xll@A *QUA dA  BEcae!їFAoB b$b(O:+DDl56:IIK:|@:@qq,]"IIN:!!"++!++#;+]]]EEEEIOl Il) qqr?N@l+?! ::]EEEEINllvvv;BA>tion.mjs window addEventListener DOMContentLoade@h8BPn;A nHn@A *0zzA GA A  Dv+e$Bd$C@CzCGŵCeŶCf) &P#N&?00&&&]5&&ƵCl8 #olsetError&?SN{ :6s P P#dG bias.change# \xweights= 1 A A A A A A A A A A P0pA A  A 4`A !*A 4`Y3A @]%qqA A A A A A A PqA A A 4`)A A A *pBA 4`rFA 2A8B$(A NRweight() { return ((Math.random() - .5) * 2) / 1 }A +# y@nsetChange#XA A RC abA_iabA_bGib#A_bGbGBaA $_bA_鶞)A_bGbGBaA_bG$'A_bGbGBaA_bG$bc[bc:&Ca&CoabA_A_鶞GoAaBPA_A_鶞GbGB9$$AoBPeA_A_鶞GbGB9$!$bc{)A "&AnumA Q{XU)A 1Ce)A hCeA )A oPBsetChange(num) { this.change = num }# ISsetWeightquuA <d`hPa`:Рpfpg i_jj4P5hpk`pm``nlp\pV_ 0DoNYzpp@B[=P Pj%@ V`+0 ;`>p_jpU0+`m0Е. zTYZ` lR,Cq0ЎA pclass Weight { constructor(from, to) { this.value = this.weight() this.from = from this.to = to this.change = 0 this.delta = 1 } valueOf() { return this.value } weight() { return ((Math.random() - .5) * 2) / 1 } setChange(num) { this.change = num } setWeight(num) { this.value = num } }A 8A ACAAACabAiaeAAA8BAA$AAA8BAA$!ABPb$BAACAbcgeACeACeCeB$eBAGAAGA$abA5eBAbGAAbGA$bceBAGAAGA$eB$eB$eB$)BsetError(error) { this.error = error }#$AsetDeltaBhA CAoB b$b([Ao@:0yM~~A ( !n`A kC@"hA mC Q~~A %jA @A l wA RA A A A ClA 5B$CmA A AmC@A &CnA &CoAˀ kCkA CA 1Cf00A CAkA0ikA AnB A BdA MAk0G$$0p5`"[0#Ap@ $[0%DpC`&[0'GpF`([0)JpI`*[0+MpL`O P`,[ Q`S`T`U`V`W`X`Y`Z`.[ 0\ =@´µ&¶L·&L{¸&L}¹&LºY»Y¼Y½ Y ¾Y ¿ Y Y Y aa1pTYYhY@setDelta(delta) { this.delta = delta for (let t = 0; t < this.outputConnections.length; t++) { this.outputConnections[t].delta = this.delta } }# BsetBias(bias) { this.bias = bias }A |(Aԡ bAiaBA8BA$CeAAAA8BAA$8BAA$!bCbACA BPb$bc.abAiabA iA bGAdA bGBE$abA<AbGBFA bG$A bGCbcbcobcO);!`e)A OBsetChange(num) { this.change = num }!VA .; Zdo  2>n!iw*'i/416i8i>iC@ ;A @( "ƅVdcompute H AkCkAmC@abibAn鶞AnB Bd$$B@bGB9$AnbGweight(link) { let weight = new Weight(link, this) if (typeof link != "number") { link.outputConnections.push(weight) } return weight }A @JA ؖ@A *'pXA XA t &Mv+e$aƵCf&CoѽBd$C@)C@)b()؎BA A @A *8%A A gAͯ Aݯ v8B$((!`tion.mjs window BvalueOf() { return this.value }Aܰ XhA gGi.&f/aYb2ik0aYb2i k 1eB bb&$2bck 3bck45eGi 6eB$7eB$8eB$axA  A ! )*n A 4`A "53WNNetwork+v:PqYACAACAAAAAAAA ( (pN{?bb55#_u@drA̵ #HceptA -;&&&8Bh A XA @A * 3PA A@(#`AKsigCk#|2YreluC@#ae`lmomentum#6Lflagka #GZWpperc# !foreluslimeaH,xAϸ BBA iA@yAz$$C@-)`"]$gauss PA E\k[i\vA kCkAȺ AϺ ~AmC@00kA0ik0Aһ AnA0iA AnB A Bd$$A B@k0GB9$Aü :An0GB9$C@ k!A B@k0GB9$A gAn0GB9$C@"#0 this.weights.length - 1) { this.weights.push(this.weight()) this.value += (inputs[t].valueOf() * this.weights[t].valueOf()) } else { this.value += (inputs[t].valueOf() * this.weights[t].valueOf()) } } this.sig() // this.gauss() if (Math.random() < .05 && dr == 1) { // return 0 //Math.random() //dropout } return this.value }XاA iR&fab2i:ab2 eB bb&$bcbceG+eB$eB$eB$eGee!!!&!f)eBeAeA$eBz$eBeeAeA22$ e5G e f e axA !-3*+nA 4`]A errelu() { this.value = Math.min(Math.max(this.value, perc.reluslime), 1) }A xxV(<8NA A A A A A A :A PPA A +1A 4`O0A !0**.A 4`TA Xa8A [bsig() { this.value = 1 / (1 + (Math.pow(Math.E, -this.value))) }A hA MY7NY8OY9PY:QY;RY<tY]aZaYaXaWaVaUaTaSaRaPaOaNaKaHaEaBa?a4a1a.a+a(a%a"aaaaaaa a a a a aaaaaaa YaYbikb/B\b$q8Bb$Ibib c b*1A!X``eA 2 'JTlearningRate8#d@setup$ Psgauss() { this.value = Math.min(Math.max(Math.abs(this.value), 0.00000001), 1) }A L(@HRp~$A  class Perceptron { constructor(inputs) { this.markCount = 0 this.bias = (((Math.random() - .5) * 2) / 1) / 1 this.value = this.bias this.weights = [] this.outputConnections = [] this.inputs = inputs this.error = 0 this.delta = 1 for (let t = 0; t < this.inputs.length; t++) { this.weights.push(this.weight(this.inputs[t])) } this.z = -1 this.change = 0 } setError(error) { this.error = error } setDelta(delta) { this.delta = delta for (let t = 0; t < this.outputConnections.length; t++) { this.outputConnections[t].delta = this.delta } } newIn(inputs) { this.inputs = inputs for (let t = 0; t < this.inputs.length; t++) { this.weights.push(this.weight(this.inputs[t])) } } setBias(bias) { this.bias = bias } setChange(num) { this.change = num } weight(link) { let weight = new Weight(link, this) if (typeof link != "number") { link.outputConnections.push(weight) } return weight } valueOf() { return this.value } compute(inputs = this.inputs, dr = 0) { this.inputs = inputs this.value = this.bias for (let t = 0; t < inputs.length; t++) { if (t > this.weights.length - 1) { this.weights.push(this.weight()) this.value += (inputs[t].valueOf() * this.weights[t].valueOf()) } else { this.value += (inputs[t].valueOf() * this.weights[t].valueOf()) } } this.sig() // this.gauss() if (Math.random() < .05 && dr == 1) { // return 0 //Math.random() //dropout } return this.value } relu() { this.value = Math.min(Math.max(this.value, perc.reluslime), 1) } sig() { this.value = 1 / (1 + (Math.pow(Math.E, -this.value))) } gauss() { this.value = Math.min(Math.max(Math.abs(this.value), 0.00000001), 1) } }A #T[ZlswapA 37 mWZzalculateDeltasSigmoid#_ljgoals # WvclustersN&&&P#yMYscaffold#?{+5I5N:::i 3;\${zadjustWeights|?0P# ?(Wperceptron# \structure# NrXztructure##1j<outputsA +# ̇ZZGnodeCountA addEventListener DOMContentLoaded eventsquaretabletvideo_recorderrecordingpom&CanvasCaptureToWEBMgamepadAPI canvascanvas_contextkeysPressedFLEX_engineTIP_engineXS_engineYS_engine Point VectorLine LineOPRectangle CirclePolygon Shape SpringSpringOP ColorSoftbodyObserver setUpgamepad_controlcontrol&getRandomLightColorgetRandomColor$getRandomDarkColorcastBetween"castBetweenPoints DisangBezierHitbox Weight"H~cetp# S`lastinputs# Ů]lastgoalsqP#Q[Ocluster8()BA A @A *6%A A gA A l8B$((G#]qNzompute# SdataoutputsQXUA 1A WPqlP!ȹȹh`H|H|A \A UA -A `A lA p7A 9A BA A dR(A $fA {A fnA A @A  jA -[A ' .uA  [~A LA A WA [A FA LA LA _ XA > )A xA ] 4A P  A  *A 0 A J A A | :A G A KA  Y $A   _A  A M A g A {A  k A0ik Wk 0 G&Co X 0 <=k YA ,&CZ  bA            A t!W^B$i_BB$}@m)``A A A A A A Aā mPs 0  A AԂ /<A 4`A A  A !/*:Aԃ 4`1A  Bweight() { return Math.random() - .5 }#ҲFoutput# rconnection#=olayer  a aa&abbiaeAbbAbbbAbbAbbb!bbbCbbbbCbBPb$bcfb(2]currentConnection0C؎xGAЇ A؇ ^@uA * L@K/6fd`hPa`:Рpfpg i_jj4P5hpk`pm``nlp\pV_ 0DoNYzpp@B[=P Pj%@ V`+0 ;`>p_jpU0+`m0Е. zTYZ` lR,Cq0Ў.A (/0Z1A &237A o8    Zv Zv  Zv  Zv ZvZvZv Zv#"Zv&%Zv)(Zv,+Zv/.Zv21)A K>A 5L@A 6MCAȖ 7NDAؖ 8OEA 9PFA :QLA ;RM Zv!=M4P"Zv#@P?c$Zv%CcBj&Zv'FjE|(Zv)I|H*Zv+LKNkO0,ZPRSTUVW~XY0.Z|0[0A <tK5L6M7N8O9P:Q;RT?T*)h*+a,a-@VATBTCT DT-,h-h,.a/a0EVFTGT0/h01a2a3HVITJT32h34a=a>SVM>=h>?a@aATVPUTVTWTXTWYTXA@hAB8A;ZC\aCaD[Vc\T9]Td^Tg_TiDChDEaFaG`VjaTqbTrcTsdTteTgfTdgT9hTuiTxjTwkT{GFhGHaIaJlV|mTnToTpTuJIhJKaLaMqVrT9sTdMLhMN8FB8$O5bO&PaQQbQ,bPB bN!$bQcQbKbPa&!RSbB22$TUVWXY&Za[[b[28a\\b\2 bZB b[b\&$b\c\b[c[)E8QA A QA Aȱ  XhA A A A A A A A PA AԳ A 4`A A A *AԴ 4`:A class Data { constructor(input = -100) { this.delta = 0 this.outputConnections = [] if (input == -100) { this.value = this.weight() } else { this.value = input } } valueOf() { return this.value } weight() { return Math.random() - .5 } }is.markȜA hA gA̸ zA ^A { A  Aȹ  Aع   A  A U <A 6 A g FAԺ  U A 9 2A  A K <A  inputs[t].outputConnections = [] } this.clusters = [] for (let t = 0; t < this.nodeCounthاA A A A A A 0A a*) AԾ  A 4`kA ^KA A !A !pc *+lAԿ 4`A ;xC`*[HX@A *N.A p @A "A AeB A $)#'@& #o@GhA A 7Vaaaa 0@P A A A A A A A `A A A 4`77A A A A *7A 4`@%A BB$ik(2(a, b) => Math.random() > .5 ? 1 : -13#u@n<=#4Yrgb(A k#@-xzp #ӯwkinputs #v@o A )8B$)^u_p[ ` `@p`` ` ` ` ` `[0p`[p p  [0 p` [0 p`[0p [0p`[0!p [0$p#`[0'p&`[0*p) [p-p, [00p/ [03p2 6789:;<@ [0!>p5`"[0#Ap@ $[0%DpC`&[0'GpF`([0)JpI`*[0+MpL`O P`,[ Q`S`T`U`V`W`X(2(a, b) => Math.random() > .5 ? 1 : -10QHA 8A 10bA A     !#$ %&'AxxA HA Wk00%& & & 'W& q(;5 : !.  6 ?S+++ +;"- --- +I +:$ VP2(a, b) => Math.random() > .5 ? 1 : -1010" PdrawImage(8A A 8A A A A A A A  A Q pA A %<A 4`2A A  A !$*0A 4`mA "kA .v^P18A a AbGab鶞biaaabbGbB9$b鸞bbGbcabbAoA 1#A ~*#A l;A <.A p4A LA >A k #A ^{A A A A 5A A A iCZA b000ik¤A A0G¥A0||ik¦|G§B9$¨©A0|i ª |Gc«k ¬ | |  AoA0ik ­ Ao| G ® < AGAf B9$c¯ ¶ | = 0; t--) { const layer = this.ztructure[t] for (let k = layer.length - 1; k >= 0; k--) { const perceptron = layer[k] let output = perceptron.valueOf() let error = 0 if (layer.length-3 <= k) { error = goals[k] - output; } else { for (let k = 0; k < perceptron.outputConnections.length; k++) { const currentConnection = perceptron.outputConnections[k] error += currentConnection.to.delta * currentConnection.valueOf() let j = 0 // while(currentConnection.to.outputConnections.length > 0){ // j++ // if(j > 1000){ // break // } // } } } perceptron.setError(error) this.error += Math.abs(error) perceptron.setDelta(error * output * (1 - output)) } } }A ))A 01237o8)>@CDEFLMPcj|k~|0465pqryz{}  WX\dgiqrstuxw{F9@ABCE;[Y=?:<>DGHJIKULMNOPQRSTVWXZ\ ]^_`abdefcghijklmnsvtuwx&UM     !"#'($%&*<+,-./134;=256789:?ABGHIJKNOQRSTZUVY[]^_`abefhlmnopvyz}~ A A A A A A7AњA9A7ɷўA8AњA:A88B$8A(./zadjustWeights() { for (let t = 0; t < this.ztructure.length; t++) { const layer = this.ztructure[t] for (let k = 0; k < layer.length; k++) { const perceptron = layer[k] let delta = perceptron.delta for (let i = 0; i < perceptron.weights.length; i++) { const connection = perceptron.weights[i] let change = connection.change change = (this.learningRate * delta * perceptron.inputs[i].valueOf()) + (this.momentum * change); connection.setChange(change) connection.setWeight(connection.valueOf() + change) } perceptron.setBias(perceptron.bias + (this.learningRate * delta)) } } }A a8tion.mjs window addEventListener DOMContentLoaded eventsquaretabletA:!`BvalueOf() { return this.value }@QA 01237o8)>@CDEFLMPcj|k~|0465pqryz{}  WX\dgiqrstuxw{F9@ABCE;[Y=?:<>DGHJIKULMNOPQRSTVWXZ\ ]^_`abdefcghijklmnsvtuwx&P"Mg"Data0SA 5iO Y {  !A %@p)A A Aȏ A؏ A A A @ A L` A A A 4`xA A AБ  Aܑ !*02A 4`p2A /"Anet$ 8 8 AВ ) A a    Aړ -! `PQ)A $\kA =&kRCk00A aAA0ik||A NA0GA0i kA /A0G|GA i A A0G|GA AkA A0G|GAGC@ | AG|GAlG$kA AG|GBuA AA AG|GAlG$  | ?@ADEFGHIJKLMNOVQRSU      !&"#'()*+,$%-./0123456789:<=WX>;?YABCDEFZIJ[K\  LMNOP]^_`aQcbRSd V[\]^_`abWXcYeZfgheijklmfngo  ijtvwxyzqp{|}rsA Td8!8!A daddEventListener DOMContentLoaded eventsquaretabletvideo_recorderrecordingpom&CanvasCaptureToWEBMgamepadAPI canvascanvas_contextkeysPressedFLEX_engineTIP_engineXS_engineYS_engine Point VectorLine LineOPRectangle CirclePolygon Shape SpringSpringOP ColorSoftbodyObserver setUpgamepad_controlcontrol&getRandomLightColorgetRandomColor$getRandomDarkColorcastBetween"castBetweenPoints DisangBezierHitbox WeightPerceptronNetworkDatasetup_canvas inputsnet countpixworlderrorxycgocarrkmainsqrt Imagercpomaoml3.pngsrccontroller turboconnectdisconnect updatebuttonPressedABXYLBRBLeft-TriggerRight-TriggerBack StartAxis-LeftAxis-RightDPad-UpDPad-DownDPad-LeftDPad-Right PowerbuttonsbuttonsCachebuttonsStatusaxesStatuspointDistanceisToward rotatemagnitudenormalizemultiplysubtract dividedraw anglesquareDistancehypotenuseintersectsmoveisPointInside$doesPerimeterTouch unmovefrictiveMovefrictiveunMoveinnerShapeisInsideOf0adjustByFromDisplacement,adjustByToDisplacement mixInpushbalancerandomLightrandomDark randomcircularizebeamgetQuadraticXY"getQuadraticAnglebetween weightsetChangesetWeightsetErrorsetDelta newInsetBiascomputerelusig gauss,zalculateDeltasSigmoidzadjustWeightszomputedocumentgetElementByIdgetImageDatabitrateblobCapturesoutputFormatrecordercanvasInput video Record&handleAvailableDatahandleStopStopsaveToDownloads recordstopdownloadcaptureStreamcreateElement stylenonedisplayformatsvideoSettings errorvideo/vp8video/webm*video/webm,codecs=vp9*video/webm;codecs=vp8.video/webm;codecs=daala,video/webm;codecs=h264video/mpegMediaRecorderisTypeSupportedmimeType$videoBitsPerSecond onstopondataavailable startdatasizesuperBufferBlobtypeURLcreateObjectURLcontrolsbloburlstorageElementvideo_out.webmahrefbodyappendChild clicksetTimeoutremoveChildrevokeObjectURLevtinavigatorgetGamepadsgamepadsconnectedpressedbaxestoFixed buttonholdnewPresssjp radius pointtransparentxmomymomlinkdis1 dummy link2dis2angleGoalcossinvectend#FFFFFFx2y2 color widthx1y1 atan2xdifydif round linewidthstoragelineWidthstrokeStylebeginPath moveTo lineTo strokelinedetgmlmconsolelog heightfillstrokeWidthfillStylefillRectfrictionreflectstrokeColorarcPI areaY areaX sidesnode nodesangleIncrementclosePath shapesboxfromRatiotoRatiogravity anchor yellow xmomentumaverage ymomentumaveragebaseColorred greenblue alphahuerglettershash 0123456789ABCDEF# floormembersmemberLength forcespringspin springforceConstantcentroid xpoint ypoint rangeraysrayrayrangeglobalanglegapanglecurrentangleobstaclesraymakefqceil whitecollidedlifespancanvas_pass"continued_stimuli#000000getContext2dbackgroundsetIntervalkeydown keyuppointerdownpointermovepointerupkeye*getBoundingClientRectclientXleftclientYtop speedwdtogranularity limitshape_arraycircdisangcxcyexey disangmetapoint angles hitboxconstructedabs tline medianbezierCurveTodxdyinclusiveminmax change deltanummarkCountbiasweights"outputConnectionszdrpercreluslimepowElayerSetupArrayscaffoldceptclustercetp checkmomentumlearningRate setupstructureztructureoutputsnodeCountclustersincludesflaglastinputslastgoalsswap goals layerperceptron output"currentConnectionconnectiondataoutputskinputslxzyxosortne8AQ..A HA H  eBw$e C)W?0Cl00pp  b eAG鸞4bB ee aaaa8e eL!8ABb$8hBz$bA{|C}bbCbbCx8hABb$bB$8#class Network { constructor(inputs, layerSetupArray) { this.check = 0 this.error = 0 this.reluslime = .00001 this.momentum = 0.001551565 this.learningRate = 0.001551565 this.setup = layerSetupArray this.inputs = inputs this.structure = [] this.ztructure = [] this.outputs = [] this.nodeCount = 0 this.markCount = 0 for (let t = 0; t < layerSetupArray.length; t++) { let scaffold = [] this.nodeCount += layerSetupArray[t] for (let k = 0; k < layerSetupArray[t]; k++) { let cept if (t == 0) { cept = new Perceptron(this.inputs) cept.markCount = this.markCount this.markCount++ } else { cept = new Perceptron(this.structure[t - 1]) cept.markCount = this.markCount this.markCount++ } scaffold.push(cept) } this.structure.push(scaffold) } for (let t = 0; t < inputs.length; t++) { inputs[t].outputConnections = [] } this.clusters = [] for (let t = 0; t < this.nodeCount; t++) { let cluster = [] for (let k = 0; k < Math.floor(Math.random() * this.nodeCount * 30) + 30; k++) { let index = new Point(-1, -1) if (Math.random() < .9) { let x = Math.floor(Math.random() * layerSetupArray.length) let y = Math.floor(Math.random() * layerSetupArray[x]) index.x = x index.y = y if (!cluster.includes(this.structure[index.x][index.y])) { cluster.push(this.structure[index.x][index.y]) } } else { let x = Math.floor(Math.random() * inputs.length) index.x = x if (!cluster.includes(inputs[index.x])) { let node = inputs[index.x] node.value = inputs[index.x].valueOf() node.flag = index.x node.data = 1 cluster.push(node) } } } this.clusters.push(cluster) } this.ztructure = [[]] for (let t = 0; t < this.clusters.length; t++) { let s = 0 let f = t while (this.structure[s].length <= f) { f -= this.structure[s].length s++ if (s > this.structure.length) { break } } let g = f let cetp = this.structure[s][g] /// new Perceptron(this.clusters[t]) console.log(cetp) cetp.weights = [] cetp.outputConnections = [] } for (let t = 0; t < this.clusters.length; t++) { let s = 0 let f = t while (this.structure[s].length <= f) { // console.log(f, this.structure[s]) f -= this.structure[s].length s++ if (s > this.structure.length) { break } } let g = f // console.log(s, g) let cetp = this.structure[s][g] /// new Perceptron(this.clusters[t]) // console.log(cetp) cetp.weights = [] // cetp.outputConnections = [] cetp.inputs = [] cetp.newIn(this.clusters[t]) cetp.markCount = t cetp.compute(this.clusters[t]) this.ztructure[0][cetp.markCount] = cetp } this.lastinputs = [...this.inputs] this.lastgoals = [...this.lastinputs] this.swap = [] } zalculateDeltasSigmoid(goals) { for (let t = this.ztructure.length - 1; t >= 0; t--) { const layer = this.ztructure[t] for (let k = layer.length - 1; k >= 0; k--) { const perceptron = layer[k] let output = perceptron.valueOf() let error = 0 if (layer.length-3 <= k) { error = goals[k] - output; } else { for (let k = 0; k < perceptron.outputConnections.length; k++) { const currentConnection = perceptron.outputConnections[k] error += currentConnection.to.delta * currentConnection.valueOf() let j = 0 // while(currentConnection.to.outputConnections.length > 0){ // j++ // if(j > 1000){ // break // } // } } } perceptron.setError(error) this.error += Math.abs(error) perceptron.setDelta(error * output * (1 - output)) } } } zadjustWeights() { for (let t = 0; t < this.ztructure.length; t++) { const layer = this.ztructure[t] for (let k = 0; k < layer.length; k++) { const perceptron = layer[k] let delta = perceptron.delta for (let i = 0; i < perceptron.weights.length; i++) { const connection = perceptron.weights[i] let change = connection.change change = (this.learningRate * delta * perceptron.inputs[i].valueOf()) + (this.momentum * change); connection.setChange(change) connection.setWeight(connection.valueOf() + change) } perceptron.setBias(perceptron.bias + (this.learningRate * delta)) } } } zompute(inputs = this.inputs) { this.inputs = [...inputs] for (let t = 0; t < this.clusters.length; t++) { for (let k = 0; k < this.clusters[t].length; k++) { if (this.clusters[t][k].data == 1) { this.clusters[t][k].value = this.inputs[this.clusters[t][k].flag] } } } for (let t = 0; t < this.ztructure.length; t++) { for (let k = 0; k < this.ztructure[t].length; k++) { if (t == 0) { this.ztructure[0][k].compute(this.clusters[this.ztructure[0][k].markCount], 1) } else { this.ztructure[0][k].compute(this.clusters[this.ztructure[0][k].markCount], 1) } } } this.outputs = [] this.dataoutputs = [] for (let t = 0; t < this.ztructure[this.ztructure.length - 1].length; t++) { this.outputs.push(this.ztructure[this.ztructure.length - 1][t].valueOf()) this.dataoutputs.push(new Data(this.ztructure[this.ztructure.length - 1][t].valueOf())) } if (keysPressed['k']) { console.log(this) } } compute(inputs = this.inputs) { this.inputs = [...inputs] for (let t = 0; t < this.structure.length; t++) { for (let k = 0; k < this.structure[t].length; k++) { if (t == 0) { this.structure[t][k].compute(this.inputs, 1) } else { if (t != this.structure.length - 1) { this.structure[t][k].compute(this.structure[t - 1], 1) } else { this.structure[t][k].compute(this.structure[t - 1], 0) } } } } this.outputs = [] this.dataoutputs = [] for (let t = 0; t < this.structure[this.structure.length - 1].length; t++) { this.outputs.push(this.structure[this.structure.length - 1][t].valueOf()) this.dataoutputs.push(new Data(this.structure[this.structure.length - 1][t].valueOf())) } } }A xA A̦ Aئ A A A A A ` SA A A 4`78AȨ Aب A A *8A 4`%A  )`{Gz翚7"s@Dl8Y8YA   klm ,8DPU %-5=EMUcrz$./0BHVYcdeuy(08@HP X(`)k*zJdz{|&.9HPX`k!z]foxyzp uw%-5=EMXbix *-04 56$,4<DO^fny !"#$%2&<'FAж i";@*, V#0@)WHBB(\@A [Aȷ @A *C A 0A abA+AbGB$ AbG(bc ( ]l5#@"yx(Q$aƵCJ&COѽBZ$C@)C@Ppx@^A H]^ @A * nAպ A A A A A A AŻ Aջ A A A  %v +e $a aaaaaaaaa[][][][][][  ] C C C C [C [C [C [C [C [ C)# D{5F{5FX5FX5 ]]A ] ]l53 Nq?5@+N+g0 ::J0(ijBp`*A H`h`@A *n ;XA A T ;eAIAAAA!(XBa,A `A @A k*e= f e8FAiBme$8+A`Bne$)a8a8aA 6CCSC\C]C^C &C_&C`&CaCbCLabia&BbbGCbabbGiab2eA !cbALCLBLCL6eA_bG!cbALCLBLCLbBPb$bchA_BPb$bc!abbG&CObc&CcabAbia&ab8B8BT$Ab$iwae!8BT$ia a 8B8BT$$ 8B8BT$b G$ bb Cbb CbBdA_bAGbAG$ibBPA_bAGbAG$a 8B8BT$$ bb CbBdbAG$Ra bAG b bAGB9$C@b bACeb CbBPb $bc^AcBPb$bc"&&C`a b Aciaaaab A_bGb.bA_bGcbcbA_bA_bGbG8Bb$b&CNb&COb c VabAciaaaabA_bGb.bA_bGcbcbA_bA_bGbGb&CNb&C bB_AcbG$bbCLbBaAcbG$A`GbALqbIbc&A RCf&AfRCg&Ch)`"bv0qv0lv0lv1X5N5=f&#v:Nl:I+XNh+b51e 6dCPgA 8gHg@A *j6psA D oe Cqep)2xf(i@hTA gA @A *piA $A taaB$BbCBbCBњCBњC)XBh%A hh@A *{A A A T v+e$CCŵC)'xg_BiBA xii@A *@8A A A t naae!eAAAA!bBb%PL_jBj*A hjj@A *s/A A T /eAIAAAA!(j4B@k*A k8k@A *CA A U CeAIAAAA!(hBlTA kA @A *7ПA A A A A 8B$AVAAIAAVAAIAAVAAIAAVAAIA͵ (AVAAIAAVAAIAAIAAVAAVAAIAśAIAAVAAVAAIAAVAAIAAVAAIAśʵǣǶ ƣƶ(Bm=A mA @A *Wo@A 8BAIAAVAAIAAVA%BAHhXAC¢eXACA@hlBn4A nn@A *r)A d eACeBAAAA$)#BoA poA @hoA "*? pВnwڿA A AiAACA (AAiACAAiACAAAAAiAAiA ( (qxXYOA G{A )(Pp\BqlA pA @A * @0A A AAASAAA=AAAA AAAA ( ($¨CBr/A qA  @A *1:A 0A u||   A  a A鶞bia AbGab鶞biaaabbGbB9$b鸞bbGbcYabbAoDaabAobGbbAGAfbB9$cbcbBqb$ B8Bb$CbBrbbb$bcbc)@%ssA (p addEventListener DOMContentLoaded eventsquaretabletvideo_recorderrecordingpom&CanvasCaptureToWEBMgamepadAPI canvascanvas_contextkeysPressedFLEX_engineTIP_engineXS_engineYS_engine Point VectorLine LineOPRectangle CirclePolygon Shape SpringSpringOP ColorSoftbodyObserver setUpgamepad_controlcontrol&getRandomLightColorgetRandomColor$getRandomDarkColorcastBetween"castBetweenPoints DisangBezierHitbox WeightPerceptronNetworkDatasetup_canvas inputsnet countpixworlderrorxycgocarrkmainsqrt Imagercpomaoml3.pngsrccontroller turboconnectdisconnect updatebuttonPressedABXYLBRBLeft-TriggerRight-TriggerBack StartAxis-LeftAxis-RightDPad-UpDPad-DownDPad-LeftDPad-Right PowerbuttonsbuttonsCachebuttonsStatusaxesStatuspointDistanceisToward rotatemagnitudenormalizemultiplysubtract dividedraw anglesquareDistancehypotenuseintersectsmoveisPointInside$doesPerimeterTouch unmovefrictiveMovefrictiveunMoveinnerShapeisInsideOf0adjustByFromDisplacement,adjustByToDisplacement mixInpushbalancerandomLightrandomDark randomcircularizebeamgetQuadraticXY"getQuadraticAnglebetween weightsetChangesetWeightsetErrorsetDelta newInsetBiascomputerelusig gauss,zalculateDeltasSigmoidzadjustWeightszomputedocumentgetElementByIdgetImageDatabitrateblobCapturesoutputFormatrecordercanvasInput video Record&handleAvailableDatahandleStopStopsaveToDownloads recordstopdownloadcaptureStreamcreateElement stylenonedisplayformatsvideoSettings errorvideo/vp8video/webm*video/webm,codecs=vp9*video/webm;codecs=vp8.video/webm;codecs=daala,video/webm;codecs=h264video/mpegMediaRecorderisTypeSupportedmimeType$videoBitsPerSecond onstopondataavailable startdatasizesuperBufferBlobtypeURLcreateObjectURLcontrolsbloburlstorageElementvideo_out.webmahrefbodyappendChild clicksetTimeoutremoveChildrevokeObjectURLevtinavigatorgetGamepadsgamepadsconnectedpressedbaxestoFixed buttonholdnewPresssjp radius pointtransparentxmomymomlinkdis1 dummy link2dis2angleGoalcossinvectend#FFFFFFx2y2 color widthx1y1 atan2xdifydif round linewidthstoragelineWidthstrokeStylebeginPath moveTo lineTo strokelinedetgmlmconsolelog heightfillstrokeWidthfillStylefillRectfrictionreflectstrokeColorarcPI areaY areaX sidesnode nodesangleIncrementclosePath shapesboxfromRatiotoRatiogravity anchor yellow xmomentumaverage ymomentumaveragebaseColorred greenblue alphahuerglettershash 0123456789ABCDEF# floormembersmemberLength forcespringspin springforceConstantcentroid xpoint ypoint rangeraysrayrayrangeglobalanglegapanglecurrentangleobstaclesraymakefqceil whitecollidedlifespancanvas_pass"continued_stimuli#000000getContext2dbackgroundsetIntervalkeydown keyuppointerdownpointermovepointerupkeye*getBoundingClientRectclientXleftclientYtop speedwdtogranularity limitshape_arraycircdisangcxcyexey disangmetapoint angles hitboxconstructedabs tline medianbezierCurveTodxdyinclusiveminmax change deltanummarkCountbiasweights"outputConnectionszdrpercreluslimepowElayerSetupArrayscaffoldceptclustercetp checkmomentumlearningRate setupstructureztructureoutputsnodeCountclustersincludesflaglastinputslastgoalsswap goals layerperceptron output"currentConnectionconnectiondataoutputskinputslxzyxosortnclearRectdrawImage hrgb(, )SqC  eBw$e C)W?0Cl00pp  aaaa8e eL!8ABb$8hBz$bA{|C}bbCbbCx8hABb$bB$8d)[ ?:qqb]::q?B,  8hABe$8ABe$)eqlC  8B$G$e8B$GCe C8B$G#e8B$GCe Ci8B$G#e8B$GCe C48B$G!e8B$GCe Cab8(8bG8bGAbc)nbv0qv0lv0lv1X5N5C e Ce)00C e8B$GCe&C5eA6eA5qeA6GIe&C6eA &A49A4(A4GABPeA4G$&A5A"BPAGB$$eC7eC6(v:Nl:I+XNh+b51CT ɵeA6ǣ@eA6Gѩ. Җ(eA5eA5Gѩ ɓ(  XI bIB% +e$CCŵC)N&&&B e!BC% @Q     +e$aaa e!CCCI);&&&B       aaaaaeAI!bBB$eAIAAAIAA!eb!bBB$bb ( ( ]S??D0BqA h   aaaaeAA!bBC$b8B$b8B$bCbC)N{?bb55B eAA!BC% @T  aaB;$BbCBbCBњCBњC)X5NNDDBB   aae!eAAAA!bB8b%+5B* eAIAAAA!( B* eAIAAAA!( B* eAIAAAA!( BW    aaeAIAAAIAA!eAIb!bB@$)+v:B> +e$CCCC[C[C)N&&&&00B)8BAAAA% B;   aaaAAAAbbbbb(:IISB     aaaAAAAbbbbbYb2eB\8B 8Bb$$$G(eB\8Bb$$G(8Bb% :IISD0?B~  aeAeACeACeB$eBAA$eBAA$eB$ebC) 0II?{{?:B, +e$CICVCC)N&&&&B8B$AVAAIAAVAAIAAVAAIAAVAAIA͵ (AVAAIAAVAAIAAIAAVAAVAAIAśAIAAVAAVAAIAAVAAIAAVAAIAśʵǣǶ ƣƶ( O`bbBO   aaaAIAAVAAIAAVAbbbbb(:{{SB     aaaAIAAVAAIAAVAbbbbbYb2eB\8B 8Bb$$$G(eB\8Bb$$G(8Bb% :{{SD0?B=8BAIAAVAAIAAVA% B  aeAeACeACeB$eBAIAAIA$eBAVAAVA$eB$ebC) 0II??:@          +e$aaaaaaaa[[][][]CCCC[CCC[C[C[C) A A 8%A 2%function main() { if(keysPressed['a']){ arr = [] for (let t = 0; t < 50; t++) { for (let k = 0; k < 50; k++) { arr.push([t, k]) } } } if(keysPressed['o']){ arr.sort((a, b) => Math.random() > .5 ? 1 : -1) arr.sort((a, b) => Math.random() > .5 ? 1 : -1) arr.sort((a, b) => Math.random() > .5 ? 1 : -1) } if (keysPressed['n']) { net = new Network(inputs, [33, 33, 33, 3]) return } canvas_context.clearRect(0, 0, canvas.width * .5, canvas.height) // refreshes the image gamepadAPI.update() //checks for button presses/stick movement on the connected controller) // game code goes here canvas_context.drawImage(pom, 0, 0, pom.width, pom.width, 0, 0, 50, 50) // return if (keysPressed['e']) { count += 1000 } if (cgo < 1000 || keysPressed[' ']) { pix = canvas_context.getImageData(0, 0, 50, 50) cgo++ } if (Math.random() < .01) { cgo = 0 } let r = Math.random() let g = Math.random() let b = Math.random() if (keysPressed['h']) { r = 1 g = 1 b = 1 } x++ if (x > 50) { x = 0 y++ if (y > 50) { y = 0 } } if (keysPressed['l']) { x = Math.floor(Math.random() * 50) y = Math.floor(Math.random() * 50) } c++ x = arr[c % 2500][0]//Math.floor(x*1) y = arr[c % 2500][1]// Math.floor(y*1) let kinputs = [] for (let l = .1; l < 1.1; l += .1) { kinputs.push(new Data((Math.cos((((x - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.sin((((y - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.sin((((x - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.cos((((y - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) } net.zompute(kinputs) canvas_context.fillStyle = `rgb(${net.outputs[net.outputs.length - 3] * 255}, ${net.outputs[net.outputs.length - 2] * 255}, ${net.outputs[net.outputs.length - 1] * 255})` canvas_context.fillRect(50 + x, y, 1, 1) // x = arr[t][0]//Math.floor(x*1) // y = arr[t][1]// Math.floor(y*1) let index = Math.floor((x + (y * 50)) * 4) r = (pix.data[index] / 255)*(pix.data[index+3]/255)//x/50 //(y>25?1:0) // ((Math.cos(x/3)*.5)+.5)//pix.data[index]/255// g = (pix.data[index + 1] / 255)*(pix.data[index+3]/255)//(x>25?1:0) // ((Math.cos(x/3)*.5)+.5)//pix.data[index+1]/255 b = (pix.data[index + 2] / 255)*(pix.data[index+3]/255)//(x>25?1:0) // ((Math.cos(x/3)*.5)+.5)//pix.data[index+2]/255 if (keysPressed['h']) { canvas_context.fillStyle = `rgb(${net.outputs[net.outputs.length - 3] * 255}, ${net.outputs[net.outputs.length - 2] * 255}, ${net.outputs[net.outputs.length - 1] * 255})` canvas_context.fillRect(0, 0, canvas.width * .5, canvas.height) } else { let inputs = [] for (let t = 0; t < net.ztructure[0].length - 3; t++) { // if (Math.random() > .05) { inputs.push(new Data(net.ztructure[0][t].valueOf())) // } else { // inputs.push(new Data(Math.random())) // } } // inputs.push(new Data(((Math.sign(r-net.outputs[net.outputs.length-3])*.5)+.5)*2)) // inputs.push(new Data(((Math.sign(g-net.outputs[net.outputs.length-2])*.5)+.5)*2)) // inputs.push(new Data(((Math.sign(b-net.outputs[net.outputs.length-1])*.5)+.5)*2)) inputs.push(new Data(r)) inputs.push(new Data(g)) inputs.push(new Data(b)) if (!keysPressed['q']) { net.zalculateDeltasSigmoid(inputs) net.zadjustWeights() } canvas_context.fillStyle = `rgb(${net.outputs[net.outputs.length - 3] * 255}, ${net.outputs[net.outputs.length - 2] * 255}, ${net.outputs[net.outputs.length - 1] * 255})` count++ if (count > 25000) { count = 0 worlderror = 0 // if(keysPressed['l']){ // arr.sort((a, b) => Math.random() > .5 ? 1 : -1) // } // for (let t = 0; t < arr.length; t++) { for (let t = 0; t < arr.length; t++) { // for (let t = 0; t < 50; t++) { // for (let k = 0; k < 50; k++) { let xz = arr[t][0] let yx = arr[t][1] let kinputs = [] for (let l = .1; l < 1.1; l += .1) { kinputs.push(new Data((Math.cos((((xz - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.sin((((yx - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.sin((((xz - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.cos((((yx - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) } net.zompute(kinputs) canvas_context.fillStyle = `rgb(${net.outputs[net.outputs.length - 3] * 255}, ${net.outputs[net.outputs.length - 2] * 255}, ${net.outputs[net.outputs.length - 1] * 255})` let index = Math.floor((xz + (yx * 50)) * 4) r = pix.data[index] / 255 g = pix.data[index + 1] / 255 b = pix.data[index + 2] / 255 worlderror += Math.abs(net.outputs[net.outputs.length - 3] - r) worlderror += Math.abs(net.outputs[net.outputs.length - 2] - g) worlderror += Math.abs(net.outputs[net.outputs.length - 1] - b) canvas_context.fillRect(50 + xz, yx, 1, 1) } console.log(worlderror) } } }A  (event) => { const squaretable = {} // this section of code is an optimization for use of the hypotenuse function on Line and LineOP objects for (let t = 0; t < 10000000; t++) { squaretable[`${t}`] = Math.sqrt(t) if (t > 999) { t += 9 } } let video_recorder let recording = 0 let pom = new Image() pom.src = "rcpomaoml3.png" function CanvasCaptureToWEBM(canvas, bitrate) { // the video_recorder is set to '= new CanvasCaptureToWEBM(canvas, 4500000);' in the setup, // it uses the same canvas as the rest of the file. // to start a recording call .record() on video_recorder /* for example, if(keysPressed['-'] && recording == 0){ recording = 1 video_recorder.record() } if(keysPressed['='] && recording == 1){ recording = 0 video_recorder.stop() video_recorder.download('File Name As A String.webm') } */ this.record = Record this.stop = Stop this.download = saveToDownloads let blobCaptures = [] let outputFormat = {} let recorder = {} let canvasInput = canvas.captureStream() if (typeof canvasInput == undefined || !canvasInput) { return } const video = document.createElement('video') video.style.display = 'none' function Record() { let formats = [ 'video/vp8', "video/webm", 'video/webm,codecs=vp9', "video/webm\;codecs=vp8", "video/webm\;codecs=daala", "video/webm\;codecs=h264", "video/mpeg" ]; for (let t = 0; t < formats.length; t++) { if (MediaRecorder.isTypeSupported(formats[t])) { outputFormat = formats[t] break } } if (typeof outputFormat != "string") { return } else { let videoSettings = { mimeType: outputFormat, videoBitsPerSecond: bitrate || 2000000 // 2Mbps }; blobCaptures = [] try { recorder = new MediaRecorder(canvasInput, videoSettings) } catch (error) { return; } recorder.onstop = handleStop recorder.ondataavailable = handleAvailableData recorder.start(100) } } function handleAvailableData(event) { if (event.data && event.data.size > 0) { blobCaptures.push(event.data) } } function handleStop() { const superBuffer = new Blob(blobCaptures, { type: outputFormat }) video.src = window.URL.createObjectURL(superBuffer) } function Stop() { recorder.stop() video.controls = true } function saveToDownloads(input) { // specifying a file name for the output const name = input || 'video_out.webm' const blob = new Blob(blobCaptures, { type: outputFormat }) const url = window.URL.createObjectURL(blob) const storageElement = document.createElement('a') storageElement.style.display = 'none' storageElement.href = url storageElement.download = name document.body.appendChild(storageElement) storageElement.click() setTimeout(() => { document.body.removeChild(storageElement) window.URL.revokeObjectURL(url) }, 100) } } const gamepadAPI = { controller: {}, turbo: true, connect: function (evt) { if (navigator.getGamepads()[0] != null) { gamepadAPI.controller = navigator.getGamepads()[0] gamepadAPI.turbo = true; } else if (navigator.getGamepads()[1] != null) { gamepadAPI.controller = navigator.getGamepads()[0] gamepadAPI.turbo = true; } else if (navigator.getGamepads()[2] != null) { gamepadAPI.controller = navigator.getGamepads()[0] gamepadAPI.turbo = true; } else if (navigator.getGamepads()[3] != null) { gamepadAPI.controller = navigator.getGamepads()[0] gamepadAPI.turbo = true; } for (let i = 0; i < gamepads.length; i++) { if (gamepads[i] === null) { continue; } if (!gamepads[i].connected) { continue; } } }, disconnect: function (evt) { gamepadAPI.turbo = false; delete gamepadAPI.controller; }, update: function () { gamepadAPI.controller = navigator.getGamepads()[0] gamepadAPI.buttonsCache = [];// clear the buttons cache for (var k = 0; k < gamepadAPI.buttonsStatus.length; k++) {// move the buttons status from the previous frame to the cache gamepadAPI.buttonsCache[k] = gamepadAPI.buttonsStatus[k]; } gamepadAPI.buttonsStatus = [];// clear the buttons status var c = gamepadAPI.controller || {}; // get the gamepad object var pressed = []; if (c.buttons) { for (var b = 0, t = c.buttons.length; b < t; b++) {// loop through buttons and push the pressed ones to the array if (c.buttons[b].pressed) { pressed.push(gamepadAPI.buttons[b]); } } } var axes = []; if (c.axes) { for (var a = 0, x = c.axes.length; a < x; a++) {// loop through axes and push their values to the array axes.push(c.axes[a].toFixed(2)); } } gamepadAPI.axesStatus = axes;// assign received values gamepadAPI.buttonsStatus = pressed; // console.log(pressed); // return buttons for debugging purposes return pressed; }, buttonPressed: function (button, hold) { var newPress = false; for (var i = 0, s = gamepadAPI.buttonsStatus.length; i < s; i++) {// loop through pressed buttons if (gamepadAPI.buttonsStatus[i] == button) {// if we found the button we're looking for... newPress = true;// set the boolean variable to true if (!hold) {// if we want to check the single press for (var j = 0, p = gamepadAPI.buttonsCache.length; j < p; j++) {// loop through the cached states from the previous frame if (gamepadAPI.buttonsCache[j] == button) { // if the button was already pressed, ignore new press newPress = false; } } } } } return newPress; }, buttons: [ 'A', 'B', 'X', 'Y', 'LB', 'RB', 'Left-Trigger', 'Right-Trigger', 'Back', 'Start', 'Axis-Left', 'Axis-Right', 'DPad-Up', 'DPad-Down', 'DPad-Left', 'DPad-Right', "Power" ], buttonsCache: [], buttonsStatus: [], axesStatus: [] }; let canvas let canvas_context let keysPressed = {} let FLEX_engine let TIP_engine = {} let XS_engine let YS_engine class Point { constructor(x, y) { this.x = x this.y = y this.radius = 0 } pointDistance(point) { return (new LineOP(this, point, "transparent", 0)).hypotenuse() } } class Vector { // vector math and physics if you prefer this over vector components on circles constructor(object = (new Point(0, 0)), xmom = 0, ymom = 0) { this.xmom = xmom this.ymom = ymom this.object = object } isToward(point) { let link = new LineOP(this.object, point) let dis1 = link.squareDistance() let dummy = new Point(this.object.x + this.xmom, this.object.y + this.ymom) let link2 = new LineOP(dummy, point) let dis2 = link2.squareDistance() if (dis2 < dis1) { return true } else { return false } } rotate(angleGoal) { let link = new Line(this.xmom, this.ymom, 0, 0) let length = link.hypotenuse() let x = (length * Math.cos(angleGoal)) let y = (length * Math.sin(angleGoal)) this.xmom = x this.ymom = y } magnitude() { return (new Line(this.xmom, this.ymom, 0, 0)).hypotenuse() } normalize(size = 1) { let magnitude = this.magnitude() this.xmom /= magnitude this.ymom /= magnitude this.xmom *= size this.ymom *= size } multiply(vect) { let point = new Point(0, 0) let end = new Point(this.xmom + vect.xmom, this.ymom + vect.ymom) return point.pointDistance(end) } add(vect) { return new Vector(this.object, this.xmom + vect.xmom, this.ymom + vect.ymom) } subtract(vect) { return new Vector(this.object, this.xmom - vect.xmom, this.ymom - vect.ymom) } divide(vect) { return new Vector(this.object, this.xmom / vect.xmom, this.ymom / vect.ymom) //be careful with this, I don't think this is right } draw() { let dummy = new Point(this.object.x + this.xmom, this.object.y + this.ymom) let link = new LineOP(this.object, dummy, "#FFFFFF", 1) link.draw() } } class Line { constructor(x, y, x2, y2, color, width) { this.x1 = x this.y1 = y this.x2 = x2 this.y2 = y2 this.color = color this.width = width } angle() { return Math.atan2(this.y1 - this.y2, this.x1 - this.x2) } squareDistance() { let xdif = this.x1 - this.x2 let ydif = this.y1 - this.y2 let squareDistance = (xdif * xdif) + (ydif * ydif) return squareDistance } hypotenuse() { let xdif = this.x1 - this.x2 let ydif = this.y1 - this.y2 let hypotenuse = (xdif * xdif) + (ydif * ydif) if (hypotenuse < 10000000 - 1) { if (hypotenuse > 1000) { return squaretable[`${Math.round(10 * Math.round((hypotenuse * .1)))}`] } else { return squaretable[`${Math.round(hypotenuse)}`] } } else { return Math.sqrt(hypotenuse) } } draw() { let linewidthstorage = canvas_context.lineWidth canvas_context.strokeStyle = this.color canvas_context.lineWidth = this.width canvas_context.beginPath() canvas_context.moveTo(this.x1, this.y1) canvas_context.lineTo(this.x2, this.y2) canvas_context.stroke() canvas_context.lineWidth = linewidthstorage } } class LineOP { constructor(object, target, color, width) { this.object = object this.target = target this.color = color this.width = width } intersects(line) { console.log(line) var det, gm, lm; det = (this.target.x - this.object.x) * (line.target.y - line.object.y) - (line.target.x - line.object.x) * (this.target.y - this.object.y); if (det === 0) { return false; } else { lm = ((line.target.y - line.object.y) * (line.target.x - this.object.x) + (line.object.x - line.target.x) * (line.target.y - this.object.y)) / det; gm = ((this.object.y - this.target.y) * (line.target.x - this.object.x) + (this.target.x - this.object.x) * (line.target.y - this.object.y)) / det; return (0 < lm && lm < 1) && (0 < gm && gm < 1); } } squareDistance() { let xdif = this.object.x - this.target.x let ydif = this.object.y - this.target.y let squareDistance = (xdif * xdif) + (ydif * ydif) return squareDistance } hypotenuse() { let xdif = this.object.x - this.target.x let ydif = this.object.y - this.target.y let hypotenuse = (xdif * xdif) + (ydif * ydif) if (hypotenuse < 10000000 - 1) { if (hypotenuse > 1000) { return squaretable[`${Math.round(10 * Math.round((hypotenuse * .1)))}`] } else { return squaretable[`${Math.round(hypotenuse)}`] } } else { return Math.sqrt(hypotenuse) } } angle() { return Math.atan2(this.object.y - this.target.y, this.object.x - this.target.x) } draw() { let linewidthstorage = canvas_context.lineWidth canvas_context.strokeStyle = this.color canvas_context.lineWidth = this.width canvas_context.beginPath() canvas_context.moveTo(this.object.x, this.object.y) canvas_context.lineTo(this.target.x, this.target.y) canvas_context.stroke() canvas_context.lineWidth = linewidthstorage } } class Rectangle { constructor(x, y, width, height, color, fill = 1, stroke = 0, strokeWidth = 1) { this.x = x this.y = y this.height = height this.width = width this.color = color this.xmom = 0 this.ymom = 0 this.stroke = stroke this.strokeWidth = strokeWidth this.fill = fill } draw() { canvas_context.fillStyle = this.color canvas_context.fillRect(this.x, this.y, this.width, this.height) } move() { this.x += this.xmom this.y += this.ymom } isPointInside(point) { if (point.x >= this.x) { if (point.y >= this.y) { if (point.x <= this.x + this.width) { if (point.y <= this.y + this.height) { return true } } } } return false } doesPerimeterTouch(point) { if (point.x + point.radius >= this.x) { if (point.y + point.radius >= this.y) { if (point.x - point.radius <= this.x + this.width) { if (point.y - point.radius <= this.y + this.height) { return true } } } } return false } } class Circle { constructor(x, y, radius, color, xmom = 0, ymom = 0, friction = 1, reflect = 0, strokeWidth = 0, strokeColor = "transparent") { this.x = x this.y = y this.radius = radius this.color = color this.xmom = xmom this.ymom = ymom this.friction = friction this.reflect = reflect this.strokeWidth = strokeWidth this.strokeColor = strokeColor } draw() { canvas_context.lineWidth = this.strokeWidth canvas_context.strokeStyle = this.color canvas_context.beginPath(); if (this.radius > 0) { canvas_context.arc(this.x, this.y, this.radius, 0, (Math.PI * 2), true) canvas_context.fillStyle = this.color canvas_context.fill() canvas_context.stroke(); } else { // console.log("The circle is below a radius of 0, and has not been drawn. The circle is:", this) } } move() { if (this.reflect == 1) { if (this.x + this.radius > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.y + this.radius > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.x - this.radius < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.y - this.radius < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.x += this.xmom this.y += this.ymom } unmove() { if (this.reflect == 1) { if (this.x + this.radius > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.y + this.radius > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.x - this.radius < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.y - this.radius < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.x -= this.xmom this.y -= this.ymom } frictiveMove() { if (this.reflect == 1) { if (this.x + this.radius > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.y + this.radius > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.x - this.radius < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.y - this.radius < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.x += this.xmom this.y += this.ymom this.xmom *= this.friction this.ymom *= this.friction } frictiveunMove() { if (this.reflect == 1) { if (this.x + this.radius > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.y + this.radius > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.x - this.radius < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.y - this.radius < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.xmom /= this.friction this.ymom /= this.friction this.x -= this.xmom this.y -= this.ymom } isPointInside(point) { this.areaY = point.y - this.y this.areaX = point.x - this.x if (((this.areaX * this.areaX) + (this.areaY * this.areaY)) <= (this.radius * this.radius)) { return true } return false } doesPerimeterTouch(point) { this.areaY = point.y - this.y this.areaX = point.x - this.x if (((this.areaX * this.areaX) + (this.areaY * this.areaY)) <= ((this.radius + point.radius) * (this.radius + point.radius))) { return true } return false } } class Polygon { constructor(x, y, size, color, sides = 3, xmom = 0, ymom = 0, angle = 0, reflect = 0) { if (sides < 2) { sides = 2 } this.reflect = reflect this.xmom = xmom this.ymom = ymom this.body = new Circle(x, y, size - (size * .293), "transparent") this.nodes = [] this.angle = angle this.size = size this.color = color this.angleIncrement = (Math.PI * 2) / sides this.sides = sides for (let t = 0; t < sides; t++) { let node = new Circle(this.body.x + (this.size * (Math.cos(this.angle))), this.body.y + (this.size * (Math.sin(this.angle))), 0, "transparent") this.nodes.push(node) this.angle += this.angleIncrement } } isPointInside(point) { // rough approximation this.body.radius = this.size - (this.size * .293) if (this.sides <= 2) { return false } this.areaY = point.y - this.body.y this.areaX = point.x - this.body.x if (((this.areaX * this.areaX) + (this.areaY * this.areaY)) <= (this.body.radius * this.body.radius)) { return true } return false } move() { if (this.reflect == 1) { if (this.body.x > canvas.width) { if (this.xmom > 0) { this.xmom *= -1 } } if (this.body.y > canvas.height) { if (this.ymom > 0) { this.ymom *= -1 } } if (this.body.x < 0) { if (this.xmom < 0) { this.xmom *= -1 } } if (this.body.y < 0) { if (this.ymom < 0) { this.ymom *= -1 } } } this.body.x += this.xmom this.body.y += this.ymom } draw() { this.nodes = [] this.angleIncrement = (Math.PI * 2) / this.sides this.body.radius = this.size - (this.size * .293) for (let t = 0; t < this.sides; t++) { let node = new Circle(this.body.x + (this.size * (Math.cos(this.angle))), this.body.y + (this.size * (Math.sin(this.angle))), 0, "transparent") this.nodes.push(node) this.angle += this.angleIncrement } canvas_context.strokeStyle = this.color canvas_context.fillStyle = this.color canvas_context.lineWidth = 0 canvas_context.beginPath() canvas_context.moveTo(this.nodes[0].x, this.nodes[0].y) for (let t = 1; t < this.nodes.length; t++) { canvas_context.lineTo(this.nodes[t].x, this.nodes[t].y) } canvas_context.lineTo(this.nodes[0].x, this.nodes[0].y) canvas_context.fill() canvas_context.stroke() canvas_context.closePath() } } class Shape { constructor(shapes) { this.shapes = shapes } draw() { for (let t = 0; t < this.shapes.length; t++) { this.shapes[t].draw() } } move() { if (typeof this.xmom != "number") { this.xmom = 0 } if (typeof this.ymom != "number") { this.ymom = 0 } for (let t = 0; t < this.shapes.length; t++) { this.shapes[t].x += this.xmom this.shapes[t].y += this.ymom this.shapes[t].draw() } } isPointInside(point) { for (let t = 0; t < this.shapes.length; t++) { if (this.shapes[t].isPointInside(point)) { return true } } return false } doesPerimeterTouch(point) { for (let t = 0; t < this.shapes.length; t++) { if (this.shapes[t].doesPerimeterTouch(point)) { return true } } return false } innerShape(point) { for (let t = 0; t < this.shapes.length; t++) { if (this.shapes[t].doesPerimeterTouch(point)) { return this.shapes[t] } } return false } isInsideOf(box) { for (let t = 0; t < this.shapes.length; t++) { if (box.isPointInside(this.shapes[t])) { return true } } return false } adjustByFromDisplacement(x, y) { for (let t = 0; t < this.shapes.length; t++) { if (typeof this.shapes[t].fromRatio == "number") { this.shapes[t].x += x * this.shapes[t].fromRatio this.shapes[t].y += y * this.shapes[t].fromRatio } } } adjustByToDisplacement(x, y) { for (let t = 0; t < this.shapes.length; t++) { if (typeof this.shapes[t].toRatio == "number") { this.shapes[t].x += x * this.shapes[t].toRatio this.shapes[t].y += y * this.shapes[t].toRatio } } } mixIn(arr) { for (let t = 0; t < arr.length; t++) { for (let k = 0; k < arr[t].shapes.length; k++) { this.shapes.push(arr[t].shapes[k]) } } } push(object) { this.shapes.push(object) } } class Spring { constructor(x, y, radius, color, body = 0, length = 1, gravity = 0, width = 1) { if (body == 0) { this.body = new Circle(x, y, radius, color) this.anchor = new Circle(x, y, radius, color) this.beam = new Line(this.body.x, this.body.y, this.anchor.x, this.anchor.y, "yellow", width) this.length = length } else { this.body = body this.anchor = new Circle(x, y, radius, color) this.beam = new Line(this.body.x, this.body.y, this.anchor.x, this.anchor.y, "yellow", width) this.length = length } this.gravity = gravity this.width = width } balance() { this.beam = new Line(this.body.x, this.body.y, this.anchor.x, this.anchor.y, "yellow", this.width) if (this.beam.hypotenuse() < this.length) { this.body.xmom += (this.body.x - this.anchor.x) / this.length this.body.ymom += (this.body.y - this.anchor.y) / this.length this.anchor.xmom -= (this.body.x - this.anchor.x) / this.length this.anchor.ymom -= (this.body.y - this.anchor.y) / this.length } else { this.body.xmom -= (this.body.x - this.anchor.x) / this.length this.body.ymom -= (this.body.y - this.anchor.y) / this.length this.anchor.xmom += (this.body.x - this.anchor.x) / this.length this.anchor.ymom += (this.body.y - this.anchor.y) / this.length } let xmomentumaverage = (this.body.xmom + this.anchor.xmom) / 2 let ymomentumaverage = (this.body.ymom + this.anchor.ymom) / 2 this.body.xmom = (this.body.xmom + xmomentumaverage) / 2 this.body.ymom = (this.body.ymom + ymomentumaverage) / 2 this.anchor.xmom = (this.anchor.xmom + xmomentumaverage) / 2 this.anchor.ymom = (this.anchor.ymom + ymomentumaverage) / 2 } draw() { this.beam = new Line(this.body.x, this.body.y, this.anchor.x, this.anchor.y, "yellow", this.width) this.beam.draw() this.body.draw() this.anchor.draw() } move() { this.anchor.ymom += this.gravity this.anchor.move() } } class SpringOP { constructor(body, anchor, length, width = 3, color = body.color) { this.body = body this.anchor = anchor this.beam = new LineOP(body, anchor, color, width) this.length = length } balance() { if (this.beam.hypotenuse() < this.length) { this.body.xmom += ((this.body.x - this.anchor.x) / this.length) this.body.ymom += ((this.body.y - this.anchor.y) / this.length) this.anchor.xmom -= ((this.body.x - this.anchor.x) / this.length) this.anchor.ymom -= ((this.body.y - this.anchor.y) / this.length) } else if (this.beam.hypotenuse() > this.length) { this.body.xmom -= (this.body.x - this.anchor.x) / (this.length) this.body.ymom -= (this.body.y - this.anchor.y) / (this.length) this.anchor.xmom += (this.body.x - this.anchor.x) / (this.length) this.anchor.ymom += (this.body.y - this.anchor.y) / (this.length) } let xmomentumaverage = (this.body.xmom + this.anchor.xmom) / 2 let ymomentumaverage = (this.body.ymom + this.anchor.ymom) / 2 this.body.xmom = (this.body.xmom + xmomentumaverage) / 2 this.body.ymom = (this.body.ymom + ymomentumaverage) / 2 this.anchor.xmom = (this.anchor.xmom + xmomentumaverage) / 2 this.anchor.ymom = (this.anchor.ymom + ymomentumaverage) / 2 } draw() { this.beam.draw() } move() { //movement of SpringOP objects should be handled separate from their linkage, to allow for many connections, balance here with this object, move nodes independently } } class Color { constructor(baseColor, red = -1, green = -1, blue = -1, alpha = 1) { this.hue = baseColor if (red != -1 && green != -1 && blue != -1) { this.r = red this.g = green this.b = blue if (alpha != 1) { if (alpha < 1) { this.alpha = alpha } else { this.alpha = alpha / 255 if (this.alpha > 1) { this.alpha = 1 } } } if (this.r > 255) { this.r = 255 } if (this.g > 255) { this.g = 255 } if (this.b > 255) { this.b = 255 } if (this.r < 0) { this.r = 0 } if (this.g < 0) { this.g = 0 } if (this.b < 0) { this.b = 0 } } else { this.r = 0 this.g = 0 this.b = 0 } } normalize() { if (this.r > 255) { this.r = 255 } if (this.g > 255) { this.g = 255 } if (this.b > 255) { this.b = 255 } if (this.r < 0) { this.r = 0 } if (this.g < 0) { this.g = 0 } if (this.b < 0) { this.b = 0 } } randomLight() { var letters = '0123456789ABCDEF'; var hash = '#'; for (var i = 0; i < 6; i++) { hash += letters[(Math.floor(Math.random() * 12) + 4)]; } var color = new Color(hash, 55 + Math.random() * 200, 55 + Math.random() * 200, 55 + Math.random() * 200) return color; } randomDark() { var letters = '0123456789ABCDEF'; var hash = '#'; for (var i = 0; i < 6; i++) { hash += letters[(Math.floor(Math.random() * 12))]; } var color = new Color(hash, Math.random() * 200, Math.random() * 200, Math.random() * 200) return color; } random() { var letters = '0123456789ABCDEF'; var hash = '#'; for (var i = 0; i < 6; i++) { hash += letters[(Math.floor(Math.random() * 16))]; } var color = new Color(hash, Math.random() * 255, Math.random() * 255, Math.random() * 255) return color; } } class Softbody { //buggy, spins in place constructor(x, y, radius, color, members = 10, memberLength = 5, force = 10, gravity = 0) { this.springs = [] this.pin = new Circle(x, y, radius, color) this.spring = new Spring(x, y, radius, color, this.pin, memberLength, gravity) this.springs.push(this.spring) for (let k = 0; k < members; k++) { this.spring = new Spring(x, y, radius, color, this.spring.anchor, memberLength, gravity) if (k < members - 1) { this.springs.push(this.spring) } else { this.spring.anchor = this.pin this.springs.push(this.spring) } } this.forceConstant = force this.centroid = new Point(0, 0) } circularize() { this.xpoint = 0 this.ypoint = 0 for (let s = 0; s < this.springs.length; s++) { this.xpoint += (this.springs[s].anchor.x / this.springs.length) this.ypoint += (this.springs[s].anchor.y / this.springs.length) } this.centroid.x = this.xpoint this.centroid.y = this.ypoint this.angle = 0 this.angleIncrement = (Math.PI * 2) / this.springs.length for (let t = 0; t < this.springs.length; t++) { this.springs[t].body.x = this.centroid.x + (Math.cos(this.angle) * this.forceConstant) this.springs[t].body.y = this.centroid.y + (Math.sin(this.angle) * this.forceConstant) this.angle += this.angleIncrement } } balance() { for (let s = this.springs.length - 1; s >= 0; s--) { this.springs[s].balance() } this.xpoint = 0 this.ypoint = 0 for (let s = 0; s < this.springs.length; s++) { this.xpoint += (this.springs[s].anchor.x / this.springs.length) this.ypoint += (this.springs[s].anchor.y / this.springs.length) } this.centroid.x = this.xpoint this.centroid.y = this.ypoint for (let s = 0; s < this.springs.length; s++) { this.link = new Line(this.centroid.x, this.centroid.y, this.springs[s].anchor.x, this.springs[s].anchor.y, 0, "transparent") if (this.link.hypotenuse() != 0) { this.springs[s].anchor.xmom += (((this.springs[s].anchor.x - this.centroid.x) / (this.link.hypotenuse()))) * this.forceConstant this.springs[s].anchor.ymom += (((this.springs[s].anchor.y - this.centroid.y) / (this.link.hypotenuse()))) * this.forceConstant } } for (let s = 0; s < this.springs.length; s++) { this.springs[s].move() } for (let s = 0; s < this.springs.length; s++) { this.springs[s].draw() } } } class Observer { constructor(x, y, radius, color, range = 100, rays = 10, angle = (Math.PI * .125)) { this.body = new Circle(x, y, radius, color) this.color = color this.ray = [] this.rayrange = range this.globalangle = Math.PI this.gapangle = angle this.currentangle = 0 this.obstacles = [] this.raymake = rays } beam() { this.currentangle = this.gapangle / 2 for (let k = 0; k < this.raymake; k++) { this.currentangle += (this.gapangle / Math.ceil(this.raymake / 2)) let ray = new Circle(this.body.x, this.body.y, 1, "white", (((Math.cos(this.globalangle + this.currentangle)))), (((Math.sin(this.globalangle + this.currentangle))))) ray.collided = 0 ray.lifespan = this.rayrange - 1 this.ray.push(ray) } for (let f = 0; f < this.rayrange; f++) { for (let t = 0; t < this.ray.length; t++) { if (this.ray[t].collided < 1) { this.ray[t].move() for (let q = 0; q < this.obstacles.length; q++) { if (this.obstacles[q].isPointInside(this.ray[t])) { this.ray[t].collided = 1 } } } } } } draw() { this.beam() this.body.draw() canvas_context.lineWidth = 1 canvas_context.fillStyle = this.color canvas_context.strokeStyle = this.color canvas_context.beginPath() canvas_context.moveTo(this.body.x, this.body.y) for (let y = 0; y < this.ray.length; y++) { canvas_context.lineTo(this.ray[y].x, this.ray[y].y) canvas_context.lineTo(this.body.x, this.body.y) } canvas_context.stroke() canvas_context.fill() this.ray = [] } } function setUp(canvas_pass, style = "#000000") { canvas = canvas_pass video_recorder = new CanvasCaptureToWEBM(canvas, 4500000); canvas_context = canvas.getContext('2d'); canvas.style.background = style window.setInterval(function () { for (let t = 0; t < Math.floor(2499/3); t++) { main() } }, 1) document.addEventListener('keydown', (event) => { keysPressed[event.key] = true; }); document.addEventListener('keyup', (event) => { delete keysPressed[event.key]; }); window.addEventListener('pointerdown', e => { FLEX_engine = canvas.getBoundingClientRect(); XS_engine = e.clientX - FLEX_engine.left; YS_engine = e.clientY - FLEX_engine.top; TIP_engine.x = XS_engine TIP_engine.y = YS_engine TIP_engine.body = TIP_engine // example usage: if(object.isPointInside(TIP_engine)){ take action } }); window.addEventListener('pointermove', continued_stimuli); window.addEventListener('pointerup', e => { // window.removeEventListener("pointermove", continued_stimuli); }) function continued_stimuli(e) { FLEX_engine = canvas.getBoundingClientRect(); XS_engine = e.clientX - FLEX_engine.left; YS_engine = e.clientY - FLEX_engine.top; TIP_engine.x = XS_engine TIP_engine.y = YS_engine TIP_engine.body = TIP_engine } } function gamepad_control(object, speed = 1) { // basic control for objects using the controler // console.log(gamepadAPI.axesStatus[1]*gamepadAPI.axesStatus[0]) //debugging if (typeof object.body != 'undefined') { if (typeof (gamepadAPI.axesStatus[1]) != 'undefined') { if (typeof (gamepadAPI.axesStatus[0]) != 'undefined') { object.body.x += (gamepadAPI.axesStatus[0] * speed) object.body.y += (gamepadAPI.axesStatus[1] * speed) } } } else if (typeof object != 'undefined') { if (typeof (gamepadAPI.axesStatus[1]) != 'undefined') { if (typeof (gamepadAPI.axesStatus[0]) != 'undefined') { object.x += (gamepadAPI.axesStatus[0] * speed) object.y += (gamepadAPI.axesStatus[1] * speed) } } } } function control(object, speed = 1) { // basic control for objects if (typeof object.body != 'undefined') { if (keysPressed['w']) { object.body.y -= speed } if (keysPressed['d']) { object.body.x += speed } if (keysPressed['s']) { object.body.y += speed } if (keysPressed['a']) { object.body.x -= speed } } else if (typeof object != 'undefined') { if (keysPressed['w']) { object.y -= speed } if (keysPressed['d']) { object.x += speed } if (keysPressed['s']) { object.y += speed } if (keysPressed['a']) { object.x -= speed } } } function getRandomLightColor() { // random color that will be visible on black background var letters = '0123456789ABCDEF'; var color = '#'; for (var i = 0; i < 6; i++) { color += letters[(Math.floor(Math.random() * 12) + 4)]; } return color; } function getRandomColor() { // random color var letters = '0123456789ABCDEF'; var color = '#'; for (var i = 0; i < 6; i++) { color += letters[(Math.floor(Math.random() * 16) + 0)]; } return color; } function getRandomDarkColor() {// color that will be visible on a black background var letters = '0123456789ABCDEF'; var color = '#'; for (var i = 0; i < 6; i++) { color += letters[(Math.floor(Math.random() * 12))]; } return color; } function castBetween(from, to, granularity = 10, radius = 1) { //creates a sort of beam hitbox between two points, with a granularity (number of members over distance), with a radius defined as well let limit = granularity let shape_array = [] for (let t = 0; t < limit; t++) { let circ = new Circle((from.x * (t / limit)) + (to.x * ((limit - t) / limit)), (from.y * (t / limit)) + (to.y * ((limit - t) / limit)), radius, "red") circ.toRatio = t / limit circ.fromRatio = (limit - t) / limit shape_array.push(circ) } return (new Shape(shape_array)) } function castBetweenPoints(from, to, granularity = 10, radius = 1) { //creates a sort of beam hitbox between two points, with a granularity (number of members over distance), with a radius defined as well let limit = granularity let shape_array = [] for (let t = 0; t < limit; t++) { let circ = new Circle((from.x * (t / limit)) + (to.x * ((limit - t) / limit)), (from.y * (t / limit)) + (to.y * ((limit - t) / limit)), radius, "red") circ.toRatio = t / limit circ.fromRatio = (limit - t) / limit shape_array.push(circ) } return shape_array } class Disang { constructor(dis, ang) { this.dis = dis this.angle = ang } } class BezierHitbox { constructor(x, y, cx, cy, ex, ey, color = "red") { // this function takes a starting x,y, a control point x,y, and a end point x,y this.color = color this.x = x this.y = y this.cx = cx this.cy = cy this.ex = ex this.ey = ey this.metapoint = new Circle((x + cx + ex) / 3, (y + cy + ey) / 3, 3, "#FFFFFF") this.granularity = 100 this.body = [...castBetweenPoints((new Point(this.x, this.y)), (new Point(this.ex, this.ey)), this.granularity, 0)] let angle = (new Line(this.x, this.y, this.ex, this.ey)).angle() this.angles = [] for (let t = 0; t < this.granularity; t++) { this.angles.push(angle) } for (let t = 0; t <= 1; t += 1 / this.granularity) { this.body.push(this.getQuadraticXY(t)) this.angles.push(this.getQuadraticAngle(t)) } this.hitbox = [] for (let t = 0; t < this.body.length; t++) { let link = new LineOP(this.body[t], this.metapoint) let disang = new Disang(link.hypotenuse(), link.angle() + (Math.PI * 2)) this.hitbox.push(disang) } this.constructed = 1 } isPointInside(point) { let link = new LineOP(point, this.metapoint) let angle = (link.angle() + (Math.PI * 2)) let dis = link.hypotenuse() for (let t = 1; t < this.hitbox.length; t++) { if (Math.abs(this.hitbox[t].angle - this.hitbox[t - 1].angle) > 1) { continue } if (angle.between(this.hitbox[t].angle, this.hitbox[t - 1].angle)) { if (dis < (this.hitbox[t].dis + this.hitbox[t - 1].dis) * .5) { return true } } } return false } doesPerimeterTouch(point) { let link = new LineOP(point, this.metapoint) let angle = (link.angle() + (Math.PI * 2)) let dis = link.hypotenuse() for (let t = 1; t < this.hitbox.length; t++) { if (Math.abs(this.hitbox[t].angle - this.hitbox[t - 1].angle) > 1) { continue } if (angle.between(this.hitbox[t].angle, this.hitbox[t - 1].angle)) { if (dis < ((this.hitbox[t].dis + this.hitbox[t - 1].dis) * .5) + point.radius) { return this.angles[t] } } } return false } draw() { this.metapoint.draw() let tline = new Line(this.x, this.y, this.ex, this.ey, this.color, 3) tline.draw() canvas_context.beginPath() this.median = new Point((this.x + this.ex) * .5, (this.y + this.ey) * .5) let angle = (new LineOP(this.median, this.metapoint)).angle() let dis = (new LineOP(this.median, this.metapoint)).hypotenuse() canvas_context.bezierCurveTo(this.x, this.y, this.cx - (Math.cos(angle) * dis * .38), this.cy - (Math.sin(angle) * dis * .38), this.ex, this.ey) canvas_context.fillStyle = this.color canvas_context.strokeStyle = this.color canvas_context.lineWidth = 3 canvas_context.stroke() } getQuadraticXY(t) { return new Point((((1 - t) * (1 - t)) * this.x) + (2 * (1 - t) * t * this.cx) + (t * t * this.ex), (((1 - t) * (1 - t)) * this.y) + (2 * (1 - t) * t * this.cy) + (t * t * this.ey)) } getQuadraticAngle(t) { var dx = 2 * (1 - t) * (this.cx - this.x) + 2 * t * (this.ex - this.cx); var dy = 2 * (1 - t) * (this.cy - this.y) + 2 * t * (this.ey - this.cy); return -Math.atan2(dx, dy) + 0.5 * Math.PI; } } Number.prototype.between = function (a, b, inclusive) { var min = Math.min(a, b), max = Math.max(a, b); return inclusive ? this >= min && this <= max : this > min && this < max; } class Weight { constructor(from, to) { this.value = this.weight() this.from = from this.to = to this.change = 0 this.delta = 1 } valueOf() { return this.value } weight() { return ((Math.random() - .5) * 2) / 1 } setChange(num) { this.change = num } setWeight(num) { this.value = num } } class Perceptron { constructor(inputs) { this.markCount = 0 this.bias = (((Math.random() - .5) * 2) / 1) / 1 this.value = this.bias this.weights = [] this.outputConnections = [] this.inputs = inputs this.error = 0 this.delta = 1 for (let t = 0; t < this.inputs.length; t++) { this.weights.push(this.weight(this.inputs[t])) } this.z = -1 this.change = 0 } setError(error) { this.error = error } setDelta(delta) { this.delta = delta for (let t = 0; t < this.outputConnections.length; t++) { this.outputConnections[t].delta = this.delta } } newIn(inputs) { this.inputs = inputs for (let t = 0; t < this.inputs.length; t++) { this.weights.push(this.weight(this.inputs[t])) } } setBias(bias) { this.bias = bias } setChange(num) { this.change = num } weight(link) { let weight = new Weight(link, this) if (typeof link != "number") { link.outputConnections.push(weight) } return weight } valueOf() { return this.value } compute(inputs = this.inputs, dr = 0) { this.inputs = inputs this.value = this.bias for (let t = 0; t < inputs.length; t++) { if (t > this.weights.length - 1) { this.weights.push(this.weight()) this.value += (inputs[t].valueOf() * this.weights[t].valueOf()) } else { this.value += (inputs[t].valueOf() * this.weights[t].valueOf()) } } this.sig() // this.gauss() if (Math.random() < .05 && dr == 1) { // return 0 //Math.random() //dropout } return this.value } relu() { this.value = Math.min(Math.max(this.value, perc.reluslime), 1) } sig() { this.value = 1 / (1 + (Math.pow(Math.E, -this.value))) } gauss() { this.value = Math.min(Math.max(Math.abs(this.value), 0.00000001), 1) } } class Network { constructor(inputs, layerSetupArray) { this.check = 0 this.error = 0 this.reluslime = .00001 this.momentum = 0.001551565 this.learningRate = 0.001551565 this.setup = layerSetupArray this.inputs = inputs this.structure = [] this.ztructure = [] this.outputs = [] this.nodeCount = 0 this.markCount = 0 for (let t = 0; t < layerSetupArray.length; t++) { let scaffold = [] this.nodeCount += layerSetupArray[t] for (let k = 0; k < layerSetupArray[t]; k++) { let cept if (t == 0) { cept = new Perceptron(this.inputs) cept.markCount = this.markCount this.markCount++ } else { cept = new Perceptron(this.structure[t - 1]) cept.markCount = this.markCount this.markCount++ } scaffold.push(cept) } this.structure.push(scaffold) } for (let t = 0; t < inputs.length; t++) { inputs[t].outputConnections = [] } this.clusters = [] for (let t = 0; t < this.nodeCount; t++) { let cluster = [] for (let k = 0; k < Math.floor(Math.random() * this.nodeCount * 30) + 30; k++) { let index = new Point(-1, -1) if (Math.random() < .9) { let x = Math.floor(Math.random() * layerSetupArray.length) let y = Math.floor(Math.random() * layerSetupArray[x]) index.x = x index.y = y if (!cluster.includes(this.structure[index.x][index.y])) { cluster.push(this.structure[index.x][index.y]) } } else { let x = Math.floor(Math.random() * inputs.length) index.x = x if (!cluster.includes(inputs[index.x])) { let node = inputs[index.x] node.value = inputs[index.x].valueOf() node.flag = index.x node.data = 1 cluster.push(node) } } } this.clusters.push(cluster) } this.ztructure = [[]] for (let t = 0; t < this.clusters.length; t++) { let s = 0 let f = t while (this.structure[s].length <= f) { f -= this.structure[s].length s++ if (s > this.structure.length) { break } } let g = f let cetp = this.structure[s][g] /// new Perceptron(this.clusters[t]) console.log(cetp) cetp.weights = [] cetp.outputConnections = [] } for (let t = 0; t < this.clusters.length; t++) { let s = 0 let f = t while (this.structure[s].length <= f) { // console.log(f, this.structure[s]) f -= this.structure[s].length s++ if (s > this.structure.length) { break } } let g = f // console.log(s, g) let cetp = this.structure[s][g] /// new Perceptron(this.clusters[t]) // console.log(cetp) cetp.weights = [] // cetp.outputConnections = [] cetp.inputs = [] cetp.newIn(this.clusters[t]) cetp.markCount = t cetp.compute(this.clusters[t]) this.ztructure[0][cetp.markCount] = cetp } this.lastinputs = [...this.inputs] this.lastgoals = [...this.lastinputs] this.swap = [] } zalculateDeltasSigmoid(goals) { for (let t = this.ztructure.length - 1; t >= 0; t--) { const layer = this.ztructure[t] for (let k = layer.length - 1; k >= 0; k--) { const perceptron = layer[k] let output = perceptron.valueOf() let error = 0 if (layer.length-3 <= k) { error = goals[k] - output; } else { for (let k = 0; k < perceptron.outputConnections.length; k++) { const currentConnection = perceptron.outputConnections[k] error += currentConnection.to.delta * currentConnection.valueOf() let j = 0 // while(currentConnection.to.outputConnections.length > 0){ // j++ // if(j > 1000){ // break // } // } } } perceptron.setError(error) this.error += Math.abs(error) perceptron.setDelta(error * output * (1 - output)) } } } zadjustWeights() { for (let t = 0; t < this.ztructure.length; t++) { const layer = this.ztructure[t] for (let k = 0; k < layer.length; k++) { const perceptron = layer[k] let delta = perceptron.delta for (let i = 0; i < perceptron.weights.length; i++) { const connection = perceptron.weights[i] let change = connection.change change = (this.learningRate * delta * perceptron.inputs[i].valueOf()) + (this.momentum * change); connection.setChange(change) connection.setWeight(connection.valueOf() + change) } perceptron.setBias(perceptron.bias + (this.learningRate * delta)) } } } zompute(inputs = this.inputs) { this.inputs = [...inputs] for (let t = 0; t < this.clusters.length; t++) { for (let k = 0; k < this.clusters[t].length; k++) { if (this.clusters[t][k].data == 1) { this.clusters[t][k].value = this.inputs[this.clusters[t][k].flag] } } } for (let t = 0; t < this.ztructure.length; t++) { for (let k = 0; k < this.ztructure[t].length; k++) { if (t == 0) { this.ztructure[0][k].compute(this.clusters[this.ztructure[0][k].markCount], 1) } else { this.ztructure[0][k].compute(this.clusters[this.ztructure[0][k].markCount], 1) } } } this.outputs = [] this.dataoutputs = [] for (let t = 0; t < this.ztructure[this.ztructure.length - 1].length; t++) { this.outputs.push(this.ztructure[this.ztructure.length - 1][t].valueOf()) this.dataoutputs.push(new Data(this.ztructure[this.ztructure.length - 1][t].valueOf())) } if (keysPressed['k']) { console.log(this) } } compute(inputs = this.inputs) { this.inputs = [...inputs] for (let t = 0; t < this.structure.length; t++) { for (let k = 0; k < this.structure[t].length; k++) { if (t == 0) { this.structure[t][k].compute(this.inputs, 1) } else { if (t != this.structure.length - 1) { this.structure[t][k].compute(this.structure[t - 1], 1) } else { this.structure[t][k].compute(this.structure[t - 1], 0) } } } } this.outputs = [] this.dataoutputs = [] for (let t = 0; t < this.structure[this.structure.length - 1].length; t++) { this.outputs.push(this.structure[this.structure.length - 1][t].valueOf()) this.dataoutputs.push(new Data(this.structure[this.structure.length - 1][t].valueOf())) } } } class Data { constructor(input = -100) { this.delta = 0 this.outputConnections = [] if (input == -100) { this.value = this.weight() } else { this.value = input } } valueOf() { return this.value } weight() { return Math.random() - .5 } } let setup_canvas = document.getElementById('canvas') //getting canvas from document setUp(setup_canvas) let inputs = [] for (let t = 0; t < 44; t++) { inputs.push(new Data(0)) } let net = new Network(inputs, [97, 3]) let count = 0 let pix = canvas_context.getImageData(0, 0, 50, 50) let worlderror = 0 let x = 0 let y = 0 let cgo = 0 let c = 1 let arr = [] for (let t = 0; t < 50; t++) { for (let k = 0; k < 50; k++) { arr.push([t, k]) } } // arr.sort((a, b) => Math.random() > .5 ? 1 : -1) // arr.sort((a, b) => Math.random() > .5 ? 1 : -1) // arr.sort((a, b) => Math.random() > .5 ? 1 : -1) function main() { if(keysPressed['a']){ arr = [] for (let t = 0; t < 50; t++) { for (let k = 0; k < 50; k++) { arr.push([t, k]) } } } if(keysPressed['o']){ arr.sort((a, b) => Math.random() > .5 ? 1 : -1) arr.sort((a, b) => Math.random() > .5 ? 1 : -1) arr.sort((a, b) => Math.random() > .5 ? 1 : -1) } if (keysPressed['n']) { net = new Network(inputs, [33, 33, 33, 3]) return } canvas_context.clearRect(0, 0, canvas.width * .5, canvas.height) // refreshes the image gamepadAPI.update() //checks for button presses/stick movement on the connected controller) // game code goes here canvas_context.drawImage(pom, 0, 0, pom.width, pom.width, 0, 0, 50, 50) // return if (keysPressed['e']) { count += 1000 } if (cgo < 1000 || keysPressed[' ']) { pix = canvas_context.getImageData(0, 0, 50, 50) cgo++ } if (Math.random() < .01) { cgo = 0 } let r = Math.random() let g = Math.random() let b = Math.random() if (keysPressed['h']) { r = 1 g = 1 b = 1 } x++ if (x > 50) { x = 0 y++ if (y > 50) { y = 0 } } if (keysPressed['l']) { x = Math.floor(Math.random() * 50) y = Math.floor(Math.random() * 50) } c++ x = arr[c % 2500][0]//Math.floor(x*1) y = arr[c % 2500][1]// Math.floor(y*1) let kinputs = [] for (let l = .1; l < 1.1; l += .1) { kinputs.push(new Data((Math.cos((((x - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.sin((((y - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.sin((((x - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.cos((((y - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) } net.zompute(kinputs) canvas_context.fillStyle = `rgb(${net.outputs[net.outputs.length - 3] * 255}, ${net.outputs[net.outputs.length - 2] * 255}, ${net.outputs[net.outputs.length - 1] * 255})` canvas_context.fillRect(50 + x, y, 1, 1) // x = arr[t][0]//Math.floor(x*1) // y = arr[t][1]// Math.floor(y*1) let index = Math.floor((x + (y * 50)) * 4) r = (pix.data[index] / 255)*(pix.data[index+3]/255)//x/50 //(y>25?1:0) // ((Math.cos(x/3)*.5)+.5)//pix.data[index]/255// g = (pix.data[index + 1] / 255)*(pix.data[index+3]/255)//(x>25?1:0) // ((Math.cos(x/3)*.5)+.5)//pix.data[index+1]/255 b = (pix.data[index + 2] / 255)*(pix.data[index+3]/255)//(x>25?1:0) // ((Math.cos(x/3)*.5)+.5)//pix.data[index+2]/255 if (keysPressed['h']) { canvas_context.fillStyle = `rgb(${net.outputs[net.outputs.length - 3] * 255}, ${net.outputs[net.outputs.length - 2] * 255}, ${net.outputs[net.outputs.length - 1] * 255})` canvas_context.fillRect(0, 0, canvas.width * .5, canvas.height) } else { let inputs = [] for (let t = 0; t < net.ztructure[0].length - 3; t++) { // if (Math.random() > .05) { inputs.push(new Data(net.ztructure[0][t].valueOf())) // } else { // inputs.push(new Data(Math.random())) // } } // inputs.push(new Data(((Math.sign(r-net.outputs[net.outputs.length-3])*.5)+.5)*2)) // inputs.push(new Data(((Math.sign(g-net.outputs[net.outputs.length-2])*.5)+.5)*2)) // inputs.push(new Data(((Math.sign(b-net.outputs[net.outputs.length-1])*.5)+.5)*2)) inputs.push(new Data(r)) inputs.push(new Data(g)) inputs.push(new Data(b)) if (!keysPressed['q']) { net.zalculateDeltasSigmoid(inputs) net.zadjustWeights() } canvas_context.fillStyle = `rgb(${net.outputs[net.outputs.length - 3] * 255}, ${net.outputs[net.outputs.length - 2] * 255}, ${net.outputs[net.outputs.length - 1] * 255})` count++ if (count > 25000) { count = 0 worlderror = 0 // if(keysPressed['l']){ // arr.sort((a, b) => Math.random() > .5 ? 1 : -1) // } // for (let t = 0; t < arr.length; t++) { for (let t = 0; t < arr.length; t++) { // for (let t = 0; t < 50; t++) { // for (let k = 0; k < 50; k++) { let xz = arr[t][0] let yx = arr[t][1] let kinputs = [] for (let l = .1; l < 1.1; l += .1) { kinputs.push(new Data((Math.cos((((xz - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.sin((((yx - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.sin((((xz - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) kinputs.push(new Data((Math.cos((((yx - 0) * ((l / 1) + 0)) / 50) * 1 * 2 * Math.PI) * .5) +.5)) } net.zompute(kinputs) canvas_context.fillStyle = `rgb(${net.outputs[net.outputs.length - 3] * 255}, ${net.outputs[net.outputs.length - 2] * 255}, ${net.outputs[net.outputs.length - 1] * 255})` let index = Math.floor((xz + (yx * 50)) * 4) r = pix.data[index] / 255 g = pix.data[index + 1] / 255 b = pix.data[index + 2] / 255 worlderror += Math.abs(net.outputs[net.outputs.length - 3] - r) worlderror += Math.abs(net.outputs[net.outputs.length - 2] - g) worlderror += Math.abs(net.outputs[net.outputs.length - 1] - b) canvas_context.fillRect(50 + xz, yx, 1, 1) } console.log(worlderror) } } } }A QCA 8@ producerslanguage JavaScriptES2020 processed-byJavy1.4.09target_features+mutable-globals+ bulk-memory+sign-extJ javy_source[ ²6OS4)oIfm`%]=y(,D!#KF X4}k~ngkT/prPÔ X_Sz7}b㐚RV}ȎFlU-Ʉf^iظlNW.W#K.[ bY<7cgYin3}",*|4Q(A!^ۍx Sؙ'Wԯ^Ut`b >Aϐ Eeiäatk-}uܞֶ:!sߠ4dUG w5_ۂ-ђ~{1E3Ӑ/I %0vg9Pѵ7 |AG~ S.YwIvFDwD\i" ֵ?PukFD$)N?$81R<) ]OKv?u&zG?(cȈCyeo.@cmjb, .1 Vnn١LàZH.vMd ˏg"MG(v`Sm RZ`/n."QxE7gYs`RJN1u^ ׯb | !2]CP7R B3]v FJ*QZR%/uy9ϲlfXelD$Z25TZ^)[`MxOq3~z.rdӊ.O@ZFw& saMiXгыC$^. ?!9 0zaoO4(;Gݛ5YB`g/P䐻"6,k$`ߗf _ 4oѾť}dB梋qv t{|4E8q)~7qg,Zm&Sזm˜ZwICAr@Y8fFZ>+ g#LegubN'z+${ͰvJǥGUcp-a ُ1~"lpױA0h5$11z9D9,B!(+\9+O v]?DU1#sk,Xrެ)@ު0MLQd=3p̸gE3u(GA Nr=?Χ;!' 9:Iu*ۖ,ξu?Ō@`\:?KM_ ԣCvAh*v@3EE>'9ѽ=7=5TEHmK,Yl=}m4Qu*zrDUǞwx|C$XJ2O!QU¨DJPNqx㰪@"/9l5QpBl:Md--շ8WDX+|8':<|mgkjy .>WCSRp[<z\Řv#gpƑ $t΋?Znxr(?eNm#spK4[8y; (yUNk#vA?HBpqMy3@$aʹPR⎶ FR775 NUd EuCj#нF!<#h7C]P @ZET]_ c!Q /M c/z6'Mp LI4Y0.vKjnS8f)J2wد:KT"sv}MizV!1,Z䷖µ^!9`ʮqK/Iҍ9+M=ڂ7/y.]P̄QtاVmmH=\lddKM/ k ,/!M7?:BPECB4]r &aœ48m^uÙ.3u3.OZMzj I=opÐ@MZ`q xIR0}cdhWbɩHux 22qOEDjX  _S)< %?xfq-d7&)ZJ4L:;94´~0]) 'χu4NҷRU06Jl)Z/%vhA@E)̴|\ )"sDJ0qp0AF46PĩֹG),SSIiW|GߞSG~{cۉͶ~$彞;fW(5Cdwypέ1p>sc^1G^sFYv:Ț{xѼ0eYc"KEɠ|U+\Sau>ӈ϶^C)@`B/Q>t]IV1Týd^4 JBCN_OnKO5Ihz.67}EeTۚ68OP:]t^(nt {x<36XuSsTD{6ܐf_sRayss9<{}<!̟,|,] Qƀ~Kg M@Nx =#]/[plfp(N:v7f7;~e|*l%Lw=E\sǘ5$0G\ Xb5unqQ7@n 8C!e,Lg?5W̺薁9qXj[m$ yh|5O8)_Wjk_CzAkZ.E%ϊDF !%οC Yz3j[IIrMߧSش?@vMÅUUUfھ#.ᕂ6MR% p4iQ`&L___(/CJ~$p䶆ޭ2}OЭ)EP5t"? 懞 na>2f;T"h@xehu/zL_7ҭ%LLœisK9)l\ƈ/k HoN3wz(gM哑S 8!k* Qhws籹Kj~3.!qгiwNf ظ]Wx6Z JHvhU /_6{+j$FX-qeaS\(4z:{M pd$'Ӡڪ\41gmIosKK:+ =S {G\w"=!2?N5,)ht^3P_t5XM 0+!oWh[I]Fs iZ*slH}T1ހ5- 1>lCMl &T| = *쏁-ŰnQ;rxĞ,:롴YsXk]AߵPThݥ60["ݱT.3q2q1qNu=R|dXܚ^Ir:0}%c ~JEbB^ *b'^|1@vxV q3$seC$\'Ӟfqbbl卉wlʲ3q6%HƈAdq=sb4=!pX/:Z"L<a,05Y0KP1kN5at ._ޥQ%Qg} טѶr!L(͚ް \` &tymnRȆ>pN{ 4Z[1alN=w\ks&ě ] {]q}:6 r/,i݂l 3f>AaDPc޻C+FTz~M0@sǗršǓIJsS@xGPgiW~Zc< RsPz]:`q3˺:믃t_Rd"=4z5s+ ';3$_ԏi9- ت͙~lX\RC:qX*2,, ͓݅.h8@ZC;#~MYNW`Y5ld<4W5ӝEh[n0E 'ef/UhC[58Tfg0Z/laJuVӱld W:Pjg/`-# `KX-Y.()O_#B4N k*'ȎSbYҹY۞'Ξ$2)ҳjkҷ1HRko'iWsYvlDR"֬+9d^]R .2iA,hIѷh }7Ws瞖P9`Q+KPq"ARnPwz<!Fscˍ02rЇ6ZU*&<t-Glr2ҚI4goa.VH9wJ`$.7п>I=GD]}5g/S&{ ݅gd}!Gu*3QKcXEVFLb)B7S0U}LX&eHnpr<'?uzN2*dmz'~,__"-ֱsq;5o ֊'`JUF^5jX,i$%ƃCrי3؜}57Ǿǣ(t4ft06xivDi3݂9װiͨQٞET<Đ PU}TeF鯨#OiP͚kCn2O4춣}a.=`ϒO> w:*iaӼ9~4JN-_Z