summaryrefslogtreecommitdiff
Diffstat
-rwxr-xr-x[-rw-r--r--]Image.gz48538
-rwxr-xr-x[-rw-r--r--]curie.dtb26
-rwxr-xr-x[-rw-r--r--]lib/egl/libGLES_mali.so6259
-rwxr-xr-xlib/firmware/video/h264_enc.bin652
-rwxr-xr-x[-rw-r--r--]lib/firmware/video/video_ucode.bin5963
-rwxr-xr-x[-rw-r--r--]lib/mali.ko761
-rwxr-xr-x[-rw-r--r--]lib/modules/8189es.ko179
-rwxr-xr-xlib/modules/8822bs.ko19041
-rwxr-xr-x[-rw-r--r--]lib/modules/8822bu.ko175
-rwxr-xr-x[-rw-r--r--]lib/modules/amvdec_avs.ko1242
-rwxr-xr-xlib/modules/amvdec_avs2.ko1623
-rwxr-xr-x[-rw-r--r--]lib/modules/amvdec_h264.ko876
-rwxr-xr-x[-rw-r--r--]lib/modules/amvdec_h264_4k2k.ko434
-rwxr-xr-x[-rw-r--r--]lib/modules/amvdec_h264mvc.ko573
-rwxr-xr-x[-rw-r--r--]lib/modules/amvdec_h265.ko2875
-rwxr-xr-x[-rw-r--r--]lib/modules/amvdec_mh264.ko3226
-rwxr-xr-x[-rw-r--r--]lib/modules/amvdec_mjpeg.ko399
-rwxr-xr-x[-rw-r--r--]lib/modules/amvdec_mmjpeg.ko591
-rwxr-xr-x[-rw-r--r--]lib/modules/amvdec_mmpeg4.ko511
-rwxr-xr-x[-rw-r--r--]lib/modules/amvdec_mpeg12.ko801
-rwxr-xr-x[-rw-r--r--]lib/modules/amvdec_mpeg4.ko399
-rwxr-xr-x[-rw-r--r--]lib/modules/amvdec_real.ko394
-rwxr-xr-x[-rw-r--r--]lib/modules/amvdec_vc1.ko410
-rwxr-xr-x[-rw-r--r--]lib/modules/amvdec_vp9.ko2447
-rwxr-xr-x[-rw-r--r--]lib/modules/audio_data.ko0
-rwxr-xr-x[-rw-r--r--]lib/modules/bcmdhd.ko6113
-rwxr-xr-xlib/modules/btmtksdio.ko1223
-rwxr-xr-x[-rw-r--r--]lib/modules/btusb.ko1542
-rwxr-xr-x[-rw-r--r--]lib/modules/ddr_window_64.ko0
-rwxr-xr-x[-rw-r--r--]lib/modules/decoder_common.ko3540
-rwxr-xr-x[-rw-r--r--]lib/modules/dhd.ko9699
-rwxr-xr-x[-rw-r--r--]lib/modules/encoder.ko897
-rwxr-xr-x[-rw-r--r--]lib/modules/firmware.ko621
-rwxr-xr-x[-rw-r--r--]lib/modules/media_clock.ko1518
-rwxr-xr-x[-rw-r--r--]lib/modules/stream_input.ko3058
-rwxr-xr-xlib/modules/vpu.ko715
-rwxr-xr-xlib/modules/wlan_mt76x8_sdio.ko56243
-rwxr-xr-xlib/optee.ko886
-rwxr-xr-xlib/optee_armtz.ko697
-rw-r--r--tdk/optee.ko890
-rw-r--r--tdk/optee_armtz.ko692
41 files changed, 136382 insertions, 50347 deletions
diff --git a/lib/modules/dhd.ko b/lib/modules/dhd.ko
index 21e66ad..0d3293a 100644..100755
--- a/lib/modules/dhd.ko
+++ b/lib/modules/dhd.ko
@@ -1,4 +1,4 @@
-ELF
+ELF
_
@ qT`2@*
@@ -187,13 +187,13 @@ A @{¨_{
@5
@/
-@
+@
@
-@A
+@A
@
SA[B{è_ր
-
+
@@ -218,25 +218,27 @@ D
X@
SA[BcC{Ĩ_**
-
+
-
-B
+
+B
B
"
X@@
-
-
+
+
-
+U
aD9`D9b
-D9
-/@@
-
-
-
+D9
+/@@
+
+
+
+
+
`
@@ -245,20 +247,21 @@ D9
9
7@y 
-
-
+
+
y
ya
@b
-@`
+@`
@
-@`
-@
+@`
+@
-@@
-
-*Ay,@# *,
+@@
+
+*Ay,@# *,
+7kT
"
@@ -271,15 +274,15 @@ ya
7V
-
+

-D@
+D@
D
-D 
+D 
D@
-q
+q
R
-
+
;

@@ -291,21 +294,20 @@ D@
-
+
[
@@6
@{@
@@!
-@
+@
-
-D`@?
-D
-
-Dc
-D
-D
-
+
+D`@?
+D
+
+D_c
+D
+D 
y
@@ -315,19 +317,24 @@ yZ
y^
y

-
+
-
-R߶
-R
-*'
-@ 
-
-
-
-
+
+R
+
+R
+R
+
+
+@ 
+
+
+#@9jS@9
+*
+
+
X
@@ -417,7 +424,7 @@ F2Ay
77@
@A
-7
+7

@@ -486,7 +493,7 @@ X


{
-
+
@@ -507,11 +514,8 @@ X
-
-74
-
-
-
+
+
@@ -569,7 +573,7 @@ ij8)!*@9\P|S;@!
2
@
-
+
7u
? @q
r`
@@ -591,16 +595,19 @@ ij8)!*@9\P|S;@!
-
-
-
-
-
-g@
-
-
-R
-R
+
+
+
+
+
+
+g@
+R
+R
+
+
+
+
@@ -623,282 +630,290 @@ ij8)!*@9\P|S;@!
@9
-
-
-
-
-
-
-
-@"#
-*g
-|S
-|S
-
-
-
-
-
- d@s2
-
-R
-
-
-@
-
-@
-
-@
-@Z
-
-
-
-
-w
-
-@c@
+
+
+
+
+
+
+@"#
+*g
+
+d@s2
+
+
+
+
+
+4b@6s2
+@c@
-
-
+
+
-
-
-BR
-
-
-ttttt
-tt5`9?d9d"
-`@B|3
-
-
-
-@q
-@qTk 
-
-
-
-
-|
-e&A9#
-d*A9
-
-
-q@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+BR
+
+
+
+
+R
+
+R
+
+509?49d%RdD
+@q 
+r52ATR5
+`@B|4
+
+
+
+
+@q
+@qTk@
+
+
+
+
+
+
+fB$
+@
+
+
+
+
+
+
+
+@_
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
+
R
-R
-
-
-
+R
+
+
+
+Z
+Z:<
+Z@
+ ' / R
+
+
+
+ 7 ? b
+
+
+
+`
+
+
+
-
-@c@
-
-
-
-K
-
-
-
-*3
+
+@b@
+
+
+
x7sO3`:D
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-9b`
-9ar9
-
+
+
+9b`
+9ar9
+
-
-
-@I@7
-@
+
+
+@I@7
+@
7K
@@
-R
-
+R
+
@`
-
-
-@O,R<@G<
-@
+
+
+@O,R<@G<
+@
@
-@
-@
-@"kR x@y
+@
+@
+@"kR x@y
@
@
-@
+@
+R
9
-9`
-@sR@"
-@b"iR
-@
-@
-@
-@
-@
+9`
+@tR@"
+@c`@
+@
+@
+
+@
+@
+
+
+
+
+@
-
-y@
-
-@fR<@_
-
+
+y@
+
+@fR<@_
+
-
-9
+
+9
C
C
#@SA[BcC{Ũ_֔z
4v
c
- R
-@@/
-7@W@7
-
-@@'
-@
+ R
+@@/
+
+@@'
+@
@
@
-@
-@BR<@?
+@
+@BR<@?
@
-@
+@
@
@
@
-@
+@
@
@
@
@
@
-@*
+@*
@
@
@
-@
-@
+@
+@
@
-@a@`
-
+@a@`
+
-*9@9+@9"/P7k
-_
-"
-
-R
-
-
-9
+*9@9+@9"/P7k
+_
+"
+
+
+
+
+9
@9
-*c *K=
-,
-B
+*c *K=
+,
+B
*
-*
-*@! ~
+*
+*@! ~
 q
-* j
+* j
5
*@9
-
-B
-
- q@
- 4`C
-*!
+
+B
+
+ q@
+ 4`C
+*!
* <
@9<
* *! ;
* ** *
-* ** *
-k
-* * ;
+* ** *
+k
+* * ;
*!
*
*!
-
-CcL9bC!
-cC
-
-b9@q
-C
-C9
-
-7`@`9`
-C
-C9
-
-
-@<@@,R?
-@R"
-@
-@
-@
-9`J9 
-@fRW
-@#gR<@@R?
-
-@<@
-@
-@7`@
-@
-C
- q
-9`A
-
+
+CcL9bC!
+
+
+cC
+b9@q!
+C9
+C9
+
+C9
+
+
+
+@<@@,R?
+@R"
+@
+@
+@
+9`J9
+@fRW
+@4R#gR<@@R_
+
+D4
+@<@
+@
+@7`@
+@
+C
+ q
+9`A
+!
+

-
-C
-
-9`
-@
-
+
+C
+
+9a
+@
+
@ @{¨
@ @{¨
-@ @{¨_{
+@ @{¨_{
m@@I@@E@M@B@pK
i@C
e@;
@@ -907,53 +922,55 @@ a@3
Y@#
U@
Q@
-
-H7@ P7 !
-R @
-
+
+H7@ P7 !
+R @
+
+DRn 9
9?
-@
-
-
-
-
-9
-9
-9
-k@
-z[
-
-D`w9\4`C`q
+@
+
+
+
+D
+
+9
+9
+9
+k@
+z[
+
+D`w9\4`C`q
-
+
-
+
-9br9_
-@ 
+9br9_
+DA@ _
+@ 

-7`C
-
-
-7` 7
-7
-
+7`C
+
+7W
+
+
@
-
+
@`@!<@
-
-C
-C
+
+C
+C
-C
-C@
-Cv
-C
-CQ
-C
+C
+C@
+Cv
+C
+CQ
+C
C7CJ9/`
C
C&g@
@@ -964,33 +981,33 @@ C [
C[
C@K7@A9
C@N7@Coc@9# 
-CC76
-CA9"
+CC7R
+CA9"
CCCo# 
C
C
-C
-CT
+C
+CT
C R
CQ
CP
CP
-CA9 9
-CCL9 @*@
-Cs^CBCFCJCNCRCVCjCnC~CZC +
+CA9b 9
+CCbM9 @*@
+CszC^CbCfCjCnCrCCCCvC +
CXE
CHC
C?3C
-C0@*$
+C0@*
C+
-C
+C
C
C
-CC6C@CocU9# 
+CCRC@CocU9# 
C`8
C
C
-C@
+C@
C@
C
Cg@`
@@ -1004,15 +1021,15 @@ CCB@A9
9
CA+
Ce@
-C 4@
-CA@
-C
-Cj
+C 4@
+CA@
+C
+C:
C@*
C@
Ca
-@t@
+@t@
@
@b6@
@ql
@@ -1041,31 +1058,31 @@ Ca
-@B
+@B
@4@9
-7@!@
+7@!@
@?
@


-
+
-
+
B(@c
c(@`<H
$P@yt4
c(@dI
-@'
+@'
@B
SA[BcC{Ĩ_* 

-
+
-
+
u 9
@
@03@
@@ -1073,7 +1090,7 @@ u 9
~S`@
~
- J)@@@yB
+ J)@@@yB
(@P@yc
c(@d<H
@@ -1081,15 +1098,15 @@ u 9
@
-
+
@
E7`A
-@
+@
-,9,9  
+,9,9  
-
+
l9
@@ -1099,18 +1116,18 @@ l9
@c
@E4@9

-@*
-c(@`I
+@*
+c(@`I
-
-
+
+
-
-
+
+
-
+
@@ -1118,10 +1135,10 @@ l9
A
@9e"A#
@9a@9a
-@9a*
+@9a*
@9
-@*@@@
-?| ?| aE6
+@*@@@
+?| ?| aE6
@
7****
@@ -1238,8 +1255,8 @@ Az@yu@y_
-@@
-
+@@
+
A>Rc,@`
R@
R
@@ -1285,21 +1302,17 @@ a@9
@
@A8յ~D@c
-@b2@y
-@
-Z
-ZA @W
-@
-Z
-Z" 
+@b2@y
@
-Z
-Z
-
-
+Zw@{ Z
+ZA @g
+@s@
+Z Zs
+Z" 
+
-
+
@@ -1309,20 +1322,14 @@ A9
@
73
-
-@@Zc7C@{
-
-@
-@
-@
-@
-
-@
-
-
+
+@@`@o
+
+@ "
+
Z3
@kB
-@kT`@`
+@kT`@`
@
@@ -1335,11 +1342,11 @@ A9
@*`
@O
-
+
7B@a
-
+
@q 
r52ATR5
`
@@ -1477,242 +1484,237 @@ B
&
-*ex@y!d8@
-
-
-
+*ex@y!d8@
-
-
-SA@{è_ֶ{
+
+
+SA@{è_֢{
-
+
-
-
-
+
+
+
Rd@
R
-@?
+@?
R
-
-
-7@66
+
+
+7@66
-(6?@
-
-@@
-@
-@@
-@@@
-
-y@
-
-
-
-
-
-
-
-7
-R_L
+(6?@
+Z7@
+
+
+
+
+
+
+
+
+
+
+7
+R_L
-
-
-
-
-)
-
+
+
+
+
+
+@
+)
+

-*
-
-@'
-
-@*Á@S
-
-
+*
+
+
+
Z"A8!@a
E"(
c
-
-h%8T
+
+h%8T
R
-
+
-Th!8
-R_ 
+Th!8
+R_ 
R
-
-
-
-ZZ 7s@
-@
-
-X
-
-
+
+
+
+ZZ 7s@
+@
+
+X
+
+
Z@
@
-ZHZ5Z7B
-@*A
+ZHZ5Z7B
+@*A
@*
-
-ZZ8
-@?
-@eZ<
-@BZ_
+
+ZZ8
+@?
+@eZ<
+@BZ_
-
-@
-@{ ZBZq
-
-
-@9@9@9b@9v@9r@9n@9j@9f@9 1
-@ 
-@9@9@9
-
-@,1
-
-
-
-
-
-
-yA
-
-
-
+
+@
+@{ ZBZL@9C`C
+@9@9@9b@9v@9r@9n@9j@9f@9c
+@
+@9@9@9=
+
+@1
+
+
+
+
+
+
+
+yA
+
+
+
+
@y
-
+
-
-@y
-
- 7v
-9`
+
+@y
+
+ 7v
+9`

-
-
-
-y
-7
+
+
+
+y
+7
-
+
-
+
-
+
Z!@o
-@(
+@(
-
-
-
-*!2
-
-?
+
+
+
+*!2
+
+?
~*
-c
-c}
+c
+c}
c
-
-*
+
+*
a
-
-e@@*fA@
-
-7
-
+
+e@@*fA@
+
+7
+
@(
-@(
+@(
!@9
"#@9
!'@9
-
-
-
-
-
-
-
-
-
-S
-
-
-
-
-[
-
-
-
-
-@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+S
+
+
+
+
+
+
+g
+
+
+
+[
+
+
+
+
+
+@
@9@9@9
-
-
-
-
-
-
-
-
-@X
-@
+
+
+@X
+@
-
-
-
-@A+
-;
-
-?
-
-
-@
-
-7*AR
-
-
-
-
-
+
+
+@A+
+
+;
+
+?
+
+
+@
+
+
+
+
+
+
+
+
7`C2R
-
-
-#
-
-
-y
-
-
+
+
+#
+
+
+y
+
+
t
r
-
-
-
+
+
+
7
@
-
-@
+
+@
@
-
-@ 
-
-
+
+@ 
+
+
@@ -1772,7 +1774,9 @@ y
@9
-
+
+
+
@@ -1782,9 +1786,9 @@ y
R
-
-
-
+
+
+

@
@@ -1843,7 +1847,9 @@ y
O
-@y
+@y
+
+
@@ -1872,12 +1878,12 @@ y
7k
D
-{
-
-
-_
-
-
+{
+
+_
+
+
+
@@ -1889,14 +1895,24 @@ D
@
@
@!
-@
-
-
+@
+
+
+
+
+
+
+
+
-
-
-B"
-@q
+
+
+
+"B:
+!B
+B"
+@q
+uY-\
D/ؖaUp>Q:̓t6x]|2ŮY*ݓdA`.E Il"M&h
w.fT<E˽BٞPftBSap 2'6L^hzR Cq`(7:&DV`rcr@Q"%40N\jxsbPA5*$8FTbp,¥>@R+:dN_vm|
.<B)8P
@@ -1908,15 +1924,16 @@ D
m ?6grW
TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-
(P
-&-4>FWci{
+&-4>FWci{
-
-
+
+
+
 !"#$%&'()*+,-./ijklmnopqrstuvwxyz{|}~
-  !"#$%&'()*+,-./ijklmnopqrstuvwxyz{|}~
+  !"#$%&'()*+,-./ijklmnopqrstuvwxyz{|}~


@@ -1960,7 +1977,7 @@ D
-
+
@@ -2054,7 +2071,7 @@ D
-
+
@@ -2209,8 +2226,8 @@ D
Firmware: %s
CLM: %s
- Chip: %x Rev %x Pkg %x
-
+ Chip: %x Rev %x
+
@@ -2221,15 +2238,14 @@ D
-
-
-
-
-
-
+
+
+
+
+
-
-
+
+
@@ -2726,7 +2742,7 @@ D
-
+
@@ -2750,7 +2766,7 @@ D
-
+
@@ -2872,15 +2888,15 @@ failed to power up wifi chip, max retry reached **
-
+
-
-
-
+
+
+
@@ -2942,25 +2958,24 @@ failed to power up wifi chip, max retry reached **
-
+
-
-
+
-
-
-
+
+
+
@@ -2970,106 +2985,116 @@ failed to power up wifi chip, max retry reached **
-
-
-
+
+
-
-
-
+
+
+
-
-
+
-
-
-
-
+
-
-
-
-
-
+
+
-
+
+
-
-
-
+
+
+
+
-
+
-
+
+
+
-
+
+
+
+
+
+
+
+
+
-
-
-
+
-
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+
@@ -3089,13 +3114,21 @@ Period (msec) :%d
Length :%d
Packet :0x
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
@@ -3107,10 +3140,9 @@ Packet :0x
-
-
-
-
+
+
+
@@ -3122,8 +3154,8 @@ Packet :0x
-
-
+
+
@@ -3143,8 +3175,7 @@ Packet :0x
-
-
+
@@ -3411,8 +3442,7 @@ Rx: pkts/f2rd
-
-
+
@@ -3431,10 +3461,7 @@ Rx: pkts/f2rd
-
-
-
-
+
@@ -3497,7 +3524,7 @@ console address : 0x%08X
-
+
@@ -3826,15 +3853,9 @@ Try updating wl utility to the latest.
-
-
-
-
-
-
-
-
-
+
+
+
@@ -3911,9 +3932,9 @@ Try updating wl utility to the latest.
-
-
-
+
+
+
@@ -3946,14 +3967,16 @@ Try updating wl utility to the latest.
-
+
+
-
-
+
+
+
@@ -4326,17 +4349,19 @@ Try updating wl utility to the latest.
+
-
-
+
+
+
-
+
@@ -4473,10 +4498,10 @@ Try updating wl utility to the latest.
-
-
+
-
+
+
@@ -4687,8 +4712,8 @@ Try updating wl utility to the latest.
-
-
+
+
@@ -5013,9 +5038,7 @@ dtim_period (%d)
-
-
-
+
@@ -5105,102 +5128,58 @@ dtim_period (%d)
-
-
+
+

-
+


f
D
-EL
-F
-
-j
-5
-
-)
-)
-
-q
-j3
-=
-=
->
->
-"?
+EL
+F
+
+x
+C
+
+)
+)
+
+
+3
+=
+>
+?
+?
+&?
+?
+L?



-
-$
-nR
-Z
-)Z
-!
-'
-
-
-
-
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-
-
-
-
-
-
+
+$
+R
+-Z
+SZ
+"
+'
+
+
+
+
+
+
+
+
+
+



@@ -5210,2531 +5189,2592 @@ nR



-
-
-0
-
-
-
-
-
-
-
-
-
-
-
-
-
-2
-1
-2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.
-.
-.
-.
-
-
-
-
-
-
-
-
-
-
-/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+
+0
+0
+0
+0
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+-
+0
+0
+0
+0
+0
+0
+0
+0
+/
+/
+
+
+
+
+
+
+.
+
+
+
+
+
+
+.
+
+
+
+
+
+
+0
+0
+0
+3
+3
+3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+0
--
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -7746,58 +7786,43 @@ nR
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -7885,33 +7910,36 @@ nR
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -7944,267 +7972,241 @@ nR
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<
-
-
-
-
-
-&
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+-
+.
+.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1
-
-
-
-%
-
-
-
-
-
-
-
-
-
--
+
+
+
+
+
+
+
+
+
+
+
+
+
+(
+
+-
+
+
+
+
+
+7
+
+
+
+
+
+K
+
+N
+Y
+
+
+C


@@ -8219,17 +8221,12 @@ nR



-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
@@ -8246,438 +8243,426 @@ nR
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-$
-%
+$
+%
-
-
-
-+
-1
-
-
-
-
-
-
-
-:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -8687,853 +8672,809 @@ $
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+