diff options
| author | cvs2svn <cvs2svn@FreeBSD.org> | 1999-05-24 16:47:10 +0000 |
|---|---|---|
| committer | cvs2svn <cvs2svn@FreeBSD.org> | 1999-05-24 16:47:10 +0000 |
| commit | c37538200ebdef38051ba82b76e6b2dab3bd2fdc (patch) | |
| tree | 3c937e1c39e039ed95d3b8ead3defc46cf60cc04 /sys | |
| parent | a21d905bae94bc358756957b1c26e2ec3f487e82 (diff) | |
Notes
Diffstat (limited to 'sys')
28 files changed, 1386 insertions, 16770 deletions
diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index e3a5dda7d67c..a57167741638 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -32,11 +32,11 @@ # SUCH DAMAGE. # # @(#)newvers.sh 8.1 (Berkeley) 4/20/94 -# $Id: newvers.sh,v 1.41.2.6 1999/05/14 14:31:56 jkh Exp $ +# $Id: newvers.sh,v 1.41.2.5 1999/05/08 21:55:41 obrien Exp $ TYPE="FreeBSD" REVISION="3.2" -BRANCH="STABLE" +BRANCH="RELEASE" RELEASE="${REVISION}-${BRANCH}" SNAPDATE="" if [ "X${SNAPDATE}" != "X" ]; then diff --git a/sys/contrib/dev/oltr/COPYRIGHT b/sys/contrib/dev/oltr/COPYRIGHT deleted file mode 100644 index 668a6413c450..000000000000 --- a/sys/contrib/dev/oltr/COPYRIGHT +++ /dev/null @@ -1,62 +0,0 @@ -The oltr driver uses objects and microcode from Olicom's -OC-3300 PowerMACH Works Kit. - -As the Linux driver says.. -================================================================== -* -* This driver uses the Token Ring Low Level Driver (TRlld, -* PowerMach Works) as the lower level driver. The PMW kit is -* (C) Olicom. The executable object may be distributed along -* with this driver for the purpose of linking this driver. -* -================================================================= -The low level driver is combined with a FreeBSD specific driver -supplied in source, which provides all OS dependent functions. - -files from olicom are: - -trlld.o - Olicom low-level driver interface - -trlldmac.o - TMS 380 Microcode for Olicom TMS380 based cards -trlldbm.o - "bullseye" Microcode for Olicom "bullseye" based cards -trlldhm.o - "hawkeye" Microcode for Olicom "hawkeye" based cards - -The file trlld.o is stored in uuencode format as trlld.o.uu -It represents a state machine of some kind that has no OS dependencies -and communicates with the firmware on the cards via a proprietary interface. -All communication with this module is achieved via functions supplied in -the FreeBSD specific driver. - -The other 3 files have been encoded using file2c(1) -and represent only microcode to be loaded into the appropriate board -when found. - -Here is the release notice from Olicom regarding these files: -------------------------------------------------------------------------------- -OC-3300 PowerMach Works and its components are wholly owned products of -Olicom A/S -Nybrovej 114 -2800 Lyngby -Denmark -(45) 45 27 00 00 -and are used and distributed with permission. (#SS022499) -------------------------------------------------------------------------------- - -A supporting email is also included. ----------- Forwarded message ---------- -Date: Wed, 24 Feb 1999 17:07:14 +0100 -From: Starla Scott <sscott@olicom.com> -To: 'Larry Lile' <lile@stdio.com> -Subject: RE: FreeBSD Token-ring driver - -Larry, - -You may freely distribute the driver and/or kit. However, we do request that -you include an acknowledgement of Olicom's copyright and ownership as -related to your driver. - -Thanks, -Starla -Olicom Tech Support ------------------------------------------------------------------------------- - diff --git a/sys/contrib/dev/oltr/i386-elf.trlld.o.uu b/sys/contrib/dev/oltr/i386-elf.trlld.o.uu deleted file mode 100644 index c0aceefd4ffc..000000000000 --- a/sys/contrib/dev/oltr/i386-elf.trlld.o.uu +++ /dev/null @@ -1,1840 +0,0 @@ -begin 644 trlld.o -M?T5,1@$!`0````````````$``P`!```````````````P00$``````#0````` -M`"@`"P`'`````````````````(/L%%>+?"0<5E-5BT0D+"7__P``@\`$B]@E -M__\``%#_5QR+\('C__\``$.!X___``!3_U<<P>`(@\0(9@OP@>;__P``9O?& -M`0!FB70D(`^%>`(``(M$)"PE__\``%#_5QR(1"0G@\0$BT0D+"7__P``@\`" -MB]@E__\``%#_5QR+\('C__\``$.!X___``!3_U<<BU0D*(/$",'@"('B__\` -M`&8+\(M$)"`E__\``('F__\``(/``H/""HOH)?__```[P@^-\0```(M$)"PE -M__\``(/`!&:+\(M$)"`E__\``(/`"HE$)!B+QB7__P``4/]7'(O8B\8E__\` -M`$`E__\``%#_5QS!X`B#Q`AF"]B+Q8'C__\``"7__P``.\,/A:@!``"+1"0L -M)?__``"#P`HE__\``%!7Z/1M``"#Q`B+U8'B__\``#O0#X5]`0``BT0D+"7_ -M_P``4/]7'(A$)"=J8?]7'(M$)#0E__\``(/``B7__P``4/]7'#/2@\0,BE0D -M(SO0#X5!`0``BT0D+"7__P``@\`#)?__``!0_U<<BU0D'(/$!&:#Q0*+Q27_ -M_P``.\(/C"[___]F,_:-7QR)?"00BVPD+('E__\``(M$)"R#Q00E__\``(/` -M"F:)1"0<C4<$B_B+QB7_````4(O%)?__``!0_Q=J8?\3BT0D*"7__P``4/\3 -MBM`SP(K"]]`E_P```%"+1"0P)?__``!0_Q=J8?\3B\4E__\``%#_$XK0,\"* -MPHO6-?X```"#Q"`E__\``('B__\``#O"=7R#Q@)F@?X``7*-BW0D+(M\)!"+ -M1"0@@>;__P``)?\```"#Q@10B\8E__\``%#_5P2+1"0H@>;__P``)?__``!& -MP?@(@>;__P``)?\```!05O]7!#/`@\00BD0D(U"+1"0P)?__``!0_U<$N`$` -M``"#Q`A=6UY?@\04PSO_75M>,\!?@\04PSO_._^!_P````"#[%!7BWPD6%93 -M56:+AW(+``!FJ1``=$0SP&:+1Q:#P`PE__\``%"+AUP+``#_4!R+\#/`9HM' -M%H/`#27__P``4(N'7`L``/]0','@"&8+\('F__\``(/$".LDD#/`9HM'%H/` -M#"7__P``4(N'7`L``/]0((OP@>;__P``@\0$9HN'<@L``&:I$`!FB70D7G1# -M,\!FBT<6@\`*)?__``!0BX=<"P``_U`<B_`SP&:+1Q:#P`LE__\``%"+AUP+ -M``#_4!S!X`AF"_"!YO__``"#Q`CK(S/`9HM'%H/`"B7__P``4(N'7`L``/]0 -M((OP@>;__P``@\0$9HN'<@L``&:I$`!FB70D7'0[:@$SP&:+1Q:#P`PE__\` -M`%"+AUP+``#_4`1J`#/`9HM'%H/`#27__P``4(N'7`L``/]0!(/$$.L?._]J -M`3/`9HM'%H/`#"7__P``4(N'7`L``/]0"(/$"&:+=S2+QH'F__\``,'F""7_ -M_P``P?@(@>8`_P``)?\````+QHOP9HN'<@L``('F__\``&:I$`!T3HO&)?\` -M``!0,\!FBT<6@\`*)?__``!0BX=<"P``_U`$@>;__P``,\#!_@B!YO\```!6 -M9HM'%H/`"R7__P``4(N'7`L``/]0!(/$$.LCD('F__\``#/`5F:+1Q:#P`HE -M__\``%"+AUP+``#_4`B#Q`AJ"HN'7`L``/]0-+Z\____@\0$O1````!FA:]R -M"P``=$4SP&:+1Q:#P`(E__\``%"+AUP+``#_4!R+V#/`9HM'%H/``R7__P`` -M4(N'7`L``/]0','@"&8+V('C__\``(/$".LE._\SP&:+1Q:#P`(E__\``%"+ -MAUP+``#_4""+V('C__\``(/$!(O#@>/__P``P>,()?__``#!^`B!XP#_```E -M_P````O#9HE$-%2#Q@(/C&'___]FBX=R"P``OD0```!FJ1``=$TSP(I$)%Y0 -M,\!FBT<6@\`,)?__``!0BX=<"P``_U`$,\!FBT0D9L'X""7_````4#/`9HM' -M%H/`#27__P``4(N'7`L``/]0!(/$$.LDD#/`9HM$)%Y0,\!FBT<6@\`,)?__ -M``!0BX=<"P``_U`(@\0(9HN'<@L``&:I$`!T5(M$)%PE_P```%`SP&:+1Q:# -MP`HE__\``%"+AUP+``#_4`2+1"1D)?__``#!^`@E_P```%`SP&:+1Q:#P`LE -M__\``%"+AUP+``#_4`2#Q!#K*(/'`(M$)%PE__\``%`SP&:+1Q:#P`HE__\` -M`%"+AUP+``#_4`B#Q`B+1"04B(?<$```BD0D%8B'W1```(I$)!:(A]X0``"* -M1"07B(??$```BT0D&(B'X!```(I$)!F(A^$0``"+1"0\9HF'XA```&:+1"0V -M9JD`0'11BD0D1HB'Y!```(I$)$>(A^40``"+1"1(B(?F$```BD0D28B'YQ`` -M`(I$)$J(A^@0``"*1"1+B(?I$```9HM$)#9FB8>."P``75M>7X/$4,.0,\F( -MC^00``"(C^40``"(C^80``"(C^<0``"(C^@0``"(C^D0``#KPX'_`````('_ -M`````(/L&%>+?"0@9HN'H`L``&:I(``/A(\```!FQT<0``G'1V@`````9B7? -M_V:)AZ`+``"+AY0+``")1Q(SP&B0````9HM'%H/`!R7__P``4(N'7`L``/]0 -M!(/$"%^#Q!C#D&;'1Q``",=':`````!F);__9HF'H`L``(N'D`L``(E'$C/` -M:)````!FBT<6@\`')?__``!0BX=<"P``_U`$@\0(7X/$&,,[_V:+AZ`+``!F -MJ4``=:MFBX>@"P``9JF``'1F9B5__V:)AZ`+``!FBX=R"P``9JD`@'0&C4=8 -MZPJ0BX=D"P``@\!84.A!9P``9L='$``*B4<2,\"Z`````(/$!(E7:&B0```` -M9HM'%H/`!R7__P``4(N'7`L``/]0!(/$"%^#Q!C#9HN'H`L``&:I`(!T;V8E -M_W]FB8>@"P``9HN'F@L``&:I`@!T"S/`9HN'F`L``.L.,\!FBX>8"P``#0`` -M`(!0Z,1F``!FQT<0``;'1V@`````B4<2,\"#Q`1HD````&:+1Q:#P`<E__\` -M`%"+AUP+``#_4`2#Q`A?@\08PV:+AZ`+``!FJ0`!#X3L_O__9B7__C/)9HF' -MH`L``&:+AW(+``!FJ0$`=01FN1``,\"*AWT+``")1"04J0$```!T!&:#R0*+ -M1"04J0(```!T!&:#R01FBX>:"P``9JD$`'4.9H/)0&:I"`!T!&:#R2!FQT<0 -M``W'1V@`````B\&!X?__``#!X0@E__\``,'X"('A`/\``"7_````"\$E__\` -M`(E'$C/`:)````!FBT<6@\`')?__``!0BX=<"P``_U`$@\0(7X/$&,,[_X/L -M"%>+?"009HM'"F8]@`!T8F:+1P)F/4,`=%@SP&:+1PQ0,\!FBT<*4#/`9HM' -M"%!J!&H!:@97Z(-<``"#Q!Q?@\0(PX/&`,=';`````!HB````#/`9HM'%H/` -M!R7__P``4(N'7`L``/]0!(/$"%^#Q`C#BT=HA<!T#<=':`````!7_]"#Q`1F -MBX>@"P``9H7`=-MFBT<"9CU0`'+19HM'$&:%P'6A5^CC_/__@\0$7X/$",.# -MQP`[_X'_`````(/L$%>+?"085E-59HN'<@L``&:I$`!T/&H!,\!FBT<6@\`, -M)?__``!0BX=<"P``_U`$:@`SP&:+1Q:#P`TE__\``%"+AUP+``#_4`2#Q!#K -M((/'`&H!,\!FBT<6@\`,)?__``!0BX=<"P``_U`(@\0(9HN'<@L``&:I$`!T -M/FC@````,\!FBT<6@\`*)?__``!0BX=<"P``_U`$:@4SP&:+1Q:#P`LE__\` -M`%"+AUP+``#_4`2#Q!#K(CO_:.`%```SP&:+1Q:#P`HE__\``%"+AUP+``#_ -M4`B#Q`B^^/___[T0````9H6O<@L``'1%,\!FBT<6@\`")?__``!0BX=<"P`` -M_U`<B]@SP&:+1Q:#P`,E__\``%"+AUP+``#_4!S!X`AF"]B!X___``"#Q`CK -M)3O_,\!FBT<6@\`")?__``!0BX=<"P``_U`@B]B!X___``"#Q`1FB5PT&(/& -M`GR%,\"^"````&:+1"064(M$)!@E__\``%`SP&:+1"0:4(M$)!PE__\``%!J -M`6H$5^AL6@``@\0<75M>7X/$$,.0@^PX5XM\)$!64U5FBX=R"P``9JD0`'0\ -M:(`````SP&:+1Q:#P`HE__\``%"+AUP+``#_4`1J$#/`9HM'%H/`"R7__P`` -M4(N'7`L``/]0!(/$$.L@:(`0```SP&:+1Q:#P`HE__\``%"+AUP+``#_4`B# -MQ`AFBX=R"P``9JD0`'0W,\!FBT<6@\`")?__``!0BX=<"P``_U`<,\!FBT<6 -M@\`#)?__``!0BX=<"P``_U`<@\0(ZQT[_S/`9HM'%H/``B7__P``4(N'7`L` -M`/]0((/$!&:+AW(+``!FJ1``=$0SP&:+1Q:#P`(E__\``%"+AUP+``#_4!R+ -M\#/`9HM'%H/``R7__P``4(N'7`L``/]0','@"&8+\('F__\``(/$".LDD#/` -M9HM'%H/``B7__P``4(N'7`L``/]0((OP@>;__P``@\0$B\:(1"1&9HN'<@L` -M`&:I$`!T1C/`9HM'%H/``B7__P``4(N'7`L``/]0'(OP,\!FBT<6@\`#)?__ -M``!0BX=<"P``_U`<P>`(9@OP@>;__P``@\0(ZR:#QP`SP&:+1Q:#P`(E__\` -M`%"+AUP+``#_4""+\('F__\``(/$!(O&B$0D16:+AYH+``!FJ0$`='MFBX=R -M"P``9JD0`'1%,\!FBT<6@\`")?__``!0BX=<"P``_U`<B_`SP&:+1Q:#P`,E -M__\``%"+AUP+``#_4!S!X`AF"_"!YO__``"#Q`CK)3O_,\!FBT<6@\`")?__ -M``!0BX=<"P``_U`@B_"!YO__``"#Q`2+QHA$)$3&1"1#`3/`,]**1"1&BI>Z -M"P``.\(/A%X#``"+[XV%F@L``(V]MPL``(E$)"R-A;H+``")1"0TB40D*(V% -MF`L``(E$)#"+1"0TNA\```"*""+1BD0D0XORA,!U"(7V#X6.````C02UJ!`` -M`&:+\&:+A7(+``!FJ1``=%"+QB7_````4#/`9HM%%H/`"B7__P``4(N%7`L` -M`/]0!('F__\``#/`P?X(@>;_````5F:+11:#P`LE__\``%"+A5P+``#_4`2# -MQ!#K)8/'`('F__\``#/`5F:+11:#P`HE__\``%"+A5P+``#_4`B#Q`C&1"1# -M`(M$)"C^`+H?````(A>-%%+!X@.-A!6\"P``B40D'&:+A7(+``!FJ1``=$8S -MP&:+11:#P`(E__\``%"+A5P+``#_4!R+V#/`9HM%%H/``R7__P``4(N%7`L` -M`/]0','@"&8+V('C__\``(/$".LF@\<`,\!FBT46@\`")?__``!0BX5<"P`` -M_U`@B]B!X___``"#Q`2+1"0<9HE8"F:+A7(+``!FJ1``=$0SP&:+11:#P`(E -M__\``%"+A5P+``#_4!R+V#/`9HM%%H/``R7__P``4(N%7`L``/]0','@"&8+ -MV('C__\``(/$".LDD#/`9HM%%H/``B7__P``4(N%7`L``/]0((O8@>/__P`` -M@\0$9O?#`/YU"HM$)!S&0`X`ZR"*A7T+``"H!'0*N`(```#K"(/'`+@!```` -MBU0D'(A"#HM$)!R+5"0P9HM`"F:+$B7__P``@>+__P``.\)^#HM$)!S&0`X# -M_X7$$```9O?#`!YU#6;WPP!`=`;_A<@0``!F]\,`$'0&_X7,$```N@,```"+ -M1"0<9B/3B%`/BT0D+&;W``(`=11F]\,`_G0NBT0D'&:+0`IFA<!U(8J5MPL` -M`(M$)!S^PHB5MPL``,=`$`$```#ID0```(/'`#/2BT0D',=`$`````"+1"0P -M9HL0BT0D'&:+2`J!X?__``"+PCO(?P*+P8O(BT0D'(E$)#B%R7Y&C9VW"P`` -MC7`0BT0D.+H?````9HM`""7__P``*\B*`_[`B`.*!R+0C112P>(#C805O`L` -M`(E$)#B+1"0<BT`00(7)B09_PXM$)!QFBU`*9H/J!&:)4`HSP(M4)#2*1"1& -MBA*!XO\````[P@^%SOS__XO]9HN'F@L``&:I`0`/A!$"``"*AYP+```\`G5S -M,]*+1"1$)?\```"*E\,.```[PG16B7PD-(V?PPX``(VWPPX``(''O@X``(H+ -MN!\````BP8M,)#2-%$"*!L'B`O[`B`:-C!'$#@``9L=!!@``BA>*000"PC/2 -MB`>+1"1$)?\```"*$SO"=<!=6UY?@\0XP\9$)$,!,]*+1"1$)?\```"*E\,. -M```[PG3>B^^-A;X.``"-G<,.``")1"0LC446C;W##@``B40D,(H3N!\````B -MPHOPC11VP>("C805Q`X``(E$)"2*1"1#A,!U"(7V#X6*````C8:($```9HOP -M9HN%<@L``&:I$`!T38O&)?\```!0,\!FBT46@\`*)?__``!0BX5<"P``_U`$ -M@>;__P``,\#!_@B!YO\```!69HM%%H/`"R7__P``4(N%7`L``/]0!(/$$.LB -M@>;__P``,\!69HM%%H/`"B7__P``4(N%7`L``/]0"(/$",9$)$,`_@>+1"0P -M9HL`)?__``"#P`(E__\``%"+A5P+``#_4!R#Q`0EB````#V(````=`Z+1"0D -M9L=`!@(`ZSP[_XM$)#!FBP`E__\``(/``B7__P``4(N%7`L``/]0'(/$!(/@ -M1(/X1'0'N`,```#K`C/`BU0D)&:)0@:+1"0LBTPD)(H0BDD$`LHSTH@(BA.+ -M1"1$)?\````[P@^%K?[__UU;7E^#Q#C#,]*X'P```(J/PPX``(J7P`X``"+! -MC01`P>`"C9P'Q`X``#/`BD0D13O"#X0T_O__B^N-G[X.``")?"0PC8?##@`` -MB40D-(VWP`X``(''P`X``#/`BE4%_L**PHA5!3/2BE4$.\)U*&;'108``(ML -M)#"Y'P```/Z%PPX``(M4)#0B"HT,2<'A`HVL#<0.```STHM$)#"*@+X.``#^ -MP(@#BT0D,(J`P`X``/[`B`<SP(I$)$6*%CO"=9E=6UY?@\0XPX/'`%=6BW0D -M#&:+?@J+QX'G__\``,'G""7__P``P?@(@><`_P``)?\````+QXOX@>?__P`` -M9O?'``5T7VH`:@!J`('G__\``%=J`&H#5NA@40``5N@:4```9L=&`D4`:@!6 -MBX9L"P``_U`$9L=&!`,`@\0H7E_#5NCV3P``9L=&`D4`:@!6BX9L"P``_U`$ -M9L=&!`,`@\0,7E_#:@!J`&H`B\<E__\``%!J`&H#5N@`40``@\0<9O?'``AU -MNL:&CQ````=>7\.!_P````"!_P````"#[!0SP%>+?"0<5E/&1QH`QT0D%`$` -M``!FBT<6@\`&)?__``!0BX=<"P``_U`<@\0$BMCVPX!U##/`6UY?@\04PX/' -M`+A_````(L,E_P```%`SP&:+1Q:#P`8E__\``%"+AUP+``#_4`1FBX=R"P`` -M@\0(9JD"``^$F@$``&:I$`!T23/`9HM'%H/`""7__P``4(N'7`L``/]0'(OP -M,\!FBT<6@\`))?__``!0BX=<"P``_U`<P>`(9@OP@>;__P``B70D&(/$".LF -M._\SP&:+1Q:#P`@E__\``%"+AUP+``#_4"`E__\``(E$)!2#Q`2+1"009HE$ -M)!XE__\```T`"```9HE$)!IFBX=R"P``9JD0`'1/,\"*1"0:4#/`9HM'%H/` -M""7__P``4(N'7`L``/]0!#/`9HM$)"+!^`@E_P```%`SP&:+1Q:#P`DE__\` -M`%"+AUP+``#_4`2#Q!#K)H/'`#/`9HM$)!I0,\!FBT<6@\`()?__``!0BX=< -M"P``_U`(@\0(,\!FBT0D'@T``0``9HE$)!IFBX=R"P``9JD0`'1/,\"*1"0: -M4#/`9HM'%H/`""7__P``4(N'7`L``/]0!#/`9HM$)"+!^`@E_P```%`SP&:+ -M1Q:#P`DE__\``%"+AUP+``#_4`2#Q!#K)H/'`#/`9HM$)!I0,\!FBT<6@\`( -M)?__``!0BX=<"P``_U`(@\0(N`\````BPX/X#'=V_R2%D````#O_5^BN\O__ -M@\0$ZV*05^A"]/__:@$SP&:+1Q:#P`<E__\``%"+AUP+``#_4`17Z"+T___' -M1"0D`@```(/$$.LND%?HKO'__X/$!.LBD(M';(7`=!K'1VP`````5__0@\0$ -MZPL[_U?HFOS__X/$!&H@,\!FBT<6@\`')?__``!0BX=<"P``_U`$,\!FBT<6 -M@\`')?__``!0BX=<"P``_U`<@\0,J00```!U(&B$````,\!FBT<6@\`')?__ -M``!0BX=<"P``_U`$@\0(6UZ+1"0,7X/$%,.#["Q7BWPD-%:+="0\4XM<)$15 -MBH=Z"P``/`1U#XN':`L``&:+0!#K#8/&`(N':`L``&:+0!)FB4<8,\!H@``` -M`&:+1Q:#P`@E__\``%"+AUP+``#_4`1J#XN'7`L``/]0-#/`9HM'%H/`""7_ -M_P``4(N'7`L``/]0'(/@9(/$$(/(`8A$)#MFBX=R"P``9JD!`'4+BE0D.X#* -M`HA4)#LSP(I$)#M0,\!FBT<6@\`()?__``!0BX=<"P``_U`$:AZ+AUP+``#_ -M4#1J`#/`9HM'%H/`"27__P``4(N'7`L``/]0!&H>BX=<"P``_U`T9L=$)%`` -MP&:+AW(+``"#Q!AFJ0`$="-FJ0`(=21F@4PD.``(9HM'!F8]"P!T$V:!3"0X -M``SK"H/'`&:!3"0X`!"+ZXU<)#:-0P%05?_6@\0(A<!U"U-5_]:#Q`B%P'0* -MQT0D(`$```#K",=$)"``````BT0D((7`#X3<````Z=\#``"#QP"-;"0VN`$` -M```#Q5!3_]:#Q`B%P'4+55/_UH/$"(7`=`>]`0```.L",^V%[0^$<@(``.FE -M`P``D(M$)#!F_TPD,&:%P`^$6@(``(OKC5PD-K@!`````\-05?_6@\0(A<!U -M"U-5_]:#Q`B%P'0'NP$```#K`C/;A=L/A5X#``"+1"0P9O],)#!FA<!UP.M& -M._]FBT0D+F:%P'2>Z6'___^0:B8SP&:+1Q:#P`@E__\``%"+AUP+``#_4`1F -MQT<"(@!FQT<$```SP(/$"%U;7E^#Q"S#D(O=Z<D!``"0C6PD-K@!`````\50 -M4__6@\0(A<!U"U53_]:#Q`B%P'0'O0$```#K`C/MA>T/A<X"``"+1"0P9O], -M)#!FA<`/A(0!``")="00OA````!FA;=R"P``B^MFBUPD-G1+,\"*PU`SP&:+ -M1Q:#P`(E__\``%"+AUP+``#_4`2!X___```SP,'["('C_P```%-FBT<6@\`# -M)?__``!0BX=<"P``_U`$@\00ZR.0@>/__P``,\!39HM'%H/``B7__P``4(N' -M7`L``/]0"(/$"(M$)#"+W6;_3"0P9H7`#X5O____BW0D$.GA````D(M$)#!F -M_TPD,&:%P`^$S@```(OKC5PD-K@!`````\-05?_6@\0(A<!U"U-5_]:#Q`B% -MP'0'NP$```#K`C/;A=L/A=(!``!FBX=R"P``9JD0`&:+7"0V=$PSP(K#4#/` -M9HM'%H/``B7__P``4(N'7`L``/]0!('C__\``#/`P?L(@>/_````4V:+1Q:# -MP`,E__\``%"+AUP+``#_4`2#Q!#K)#O_@>/__P``,\!39HM'%H/``B7__P`` -M4(N'7`L``/]0"(/$"(M$)#!F_TPD,&:%P`^%//___^DS_O__@\<`C6PD,K@! -M`````\504__6@\0(A<!U"U53_]:#Q`B%P'0'O0$```#K`C/MA>T/A08!``"- -M;"0TN`$````#Q5!3_]:#Q`B%P'4+55/_UH/$"(7`=`F]`0```.L$._\S[87M -M#X72````C6PD,+@!`````\504__6@\0(A<!U"U53_]:#Q`B%P'0)O0$```#K -M!#O_,^V%[0^%G@```+@!````9B-$)#!FB40D+HM$)#`E__\``,'X`6:)1"0P -M9H7`#X0Y_?__BT0D.&:%1"0R#X4:_?__9HM$)#)FB40D*F:+AW(+``!FJ1`` -M=%\SP(I$)"I0,\!FBT<6@\`,)?__``!0BX=<"P``_U`$,\!FBT0D,L'X""7_ -M````4#/`9HM'%H/`#27__P``4(N'7`L``/]0!(/$$.LV@\<`75M>N`$```!? -M@\0LPX/'`#/`9HM$)"I0,\!FBT<6@\`,)?__``!0BX=<"P``_U`(@\0(BT0D -M-&:)1"0J9HN'<@L``&:I$`!T3S/`BD0D*E`SP&:+1Q:#P`HE__\``%"+AUP+ -M``#_4`0SP&:+1"0RP?@()?\```!0,\!FBT<6@\`+)?__``!0BX=<"P``_U`$ -M@\00ZR:#QP`SP&:+1"0J4#/`9HM'%H/`"B7__P``4(N'7`L``/]0"(/$"&:+ -M1"0N9H7`#X0?_?__Z3+\__\[_X/L(%>+1"0LQT0D$`````!6BW0D+%-5QD0D -M+P%FBP`S_V:%P`^$Q`,``(V&F@L``(E$)!2+1"0XC5@$9HM#"&:%P`^$C@,` -M`+@?````BHZ_#@``(L&+5"0<9HE$)"R*1"0O0H3`B50D'`^$P0```(M$)!1F -M]P`0`'0*BT,$N@@```#K!8M#!#/2B!"+1"0L)?__``"-!,4`$@``9HE$)"AF -MBX9R"P``9JD0`'13BT0D*"7_````4#/`9HM&%H/`!"7__P``4(N&7`L``/]0 -M!(M$)#`E__\``,'X""7_````4#/`9HM&%H/`!27__P``4(N&7`L``/]0!(/$ -M$.LG._^+1"0H)?__``!0,\!FBT86@\`$)?__``!0BX9<"P``_U`(@\0(QD0D -M+P#IV0```)!FBX9R"P``9JD0`'0[:@`SP&:+1A:#P`(E__\``%"+AEP+``#_ -M4`1J$#/`9HM&%H/``R7__P``4(N&7`L``/]0!(/$$.LB._]H`!```#/`9HM& -M%H/``B7__P``4(N&7`L``/]0"(/$"(M$)"QFA<!U9V:+AG(+``!FJ1``=#IJ -M`#/`9HM&%H/`!"7__P``4(N&7`L``/]0!&H2,\!FBT86@\`%)?__``!0BX9< -M"P``_U`$@\00ZR&0:``2```SP&:+1A:#P`0E__\``%"+AEP+``#_4`B#Q`@S -MR6:+CG(+``#WP2((``!T!XMK!.L$._^+*XO%P>@0]\$0````9HE$)"AT5(M$ -M)"@E_P```%`SP&:+1A:#P`(E__\``%"+AEP+``#_4`2+1"0P)?__``#!^`@E -M_P```%`SP&:+1A:#P`,E__\``%"+AEP+``#_4`2#Q!#K*(/'`(M$)"@E__\` -M`%`SP&:+1A:#P`(E__\``%"+AEP+``#_4`B#Q`AFBX9R"P``9JD0`&:);"0H -M=%&+1"0H)?\```!0,\!FBT86@\`")?__``!0BX9<"P``_U`$@>7__P``,\#! -M_0B!Y?\```!59HM&%H/``R7__P``4(N&7`L``/]0!(/$$.LG._^+1"0H)?__ -M``!0,\!FBT86@\`")?__``!0BX9<"P``_U`(@\0(9HM#"&:)1"0H9HN&<@L` -M`&:I$`!T48M$)"@E_P```%`SP&:+1A:#P`(E__\``%"+AEP+``#_4`2+1"0P -M)?__``#!^`@E_P```%`SP&:+1A:#P`,E__\``%"+AEP+``#_4`2#Q!#K)8M$ -M)"@E__\``%`SP&:+1A:#P`(E__\``%"+AEP+``#_4`B#Q`AF_XZ\#@``BH:_ -M#@``_L"(AK\.``"#PPR+1"0X1V:+`"7__P``._@/C$W\__]FBX::"P``9JD! -M`'0)9K\`<.L'@\<`9K\`T&:+AG(+``!FJ1``=%>+QR7_````4#/`9HM&%H/` -M`B7__P``4(N&7`L``/]0!('G__\``#/`P?\(@>?_````5V:+1A:#P`,E__\` -M`%"+AEP+``#_4`2#Q!!=6UZ+1"007X/$(,.!Y___```SP%=FBT86@\`")?__ -M``!0BX9<"P``_U`(@\0(Z]"#[!2X'P```%>+?"0<5E.*E[D+``"+7"0H(L(# -MP(T$0`4H$0``9HOP9HN'<@L``&:I$`!T3XO&)?\```!0,\!FBT<6@\`$)?__ -M``!0BX=<"P``_U`$@>;__P``,\#!_@B!YO\```!69HM'%H/`!27__P``4(N' -M7`L``/]0!(/$$.LD._^!YO__```SP%9FBT<6@\`$)?__``!0BX=<"P``_U`( -M@\0(_H>Y"P``,\!FBX=R"P``B40D%*D""```=`2+,^L#BW,$B\;!Z!!FB40D -M'(M$)!2I$````'14BT0D'"7_````4#/`9HM'%H/``B7__P``4(N'7`L``/]0 -M!(M$)"0E__\``,'X""7_````4#/`9HM'%H/``R7__P``4(N'7`L``/]0!(/$ -M$.LH@\<`BT0D'"7__P``4#/`9HM'%H/``B7__P``4(N'7`L``/]0"(/$"&:+ -MAW(+``!FJ1``=$Z+QB7_````4#/`9HM'%H/``B7__P``4(N'7`L``/]0!(O& -M)?__``#!^`@E_P```%`SP&:+1Q:#P`,E__\``%"+AUP+``#_4`2#Q!#K))"+ -MQB7__P``4#/`9HM'%H/``B7__P``4(N'7`L``/]0"(/$"&:+AW(+``!FJ1`` -M9HMS"'10B\8E_P```%`SP&:+1Q:#P`(E__\``%"+AUP+``#_4`2+QB7__P`` -MP?@()?\```!0,\!FBT<6@\`#)?__``!0BX=<"P``_U`$@\00ZR:#QP"+QB7_ -M_P``4#/`9HM'%H/``B7__P``4(N'7`L``/]0"(/$"&:+1P)F/5``#X6*```` -M:@$SP&:+1Q:#P`<E__\``%"+AUP+``#_4`1FB[>@"P``@\0(B\9F#0"`9H7V -M9HF'H`L``'5.9HM'`F8]4`!R1,:'NPL```!FBT<09H7`="O'1VP`````:(@` -M```SP&:+1Q:#P`<E__\``%"+AUP+``#_4`2#Q`CK"SO_5^@:X?__@\0$9L=' -M`F``6UY?@\04PSO_._^!_P````"#[!!7BWPD&%939HN'<@L``&:I$`!T.6H! -M,\!FBT<6@\`,)?__``!0BX=<"P``_U`$:@`SP&:+1Q:#P`TE__\``%"+AUP+ -M``#_4`2#Q!#K'6H!,\!FBT<6@\`,)?__``!0BX=<"P``_U`(@\0(9HN'<@L` -M`&:I$`!T.FH`,\!FBT<6@\`*)?__``!0BX=<"P``_U`$:@HSP&:+1Q:#P`LE -M__\``%"+AUP+``#_4`2#Q!#K(9!H``H``#/`9HM'%H/`"B7__P``4(N'7`L` -M`/]0"(/$"&:+AW(+``!FJ1``=#]J`#/`9HM'%H/``B7__P``4(N'7`L``/]0 -M!&B?````,\!FBT<6@\`#)?__``!0BX=<"P``_U`$@\00ZR.#QP!H`)\``#/` -M9HM'%H/``B7__P``4(N'7`L``/]0"(/$"&:+AW(+``!FJ1``=#MJ`#/`9HM' -M%H/``B7__P``4(N'7`L``/]0!&H`,\!FBT<6@\`#)?__``!0BX=<"P``_U`$ -M@\00ZQ\[_VH`,\!FBT<6@\`")?__``!0BX=<"P``_U`(@\0(9HN'<@L``&:I -M$`!T.FH`,\!FBT<6@\`")?__``!0BX=<"P``_U`$:@`SP&:+1Q:#P`,E__\` -M`%"+AUP+``#_4`2#Q!#K'I!J`#/`9HM'%H/``B7__P``4(N'7`L``/]0"(/$ -M"&:+AW(+``!FJ1``=#IJ`#/`9HM'%H/``B7__P``4(N'7`L``/]0!&H`,\!F -MBT<6@\`#)?__``!0BX=<"P``_U`$@\00ZQZ0:@`SP&:+1Q:#P`(E__\``%"+ -MAUP+``#_4`B#Q`AFBX=R"P``9JD0`&:+=QAT3HO&)?\```!0,\!FBT<6@\`" -M)?__``!0BX=<"P``_U`$B\8E__\``,'X""7_````4#/`9HM'%H/``R7__P`` -M4(N'7`L``/]0!(/$$.LDD(O&)?__``!0,\!FBT<6@\`")?__``!0BX=<"P`` -M_U`(@\0(9HN'<@L``&:I$`!FBW<8=%"+QB7_````4#/`9HM'%H/``B7__P`` -M4(N'7`L``/]0!('F__\``#/`P?X(@>;_````5F:+1Q:#P`,E__\``%"+AUP+ -M``#_4`2#Q!#K)8/'`('F__\``#/`5F:+1Q:#P`(E__\``%"+AUP+``#_4`B# -MQ`AFBX=R"P``9JD0`'0Y:@4SP&:+1Q:#P`(E__\``%"+AUP+``#_4`1J!3/` -M9HM'%H/``R7__P``4(N'7`L``/]0!(/$$.L@:`4%```SP&:+1Q:#P`(E__\` -M`%"+AUP+``#_4`B#Q`@STF:+EW(+``#WP@"```!T"XUW$(U?".L/@\8`BX=D -M"P``C7`0C5@(B\;!Z!#WPA````!FB40D&'12BT0D&"7_````4#/`9HM'%H/` -M`B7__P``4(N'7`L``/]0!(M$)"`E__\``,'X""7_````4#/`9HM'%H/``R7_ -M_P``4(N'7`L``/]0!(/$$.LFD(M$)!@E__\``%`SP&:+1Q:#P`(E__\``%"+ -MAUP+``#_4`B#Q`AFBX=R"P``9JD0`'1.B\8E_P```%`SP&:+1Q:#P`(E__\` -M`%"+AUP+``#_4`2+QB7__P``P?@()?\```!0,\!FBT<6@\`#)?__``!0BX=< -M"P``_U`$@\00ZR20B\8E__\``%`SP&:+1Q:#P`(E__\``%"+AUP+``#_4`B# -MQ`B+P\'H$&:+\&:+AW(+``!FJ1``=%"+QB7_````4#/`9HM'%H/``B7__P`` -M4(N'7`L``/]0!(O&)?__``#!^`@E_P```%`SP&:+1Q:#P`,E__\``%"+AUP+ -M``#_4`2#Q!#K)H/'`(O&)?__``!0,\!FBT<6@\`")?__``!0BX=<"P``_U`( -M@\0(9HN'<@L``&:I$`!FB_-T38O&)?\```!0,\!FBT<6@\`")?__``!0BX=< -M"P``_U`$@>;__P``,\#!_@B!YO\```!69HM'%H/``R7__P``4(N'7`L``/]0 -M!(/$$.LB@>;__P``,\!69HM'%H/``B7__P``4(N'7`L``/]0"(/$"&:+AW(+ -M``!FJ1``=$5H@````#/`9HM'%H/`!B7__P``4(N'7`L``/]0!&B0````,\!F -MBT<6@\`')?__``!0BX=<"P``_U`$@\006UY?@\00PY!H@)```#/`9HM'%H/` -M!B7__P``4(N'7`L``/]0"(/$"%M>7X/$$,.0._^!_P````"#[`Q7BWPD%%93 -M9HN'<@L``&:I$`!T13/`9HM'%H/`#"7__P``4(N'7`L``/]0'(OP,\!FBT<6 -M@\`-)?__``!0BX=<"P``_U`<P>`(9@OP@>;__P``@\0(ZR4[_S/`9HM'%H/` -M#"7__P``4(N'7`L``/]0((OP@>;__P``@\0$9HN'<@L``&:I$`!T1#/`9HM' -M%H/`"B7__P``4(N'7`L``/]0'(O8,\!FBT<6@\`+)?__``!0BX=<"P``_U`< -MP>`(9@O8@>/__P``@\0(ZR20,\!FBT<6@\`*)?__``!0BX=<"P``_U`@B]B! -MX___``"#Q`1FBX=R"P``9JD0`&:)7"06=#MJ`3/`9HM'%H/`#"7__P``4(N' -M7`L``/]0!&H`,\!FBT<6@\`-)?__``!0BX=<"P``_U`$@\00ZQ\[_VH!,\!F -MBT<6@\`,)?__``!0BX=<"P``_U`(@\0(9HN'<@L``&:I$`!T/FCN````,\!F -MBT<6@\`*)?__``!0BX=<"P``_U`$:@4SP&:+1Q:#P`LE__\``%"+AUP+``#_ -M4`2#Q!#K(CO_:.X%```SP&:+1Q:#P`HE__\``%"+AUP+``#_4`B#Q`AJ"HN' -M7`L``/]0-&:+AW(+``"#Q`1FJ1``=#DSP&:+1Q90BX=<"P``_U`<B]@SP&:+ -M1Q9`)?__``!0BX=<"P``_U`<P>`(9@O8@>/__P``@\0(ZQLSP&:+1Q90BX=< -M"P``_U`@B]B!X___``"#Q`1FBX=R"P``9JD0`'10B\8E_P```%`SP&:+1Q:# -MP`PE__\``%"+AUP+``#_4`2!YO__```SP,'^"('F_P```%9FBT<6@\`-)?__ -M``!0BX=<"P``_U`$@\00ZR6#QP"!YO__```SP%9FBT<6@\`,)?__``!0BX=< -M"P``_U`(@\0(9HN'<@L``&:I$`!T63/`BD0D%E`SP&:+1Q:#P`HE__\``%"+ -MAUP+``#_4`0SP&:+1"0>P?@()?\```!0,\!FBT<6@\`+)?__``!0BX=<"P`` -M_U`$@\00B\-;7B7__P``7X/$#,.0,\!FBT0D%E`SP&:+1Q:#P`HE__\``%"+ -MAUP+``#_4`B#Q`CKS(/'`('_`````('_`````(/L#%>+?"045E-59HN'H`L` -M`&:%P'0^9HM'$&:%P'0LQT=L`````&B(````,\!FBT<6@\`')?__``!0BX=< -M"P``_U`$@\0(ZPR#QP!7Z,[6__^#Q`1FBX>T"P``9H7`#X3/````,^VX'P`` -M`"*'M@L``(OP9HN'M`L``&:%P'XIC9^T"P``C01VP>`#C80'O`L``%!7Z(;R -M__]&@\0(@^8?10^_`SOH?-UJ`3/`9HM'%H/`!R7__P``4(N'7`L``/]0!&;' -M1P)@`&:+MZ`+``"#Q`B+QF8-`(!FA?9FB8>@"P``=55FBT<"9CU0`')+QH>[ -M"P```&:+1Q!FA<!T*<=';`````!HB````#/`9HM'%H/`!R7__P``4(N'7`L` -M`/]0!(/$".L25^CRU?__@\0$ZP>09L='`E``5^A`T?__9HNWC@L``(/$!(O& -M@>;__P``P>8(:@`E__\``('F`/\``,'X""7_````"\:+\#/`@>;__P``BH>< -M"P``4&:+AW(+``!FJ0$`=`JX$````.L(@\<`N`0````E__\``%"+QB7__P`` -M4&H`:@!7Z)\T``"#Q!R*AWT+``"H`W1J5^CL^O__9HF'D!```(/$!&:+MZ`+ -M``"+QF8-``%FA?9FB8>@"P``=4%FBT<"9CU0`'(WQH>["P```&:+1Q!FA<!T -M+\=';`````!HB````#/`9HM'%H/`!R7__P``4(N'7`L``/]0!(/$"%U;7E^# -MQ`S#5^CJU/__@\0$75M>7X/$#,.#QP"!_P````"!_P````!0BU0D"(M$)`QF -MBXJ@"P``9@O!9H7)9HF"H`L``'5!9HM"`F8]4`!R-\:"NPL```!FBT(09H7` -M="O'0FP`````:(@````SP&:+0A:#P`<E__\``%"+@EP+``#_4`2#Q`B#Q`3# -M4NAFU/__@\0$@\0$PX/'`('_`````('_`````(/L%+C_````5XM\)!Q39B-' -M"HK8,\"*PSV`````#X2!````@_@"="1J`&H`:@`-``8``"7__P``4&H!:@)7 -MZ#TS``"#Q!Q;7X/$%,-J`&H`:@`SP&:+1PK!^`@-``<``"7__P``4&H`:@)7 -MZ!`S``!H_P```#/`9HM'%H/`!R7__P``4(N'7`L``/]0!&;'1P)%`&;'1P0% -M`(/$)%M?@\04PSO_9HM'"F:I`(!T"L:'G`L```+K")#&AYP+```!9HN'<@L` -M`&:I`@AT!#/`ZP6X`$```(E$)`AFBX>:"P``9JD!`'0*N`"```#K!8/'`#/` -M9L='$``$QT=H``````M$)`B+R"7__P``P?@(@>'__P``P>$()?\```"!X0#_ -M```+P8E'$C/`:)````!FBT<6@\`')?__``!0BX=<"P``_U`$@\0(,\#'1VP` -M````9L='!`$`9L='`D0`:(@```!FBT<6@\`')?__``!0BX=<"P``_U`$@\0( -M6U^#Q!3#D(/L#%>+?"045E-FBX=R"P``9JD!`'0)9L='.```ZP>09L='.``0 -M9HN'F@L``&:I!`!U(F:+1SAF#0!`9HN7F@L``&;WP@@`9HE'.'0(9@T`(&:) -M1SAFB[>8"P``N0`:``!FB4](BH>("P``9HE/2KD9````B$<ZBH>)"P``B$<[ -MBH>*"P``B$<\BH>+"P``B$<]BH>,"P``B$<^BH>-"P``B$<_BX>0"P``B4=` -MBX>4"P``B4=$B\8E__\``('F__\``,'X"(A/4L'F""7_````@>8`_P``B$]3 -M"\8SR6:)1TR^`@```&:)3TYFB4]0H`````"(1QR@`0```(A''8J&`````(A$ -M-QR*A@$```"(1#<=BH8"````B$0W'HJ&`P```(/&!(/^$HA$-QM\T&:+AW(+ -M``!FJ0"`#X28````C7<<B]:+QL'J",'H&('B`/\```O"B];!X@C!YAB!X@`` -M_P`+P@O&C7<XB4=49L='$``#9L='!#P`9L='`D,`B]:+QL'H&+L`````P>H( -MB5]H@>(`_P``"\*+UL'B",'F&('B``#_``O""\:)1Q(SP&B0````9HM'%H/` -M!R7__P``4(N'7`L``/]0!(/$"%M>7X/$#,.#Q@"+AV0+``"^'`````/PB]:+ -MQL'J",'H&('B`/\```O"B];!X@C!YAB!X@``_P`+P@O&B4=4BX=D"P``C7`X -MZ5/___\[_XUT)@"#[!@SP%>+?"0@5E-59HM'`H/X0P^$@00```^/6`0``(/X -M)'1O#X\M`0``@_@B#X2(````#X^>````@_@A#X6=!P``,\!FBT<6@\`&)?__ -M``!0BX=<"P``_U`<BMBX<````(/$!"+#@_AP#X1D`@``5^@J,```9L='!``` -M9L='`B0`N.@#``"#Q`1=6UY?@\08PSO_9HM'!&;_1P1F/0(`=@QFQT<$``!F -MQT<")0!=6UZXZ`,``%^#Q!C#D&:+1P1F_T<$9CT"`';D9L='!```9L='`B,` -MZ]:#^",/A?\&``!FBT<$9O]'!&8]'@`/AXL````SP&:+1Q:#P`8E__\``%"+ -MAUP+``#_4!R*V+@P````@\0$(L.#^#`/A+4```"X?P```"+#@_A`#X6D`0`` -M9L='`C``:@!J`&H`:@!J`&H!5^B8+@``@\0<N.@#``!=6UY?@\08PX/X00^$ -MYP````^/V0(``(/X)0^%<`8``&:+1P1F_T<$9CT>`'8N9L='`A``:@!J`&H` -M:``"``!J`&H!5^A'+@``@\0<N.@#``!=6UY?@\08PX/'`#/`9HM'%H/`!B7_ -M_P``4(N'7`L``/]0'(K8N#````"#Q`0BPX/X,'4[9L='`A``:@!J`&H`N!\` -M```BPPT``0``)?__``!0:@!J`5?HXRT``(/$'+CH`P``75M>7X/$&,.#QP"X -M?P```"+#@_A`#X6T````9L='`C``BY=@"P``4HN'7`L``/]0/(/$!+CH`P`` -M75M>7X/$&,,[_S/`9HM'%H/`!B7__P``4(N'7`L``/]0'(/$!(K8]L,0=#)J -M`&H`:@"X#P```"+##0`!```E__\``%!J`6H"5^A4+0``@\0<N.@#``!=6UY? -M@\08P_;#8'1#9HM'!&;_1P1F/60`=B5J`&H`:@!H``(``&H!:@)7Z!PM``"# -MQ!RXZ`,``%U;7E^#Q!C#75M>N&0```!?@\08PX/&`&:+1Q!FA<!U/HM'$CW! -MXM2+=30SP&:+1P@]__\``'4G,\!FBT<*/='7``!U&C/`9HM'##W%V0``=0TS -MP&:+1PX]P]0``'1%:@!J`&H`9HN'<@L``&:I`(!T"K@`!```ZPB#QP"X``,` -M`"7__P``4&H!:@)7Z(,L``"#Q!RXZ`,``%U;7E^#Q!C#@\<`:B`SP&:+1Q:# -MP`<E__\``%"+AUP+``#_4`1HA````#/`9HM'%H/`!R7__P``4(N'7`L``/]0 -M!&;'1RX`"F;'1S`*`&:+AW(+``"#Q!!FJ0"`=`6-1R[K"8N'9`L``(/`+F;' -M1Q``"V;'1P0"`&;'1P)"`(O(P>@8B]'!Z@B!X@#_```+PHO1P>((P>$8@>(` -M`/\`"\*Z``````O!B5=HB4<2,\!HD````&:+1Q:#P`<E__\``%"+AUP+``#_ -M4`2#Q`BXZ`,``%U;7E^#Q!C#D(/X0@^%EP,``&:+1P1F_T\$9H7`#X54_/__ -M:@!J`&H`:``$``!J`6H"5^AQ*P``@\0<Z3?\__^0@_A0#X30`0``#X_!`0`` -M@_A%='P/CTX#``"#^$0/A44#``!FBT<$9O]/!&:%P`^%`OS__V:+AW(+``!F -MJ1``#X3'````,\!FBT<6@\`()?__``!0BX=<"P``_U`<B_`SP&:+1Q:#P`DE -M__\``%"+AUP+``#_4!S!X`AF"_"!YO__``")="0@@\0(Z:$```"09HM'!&;_ -M3P1FA<`/A97[__]FBT<&9CT+`'4\,\!FBT<6@\`()?__``!0BX=<"P``_U`< -M@\@()?\```!0,\!FBT<6@\`()?__``!0BX=<"P``_U`$@\0,5^A+ZO__9L=' -M!```9L='`D$`@\0$N&0```!=6UY?@\08PX/'`#/`9HM'%H/`""7__P``4(N' -M7`L``/]0("7__P``B40D'(/$!&:+AW(+``!FJ1``=$,SP&:+1Q:#P`8E__\` -M`%"+AUP+``#_4!R+Z#/`9HM'%H/`!R7__P``4(N'7`L``/]0','@"&8+Z('E -M__\``(/$".LC,\!FBT<6@\`&)?__``!0BX=<"P``_U`@B^B!Y?__``"#Q`2! -MY?__``"+1"08527__P``4&H`:``%``!J`6H"5^BC*0``@\0<Z6GZ__^#QP"# -M^&`/A8\!``!FBX>@"P``9H7`#X0_`0``BH>["P``BLC^P3P"B(^["P``#XXG -M`0``9HN'<@L``&:I$`!T2C/`9HM'%H/`""7__P``4(N'7`L``/]0'(OP,\!F -MBT<6@\`))?__``!0BX=<"P``_U`<P>`(9@OP@>;__P``B70D((/$".LG@\<` -M,\!FBT<6@\`()?__``!0BX=<"P``_U`@)?__``")1"0<@\0$9HN'<@L``&:I -M$`!T0S/`9HM'%H/`!B7__P``4(N'7`L``/]0'(OH,\!FBT<6@\`')?__``!0 -MBX=<"P``_U`<P>`(9@OH@>7__P``@\0(ZR,SP&:+1Q:#P`8E__\``%"+AUP+ -M``#_4""+Z('E__\``(/$!('E__\``(M$)!A5)?__``!0,\!FBX>@"P``4&H! -M:@%J!U?H4B@``(/$'+CH`P``75M>7X/$&,,[_XI'&X3`#X0#^?__BD<:BM#^ -MPCP"B%<:#X[Q^/__:@!J`&H`:@-J`6H'5^@1*```@\0<N.@#``!=6UY?@\08 -MPY!=6UXSP%^#Q!C#._^-="8`@^P85XM\)"!6BW0D*%-5B\8E__\``%#_5QPS -MTB7^````BA4`````"\(E^P```(K8,\"*PU"+QB7__P``4/]7!+@!````@\0, -M(L.B`````(O&)?__``!0_U<<,](E_@```(H5``````O")?T```"*V#/`BL-0 -MB\8E__\``%#_5P2X`0```(/$#"+#H@````"+QB7__P``4/]7'#/2)?X```"* -M%0`````+PB7^````BM@SP(K#4(O&)?__``!0_U<$N`$```"#Q`PBPZ(````` -MB\8E__\``%#_5QPSTB7^````BA4`````"\(E[P```(K8,\"*PU"+QB7__P`` -M4/]7!+@!````@\0,(L.B`````(O&)?__``!0_U<<B\:#Q`0E__\``%#_5QR+ -MQH/$!"7__P``4/]7'(O&@\0$)?__``!0_U<<B\:#Q`0E__\``%#_5QPSTB7^ -M````BA4`````"\*#R!"*V#/`BL-0B\8E__\``%#_5P2X`0```(/$#"+#H@`` -M``"+QB7__P``4/]7'(O&@\0$)?__``!0_U<<B\:#Q`0E__\``%#_5QR+QH/$ -M!"7__P``4/]7'(O&@\0$)?__``!0_U<<,](E_@```(H5``````O"@\@"BM@S -MP(K#4(O&)?__``!0_U<$N`$```"#Q`PBPZ(`````B\8E__\``%#_5QR+QH/$ -M!"7__P``4/]7'(O&@\0$)?__``!0_U<<B\:#Q`0E__\``%#_5QR+7"0X@\0$ -M@>/_````QT0D'`$```#!XPB!RX````!FA=L/A'<!``"+1"0<A<!T(8O&B^LE -M__\``%#_5QPSTB7^````BA4`````"\*#R`'K(8O&B^LE__\``%#_5QPSTB7^ -M````BA4`````"\(E_@```(K8,\"*PU"+QB7__P``4/]7!+@!````@\0,(L.B -M`````(O&)?__``!0_U<<,](E_@```(H5``````O")?T```"*V#/`BL-0B\8E -M__\``%#_5P2X`0```(/$#"+#H@````"+QB7__P``4/]7'(O&@\0$)?__``!0 -M_U<<B\:#Q`0E__\``%#_5QR+QH/$!"7__P``4/]7'(O&@\0$)?__``!0_U<< -M,](E_@```(H5``````O"@\@"BM@SP(K#4(O&)?__``!0_U<$N`$```"#Q`PB -MPZ(`````B\8E__\``%#_5QR+QH/$!"7__P``4/]7'(O&@\0$)?__``!0_U<< -MB\:#Q`0E__\``%#_5QR+Q8'E__\``"4`@```@\0$C5PM`(E$)!QFA=L/A8G^ -M__]=6UY?@\08PSO_._^!_P````"#[!17BWPD'%:+="0D4U6+QB7__P``4/]7 -M'(A$)"<E_P```(/(("7_````4(O&)?__``!0_U<$Q@4``````(M4)#RX/P`` -M`"+"#8`````E_P```%"+QB7__P``4%?HOOO__XM$)$R#Q!B%P(U0_XE4)#0/ -MA$P!```S[8EL)!B+QB7__P``4/]7'#/2)?X```"*%0`````+PB7]````BM@S -MP(K#4(O&)?__``!0_U<$N`$```"#Q`PBPZ(`````B\8E__\``%#_5QR+QH/$ -M!"7__P``4/]7'(O&@\0$)?__``!0_U<<B\:#Q`0E__\``%#_5QR+QH/$!"7_ -M_P``4/]7'#/2)?X```"*%0`````+PH/(`HK8,\"*PU"+QB7__P``4/]7!+@! -M````@\0,(L.B`````(O&)?__``!0_U<<B\:#Q`0E__\``%#_5QR+QH/$!"7_ -M_P``4/]7'(O&@\0$)?__``!0_U<<B\:#Q`0E__\``('E__\``%#_5QP#[8/@ -M`3/;@\0$BMB%VW0$9H/-`8M,)!A!B4PD&(/Y$`^,V_[__XM$)#AFB2B-2`*+ -M1"0TB4PD.(7`C5#_B50D-`^%M/[__XO&)?__``!0_U<<,](E_@```(H5```` -M``O")>\```"*V#/`BL-0B\8E__\``%#_5P2X`0```(/$#"+#H@````"+QB7_ -M_P``4/]7'#/2)?X```"*%0`````+PB7[````BM@SP(K#4(O&)?__``!0_U<$ -MN`$```"#Q`PBPX'F__\``*(`````,\"*1"0C4%;_5P2#Q`A=6UY?@\04PX/L -M#%>+?"045HMT)!R+QB7__P``4/]7'(O&@\0$)?__``!0_U<<B\:#Q`0E__\` -M`%#_5QR#Q`2!YO__``!6_U<<@\0$7E^#Q`S#._^-="8`@^P(5U93BUPD&&8S -M_X/#`HO/@\,"@\,"9HMS^HO&@>;__P``P>8()?__``#!^`B!Y@#_```E_P`` -M``O&B_!FBT/Z@>;__P``9@/^9@O(9HMS_(O&@>;__P``P>8()?__``#!^`B! -MY@#_```E_P````O&B_!FBT/\@>;__P``9@/^9@O(9HMS_HO&@>;__P``P>8( -M)?__``#!^`B!Y@#_```E_P````O&B_!FBT/^@>;__P``9@/^9@O(@>?__P`` -M9HLSB\:!YO__``#!Y@@E__\``,'X"('F`/\``"7_````"\:+\('F__\``#O^ -M=`DSP%M>7X/$",,STHO!9HL36R7__P``7@O"7X/$",.#QP"#["17BWPD+%93 -M58ML)$"+1"0\)?__``!0_U<<B$0D-X/$!(M$)#PE__\``(/`#&:)1"0JB]@E -M__\``%#_5QR+\('C__\``$.!X___``!3_U<<P>`(@\0(9@OPBT0D/('F__\` -M`&:)="0P)?__``"#P`IFB40D+(O8)?__``!0_U<<B_"!X___``!#@>/__P`` -M4_]7','@"(/$"&8+\&H`@>;__P``9HET)#)FBW0D+HO&)?__``!0_U<$:@"! -MYO__``!&@>;__P``5O]7!(MT)#R#Q!"+QFH`)?__``!0_U<$:@"!YO__``!& -M@>;__P``5O]7!(M$)$R#Q!`E__\``#/V@\`"C5\<9HO0BT0D/(EL)!`E__\` -M`(E\)!2+^HUH`XO')?__``!0_Q.+Q27__P``4/\3B$0T((/$"$:#_@A\WV:+ -M="0JBWPD%(M$)#"+;"00)?\```!0B\8E__\``%#_5P2+1"0X@>;__P``)?__ -M``!&P?@(@>;__P``)?\```!05O]7!(MT)#R#Q!`SP(I$)"Y0B\8E__\``%#_ -M5P0SP('F__\``&:+1"0V1L'X"('F__\``"7_````4%;_5P0SP(/$$(I$)#-0 -MBT0D0"7__P``4/]7!(U$)"!0Z`W]__^#Q`R%P'0^B\5%BU0D&(@0B\5%BE0D -M&8@0B\5%BE0D&H@0B\6*5"0;18@018M4)!R(5?^*5"0=B%4`75M>7X/$),.# -MQP"X!@```(O]O@4```"%P'3EB\9.Q@<`1X7`=?5=6UY?@\0DPY"-="8`@^P< -M,\E7BWPD+%9358M$)#1FBV@0BT0D-,9'`03&1S`!9L='$B``9HE/%H'E_/\` -M`&:);Q!FB4\4BT`4@^#PB4<8A<!T#F;'1QP`(,9''F#K##O_9L=''```QD<> -M(,9''P"-1"04B]U0:@1J/('C__\``(/#$8M4)#R!X___``"-=R)34NAF^?__ -MC40D*%#H#/S__X/$&(7`=#5&C5PD%$-&0T9#1D-#1HI#^XA&^XI#_(A&_(I# -M_8A&_8I#_HA&_HI#_XA&_XH#B`;K'(/'`+@&````NP4```"%P'0+B\-+Q@8` -M1H7`=?6+Q27__P``@\`0)?__``!0BT0D-/]0'(/$!*F`````=`;&1RP0ZP3& -M1RP$B@^`^0IU)<9'(01=6UXSP%^#Q!S#@\8`QD<?`<9'(00SP%U;7E^#Q!S# -M._^-1"0F@>7__P``4(M$)#1J`6H&@\41@>7__P``55#HC?C__S/`@\049HM$ -M)":I``$``'0<J0`"``!U#HM$)#1FBT`$9JD$`'4'N`$```#K`C/`A<!UEL9' -M'P#&1R'_BD<>#`*(1QZ+1"0T9HM`!&:I!`!U$%U;7K@"````7X/$',.#QP!= -M6UXSP%^#Q!S#._^#[`Q7BWPD((U$)`2+5"044(M$)"!J!"7_````4(M$)"0E -M__\``%!2Z//W__^-1"084.B9^O__@\08A<!T-D>-3"0$04=!1T%'04%'BD'[ -MB$?[BD'\B$?\BD']B$?]BD'^B$?^BD'_B$?_B@&(!U^#Q`S#D+@&````N04` -M``"%P'3LB\%)Q@<`1X7`=?5?@\0,PSO_@?\`````@?\`````@^P(5S/_5HMT -M)!135<9&&P!J"%;HIR0``(/$"*D`"```#X2L````O1````"+QT<]Z`,``'XB -M:@!J`&H`:@%J`6H&5NA(&P``N`$```"#Q!Q=6UY?@\0(PV:%KG(+``!T0S/` -M9HM&%H/`""7__P``4(N&7`L``/]0'(O8,\!FBT86@\`))?__``!0BX9<"P`` -M_U`<P>`(9@O8@>/__P``@\0(ZR,SP&:+1A:#P`@E__\``%"+AEP+``#_4""+ -MV('C__\``(/$!/?#``@```^%6?___UU;7C/`7X/$",.#QP"#[`A7BWPD$%9F -MBX=R"P``9JD0`'1&,\!FBT<6@\`&)?__``!0BX=<"P``_U`<B_`SP&:+1Q:# -MP`<E__\``%"+AUP+``#_4!S!X`AF"_"+_H'G__\``(/$".LDD#/`9HM'%H/` -M!B7__P``4(N'7`L``/]0((OX@>?__P``@\0$]\>`````7K@`````#Y7`7X/$ -M",.0@?\`````@?\`````@^P(5XM\)!!69HN'<@L``&:I$`!T1C/`9HM'%H/` -M""7__P``4(N'7`L``/]0'(OP,\!FBT<6@\`))?__``!0BX=<"P``_U`<P>`( -M9@OP@>;__P``@\0(ZR:#QP`SP&:+1Q:#P`@E__\``%"+AUP+``#_4""+\('F -M__\``(/$!(O&@^#W9HOP9HN'<@L``&:I$`!T4(O&)?\```!0,\!FBT<6@\`( -M)?__``!0BX=<"P``_U`$@>;__P``,\#!_@B!YO\```!69HM'%H/`"27__P`` -M4(N'7`L``/]0!(/$$.LE@\<`@>;__P``,\!69HM'%H/`""7__P``4(N'7`L` -M`/]0"(/$"&:+AW(+``!FJ1``=$4SP&:+1Q:#P`8E__\``%"+AUP+``#_4!R+ -M\#/`9HM'%H/`!R7__P``4(N'7`L``/]0','@"&8+\(O^@>?__P``@\0(ZR,S -MP&:+1Q:#P`8E__\``%"+AUP+``#_4""+^('G__\``(/$!/?'@````%ZX```` -M``^5P%^#Q`C#D(/L"%>+?"005F:+AW(+``!FJ1``=$8SP&:+1Q:#P`@E__\` -M`%"+AUP+``#_4!R+\#/`9HM'%H/`"27__P``4(N'7`L``/]0','@"&8+\('F -M__\``(/$".LF@\<`,\!FBT<6@\`()?__``!0BX=<"P``_U`@B_"!YO__``"# -MQ`2+QH/("&:+\&:+AW(+``!FJ1``=%2+QB7_````4#/`9HM'%H/`""7__P`` -M4(N'7`L``/]0!('F__\``#/`P?X(@>;_````5F:+1Q:#P`DE__\``%"+AUP+ -M``#_4`2#Q!!>7X/$",.#QP"!YO__```SP%9FBT<6@\`()?__``!0BX=<"P`` -M_U`(@\0(7E^#Q`C#@^P,5XM\)!16BD<;A,`/A9@```!FBX=R"P``9JD0`'1' -M,\!FBT<6@\`()?__``!0BX=<"P``_U`<B_`SP&:+1Q:#P`DE__\``%"+AUP+ -M``#_4!S!X`AF"_"!YO__``")="04@\0(ZR0SP&:+1Q:#P`@E__\``%"+AUP+ -M``#_4"`E__\``(E$)!"#Q`2+1"0,)0`+```]``,``'4<N`$```"(1QM>7X/$ -M#,,[_[@!````7E^#Q`S#D&:+AW(+``!FJ1``=$<SP&:+1Q:#P`8E__\``%"+ -MAUP+``#_4!R+\#/`9HM'%H/`!R7__P``4(N'7`L``/]0','@"&8+\(O^@>?_ -M_P``@\0(ZR4[_S/`9HM'%H/`!B7__P``4(N'7`L``/]0((OX@>?__P``@\0$ -M]\>`````#X5Q____7C/`7X/$#,.0@?\`````@?\`````@^P85XM\)"!64U5F -MBX=R"P``9JD0`'1$,\!FBT<6@\`()?__``!0BX=<"P``_U`<B_`SP&:+1Q:# -MP`DE__\``%"+AUP+``#_4!S!X`AF"_"!YO__``"#Q`CK))`SP&:+1Q:#P`@E -M__\``%"+AUP+``#_4""+\('F__\``(/$!+@``P``9B/&/0`#```/A6P#``!F -MBX=R"P``B]Z!X_?_``"!RP`(``!FJ1``=$LSP(K#4#/`9HM'%H/`""7__P`` -M4(N'7`L``/]0!('C__\``#/`P?L(@>/_````4V:+1Q:#P`DE__\``%"+AUP+ -M``#_4`2#Q!#K(Y"!X___```SP%-FBT<6@\`()?__``!0BX=<"P``_U`(@\0( -M9HN'<@L``&:I$`!T13/`9HM'%H/`#B7__P``4(N'7`L``/]0'(OH,\!FBT<6 -M@\`/)?__``!0BX=<"P``_U`<P>`(9@OH@>7__P``@\0(ZR4[_S/`9HM'%H/` -M#B7__P``4(N'7`L``/]0((OH@>7__P``@\0$9HEL)"9FA>T/A$\!``!FBX=R -M"P``9JD0`'1&,\!FBT<6@\`&)?__``!0BX=<"P``_U`<B^@SP&:+1Q:#P`<E -M__\``%"+AUP+``#_4!S!X`AF"^B!Y?__``"#Q`CK)H/'`#/`9HM'%H/`!B7_ -M_P``4(N'7`L``/]0((OH@>7__P``@\0$9HN'<@L``&:I$`!FB6PD)'1#,\!F -MBT<6@\`$)?__``!0BX=<"P``_U`<B^@SP&:+1Q:#P`4E__\``%"+AUP+``#_ -M4!S!X`AF"^B!Y?__``"#Q`CK(S/`9HM'%H/`!"7__P``4(N'7`L``/]0((OH -M@>7__P``@\0$@>7__P``BT0D)"7__P``P>`0"\5F]\8`!(E$)!AT(C/`BU0D -M&&:+1"0F4#/`4F:+1Q90BX=<"P``_U`H@\0,ZR`SP(M,)!AFBT0D)E`SP%%F -MBT<64(N'7`L``/]0$(/$#%?HGO?__X/$!(7`=`LSP%U;7E^#Q!C#D&:+AW(+ -M``!FJ1``=$,SP&:+1Q:#P`@E__\``%"+AUP+``#_4!R+\#/`9HM'%H/`"27_ -M_P``4(N'7`L``/]0','@"&8+\('F__\``(/$".LC,\!FBT<6@\`()?__``!0 -MBX=<"P``_U`@B_"!YO__``"#Q`2+QH/("&:+\&:+AW(+``!FJ1``=%"+QB7_ -M````4#/`9HM'%H/`""7__P``4(N'7`L``/]0!('F__\``#/`P?X(@>;_```` -M5F:+1Q:#P`DE__\``%"+AUP+``#_4`2#Q!#K)8/'`('F__\``#/`5F:+1Q:# -MP`@E__\``%"+AUP+``#_4`B#Q`A7Z#S!__^#Q`2#R`%=6UY?@\08PSO_@?\` -M````@?\`````@^P(5XM\)!!69HN'H`L``&:%P`^$[@(``#/`9HN'/@L``(/` -M!`T```"`4#/`9HN'<`L``(/`%"7__P``4(N'7`L``/]0#&:+AZ`+``"#Q`AF -MJ0(`=!YFQX>B"P```@!7Z<``"^`0```(/$!.DJ`@``._]FBX>@"P``9JD$ -M`'039L>'H@L```0`O@(```#I"`(``&:+AZ`+``!FJ0@`=!]FQX>B"P``"`!7 -MZ%`U``"^`P```(/$!.G?`0``@\8`9HN'H`L``&:I(`!T'V;'AZ(+```@`%?H -MU#8``+X%````@\0$Z;,!``"#Q@!FBX>@"P``9JE``'0?9L>'H@L``$``5^CX -M-@``O@8```"#Q`3IAP$``(/&`&:+AZ`+``!FJ8``=$=FQX>B"P``@`!J$C/` -M9HN'<`L``(/`&"7__P``4(N'7`L``/]0#(/$"+X'````9HN'H`L``&8-`0!F -MB8>@"P``Z3(!```[_V:+AZ`+``!FJ0`!=!]FQX>B"P````%7Z'@X``"^"``` -M`(/$!.D'`0``@\8`9HN'H`L``&:I$`!T,V;'AZ(+```0`&H(,\!FBX=P"P`` -M@\`8)?__``!0BX=<"P``_U`,@\0(O@0```#IQ````&:+AZ`+``!FJ0!`=#-F -MQX>B"P```$!J"#/`9HN'<`L``(/`&"7__P``4(N'7`L``/]0#(/$"+X.```` -MZ80```!FBX>@"P``9JD!`'0O9L>'H@L```$`:@@SP&:+AW`+``"#P!@E__\` -M`%"+AUP+``#_4`R#Q`@S]NM*._]J`VH`,\!FBX>@"P``4&H%:@!J!E?HD@\` -M`(/$'#/`9L>'H@L```$`:@AFBX=P"P``@\`8)?__``!0BX=<"P``_U`,@\0( -M,_8SP&:+ASX+``!0,\!FBX=P"P``@\`4)?__``!0BX=<"P``_U`,5C/`9HN' -M<`L``(/`&"7__P``4(N'7`L``/]0##/`,\EFBX>B"P``B(^["P``]]!F(X>@ -M"P``@\009HF'H`L``(B/3`L``%Y?@\0(PX/'`(/L"#/`BTPD#&:+00*#^$%T -M=H/X0G1]@_A##X2`````@_A$#X2#````@_A%#X2&````@_A)````@_A0 -M=`6#^&!U/F;'00(S`&:+D:`+``!F@\H09HN!H@L``&:)D:`+``!FA<!U&F:+ -M00)F/3``<A#&@;L+````4>AP_/__@\0$@\0(PY!FQT$",0"#Q`C#._]FQT$" -M,@"#Q`C#._]FQT$",P"#Q`C#._]FQT$"-`"#Q`C#._]FQT$"-0"#Q`C#._]F -MQT$"-@"#Q`C#._^#[!@SP%>+?"0@4V:+1P*#^$0/A(P````/C]("``"#^#8/ -MA.$!```/CY\"``"#^#1T<@^/6`(``(/X(0^%LP0``&:+1P1F_T<$9CT*``^& -MH00``#/`9HN'<`L``(/`,B7__P``4(N'7`L``/]0((/(#R7__P``4%>+AVP+ -M``#_4#1FQT<"$`!J`&H`:@!H``(``&H`:@%7Z(0-``"#Q"CI4`0``#/`9HN' -M<`L``(/`,B7__P``4(N'7`L``/]0((/$!(O09O?"`@`/A?$```"*A[L+``"* -MR/[!/`.(C[L+```/C@T$``!FQT<"$`!7Z.T-``"+AV`+``!0BX=<"P``_U`\ -M@\0(,\!J!&H`9HM'`E!J!6H`:@97Z`,-```SP&:+ASX+``!0,\!FBX=P"P`` -M@\`4)?__``!0BX=<"P``_U`,,\!FBX=`"P``4#/`9HN'<`L``(/`%"7__P`` -M4(N'7`L``/]0#(/$+&H/5XN';`L``/]0-&H`,\!FBX=P"P``@\`()?__``!0 -MBX=<"P``_U`,@\005^A$#0``BY=@"P``4HN'7`L``/]0/,>'4`L```````"# -MQ`CI-@,``#O_@>+__P``@\H!@>+__P``4E>+AVP+``#_4#1F_T<",\EFB4\$ -MB8]0"P``5XN';`L``/]0+&;'1P0``&;_1P*#Q`SI[@(``#O_9HM'!&;_1P1F -M/0H`#X;:`@``,\!FBX=P"P``@\`R)?__``!0BX=<"P``_U`@@\@!)?__``!0 -M5XN';`L``/]0-,>'4`L```````!FQT<"$`!J`&H`:@!H``(``&H`:@%7Z+,+ -M``"#Q"A7Z&H,``"+CV`+``!1BX=<"P``_U`\@\0(Z68"```[_X/X-0^%6P(` -M`&:+1P1F_T<$9CT!``^&20(``%>+AVP+``#_4"QFQT<"-@!FQT<$``"#Q`3I -M*P(``(/'`(/X0G0/#X\=`@``@_A!#X44`@``9HM'!&;_1P3I!P(``(/'`(/X -M4`^$,P$``'\U@_A%#X7P`0``9HM'!&;_1P1F/04`#X;>`0``5XN';`L``/]0 -M+&;'1P)&`(/$!.G&`0``._^#^&`/A;L!``!FBX=R"P``BI=,"P``_L)FJ8`` -MB)=,"P``#X34````9HN'M`L``&:%P`^$Q````(J'3@L``*@!#X2V````:@$S -MP&:+AW`+``"#P"XE__\``%"+AUP+``#_4`0SP&:+AW`+``"#P!HE__\``%"+ -MAUP+``#_4"!J`"4`#P``B]@SP&:+AW`+``"#P"XE__\``%"+AUP+``#_4`2# -MQ!1F@_L!=E%FQT<"0P#_A]@0``!FBX>@"P``9@T0`&:)AZ`+``!FBX>B"P`` -M9H7`#X7K````9HM'`F8],``/@MT```#&A[L+````5^C\]___@\0$Z<@```!F -MBX>@"P``9H7`=$2*A[L+``"*T/["/!Z(E[L+``!^,&H`,\!FBX>B"P``4#/` -M9HN'H`L``%!J`6H!:@=7Z+()``"XZ`,``(/$'%M?@\08PS/`,]**A\$.``"* -ME\(.```[PG0&_H=-"P``BX=$"P``J0$```"-4`&)ET0+``!T2&@4`P``,\!F -MBX=P"P``@\`4)?__``!0BX=<"P``_U`,BX=$"P``P>@!4#/`9HN'<`L``(/` -M&"7__P``4(N'7`L``/]0#(/$$%NXZ`,``%^#Q!C#D(/L#%>+?"04:@]7BX=L -M"P``_U`TBT0D((/$"(7`=#EJ`#/`9HN'<`L``(/`""7__P``4(N'7`L``/]0 -M#(/$"%?HFPD``(N78`L``%*+AUP+``#_4#R#Q`C'AU`+````````7X/$#,.0 -M._^!_P````"#[#17BWPD/%9356:+1P)F/2$`=7)H``,`@#/`9HN'<`L``(/` -M%"7__P``4(N'7`L``/]0#&H%C40D(%`SP&:+AW`+``"#P!@E__\``%"+AUP+ -M``#_4#"+1"0L9HF'/`L``&:+1"0N9HF'/@L``(M$)#!FB8=`"P``BT0D.&:) -MAT(+``"#Q!0SP&:+AT`+```-````@%`SP&:+AW`+``"#P!0E__\``%"+AUP+ -M``#_4`PSP&:+AW`+``"#P!@E__\``%"+AUP+``#_4"2+\+C_````9B/&@\0, -M2(/X!G=O_R2%Q````#O_,\!FBX=P"P``@\`8)?__``!0BX=<"P``_U`D@\0$ -MB]"#^@@/A)L```!FQT<"$`!J`"7__P``P>H04('B__\``%)H``$``&H`:@%7 -MZ'@'``"#Q!SK$8/'`(/X1G4)5^@E.```@\0$,\!FBX=`"P``4#/`9HN'<`L` -M`(/`%"7__P``4(N'7`L``/]0#('F__\``#/`@<X`@```@>;__P``5F:+AW`+ -M``"#P!@E__\``%"+AUP+``#_4`B#Q!!=6UY?@\0TPS/`9HM'`H/X(70I@_@V -M=81FQT<",`!7Z*@'``"+EV`+``!2BX=<"P``_U`\@\0(Z6[___]FQT<",`!J -M`&H`:@!J`&H`:@%7Z+@&``"#Q!SI3O___S/`9HN'<`L``(/`&"7__P``4(N' -M7`L``/]0),'H$&:)1"1$,\!FBT<"@\0$@_@R=#N#^$(/A((```"#^%!T"8/X -M8`^%,`,``(M$)$!FJ0"`#X0B`P``9JD`"`^$'`(``,:'GPL``&3I+P(``(M$ -M)$!FJ0"`=#AFBX>@"P``9@T0`&:)AZ`+``!FBX>B"P``9H7`=1IFBT<"9CTP -M`'(0QH>["P```%?H!?3__X/$!&;'1P(S`.F5_O__@\<`BT0D0&:I`(`/A"H! -M``!FJ0`(=`S&AY\+``!DZR*#QP"+1"1`9JD``70*N!````#K"(/'`+@$```` -MB(>?"P``BT0D0&:I``)T"\:'G`L```+K"3O_QH><"P```6;'1P)0`,>'1`L` -M``````"+AR@+``"-CR@+``")AS`+```STHF'+`L``(J'M@L``(B'MPL``(N? -M*`L``&:)4P2+`8M;*#O8=?-FBX>T"P``9H7`=$\SV[@?````(H>V"P``B^AF -MBX>T"P``9H7`?C2)="00C8>T"P``B_"-1&T`P>`#C80'O`L``%!7Z#@T``!% -M@\0(@^4?0P^_!CO8?-R+="005^B?)@``:@`SP(J'G`L``%`SP(J'GPL``%`S -MP&:+AXX+``!0:@!J`%?HQP0``(/$(.E=_?__@\8`9L='`D,`N`\```!F(T0D -M0(/X#74SBH>>"P``B(>?"P``BH>>"P``A,!U46H`:@!J`&@`"```:@!J`E?H -M?`0``(/$'.LW@\8`BH>="P``B(>?"P``:@!J`&H`N/\```!F(T0D3`T`!P`` -M)?__``!0:@!J`E?H0P0``(/$'&;'1P0``.G3_/__D(M$)$!FJ0`!=`JX$``` -M`.L(@\<`N`0```"(AY\+``"+1"1`9JD``G0+QH><"P```NL).__&AYP+```! -M:@`SP(J'G`L``%`SP(J'GPL``%`SP&:+AXX+``!0:@!J`%?HT0,``(/$'.EG -M_/__D#/`9HM'`H/X,W0Y@_A#="*#^%!T!8/X8'5V:@!J`&H`:``(``!J`&H# -M5^B9`P``@\0<9L='`D0`5^A*`@``@\0$ZP>09L='`C0`9HN'H`L``&8-`$!F -MB8>@"P``9HN'H@L``&:%P`^%^OO__V:+1P)F/3``#X+L^___QH>["P```%?H -M0?'__X/$!.G7^___D&H`B\8E__\``%`SP&:+1P)0:@5J`&H&5^@;`P``@\0< -MZ;'[__^#QP`SP&:+AW`+``"#P!@E__\``%"+AUP+``#_4"1J`&H`P>@0:@"+ -MV"7__P``4&H`:@-7Z-H"``!FBT<"@\0@9CU0``^"9_O__V;WPPL/=`YFQT<" -M0P#I5?O__X/&`,:'CQ````?I1OO__\:'3`L```#I.OO__X'_`````('_```` -M`(/L##/`5XM\)!164V:+ASX+```-````@%`SP&:+AW`+``"#P!0E__\``%"+ -MAUP+``#_4`PSP&:+AW`+``"#P!@E__\``%"+AUP+``#_4"2+\#/`9HN'<`L` -M`(/`&"7__P``4(N'7`L``/]0)#/2@\009HN7H@L``(O.@^%_N`$```#3X(O8 -M)?__```[PG0?:@$SP&:+PE"+PR7__P``4&H%:@!J!E?HY0$``(/$'&;'AZ(+ -M`````&:+1P)F/3$`=5-FQT<",`!7Z(,"``"+EV`+``!2BX=<"P``_U`\@\0( -M6UY?@\0,PY"+QH/@?X/X!W4)5^CH)P``@\0$@^9_@_X.=`E7Z(?O__^#Q`1; -M7E^#Q`S#D(O&P>@0J0`@``!UR&H"@>/__P``P>X0@>;__P``5E-J!6H`:@97 -MZ%$!``"#Q!Q;7E^#Q`S#@\<`C70F`(/L%#/2,\E7BWPD'%9358J7P0X``(J' -MM@L``(B/N0L``(B'MPL``#/`BH?"#@``B(^Z"P``.\(/A(D```"+[XV%8`L` -M`(VUP@X``(E$)!R-A<(.``"-O<$.``")1"08C9V\#@``BI7"#@``N1\````B -MRFH!C0Q)P>$"C80-Q`X``(E$)!B+"(M$)"!1BP!0BX5<"P``_U!$BT0D)(/$ -M#(J5P@X``/["B!`STHM$)!1F#[9`!&8#`V:)`S/`B@:*%SO"=:&+_6:+E[P. -M``"*A\(.``!F@_H@B(?##@``="0E_P```%`SP(J'P0X``%`SP&:+PE!J`FH! -M:@97Z$````"#Q!QFQX>\#@``(``SR8B/O@X``(B/OPX``(B/P`X``(B/P0X` -M`(B/PPX``(B/P@X``%U;7E^#Q!3#._^-="8`@^P05XM$)!Q6BW0D'&:)1"0( -MBT0D)#/_B$0D"F:+AI@+``!FB40D#(M$)"AFB40D$(M$)"QFB40D$HM$)#!F -MB40D%(M$)#1FB40D%HM$)"2$P'0NQH:<"P```&:+1@)FQT8",`!F/4``N``` -M```/E\!J`(OX5HN&;`L``/]0!(/$"(J&G`L``(A$)`N-1"0(4(N68`L``%*+ -MAEP+``#_4#B#Q`B%_W0)5N@2````@\0$7E^#Q!##D#O_@?\`````@^P4,\`S -MTE>+?"0<5E-5BI>X"P``BH>V"P``.\(/A(@```"+[XV%7`L``(VUM@L``(E$ -M)""-A6`+``")1"0<C86V"P``C;VX"P``B40D&(V=M`L``(J5M@L``+D?```` -M(LIJ`8T,2<'A`XV$#;P+``"+2!2+1"0@46H!:@"+`%"+1"0TBP#_4$B+1"0L -M@\04BI6V"P``_L*($#/29O\+,\"*!HH7.\)UK(O]9HN'M`L``&:%P'0K,\"* -MA[H+``!0,\"*A[<+``!0,\!FBX>T"P``4&H#:@%J!E?H8?[__X/$'#/)9HF/ -MM`L``(B/M@L``(B/MPL``(B/N`L``%?H_?S__X/$!%U;7E^#Q!3#._]75HMT -M)`RX'P```(M,)!`BAL$.``"-!$#!X`*-O`;$#@``BT0D%(D'BD0D&,9'!0"( -M1PB*AL$.``#^P(B&P0X``%%6BX9L"P``_U`@B$<$@\0(7E_#@\<`._^!_P`` -M``#'!?P#``````#_@^P,5[^`````5E/'1"04`````%6+]X'F@("`@#/^B];! -MZ@\#_S/Z]\:`````=`:!]P3!';>+3"08O@$```#3YKL``0``*]Z!^P`!```/ -MC:,```"+PXL,G0`````KQHO7,]%#B12%`````('[_0```'U=B\.+#)T````` -M*\:+US/1B12%`````(O7B\.#PP0KQHTLA0````"+!)WT____,]")E00```"+ -MUS,4G?C___^)E0@```"+UXL,G?S___\ST8'[_0```(F5#````'RC@?L``0`` -M?1^+PXL,G0`````KQHO7,]%#B12%`````('[``$``'SABU0D&$*)5"08@_H( -M#XP,____75M>7X/$#,,[_XUT)@!75E.+1"0858MT)!B+7"04@_X0BS@/C)(` -M``#WPP,```!T)(O',]+!Z`B*$X'G_P```$XSUT,S!)4`````]\,#````B_AU -MW(O&P?@"A<"-:/]T5X/#!#-[_(O'@>?_````P>@(,P2]`````(OXP>@(@>?_ -M````,P2]`````(OXP>@(@>?_````,P2]`````(OXP>@(@>?_````,P2]```` -M`(OXB\5-A<!UJ8/F`XO&3H7`="*+QS/2P>@(BA.!Y_\```!#,]<S!)4````` -MB_B+QDZ%P'7>BT0D'(DX75M>7\.#QP"!_P````"!_P````!0BT0D%,<$)``` -M``!7OP$```!6C7#_4U6+;"0@A<!T4XM4)!R+7"08C40D$(U*`8/B'XE,)!R- -M%%)0P>(#A?:-G!.\"P``=`@SP&:+0PCK`HO%*\=0BPL#^5?HL?[__S/`@\0, -M9HM#"#/_*^B+QDZ%P'6M75M>BT0D!#TX^R*$N``````/E<!?@\0$PXUT)@!7 -M5E.+1"04BTPD$(LXBD`/J`$/A(<```"*1PBH@'0-NQ\```"*5PXBVNL#D#/; -MBT0D%(U3%6:+0`HE__\``#O"=5V^^O___S/`,]**A#&("P``BE0W"#O"=4)& -M?.HSP(U\'PZ^!@```(H')>\````]Y````'4I,\"*1P$E[P```#WD````=1B* -M1P(\`W41BT<#/0`$D`=T$.L%._^#Q@8SP%M>7\.#QP!;7K@!````7\.#QP"! -M_P````"!_P````!7BWPD#%:+="0,9HM'"&8]-0!S,HJ&?0L``"3\B(9]"P`` -M:``!``!6BX9L"P``_U`<:@!J`&H`:@-J`&H%5N@M^O__@\0D,\"+%XI"`27` -M````@_A`=5E75NCB_O__@\0(A<!T,HJ&?0L``"3\B(9]"P``:``!``!6BX9L -M"P``_U`<:@!J`&H`:@%J`&H%5NC<^?__@\0DBH9]"P``J`%U"XI'#Z@#=03& -M1PX!7E_#D(J&?0L``*@"=?+K[(UT)@"#[!@SP#/25XM\)"!64U6*E\,.``"* -MA\(.```[P@^$@@```(E\)""+QP7"#@``B40D)(ML)""-,(UX`8U8^HJ5P@X` -M`+D?````(LJ-#$G!X0*-C`W$#@``9@^V001F`P-FB0.+1"0DBI7"#@``_L*( -M$(I!"(3`=1TSP&:+0090BPE1BX5@"P``4(N%7`L``/]01(/$##/`,]**!HH7 -M.\)UG8M\)"`SP#/2BH>V"P``BI>W"P``.\(/A!H!``")?"00C8=@"P``B40D -M((V'MPL``(E$)!R-AW(+``")1"08B\>-G[8+``"-N'T+``"-L+0+``"+5"00 -MN1\```"*@K8+```BR(M$)!B-#$G!X0-F]P"``(VL"KP+``!T4(I%#H3`=4F+ -M31`SP%%FBT4*4#/`BH*V"P``4%+HL_S__X/$$(7`=!R+1"00_X#($```BA?V -MP@1T!\9%#@+K!9#&10X!9HM5"F:#Z@1FB54*BD40B@L"P8@#9HL&9BM%$&:) -M!HH'J`-T#E6+5"044NBP_?__@\0(,\"*10Y0BTT448M%$%`SP&:+10I0BT0D -M,(L0BT0D(%*+@%P+``#_4$B+5"0P@\04,\"*$HH#@>+_````.\(/A1S___]= -M6UY?@\08PY"+1"0(BU0D!(7`C4C_=`N+P4G&`@!"A<!U]<.0C70F`&:+3"0$ -MB\&!X?__``#!X0@E__\``,'X"('A`/\``"7_````"\$E__\``,.0C70F`%<S -MP&:+1"0,4(M$)`S_4!R+^#/`9HM$)!!`)?__``!0BT0D$/]0','@"&8+^(O' -M)?__``"#Q`A?PX/'`(UT)@`SP(I$)`Q0,\!FBT0D#%"+1"0,_U`$,\!FBT0D -M%,'X""7_````4#/`9HM$)!1`)?__``!0BT0D%/]0!(/$$,.0BTPD!(O1B\'! -MZ@C!Z!B!X@#_```+PHO1P>((P>$8@>(``/\`"\(+P<.#QP"-="8`5XM\)`A6 -M9HN'<@L``&:I$`!T53/`,])FBT<69HM4)!`#PB7__P``4(N'7`L``/]0'(OP -M,\!FBT<6,])FBU0D%(U$$`$E__\``%"+AUP+``#_4!S!X`AF"_"+QB7__P`` -M@\0(7E_#._\SP#/29HM'%F:+5"00`\(E__\``%"+AUP+``#_4"`E__\``(/$ -M!%Y?PX/'`('_`````('_`````%>+?"0(9HN'<@L``&:I$`!T6C/`,])FBU0D -M#(I$)!!0,\!FBT<6`\(E__\``%"+AUP+``#_4`0SP#/29HM$)!C!^`AFBU0D -M%"7_````4#/`9HM'%HU$`@$E__\``%"+AUP+``#_4`2#Q!!?PS/`,])FBT0D -M$%`SP&:+1Q9FBU0D$`/")?__``!0BX=<"P``_U`(@\0(7\.0._^!_P````!7 -MBWPD"&C_````,\!FBT<6@\`')?__``!0BX=<"P``_U`$BT0D%(/$"(7`=%XS -MP&:+1P:#^`)T6(/X`W5.:/X````SP&:+AW`+``"#P!TE__\``%"+AUP+``#_ -M4`1H@````#/`9HN'<`L``(/`'R7__P``4(N'7`L``/]0!&HRBX=<"P``_U`T -M@\047\.#QP!J!S/`9HN'<`L``(/``B7__P``4(N'7`L``/]0!&B`````,\!F -MBX=P"P``@\`#)?__``!0BX=<"P``_U`$:C*+AUP+``#_4#2#Q!1?PX/'`(M4 -M)`0SP&:+0A90BY)<"P``4NCIC?__@\0(PY"-="8`4%>+?"0,5^BTD/__,\"# -MQ`2+EY00``"*1U@#PHN7H!```(F'E!```#/`BX^<$```BD=:`\&+CZP0``") -MAYP0```SP(I'6P/"BY>H$```B8>@$```,\"*1UX#PHN7L!```(F'J!```#/` -MBD=?`\&+C[P0``")AZP0```SP(I'8`/"BY>X$```B8>P$```,\"*1V(#PHN7 -MP!```(F'N!```#/`BD=D`\&)A[P0```SP(I'90/"B8?`$```BH=^"P``A,!T -M(<:'?@L```"-AY00``!0BY=@"P``4HN'7`L``/]00(/$"%^#Q`3#._^-="8` -M9HM,)`B+5"0$B\&!X?__``#!X0@E__\``,'X"('A`/\``"7_````"\%FB4(0 -MBT0D#(E"$HM$)!")0F@SP&B0````9HM"%H/`!R7__P``4(N"7`L``/]0!(/$ -M",.-="8`BU0D!&:+0A!FA<!T*\=";`````!HB````#/`9HM"%H/`!R7__P`` -M4(N"7`L``/]0!(/$",.#QP!2Z-*3__^#Q`3#._^!_P````"!_P````!0BU0D -M"(M";(7`=`W'0FP`````4O_0@\0$@\0$PX/'`(M$)`R+5"0(0%!2_U0D#(/$ -M"(7`=16+3"0,BT0D"%%0_U0D#(/$"(7`=`FX`0```,.#QP`SP,.0._^!_P`` -M``!7BWPD"#/`,\EFBT<6B4]H9HF/H`L``(/`"(E/;"7__P``4(N'7`L``/]0 -M'(/(""7_````4#/`9HM'%H/`""7__P``4(N'7`L``/]0!&:+AW(+``"#Q`QF -MJ0(`=#PSP&:+1Q:#P`DE__\``%"+AUP+``#_4!R#R`$E_P```%`SP&:+1Q:# -MP`DE__\``%"+AUP+``#_4`2#Q`Q7Z,&Q__]FQT<"00!FQT<$``"#Q`1?PXM4 -M)`B+3"0$4E'H0?S__XM$)`QFQT`"(0"#Q`C#@\<`4(M$)`A75E.-6!Q5BVPD -M'&8S_S/VB\4E__\``%#_$\'X!('G__\``,'G!(/$!`OX1H/^!'S?OOS___^+ -M3"0@B\>+T27__P``@>+__P``.\)T+HO'@>?__P``P?\$)?__``#!X`P+QT:+ -M^'S3O@0````SP%U;7E^#Q`3#D.L%._^#Q@1=6UZX`0```%^#Q`3#4S/`9HM$ -M)`Q0BT0D#/]0'#/2)?X```"*%0`````+PC/2BE0D%`O"BM@SP(K#4#/`9HM$ -M)!10BT0D%/]0!+@!````(L.#Q`RB`````%O#._]3,\!FBT0D#%"+1"0,_U`< -M,](E_@```(H5``````O",]**5"04]]*!XO\````CPHK8,\"*PU`SP&:+1"04 -M4(M$)!3_4`2X`0```"+#@\0,H@````!;PSO_._^!_P`````SP&:+1"0(4(M$ -M)`C_4!R#X`&#Q`3#._\[_X'_`````(/L&%=64U5H-I0``(M$)#0E__\``(M4 -M)#"#P!XE__\``%!2Z'C^__^#Q`R%P'0=75M>N`,```!?@\08P[@"````75M> -M7X/$&,.#QP!H1I(``(M$)#0E__\``(M,)#"#P`(E__\``%!1Z#/^__^#Q`R% -MP'7(BT0D,"7__P``@\`#9HE$)"`E__\``%"+1"0P_U`<QD0D*0>*V(A$)"N+ -M1"0PBW0D)(/`!(E$)!R->!@SP(K#@^"_B40D&(/$!#/`,]**5"0EBL,SPB7_ -M````4(O&)?__``!0BT0D(/\0:F'_%XO&)?__``!0_Q<STH/$$(I4)"4SPHM4 -M)!2*V#/`BL.#X+\[T'4Q_DPD)76P,\"*1"0G4(M$)"0E__\``%"+1"0T_U`$ -M@\0(N`$```!=6UY?@\08PX/'`#/`BD0D)U"+1"0D)?__``!0BT0D-/]0!(M$ -M)#@E__\``(/``B7__P``4(M$)#C_4!R*V#/`B%PD,[D_````(MF(3"0QB%PD -M,HK#4(M$)$`E__\``(/``B7__P``4(M$)$#_4`2+?"1$BT0D0('G__\``(/' -M`HUP'(/`!(E$)"R#Q!0SP#/2BE0D)8K#,\(E_P```%"+QR7__P``4(M$)"#_ -M$&IA_Q:+QR7__P``4/\6,]*#Q!"*5"0E,\(STHK8,\"*1"0FBM,[P@^%J0`` -M`/Y,)"5UK3/`BD0D)U"+1"0T)?__``"#P`(E__\``%"+1"0T_U`$BT0D*"7_ -M_P``4(M$)#C_4!R*T(M$)#B_]O___X/$#(UP'(E<)!"+VHML)""+Q27__P`` -M4/\6,]*#Q`2*TSO"=3)'?.B+7"00OPH```#VPP9U#5U;7K@)````7X/$&,/V -MPP1T0EU;7C/`7X/$&,.0ZP4[_X/'"EU;7KAC````7X/$&,,SP(I$)"=0BT0D -M-"7__P``@\`")?__``!0BT0D-/]0!(/$"(M$)#`E__\``$!FB40D(B7__P`` -M4(M$)##_4!S&1"0I!XK8BT0D,&:+;"0FB%PD*XUX'(UP!#/`BL.#X+^)1"0< -M@\0$,\`STHI4)"6*PS/")?\```!0B\4E__\``%#_%FIA_Q>+Q27__P``4/\7 -MBE0D-8/$$(K8B\,RPHM4)!B*V#/`BL.#X+\[T`^%Z0```/Y,)"5UKC/`BD0D -M)U`SP&:+1"0F4(M$)#3_4`2_^/___XM$)#1FBVPD*HI<)"^(7"0NC7`<@\`$ -MB40D((/$"(I$)"8T0(A$)"8SP(K#@_!`)?\```!0B\4E__\``%"+1"0@_Q!J -M8?\6B\4E__\``%#_%HK8@\00,\`STHI$)":*TSO"=31'?+<SP+\(````BD0D -M)U`SP&:+1"0F4(M$)#3_4`2#Q`BX!P```%U;7E^#Q!C#.__K!3O_@\<(,\"* -M1"0G);\```!0,\!FBT0D)E"+1"0T_U`$@\0(N`4```!=6UY?@\08PSO_,\"* -M1"0G4#/`9HM$)"90BT0D-/]0!(/$"+AC````75M>7X/$&,,[_X'_`````('_ -M`````(/L"#/`5U:+="049HM&%H/`""7__P``4(N&7`L``/]0((/$!(OX9O?' -M0`$/A18!``!H@````#/`9HM&%H/`""7__P``4(N&7`L``/]0!&@L`0``BX9< -M"P``_U`T,\!FBT86@\`()?__``!0BX9<"P``_U`<N@,```"#X&1F(]<+T#/` -MBL)0,\!FBT86@\`()?__``!0BX9<"P``_U`$,\!FBT86@\`5)?__``!0BX9< -M"P``_U`<)?\```!0,\!FBT86@\`5)?__``!0BX9<"P``_U`$,\!FBT86@\`0 -M)?__``!0BX9<"P``_U`@@\0H)0@!```]"`$``'5,O^C___\SP&:+1A:#P!PE -M__\``%"+AEP+``#_4"0SP&:+1A:#P!`E__\``%"+AEP+``#_4""#Q`BI``$` -M`'0*1WS#OQ@```#K`X/'&#/`9HN&<`L``(/`$B7__P``4(N&7`L``/]0'(/@ -M/U`SP&:+AG`+``"#P!(E__\``%"+AEP+``#_4`2#Q`Q>7X/$",,[_XUT)@"# -M[!0SP%>+?"0<5E-59HM'%H/`%27__P``4(N'7`L``/]0'(/$!(K8]L-`#X5G -M`0``,\!FBT<6@\`0)?__``!0BX=<"P``_U`@@\0$B_!FJ0`!#X0S`0``,\!F -MBT<6@\`8)?__``!0BX=<"P``_U`D,\!FBT<6@\`8)?__``!0BX=<"P``_U`D -M,\!FBT<6@\`8)?__``!0BX=<"P``_U`D,\!FBT<6@\`8)?__``!0BX=<"P`` -M_U`D,\!FBT<6@\`8)?__``!0BX=<"P``_U`D,\!FBT<6@\`8)?__``!0BX=< -M"P``_U`D@\08B^AF]\8(`'5TON+___\SP&:+1Q:#P!`E__\``%"+AUP+``#_ -M4"2#Q`0E"`$``#T``0``=6@SP&:+1Q:#P!@E__\``%"+AUP+``#_4"2#Q`0[ -MQ75)1GRW,\"^'@```&:+1Q:#P!4E__\``%"+AUP+``#_4!R*V(/$!.LR._]F -MBX=R"P``9JD`"'4C._UW$HV'[!```#O%<Q7K!H/'`(/&'C/`75M>7X/$%,.# -MQP`SP(K#4#/`9HM'%H/`%27__P``4(N'7`L``/]0!(/$"+@!````75M>7X/$ -M%,.#QP`[_X'_`````(/L)#/`5XM\)"Q64U7&1QL`9HM'%H/`$"7__P``4(N' -M7`L``/]0'(A$)#<SP&:+1Q:#P`XE__\``%"+AUP+``#_4""+\#/`9HM'%H/` -M&"7__P``4(N'7`L``/]0)(O8@\0,BD0D,Z@(#X5V`0``,\"*1"0SP?@$@^`# -MB$0D,8J'>`L``(I4)#&$T`^$$`$``(/#!(M#_(E$)"0SP(K"]]B#X`-FB40D -M*B7__P``@_@!=&J#^`(/A)4```"#^`,/A;L````SP#/29HM'%HI4)#&-1!`? -M)?__``!0BX=<"P``_U`<BLB+1"0HP>@(,]**T<'B&`O",])0,\!FBT<6BE0D -M.8U$$!PE__\``%"+AUP+``#_4`R#Q`SK93O_BT0D)#/2P>@8)?\```!0,\!F -MBT<6BE0D-8U$$!PE__\``%"+AUP+``#_4`2#Q`CK,H/'`(M$)"0STL'H$"7_ -M_P``4#/`9HM'%HI4)#6-1!`<)?__``!0BX=<"P``_U`(@\0(,]*+QF:+5"0J -M)?__```[PGP'9BORZP4[_V8S]L9$)#$`,\"*1"0Q@\`#9@/P9O?&_/]T)H'F -M__\``#/`P?X"5E-FBT<6@\`<)?__``!0BX=<"P``_U`8@\0,75M>7X/$),.# -MQP`SP(I$)#/!^`2#X`,+V&:%]G4-9L=$)"@!`.G=````D&;'1"0H``"+TXO& -M@>+__P``)?__``#WVH/B`X/"7#O"#X^V````:F&+AUP+``#_4!QJ88N'7`L` -M`/]0'#/`9HM'%H/`#B7__P``4(N'7`L``/]0((O()?__``"#Q`R+UH'B__\` -M`#O"='*)7"00B]F]^/___V:%VW16:F&+AUP+``#_4!QJ88N'7`L``/]0'&IA -MBX=<"P``_U`<:F&+AUP+``#_4!PSP&:+1Q:#P`XE__\``%"+AUP+``#_4""# -MQ!1%B]A\K[T(````ZP:#QP"#Q0AF_T0D*(M<)!"+1"0H9H7`#X2"````,\!F -MBT<6@\`$)?__``!0BX=<"P``_U`@B^@SP&@0`0``9HM'%H/`!"7__P``4(N' -M7`L``/]0"#/`9HM'%E"+AUP+``#_4""+R(O#]]AF`\@SP('E__\``+K_```` -M58'F`/\``&:+1Q9F(]&#P`0+\B7__P``4(N'7`L``/]0"(/$&/?#`P```'1- -M,\!FBT<6@\`<)?__``!0BX=<"P``_U`DB40D*(/$!(O#N@,```"#X`.-;"0D -M9B/3`^B#^@1T%KD$````14-F3HI%_XA#_W0%0CO1=>]F]\;\_W0GB\8E__\` -M`,'X`E`SP%-FBT<6@\`<)?__``!0BX=<"P``_U`P@\0,B\8E_/\```/89O?& -M`P`/A-/]__\SP&:+1Q:#P!PE__\``%"+AUP+``#_4"2)1"0H@\0$,])F]\8# -M`(U$)"0/CJ/]__^-:`&_`P```&8C_D**`(E4)!R-=_V(`T,[UGTKN00```"* -M10!%B`-#BD4`18@#0XI%`$6(`T.*10`#T46(`T,[UGS>B50D'(M4)!P[UP^- -M4/W__XM,)!R*10!%08@#B4PD'$,[SWSL75M>7X/$),.#QP`[_X'_`````&C` -M````,\"+5"0(9HM"%H/`%"7__P``4(N"7`L``/]0!(/$",.#QP`[_X'_```` -M`%>+?"0(5HJ'?`L``(3`=1UJ`#/`9HM'%H/`%"7__P``4(N'7`L``/]0!(/$ -M"#/`,_9FBT<6@\`&)?__``!0BX=<"P``_U`@@\0$J8````!T$U?H:9+__X/( -M`8/$!(OPZR6#Q@"*1QN$P'4-5^C?^/__@\0$A<!T#E?HHOK__[X!````@\0$ -MBH=\"P``A,!U(&C`````,\!FBT<6@\`4)?__``!0BX=<"P``_U`$@\0(B\9> -M7\.#QP`[_X'_`````&C`````,\"+5"0(9HM"%H/`%"7__P``4(N"7`L``/]0 -M!(/$",.#QP`[_X'_`````%>+?"0(:@`SP&:+AW`+``"#P"XE__\``%"+AUP+ -M``#_4`1H````@#/`9HN'<`L``(/`%"7__P``4(N'7`L``/]0##/`9HN'<`L` -M`(/`&"7__P``4(N'7`L``/]0)#/`9HN'<`L``(/`%"7__P``4(N'7`L``/]0 -M)(/$&#T$``"`N``````/E,!?PSO_C70F`%>+?"005C/V4XM<)!!5BVPD&(O' -M1U!5_].#Q`B%P'0,N`$```!=6UY?PSO_1H/^!'S@75M>,\!?PX/'`(UT)@"# -M["175E-5BT0D.(J03@L``(#BR(B03@L``&:+D'(+``!F]\*``'1`BX`4"P`` -M,]*)1"0P]]B#X`>)1"0DBT0D.(M,)"2+@!`+``")1"0LBT0D.(N`&`L``"O! -MN2P```#W\8E$)"#K+<=$)"`@````BT0D.(N`9`L``(/`"(E$)##WV(/@!XE$ -M)"2+1"0X@\`(B40D+(M4)#`S]HM\)"0#UXE4)#"+5"0@.]8/CN````"+1"0X -MBUPD,(E\)!"->O^)="04C;!R"P``BVPD)(M,)"P#Z3/2C5P3$(M,)!"+1"0L -M`\AF]P:``'099L=!!@``9L=!!`"`9L<!$`")60CK$X/'`#/29HE1!F:)$8E1 -M"&:)402+5"00BT0D%(/"+#O'B50D$'459L=!`@``BU0D,(EI*(/*`XE1#.L] -MBU0D%$*-!%*-%-4``````]#!X@*+1"0P`]")40QF]P:``'4&@\H#B5$,9L=! -M`@``BU0D$(M$)"P#T(E1*(/#+(M,)!1!BT0D((E,)!0[R`^,2?___XM<)"2+ -M1"0XBU0D+#/V`]J+3"0@B9@H"P``.\Z+0RB+0"B+0"B+0"B+>"A^>HE?((M# -M*(MO*$:)6"2->?V+6R@[]WU#B5T@BVTHBT,H@\8$._>)6"2+6RB)72"+;2B+ -M0RB)6"2+6RB)72"+;2B+0RB)6"2+6RB)72"+0RB+;2B)6"2+6RA\O8M$)"`[ -M\'T8B5T@BT,HBVTH1HE8)(M4)""+6R@[\GSHBT0D.(M4)#")D#0+``!FBX!R -M"P``9JF``'0%,__K!I"_@`4``#/VBT0D.(N(9`L``(M$)#B-3#D(`_B+V??9 -M@^$'`]F-?`\(B7PD*#/_B5PD,#/)@\<LBU0D*(/^'XUL.M1FB4T"B4T(9HE- -M`(E='&:)301U%F:)30:+5"0P@\H#B54,BU0D*.L:._]FB4T&BT0D,(T4.(M$ -M)"B#R@.)50R-%#B#PRQ&B54H@_X@?*2+7"0HBT0D.+[@____B9@<"P``BT,H -MBT`HBT`HBT`HBW@HB5\@BW\HBT,H@\8$B5@DBULHB5\@BW\HBT,HB5@DBULH -MB5\@BW\HBT,HB5@DBULHB5\@BT,HBW\HB5@DBULH?+^+1"0XOB````"+5"0P -MB9`X"P``BI!."P``@,H(BX@<"P``B8@D"P``B8@@"P``B)!."P``75M>7X/$ -M),.0._^!_P````"#[$@SP%>+?"109HN'/`L```T```"`4#/`9HN'<`L``(/` -M%"7__P``4(N'7`L``/]0#&H1C40D$%`SP&:+AW`+``"#P!@E__\``%"+AUP+ -M``#_4#"+1"0<@\04B(?<$```BD0D"8B'W1```(I$)`J(A]X0``"*1"0+B(?? -M$```BT0D#(B'X!```(I$)`V(A^$0``"+1"0P9HF'XA```&:+1"0J9JD`0'1/ -MBD0D.HB'Y!```(I$)#N(A^40``"+1"0\B(?F$```BD0D/8B'YQ```(I$)#Z( -MA^@0``"*1"0_B(?I$```9HM$)"IFB8>."P``7X/$2,,[_S/)B(_D$```B(_E -M$```B(_F$```B(_G$```B(_H$```B(_I$```Z\57BWPD"&H<,\!FBX=P"P`` -M@\`8)?__``!0BX=<"P``_U`,BI=X"P``N`$````BPB7_````4#/`9HN'F@L` -M`%`SP(J'GPL``%"+AVP+``#_4#!0,\!FBX=P"P``@\`8)?__``!0BX=<"P`` -M_U`,BX^""P``,\!19HN'<`L``(/`&"7__P``4(N'7`L``/]0##/2,\!FBY>8 -M"P``9HN'A@L``(/"!,'B$`O"4#/`9HN'<`L``(/`&"7__P``4(N'7`L``/]0 -M#&@```\`,\!FBX=P"P``@\`8)?__``!0BX=<"P``_U`,,\!FBX=P"P``@\`H -M)?__``!0BX=<"P``_U`@)?#P``!0,\!FBX=P"P``@\`8)?__``!0BX=<"P`` -M_U`,@\1`7\,[_SO_@?\`````@^P(,\!7BWPD$%93:BIFBX=P"P``@\`8)?__ -M``!0BX=<"P``_U`,,_:#Q`AFB[>("P``BH>?"P``P>80@<X``0``/`1T`X/. -M$#/;BI]]"P``]\,"````=`.#S@3WPP$```!T`X/.`C/;9HN?F@L``/?#0``` -M`'0&@<X`!```]\,@````=`:!S@"```!6,\!FBX=P"P``@\`8)?__``!0BX=< -M"P``_U`,BY>*"P``,\!29HN'<`L``(/`&"7__P``4(N'7`L``/]0#(N/D`L` -M`#/`46:+AW`+``"#P!@E__\``%"+AUP+``#_4`R+AY0+``!0,\!FBX=P"P`` -M@\`8)?__``!0BX=<"P``_U`,,_:#Q""+E@`````SP%)FBX=P"P``@\`8)?__ -M``!0BX=<"P``_U`,@\0(@\8$@_X2?--FQT<"0@!;7E^#Q`C#@\<`:@@SP(M4 -M)`AFBX)P"P``@\`8)?__``!0BX)<"P``_U`,@\0(PX/'`#O_@?\`````:@@S -MP(M4)`AFBX)P"P``@\`8)?__``!0BX)<"P``_U`,@\0(PX/'`#O_@?\````` -M5XM\)`AJ"C/`9HN'<`L``(/`&"7__P``4(N'7`L``/]0#(N7E`L``#/`4F:+ -MAW`+``"#P!@E__\``%"+AUP+``#_4`R#Q!!?PX/'`(UT)@!7BWPD"&H*,\!F -MBX=P"P``@\`8)?__``!0BX=<"P``_U`,BY>0"P``,\!29HN'<`L``(/`&"7_ -M_P``4(N'7`L``/]0#(/$$%_#@\<`C70F`%`SP%=6BW0D$&:+AG`+``"#P!@E -M__\``%"+AEP+``#_4"2+^"7_````BY:4$```BXZ8$````\*+EIP0``")AI00 -M``"+Q\'H""7_`````\&)AI@0``"+Q\'H$,'O&"7_`````\*+EJ`0``")AIP0 -M```SP&:+AG`+``"!Y_\````#^H/`&(F^H!```"7__P``4(N&7`L``/]0)(OX -M)?\```"+CJ00``"+EJ@0```#P8N.L!```(F&I!```(O'P>@()?\````#PHN6 -MK!```(F&J!```(O'P>@0P>\8)?\````#PH'G_P```(F&K!```#/`9HN&<`L` -M``/Y@\`8B;ZP$```)?__``!0BX9<"P``_U`DB_@E_P```,'O"(N6M!````/" -MBY:X$```@>?_````B8:T$````_J)OK@0``!6Z![Z__^#Q!"*AGX+``"$P'0A -MQH9^"P```(V&E!```%"+CF`+``!1BX9<"P``_U!`@\0(7E^#Q`3#._\[_X'_ -M`````&H2,\"+5"0(9HN"<`L``(/`&"7__P``4(N"7`L``/]0#(/$",.#QP`[ -M_X'_`````%>+?"0(:@HSP&:+AW`+``"#P!@E__\``%"+AUP+``#_4`R#Q`B* -MAY\+``"Z``$``#P$=`1F@\H0,\F*CWT+``#WP0(```!T!&:#R@3WP0$```!T -M!&:#R@*!XO__```SP%)FBX=P"P``@\`8)?__``!0BX=<"P``_U`(@\0(7\.0 -M:@@SP(M4)`AFBX)P"P``@\`8)?__``!0BX)<"P``_U`,@\0(PX/'`#O_@?\` -M````9HM$)`B+5"0$9@N"H`L``&:)@J`+``!FBX*B"P``9H7`=1IFBT("9CTP -M`'(0QH*["P```%+H%L7__X/$!,,[_U>+?"0(5^C%U___BY=@"P``4HN'7`L` -M`/]0/(/$"%_#@^P(5XM\)!!3,ML/OH=."P``J8````!T**D$````=!"*ATX+ -M```,((B'3@L``.L1BH=."P``)%^`RP2(ATX+``"*ATX+``"H0'0TJ`)T#0P0 -MB(=."P``ZR:#Q@"*ATX+```DKXB'3@L``(J'>`L``*@"=`B`RP'K!H/'`(#+ -M`H3;=",SP(K#4#/`9HN'<`L``(/`*"7__P``4(N'7`L``/]0!(/$"#/`BI=/ -M"P``BL/WT"+"B(=/"P``6U^#Q`C#@^P@5U935<=$)"P`````QT0D'`@````S -M]HM$)#2+N"0+``"+1"0XB7PD*&:+`&:%P`^$T0```(M$)#@SR8U8!&:+0PB) -M7"0@9H7`#X2;````,\!!9HM#"(M4)!R#P`8#T(M$)!2)1"00BT0D&(E$)!2) -M5"0<9HM#"(E<)!AFB0>+`XE'"&:+1P9F)0`!9HE'!HM$)"B)1Q@[^'4X9HM' -M!F8-``1FB4<&BT0D-&:+@)H+``!FJ1``=`QFBT<&9@T`0&:)1P9FBT<&9@T` -M.&:)1P;K%)!FQT<$`("+1R2#P`R+$(/B_(D0B^^+?RB#PPR+1"0X1F:+`"7_ -M_P``._`/C#S___^)3"0L,_8SP&:+=0"+30AFBT4``_&#Y@,[\'X%,_9FB_"+ -M1"0TBU0D'(N`5`L``,'@`CO0#X;"`@``@_X##XVY`@``A?8/CK$"``!F@WT` -M!'9B9HM5`(M$)!AF@^H$9HE5`(M5#(/B_(E5#(M4)!B+[V;'!P0`BT`$9HM2 -M"('B__\``(M$$/QFQT<$`(")1Q2+1"0HB4<8BU0D+&:+1P9F)0`!0F:)1P:) -M5"0LZ4("``"#QP!F@WT``G91BT0D&&:+0`AF/0,`=2^+3"08BU0D&(M)!(M2 -M!&:+$HI)`H'A_P```('B__\``,'A$`O1B544Z?T!```[_XM4)!B+4@2+$HE5 -M%.GJ`0``@\<`,_^+121FBWT`9HLPB]:!XO__```#^H/_!'YMC5;^9HD0BT0D -M&&:+50"#P@)FB54`9HM`"&8]`0!U$HM$)!B+0`2*`"7_````ZQ$[_XM$)!B+ -M0`1FBP`E__\``(M,)!2+5"04P>`09HM)"(M2!('A__\``&:+5`K^@>+__P`` -M"]")513I7P$``(/_`@^.@P```(O]BVTDBTPD+(M$)!1)BU4,@\H#B4PD+(E5 -M#&:+0`AF/0$`=2:+5"04BTPD&(M2!(M)!&:+"8H2@>+_````@>'__P``P>$( -MZR0[_XM4)!2+3"08BU($BTD$9HL2B@F!XO__``"!X?\```#!X1`+T8E5%&:+ -M#V8#30!FB4T`Z=0```"0BT0D%(M4)!B+;22+0`2+4@2*"(H2@>'_````BT0D -M+('B_P```$B)1"0LBT4DP>((B_D+^HM5#(/*`XE5#&:#.`)V/8M,)!"+5"00 -MP><0BT4D9HM)"(M2!('A__\``&:+5`K^@>+__P``"_J)?11FBQ!F@^H"9HD0 -M9L=%``0`ZU.+5"0LBVTD2HE4)"R+50R#R@-F@WT``8E5#'44P><(BTPD$(M) -M!(H)@>'_````ZQ/!YQ"+3"00BTD$9HL)@>'__P``9HM5``OY@\("B7T49HE5 -M`(M5'(/"%(E5",9%$`"+1"0T9HN`<@L``&:I@`!T5XM5#(M,)"R#XOR)50QF -MBU4&9H'*``)FB54&BVTHBU0D(&;'10`!`(L29L=%!`"`B54(9HM5!F:!X@`! -M9HE5!F:!RH!&06:)50:+5"0HB548B4PD+.L.D&:+509F@<J``F:)50:+52B+ -M1"0TB9`D"P``BT0D*&;'0`0`@(M5#(/*`XE5#(M`)(/`#(L0@^+\B1"+1"0T -MBI!."P``]L((='>`XO>(D$X+``"+D#@+``!2BH!X"P``J`)T";@X````ZP<[ -M_[@T````BU0D.&:+DG`+``"!XO__```#T(M$)#B!XO__``!2BX!<"P``_U`, -M@\0(BT0D-&:+D+P.``!F*U0D+&:)D+P.``!=6UZ+1"0@7X/$(,,[_XM$)#2* -MD$X+``"`RD"(D$X+``"+1"0HBT`@9HM`!&:I`(!UMXM,)#11Z.;Y__^#Q`3K -MJ)!7BWPD#%:+="0,,\E39HE/"HE/$(A/#F:+AG(+``!FJ8``="AFQT<,``!F -MBT8"9CU0``^%A````(N>*`L``(V^*`L``.F)````@\8`9HM'"(N>,`L``&:) -M`XM'!&;'0P0`@(E#"(M##(/(`XE##(M#)(/`#(L0@^+\B1"+0RB)AC`+``!F -MBT8"9CU0`'1M9HM&`F8]8`!U)(J&3@L```R`B(9."P``BT,@9HM`!&:I`(!U -M"5;H)_G__X/$!%M>7\-FQT,"``"+0PR#X/R)0PR+6RAFQT,&``!FQT,$`(!F -MQP,0`(M3*(L'.]!UU&;'0P(``(M##(/(`XE##(N.-`L``#/`46:+AG`+``"# -MP#PE__\``%"+AEP+``#_4`QFQT8"8`"*ADX+```,!(/$"(B&3@L``%M>7\,[ -M_X'_`````%>+?"0(,\!FBX=""P``4#/`9HN'<`L``(/`%"7__P``4(N'7`L` -M`/]0##/`9HN'<`L``(/`&"7__P``4(N'7`L``/]0)"7__P``@\0,7\.05XM\ -M)`@SR6;'1P)!`&:)CZ(+``"*AYT+``"(AY\+```SP&;'AZ`+```.`&:)3P11 -M9HN'<`L``(/`+B7__P``4(N'7`L``/]0!%?H\;S__X/$#%_#@?\`````@?\` -M````@^P@,])7BWPD*%9358E4)!@/OX>T"P``B50D$(E$)!R%P'0YBH^W"P`` -M@>'_````B\&#X!^-!$#!X`.-K`>\"P```TT0B4PD((/A'XT$2<'@`XV$![P+ -M``")1"0HB[<L"P``9HM&!&:I`$`/A.0"``"-GTX+``"+1"0<A<`/A%P!``"+ -M5"0HBT0D*#/)9HM2#&:+0`B!XO__``!FBPXE__\```/1.\(/C?<```!FBX>: -M"P``9JD"`'1*BT0D*(M4)"C&10X#9HM`"&:+4@PE__\``('B__\``"O"#X3S -M````4(M$)"PSTF:+4`R+"`/1C4804E#H_/___X/$#.G2````._^+1"0<BU40 -M0DB)1"0<A<")51!_#,9%#@'ILP```(/'`(M$)"B+5"0H9HM`"&:+4@PE__\` -M`('B__\``"O"4(E$)"B+1"0LBP@#T8U&$%)0Z/S___^+1"0LBTPD,$`STHE$ -M)"R#X!]FBQ8KT8T$0,'@`XU,#A"-A`>\"P``B40D-&:)4`R!XO__``!2BT0D -M.(L`4%'H_/___X/$&.LS@\<`,\`STF:+!E"+1"0L9HM0#(L(`]&-1A!24.C\ -M____9HL.BT0D-&8#2`R#Q`QFB4@,9HL.9@--"F:)30J*`R3^B`-FBT8$9JF` -M&71-BT0D'(7`=!6*AWT+``"H!'0'QD4.`NL%D,9%#@%FBT8$9JF``'0&_X?, -M$```9HM&!&:I``%T!O^'R!```&:+1@1FJ0`0=`;_A\00``!FBT8$9JD``@^$ -MLP```(M,)!"+1"0<087`B4PD$`^$G@```#/29HM6!H'B`/```,'Z"(A5#V:+ -M1@9FJ0`"=`:`R@*(50]FBT8&9JD`\'0)BE4/@,H!B%4/9HM&!F:I$`!T"8I5 -M#X#*!(A5#XM5$(M$)!Q"2(E5$(E$)!R*11"*E[<+```"PHB'MPL``+@?```` -M(H>W"P``C01`P>`#C:P'O`L``(M$)"!`B40D((/@'XT$0,'@`XV$![P+``") -M1"0H9L=&!`"`9L<&$`"+1@R#R`.)1@R+1B2#P`R+$(/B_(D0BT8@9HM`!&:I -M`(!T!/]$)!B*$XMV*/;"!'0.@.+[]L(@B!-T!/]$)!AFBT8$9JD`0`^%(OW_ -M_XM$)!B)MRP+``"%P'0)5^B']/__@\0$75M>BT0D!%^#Q"##._^!_P````"# -M[`RX'P```%=64XM<)!S'1"04`````%6+LRP+```B@[<+``"-!$#!X`.-O`.\ -M"P``9HM&!&:I`$`/A$$!``"+[HVSMPL``(E<)!2!PTX+``#_1Q"*`R3^B`-F -MBT4$9JF`&714BT0D%(J`?0L``*@$=`;&1PX"ZP3&1PX!9HM%!&:I@`!T"HM$ -M)!3_@,P0``!FBT4$9JD``70*BT0D%/^`R!```&:+101FJ0`0=`J+1"04_X#$ -M$```9HM%`&8#1PIFB4<*9HM%!&:I``)T<XH6BD<0`L*+3"08B`8SP&:+109! -M)0#P``")3"08P?@(B$</9HM5!F;WP@`"=`4,`HA'#V:+109FJ0#P=`B*1P\, -M`8A'#V:+109FJ1``=`B*1P\,!(A'#XM\)!2Y'P```"*/MPL``(T,2<'A`XV\ -M#[P+``!FBU4$9H'B_[]FB54$B@.H!(MM*'05)/NH((@#=`V+5"044N@'\___ -M@\0$9HM%!&:I`$`/A=?^__^+]8M<)!2)LRP+``!=6UZ+1"0,7X/$#,,[_X'_ -M`````('_`````(/L++@?````5XM\)#164U6+KR`+``#'1"0X`````"*'PPX` -M`(T$0,'@`HV$!\0.``")1"0T9HM%!&:I`$!U#8M%*&:+0`1FJ0!`=`BX`0`` -M`.L#D#/`A<`/A%0!``"-ATX+``"-GR`+``"-MTT+``")1"08BX<@"P``9HM` -M!&:I`$!U!O^'U!```,8&`(N'(`L``&:+0`1FJ0`@#X0?`0``_X?0$```BT0D -M-,9`!0"+AR`+``"+<!B),XM&'#/;B40D,#/`9HN'<`L``(/`*27__P``4(N' -M7`L``/]0'(OHBH=X"P``@\0$J`)T![@!````ZP6X`@```(7H=4B)="00C8=X -M"P``B_`SP$-FBX=P"P``@\`I)?__``!0BX=<"P``_U`<@\0$B@[VP0*+Z'0' -MN`$```#K!;@"````A>ATR(MT)!`SVXM$)#2*0`2$P'0<BTPD-+H`@```@\$$ -M9HE6!#/`0XH!BW8H.]A\\(M$)#!0BH=X"P``J`)T![@X````ZP6X-````#/2 -M9HN7<`L```/0@>+__P``4HN'7`L``/]0#(M$)""*$(#*`H/$"(@075M>BT0D -M+%^#Q"S#._^+1"08BA#VP@)T$X#B_?;"$(@0=`E7Z/7P__^#Q`2+1"0TBE`% -M_L*(4`4SP(K"BU0D-(I2!('B_P```#O"=2O^A\,.``"X'P```"*'PPX``(T$ -M0,'@`HV$!\0.``")1"0TBT0D.$")1"0XBX<@"P``9L=`!```BX<@"P``BT`H -MB0.+KR`+``!FBT4$9JD`0'47BT4H9HM`!&:I`$"X``````^4P.L$._\SP(7` -M#X0"_O__Z3O___^0._^!_P````"#[`A7BWPD$%93QT0D$``````SVV8YGT@+ -M``!T$V:+MT@+``!FB9]("P``ZR.#QP`SP&:+AW`+``"#P!`E__\``%"+AUP+ -M``#_4""+\(/$!&;WQO]N=15;7C/`7X/$",.X`@```%M>7X/$",-FBT<"9CU@ -M`'4E9HN'<@L``&:I@`!T#5?HU_?__XO8@\0$ZPM7Z$K[__^+V(/$!&;WQ@@` -M=`E7Z`C$__^#Q`1F]\8@`'0SBH=X"P``J`)T"+@!````ZP:0N`(```"#R`2( -MAT\+``"*ATX+``"HP'0)5^AN[___@\0$9HM'`F8]4`!R#5?HB_S__XE$)!2# -MQ`1F]\8`('0)5^B'O?__@\0$9O?&`0!T?0^_A[0+```[PW889HM'`F8]8`!U -M#HJ'3@L```P!B(=."P``:@$SP&:+AW`+``"#P"XE__\``%"+AUP+``#_4`1J -M`#/`9HN'<`L``(/`&B7__P``4(N'7`L``/]0"&H`,\!FBX=P"P``@\`N)?__ -M``!0BX=<"P``_U`$@\08A=L/A<C^__^+1"00A<`/A;S^__];7E^X`0```(/$ -M",-7BWPD"&:+AT@+``!FA<!U*C/`9HN'<`L``(/`$"7__P``4(N'7`L``/]0 -M((/$!&:%P&:)AT@+``!T";@!````7\,[_S/`7\,[_X'_`````&H`,\"+5"0( -M9HN"<`L``(/`""7__P``4(N"7`L``/]0##/`@\0(PY`[_X'_`````(/L#%>+ -M?"045E.*1P2H"'0C,\"+-XI'!(/@]XA'!(K8,\"*PU`SP&:+1@10BP;_4`2# -MQ`B+%U+H%!@``(L/4>@,&```BS<SP(/$"&:+1@10BP;_4!PE_P```(/$!(I? -M!(A$)!<SP(#+`8LWB%\$BL-0,\!FBT8$4(L&_U`$BP>#Q`A0Z,@7``"+%U+H -MP!<``(L/@\0(4>BU%P``,\"+-XI?!(/$!(#C_HA?!(K#4#/`9HM&!%"+!O]0 -M!(L'@\0(4.B+%P``BQ=2Z(,7``"*1"0?@\0(J(!T"+@!````ZP.0,\!;7B7_ -M````7X/$#,,[_X/L&%>+?"0@5E/&1"0C`(M$)"R+-R7_````P?@(BM@SP(I' -M!(/@]XA'!(K0,\"*PE`SP&:+1@10BP;_4`0SP(LWBE<$@\0(@,H!B%<$BL)0 -M,\!FBT8$4(L&_U`$BQ>#Q`A2Z/D6``"+#U'H\18``(L'@\0(4.CF%@``,\"+ -M-XI'!(/$!(/("(A'!(K0,\"*PE`SP&:+1@10BP;_4`2+%X/$"%+HN!8``#/` -MBS>*5P2#Q`2`XOZ(5P2*PE`SP&:+1@10BP;_4`2+#X/$"%'HCA8``(L'4.B& -M%@``N`<```"#Q`@BPP/`B$0D(HK0,\"*P@V@````)?\```!05^@O"@``5^@) -M_O__@\0,A<!T"KX"````Z>D```#&1"0?`(M<)"PSP(K#)8````"$P'0*,\"* -M1P2#X/?K"#/`BD<$@\@(BM"+-XA'!#/`BL)0,\!FBT8$4(L&_U`$BQ>#Q`A2 -MZ/T5```SP(LWBE<$@\0$@,H!B%<$BL)0,\!FBT8$4(L&_U`$BP^#Q`A1Z-,5 -M``"+!U#HRQ4``(L7@\0(4NC`%0``,\"+-XI7!(/$!(#B_HA7!(K"4#/`9HM& -M!%"+!O]0!(L/@\0(4>B6%0``BP=0Z(X5``"*5"0G@\0(,\#^PHK#B%0D'P/` -M@/H(BM@/@C'___]7Z!K]__^+\('F_P```(/$!(7V#X7F````,\"+-XI'!(/@ -M]XA'!(K8,\"*PU`SP&:+1@10BP;_4`0SP(LWBE\$@\0(@,L!B%\$BL-0,\!F -MBT8$4(L&_U`$BP^#Q`A1Z`T5``"+!U#H!14``(L7@\0(4NCZ%```,\"+-XI' -M!(/$!(/("(A'!(K8,\"*PU`SP&:+1@10BP;_4`2+#X/$"%'HS!0``#/`BS>* -M7P2#Q`2`X_Z(7P2*PU`SP&:+1@10BP;_4`2+!X/$"%#HHA0``(L74NB:%``` -MBEPD*H/$"#/`BL,-H0```"7_````4%?H3@@``%?H*/S__X/$#(7`=`VX_P`` -M`%M>7X/$&,.0,MLSP(I$)",#P(A$)"-7Z`#\__^*3"0G@\0$"LC^PXA,)".` -M^PARVC/`BS>*1P2#X/>(1P2*V#/`BL-0,\!FBT8$4(L&_U`$,\"+-XI?!(/$ -M"(#+`8A?!(K#4#/`9HM&!%"+!O]0!(L'@\0(4.CR$P``BQ=2Z.H3``"+#X/$ -M"%'HWQ,``#/`BS>*7P2#Q`2`X_Z(7P2*PU`SP&:+1@10BP;_4`2+!X/$"%#H -MM1,``(L74NBM$P``,\"+-XI'!(/$"(/("(A'!(K8,\"*PU`SP&:+1@10BP;_ -M4`0SP(LWBE\$@\0(@,L!B%\$BL-0,\!FBT8$4(L&_U`$BP^#Q`A1Z&`3``"+ -M!U#H6!,``(L7@\0(4NA-$P``,\"+-XI'!(/$!(/@]XA'!(K8,\"*PU`SP&:+ -M1@10BP;_4`2+#X/$"%'H'Q,``#/`BS>*7P2#Q`2`X_Z(7P2*PU`SP&:+1@10 -MBP;_4`2+!X/$"%#H]1(``(L74NCM$@``@\0(,\!;7HI$)!M?@\08PY"!_P`` -M``"!_P````"#[!`SP%>+?"085E.*1P2+-X/@]XA'!(K8,\"*PU`SP&:+1@10 -MBP;_4`0SP(LWBE\$@\0(@,L!B%\$BL-0,\!FBT8$4(L&_U`$BQ>#Q`A2Z'P2 -M``"+#U'H=!(``(L'@\0(4.AI$@``,\"+-XI'!(/$!(/("(A'!(K8,\"*PU`S -MP&:+1@10BP;_4`2+%X/$"%+H.Q(``#/`BS>*7P2#Q`2`X_Z(7P2*PU`SP&:+ -M1@10BP;_4`2+#X/$"%'H$1(``(L'4.@)$@``BU0D,(/$"+@'````(L(#P(K0 -M,\"*P@V@````)?\```!05^BR!0``5^B,^?__@\0,A<!T#;@"````6UY?@\00 -MPY"+7"0DB%PD&S+;,\"*1"0;)8````"$P'0+,\"*1P2#X/?K"9`SP(I'!(/( -M"(K0BS>(1P0SP(K"4#/`9HM&!%"+!O]0!(L/@\0(4>AY$0``,\"+-XI7!(/$ -M!(#*`8A7!(K"4#/`9HM&!%"+!O]0!(L'@\0(4.A/$0``BQ=2Z$<1``"+#X/$ -M"%'H/!$``#/`BS>*5P2#Q`2`XOZ(5P2*PE`SP&:+1@10BP;_4`2+!X/$"%#H -M$A$``(L74N@*$0``,\"#Q`C^PXI$)!L#P(#["(A$)!L/@C+___]7Z)KX__^# -MQ`0E_P```%M>7X/$$,.#QP`[_X'_`````(/L"#/`5XM\)!!64XI'!(LW@^#W -MB$<$BM@SP(K#4#/`9HM&!%"+!O]0!#/`BS>*7P2#Q`B`RP&(7P2*PU`SP&:+ -M1@10BP;_4`2+%X/$"%+H?!```(L/4>AT$```BP>#Q`A0Z&D0```SP(LWBD<$ -M@\0$@\@(B$<$BM@SP(K#4#/`9HM&!%"+!O]0!(L7@\0(4N@[$```,\"+-XI? -M!(/$!(#C_HA?!(K#4#/`9HM&!%"+!O]0!(L/@\0(4>@1$```BP=0Z`D0``"# -MQ`A;7E^#Q`C#@\<`@?\`````@?\`````@^P0,\!75E.+7"0D58ML)"2+="0P -M9HM%!%"+10#_4!R);"04@\0$)?\```#&1"04!(A$)!\SP&H$9HM%!%"+10#_ -M4`0SP(/$"(K#`\"*V(M$)"R+T/[*A,"(5"0L=$F*P_[#)?\```!0C40D%%#H -M'?C__XOXBL,E_P```/[#4(U$)!Q0Z`?X___!X`B#Q!!F"_AFB3Z+1"0L@\8" -MB\C^R83`B$PD+'6W,\"*1"0?4#/`9HM%!%"+10#_4`2#Q`A=6UY?@\00PY`[ -M_X'_`````(/L$%>+?"085E-FBW0D)(O&@>;_````)?__``#!^`@E_P```%!6 -M5^@D_/__@\0,A<!T%5M>0%^#Q!##D+@!````6UY?@\00PXM<)"B(7"0;,MLS -MP(I$)!LE@````(3`=`LSP(I'!(/@]^L)D#/`BD<$@\@(BM"+-XA'!#/`BL)0 -M,\!FBT8$4(L&_U`$BQ>#Q`A2Z(D.```SP(LWBE<$@\0$@,H!B%<$BL)0,\!F -MBT8$4(L&_U`$BP^#Q`A1Z%\.``"+!U#H5PX``(L7@\0(4NA,#@``,\"+-XI7 -M!(/$!(#B_HA7!(K"4#/`9HM&!%"+!O]0!(L/@\0(4>@B#@``BP=0Z!H.```S -MP(/$"/[#BD0D&P/`@/L(B$0D&P^",O___U?HJO7__X/$!(7`#X4+____,\"+ -M-XI'!(/("(A'!(K8,\"*PU`SP&:+1@10BP;_4`0SP(LWBE\$@\0(@,L!B%\$ -MBL-0,\!FBT8$4(L&_U`$BQ>#Q`A2Z*4-``"+#U'HG0T``(L'@\0(4.B2#0`` -M,\"+-XI'!(/$!(/@]XA'!(K8,\"*PU`SP&:+1@10BP;_4`2+%X/$"%+H9`T` -M`#/`BS>*7P2#Q`2`X_Z(7P2*PU`SP&:+1@10BP;_4`2+#X/$"%'H.@T``(L' -M4.@R#0``BS^#Q`AJ"HL'_U`T@\0$,\!;7E^#Q!##._\[_X'_`````(/L"#/` -M5XM\)!!64XI'!(LW@\@(B$<$BM@SP(K#4#/`9HM&!%"+!O]0!#/`BS>*7P2# -MQ`B`RP&(7P2*PU`SP&:+1@10BP;_4`2+%X/$"%+HO`P``(L/4>BT#```BP># -MQ`A0Z*D,```SP(LWBD<$@\0$@^#WB$<$BM@SP(K#4#/`9HM&!%"+!O]0!(L7 -M@\0(4NA[#```,\"+-XI?!(/$!(#C_HA?!(K#4#/`9HM&!%"+!O]0!(L/@\0( -M4>A1#```BP=0Z$D,``"#Q`A;7E^#Q`C#@\<`@?\`````@?\`````@^P,5XM\ -M)!164\9$)!<`BT0D("6`````A,!T##/`BD<$@^#WZPH[_S/`BD<$@\@(BMB+ -M-XA'!#/`BL-0,\!FBT8$4(L&_U`$BQ>#Q`A2Z-T+```SP(LWBE\$@\0$@,L! -MB%\$BL-0,\!FBT8$4(L&_U`$BP^#Q`A1Z+,+``"+!U#HJPL``(L7@\0(4NB@ -M"P``,\"+-XI?!(/$!(#C_HA?!(K#4#/`9HM&!%"+!O]0!(L/@\0(4>AV"P`` -MBP=0Z&X+``"+1"0H@\0()?\````#P(I4)!?^PHA$)""(5"07@/H(#X(H____ -M6UY?@\0,PSO_4#/`5XM\)`Q64XI?!(LW@,L!B%\$BL-0,\!FBT8$4(L&_U`$ -MBQ>#Q`A2Z!$+``"+#U'H"0L``(L'@\0(4.C^"@``,\"+-XI?!(/$!(#C_HA? -M!(K#4#/`9HM&!%"+!O]0!(L7@\0(4NC4"@``BP]1Z,P*``"#Q`A;7E^#Q`3# -M._]7BWPD"%93,\"+-XI?!(#+`8A?!(K#4#/`9HM&!%"+!O]0!(L7@\0(4NB2 -M"@``BP]1Z(H*``"#Q`A;7E_#@\<`5XM\)`A64S/`BS>*7P2`X_Z(7P2*PU`S -MP&:+1@10BP;_4`2+%X/$"%+H4@H``(L/4>A*"@``@\0(6UY?PX/'`(I$)`A3 -MBTPD"(3`="<SP(I!!(/@]XK8BQ&(000SP(K#4#/`9HM"!%"+`O]0!(/$"%O# -M._\SP(I!!(/(".O7._^#[!`SP%=64XM<)"15BVPD)(MT)#!FBT4$4(M%`/]0 -M'(EL)!2#Q`0E_P```,9$)!0$B$0D'S/`:@1FBT4$4(M%`/]0!(M$)#2#Q`B+ -MT/[*A,"(5"0L=&$SP(H&4(K#)?\```!&4(U$)!A0Z''Z___^PX/$#(OXA?]T -M+C/`BD0D'U`SP&:+1010BT4`_U`$BT0D-(/$",'G""7_````0`O'75M>7X/$ -M$,.+1"0LB\C^R83`B$PD+'6?,\"*1"0?4#/`9HM%!%"+10#_4`2#Q`@SP%U; -M7E^#Q!##@\<`C70F`(/L-#/)5XM\)$16BT0D1%-5BW0D2,9'`03&1S`#9HM` -M$&;'1Q)``&:)3Q8E_/\``&:)1Q"+1"1,9HE/%(M`%&;'1QP`0,9''J*#X/") -M1QB+1"1,BT`PB4<HBT<8A<!T%HM$)$QFBT`$9JD"`'0(BD<>#$"(1QYJ`#/` -M9HM'$(/`+B7__P``4/]6!,9''Q`SP&:+1Q"#P`(E__\``%#_5AR#R`8E_P`` -M`%`SP&:+1Q"#P`(E__\``%#_5@0SP&:+1Q"#P!(E__\``%#_5B!FB40D5B7_ -M_P``@\@@)?__``!0,\!FBT<0@\`2)?__``!0_U8(B70D0#/`9HM'$&H"@\`P -M9HE$)$@SP&:+1Q"#P"XE__\``%#_5@2-1"1`4(U$)$QJ!&H@4.@%^/__BT0D -M4(/$.#/2)?__``!FBU0D&@/"BU0D'('B__\```/",])FBU0D'B7__P``.\)U -M+(M$)!B(1R**1"09B$<CBD0D&HA')(I$)!N(1R6+1"0<B$<FBD0D'8A')^L. -M,\EFB4\B9HE/)&:)3R:-;"0@,\#&1"1"`6:+102S%XET)#"-="1#4(M%`/]0 -M'(EL)!2#Q`2*T#/`QD0D%`2*PHA$)$$SP&H$9HM%!%"+10#_4`2#Q`BP`8K0 -M_LJ$P(A4)$)T*HK#_L,E_P```%"-1"044.C`[___B`:#Q`A&BD0D0HK(_LF$ -MP(A,)$)UUC/`BD0D05`SP&:+1010BT4`_U`$BW0D.(/$"+@'````(D0D0XJ` -M`````,9'(?^(1RQJ`#/`9HM'$(/`+B7__P``4/]6!#/`9HM$)$90,\!FBT<0 -M@\`2)?__``!0_U8(BT0D7(/$$&:+0`1FJ00`=`HSP%U;7E^#Q#3#75M>N`(` -M``!?@\0TPX/'`(/L%#/`5XM\)"A6BW0D(%.+7"0L9HM&!%"+!O]0'(ET)!"# -MQ`2*T#/`QD0D$`2*PHA$)!\SP&H$9HM&!%"+!O]0!(K#_LN#Q`B$P'0JBT0D -M*(O0)?\```!0C40D$/["B%0D+%#HM^[__X@'BL.#Q`A'_LN$P'76,\"*1"0? -M4#/`9HM&!%"+!O]0!(/$"%M>7X/$%,.!_P````"!_P````"#[!!7BWPD&%93 -M58ML)"AFBT<"9CTP`'0?75M>N`$```!?@\00PSO_N`0```!=6UY?@\00PX/& -M`(N'&`L``(7`=0UFBX=R"P``9JE``'79QH=]"P```(M$)"R)AY`+``"+1"0P -MB8>4"P``9HN'<@L``&:I`0!T#6;'AY@+``!01NL+._]FQX>8"P``E!$SP(M4 -M)#1FBX>8"P``@>+__P``.\)^"XM$)#1FB8>8"P``N`D```!F(T0D.(/X"70/ -MN`P```!F(T0D.(/X#'4/75M>N`,```!?@\00PSO_BT0D.(7M9HF'F@L``'1% -M5>A_1@``@\0$A<!U.(I%`$5%B(>("P``145%BD7\B(>)"P``BD7]B(>*"P`` -MBD7^B(>+"P``BD7_B(>,"P``BD4`ZT.0BH>""P``B(>("P``BH>#"P``B(>) -M"P``BH>$"P``B(>*"P``BH>%"P``B(>+"P``BH>&"P``B(>,"P``BH>'"P`` -M,_8STHB'C0L``(V?B`L``$.*2_\ZRG06B50D&.L>75M>N`(```!?@\00PX/' -M`$:#_@9\W,=$)!@!````BT0D&(7`==J*AX@+``"H@'70BX=H"P``BT@\A<ET -M!U?_4#R#Q`2+AV@+``"*0`N(AW@+``!7BX=L"P``_U`49L>'O`X``"``,\F# -MQ`0SP(B/M@L``&:)C[0+``"(C[<+``"(C[@+``"(C[H+``"(C[D+``"(C[X. -M``"(C[\.``"(C\`.``"(C\$.``"(C\(.``"(C\,.``!=6UY?@\00PSO_@^P< -M5U9358ML)#"+50"!^B"!``!T6EU;7C/`7X/$',-&@_X1<F@S]HM$)#B+WJD$ -M````#X3^````A=L/A/8```!FO@`*B\8E__\``%!5Z)U-``"#Q`B%P'16BT0D -M*"7__P``]]!F(_CIJP```(/'`,=$)!P`````9L=$)"@PSHM$)#2_#P```(E$ -M)!0S]HL<M0````"%VW2-9HM#"&8]`P`/A7G___^+\^EZ____._]H-I0``(O& -M)?__``"#P!XE__\``%!5Z,6]__^#Q`R%P'1&BTPD%(O&427__P``4%7_4Q2+ -M1"0H@\0,0(E$)!R+1"0\BU0D'#O0#XU&`0``BT0D*(M,)!0E__\``/?09B/X -M@\$TB4PD%(M$)"B#QB`E__\``,'X!&:)1"0H9H'^X`L/A@[____'1"08```` -M`&;WQP$`#X3@````:$:2``"+1"0<9HL$10````!FB40D*B7__P``@\`")?__ -M``!05>@<O?__@\0,A<!U-V:+1"0F9JD$`'0*N!P```#K"(/'`+@0````,])F -MBU0D)@/0@>+__P``4E7H]4?__X/$"(7`='@SP&:+1"0F4%7H,+[__X/$"#/V -MB\B+'+4`````A=MT&#/`B]%FBT,(@>+__P``.\)T"$:#_A%RW3/;A=MT.HM$ -M)#B+$X70=#"+5"04,\!FBT0D)E)05?]3%(M,)"B#Q`Q!BT0D/(E,)!P[R'TF -MBU0D%(/"-(E4)!2!Y___``"+3"08P?\!08E,)!B#^00/C/K^__^+1"0<75M> -M7X/$',.#QP"!_P````"!_P````"#[`A75HM$)!2+$('Z(($``'057KC_____ -M7X/$",,[_S/`7E^#Q`C#N.`/``"+3"049B-$)!PE__\``%!1Z$Y+``"#Q`B% -MP'77BT0D'"7__P``4(M$)!A0Z#.]__^#Q`B+R&:#^6-TN#/VBSRU`````(7_ -M=!@SP(O19HM'"('B__\``#O"=`A&@_X1<MTS_X7_=(V+5"08BT0D'%(E__\` -M`%"+3"0<4?]7%(/$#%Y?@\0(PY"!_P````"!_P````"+3"0$,\"+D5`+``!2 -M9HN!<`L``(/`""7__P``4(N!7`L``/]0#(/$",,[_XUT)@"+5"0$,\!FBT($ -M4(L"_U`<)?\```"#Q`3#@\<`C70F`#/`BU0D!(I$)`A0,\!FBT($4(L"_U`$ -M@\0(PY"-="8`5XM\)`AJ88L'_U`<:F&+!_]0'&IABP?_4!QJ88L'_U`<@\00 -M7\,[_SO_@?\`````,\!FBT0D"%"+1"0(BP#_4#2#Q`3#@\<`._^!_P````"# -M[!PSP%=64XMT)"Q5BUPD-&:+AG`+``"#P#(E__\``%"+AEP+``#_4""+TR7_ -M_P``@>+__P``(\*#R`*+^"7__P``4#/`9HN&<`L``(/`,B7__P``4(N&7`L` -M`/]0"('C__\``#/`@\L"9HE<)#9H4```@&:+AG`+``"#P!0E__\``%"+AEP+ -M``#_4`R[]/___X/$%#/`9HN&<`L``(/`&"7__P``4(N&7`L``/]0)(E$'""# -MQ`2#PP1\V<=$)"0`````,]*+QV:+5"0J)?__``"[#````#O"#X0B`0``B^\S -M_V:+^L'G$('/QP<``&A0``"`,\!FBX9P"P``@\`4)?__``!0BX9<"P``_U`, -M:+A`8(XSP&:+AG`+``"#P!@E__\``%"+AEP+``#_4`QHV+MR`#/`9HN&<`L` -M`(/`&"7__P``4(N&7`L``/]0#%<SP&:+AG`+``"#P!@E__\``%"+AEP+``#_ -M4`R!Y?W_```SP%5FBX9P"P``@\`R)?__``!0BX9<"P``_U`(NT3]__^#Q"@S -MP&:+AG`+``"#P!(E__\``%"+AEP+``#_4""#Q`1#?-\SP+N\`@``9HN&<`L` -M`(/`,B7__P``4(N&7`L``/]0((M4)"B#Q`2+Z"7__P``0HE4)"0STF:+5"0J -M.\)T#8M$)"2#^&0/C.[^__]H4```@#/`9HN&<`L``(/`%"7__P``4(N&7`L` -M`/]0#+OT____@\0(BTP<'#/`46:+AG`+``"#P!@E__\``%"+AEP+``#_4`R# -MQ`B#PP1\V%V[#````%M>7X/$',,[_X/L##/`5XM\)!164VH`9HN'<`L``(/` -M+B7__P``4(N'7`L``/]0!#/`9HN'<`L``(/`,B7__P``4(N'7`L``/]0((OP -M9H'F_O^+QB7__P``4#/`9HN'<`L``(/`,B7__P``4(N'7`L``/]0"&:!YOW_ -M,\"!YO__``!69HN'<`L``(/`,B7__P``4(N'7`L``/]0"(J'3@L``"3^B(=. -M"P``,\!FBX=P"P``@\`2)?__``!0BX=<"P``_U`@@\0@B_!F@<X``KL/```` -M9H/.$&8CWH/[!WX%NP<```"%VW0,C4O_NP$```#3X^L%NP$```!F@>;_XXJ' -M?PL``(3`="HSTHO#)?__``"*EW\+```[PGP79H'.`!AFBX>`"P``9JD0`'0% -M9H'.``2!YO__```SP%9FBX=P"P``@\`2)?__``!0BX=<"P``_U`(@\0(BH=\ -M"P``A,!U(VB<(```,\!FBX=P"P``@\`()?__``!0BX=<"P``_U`,@\0(QX=0 -M"P``G"```('C__\``#/`0XJ'?PL``&:)7"04B_,[PWX)9@^VP&:)1"04@>;_ -M_P``N/T````KQHO8)?__``")AU0+``"+1"04)?__``#!X`@+QB7__P``4#/` -M9HN'<`L``(/`(B7__P``4(N'7`L``/]0"('C__\``#/`@<L`?P``@>/__P`` -M4V:+AW`+``"#P"`E__\``%"+AUP+``#_4`AJ`#/`9HN'<`L``(/`'B7__P`` -M4(N'7`L``/]0"(/$&+Y<````9HN'<@L``&:I@`!U`X/.`E8SP&:+AW`+``"# -MP"0E__\``%"+AUP+``#_4`QJ`#/`9HN'<`L``(/`!B7__P``4(N'7`L``/]0 -M"(N''`L``(/FXXF')`L``(F'(`L``(J'3@L```P(B(=."P``,\!69HN'<`L` -M`(/`)"7__P``4(N'7`L``/]0#&;'AT@+`````(/$&%M>7X/$#,.#[`Q75E-5 -MC40D&(ML)"A058M4)"R+="0H4NCQQ/__@\0,A<`/A<8```!H````@(M$)!PE -M__\``(UX`S/`9HN&<`L``,'_`H/`%"7__P``4(N&7`L``/]0#(M,)"`SP%%F -MBX9P"P``@\`8)?__``!0BX9<"P``_U`,@\00NP$````[^WY&C40D&%"+1"0H -M55#H>\3__X/$#(7`=`>-1_\[V'5-BU0D&#/`4F:+AG`+``"#P!@E__\``%"+ -MAEP+``#_4`R#Q`A#.]]\NE:+AFP+``#_4"QFQT8"(0!FQT8$```SP(/$!%U; -M7E^#Q`S#._]=6UZX`0```%^#Q`S#@\<`4XI<)`AFBU0D#+G"````A-MU"8') -M``(``.L,D(#[$'4&@<D``0``P>$0@<D`<P``9O?""`!T!H'A_^___V;WP@0` -M=`:!X?_?__\SP(K#@_@0=`6#^`1U!H'A_[___XI$)!"$P'0#@\D$B\%;PX/' -M`(/L'#/`,\E7BWPD+%:+="0L4XM<)"S&1P$$QD<P`F:+1A!FQT<20`!FB4\6 -M)?S_``!FB4<09HE/%(M&%&;'1QP`0,9''J*#X/")1QB+1C")1RB+1QB%P'02 -M9HM&!&:I`@!T"(I''@Q`B$<>:@`SP&:+1Q"#P"XE__\``%#_4P0SP&:+1Q"# -MP"DE__\``%#_4QR#Q`PE\````(/X$'4&QD<?&.L$QD<?`#/`9HM'$(/`$B7_ -M_P``4/]3(&:)1"0H)?__``"#R"`E__\``%`SP&:+1Q"#P!(E__\``%#_4PB) -M7"0D9HM'$&:)1"0HC40D'%"-1"0H:@1J(%#H$>C__XM$)"R#Q!PSTB7__P`` -M9HM4)!(#PHM4)!2!XO__```#PC/29HM4)!8E__\``#O"=2R+1"00B$<BBD0D -M$8A'(XI$)!*(1R2*1"03B$<EBT0D%(A')HI$)!6(1R?K#C/)9HE/(F:)3R1F -MB4\FC40D)E"-1"0<:@%J#5#HD^?__S/`@\009HM$)":)1"0,J0$```!T!C/` -MZQL[_XM$)`RI`@```'0)N!````#K!SO_N`0```#&1R'_B$<LBT0D)"7__P`` -M4#/`9HM'$(/`$B7__P``4/]3"&:+1@2#Q`AFJ00`=`LSP%M>7X/$',,[_UM> -M7[@"````@\0<PSO_@?\`````BT0D!,>`4`L```````##D(/L"#/`5U:+="04 -M9HN&<`L``(/`$B7__P``4(N&7`L``/]0((OX)?__``"#R"`E__\``%`SP&:+ -MAG`+``"#P!(E__\``%"+AEP+``#_4`B+AEP+``"+5"0DB40D%&:+AG`+``!2 -M:@AJ.&:)1"0DC40D(%#H^.___X'G__\``#/`5V:+AG`+``"#P!(E__\``%"+ -MAEP+``#_4`B#Q"1>7X/$",.0@?\`````@?\`````@^P(,\!75E.+="089HN& -M<`L``(/`$B7__P``4(N&7`L``/]0((OX)?__``"#R"`E__\``%`SP&:+AG`+ -M``"#P!(E__\``%"+AEP+``#_4`B+AEP+``"+5"0HB40D&&:+AG`+``!2:@AJ -M.&:)1"0HC40D)%#HQ^O__XO8,\"!Y___``!79HN&<`L``(/`$B7__P``4(N& -M7`L``/]0"(/$)(O#6UY?@\0(PX/'`(UT)@"#[!!7,_]6BW0D'%-5BVPD*&:+ -M13!FJ0"`="2-73!J9(N&7`L``/]0-(O'1X/$!(/X9`^/D`(``&;W`P"`==]J -M9(N&7`L``/]0-&H",\!FBX9P"P``@\`N)?__``!0BX9<"P``_U`$:A8SP&:+ -MAG`+``"#P!8E__\``%"+AEP+``#_4`1J!C/`9HN&<`L``(/`%B7__P``4(N& -M7`L``/]0!&H`,\!FBX9P"P``@\`N)?__``!0BX9<"P``_U`$N0"````SP&:) -M35QFB8V(````:@%FBX9P"P``@\`H)?__``!0BX9<"P``_U`(@\0L,_]FBX6( -M````9JD`@'0GC9V(````:F2+AEP+``#_4#2+QT>#Q`2#^&0/CYL!``!F]P,` -M@'7?:F2+AEP+``#_4#1J`C/`9HN&<`L``(/`+B7__P``4(N&7`L``/]0!&H6 -M,\!FBX9P"P``@\`6)?__``!0BX9<"P``_U`$:@8SP&:+AG`+``"#P!8E__\` -M`%"+AEP+``#_4`1J`#/`9HN&<`L``(/`+B7__P``4(N&7`L``/]0!&;'A;0` -M````@#/;@\0DC;W@````9O<'`(!U"8/'+$.#^P5\\(/[!74",]N-%%N-%-K! -MX@*-A!7>````9HL09H'B``%FB1"-%%N-%-K!X@)FQX05X@``````C11;C13: -MP>("C805X````(E$)!QFQP``@#/`:@5FBX9P"P``@\`H)?__``!0BX9<"P`` -M_U`(BT0D)(/$"#/_9O<``(!T)XE<)!"+V&IDBX9<"P``_U`TB\='@\0$@_AD -M?TIF]P,`@'7CBUPD$#/`C0Q;9HN%L````#/2C0S9@\`$P>$"9HN4#=P````[ -MPG00N`0```!=6UY?@\00PX/'`%U;7C/`7X/$$,,[_UU;7K@#````7X/$$,.# -MQP!=6UZX`@```%^#Q!##@\<`75M>N`$```!?@\00PX/'`#O_@?\`````@^QH -M,\!7BWPD<%9356:+AW`+``!0BX=<"P``_U`@9HE$)'@SP&:+AW`+``"#P"0E -M__\``%"+AUP+``#_4"2)1"1@,\!FBX=P"P``@\`$)?__``!0BX=<"P``_U`D -MB40D8#/`9HN'<`L``(/`""7__P``4(N'7`L``/]0(&:)A"2"````,\!FBX=P -M"P``@\`J)?__``!0BX=<"P``_U`@9HF$)(0````SP&:+AW`+``"#P!(E__\` -M`%"+AUP+``#_4"!FB80DA@```#/`9HN'<`L``(/`#"7__P``4(N'7`L``/]0 -M)(N?%`L``(N7$`L``/?;B40D;#/`9HN'<`L``(/C!X/`$(N/%`L``(TT&B7_ -M_P``4(N'7`L```/9B9PD@````/]0(&C__P``,\!FBX=P"P``@\`0)?__``!0 -MBX=<"P``_U`(:@`SP&:+AW`+``!0BX=<"P``_U`(:!W@!P`SP&:+AW`+``"# -MP"0E__\``%"+AUP+``#_4`QJ`#/`9HN'<`L``(/`!"7__P``4(N'7`L``/]0 -M#&H`,\!FBX=P"P``@\`()?__``!0BX=<"P``_U`(:@`SP&:+AW`+``"#P"HE -M__\``%"+AUP+``#_4`@SP&:+AW`+``"#P#(E__\``%"+AUP+``#_4"`E_W\` -M`%`SP&:+AW`+``"#P#(E__\``%"+AUP+``#_4`@SP&:+AW`+``"#P!(E__\` -M`%"+AUP+``#_4"`E\.P``(/(`27__P``4#/`9HN'<`L``(/`$B7__P``4(N' -M7`L``/]0"&H",\!FBX=P"P``@\`N)?__``!0BX=<"P``_U`$,\!FBX=P"P`` -M@\`6)?__``!0BX=<"P``_U`<BM@SP(K#@\@0B(0DZ@```"7_````4#/`9HN' -M<`L``(/`%B7__P``4(N'7`L``/]0!&H`,\!FBX=P"P``@\`N)?__``!0BX=< -M"P``_U`$,\!FBX=P"P``@\`,)?__``!0BX=<"P``_U`D)?__```-```#`%`S -MP&:+AW`+``"#P`PE__\``%"+AUP+``#_4`QJ`C/`9HN'<`L``(/`+B7__P`` -M4(N'7`L``/]0!#/`BL.#X.^(A"0/`0``)?\```!0,\!FBX=P"P``@\`6)?__ -M``!0BX=<"P``_U`$:@`SP&:+AW`+``"#P"XE__\``%"+AUP+``#_4`2!Q*@` -M```SVXJ#`````$.#^PJ(A!ZW`0``<NTSVXE\)!"+1"1@C:[H````B40D:`7< -M````B40D9(M$)&`%N`$``(ET)!2)1"1,BT0D8`7(`0``N2P```")1"1(C8;D -M````B40D'(V&X@```(E$)""-AN````")1"0DC8;>````B40D*(V&W````(E$ -M)"R-1@R)1"0PC48(B40D-(U&!HE$)#B-1@2)1"0\C48"B_B+1"0\0V;'!A`` -MBU0D3&;'!P```_%FQP```(M$)#@#^6;'```&BT0D-(D0BT0D:`/!B40D:(M$ -M)#"+5"1H@\H!B1"+5"1(BT0D+&;'`!@`BT0D*&;'````BT0D)&;'``"`BT0D -M(&;'````BT0D'(D0BU0D9`/1BT0D/`/!B54`B40D/(M$)#B)5"1DBU0D-`/! -M`]&)1"0XBT0D,(E4)#2+5"0H`\$#T8E$)#"+1"0LB50D*(M4)!P#P0/1B40D -M+(M$)"0#P0/IB40D)(M$)"`#P8/[!8E$)"")5"0<#XP>____BT0D8(MT)!2+ -M?"00@\@!B8:\````N0"```!FBX:V````9@T``6:)AK8```"+1"1@9HE.!`7< -M````9HE.,(F&F`$``&:+AHX!``!F#0`!9HF&C@$``(M$)&`%W````%`SP&:+ -MAW`+``"#P#PE__\``%"+AUP+``#_4`R+3"1H,\!19HN'<`L``(/`."7__P`` -M4(N'7`L``/]0#%97Z&SW__^+\#/`9HN'<`L``(/`)"7__P``4(N'7`L``/]0 -M)`T````%4#/`9HN'<`L``(/`)"7__P``4(N'7`L``/]0#&IDBX=<"P``_U`T -MBX0DG````"7__P``4#/`9HN'<`L``%"+AUP+``#_4`B+A"2(````4#/`9HN' -M<`L``(/`)"7__P``4(N'7`L``/]0#(N4)(P````SP%)FBX=P"P``@\`$)?__ -M``!0BX=<"P``_U`,,\!FBX0DL@```%`SP&:+AW`+``"#P`@E__\``%"+AUP+ -M``#_4`B+A"2X````)?__``!0,\!FBX=P"P``@\`J)?__``!0BX=<"P``_U`( -M,\!FBX0DO@```%`SP&:+AW`+``"#P!(E__\``%"+AUP+``#_4`AJ`C/`9HN' -M<`L``(/`+B7__P``4(N'7`L``/]0!#/`BH0DU@```%`SP&:+AW`+``"#P!8E -M__\``%"+AUP+``#_4`1J`#/`9HN'<`L``(/`+B7__P``4(N'7`L``/]0!(N, -M),`````SP%%FBX=P"P``@\`,)?__``!0BX=<"P``_U`,:@(SP&:+AW`+``"# -MP"XE__\``%"+AUP+``#_4`0SP(J$)/<```!0,\!FBX=P"P``@\`6)?__``!0 -MBX=<"P``_U`$:@`SP&:+AW`+``"#P"XE__\``%"+AUP+``#_4`2!Q)````"% -M]G0:75N+QEY?@\1HP[@&````75M>7X/$:,.#QP`SP&:+AW`+``"#P"0E__\` -M`%"+AUP+``#_4"2#Q`2#X!2#^!1UREU;7C/`7X/$:,.-="8`,\"+5"0$9HM$ -M)`A0,\!FBX)P"P``@\`R)?__``!0BX)<"P``_U`(@\0(PY"-="8`@^P4,\!7 -MBWPD'%93:@!FBX=P"P``@\`N)?__``!0BX=<"P``_U`$,\!FBX=P"P``@\`R -M)?__``!0BX=<"P``_U`@B_!F@>;^_XO&)?__``!0,\!FBX=P"P``@\`R)?__ -M``!0BX=<"P``_U`(9H'F_?\SP('F__\``%9FBX=P"P``@\`R)?__``!0BX=< -M"P``_U`(BH=."P``)/Z(ATX+```SP&:+AW`+``"#P!(E__\``%"+AUP+``#_ -M4""#Q""+\&:#SA"[#P```&8CWH/["WX%NPL```"%VW0-C4O_NP$```#3X^L& -MD+L!````9H'F_^.*AW\+``"$P'0J,]*+PR7__P``BI=_"P``.\)\%V:!S@`8 -M9HN'@`L``&:I$`!T!6:!S@`$@>;__P``,\!69HN'<`L``(/`$B7__P``4(N' -M7`L``/]0"(/$"(J'?`L``(3`=2-H7"```#/`9HN'<`L``(/`""7__P``4(N' -M7`L``/]0#(/$",>'4`L``%P@``"+\X'C__\``('F__\``#/`1HJ'?PL``$.) -M="04.\-^!(E$)!2[``@``#/`*]Z)GU0+``!J`F:+AW`+``"#P"XE__\``%"+ -MAUP+``#_4`0SP&:+AW`+``"#P!8E__\``%"+AUP+``#_4!R(1"0K)?\```"# -MR!`E_P```%`SP&:+AW`+``"#P!8E__\``%"+AUP+``#_4`1H#Q`/`#/`9HN' -M<`L``(/`)"7__P``4(N'7`L``/]0#&@?$```,\!FBX=P"P``@\`H)?__``!0 -MBX=<"P``_U`,:@`SP&:+AW`+``"#P"XE__\``%"+AUP+``#_4`2+1"1`P>@! -M0,'@$`T``@``4#/`9HN'<`L``(/`#"7__P``4(N'7`L``/]0#,'K`C/`P>X! -MNOH#``#!XQ`KU@O:4V:+AW`+``"#P"`E__\``%"+AUP+``#_4`QJ`C/`9HN' -M<`L``(/`+B7__P``4(N'7`L``/]0!#/`BD0D8R7O````4#/`9HN'<`L``(/` -M%B7__P``4(N'7`L``/]0!&H`,\!FBX=P"P``@\`N)?__``!0BX=<"P``_U`$ -M:@`SP&:+AW`+``!0BX=<"P``_U`(@\1<OD````!FBX=R"P``9JF``'4#@\X" -M5C/`9HN'<`L``(/`)"7__P``4(N'7`L``/]0#&H`,\!FBX=P"P``@\`$)?__ -M``!0BX=<"P``_U`,@\00BX<<"P``B8<D"P``B8<@"P``BH=."P``#`B(ATX+ -M``"+AQ@+```]Z`$``'()5^CT\___@\0$@<X````',\!69HN'<`L``(/`)"7_ -M_P``4(N'7`L``/]0#&;'AT@+`````(/$"%M>7X/$%,.!_P````"!_P````"# -M[`Q75E-5C40D&(M4)"A04HM,)"R+="0H4>CAL/__@\0,A<`/A2X!``!H```` -M@(M$)!PE__\``(UX`S/`9HN&<`L``,'_`H/`%"7__P``4(N&7`L``/]0#(M$ -M)"!0,\!FBX9P"P``@\`8)?__``!0BX9<"P``_U`,@\00NP$````[^WY1C:YP -M"P``C40D&(M4)"A04HM,)"Q1Z&&P__^#Q`R%P'0+C4?_.]@/A:<```"+1"08 -M4#/`9HM%`(/`&"7__P``4(N&7`L``/]0#(/$"$,[WWRU:/"_`(`SP&:+AG`+ -M``"#P!0E__\``%"+AEP+``#_4`QHD.I0`#/`9HN&<`L``(/`&"7__P``4(N& -M7`L``/]0#&H`,\!FBX9P"P``@\`8)?__``!0BX9<"P``_U`,5HN&;`L``/]0 -M+&;'1@(A`&;'1@0``#/`@\0<75M>7X/$#,,[_UU;7K@!````7X/$#,.#QP`[ -M_X'_`````%.*7"0(9HM4)`RYP@```(3;=0F!R0`0``#K')"`^Q!U"X')``$` -M`.L.@\<`@/MD=0:!R0`"``#!X1"!R0!S``!F]\((`'0&@>'_[___9O?"!`!T -M!H'A_]___S/`BL.#^!!T!8/X!'4&@>'_O___BD0D$(3`=`.#R02+P5O#@\<` -M5XM\)`@SP,>'4`L```````!J`&:+AW`+``"#P"XE__\``%"+AUP+``#_4`0S -MP&:+AW`+``"#P`(E__\``%"+AUP+``#_4!R#R`8E_P```%`SP&:+AW`+``"# -MP`(E__\``%"+AUP+``#_4`2#Q!1?PX/L"#/`5U:+="049HN&<`L``(/`$B7_ -M_P``4(N&7`L``/]0((OX)?__``"#R"`E__\``%`SP&:+AG`+``"#P!(E__\` -M`%"+AEP+``#_4`B+AEP+``")1"04,\!FBX9P"P``:@*#P#!FB40D'#/`9HN& -M<`L``(/`+B7__P``4(N&7`L``/]0!(M4)"R-1"0<4FH(:CA0Z.;<__]J`#/` -M9HN&<`L``(/`+B7__P``4(N&7`L``/]0!('G__\``#/`5V:+AG`+``"#P!(E -M__\``%"+AEP+``#_4`B#Q#1>7X/$",,[_X'_`````('_`````(/L"#/`5U93 -MBW0D&&:+AG`+``"#P!(E__\``%"+AEP+``#_4""+^"7__P``@\@@)?__``!0 -M,\!FBX9P"P``@\`2)?__``!0BX9<"P``_U`(BX9<"P``B40D&#/`9HN&<`L` -M`&H"@\`P9HE$)"`SP&:+AG`+``"#P"XE__\``%"+AEP+``#_4`2+5"0PC40D -M(%)J"&HX4.AUV/__B]@SP&H`9HN&<`L``(/`+B7__P``4(N&7`L``/]0!('G -M__\``#/`5V:+AG`+``"#P!(E__\``%"+AEP+``#_4`B#Q#2+PUM>7X/$",,[ -M_X'_`````%!75HM\)!A3N0$```"+="08B$\PB`^(3P%FB7<0N00```!FB4\2 -M9H7.=`FX'````.L'._^X$````&;'1Q80`(O6,\EFB4\<@>+__P```]"+QF:) -M5Q0E__\``(/``HE/&"7__P``4(M$)!C_4!R*V(O&)?__``"#P`,E__\``%"+ -M1"0<_U`<B$0D%X/$"+@#````(L.*@`````"(1R"*1"0/J(!T$S/`BL,E_``` -M``T``0``B_#K!)!F,_:!YO__``#!Y@N)=RB*1"0/J`AT"<9'+!#K!X/&`,9' -M+`3&1QX$,\!FBT<4@\`()?__``!0BT0D&/]0'(/$!*D"````=##&1R$$BD<> -M#!B(1QZ-1R*+5"044#/`9HM'%%!2Z&]M__^#Q`RX`0```%M>7X/$!,,SP(I$ -M)`_!^`2#X`.*@`````"(1R$\!'4+BD<>#!"(1Q[KN9"*1QX,`XA''NNN._^# -M[`RY`0```%>+?"0<5HMT)!A358A/`8A/,(M$)"2Y!````&:)1Q!FA<AFB4\2 -MQ@<"=`FX'````.L'._^X$````&;'1Q80`(M4)"0SR6:)3QR!XO__```#T(M$ -M)"1FB5<4)?__``"#P`*)3QB+V"7__P``4/]6'(A$)!MJ!8O#)?__``!0_U8$ -MBT0D,"7__P``@\`#B^@E__\``%#_5AR(1"0KB\-J!B7__P``4/]6!(O%)?__ -M``!0_U8<BE0D-X/$'/;"`8A$)!IU!*B`="7&1QX`:@*+PR7__P``4/]6!(O% -M)?__``!0_U8<B$0D)6H#ZR.0QD<>!&H`B\,E__\``%#_5@2+Q27__P``4/]6 -M'(A$)"5J`8O#)?__``!0_U8$B\4E__\``%#_5AR(1"0P@\08N`<````B1"09 -MBH``````B$<@BT0D&*@!=`?&1RP0ZP60QD<L!(M$)!BH@'08N'@```"+5"08 -M(L(-``,``&:)1"04ZPB09L=$)!0``(M$)!0E__\``,'@"HE'*(I$)!JH0'0. -MQD<A!(I''@P(B$<>ZQ4SP(I$)!G!^`.#X`>*@`````"(1R&*1R$\!'5,BD<> -M#!"(1QYJ!HO#)?__``!0_U8$C4<B@>7__P``4&H\55;H:&___S/`@>/__P`` -MBD0D+U!3_U8$@\0@N`$```!=6UY?@\0,PX/&`(I''@P#Z[*0@?\`````@?\` -M````5XM\)`@SP&:+AW`+``"#P`(E__\``%"+AUP+``#_4!PE]P```%`SP&:+ -MAW`+``"#P`(E__\``%"+AUP+``#_4`2#Q`Q?PSO_._^!_P````!7BWPD"&H% -M,\!FBX=P"P``@\`")?__``!0BX=<"P``_U`$,\!FBX=P"P``@\`#)?__``!0 -MBX=<"P``_U`<)?<```!0,\!FBX=P"P``@\`#)?__``!0BX=<"P``_U`$@\04 -M7\.0@?\`````@?\`````4#/`5XM\)`QJ`F:+AW`+``"#P`(E__\``%"+AUP+ -M``#_4`0SP&:+AW`+``"#P`,E__\``%"+AUP+``#_4!R+5"0<@\0,BLBX!P`` -M`"+!@>+_````BH``````)?\````[PG16BT0D$"7_````BH``````B$0D!SP' -M=@JX`P```%^#Q`3#,\`STHK!BE0D!R7X````"\(E_P```%`SP&:+AW`+``"# -MP`,E__\``%"+AUP+``#_4`2#Q`@SP%^#Q`3#5XM\)`AJ`C/`9HN'<`L``(/` -M`B7__P``4(N'7`L``/]0!#/`9HN'<`L``(/``R7__P``4(N'7`L``/]0'(K( -M,\"#Q`R*P<'X`S/2@^`'BE0D#(J``````"7_````.\)T/HJ2`````#/`BL&! -MXO\```#!X@,EQP````O")?\```!0,\!FBX=P"P``@\`#)?__``!0BX=<"P`` -M_U`$@\0(7\.#QP"!_P````"!_P````!7BWPD"&H`,\!FBT<6@\`>)?__``!0 -MBX=<"P``_U`$:@A7Z#F2__^#Q!`E``L``#T``P``=1*X`0```(A'&U_#N`$` -M``!?PY!J!E?H$)+__X/$"*F`````=>8SP%_#._]J!#/`BU0D"&:+0A:#P!XE -M__\``%"+@EP+``#_4`2#Q`C#._^!_P````"!_P````"#[!`SP%>+?"085E-5 -M9HN'<`L``(/`'B7__P``4(N'7`L``/]0'(K8N`$````BPR7_````4#/`9HN' -M<`L``(/`'B7__P``4(N'7`L``/]0!#/`9HM'%H/`""7__P``4(N'7`L``/]0 -M((OPN``#``!F(\:#Q!`]``,```^%@`(``(O&)?__```-``@``"7__P``4#/` -M9HM'%H/`""7__P``4(N'7`L``/]0"#/`9HM'%H/`#B7__P``4(N'7`L``/]0 -M(&:)1"0J@\0,9H7`#X0.`@``,\!FBT<6@\`&)?__``!0BX=<"P``_U`@9HE$ -M)"`SP&:+1Q:#P`0E__\``%"+AUP+``#_4""+;"0D@\0(@>7__P``)?__``#! -MY1`+Z&:+AW(+``!FJ1``=%QF]\8`!'0I,\!FBT0D'E`SP%5FBT<6@\`0)?__ -M``!0BX=<"P``_U`H@\0,Z84!```SP&:+1"0>4#/`56:+1Q:#P!`E__\``%"+ -MAUP+``#_4!"#Q`SI7`$``(/'`#/`9HM$)![!^`)FB40D&+@#````9B-$)!YF -M]\8`!&:)1"06#X2;````BT0D&&:%P'0P)?__``!0,\!59HM'%H/`$"7__P`` -M4(N'7`L``/]0,#/`9HM$)"HE_/\```/H@\0,9HM$)!9FJ0(`="(SP&:+1Q:# -MP!`E__\``%"+AUP+``#_4""#Q0*#Q`1FB47^9HM$)!9FJ0$`#X2[````,\!F -MBT<6@\`0)?__``!0BX=<"P``_U`<B$4`@\0$Z9@```"#QP"+1"089H7`=#`E -M__\``%`SP%5FBT<6@\`0)?__``!0BX=<"P``_U`8,\!FBT0D*B7\_P```^B# -MQ`QFBT0D%F:I`@!T)3/`9HM%`%`SP&:+1Q:#P!`E__\``%"+AUP+``#_4`B# -MQ0*#Q`AFBT0D%F:I`0!T(3/`BD4`4#/`9HM'%H/`$"7__P``4(N'7`L``/]0 -M!(/$"%?H*6K__X/$!(7`=`HSP%U;7E^#Q!##O@$```#K#)!7Z+HT__^+\(/$ -M!#/`BL-0,\!FBX=P"P``@\`>)?__``!0BX=<"P``_U`$@\0(B\9=6UY?@\00 -MPSO_@?\`````5XM\)`AJ<3/`9HN'<`L``(/`'27__P``4(N'7`L``/]0!&H" -M,\!FBX=P"P``@\`?)?__``!0BX=<"P``_U`$:/$````SP&:+AW`+``"#P!TE -M__\``%"+AUP+``#_4`0SP&:+AW`+``"#P!\E__\``%"+AUP+``#_4!R#R`0E -M_P```%`SP&:+AW`+``"#P!\E__\``%"+AUP+``#_4`0SP&:+AW`+``"#P!XE -M__\``%"+AUP+``#_4!R#R`0E_P```%`SP&:+AW`+``"#P!XE__\``%"+AUP+ -M``#_4`2#Q#!?PSO_@?\`````@?\`````@^P@N0$```!7BWPD,%:+="0L4U6+ -M1"0XQ@<#)?__``"(3P&(3S!H-I0``(/`'6:)1"0NBT0D/"7__P``@\`>9HE$ -M)"R+1"0\)?__``"#P!]FB40D*HM$)"PE__\``%!6Z$N2__^#Q`R%P'4\75M> -M,\!?@\0@PSO_0X'[``$```^,(P$``(MT)!2+?"00,\"*1"0N4#/`9HM$)"I0 -M_U8$@\0(Z4D!``"09L='!(T09L='!@$`BT0D*"7__P``4/]6'(A$)#,E]P`` -M`%"+1"0P)?__``!0_U8$:@8SP&:+1"0Z4/]6!#/`9HM$)#I0_U8<9L='$B`` -M9HE'#(M$)%!FB4<0,\!FBT0D0C/)9HE/%F:)3Q2)3QAFB4\<:G!0_U8$,\!F -MBT0D1E#_5AR(1R!H^````#/`9HM$)%)0_U8$,\!FBT0D4E#_5AR(1"1>@\0P -MJ"#'1"0@``````^$C````,9''P(EWP```%`SP&:+1"0J4/]6!(M$)$`E__\` -M`%#_5AR-;AR)?"0<B70D((U6!(M$)$2[J@```"7__P``B_*#P`N#Q`R+^#/` -MBL-0B\<E__\``%#_%FIA_U4`B\<E__\``%#_50`STH/$$(K3.\(/A*+^___' -M1"0@`0```(MT)!2+?"00Z:+^__^0QD<?`(M$)"@E__\``%#_5AR#Q`2I`0`` -M`'4(BT0D((7`=!'&1QX(QD<?`L9'(03K)8/&`,9''@!J=#/`9HM$)"Y0_U8$ -M,\!FBT0D+E#_5AR(1R&#Q`R*1R$\!'0(BD<>#`.(1QYH_0```#/`9HM$)"Y0 -M_U8$C4<B4#/`9HM$)#)J/%!6Z,ME__]J0#/`9HM$)$90_U8$,\!FBT0D1E#_ -M5AS!X!")1RAJ03/`9HM$)%)0_U8$,\!FBT0D4E#_5AS!X`B+5R@+PHE'*&CW -M````,\!FBT0D7E#_5@0SP&:+1"1>4/]6'(/$/*D!````=`G&1RP0ZP>#Q@#& -M1RP$,\"*1"0O4(M$)"PE__\``%#_5@2X`0```(/$"%U;7E^#Q"##C70F`%>+ -M?"0(,\!FBX=P"P``@\`>)?__``!0BX=<"P``_U`<)?<```!0,\!FBX=P"P`` -M@\`>)?__``!0BX=<"P``_U`$:/X````SP&:+AW`+``"#P!TE__\``%"+AUP+ -M``#_4`0SP&:+AW`+``"#P!\E__\``%"+AUP+``#_4!R#R$`E_P```%`SP&:+ -MAW`+``"#P!\E__\``%"+AUP+``#_4`1J%(N'7`L``/]0-(/$)%_#5XM\)`AJ -M<#/`9HN'<`L``(/`'27__P``4(N'7`L``/]0!#/`BD0D%%`SP&:+AW`+``"# -MP!\E__\``%"+AUP+``#_4`0SP(/$$%_#D(UT)@!7BWPD"%,SP&:+AW`+``"# -MP!XE__\``%"+AUP+``#_4!R*V#/`BL,E]P```%`SP&:+AW`+``"#P!XE__\` -M`%"+AUP+``#_4`1J=#/`9HN'<`L``(/`'27__P``4(N'7`L``/]0!#/`BD0D -M)%`SP&:+AW`+``"#P!\E__\``%"+AUP+``#_4`0SP(K#4#/`9HN'<`L``(/` -M'B7__P``4(N'7`L``/]0!(/$)%M?PX/'`%"+1"085XM\)"!6BW0D%%.Y!``` -M`,9'`0/&1S`!B`>+1"0@9HE'!(M$)!QFB4<,9H7.9HEW$&:)3Q)T"+@<```` -MZP:0N!````!FQT<6$`"+UC/)9HE/'('B__\```/0B\9FB5<4)?__``")3QA0 -MBT0D&/]0'(K8B\8E__\``$`E__\``%"+1"0<_U`<B$0D%X/$"+AP````(D0D -M#X/X<'4+QD<>,,9'(03K&I#&1QXBBT0D(&8]A`IU![`B#`&(1Q[&1R'_N`,` -M```BPXJ``````(A'((I$)`^H@'03,\"*PR7\````#0`!``"+\.L$D&8S]H'F -M__\``,'F"XEW*(I$)`^H"'0EQD<L$(U'(HM,)!10,\!FBT<44%'H0%[__X/$ -M#%M>7X/$!,,[_\9'+`3KV3O_@?\`````@?\`````@^P,5[\!````5E-5BVPD -M(,=$)!@`````C74$BU0D)#OZ=&6-1P<E_P```%!HE@```/\6:`$!``#_51S! -MX`AH``$``(O8_U4<@\00"\,]A`H```^$I````#V%"@``=`<]A@H``'4B:`(! -M``#_51S!^`2#X`.+R+@!````T^`+1"0<B40D'(/$!$>#_PA^C6H`B_5HE@`` -M`/]6!#/;@\0(BVPD)(M\)"B+R[@!````T^"+5"08A=!U7#/`9HL$70````!0 -M5NA'C?__@\0(@_@%=4-7:@1HA`H``%4SP&:+!%T`````4%;HU?W__[@!```` -M@\0875M>7X/$#,.0:@!HE@```/\6@\0(,\!=6UY?@\0,PSO_0X/[!'R-75M> -M,\!?@\0,PX'_`````('_`````%>+?"0(BT0D#(/`!R7_````4&B6````_U<$ -MBU0D&(M,)!12:@5HA0H``%%H`@$``/]7','X!%F#X`-FBP1%`````"7__P`` -M4%?H0OW__X/$(+@!````7\,[_X'_`````%>+?"0(BT0D#(/`!R7_````4&B6 -M````_U<$BU0D&(M,)!12:@9HA@H``%%H`@$``/]7','X!%F#X`-FBP1%```` -M`"7__P``4%?HXOS__VH`:)8```#_5P2#Q"BX`0```%_#._^!_P````"!_P`` -M``"#[!17OP$```!64U6+;"0HQT0D&`````"-=02-71R-1P<E_P```%!HE@`` -M`/\6:`$!``#_$\'@"(E$)!QH``$``/\3BU0D((/$$`O"9HE$)"(SP&:+1"0B -M/80*```/A(T````]A0H```^$E@```#V&"@``#X2W````Z1H!```[_XM,)#"+ -M1"0<46H$:(0*``!0BT0D/"7__P``4%/H'_S__X/$&+@!````75M>7X/$%,.# -MQP!J`&B6````_Q:+3"0X,\!1:@5FBT0D,E"+1"1`5R7__P``4%7HX_O__[@! -M````@\0@75M>7X/$%,.#QP"+5"08B7PD'$*)5"08Z98````[_V@"`0``_U4< -MBU0D,(/$!,'X!('B__\``(/@`V:+!$4`````)?__```[PG2$:`(!``#_51R+ -M5"0P@\0$P?@$@>+__P``@^`#9HL$10`````E__\``#O"=3QJ`&B6````_Q:+ -M1"0X4#/`:@9FBT0D,E"+1"1`5R7__P``4%7H._O__X/$(+@!````75M>7X/$ -M%,.#QP!'@_\(#XY\_O__:@"+W6B6````_U,$BT0D((/$"(7`=#>#^`$/A+[^ -M__^+5"0PBT0D+%)J!&B$"@``:@`E__\``%!3Z.#Z__^#Q!BX`0```%U;7E^# -MQ!3#75M>,\!?@\04PSO_C70F`%>+?"0(9HN'<@L``&:I`@!T5S/`BH=["P`` -M@\`')?\```!0:)8```"+AUP+``#_4`1H`@$``(N'7`L``/]0'(/(#B7_```` -M4&@"`0``BX=<"P``_U`$:@!HE@```(N'7`L``/]0!(/$'%_#D(UT)@!05U:+ -M="044XM<)""+?"0D@?L]@PD!=0C&!P?K!H/&`,8'",9'`0+&1S`!9HEW$+D$ -M````9HE/$F:%SHM$)!R)7P1FB4<,=`BX'````.L&D+@0````9L='%A``B]8S -MR6:)3QR!XO__```#T(O&9HE7%"7__P``B4\84(M$)!C_4!R(1"03B\8E__\` -M`$`E__\``%"+1"0<_U`<BM@SP(/$"(K#P?@$B]:#X`.!XO__``!FBP1%```` -M`"7__P``.\)T"C/`6UY?@\0$PY"X`P```(I4)`\BPO;#0(J``````(A'('0+ -MQD<>,,9'(03K"9#&1QXBQD<A__;#@'07,\"*1"0/)?P````-``$``(OPZP:# -MQP!F,_:!YO__``#!Y@OVPPB)=RAT",9'+!#K!CO_QD<L!(U'(HM,)!10,\!F -MBT<44%'H9UC__X/$#+@!````6UY?@\0$PSO_@?\`````5U:+1"00P>`,B_@E -M__\```6`#```)?__``!0BT0D$/]0)(/$!(OP@?X]@PD!=`B!_CV#"0)U(XO' -M)?__```%A`P``"7__P``4(M$)!#_4!R#Q`2I`0```'4*N`$```!>7\,[_X'G -M__\``(M$)`R!QX<,``"!Y___``!7_U`<P?@$BU0D&%)6@^`#BTPD'%%FBP1% -M`````"7__P``4(M$)"!0Z/G]__^#Q!A>7\.#QP!7BT0D"%9353/_C5@DB\?! -MX`R+\"7__P``!8`,```E__\``%#_$X/$!(OH@?T]@PD!=`R!_3V#"0(/A8$` -M``"+QB7__P``!80,```E__\``%"+1"08_U`<@\0$J0$```!T7H'F__\``(M$ -M)!2!QH<,``"!YO__``!6_U`<P?@$@\0$@^`#,])FBU0D&&:+!$4`````)?__ -M```[PG4CBU0D'#/`4E57BTPD(&:+1"0D4%'H.OW__X/$%%U;7E_#._]'@_\0 -M#XQ#____75M>,\!?PX/'`('_`````('_`````%>+?"0(9HN'<@L``&:I`@!T -M/C/`9HN'<`L``$`E__\``%"+AUP+``#_4!R#R$`E_P```%`SP&:+AW`+``!` -M)?__``!0BX=<"P``_U`$@\0,7\,[_X'_`````('_`````%>+?"0(:@`SP&:+ -M1Q:#P!0E__\``%"+AUP+``#_4`0SP&:+1Q:#P`@E__\``%"+AUP+``#_4""# -MQ`PE``L``#T``P``=1*X`0```(A'&U_#N`$```!?PY`SP&:+1Q:#P`8E__\` -M`%"+AUP+``#_4""#Q`2I@````'76,\!?PSO_5XM\)`B*1QN$P'4B,\!FBT<6 -M@\`&)?__``!0BX=<"P``_U`@@\0$J8````!T'K@!````7\.#Q@#&1QL!5^AN -MC?__N`$```"#Q`1?PU?HCHO__X/$!(7`==\SP%_#@\<`:@`SP(M4)`AFBT(6 -M@\`4)?__``!0BX)<"P``_U`$,\"#Q`C#@?\`````@?\`````:,`````SP(M4 -M)`AFBT(6@\`4)?__``!0BX)<"P``_U`$@\0(PX/'`#O_@?\`````5XM\)`@S -MP&:+AW`+``"#P!(E__\``%"+AUP+``#_4!R#X#]0,\!FBX=P"P``@\`2)?__ -M``!0BX=<"P``_U`$@\0,7\.!_P````"!_P````!0BT0D"(I`&X3`=2J+1"0( -M9HM`%B7__P``@\`5)?__``!0BT0D#(N`7`L``/]0'(/$!*C`=`JX`0```(/$ -M!,.0,\"#Q`3#._\[_X'_`````%>+?"0(:@`SP&:+1Q:#P!0E__\``%"+AUP+ -M``#_4`0SP&:+1Q:#P!4E__\``%"+AUP+``#_4!R#Q`RHP+@`````7P^5P,,[ -M_SO_@?\`````5S/_4V:+7"0,BPR]`````(7)=!@SP(O39HM!"('B__\``#O" -M=`Y'@_\1<MTSP%M?PX/'`%N+P5_#@\<`C70F`%<S_U.+7"0,BPR]`````(7) -M=`V+400[TW0.1X/_$7+H,\!;7\.#QP!;B\%?PX/'`%<S_U93,]**3"089HM\ -M)!3!YQ!FBU0D$`OZ,_:+'+4`````A=MT-XL3]\+`CP``=">+0P2+UR4`____ -M@>(`____.\)U$S/`,]**0PJ*T3O"=0:+PUM>7\-&@_X1<KY;7C/`7\.!_P`` -M``"!_P````"X[!```,,[_SO_@?\`````@^P(5XM$)!!6BW0D)(L0BWPD&('Z -M(($``'097K@$````7X/$",,[_[@"````7E^#Q`C#D&CL$```5^B!>___9L=' -M`@``9L<'4I0SR8M$)!R(CYP+``")AUP+``"+1"0DB8=D"P``BT0D*(F'8`L` -M`#/`B8\8"P``B@90Z)#^__^#Q`R%P(F':`L``'2;9@^V!F:)1P:+AV@+``"+ -M0$")AVP+``!FBT809HF'<`L``(N':`L``(M`0&:#.`)U&F:+1A1FA<!T"6:) -M1Q;K"X/'`&:+1A!FB4<69HM&+F:)AX`+``"*1BV(AW\+``"+AVP+``"%P'0) -M:@!7_U`$@\0(BX=H"P``BT@XA<ET!U?_4#B#Q`2*1B*(AX(+``"*1B.(AX,+ -M``"*1B2(AX0+``"*1B6(AX4+``"*1B:(AX8+``"*1B>(AX<+``"*1B&(AWH+ -M``"*1AZ(AWD+``"*1@R(AWL+``"*1BP\!'4-9L>'<@L`````ZPL[_V;'AW(+ -M```!`(I&'J@!="AFBX=R"P``9@T``6:)AW(+``"+1"0</13O_P!V"UZX`P`` -M`%^#Q`C#BD8>J`AT$F:+AW(+``!F#00`9HF'<@L``(I&'J@$=!)FBX=R"P`` -M9@T`(&:)AW(+``"*1A^H$'029HN'<@L``&8-0`!FB8=R"P``9HM'!F8]`P!U -M-&:+1@QFA<!T$F:+AW(+``!F#0@`9HF'<@L``(I&'Z@"=!)FBX=R"P``9@T0 -M`&:)AW(+```SP&:+1P:#^`MT!8/X#'4'N`$```#K`C/`A<!T&8I&'Z@!=!)F -MBX=R"P``9@T`$&:)AW(+``!FBT<&9CT-`'(>BD8?J`AT%V:+AW(+``!F#8`` -M9HF'<@L``.@I<___BX=L"P``A<!T%U?_4`R#Q`2%P'4,7K@!````7X/$",.0 -M9L='`A``BX=L"P``9H,X`74$QD<:`%XSP%^#Q`C#._\[_X'_`````%:+="0( -M9HN&<@L``&:I`$!T"K@!````7L.#QP`SP&:+!CU2E```=21FBT8"9CT@`'8: -MBH9\"P``A,!U"E;_EJ0+``"#Q`3^AGP+```SP%[#,\"+5"0$9HL"/5*4``!U -M*F:+0@)F/2``=B"*@GP+``"$P'06_LB(@GP+``"$P'4*4O^2J`L``(/$!,.0 -MC70F`#/`BU0D!&:+`CU2E```=1AFBT("9CT@`'8.4O^2K`L``(/$!,.#QP`S -MP,.0C70F`%<S_U:+="0,,\!FBP8]4I0``'4D9HM&`F8](`!V&E;_EK`+``"# -MQ`2+^(/_`7X)5N@+=O__@\0$B\=>7\.#QP`SP(M4)`1FBP(]4I0``'4@9HM" -M`F8](`!V%E+_DK`+``"#Q`2%P+@`````#Y7`PY`SP,.0@?\`````@?\````` -M,\"+5"0$9HL"/5*4``!U$V:+0@)F/2``=@E2Z*!U__^#Q`3#@?\`````@?\` -M````@^P0,\F+5"04BH$`````08/Y2XB$"D,0``!R[8J"@@L``(B"3!```(J" -M@@L``(B"=1```(J"W!```(B"7Q```(J"@PL``(B"31```(J"@PL``(B"=A`` -M`(J"W1```(B"8!```(J"A`L``(B"3A```(J"A`L``(B"=Q```(J"WA```(B" -M81```(J"A0L``(B"3Q```(J"A0L``(B">!```(J"WQ```(B"8A```(J"A@L` -M`(B"4!```(J"A@L``(B">1```(J"X!```(B"8Q```(J"APL``(B"41```(J" -MAPL``(B">A```(J"X1```(B"9!```(J"3!````R`B(),$```9L<$)`$`BX)D -M"P``9L=$)`Q+``5$$```B40D!(V"1!```(E$)`AFBX*\#@``9H7`=!)J`6H` -MC40D"%!2Z,UO__^#Q!"#Q!##._^-="8`4#/`5XM\)`Q69HM'`H7`#X2;```` -M@_@0#X2:````@_@P#X21````@_A0=`F#^&`/A<\```"*AWT+``"H`P^$FP`` -M`%>+AVP+``#_4"@STH/$!(OP)?__``!FBY>0$```*\)FB40D"&8]H`]V5XJ' -M?0L``"3\B(=]"P``:``!``!7BX=L"P``_U`<:@`SP&:+AY`0``"!YO__``!0 -M5FH":@!J!5?H1VW__X/$).LP._\SP%Y?@\0$PUZXZ`,``%^#Q`3#D(M$)`AF -M/;@+=A!FB;>0$```5^C5_?__@\0$BI>/$```BL+^PJ@'B)>/$```=1)H@``` -M`%>+AVP+``#_4!R#Q`A7BX=L"P``_U`0@\0$7E^#Q`3#D#O_@?\`````4XM$ -M)`AFBU`$9O](!&:%TG4*N/____];PX/'`(M4)`B+1"0,BPJ[`0````/9B1J* -M$8@06S/`PY`[_X'_`````(/L#%:+="049HM&`F8]$`!U"HN&;`L``(7`=1A> -MN`(```"#Q`S#._^X`0```%Z#Q`S#._^+1"089HL`)?__```]4I0``'7ABT0D -M&(N6;`L``&:+0`)FBQ(E__\``('B__\``#O"=<&+1"08@\`$B40D!(M$)!AF -MBT`$9HE$)`B*AGH+```\!'5?BXYH"P``BY9H"P``9HM)#('A__\``(')`(`` -M`&8+CG(+``!FB8YR"P``BU(@B9:L"P``BY9H"P``BU(8B9:P"P``BY9H"P`` -MBU(HB9:D"P``BY9H"P``BU(PZU&#QP"+CF@+``"+EF@+``!FBTD.9@N.<@L` -M`&:)CG(+``"+4B2)EJP+``"+EF@+``"+4AR)EK`+``"+EF@+``"+4BR)EJ0+ -M``"+EF@+``"+4C2)EJ@+``"-1"0$4&@`````5HN&;`L``/]0&(/$#%Z#Q`S# -M._^!_P````!0BT0D"%>*$(UX`832=29'BD__A,EU'D>*5_^$TG461XI7_X32 -M=0Y'BD__A,EU!HH'A,!T!S/`7X/$!,-?N`$```"#Q`3#._\[_X'_`````%>+ -M?"0(9HM'`F8]00!V/XM4)`Q25XN';`L``/]0"(M$)!2#Q`B%P'0E5^AQ:___ -MBX]@"P``48N'7`L``/]0/&;'1P0``&;'1P(B`(/$"%_#BU0D!(M$)`B)@I`+ -M``!FBT("9CU!`'(/:D!2BX)L"P``_U`<@\0(PSO_@?\`````BU0D!(M$)`B) -M@I0+``!FBT("9CU!`'8/:B!2BX)L"P``_U`<@\0(PSO_@?\`````5XM\)`A3 -MBD0D$(J??0L``(B'?0L``&:+1P)F/4$`=D4/OL,STHI4)!`SPJD#````=!)H -M``$``%>+AVP+``#_4!R#Q`B*1"00J`-T&?;#`W445XN';`L``/]0*&:)AY`0 -M``"#Q`1;7\,[_X'_`````%>+?"0(5F:+1P)F/4$`=BR+1"04A<!U),:'?@L` -M``%H@````%>+AVP+``#_4!RX`0```(/$"%Y?PX/'`%>-MY00``"+1"04N18` -M``"+^#/`\Z5?7E_#._\[_X'_`````(M$)`0/OX"\#@``PXUT)@"+3"0$9HM! -M`F8]4`!S#K@!````P[@"````PSO_#[^1O`X``(M$)`A*9HL`)?__```[PGW@ -M:@"+5"004HM$)!!04>C::O__,\"#Q!##C70F`(M4)`2X(`````^_DK0+```K -MPL.0@?\`````@?\`````5U:+="0,9HN&M`L``&8](`!\$5ZX`@```%_#D+@$ -M````7E_#9HN&<@L``&:I``%T$8M$)!B+5"04`\(]`````7?:9HM&`F8]00!S -M"%ZX`0```%_#9HN&F@L``&:I`@!T&S/`BTPD&&:+AI@+```[R'T*7K@#```` -M7\,[_XJ&N`L``+D?````(LB+5"00C0Q)P>$#C;P.O`L``(D7BU0D%(E7!&:+ -M5"089HE7"(M4)!R)5Q1FBT8"9CU0`'(.5U:+AFP+``#_4"2#Q`AF_X:T"P`` -MBI:X"P``_L(SP(B6N`L``%Y?PX/'`#O_@?\`````:@&+5"0(4HN";`L``/]0 -M!(/$",.!_P````"!_P````!05E.+="00BGPD%&:+1@)F/1``=`M;N`$```!> -M@\0$PV:+AG(+``!FJ0`@=4\SP(K'A<!T)X/X!'0L@_@0=">#^&1U"F:+1@9F -M/1,`=!BX`@```%M>@\0$PX/'`(J&>0L``*B`=!8SP&:+1@9(@_@2=PK_)(4D -M!P``@\<`6[@#````7H/$!,.0:@,SP&:+AG`+``"#P`(E__\``%"+AEP+``#_ -M4`0SP&:+AG`+``"#P`,E__\``%"+AEP+``#_4!R(1"07@\0,J`%T";@0```` -MZP<[_[@$````,]**USO"#X2?`0``,\"*1"0+@_`!)?\```!0,\!FBX9P"P`` -M@\`#)?__``!0BX9<"P``_U`$@\0(Z6T!``"0:/<````SP&:+AG`+``"#P!TE -M__\``%"+AEP+``#_4`0SP&:+AG`+``"#P!\E__\``%"+AEP+``#_4!R#Q`R* -MV/;#`70'N!````#K!;@$````,]**USO"#X0/`0``,\"*PX/P`27_````4#/` -M9HN&<`L``(/`'R7__P``4(N&7`L``/]0!(/$".G?````@\<`,\!FBX9P"P`` -M0"7__P``4(N&7`L``/]0'(/$!(K8]L,(=`FX$````.L'._^X!````#/2BM<[ -MP@^$GP```#/`BL.#\`@E_P```%`SP&:+AG`+``!`)?__``!0BX9<"P``_U`$ -M@\0(ZW0SP&:+AG`+``"#P!`E__\``%"+AEP+``#_4!R#Q`2*V/;#@'0'N!`` -M``#K!;@$````,]**USO"=#LSP(K#-8`````E_P```%`SP&:+AG`+``"#P!`E -M__\``%"+AEP+``#_4`2#Q`CK#(B^G0L``(B^G@L``(#_$'4/9HN6<@L``&:# -MR@'K#CO_9HN6<@L``&:!XO[_9HF6<@L``%LSP%Z#Q`3#D('_`````('_```` -M`(M4)`2*3"0(9HM"`F8]$`!T#K@!````P[@"````PSO_9HN"<@L``&:I""!U -M$H#Y#W?FBX)H"P``BT!$A<!U";@#````PX/'`#/`BL%04HN":`L``/]01#/` -M@\0(PX/'`%:+="0(4XI<)!!FBT8"9CT0`'006[@!````7L.X`P```%M>PV:+ -MAG(+``!FJ0`@=>LSP(K#@_@'?@L]_P````^%ZP$``#/`9HM&!DB#^`MWR_\D -MA7`'```SP(K#@_@"#X3+`0``@_@$#X2^````/?\````/A+<!``!FBX9R"P`` -M9JD$`'66BX9D"P``/13O_P!WB8J6>0L``(#*`XB6>0L``(#B[XB6>0L``.DW -M`0``,\"*PX/X!'1#/?\````/A&P!``!FBX9R"P``9JD,``^%1____XN&9`L` -M`#T4[_\`#X<V____BI9Y"P``@,H#B)9Y"P``Z>T````[_XJ6>0L``(#B_(B6 -M>0L``.G7````,\"*PX/X!'03/?\````/A&+____I!P$``(/'`(J6>0L``(#B -M_(B6>0L``(#*$(B6>0L``.F>````@\<`,\"*PX/X!'0G/?\````/A=````"* -MEGD+``"`R@*(EGD+``"`XN^(EGD+``#K;3O_BI9Y"P``@.+]B)9Y"P``@,H0 -MB)9Y"P``ZU$[_X#[!'1*Z8X````[_S/`BL.#^`1T*SW_````=7QFBX9R"P`` -M9JD`$`^%5_[__XJ6>0L``(#*`HB6>0L``.L1._^*EGD+``"`XOV(EGD+``"+ -MAF@+``"+0$B%P'02,\"*PU!6BX9H"P``_U!(@\0(BT0D%(B>>@L``(J6>0L` -M`(@0BH9Y"P``J`%T%F:+EG(+``!F@<H``>L46[@"````7L-FBY9R"P``9H'B -M__YFB99R"P``6S/`7L-0N/\#``!75E.+7"04BW0D&&8CQB7__P``/4`"```/ -MA/,````]@`(```^$Z````#W``@``#X3=````/0`#```/A-(````](`,```^$ -MQP```#U``P``#X2\````/6`#```/A+$```"+QB7__P``4/]3'(/$!"7B```` -M@_@B#X65````B\8E__\``(/``R7__P``4/]3'(/$!"7`````@_A`=76+QB7_ -M_P``@\`$)?__``!0_U,<@\0$J2````!U6(O&)?__``"#P`DE__\``%#_4QS! -MX`B+^(O&)?__``"#P`@E__\``%#_4QR#Q`@+QV:%P'0C9JD!`'4=@>;__P`` -M@\8,@>;__P``5O]3'(/$!*D(````=`DSP%M>7X/$!,-;7E^X`0```(/$!,.- -M="8`@^P05U9358U$)!^+;"0DB40D%&CX#```_U4<,_^#Q`2*V(UU'&IA_Q9H -M^`P``/\6,]*#Q`B*TSO0=`F_`0```.L0._]'@_\R?-N+1"04,_^(&(7_#X7) -M````BD0D'Z@!#X6]````C40D'XE$)!1H^@P``/]5'#/_@\0$BMB-=1QJ8?\6 -M:/H,``#_%C/2@\0(BM,[T'0*OP$```#K$8/'`$>#_S)\VHM$)!0S_X@8A?]U -M<6CX#```_U4<B$0D(X/$!"7_````J?````!T$X/@#H/X"+@`````#Y3`ZP6# -MQP`SP(7`=3UJ#FCX#```_U4$:F'_51QH^`P``/]5'(/$$(/X#G4>:@!H^`P` -M`/]5!&IA_U4<:/@,``#_51R#Q!"%P'0-,\!=6UY?@\00PX/'`%U;7K@!```` -M7X/$$,.#QP"#[`Q6BW0D%%-6Z`$&``"#Q`2%P'4C5NBD_O__@\0$A<!T";H" -M````ZQ@[_U;H7@8``(/$!(7`=`>Z`0```.L",]*%TG1"@_H!=$&#^@)U+FH0 -M:/@,``#_5@2+5"0LBTPD*%)1BT0D+%!6Z.$#``!J`(O8:/@,``#_5@2#Q""+ -MPUM>@\0,PSO_,]OK\HM4)"2+3"0@4E&+1"0D4%;HCP(``(O8@\00Z]8[_X'_ -M`````%>+1"0(5HMT)!2+$(M\)!"!^B"!``!T$%ZX`P```%_#N`$```!>7\,S -MP(I&"%`SP&:+1@)0,\!FBP90Z/#J__^#Q`R+R(7)=->*1@Z$P'709HM&!&:I -M`0!TQF:+%HM$)`QFB5<$9HM6`F:)5P:*5CR(5R"+5C"#XOR)5RB*5@R(5RUF -MBU8$9HE7+HI1"(@75U90_U$4@\0,7E_#D(UT)@"#[`Q3BT0D%(L0@?H@@0`` -M=!);N/____^#Q`S#,\!;@\0,PY"+1"0<P>`,B]@E__\```6`#```)?__``!0 -MBT0D&/]0)%#H%NK__XE$)`R#Q`B%P'3',\!FB\,%A`P``"7__P``4(M$)!C_ -M4!R#Q`2I`0```'2FBTPD&(M$)!Q14(M4)!R+1"0,4O]03(/$#%N#Q`S#@?\` -M````@?\`````@^P,5XM\)!13BQ>!^B"!``!T%5NX_____U^#Q`S#._\SP%M? -M@\0,PXM$)""#P`<E_P```%!HE@```/]7!&@!`0``_U<<P>`(:``!``"+V/]7 -M'&H`"\.+V&B6````_U<$@>/__P``4^A4Z?__B40D*(/$'(7`=*F+3"0<BT0D -M(%%05XM$)!C_4$R#Q`Q;7X/$#,,[_X'_`````('_`````%=64XMT)!0SP(M< -M)"2*1@A0,\!FBT8"4#/`9HL&4.@MZ?__@\0,B_B%_W0*BT0D((L7A=!U"K@! -M````6UY?PY!FBQ:+3"009HE3!&:+5@)FB5,&9@^V5"089HE3#&8/ME0D'&:) -M4PZ*5CR(4R"+5C"#XOR)4RB*5@R(4RUFBU8$9HE3+HI7"(@34U91_U<4@\0, -M6UY?PSO_._^!_P````"#[%@SR5=64U6+1"1PBW0D=(E$)&"+1"1LB4PD9('F -MP(\``(E,)%B-6`R->"2+1"18P>`+#0```(!0B40D8&CX#```_Q,S[8/$"(ET -M)!"+="1<C44`"\90:/@,``#_$VC\#```_Q>)1"P@@\0,@\4$@_U`?-V+5"1@ -MBW0D$%)6BT0D8(M,)'2#X!]0BT0D9,'X!27_````4(U$)"104>B]_O__@\08 -MA<!T-8/X`G5+BT0D7(/(!%!H^`P``/\3BT0D("7__P``@\@$)?\```!0BT0D -M>&C\#```_U`$@\00_T0D9(M$)'B+5"1D.]!]'XM,)&"#P32)3"1@BT0D6$") -M1"18/0`"```/C!____]=6UZ+1"187X/$6,,[_XUT)@"#[&`SR5=64U6+1"1X -MB4PD:(E$)&"+1"1TB4PD9(UP!(UX((M$)&0E_P```%!H^@P``/\6QT0D9``` -M``"#Q`B+1"1<P>`(#0#```"+Z"7__P``4/\7@\0$/8T0```/A<H```")?"00 -MBT0D=(ET)!0S]HU8)+\0````B\6-%+4`````)?__```+PB7__P``4/\3B42T -M'(/$!$8[]WS<B\Z+="04BU0D8('A_P```%*+A"2`````)<"/``"+?"044(M$ -M)&11BXPD@````"7_````4(U$)"A04>AD_?__@\08A<!T+(/X`G5%BT0D'('E -M__\``"7__P``@\T$@\@$@>7__P``)?\```!05?\6@\0(_T0D:(N$)(````"+ -M5"1H.]!],HM,)&"#P32)3"1@BT0D7$")1"1<@_@0#XP`____BU0D9$*)5"1D -M@?H``0``#XS/_O__75M>BT0D7%^#Q&##5U9356:+;"08BW0D%(O%)?__``!0 -M_U8<,_^#QAR*V(/$!&IA_Q:+Q27__P``4/\6,]*#Q`B*TSO0=`VX`0```%U; -M7E_#@\<`1X/_,GS4BT0D'(@875M>,\!?PY"-="8`5XM\)`AH^`P``/]7)(/$ -M!*D```!_=4AH````@&CX#```_U<,:F'_5QQH^`P``/]7)(/$$#T```"`=21H -MIP,`@&CX#```_U<,:F'_5QQH^`P``/]7)(/$$#VD`P"`=`4SP%_#D&H`:/@, -M``#_5PR#Q`BX`0```%_#._^!_P````!7BWPD"&CX#```_U<D@\0$J0```']U -M2&@```"`:/@,``#_5PQJ8?]7'&CX#```_U<D@\00/0```(!U)&BD`P"`:/@, -M``#_5PQJ8?]7'&CX#```_U<D@\00/:0#`(!T!3/`7\.0:@!H^`P``/]7#(/$ -M"+@!````7\,[_X'_`````(M4)`12Z/;^__^#Q`2%P'47BTPD!%'HE??__X/$ -M!(7`=`ZX`@```,.X`0```,,[_XM$)`10Z$;___^#Q`2%P'7G,\##@?\````` -M@?\`````BTPD!&:+00)F/1``=`ZX`0```,.X`P```,,[_V:+009F/0T`<NZ+ -M5"0(,\")D1`+``"+5"0,B9$4"P``BU0D$(F1&`L``,.058OL5E>+=0B+?0R+ -M31#SI%]>7<-`*",I=')L;&0N8R`D4F5V:7-I;VXZ("`@,2XP("`D`$]L:6-O -M;2!44DQ,1"`Q+C(N,"`*)`I0"E0*,`I`"F`*<`H)`PH+0`*``L`"``,@`T`# -M8`,"```````````````````````````````````````````````````````` -M``````````````````````#\%P``:1@``&D8``!I&```8!@``&D8``!(&``` -M:1@``#P8``!I&```:1@``&D8```(&```Z%X```!@``#H8@``H&,``$Y?```( -M9```3E\```,````````````````````````````````````````````````` -M`````````````````````````$#_______\`````!``````````````````` -M````````````````````````````````````````````````````````!!`` -M9`````D#"@L%!@<$`0`````````!````$D`0``P`#``````````````````` -M```````````````````````````````````````````````````````````` -M```)"@L,#P,%!P4&!P`!`P0$"`@`!0@&"`<(``$"`P@(!`,$!P4&``$"`@`` -M`$:2```"````$D`0``P`#``````````````````````````````````````` -M```````````````````````````````````````````$````-I0```,````" -M```````````````````````````````````````````````````````````` -M``````````````````````````````@```"$"@``!`````)````````````` -M```````````````````````````````````````````````````````````` -M````````````````"````(4*```%`````D`````````````````````````` -M```````````````````````````````````````````````````````````` -M```(````A@H```8````"0``````````````````````````````````````` -M`````````````````````````````````````````````````!`````]@PD! -M!P```!)`$``,``P````````````````````````````````````````````` -M````````````````````````````````````$````#V#"0((````$D`0``P` -M#``````````````````````````````````````````````````````````` -M``````````````````````!`````C1`!``H``0`(#``````````````````` -M```````````````````````````````````````````````````````````` -M`````````$````"-$`$`"P`"`P@,*(3^__[_```````````````````````` -M````````````````````````````````````````````````````````@``` -M`(T0`0`,``,`"`P(!/[_```````````````````````````````````````` -M`````````````````````````````````````````````0``C1`$``T``@`` -M``@````````````````````````````````````````````````````````` -M```````````````````````````````"``"-$`0`#@`#````"``````````` -M```````````````````````````````````````````````````````````` -M``````````````````0``(T0!P`/``$!```(```````````````````````` -M```````````````````````````````````````````````````````````` -M````@```C1`%`!(``@````@````````````````````````````````````` -M```````````````````````````````````````````````````(``"-$`@` -M$P`!`@``"``````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````00,`````@`(```````,)P]/0#`#B$`0`*0`,`````````!L`!``$` -M!L`"@```#,`+$`!:>&M1````$D`,`#(P,C`R,#DV6#4W-@``7/\``&C_``#X -M_P``B``!`(@``0"(``$`B``!`(@``0!<_P``\``!`/```0#P``$`6`$!`%@! -M`0!8`0$`7/\``%S_``!8`0$`6`$!`!P"`0!8`@$`L`(!`!`#`0!,`P$`3`,! -M`$P#`0!,`P$`'`(!`)@#`0"D`P$`I`,!``0````,`````0```%-#3P`!``$` -M`0````@``0(``````````````````````0``````````````!`#Q_P`````` -M``````````,``0`````````````````#``(``````````````````P`#```` -M``````````````,`!``````````````````#``4``````````````````P`& -M``````````````````,`!P`````````````````#``@````````````````` -M`P`)``````````````````,`"@`,```````````````$`/'_%````-`-`0!$ -M`````@`!`",```!P#`$`7`````(``0`O````4`D!`)@````"``$`-@```/`) -M`0`<`0```@`!`$`````0"P$`8`$```(``0!*````4`T!`'@````"``$`60`` -M`-`,`0!X`````@`!`&4```"`!0$`0`$```(``0!Q````X/D``#@````"``$` -M>0```'#W``!,`0```@`!`(8```"@\@``9`````(``0"0````</(``#`````" -M``$`F0```##R```\`````@`!`*0```"P[```6`$```(``0"U`````.<``#0! -M```"``$`Q@```.#6``#H`````@`!`-T```#PU0``Y`````(``0#S````0,<` -M``P(```"``$`_P```&#$``#8`@```@`!``H!``"PPP``K`````(``0`@`0`` -M`,,``*0````"``$`-0$``""Z```8`````@`!`#\!``#0N0``'`````(``0!) -M`0``L+D``!P````"``$`4@$``%`$`0`L`0```@`!`&`!``"`^P``2`````(` -M`0!G`0``<+,``)0````"``$`<P$``/"O``#<`````@`!`'\!``"PKP``0``` -M``(``0"*`0``<*\``$`````"``$`E@$``#"O``!``````@`!`*`!``"PK@`` -M@`````(``0"M`0``X*P``-0````"``$`N0$``-"J```(`@```@`!`,<!```` -MJ@``R`````(``0#3`0``(*D``-0````"``$`X`$``""G``#X`0```@`!`.T! -M``#`K0``\`````(``0#Y`0``D*(``(0$```"``$`!`(``/"Y```H`````@`! -M``P"``"@H0``\`````(``0`6`@``V`8``$L````!``(`)P(``)0&``!$```` -M`0`"`#,"``"`U0``<`````(``0!(`@``T+```*`"```"``$`6@(``$0&``!0 -M`````0`"`&8"``#T!0``4`````$``@!R`@``I`4``%`````!``(`?@(``%0% -M``!0`````0`"`(H"``#PP@``$`````(``0">`@``@+D``"P````"``$`J0(` -M`/#```#X`0```@`!`+H"```$!0``4`````$``@#&`@``X/$``$@````"``$` -MT@(``)#Q``!(`````@`!`-X"``"T!```4`````$``@#H`@``$/$``"@````" -M``$`\P(``.#P```D`````@`!`/\"``"`\```8`````(``0`+`P``9`0``%`` -M```!``(`%0,``$#Q``!$`````@`!`"8#````\```@`````(``0`R`P``%`0` -M`%`````!``(`/`,``,0#``!0`````0`"`$<#```0[@``L`````(``0!4`P`` -MH.\``%0````"``$`80,``,#N``#4`````@`!`&H#``!T`P``4`````$``@!U -M`P``T.D``&0````"``$`A`,``"0#``!0`````0`"`(X#``!PZ0``6`````(` -M`0"=`P``U`(``%`````!``(`IP,``$#H```D`0```@`!`+8#``!`[```;``` -M``(``0#"`P``0.H``/P!```"``$`RP,``(0"``!0`````0`"`-4#``!0Y@`` -ML`````(``0#@`P```.8``$P````"``$`\0,``%#A``#D`````@`!```$``!0 -MY0``L`````(``0`1!```X-T``"0````"``$`'P0``(#=``!@`````@`!`"X$ -M```0W@``.`,```(``0`_!```0.(```P#```"``$`2`0``#0"``!0`````0`" -M`%($``#0W```I`````(``0!=!```$-P``,`````"``$`;@0``*#;``!D```` -M`@`!`'T$``!0VP``2`````(``0".!```,-D``!0"```"``$`EP0``.0!``!0 -M`````0`"`*$$``#<`0``"`````$``@"M!```S`$``!`````!``(`N00``,0! -M```(`````0`"`,$$``"\`0``"`````$``@#.!```T-<``&`!```"``$`UP0` -M`&P!``!0`````0`"`.$$``!H`0``!`````$``@#H!```9`$```0````!``(` -M]`0``%P!```(`````0`"`/T$``!0SP``+`````(``0`0!0```-4``(`````" -M``$`)P4``(#/```$!````@`!`#<%``"0TP``:`$```(``0!,!0``)`$``#@` -M```!``(`7@4``!@!```*`````0`"`'$%``!`N@``8`(```(``0"#!0``@,`` -M`'`````"``$`F04``*"\``#@`@```@`!`*@%``"`OP````$```(``0"\!0`` -MX````#@````!``(`S04``'"A```H`````@`!`-D%```@H0``2`````(``0#E -M!0``<)\``+`!```"``$`]@4``/"<``!X`@```@`!``@&``!0FP``E`$```(` -M`0`>!@``T)<``'@#```"``$`-`8``""7``!0`````@`!`$@&``"`D```8`4` -M``(``0!=!@``P(\``,`````"``$`;P8``*"/```@`````@`!`(4&``!@CP`` -M0`````(``0"9!@``,(\``"@````"``$`K`8``(".```H`````@`!`,4&```P -MC```*`````(``0#5!@```(P``"@````"``$`X@8``-"$``"(`P```@`!`/0& -M``"0A```/`````(``0#\!@```(0``(P````"``$`!@<``-"#```H`````@`! -M`!0'```0@P``N`````(``0`D!P``X((``"@````"``$`+@<``#!^``"H!``` -M`@`!`#<'``!@?```R`$```(``0!%!P``T'H``(P!```"``$`50<``%!V``!T -M!````@`!`%T'```P=@``&`````(``0!E!P``T'4``%@````"``$`;0<``(!U -M``!0`````@`!`','``#P=```D`````(``0![!P``X',``#@````"``$`AP<` -M`,!S```@`````@`!`)`'``!P<P``1`````(``0"=!P``$',``%P````"``$` -MJ`<``(!P``"8`````@`!`+$'``!P;P``0`````(``0"W!P```&\``"P````" -M``$`P`<``.!N```<`````@`!`,P'````;0``X`$```(``0#C!P``0&P``+P` -M```"``$`]`<``(!K``"T`````@`!``0(``#P:@``C`````(``0`-"````&H` -M`.0````"``$`&`@`````````!````0`#`"$(``#@:```'`$```(``0`I"``` -M@&@``%@````"``$`-P@```"-``!X`0```@`!`$8(```@9```3`$```(``0!4 -M"```8(@``"`!```"``$`:@@``."5```X`0```@`!`'X(``!PEP``5`````(` -M`0"-"````%X``!0&```"``$`G0@``)!=``!H`````@`!`*H(``"06`````4` -M``(``0"V"```P%<``-`````"``$`QP@``+".``"``````@`!`-4(``"PC``` -M3`````(``0#E"```8(P``$P````"``$`^@@``+"*``!0`0```@`!``8)``"` -MB0``*`$```(``0`2"0``L%0``!`#```"``$`)@D``)!0```4!````@`!`#8) -M``!`3P``1`$```(``0!$"0``,$X``!`!```"``$`40D``*!,``"0`0```@`! -M`%\)````3```E`````(``0!M"0``X&\``)0````"``$`=0D``"!+``#@```` -M`@`!`'T)``"`2@``E`````(``0"'"0``L$@``-`!```"``$`E`D``&!&``!, -M`@```@`!`)P)``!010``$`$```(``0"E"0```$4``$P````"``$`K0D``*!" -M``!@`@```@`!`+0)``#`/@``V`,```(``0#!"0``<&<``!`!```"``$`SPD` -M`+`T```<`@```@`!`-P)```P,P``@`$```(``0#I"0``8#```$0"```"``$` -M]@D``(`F``"(!@```@`!``@*``#0%0````,```(``0`5"@``<&4``#P!```" -M``$`(@H````5``#$`````@`!`"T*``!0#```L`@```(``0`W"@``L`H``*`! -M```"``$`1`H``+!F``"X`````@`!`$\*``#P"0``N`````(``0!@"@``('(` -M`.P````"``$`<`H``+!O```L`````@`!`'@*``"`!P``<`(```(``0"""@`` -MX`(``)0$```"``$`D0H``#!O```\`````@`!`)8*````````V`(```(``0"? -M"@``C`````$````!``(`J`H``!`M``!$`P```@`!`+@*``"`(P``^`(```(` -M`0#("@``\!X``)`$```"``$`V0H``+`R``!T`````@`!`.D*``#0&```(`8` -M``(``0#Y"@``('0``+`````"``$`!`L``-`V``#L!P```@`!``P+````<@`` -M'`````(``0`6"P``T'0``"`````"``$`(PL``"!Q``#@`````@`!`"P+``!4 -M````.`````$``@!#"P``1@````X````!``(`40L``$(````$`````0`"`%H+ -M```Z````"`````$``@!F"P``,@````@````!``(`;PL``"`````2`````0`" -M`'<+````````(`````$``@!["P``8+8``%0"```2``$`A0L``$#W```D```` -M$@`!`)\+``!0_0``#````!(``0"Q"P``L/T``!0````2``$`P@L``%#V```\ -M````$@`!`,X+``#0^P``4````!(``0#9"P``\/P``%@````2``$`[`L``,`& -M`0"H````$@`!`/D+``!0_```*````!(``0`3#```$+0``%`"```2``$`'0P` -M`-#]``#H````$@`!`#(,``#`_@``%````!(``0!!#```(/P``"@````2``$` -M5@P``+`(`0"4````$@`!`&D,``#`^```&`$``!(``0!S#```(`X!`$@````2 -M``$`@@P``&@.`0``````$``!`(P,````]P``-````!(``0"E#```X/X``+0" -M```2``$`LPP``!`(`0"4````$@`!`,<,```@\P``V`(``!(``0#8#```<`<! -M`)P````2``$`YPP``!#S```(````$@`!`/@,```@^@``6`$``!(``0`�`` -M@/P``&@````2``$`'@T``&#]``!,````$@`!`#$-``"@`0$`8````!(``0!# -M#0``D/8``"P````2``$`60T``,"X``"T````$@`!`&X-````]@``4````!(` -M`0![#0````(!`%`"```2``$`APT``,#V``!`````$@`!``!T<FQL9&5L9BYO -M`'1R;&QD+F,`4$-)0DE/4U!R97-E;G0`4$-)0VAE8VM296<`06-C97!T`%!# -M23%3=V5E<`!00TDR4W=E97``3VQD4$-),5!R97-E;G0`4$-),5!R97-E;G0` -M4$-),E!R97-E;G0`1V5T0V]D90!396YD5%101G)A;64`4$-)3&]O:W5P`$QO -M;VMU<$E$`$QO;VMU<%1Y<&4`0V]N9C,Q,S-3;&]T0F%S90!#;VYF,S$R.5-L -M;W1"87-E`$)U;&QS97EE5W)I=&524$Q%15!R;VT`0G5L;'-E>65296%D4E!, -M1450<F]M`$1R86EN4EA&:69O`&1R86EN7W1X<G@`2&%W:V5Y95=R:71E4E!, -M1450<F]M`$AA=VME>65296%D4E!,1450<F]M`$5%35-$96QA>0!%15!O<G1/ -M=70`1450;W)T26X`3D4R,#`P4')E<V5N=`!Z97)O97,`07-I8T5%4F5A9$(` -M07-I8T5%5W)I=&4`1457<FET94)I=`!%14-L;V-K1&]W;@!%14-L;V-K57`` -M145#;&]C:U!U;'-E`$5%5W)I=&53=&]P`$5%5W)I=&5286YD;VT`07-I8T5% -M4F5A9%<`1457<FET95-T87)T`$5%1'5M;7E7<FET90!%15=R:71E0GET90!% -M15)E861">71E`$5%1&5L87D`145296%D0FET`%12;&QD5%105&5M<&QA=&4` -M061A<'1E<DQI<W0`0G5L;'-E>65(5T-O;F9I9TEN:70`0G5L;'-E>6500TE# -M;VYF:6<`3T,S-30P5&%B;&4`3T,S,C4P5&%B;&4`3T,S,30Q5&%B;&4`3T,S -M,30P5&%B;&4`2&%W:V5Y94A70V]N9FEG26YI=`!%;F%B;&500TDT`$AA=VME -M>6500TE#;VYF:6<`3T,S,3,Y5&%B;&4`1&ES86)L95!#23,`4')E<V5N=%!# -M23,`4$-),U1A8FQE`$5N86)L95!#23(`1&ES86)L95!#23(`4')E<V5N=%!# -M23(`4$-),E1A8FQE`%!#23%(5T-O;F9I9TEN:70`1&ES86)L95!#23$`4$-) -M,51A8FQE`$5)4T$R5&%B;&4`0V]N9C,Q,S-3;&]T`$5)4T%/<&5N26YI=`!# -M;VYF,S$S,P!%25-!,51A8FQE`$U#03-3;&]T0V]N9FEG`$U#03-486)L90!- -M0T$R4VQO=$-O;F9I9P!-0T$R5&%B;&4`34-!,5-L;W1#;VYF:6<`34-!3W!E -M;DEN:70`0V]N9C,Q,CD`34-!,51A8FQE`$E303-3971$34$`25-!,U-E=$EN -M=&5R<G5P=`!)4T$S2%=/<&5N26YI=`!)4T$S2%=#;VYF:6=);FET`$5N86)L -M93,Q,3A024\`1&ES86)L93,Q,3A024\`25-!,U!)3TEN=&5R<G5P=`!#;VYF -M,S$Q.`!)4T$S5&%B;&4`25-!,E-E=$1-00!)4T$R4V5T26YT97)R=7!T`$E3 -M03)(5T]P96Y);FET`$E303)(5T-O;F9I9TEN:70`0V]N9C,Q,3<`25-!,E1A -M8FQE`$E303)$34%":71S`$E303));G1":71S`$E303)$34$`25-!,DEN=$QE -M=F5L`$-O;F8S,3$U`$E303%486)L90!)4T%$34$`25-!26YT3&5V96P`145? -M4U!%140`0G5L;'-E>65"87-I8U)E<V5T`$)U;&QS97EE0V]N;F5C=$]P=&EO -M;G,`0G5L;'-E>65297-T87)T`$)U;&QS97EE0V]D941O=VYL;V%D`$)U;&QS -M97EE26YT97)F86-E`%181')A:6Y&<F%M94AE861E<@!(87=K97EE0F%S:6-2 -M97-E=`!(87=K97EE0V]N;F5C=$]P=&EO;G,`2&%W:V5Y95)E<W1A<G0`2&%W -M:V5Y94-O9&5$;W=N;&]A9`!(87=K97EE26YT97)F86-E`$1I<V%B;&500TDT -M`%!R97-E;G100TDT`$AA=VME>65);G1E<G)U<'0`5')A;G-M:71);G1E<G)U -M<'0`4W!I;C-296-E:79E26YT97)R=7!T`%-P:6XR4F5C96EV94EN=&5R<G5P -M=`!(87=K97EE4F5A9$U!0U1I;65R`$AA=VME>653971U<%1R86YS;6ET`%-E -M;F10;VQL26UM961I871E`$AA=VME>65#;&]S94-O;7!L971E9`!(87=K97EE -M4V5T=7!#;VUM86YD`$AA=VME>65.;T]P97)A=&EO;@!(87=K97EE4F5A9$5R -M<F]R0V]U;G1E<G,`2&%W:V5Y94U!0U)E<V5T`$AA=VME>65#;&]S90!(87=K -M97EE2%=/<&5N26YI=`!'971,;VYG`$%S:6-#:&5C:P!00TE(5T]P96Y);FET -M`%!#25!)3TEN=&5R<G5P=`!%;F%B;&500TD`1&]00TE024\`4$-)4$E/4')E -M<V5N=`!00TE(5T-O;F9I9TEN:70`061P5'EP90!%14=E=$1/`$5%0VQE87(` -M1453970`0VAE8VM)9`!'971435-3:&]R=`!30T)#;&5A<@!3=&%R=$-O;6UA -M;F0`5$U30V]M;6%N9`!T;7-?;W5T,@!D;W5T,@!T;7-S:&]R=`!3=&]R95IE -M<F]E<P!2971U<FY#;VUP;&5T961"=69F97)S`%!R;VUI<V-U;W5S0VAE8VL` -M5')A8V54;V]L4F5M;W9E`$-20T-H96-K`$-O;7!U=&5#4D,`0U)#5&%B;&4` -M0U)#26YI=`!3971U<%1R86YS;6ET`%5P9&%T94-O=6YT97)S`$5X96-);G1E -M<G)U<'0`2&%W:V5Y95)E861087)A;65T97)S`$AA=VME>653971U<%)E8V5I -M=F4`2&%W:V5Y94U!0TEN:70`4W1A='5S26YT97)R=7!T`$AA=VME>65297-E -M=`!(87=K97EE4&]L;`!(87=K97EE57-E<D-L;W-E`$AA=VME>65296]P96X` -M2&%W:V5Y95-E=$=R;W5P`$AA=VME>653971&=6YC=&EO;F%L`$AA=VME>65/ -M<&5N`$EN:71#;VUM86YD`$AA=VME>653=&%R=$-O;6UA;F0`3VQD4$E/26YT -M97)R=7!T`%!R97-E;G1/;&1024\`16YA8FQE36%S=&5R`$1I<V%B;&5-87-T -M97(`4')E<V5N=$UA<W1E<@!T;7-?:6XR`%=A:71024\`4F5A9$5%0DE!`%1- -M4U!#24-O;F9I9P!296%D0DE!`$-H96-K0DE!`$5%4&%U<V4`145296%D`$5% -M3W5T3F]R;4-M9`!2971U<FY"=69F97)S`%)E;W!E;E!H87-E,@!296]P96Y0 -M:&%S934`4F5O<&5N4&AA<V4V`%1R86YS9F5R26YI=$)L;V-K`%1-4TEN=&5R -M<G5P=`!297-E=$)U9F9E<G,`4FEN9U-T871U<P!4>%)X4W=E97``061A<'1E -M<D-H96-K`%-E;F13=&%T=7,`0V]M;6%N9$-O;7!L971E9`!297-P;VYD17)R -M;W)L;V<`=&US;&]N9P!$;T-O;6UA;F0`4F5A9%!A<F%M971E<G,`9&EN,@!4 -M35-#:&5C:P!%141)0V]P>0!435-296%D34%#5&EM97(`5$U34V5T=7!296-E -M:79E`%1-4U-E='5P5')A;G-M:70`5$U34V5T=7!#;VUM86YD`%1-4T-O9&5$ -M;W=N;&]A9`!435--04-);FET`%1-4U!O;&P`5$U37T-H96-K`%1-4U5S97)# -M;&]S90!435-297-E=`!0;W=E<DU!0TA?5$U326YT97)F86-E`$Y%,C`P,%!O -M<G1486(`26YT3&5V96P`:7AT;W1M<V)A<V4`:7AT;V)A<V4`5%)L;&1)1`!? -M5E\`5%)L;&1&:6YD`%12;&QD26YT97)R=7!T4&]S=%-E<G9I8V4`5%)L;&14 -M<F%N<VUI=$9R964`5%)L;&1296-E:79E1G)E90!44FQL9$5N86)L90!44FQL -M9$-L;W-E`%12;&QD1V5T4W1A=&ES=&EC<P!44FQL9$9I;F100TD`5%)L;&13 -M971&=6YC=&EO;F%L061D<F5S<P!44FQL9$]P96X`5%)L;&1296-E:79E1G)A -M9VUE;G0`5%)L;&1%;65R9V5N8WD`5%)L;&13971'<F]U<$%D9')E<W,`5%)L -M;&1-0T%3;&]T0V]N9FEG`%12;&QD4&]L;`!44FQL9$%D9$UE;6]R>0!44FQL -M9$-O<'D`5%)L;&1);G1E<G)U<'10<F5397)V:6-E`%12;&QD4V5T4W!E960` -M5%)L;&1%25-!4VQO=$-O;F9I9P!44FQL9$%D87!T97));FET`%12;&QD4$-) -M0V]N9FEG`%12;&QD061A<'1E<E-I>F4`5%)L;&1$;W=N;&]A9`!44FQL9%-E -M=%!R;VUI<V-U;W5S36]D90!44FQL9%1R86YS;6ET1G)A;64`5%)L;&13971) -M;G1E<G)U<'0`5%)L;&1);G1E<G)U<'10<F5S96YT`%12;&QD24]!9&1R97-S -M0V]N9FEG`%12;&QD1&ES86)L90!44FQL9%-E=$1-00!44FQL9$EN=&5R<G5P -M=%-E<G9I8V4``"YT97AT`"YD871A`"YB<W,`+FYO=&4`+G-Y;71A8@`N<W1R -M=&%B`"YS:'-T<G1A8@`N<F5L+G1E>'0`+G)E;"YD871A`"YC;VUM96YT`'L( -M```!T@``.PH```'4``#V%P```0,``#@F```!U```@S````'4``!B,0```=0` -M`&0R```!U```[#(```'4``![-````<D``*`U```!Z```J#4```'H``"Q-0`` -M`>@``+LU```!Z```Q34```'H``#/-0```>@``#<V```!R```UCH```''``#C -M/@```=@```L_```!V```(S\```'8``!+/P```=@``&,_```!V```BS\```'8 -M``"C/P```=@``,L_```!V```&T````'8``!!0````=@``)%````!V```MT`` -M``'8```U00```=@``%9!```!V```?D$```'8``"600```=@``+Y!```!V``` -M#D(```'8```T0@```=@``-E"```!V```,D,```'8``!:0P```=@``*I#```! -MV```T$,```'8``!X1````=@``*!$```!V```N$0```'8``#F1````=@``.)> -M```!`P``XF@```&F``!":0```:8``%!I```!I@``86D```&F``!N:0```:8` -M`(5I```!I@``C6D```&F``"6:0```:8``)QI```!I@``I6D```&F``"S:0`` -M`:8``,9I```!I@``U&D```&F```Y:@```:8``&=J```!I@``>6H```&F``"+ -M:@```:8``)UJ```!I@``R6H```&F``"`<P```=0``)EU```!V```R'4```'8 -M``#I=0```=@``"!V```!V```Q8L```'H``#&F````OH``"29```"^@``:)D` -M``+Z``".F0```OH```RS```!<```\;8```$W``"WMP```><``"JX```!-P`` -M+;D```$W``#-R@```78``&;8```!;P``#MD```%N``!NV@```6L``.+:```! -M:@``9MP```%K``!^W````6D``"3=```!:@``,]T```%H``#.YP```>4``/[H -M```!YP``(.D```'G``"NZ0```><```[J```!YP``8^L```'G``"/ZP```><` -M`&7M```!YP``C.T```'E``"C[@```><``%#O```!YP``//(```$W``![\@`` -M`3<``+_R```!-P``>_<```$V``!B^P```14``%7_```!`P``5`(!``$#``!8 -M`````>(``%P````!X0``8`````'@``!D`````=\``&@````!W@``;`````'= -M``!P`````=P``'0````!VP``>`````':``!\`````=D``)`````!`@``E``` -M``$"``"8`````0(``)P````!`@``H`````$"``"D`````0(``*@````!`@`` -MK`````$"``"P`````0(``+0````!`@``N`````$"``"\`````0(``,`````! -M`@``Q`````$"``#(`````0(``,P````!`@``T`````$"``#4`````0(``-@` -M```!`@``W`````$"``#D`````:\``.@````!L0``[`````&-``#P`````;`` -M`/0````!K0``^`````%Z``#\`````88````!```!@P``!`$```&L```(`0`` -M`8(```P!```!>0``$`$```%X```4`0```7<``"@!```!KP``+`$```&Q```P -M`0```8T``#0!```!L```.`$```&M```\`0```70``$`!```!A@``1`$```&# -M``!(`0```:P``$P!```!@@``4`$```%S``!4`0```7(``%@!```!<0``@`$` -M``%L``"$`0```;@``(@!```!RP``C`$```&Y``"0`0```;P``)@!```!NP`` -MH`$```&Z``"L`0```>,``/@!```!9@``_`$```&X`````@```<L```0"```! -MN0``"`(```&\```0`@```;L``!@"```!N@``'`(```%E```@`@```60``"0" -M```!XP``*`(```%C```L`@```6(``$@"```!8```3`(```%?``!0`@```<L` -M`%0"```!N0``6`(```&\``!<`@```5X``&`"```!NP``9`(```%=``!H`@`` -M`;H``&P"```!7```<`(```%;``!T`@```>,``'@"```!6@``?`(```%9``"8 -M`@```5<``)P"```!N```H`(```'+``"D`@```;D``*@"```!O```L`(```&[ -M``"X`@```;H``,`"```!5@``Q`(```'C``#0`@```54``.@"```!5P``[`(` -M``&X``#P`@```<L``/0"```!N0``^`(```&\`````P```;L```@#```!N@`` -M$`,```%6```4`P```>,``"`#```!4P``.`,```%7```\`P```;@``$`#```! -MRP``1`,```&Y``!(`P```;P``%`#```!NP``6`,```&Z``!@`P```58``&0# -M```!XP``<`,```%1``"(`P```4\``(P#```!N```D`,```'+``"4`P```;D` -M`)@#```!O```H`,```&[``"H`P```;H``+`#```!3@``M`,```'C``#``P`` -M`4T``-@#```!3P``W`,```&X``#@`P```<L``.0#```!N0``Z`,```&\``#P -M`P```;L``/@#```!N@````0```%.```$!````>,``!`$```!30``*`0```'` -M```L!````8\``#0$```!N0``/`0```%*``!$!````9```$P$```!20``4`0` -M``&.``!4!````>,``'@$```!P```?`0```&/``"`!````8\``(0$```!1P`` -MB`0```%'``",!````48``)`$```!1@``E`0```%%``"8!````44``)P$```! -MDP``H`0```&.``"D!````>,``,@$```!P```S`0```&/``#0!````<L``-0$ -M```!0P``V`0```%#``#<!````4(``.`$```!0@``Y`0```&0``#H!````9`` -M`.P$```!DP``\`0```&.``#T!````>,``!@%```!0```(`4```%^```H!0`` -M`7T``#`%```!?```.`4```$_```\!0```3X``$`%```!BP``1`4```%[``!H -M!0```4```'`%```!?@``>`4```%]``"`!0```7P``(@%```!/P``C`4```$^ -M``"0!0```8L``)0%```!>P``N`4```%```#`!0```7X``,@%```!?0``T`4` -M``%\``#8!0```3\``-P%```!/@``X`4```&+``#D!0```7L```@&```!0``` -M$`8```%^```8!@```7T``"`&```!?```*`8```$_```L!@```3X``#`&```! -MBP``-`8```%[``!8!@```3D``&`&```!?@``:`8```%]``!P!@```7P``'@& -M```!/P``?`8```$X``"`!@```8L``(0&```!=0``E`8```%M``"8!@```6<` -M`)P&```!80``H`8```%8``"D!@```50``*@&```!4@``K`8```%0``"P!@`` -M`4P``+0&```!2P``N`8```%(``"\!@```40``,`&```!00``Q`8```$]``#( -M!@```3P``,P&```!.P``T`8```$Z```D!P```0(``"@'```!`@``+`<```$" -M```P!P```0(``#0'```!`@``.`<```$"```\!P```0(``$`'```!`@``1`<` -M``$"``!(!P```0(``$P'```!`@``4`<```$"``!4!P```0(``%@'```!`@`` -M7`<```$"``!@!P```0(``&0'```!`@``:`<```$"``!L!P```0(``'`'```! -M`@``=`<```$"``!X!P```0(``'P'```!`@``@`<```$"``"$!P```0(``(@' -M```!`@``C`<```$"``"0!P```0(``)0'```!`@``F`<```$"``"<!P```0(` -M`'AP9S1P;'5S($`H(RD@<W1D9&5F+F@@,C`N,2`Y-"\Q,B\P-"``86-O;7`Z -M(%)E;&5A<V4@-2XP+C!A(#$V36%R.34`;W!T:6TZ(%)E;&5A<V4@-2XP+C!A -M(#$V36%R.34`:3,X-F%S.B!296QE87-E(#4N,"XP82`Q-DUA<CDU`$`H(RD@ -M=&-O<'DN<R`Q+C`@.3@O,#@O,3$`:3,X-F%S.B!296QE87-E(#4N,"XP82`Q -M-DUA<CDU```````````````````````````````````````````````````` -M``````$````!````!@````````!`````?`X!````````````$``````````' -M`````0````,`````````O`X!`*`'``````````````0`````````#0````@` -M```#`````````%P6`0``!``````````````$`````````!(````'```````` -M``````!<%@$`'````````````````0`````````8`````@`````````````` -M>!8!`*`0```&````Z@````0````0````(`````,``````````````!@G`0"= -M#0`````````````!`````````"@````#``````````````"U-`$`3P`````` -M`````````0`````````R````"0``````````````!#4!`%@#```%`````0`` -M``0````(````/`````D``````````````%PX`0`8"```!0````(````$```` -L"````$8````!``````````````!T0`$`N@```````````````0`````````` -` -end diff --git a/sys/contrib/dev/oltr/if_oltr.c b/sys/contrib/dev/oltr/if_oltr.c deleted file mode 100644 index 268ad8a80204..000000000000 --- a/sys/contrib/dev/oltr/if_oltr.c +++ /dev/null @@ -1,1515 +0,0 @@ -/* - * Copyright (c) 1998, Larry Lile - * All rights reserved. - * - * For latest sources and information on this driver, please - * go to http://anarchy.stdio.com. - * - * Questions, comments or suggestions should be directed to - * Larry Lile <lile@stdio.com>. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice unmodified, this list of conditions, and the following - * disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id: if_oltr.c,v 1.4 1999/04/24 20:24:02 peter Exp $ - */ - - -#include "pci.h" -#include "oltr.h" -#include "opt_inet.h" -#include "bpfilter.h" - -#if (NOLTR + NPCI) > 0 - -/*#define TRlldInlineIO*/ - -#define ISA_ADAPTERS (OC_3115 | OC_3117 | OC_3118) -#define PCI_ADAPTERS (OC_3133 | OC_3136 | OC_3137 | \ - OC_3139 | OC_3140 | OC_3141 | \ - OC_3250 | OC_3540 ) - -#define PCI_VENDOR_OLICOM 0x108D - -char *AdapterName[] = { - /* 0 */ "Olicom XT Adapter [unsupported]", - /* 1 */ "Olicom OC-3115", - /* 2 */ "Olicom ISA 16/4 Adapter (OC-3117)", - /* 3 */ "Olicom ISA 16/4 Adapter (OC-3118)", - /* 4 */ "Olicom MCA 16/4 Adapter (OC-3129) [unsupported]", - /* 5 */ "Olicom MCA 16/4 Adapter (OC-3129) [unsupported]", - /* 6 */ "Olicom MCA 16/4 Adapter (OC-3129) [unsupported]", - /* 7 */ "Olicom EISA 16/4 Adapter (OC-3133)", - /* 8 */ "Olicom EISA 16/4 Adapter (OC-3133)", - /* 9 */ "Olicom EISA 16/4 Server Adapter (OC-3135)", - /* 10 */ "Olicom PCI 16/4 Adapter (OC-3136)", - /* 11 */ "Olicom PCI 16/4 Adapter (OC-3136)", - /* 12 */ "Olicom PCI/II 16/4 Adapter (OC-3137)", - /* 13 */ "Olicom PCI 16/4 Adapter (OC-3139)", - /* 14 */ "Olicom RapidFire 3140 16/4 PCI Adapter (OC-3140)", - /* 15 */ "Olicom RapidFire 3141 Fiber Adapter (OC-3141)", - /* 16 */ "Olicom PCMCIA 16/4 Adapter (OC-3220) [unsupported]", - /* 17 */ "Olicom PCMCIA 16/4 Adapter (OC-3121, OC-3230, OC-3232) [unsupported]", - /* 18 */ "Olicom PCMCIA 16/4 Adapter (OC-3250)", - /* 19 */ "Olicom RapidFire 3540 4/16/100 Adapter (OC-3540)" -}; - -#include <sys/param.h> -#include <sys/systm.h> -#include <sys/proc.h> -#include <sys/sockio.h> -#include <sys/malloc.h> -#include <sys/mbuf.h> -#include <sys/socket.h> -#include <sys/syslog.h> -#include <sys/kernel.h> -#include <sys/interrupt.h> - -#include <net/ethernet.h> -#include <net/if.h> -#include <net/if_arp.h> -#include <net/iso88025.h> -#include <net/if_media.h> - -#if NBPFILTER > 0 -#include <net/bpf.h> -#endif - -#if NPNP > 0 -#include <i386/isa/pnp.h> -#endif - -#include <machine/clock.h> -#include <machine/md_var.h> -#include <i386/isa/isa_device.h> - -#if NPCI > 0 -#include <pci/pcivar.h> -#include <pci/pcireg.h> -#endif - -#include "contrib/dev/oltr/trlld.h" - -#ifndef TRLLD_SPEED_AUTO -#define TRLLD_SPEED_AUTO 0 -#endif - -#define MIN(A,B) (((A) < (B)) ? (A) : (B)) -#define MIN3(A,B,C) (MIN(A, (MIN(B, C)))) - -void *oltr_malloc(ssize_t, TRlldAdapterConfig_t *); - -/* - * Glue functions prototypes for PMW kit IO - */ - -#ifndef TRlldInlineIO -static void DriverOutByte __P((unsigned short, unsigned char)); -static void DriverOutWord __P((unsigned short, unsigned short)); -static void DriverOutDword __P((unsigned short, unsigned long)); -static void DriverRepOutByte __P((unsigned short, unsigned char *, int)); -static void DriverRepOutWord __P((unsigned short, unsigned short *, int)); -static void DriverRepOutDword __P((unsigned short, unsigned long *, int)); -static unsigned char DriverInByte __P((unsigned short)); -static unsigned short DriverInWord __P((unsigned short)); -static unsigned long DriverInDword __P((unsigned short)); -static void DriverRepInByte __P((unsigned short, unsigned char *, int)); -static void DriverRepInWord __P((unsigned short, unsigned short *, int)); -static void DriverRepInDword __P((unsigned short, unsigned long *, int)); -#endif /*TRlldInlineIO*/ -static void DriverSuspend __P((unsigned short)); -static void DriverStatus __P((void *, TRlldStatus_t *)); -static void DriverCloseCompleted __P((void *)); -static void DriverStatistics __P((void *, TRlldStatistics_t *)); -static void DriverTransmitFrameCompleted __P((void *, void *, int)); -static void DriverReceiveFrameCompleted __P((void *, int, int, void *, int)); - -typedef struct tx_buf { - int index; - int count; - char *buf; - struct mbuf *m; -} tx_buf_t; - -typedef struct rx_buf { - int index; - char *buf; -} rx_buf_t; - -#ifndef EXTRA_OLTR -#if NPCI > 0 -#define EXTRA_OLTR 8 -#else -#define EXTRA_OLTR 0 -#endif /* NPCI */ -#endif /* EXTRA_OLTR */ - -#ifndef OLTR_PROMISC_MODE -#define OLTR_PROMISC_MODE (TRLLD_PROM_LLC) -#endif - -#define ALL_OPTIONS (IFM_TOK_ETR | IFM_TOK_SRCRT | IFM_TOK_ALLR | IFM_TOK_DTR | IFM_TOK_CLASSIC | IFM_TOK_AUTO) - -/* List sizes MUST be a power of 2 */ -#define TX_LIST_SIZE 16 -#define RX_LIST_SIZE 16 -#define TX_LIST_MASK (TX_LIST_SIZE - 1) -#define RX_LIST_MASK (RX_LIST_SIZE - 1) -#define RX_BUFFER_LEN (8*1024) -#define TX_BUFFER_LEN (8*1024) - -struct oltr_softc { - struct arpcom arpcom; - struct ifmedia ifmedia; - TRlldAdapterConfig_t *config; - TRlldAdapter_t *TRlldAdapter; - int unit; - u_short PromiscMode; - u_short AdapterMode; - int hw_state; -#define HW_UNKNOWN 0 /* initial/absent state */ -#define HW_FOUND 1 /* found, not initialized */ -#define HW_BAD 2 /* fatal error */ -#define HW_FAILED 3 /* closed eg. by remove, allow manual reopen */ -#define HW_LOADING 4 -#define HW_CLOSING 5 -#define HW_CLOSING2 6 -#define HW_CLOSED 7 -#define HW_OPENING 8 -#define HW_OPEN 9 -#define HW_ERROR 10 /* temporary error */ - - u_long GroupAddress; - u_long FunctionalAddress; - int poll_adapter; - - int tx_next; - int tx_avail; - tx_buf_t tx_buffer[TX_LIST_SIZE]; - TRlldTransmit_t tx_frame; - - int rx_next; - int rx_avail; - rx_buf_t rx_buffer[RX_LIST_SIZE]; - - struct callout_handle oltr_ch; - struct callout_handle poll_ch; - -}; - -static struct oltr_softc oltr_softc[NOLTR + EXTRA_OLTR]; - -/* - * Driver function prototypes - */ - -static int oltr_probe __P((struct isa_device *)); -static int oltr_attach __P((struct isa_device *)); -static void oltr_init __P((struct oltr_softc *)); -static void oltr_intr __P((int)); -static void oltr_start __P((struct ifnet *)); -static void oltr_stop __P((struct oltr_softc *)); -static int oltr_ioctl __P((struct ifnet *, u_long, caddr_t)); - -static int oltr_attach_common __P((struct oltr_softc *)); - -void oltr_timeout __P((void *)); -void adapter_poll __P((void *)); - -struct isa_driver oltrdriver = { - oltr_probe, - oltr_attach, - "oltr", - 0 -}; - -int isa_cards = 0; - -#if NPCI > 0 -static u_long oltr_count = NOLTR; -static const char *oltr_pci_probe __P((pcici_t, pcidi_t)); -static void oltr_pci_attach __P((pcici_t, int)); -static void oltr_pci_intr __P((void *)); -static void oltr_pci_shutdown __P((int, void *)); - -static struct pci_device oltr_device = { - "oltr", - oltr_pci_probe, - oltr_pci_attach, - &oltr_count, - NULL -}; - -COMPAT_PCI_DRIVER(oltr_pci, oltr_device); -int pci_cards = 0; -#endif /* NPCI */ - -static int oltr_ifmedia_upd __P((struct ifnet *)); -static void oltr_ifmedia_sts __P((struct ifnet *, struct ifmediareq *)); - -static TRlldDriver_t oltrLldDriver = { - TRLLD_VERSION, -#ifndef TRlldInlineIO - DriverOutByte, - DriverOutWord, - DriverOutDword, - DriverRepOutByte, - DriverRepOutWord, - DriverRepOutDword, - DriverInByte, - DriverInWord, - DriverInDword, - DriverRepInByte, - DriverRepInWord, - DriverRepInDword, -#endif /*TRlldInlineIO*/ - DriverSuspend, - DriverStatus, - DriverCloseCompleted, - DriverStatistics, - DriverTransmitFrameCompleted, - DriverReceiveFrameCompleted, -}; - -TRlldAdapterConfig_t oltr_config[NOLTR + EXTRA_OLTR]; - -void * -oltr_malloc(Size, Adapter) - ssize_t Size; - TRlldAdapterConfig_t *Adapter; -{ - - /* If the adapter needs memory below 16M for DMA then use contigmalloc */ - if (Adapter->mode & TRLLD_MODE_16M) /* Adapter using ISA DMA buffer below 16M */ - return(contigmalloc(Size, M_DEVBUF, M_NOWAIT, 0ul, 0xfffffful, 1ul, 0x10000ul)); - else - return(malloc(Size, M_DEVBUF, M_NOWAIT)); -} - -/* - * Driver Functions - */ - -static int -oltr_probe(is) - struct isa_device *is; -{ - static int find_completed = 0, assigned[NOLTR]; - struct oltr_softc *sc = &oltr_softc[is->id_unit]; - int i; - - printf("oltr%d: oltr_probe\n", is->id_unit); - - /* Make life easy, use the Olicom supplied find function on the first probe - * to probe all of the ISA adapters. Then give them to each unit as requested. - * Try to match the adapters to units based on the iobase, but if iobase? then - * just give out the next available adapter. - */ - if (!find_completed) { - isa_cards = TRlldFind(&oltrLldDriver, &oltr_config[0], ISA_ADAPTERS, NOLTR); - /*for (i = 0; i < isa_cards; i++) { - printf("TRlldFind: card %d - %s MAC %6D\n", i + 1, AdapterName[oltr_config[i].type], oltr_config[i].macaddress, ":"); - }*/ - for (i = 0; i < NOLTR; i++) - assigned[i] = 0; - find_completed = 1; - } - - sc->unit = is->id_unit; - sc->hw_state = HW_UNKNOWN; - - if (find_completed && ((isa_cards == 0) || (is->id_unit > isa_cards))) - return(0); - - if (((is->id_iobase < 0xa00) || (is->id_iobase > 0xbe0)) && (is->id_iobase != 0xffffffff)) { - printf("oltr%d: port address impossible (0x%X)\n", is->id_unit, is->id_iobase); - return(0); - } - - /* Auto assign lowest available card not already in use */ - if (is->id_iobase == 0xffffffff) { - printf("oltr%d: auto assigning card.\n", is->id_unit); - for (i = 0; assigned[i]; i++); - assigned[i] = 1; - sc->config = &oltr_config[i]; - is->id_iobase = sc->config->iobase0; /* Claim our port space */ - if (!is->id_irq) - is->id_irq = (1 << sc->config->interruptlevel); /* Claim our interrupt */ - is->id_intr = (inthand2_t *)oltr_intr; - if ((is->id_drq == 0xffffffff) && (sc->config->dmalevel != TRLLD_DMA_PIO)) - is->id_drq = sc->config->dmalevel; /* Claim our dma channel */ - printf("oltr%d: <%s> [%6D]\n", is->id_unit, AdapterName[sc->config->type], sc->config->macaddress, ":"); - sc->hw_state = HW_FOUND; - return(1); - } else { - /* Assign based on iobase address provided in kernel config */ - for (i = 0; i < NOLTR; i++) { - if (is->id_iobase == oltr_config[i].iobase0) { - if (assigned[i]) { - printf("oltr%d: adapter (0x%X) already assigned.\n", is->id_unit, is->id_iobase); - return(0); - } - assigned[i] = 1; - sc->config = &oltr_config[i]; - if (is->id_irq == 0) - is->id_irq = (1 << sc->config->interruptlevel); /* Claim our interrupt */ - is->id_intr = (inthand2_t *)oltr_intr; - if ((is->id_drq == 0xffffffff) && (sc->config->dmalevel != TRLLD_DMA_PIO)) - is->id_drq = sc->config->dmalevel; /* Claim our dma channel */ - printf("oltr%d: <%s> [%6D]\n", is->id_unit, AdapterName[sc->config->type], sc->config->macaddress, ":"); - sc->hw_state = HW_FOUND; - return(1); - } - } - } - return(0); /* Card was not found */ -} - -#if NPCI > 0 -static const char * -oltr_pci_probe(config_id, device_id) - pcici_t config_id; - pcidi_t device_id; -{ - u_char PCIConfigurationSpace[64]; - u_long command; - int i, j, rc; - - printf("oltr: oltr_pci_probe\n"); - - j = NOLTR + pci_cards; - - if (pci_cards == EXTRA_OLTR) - return(NULL); - - if (((device_id & 0xffff) == PCI_VENDOR_OLICOM) && - ((((device_id >> 16) & 0xffff) == 0x0001) || - (((device_id >> 16) & 0xffff) == 0x0004) || - (((device_id >> 16) & 0xffff) == 0x0005) || - (((device_id >> 16) & 0xffff) == 0x0007) || - (((device_id >> 16) & 0xffff) == 0x0008))) { - - for (i = 0; i < 64; i++) - PCIConfigurationSpace[i] = pci_cfgread(config_id, i, /*bytes*/1); - - rc = TRlldPCIConfig(&oltrLldDriver, &oltr_config[j], PCIConfigurationSpace); - - if ((rc == TRLLD_PCICONFIG_OK) || (rc == TRLLD_PCICONFIG_SET_COMMAND)) { - if (rc == TRLLD_PCICONFIG_SET_COMMAND) { - printf("oltr: setting bus-master mode\n"); - command = pci_conf_read(config_id, PCIR_COMMAND); - pci_conf_write(config_id, PCIR_COMMAND, (command | PCIM_CMD_BUSMASTEREN)); - } - pci_cards++; - return (AdapterName[oltr_config[j].type]); - } else { - if (rc == TRLLD_PCICONFIG_FAIL) - printf("oltr: TRlldPCIConfig failed!\n"); - if (rc == TRLLD_PCICONFIG_VERSION) - printf("oltr: wrong LLD version\n"); - } - } - return(NULL); -} -#endif /* NPCI */ - -static int -oltr_attach(is) - struct isa_device *is; -{ - struct oltr_softc *sc = &oltr_softc[is->id_unit]; - int rc; - - sc->unit = is->id_unit; - - if (!oltr_attach_common(sc)) - return(0); - - /* If the kernel config does not match the current card configuration then - * adjust the card settings to match the kernel. - */ - if ((ffs(is->id_irq) - 1) != sc->config->interruptlevel) { - rc = TRlldSetInterrupt(sc->TRlldAdapter, is->id_irq); - if (rc != TRLLD_CONFIG_OK) { - printf("oltr%d: Unable to change adapter interrupt level (%x)\n", sc->unit, rc); - return(0); - } - } - - /* Set dma level, fall back to pio if possible. (following SCO driver example) */ - if (is->id_drq != sc->config->dmalevel) { - rc = TRlldSetDMA(sc->TRlldAdapter, is->id_drq, &sc->config->mode); - if (rc != TRLLD_CONFIG_OK) { - if ((sc->config->dmalevel != TRLLD_DMA_PIO) && - (TRlldSetDMA(sc->TRlldAdapter, TRLLD_DMA_PIO, &sc->config->mode) != TRLLD_CONFIG_OK)) { - printf("oltr%d: unable to change dma level from %d to %d (%x)\n", sc->unit, - sc->config->dmalevel, is->id_drq, rc); - } - printf("oltr%d: Unable to change adapter dma level, using PIO mode (%x)\n", sc->unit, rc); - sc->config->dmalevel = TRLLD_DMA_PIO; - rc = TRlldSetDMA(sc->TRlldAdapter, is->id_drq, &sc->config->mode); - } - is->id_irq = sc->config->dmalevel; - } - return(1); -} - -#if NPCI > 0 -static void -oltr_pci_attach(config_id, unit) - pcici_t config_id; - int unit; -{ - struct oltr_softc *sc = &oltr_softc[unit]; - - sc->unit = unit; - sc->config = &oltr_config[unit]; - sc->hw_state = HW_FOUND; - - printf("oltr%d: mac address [%6D]\n", sc->unit, sc->config->macaddress, ":"); - - if (!oltr_attach_common(sc)) - return; - - /* Map our interrupt */ - if (!pci_map_int(config_id, oltr_pci_intr, sc, &net_imask)) { - printf("oltr%d: couldn't map interrupt\n", unit); - return; - } -} -#endif /* NPCI */ - -static int -oltr_attach_common(sc) - struct oltr_softc *sc; -{ - struct ifnet *ifp = &sc->arpcom.ac_if; - u_int bufsize; - int rc, i, j; - - /*printf("oltr%d: attach_common called\n", sc->unit);*/ - - /* Allocate adapter memory buffer */ - bufsize = TRlldAdapterSize(); - sc->TRlldAdapter = (TRlldAdapter_t *)oltr_malloc(bufsize, sc->config); - if (sc->TRlldAdapter == NULL) { - printf("oltr%d: Unable to allocate adapter memory block (%d bytes)\n", sc->unit, bufsize); - } - /*printf("oltr%d: Adapter memory block (%p %d bytes)\n", sc->unit, sc->TRlldAdapter, bufsize);*/ - - /* Setup transmit pool */ - for (i = 0; i < TX_LIST_SIZE; i++) { - sc->tx_buffer[i].index = i; - sc->tx_buffer[i].buf = (char *)oltr_malloc(TX_BUFFER_LEN, sc->config); - /* If we have a failure then free everything and get out */ - if (!sc->tx_buffer[i].buf) { - printf("oltr%d: Unable to allocate transmit buffers.\n", sc->unit); - for (j = 0; j < i; j++) - free(sc->tx_buffer[j].buf, M_DEVBUF); - return(0); - } - } - sc->tx_next = 0; - sc->tx_avail = TX_LIST_SIZE; - sc->tx_frame.FragmentCount = 0; - - /* Setup receive pool */ - for (i = 0; i < RX_LIST_SIZE; i++) { - sc->rx_buffer[i].index = i; - sc->rx_buffer[i].buf = (char *)oltr_malloc(RX_BUFFER_LEN, sc->config); - /* If we have a failure then free everything and get out */ - if (!sc->rx_buffer[i].buf) { - printf("oltr%d: Unable to allocate receive buffers.\n", sc->unit); - for (j = 0; j < i; j++) - free(sc->rx_buffer[j].buf, M_DEVBUF); - return(0); - } - } - sc->rx_next = 0; - sc->rx_avail = RX_LIST_SIZE; - /*printf("oltr%d: Allocated receive buffers\n", sc->unit); */ - - /* Set up adapter polling mechanism */ - sc->poll_adapter = 1; - callout_handle_init(&sc->poll_ch); - sc->poll_ch = timeout(adapter_poll, (void *)sc->unit, (1*hz)/1000); - callout_handle_init(&sc->oltr_ch); - - /* Initialize adapter */ - rc = TRlldAdapterInit(&oltrLldDriver, sc->TRlldAdapter, kvtop(sc->TRlldAdapter), - (void *)sc->unit, sc->config); - if (rc != TRLLD_INIT_OK) { - switch (rc) { - case TRLLD_INIT_NOT_FOUND: - printf("oltr%d: Adapter not found or malfunctioning.\n", sc->unit); - sc->hw_state = HW_BAD; - return(0); - case TRLLD_INIT_UNSUPPORTED: - printf("oltr%d: Adapter not supported by low level driver.\n", sc->unit); - sc->hw_state = HW_UNKNOWN; - return(0); - case TRLLD_INIT_PHYS16: - printf("oltr%d: Adapter memory block above 16M, must be below 16M.\n", sc->unit); - return(0); - case TRLLD_INIT_VERSION: - printf("oltr%d: Low level driver version mismatch.\n", sc->unit); - return(0); - default: - printf("oltr%d: Unknown initilization error occoured (%x).\n", sc->unit, rc); - return(0); - } - } - - /* Download Adapter Microcode */ - /*printf("oltr%d: Downloading adapter microcode...", sc->unit);*/ - sc->hw_state = HW_LOADING; - switch(sc->config->mactype) { - case TRLLD_MAC_TMS: /* TMS microcode */ - rc = TRlldDownload(sc->TRlldAdapter, TRlldMacCode); - break; - case TRLLD_MAC_HAWKEYE: /* Hawkeye microcode */ - rc = TRlldDownload(sc->TRlldAdapter, TRlldHawkeyeMac); - break; - case TRLLD_MAC_BULLSEYE: /* Bullseye microcode */ - rc = TRlldDownload(sc->TRlldAdapter, TRlldBullseyeMac); - break; - default: - printf("oltr%d: unknown mactype %d\n", sc->unit, sc->config->mactype); - return(0); - } - /*if (rc == TRLLD_DOWNLOAD_OK) - printf("done\n");*/ - if ((rc == TRLLD_DOWNLOAD_ERROR) || (rc == TRLLD_STATE)) { - printf("oltr%d: Adapter microcode download failed! (rc = %x)\n", sc->unit, rc); - sc->hw_state = HW_BAD; - return(0); - } - - TRlldSetSpeed(sc->TRlldAdapter, TRLLD_SPEED_AUTO); - - sc->PromiscMode = 0; - sc->AdapterMode = 0; - - /* Do the ifnet initialization */ - ifp->if_softc = sc; - ifp->if_unit = sc->unit; - ifp->if_name = "oltr"; - ifp->if_output = iso88025_output; - ifp->if_init = (if_init_f_t *)oltr_init; - ifp->if_start = oltr_start; - ifp->if_ioctl = oltr_ioctl; - ifp->if_flags = IFF_BROADCAST | IFF_MULTICAST | IFF_SIMPLEX; - bcopy(sc->config->macaddress, sc->arpcom.ac_enaddr, sizeof(sc->config->macaddress)); - - /* Set up common ifmedia options */ - ifmedia_init(&sc->ifmedia, 0, oltr_ifmedia_upd, oltr_ifmedia_sts); - - ifmedia_add(&sc->ifmedia, IFM_TOKEN | IFM_AUTO, 0 , NULL); - ifmedia_add(&sc->ifmedia, IFM_TOKEN | IFM_TOK_UTP4, 0 , NULL); - ifmedia_add(&sc->ifmedia, IFM_TOKEN | IFM_TOK_UTP16, 0 , NULL); - - ifmedia_set(&sc->ifmedia, IFM_TOKEN | IFM_AUTO); - - if_attach(ifp); - iso88025_ifattach(ifp); - -#if NBPFILTER > 0 - bpfattach(ifp, DLT_IEEE802, sizeof(struct iso88025_header)); -#endif - - printf("oltr%d: Adapter modes - ", sc->unit); - if (sc->config->mode & TRLLD_MODE_16M) printf("TRLLD_MODE_16M "); - if (sc->config->mode & TRLLD_MODE_PHYSICAL) printf("TRLLD_MODE_PHYSICAL "); - if (sc->config->mode & TRLLD_MODE_FIXED_CFG) printf("TRLLD_MODE_FIXED_CFG "); - if (sc->config->mode & TRLLD_MODE_SHORT_SLOT) printf("TRLLD_MODE_SHORT_SLOT "); - if (sc->config->mode & TRLLD_MODE_CANNOT_DISABLE) printf("TRLLD_MODE_CANNOT_DISABLE "); - if (sc->config->mode & TRLLD_MODE_SHARE_INTERRUPT) printf("TRLLD_MODE_SHARE_INTERRUPT "); - if (sc->config->mode & TRLLD_MODE_MEMORY) printf("TRLLD_MODE_MEMORY "); - printf("\n"); - - return(1); -} - -#if NPCI > 0 -static void -oltr_pci_shutdown(howto, sc) - int howto; - void *sc; -{ - printf("oltr: oltr_pci_shutdown called\n"); -} -#endif /* NPCI */ - -static int -oltr_ifmedia_upd(ifp) - struct ifnet *ifp; -{ - struct oltr_softc *sc = ifp->if_softc; - struct ifmedia *ifm = &sc->ifmedia; - - if (IFM_TYPE(ifm->ifm_media) != IFM_TOKEN) - return(EINVAL); - - switch(IFM_SUBTYPE(ifm->ifm_media)) { - case IFM_AUTO: - TRlldSetSpeed(sc->TRlldAdapter, TRLLD_SPEED_AUTO); - break; - case IFM_TOK_UTP4: - TRlldSetSpeed(sc->TRlldAdapter, TRLLD_SPEED_4MBPS); - break; - case IFM_TOK_UTP16: - TRlldSetSpeed(sc->TRlldAdapter, TRLLD_SPEED_16MBPS); - break; - default: - return(EINVAL); - } - - if (IFM_TYPE_OPTIONS(ifm->ifm_media) & IFM_TOK_ETR) - printf("oltr%d: ETR not implemented\n", sc->unit); - if (IFM_TYPE_OPTIONS(ifm->ifm_media) & IFM_TOK_SRCRT) - printf("oltr%d: source-routing not implemented\n", sc->unit); - if (IFM_TYPE_OPTIONS(ifm->ifm_media) & IFM_TOK_ALLR) - printf("oltr%d: all source routes not implemented\n", sc->unit); - if (IFM_TYPE_OPTIONS(ifm->ifm_media) & IFM_TOK_DTR) { - sc->AdapterMode |= TRLLD_MODE_FORCE_TXI; - sc->AdapterMode &= ~TRLLD_MODE_FORCE_TKP; - } - if (IFM_TYPE_OPTIONS(ifm->ifm_media) & IFM_TOK_CLASSIC) { - sc->AdapterMode |= TRLLD_MODE_FORCE_TKP; - sc->AdapterMode &= ~TRLLD_MODE_FORCE_TXI; - } - if (IFM_TYPE_OPTIONS(ifm->ifm_media) & IFM_TOK_AUTO) - sc->AdapterMode &= ~(TRLLD_MODE_FORCE_TXI | TRLLD_MODE_FORCE_TKP); - - if (IFM_TYPE_OPTIONS(ifm->ifm_media) & ~ALL_OPTIONS) - return(EINVAL); - - return(0); -} - -static void -oltr_ifmedia_sts(ifp, ifmr) - struct ifnet *ifp; - struct ifmediareq *ifmr; -{ - struct oltr_softc *sc = ifp->if_softc; - struct ifmedia *ifm = &sc->ifmedia; - - ifmr->ifm_active = IFM_TYPE(ifm->ifm_media)|IFM_SUBTYPE(ifm->ifm_media)|IFM_TYPE_OPTIONS(ifm->ifm_media); - - return; -} - -void -oltr_timeout(token) - void *token; -{ - struct oltr_softc *sc = &oltr_softc[(int)token]; - int unit = (int)token, s; - - s = splimp(); - - printf("oltr%d: adapter timed out (%x)\n", unit, sc->hw_state); - - splx(s); -} - - -void -adapter_poll(token) - void *token; -{ - int unit = (int)token, poll_timeout = 0, s; - struct oltr_softc *sc = &oltr_softc[unit]; -#if 0 - static int rx_buffers = 0, tx_buffers = 0, rc; -#endif - - s = splimp(); - - /* Check to make sure we are not polling a dead card */ - if ((sc->hw_state == HW_BAD) || (sc->hw_state == HW_UNKNOWN)) { - sc->poll_adapter = -1; - splx(s); - return; - } - - /*printf("oltr%d: adapter poll.\n", unit);*/ - - /* If the adapter is to be polled again, then set up - * next timeout poll - */ - if (sc->poll_adapter) { - poll_timeout = TRlldPoll(sc->TRlldAdapter); - sc->poll_ch = timeout(adapter_poll, (void *)unit, (poll_timeout * hz)/1000); - } -#if 0 - rc = TRlldReceiveFree(sc->TRlldAdapter); - if (rx_buffers != rc) { - printf("oltr%d: %d receive buffers available\n", sc->unit, rc); - rx_buffers = rc; - } - rc = TRlldTransmitFree(sc->TRlldAdapter); - if (tx_buffers != rc) { - printf("oltr%d: %d transmit buffers available\n", sc->unit, rc); - tx_buffers = rc; - } -#endif - - splx(s); -} - -static void -oltr_init(sc) - struct oltr_softc *sc; -{ - struct ifnet *ifp = &sc->arpcom.ac_if; - int i, rc; - - /*printf("oltr%d: oltr_init\n", sc->unit);*/ - - /* - * Adapter should be freshly downloaded or previously closed before - * bringing it back on line. - */ - if ((sc->hw_state != HW_CLOSED) && (sc->hw_state != HW_LOADING) && (sc->hw_state != HW_CLOSING2)) { - printf("oltr%d: adapter not ready to be opened (%d).\n", sc->unit, sc->hw_state); - return; - } - - /* Allocate and set up the DMA channel */ - if (sc->config->dmalevel != TRLLD_DMA_PIO) { - rc = isa_dma_acquire(sc->config->dmalevel); - isa_dmacascade(sc->config->dmalevel); - } - - /* Open the adapter */ - sc->hw_state = HW_OPENING; - rc = TRlldOpen(sc->TRlldAdapter, sc->arpcom.ac_enaddr, sc->GroupAddress, - sc->FunctionalAddress, ifp->if_mtu + 52, sc->AdapterMode); - if (rc != TRLLD_OPEN_OK) { - printf("oltr%d: Adapter failed to open (rc = %x)\n", sc->unit, rc); - sc->hw_state = HW_FAILED; - } else { - /*printf("oltr%d: adapter opening...\n", sc->unit);*/ - /*ifp->if_flags |= (IFF_UP | IFF_RUNNING);*/ - ifp->if_flags &= ~IFF_OACTIVE; - } - sc->oltr_ch = timeout(oltr_timeout, (void *)sc->unit, 30*hz); - tsleep((void *)sc->unit, 1, "oltrop", 30*hz); - - /* Give the receive buffers to the adapter */ - for (i = 0; i < RX_LIST_SIZE; i++) { - rc = TRlldReceiveFragment(sc->TRlldAdapter, - (void *)sc->rx_buffer[sc->rx_next & RX_LIST_MASK].buf, - kvtop(sc->rx_buffer[sc->rx_next & RX_LIST_MASK].buf), - RX_BUFFER_LEN, - (void *)sc->rx_buffer[sc->rx_next & RX_LIST_MASK].index); - if (rc != TRLLD_RECEIVE_OK) { - printf("oltr%d: Adapter refused fragment %d (rc = %d).\n", sc->unit, i, rc); - break; - } else { - sc->rx_avail--; - } - sc->rx_next++; - } - sc->tx_frame.FragmentCount = 0; - - return; -} - -static void -oltr_intr(unit) - int unit; -{ - struct oltr_softc *sc = &oltr_softc[unit]; - int rc; - - /*printf("oltr%d: oltr_intr\n", unit);*/ /* Too noisy */ - rc= TRlldInterruptService(sc->TRlldAdapter); - if (rc == TRLLD_NO_INTERRUPT) - printf("oltr%d: interrupt not serviced.\n", unit); -} - -#if NPCI > 0 -static void -oltr_pci_intr(psc) - void *psc; -{ - struct oltr_softc *sc = (struct oltr_softc *)psc; - int rc = 0; - - /*printf("oltr%d: oltr_pci_intr\n", sc->unit);*/ /* Too noisy */ - rc = TRlldInterruptService(sc->TRlldAdapter); - if (rc == TRLLD_NO_INTERRUPT) - printf("oltr%d: pci interrupt not serviced.\n", sc->unit); -} -#endif /* NPCI */ - -static void -oltr_start(ifp) - struct ifnet *ifp; -{ - struct oltr_softc *sc = &oltr_softc[ifp->if_unit]; - struct mbuf *m0, *m; - int len, i, k, rc; - - /*printf("oltr%d: oltr_start\n", sc->unit);*/ - -outloop: - - i = (sc->tx_next & TX_LIST_MASK); /* Just to shorten thing up */ - - /* Check to see if we have enough room to transmit */ - if (sc->tx_avail <= 0) { - /* No free buffers, hold off the upper layers */ - /*printf("oltr%d: transmit queue full.\n", sc->unit);*/ - ifp->if_flags |= IFF_OACTIVE; - return; - } - - if (sc->tx_frame.FragmentCount > 0) { - if (!(sc->config->mode & TRLLD_MODE_16M)) { - sc->tx_next++; - m0 = sc->tx_buffer[i].m; - goto restart; - } - } - - IF_DEQUEUE(&ifp->if_snd, m); - if (m == 0) { - /*printf("oltr%d: oltr_start NULL packet dequeued.\n", sc->unit);*/ - ifp->if_flags &= ~IFF_OACTIVE; - return; - } - - /* Keep a pointer to the head of the packet */ - m0 = m; - - if (sc->config->mode & TRLLD_MODE_16M) { /* ISA Adapters - bounce buffers */ - - for (len = 0; m != 0; m = m->m_next) { - sc->tx_frame.TransmitFragment[0].VirtualAddress = sc->tx_buffer[i].buf; - sc->tx_frame.TransmitFragment[0].PhysicalAddress = kvtop(sc->tx_buffer[i].buf); - bcopy(mtod(m, caddr_t), sc->tx_buffer[i].buf + len, m->m_len); - len += m->m_len; - } - sc->tx_frame.FragmentCount = 1; - sc->tx_frame.TransmitFragment[0].count = len; - - sc->tx_next++; - sc->tx_avail--; - - } else { /* PCI Adapters w/DMA */ - - for (k = 0; m!= 0; m = m->m_next) { - sc->tx_frame.TransmitFragment[k].VirtualAddress = mtod(m, caddr_t); - sc->tx_frame.TransmitFragment[k].PhysicalAddress = kvtop(mtod(m, caddr_t)); - sc->tx_frame.TransmitFragment[k].count = m->m_len; - k++; - sc->tx_avail--; - } - sc->tx_frame.FragmentCount = k; - sc->tx_buffer[i].count = k; - sc->tx_buffer[i].m = m0; - - if (sc->tx_avail < 0) { - /*printf("oltr%d: transmit buffers exhausted.\n", sc->unit);*/ - goto nobuffers; - } - sc->tx_next++; - } - -restart: - rc = TRlldTransmitFrame(sc->TRlldAdapter, &sc->tx_frame, (void *)sc->tx_buffer[i].index); - sc->tx_frame.FragmentCount = 0; - - if (rc != TRLLD_TRANSMIT_OK) { - printf("oltr%d: TRlldTransmitFrame returned (%x)\n", sc->unit, rc); - ifp->if_oerrors++; - goto bad; - } - -#if NBPFILTER > 0 - if (ifp->if_bpf) - bpf_mtap(ifp, m0); -#endif - -bad: - - if (sc->config->mode & TRLLD_MODE_16M) { - m_freem(m0); - } - - goto outloop; - -nobuffers: - - ifp->if_flags |= IFF_OACTIVE; - - return; -} - -static void -oltr_stop(sc) - struct oltr_softc *sc; -{ - struct ifnet *ifp = &sc->arpcom.ac_if; - printf("oltr%d: otlr_stop\n", sc->unit); - ifp->if_flags &= ~(IFF_UP | IFF_RUNNING | IFF_OACTIVE); - sc->hw_state = HW_CLOSING; - TRlldClose(sc->TRlldAdapter, 0); - sc->oltr_ch = timeout(oltr_timeout, (void *)sc->unit, 30*hz); - tsleep((void *)sc->unit, 1, "oltrcl", 30*hz); -} - -static int -oltr_ioctl(ifp, cmd, data) - struct ifnet *ifp; - u_long cmd; - caddr_t data; -{ - struct oltr_softc *sc = &oltr_softc[ifp->if_unit]; - struct ifreq *ifr = (struct ifreq *)data; - int error = 0, s; - - /*printf("oltr%d: oltr_ioctl\n", ifp->if_unit);*/ - - s = splimp(); - - switch (cmd) { - - case SIOCSIFADDR: - case SIOCGIFADDR: - case SIOCSIFMTU: - error = iso88025_ioctl(ifp, cmd, data); - break; - - case SIOCSIFFLAGS: - /* - * If the interface is marked up and stopped, then start it. - * If it is marked down and running, then stop it. - */ - if (ifp->if_flags & IFF_UP) { - if ((ifp->if_flags & IFF_RUNNING) == 0) - oltr_init(sc); - } else { - if (ifp->if_flags & IFF_RUNNING) { - oltr_stop(sc); - ifp->if_flags &= ~IFF_RUNNING; - } - } - - if ((ifp->if_flags & IFF_PROMISC) != sc->PromiscMode) { - if (ifp->if_flags & IFF_PROMISC) - TRlldSetPromiscuousMode(sc->TRlldAdapter, OLTR_PROMISC_MODE); - else - TRlldSetPromiscuousMode(sc->TRlldAdapter, 0); - sc->PromiscMode = (ifp->if_flags & IFF_PROMISC); - } - - break; - case SIOCGIFMEDIA: - case SIOCSIFMEDIA: - error = ifmedia_ioctl(ifp, ifr, &sc->ifmedia, cmd); - break; - default: - error = EINVAL; - } - splx(s); - return(error); -} - -/* - * PMW Callback functions ---------------------------------------------------- - */ - -static void -DriverSuspend(MicroSeconds) - unsigned short MicroSeconds; -{ - DELAY(MicroSeconds); -} - - -static void -DriverStatus(DriverHandle, Status) - void *DriverHandle; - TRlldStatus_t *Status; -{ - struct oltr_softc *sc = &oltr_softc[(int)DriverHandle]; - struct ifnet *ifp = &sc->arpcom.ac_if; - - switch (Status->Type) { - case TRLLD_STS_ON_WIRE: - if (sc->hw_state == HW_OPENING) { - sc->hw_state = HW_OPEN; - ifp->if_flags |= (IFF_UP | IFF_RUNNING); - /*printf("oltr%d: Adapter inserted.\n", sc->unit);*/ - untimeout(oltr_timeout, (void *)sc->unit, sc->oltr_ch); - wakeup_one((void *)sc->unit); - } - break; - case TRLLD_STS_SELFTEST_STATUS: - if (Status->Specification.SelftestStatus == TRLLD_ST_OK) { - printf("oltr%d: adapter status good. (close completed/self-test)\n", sc->unit); - if ((sc->hw_state == HW_LOADING) || (sc->hw_state == HW_CLOSING) || (sc->hw_state == HW_CLOSING2)) { - sc->hw_state = HW_CLOSED; - break; - } - } else { - printf("oltr%d: Self test failed: ", sc->unit); - switch (Status->Specification.SelftestStatus) { - case TRLLD_ST_ERROR + 0: printf("Initial Test Error\n"); break; - case TRLLD_ST_ERROR + 1: printf("Adapter Software Checksum Error\n"); break; - case TRLLD_ST_ERROR + 2: printf("Adapter RAM Error\n"); break; - case TRLLD_ST_ERROR + 4: printf("Instruction Test Error\n"); break; - case TRLLD_ST_ERROR + 5: printf("Protocol Handler/RI Hw Error\n"); break; - case TRLLD_ST_ERROR + 6: printf("System Interface Register Error\n"); break; - case TRLLD_ST_TIMEOUT: printf("Selftest did not complete\n"); break; - default: printf("Unknown error (%x)\n", Status->Specification.SelftestStatus); - } - } - break; - case TRLLD_STS_INIT_STATUS: - printf("oltr%d: Adapter initialization failed: ", sc->unit); - switch(Status->Specification.InitStatus) { - case TRLLD_INIT_ERROR + 0x01: printf("Invalid init block (LLD error)\n"); break; - case TRLLD_INIT_ERROR + 0x02: printf("Invalid options (LLD error)\n"); break; - case TRLLD_INIT_ERROR + 0x03: printf("Invalid rcv burst (LLD error)\n"); break; - case TRLLD_INIT_ERROR + 0x04: printf("Invalid xmt burst (LLD error)\n"); break; - case TRLLD_INIT_ERROR + 0x05: printf("Invalid DMA threshold (LLD error)\n"); break; - case TRLLD_INIT_ERROR + 0x06: printf("Invalid scb addr\n"); break; - case TRLLD_INIT_ERROR + 0x07: printf("Invalid ssb addr\n"); break; - case TRLLD_INIT_ERROR + 0x08: printf("DIO parity error (HW error)\n"); break; - case TRLLD_INIT_ERROR + 0x09: printf("DMA timeout (May be interrupt failing if PIO mode or PCI2)\n"); break; - case TRLLD_INIT_ERROR + 0x0A: printf("DMA parity error (HW error)\n"); break; - case TRLLD_INIT_ERROR + 0x0B: printf("DMA bus error (HW error)\n"); break; - case TRLLD_INIT_ERROR + 0x0C: printf("DMA data error\n"); break; - case TRLLD_INIT_ERROR + 0x0D: printf("Adapter Check\n"); break; - case TRLLD_INIT_TIMEOUT: printf("Adapter initialization did not complete\n"); break; - case TRLLD_INIT_DMA_ERROR: printf("Adapter cannot access system memory\n"); break; - case TRLLD_INIT_INTR_ERROR: printf("Adapter cannot interrupt\n"); break; - case TRLLD_OPEN_TIMEOUT: printf("Adapter did not complete open within 30 seconds\n"); break; - case TRLLD_OPEN_ERROR + 0x01: printf("Invalid open options (LLD error)\n"); break; - case TRLLD_OPEN_ERROR + 0x04: printf("TxBuffer count error (LLD error)\n"); break; - case TRLLD_OPEN_ERROR + 0x10: printf("Buffer size error (LLD error)\n"); break; - case TRLLD_OPEN_ERROR + 0x20: printf("List size error (LLD error)\n"); break; - default: - if (Status->Specification.InitStatus & 0x700) { - switch (Status->Specification.InitStatus & 0x70F) { - case TRLLD_OPEN_REPEAT + 0x01: printf("Lobe media test - "); break; - case TRLLD_OPEN_REPEAT + 0x02: printf("Physical insertion - "); break; - case TRLLD_OPEN_REPEAT + 0x03: printf("Address verification - "); break; - case TRLLD_OPEN_REPEAT + 0x04: printf("Participation in ring poll - "); break; - case TRLLD_OPEN_REPEAT + 0x05: printf("Request initialization - "); break; - case TRLLD_OPEN_REPEAT + 0x09: printf("Request registration (TXI) - "); break; - case TRLLD_OPEN_REPEAT + 0x0A: printf("Lobe media test (TXI) - "); break; - default: printf("Unknown phase (%x) - ", Status->Specification.InitStatus & 0x00F); - } - switch (Status->Specification.InitStatus & 0x7F0) { - case TRLLD_OPEN_REPEAT + 0x10: printf("Function failure (No cable?)\n"); break; - case TRLLD_OPEN_REPEAT + 0x20: printf("Signal loss\n"); break; - case TRLLD_OPEN_REPEAT + 0x50: printf("Timeout\n"); break; - case TRLLD_OPEN_REPEAT + 0x60: printf("Ring failure (TKP) / Protocol error (TXI)\n"); break; - case TRLLD_OPEN_REPEAT + 0x70: printf("Ring beaconing\n"); break; - case TRLLD_OPEN_REPEAT + 0x80: printf("Duplicate node address (TKP) / Insert denied (TXI)\n"); break; - case TRLLD_OPEN_REPEAT + 0x90: printf("Request initialization (TKP)\n"); break; - case TRLLD_OPEN_REPEAT + 0xa0: printf("Remove received\n"); break; - case TRLLD_OPEN_REPEAT + 0xb0: printf("C-port address changed (TXI)\n"); break; - default: printf("Unknown type (%x)\n", Status->Specification.InitStatus & 0x0F0); - } - } else { - printf("Unknown error (%x)\n", Status->Specification.InitStatus); - } - } - break; - case TRLLD_STS_RING_STATUS: - if (Status->Specification.RingStatus != 0) { - printf("oltr%d: Ring status change: ", sc->unit); - if (Status->Specification.RingStatus & TRLLD_RS_HARD_ERROR) printf("[Hard error] "); - if (Status->Specification.RingStatus & TRLLD_RS_SOFT_ERROR) printf("[Soft error] "); - if (Status->Specification.RingStatus & TRLLD_RS_TRANSMIT_BEACON) printf("[Transmit beacon] "); - if (Status->Specification.RingStatus & TRLLD_RS_LOBE_WIRE_FAULT) printf("[Wire fault] "); - if (Status->Specification.RingStatus & TRLLD_RS_AUTO_REMOVAL_ERROR) printf("[Auto removal] "); - if (Status->Specification.RingStatus & TRLLD_RS_REMOVE_RECEIVED) printf("[Remove received] "); - if (Status->Specification.RingStatus & TRLLD_RS_COUNTER_OVERFLOW) printf("[Counter overflow] "); - if (Status->Specification.RingStatus & TRLLD_RS_SINGLE_STATION) printf("[Single station] "); - if (Status->Specification.RingStatus & TRLLD_RS_RING_RECOVERY) printf("[Ring recovery] "); - printf("\n"); - } - break; - case TRLLD_STS_ADAPTER_CHECK: - printf("oltr%d: Adapter check (%x %x %x %x)\n", sc->unit, Status->Specification.AdapterCheck[0], - Status->Specification.AdapterCheck[1], Status->Specification.AdapterCheck[2], - Status->Specification.AdapterCheck[3]); - break; - case TRLLD_STS_PROMISCUOUS_STOPPED: - printf("oltr%d: Promiscuous mode stopped: ", sc->unit); - switch(Status->Specification.PromRemovedCause) { - case TRLLD_PROM_REMOVE_RECEIVED: printf("Remove received\n"); break; - case TRLLD_PROM_POLL_FAILURE: printf("Poll failure\n"); break; - default: printf("Unknown (%x)\n", Status->Specification.PromRemovedCause); - } - break; - case TRLLD_STS_LLD_ERROR: - printf("oltr%d: LLD error (%x %x %x %x) ", sc->unit, Status->Specification.InternalError[0], - Status->Specification.InternalError[1], Status->Specification.InternalError[2], - Status->Specification.InternalError[3]); - break; - case TRLLD_STS_ADAPTER_TIMEOUT: - printf("oltr%d: Adapter operation timed out: ", sc->unit); - switch(Status->Specification.AdapterTimeout) { - case TRLLD_COMMAND_TIMEOUT: printf("Command\n"); - case TRLLD_TRANSMIT_TIMEOUT: printf("Transmit\n"); - case TRLLD_INTERRUPT_TIMEOUT: printf("Interrupt\n"); - default: printf("Unknown (%x)\n", Status->Specification.AdapterTimeout); - } - break; - default: - printf("oltr%d: Unknown status type (%x)\n", sc->unit, Status->Type); - - } - if (Status->Closed) { - if (sc->hw_state > HW_BAD) { - sc->hw_state = HW_FAILED; - printf("oltr%d: closing adapter due to failure.\n", sc->unit); - oltr_stop(sc); - } - } -} - -static void -DriverCloseCompleted(DriverHandle) - void *DriverHandle; -{ - struct oltr_softc *sc = &oltr_softc[(int)DriverHandle]; - - printf("oltr%d: DriverCloseCompleted\n", sc->unit); - - untimeout(oltr_timeout, (void *)sc->unit, sc->oltr_ch); - wakeup_one((void *)sc->unit); - - if ((sc->hw_state != HW_CLOSING) && (sc->hw_state != HW_CLOSING2) && (sc->hw_state != HW_CLOSED)) { - printf("oltr%d: adapter close complete called in wrong state (%d)\n", sc->unit, sc->hw_state); - return; - } - sc->hw_state = HW_CLOSING2; - if (sc->config->dmalevel != TRLLD_DMA_PIO) - isa_dma_release(sc->config->dmalevel); - -} - -static void -DriverStatistics(DriverHandle, Statistics) - void *DriverHandle; - TRlldStatistics_t *Statistics; -{ - printf("oltr: DriverStatistics\n"); -} - -static void -DriverTransmitFrameCompleted(DriverHandle, FrameHandle, TransmitStatus) - void *DriverHandle; - void *FrameHandle; - int TransmitStatus; -{ - int frame = (int)FrameHandle; - struct oltr_softc *sc = &oltr_softc[(int)DriverHandle]; - struct ifnet *ifp = &sc->arpcom.ac_if; - - /*printf("oltr%d: transmit complete frame %d\n", sc->unit, frame);*/ - if (TransmitStatus == TRLLD_TRANSMIT_OK) { - ifp->if_opackets++; - } else { - printf("oltr%d: DriverTransmitFrameCompleted (frame %d status %x)\n", sc->unit, frame, TransmitStatus); - ifp->if_oerrors++; - } - - if ((frame < 0) || (frame > TX_LIST_SIZE)) { - printf("oltr%d: bogus transmit frame. (%d)\n", sc->unit, frame); - return; - } - - if (sc->config->mode & TRLLD_MODE_16M) { - sc->tx_avail++; - } else { - m_freem(sc->tx_buffer[frame].m); - sc->tx_avail += sc->tx_buffer[frame].count; - } - - if ((ifp->if_flags & IFF_OACTIVE) && (sc->tx_avail > 0)) { - ifp->if_flags &= ~(IFF_OACTIVE); - oltr_start(ifp); - } - -} - -static void -DriverReceiveFrameCompleted(DriverHandle, ByteCount, FragmentCount, FragmentHandle, ReceiveStatus) - void *DriverHandle; - int ByteCount; - int FragmentCount; - void *FragmentHandle; - int ReceiveStatus; -{ - struct oltr_softc *sc = &oltr_softc[(int)DriverHandle]; - struct ifnet *ifp = &sc->arpcom.ac_if; - struct iso88025_header *th; - struct mbuf *m0, *m1, *m; - int j = (int)FragmentHandle, rc, frame_len = ByteCount, mac_hdr_len; - int mbuf_offset, mbuf_size, frag_offset, length; - char *frag = sc->rx_buffer[j].buf; - - /*printf("oltr%d: ReceiveFrameCompleted (Size %d Count %d Start %d)\n", sc->unit, ByteCount, FragmentCount, j);*/ - - if (sc->hw_state >= HW_OPEN) { /* Hardware operating normally */ - if (frag != sc->rx_buffer[sc->rx_next & RX_LIST_MASK].buf) { - printf("oltr%d: ring buffer pointer blown\n", sc->unit); - oltr_stop(sc); - return; - } - if (ReceiveStatus == TRLLD_RCV_OK) { /* Receive good frame */ - MGETHDR(m0, M_DONTWAIT, MT_DATA); - mbuf_size = MHLEN; - if (m0 == NULL) { - ifp->if_ierrors++; - goto out; - } - if (ByteCount + 2 > MHLEN) { - MCLGET(m0, M_DONTWAIT); - mbuf_size = MCLBYTES; - if ((m0->m_flags & M_EXT) == 0) { - m_freem(m0); - ifp->if_ierrors++; - goto out; - } - } - - m0->m_pkthdr.rcvif = &sc->arpcom.ac_if; - m0->m_pkthdr.len = ByteCount; - m0->m_len = 0; - m0->m_data += 2; - mbuf_size -=2; - th = mtod(m0, struct iso88025_header *); - m0->m_pkthdr.header = (void *)th; - - m = m0; mbuf_offset = 0; frag_offset = 0; - while (frame_len > 0) { - length = MIN3(frame_len, (RX_BUFFER_LEN - frag_offset), (mbuf_size - mbuf_offset)); - bcopy(frag + frag_offset, mtod(m, char *) + mbuf_offset, length); - m->m_len += length; - mbuf_offset += length; - frag_offset += length; - frame_len -= length; - if (frag_offset == RX_BUFFER_LEN) { - frag = sc->rx_buffer[++j].buf; - frag_offset = 0; - } - if ((mbuf_offset == mbuf_size) && (frame_len > 0)) { - MGET(m1, M_DONTWAIT, MT_DATA); - mbuf_size = MHLEN; - if (m1 == NULL) { - ifp->if_ierrors++; - m_freem(m0); - goto out; - } - if (frame_len > MHLEN) { - MCLGET(m1, M_DONTWAIT); - mbuf_size = MCLBYTES; - if ((m1->m_flags & M_EXT) == 0) { - m_freem(m0); - m_freem(m1); - ifp->if_ierrors++; - goto out; - } - } - m->m_next = m1; - m = m1; - mbuf_offset = 0; - m->m_len = 0; - } - } - ifp->if_ipackets++; - -#if NBPFILTER > 0 - if (ifp->if_bpf) - bpf_mtap(ifp, m0); -#endif - - if (ifp->if_flags & IFF_PROMISC) - if (bcmp(th->iso88025_dhost, etherbroadcastaddr, sizeof(th->iso88025_dhost)) != 0) { - if (((th->iso88025_dhost[0] & 0x7f) != sc->arpcom.ac_enaddr[0]) || - (bcmp(th->iso88025_dhost + 1, sc->arpcom.ac_enaddr + 1, ISO88025_ADDR_LEN - 1))) { - m_freem(m0); - goto out; - } - } - - mac_hdr_len = ISO88025_HDR_LEN; - if (th->iso88025_shost[0] & 0x80) /* Check for source routing info */ - mac_hdr_len += (ntohs(th->rcf) & 0x1f00) >> 8; - - m0->m_pkthdr.len -= mac_hdr_len; - m0->m_len -= mac_hdr_len; - m0->m_data += mac_hdr_len; - - iso88025_input(&sc->arpcom.ac_if, th, m0); - - } else { - if (ReceiveStatus != TRLLD_RCV_NO_DATA) { - printf("oltr%d: receive error. (ReceiveStatus=%d)\n", sc->unit, ReceiveStatus); - ifp->if_ierrors++; - } - } -out: - while (FragmentCount > 0) { - rc = TRlldReceiveFragment(sc->TRlldAdapter, - (void *)sc->rx_buffer[sc->rx_next & RX_LIST_MASK].buf, - kvtop(sc->rx_buffer[sc->rx_next & RX_LIST_MASK].buf), - RX_BUFFER_LEN, - (void *)sc->rx_buffer[sc->rx_next & RX_LIST_MASK].index); - if (rc == TRLLD_RECEIVE_OK) { - sc->rx_next++; - FragmentCount--; - } else { - printf("oltr%d: Adapter refused fragment (%d).\n", sc->unit, sc->rx_next - 1); - sc->rx_avail += FragmentCount; - break; - } - } - } else { /* Hardware being closed */ - if (frag != sc->rx_buffer[sc->rx_next++ & RX_LIST_MASK].buf) { - printf("oltr%d: ring buffer pointer blown\n", sc->unit); - } - sc->rx_avail += FragmentCount; - } - -} - - -/* - * ---------------------------- PMW Glue ------------------------------- - */ - -#ifndef TRlldInlineIO - -static void -DriverOutByte(IOAddress, value) - unsigned short IOAddress; - unsigned char value; -{ - outb(IOAddress, value); -} - -static void -DriverOutWord(IOAddress, value) - unsigned short IOAddress; - unsigned short value; -{ - outw(IOAddress, value); -} - -static void -DriverOutDword(IOAddress, value) - unsigned short IOAddress; - unsigned long value; -{ - outl(IOAddress, value); -} - -static void -DriverRepOutByte(IOAddress, DataPointer, ByteCount) - unsigned short IOAddress; - unsigned char *DataPointer; - int ByteCount; -{ - outsb(IOAddress, (void *)DataPointer, ByteCount); -} - -static void -DriverRepOutWord(IOAddress, DataPointer, WordCount) - unsigned short IOAddress; - unsigned short *DataPointer; - int WordCount; -{ - outsw(IOAddress, (void *)DataPointer, WordCount); -} - -static void -DriverRepOutDword(IOAddress, DataPointer, DWordCount) - unsigned short IOAddress; - unsigned long *DataPointer; - int DWordCount; -{ - outsl(IOAddress, (void *)DataPointer, DWordCount); -} - -static unsigned char -DriverInByte(IOAddress) - unsigned short IOAddress; -{ - return(inb(IOAddress)); -} - -static unsigned short -DriverInWord(IOAddress) - unsigned short IOAddress; -{ - return(inw(IOAddress)); -} - -static unsigned long -DriverInDword(IOAddress) - unsigned short IOAddress; -{ - return(inl(IOAddress)); -} - -static void -DriverRepInByte(IOAddress, DataPointer, ByteCount) - unsigned short IOAddress; - unsigned char *DataPointer; - int ByteCount; -{ - insb(IOAddress, (void *)DataPointer, ByteCount); -} - -static void -DriverRepInWord(IOAddress, DataPointer, WordCount) - unsigned short IOAddress; - unsigned short *DataPointer; - int WordCount; -{ - insw(IOAddress, (void *)DataPointer, WordCount); -} -static void -DriverRepInDword(IOAddress, DataPointer, DWordCount) - unsigned short IOAddress; - unsigned long *DataPointer; - int DWordCount; -{ - insl(IOAddress, (void *)DataPointer, DWordCount); -} -#endif /* TRlldInlineIO */ - -#endif /* NOLTR */ diff --git a/sys/contrib/dev/oltr/trlld.h b/sys/contrib/dev/oltr/trlld.h deleted file mode 100644 index d61893e2ab77..000000000000 --- a/sys/contrib/dev/oltr/trlld.h +++ /dev/null @@ -1,892 +0,0 @@ -/* - ****************************** trlld.h *********************************** - * - * Copyright (c) 1997 - * OLICOM A/S - * Denmark - * - * All Rights Reserved - * - * This source file is subject to the terms and conditions of the - * OLICOM Software License Agreement which restricts the manner - * in which it may be used. - * - *--------------------------------------------------------------------------- - * - * Description: PowerMACH Works header file - * - *--------------------------------------------------------------------------- - * $Log: O:/USR/PROJECT/trlld/libsrc/include/trlld.h_v $ - * - * Rev 1.8 10 Dec 1998 12:24:52 JHM - * version 1.2.0,prominfo structure with shorts. - * - * Rev 1.7 25 Nov 1998 16:18:48 JHM - * Bullseye mac, 100MBPS, mactype in config structure, - * 3540 adapter, TRlldTransmitFree, TRlldReceiveFree, - * TRlldAdapterName - * - * Rev 1.6 23 Oct 1998 16:00:36 JHM - * hawkeye adapter types - * - * Rev 1.5 11 Aug 1998 12:22:06 JHM - * split hawkeye types into PCI4,5,6 - * - * Rev 1.4 10 Jul 1998 14:39:22 JHM - * OC_3140,OC_3250 - * - * Rev 1.3 18 Jun 1998 11:32:20 JHM - * AddMemory,OC_3250 - * - * Rev 1.2 18 Apr 1998 15:11:20 JHM - * - * Rev 1.1 09 Dec 1997 18:17:52 JHM - * rel111: TRlldDataPtr_t - * - * Rev 1.0 24 Nov 1997 11:08:58 JHM - * Initial revision. - - Rev 1.5 18 Jun 1997 11:31:36 JHM - Checks for version - - Rev 1.4 13 Jun 1997 13:47:34 JHM - - Rev 1.3 13 Jun 1997 13:27:56 JHM - DTR support, version change - - Rev 1.2 12 Jun 1997 11:43:20 JHM - TRLLD_INTERRUPT_TIMEOUT defined - - Rev 1.1 11 Apr 1997 15:24:18 JHM - replaced tabs with spaces - - Rev 1.0 11 Apr 1997 14:43:04 JHM - Initial revision. - * - **************************************************************************** -*/ - -#ifndef TRLLD_H -#define TRLLD_H - -/* Data buffer pointers are always 32 bits. - For 16:16 it is segment:offset while it for 32:32 is a linear address. */ - -#ifdef TRlldSmall -#define TRlldDataPtr_t unsigned char far * -#define TRlldWordDataPtr_t unsigned short far * -#define TRlldDWordDataPtr_t unsigned long far * -#else -#define TRlldDataPtr_t unsigned char * -#define TRlldWordDataPtr_t unsigned short * -#define TRlldDWordDataPtr_t unsigned long * -#endif - -#ifdef __WATCOMC__ -#define CDECL _cdecl -#else -#define CDECL -#endif - -/*****************************************************************************/ -/* */ -/* Firmware */ -/* */ -/*****************************************************************************/ - -extern unsigned char TRlldMacCode[]; /* 3115,17,18,29,33,36,37 */ -extern unsigned char TRlldHawkeyeMac[]; /* 3139,3140,3141,3250 */ -extern unsigned char TRlldBullseyeMac[]; /* 3540 */ - -/*****************************************************************************/ -/* */ -/* Maximal numbers of concurrent receive and transmit slots */ -/* */ -/*****************************************************************************/ - -#define TRLLD_MAX_RECEIVE 32 -#define TRLLD_MAX_TRANSMIT 32 - -/*****************************************************************************/ -/* */ -/* Maximal frame sizes */ -/* */ -/*****************************************************************************/ - -#define TRLLD_MAXFRAME_100MBPS 18000 -#define TRLLD_MAXFRAME_16MBPS 18000 -#define TRLLD_MAXFRAME_4MBPS 4500 - -/*****************************************************************************/ -/* */ -/* TRlldStatus contains the adapter status used in a DriverStatus call-back. */ -/* */ -/*****************************************************************************/ - -struct OnWireInformation { - unsigned short RingStatus; - unsigned short Speed; - unsigned short AccessProtocol; - unsigned short Reserved; -}; - -typedef struct TRlldStatus { - unsigned short Type; - unsigned char Closed; - unsigned char AccessProtocol; - unsigned short MaxFrameSize; - unsigned short Reserved; - union { - unsigned short OnWireRingStatus; /* for compability */ - unsigned short SelftestStatus; - unsigned short InitStatus; - unsigned short RingStatus; - unsigned short AdapterCheck[4]; - unsigned short InternalError[4]; - unsigned short PromRemovedCause; - unsigned short AdapterTimeout; - struct OnWireInformation OnWireInformation; - } Specification; -} TRlldStatus_t; - -/* values of TRlldStatus.Type */ - -#define TRLLD_STS_ON_WIRE 0 -#define TRLLD_STS_SELFTEST_STATUS 1 -#define TRLLD_STS_INIT_STATUS 2 -#define TRLLD_STS_RING_STATUS 3 -#define TRLLD_STS_ADAPTER_CHECK 4 -#define TRLLD_STS_PROMISCUOUS_STOPPED 5 -#define TRLLD_STS_LLD_ERROR 6 -#define TRLLD_STS_ADAPTER_TIMEOUT 7 - -/* values of TRlldStatus.Closed */ - -#define TRLLD_STS_STATUS_OK 0 -#define TRLLD_STS_STATUS_CLOSED 1 - -/* values of TRlldStatus.AccessProtocol */ - -#define TRLLD_ACCESS_UNKNOWN 0 -#define TRLLD_ACCESS_TKP 1 -#define TRLLD_ACCESS_TXI 2 - -/* values of TRlldStatus.SelftestStatus */ - -#define TRLLD_ST_OK 0 -#define TRLLD_ST_ERROR 0x0100 /* actual errors are 010x, where x is */ - /* 0: Initial Test Error */ - /* 1: Adapter Software Checksum Error */ - /* 2: Adapter RAM Error */ - /* 4: Instruction Test Error */ - /* 5: Protocol Handler/RI Hw Error */ - /* 6: System Interface Register Error */ - -#define TRLLD_ST_TIMEOUT 0x0200 /* The adapter did not complete */ - /* selftest after download */ - -/* values of TRlldStatus.Specification.InitStatus */ - -/* the most likely cause of an init error (whatever the code) is a wrong */ -/* physical or virtual address of the adapter block in TRlldAdapterInit */ - -#define TRLLD_INIT_ERROR 0x100 /* actual errors are 010x, where x is */ - /* 1: Invalid init block (LLD error) */ - /* 2: Invalid options (LLD error) */ - /* 3: Invalid rcv burst (LLD error) */ - /* 4: Invalid xmt burst (LLD error) */ - /* 5: Invalid DMA threshold (LLDerror)*/ - /* 6: Invalid scb addr */ - /* 7: Invalid ssb addr */ - /* 8: DIO parity error (HW error) */ - /* 9: DMA timeout (May be interrupt - failing if PIO mode or PCI2) */ - /* A: DMA parity error (HW error) */ - /* B: DMA bus error (HW error) */ - /* C: DMA data error */ - /* D: Adapter check */ - -#define TRLLD_INIT_TIMEOUT 0x200 /* adapter init did not complete */ -#define TRLLD_INIT_DMA_ERROR 0x300 /* adapter cannot access sys memory */ -#define TRLLD_INIT_INTR_ERROR 0x400 /* adapter cannot interrupt */ -#define TRLLD_OPEN_TIMEOUT 0x500 /* adapter open did not complete */ - /* within 30 seconds */ - -#define TRLLD_OPEN_ERROR 0x600 /* actual errors are 06xx, where the */ - /* bits in x mean: */ - /* 01: Invalid open options (LLDerror)*/ - /* 04: TxBuffer count error (LLDerror)*/ - /* 10: Buffer size error (LLD error) */ - /* 20: List size error (LLD error) */ - /* 40: Node address error */ - -#define TRLLD_OPEN_REPEAT 0x700 /* actual errors are 07xy, where */ - /* x is the open phase: */ - /* 1: Lobe media test */ - /* 2: Physical Insertion */ - /* 3: Address verification */ - /* 4: Participation in ring poll */ - /* 5: Request Initialization */ - /* 9: Request registration (TXI) */ - /* A: Lobe Media Test (TXI) */ - /* B: Address verification (TXI) */ - /* y is the type of error: */ - /* 1: Function failure (No Cable ?) */ - /* 2: Signal loss */ - /* 5: Timeout */ - /* 6: Ring failure (TKP) */ - /* 6: Protocol error (TXI) */ - /* 7: Ring beaconing */ - /* 8: Duplicate Node Address (TKP) */ - /* 8: Insert Denied (TXI) */ - /* 9: Request Initialization (TKP) */ - /* 9: Heart beat failure (TXI) */ - /* A: Remove received */ - /* B: C-port address changed (TXI) */ - /* C: Wire Fault (TKP) */ - /* D: Auto Speed, 1. on ring (TKP) */ - /* E: Speed sense failed */ - -/* When opening with FORCE_TXI and only classic token ring attachment is */ -/* possible, the error is Request Registration/Timeout or 0x795 */ - -#define TRLLD_OPEN_1ST_ON_RING 0x800 /* Speed sense is active, but no other*/ - /* station is present to set the speed*/ - - -/* values of TRlldStatus.Specification.RingStatus */ - -#define TRLLD_RS_SIGNAL_LOSS 0x8000 -#define TRLLD_RS_HARD_ERROR 0x4000 -#define TRLLD_RS_SOFT_ERROR 0x2000 -#define TRLLD_RS_TRANSMIT_BEACON 0x1000 -#define TRLLD_RS_LOBE_WIRE_FAULT 0x0800 -#define TRLLD_RS_AUTO_REMOVAL_ERROR 0x0400 -#define TRLLD_RS_REMOVE_RECEIVED 0x0100 -#define TRLLD_RS_COUNTER_OVERFLOW 0x0080 -#define TRLLD_RS_SINGLE_STATION 0x0040 -#define TRLLD_RS_RING_RECOVERY 0x0020 - -/* values of TRlldStatus.Specification.AdapterCheck */ -/* MISSING */ - -/* values of TRlldStatus.Specification.PromRemovedCause */ - -#define TRLLD_PROM_REMOVE_RECEIVED 1 -#define TRLLD_PROM_POLL_FAILURE 2 -#define TRLLD_PROM_BUFFER_SIZE 3 - -/* values of TRlldStatus.Specification.InternalError */ - -#define TRLLD_INTERNAL_PIO 1 /* A PIO transfer to or from adapter */ - /* did not complete */ -#define TRLLD_INTERNAL_TX 2 /* Trouble with clean up of tx frames */ -#define TRLLD_INTERNAL_RX 3 /* Trouble with clean up of receive */ - /* fragments */ -#define TRLLD_INTERNAL_CMD 4 /* error response from adapter */ -#define TRLLD_INTERNAL_STATE 5 /* event happened in unexpected state */ - -/* values of TRlldStatus.Specification.AdapterTimeout */ - -#define TRLLD_COMMAND_TIMEOUT 1 -#define TRLLD_TRANSMIT_TIMEOUT 2 -#define TRLLD_INTERRUPT_TIMEOUT 3 - - -/*****************************************************************************/ -/* */ -/* TRlldStatistics contains the adapter statistics returned to Driver */ -/* in TRlldStatistics calls and DriverStatistics call-backs */ -/* */ -/*****************************************************************************/ - -typedef struct TRlldStatistics { - unsigned long LineErrors; - unsigned long InternalErrors; /* Not maintained by TMS based boards */ - unsigned long BurstErrors; - unsigned long ARIFCIErrors; - unsigned long AbortDelimiters; /* Not maintained by TMS based boards */ - unsigned long LostFrames; - unsigned long CongestionErrors; - unsigned long FrameCopiedErrors; - unsigned long FrequencyErrors; /* Not maintained by TMS based boards */ - unsigned long TokenErrors; - unsigned long DMABusErrors; /* Not maintained by 3139 */ - unsigned long DMAParityErrors; /* Not maintained by 3139 */ - unsigned long ReceiveLongFrame; /* Not maintained by TMS based boards */ - unsigned long ReceiveCRCErrors; /* Not maintained by TMS based boards */ - unsigned long ReceiveOverflow; /* Not maintained by TMS based boards */ - unsigned long TransmitUnderrun; /* Not maintained by TMS based boards */ - unsigned long UnderrunLock; /* Not maintained by TMS based boards */ - unsigned long OverflowReset; - unsigned char UpstreamNeighbour[6]; - unsigned short RingNumber; - unsigned char BeaconingUpstreamNeighbour[6]; - unsigned short padding; -} TRlldStatistics_t; - - -/*****************************************************************************/ -/* */ -/* TRlldDriver contains the Driver call-backs */ -/* */ -/*****************************************************************************/ - -typedef struct TRlldDriver { - unsigned long TRlldVersion; -#ifndef TRlldInlineIO - void (CDECL * DriverOutByte)(unsigned short IOAddress, - unsigned char Value); - void (CDECL * DriverOutWord)(unsigned short IOAddress, - unsigned short Value); - void (CDECL * DriverOutDWord)(unsigned short IOAddress, - unsigned long Value); - void (CDECL * DriverRepOutByte)(unsigned short IOAddress, - TRlldDataPtr_t DataPointer, - int ByteCount); - void (CDECL * DriverRepOutWord)(unsigned short IOAddress, - TRlldWordDataPtr_t DataPointer, - int WordCount); - void (CDECL * DriverRepOutDWord)(unsigned short IOAddress, - TRlldDWordDataPtr_t DataPointer, - int DWordCount); - unsigned char (CDECL * DriverInByte)(unsigned short IOAddress); - unsigned short (CDECL * DriverInWord)(unsigned short IOAddress); - unsigned long (CDECL * DriverInDWord)(unsigned short IOAddress); - void (CDECL * DriverRepInByte)(unsigned short IOAddress, - TRlldDataPtr_t DataPointer, - int ByteCount); - void (CDECL * DriverRepInWord)(unsigned short IOAddress, - TRlldWordDataPtr_t DataPointer, - int WordCount); - void (CDECL * DriverRepInDWord)(unsigned short IOAddress, - TRlldDWordDataPtr_t DataPointer, - int DWordCount); -#endif - void (CDECL * DriverSuspend)(unsigned short MicroSeconds); - void (CDECL * DriverStatus)(void * DriverHandle, - TRlldStatus_t * Status); - void (CDECL * DriverCloseCmpltd)(void * DriverHandle); - void (CDECL * DriverStatistics)(void * DriverHandle, - TRlldStatistics_t * Statistics); - void (CDECL * DriverTxFrameCmpltd)(void * DriverHandle, - void * FrameHandle, - int TxStatus); - void (CDECL * DriverRcvFrameCmpltd)(void * DriverHandle, - int ByteCount, - int FragmentCount, - void * FragmentHandle, - int RcvStatus); -} TRlldDriver_t; - -/* Version and model control */ - -#define TRLLD_VERSION_INLINEIO 0x8000 -#define TRLLD_VERSION_SMALL 0x4000 -#ifdef TRlldInlineIO -#ifdef TRlldSmall -#define TRLLD_VERSION 0x4120 -#else -#define TRLLD_VERSION 0x0120 -#endif -#else -#ifdef TRlldSmall -#define TRLLD_VERSION 0xC120 -#else -#define TRLLD_VERSION 0x8120 -#endif -#endif - - -/*****************************************************************************/ -/* */ -/* TRlldAdapterConfig contains the properties found for an adapter */ -/* used when finding and defining adapters to use */ -/* */ -/*****************************************************************************/ - - -struct pnp_id { - unsigned short vendor; - unsigned short device; -}; - -struct pci_id { - unsigned short vendor; - unsigned short device; - unsigned char revision; - unsigned char reserved_byte; - unsigned short reserved_word; -}; - -struct pcmcia_id { - /* unknown as yet */ - unsigned char x; -}; - -struct pci_slot { - unsigned short bus_no; - unsigned short device_no; -}; - -struct pcmcia_socket { - /* unknown as yet */ - unsigned char x; -}; - -typedef struct TRlldAdapterConfig { - unsigned char type; - unsigned char bus; - unsigned short magic; - union { - struct pnp_id pnp; - unsigned long eisa; - unsigned short mca; - struct pci_id pci; - struct pcmcia_id pcmcia; - } id; - union { - unsigned short csn; - unsigned short eisa; - unsigned short mca; - struct pci_slot pci; - struct pcmcia_socket pcmcia; - } slot; - unsigned short iobase0; - unsigned short iolength0; - unsigned short iobase1; - unsigned short iolength1; - unsigned long memorybase; - unsigned short memorylength; - unsigned char mode; - unsigned char xmode; - unsigned char interruptlevel; - unsigned char dmalevel; - unsigned char macaddress[6]; - unsigned long prombase; - unsigned char speed; - unsigned char cachelinesize; - unsigned short pcicommand; - unsigned char mactype; - unsigned char reserved[3]; -} TRlldAdapterConfig_t; - -/* values of TRlldAdapterConfig.Type */ - -#define TRLLD_ADAPTER_XT 0 /* not supported */ -#define TRLLD_ADAPTER_ISA1 1 /* OC-3115 */ -#define TRLLD_ADAPTER_ISA2 2 /* OC-3117 */ -#define TRLLD_ADAPTER_ISA3 3 /* OC-3118 */ -#define TRLLD_ADAPTER_MCA1 4 /* OC-3129 id A84 */ -#define TRLLD_ADAPTER_MCA2 5 /* OC-3129 id A85 */ -#define TRLLD_ADAPTER_MCA3 6 /* OC-3129 id A86 */ -#define TRLLD_ADAPTER_EISA1 7 /* OC-3133 id 0109833D */ -#define TRLLD_ADAPTER_EISA2 8 /* OC-3133 id 0209833D */ -#define TRLLD_ADAPTER_EISA3 9 /* OC-3135 not supported */ -#define TRLLD_ADAPTER_PCI1 10 /* OC-3136 id 108d0001 rev 1 */ -#define TRLLD_ADAPTER_PCI2 11 /* OC-3136 id 108d0001 rev 2 */ -#define TRLLD_ADAPTER_PCI3 12 /* OC-3137 id 108d0001 rev 3 */ -#define TRLLD_ADAPTER_PCI4 13 /* OC-3139 id 108d0004 rev 2 */ -#define TRLLD_ADAPTER_PCI5 14 /* OC-3140 id 108d0004 rev 3 */ -#define TRLLD_ADAPTER_PCI6 15 /* OC-3141 id 108d0007 rev 1 */ -#define TRLLD_ADAPTER_PCI7 19 /* OC-3540 id 108d0008 rev 1 */ -#ifdef PCMCIA -#define TRLLD_ADAPTER_PCCARD1 16 /* OC-3220 */ -#define TRLLD_ADAPTER_PCCARD2 17 /* OC-3221,OC-3230,OC-3232 */ -#endif -#define TRLLD_ADAPTER_PCCARD3 18 /* OC-3250 id 108d0005 rev 1 */ - -/* values of TRlldAdapterConfig.Bus */ - -#define TRLLD_BUS_ISA 1 -#define TRLLD_BUS_EISA 2 -#define TRLLD_BUS_MCA 3 -#define TRLLD_BUS_PCI 4 -#define TRLLD_BUS_PCMCIA 5 - -/* values of TRlldAdapterConfig.mode */ - -#define TRLLD_MODE_16M 0x01 /* needs data buffers below 16 M */ -#define TRLLD_MODE_PHYSICAL 0x02 /* needs valid physical addresses */ -#define TRLLD_MODE_FIXED_CFG 0x04 /* cannot be reconfigured */ -#define TRLLD_MODE_SHORT_SLOT 0x08 /* in short ISA slot, cannot use DMA */ -#define TRLLD_MODE_CANNOT_DISABLE 0x10 /* can not disable interrupt */ -#define TRLLD_MODE_SHARE_INTERRUPT 0x20 /* may share interrupt */ -#define TRLLD_MODE_MEMORY 0x40 /* is configured with a memory window*/ - -/* values of TRlldAdapterConfig.dma */ - -#define TRLLD_DMA_PIO 4 /* other values signifies the DMA channel */ -#define TRLLD_DMA_MASTER 0xff /* to use */ - -/* values of TRlldAdapterConfig.mactype */ - - /* download with: */ -#define TRLLD_MAC_TMS 1 /* TRlldMACCode */ -#define TRLLD_MAC_HAWKEYE 2 /* TRlldHawkeyeMAC */ -#define TRLLD_MAC_BULLSEYE 3 /* TRlldBullseyeMAC */ - - -typedef void * TRlldAdapter_t; -typedef void * TRlldAdapterType_t; - -#ifndef MAX_FRAGMENTS -#define MAX_FRAGMENTS 32 -#endif - -typedef struct TRlldTransmit { - unsigned short FragmentCount; - unsigned short TRlldTransmitReserved; - struct TRlldTransmitFragment { - unsigned long PhysicalAddress; - TRlldDataPtr_t VirtualAddress; - unsigned short count; - unsigned short TRlldTransmitFragmentReserved; - } TransmitFragment[MAX_FRAGMENTS]; -} TRlldTransmit_t; - -int CDECL TRlldAdapterSize(void); - -int CDECL TRlldInit(int TypeCount, - TRlldAdapterType_t * AdapterTypeTable); - -extern TRlldAdapterType_t CDECL TRlld3115; /* ISA adapters */ -extern TRlldAdapterType_t CDECL TRlld3117; -extern TRlldAdapterType_t CDECL TRlld3118; -extern TRlldAdapterType_t CDECL TRlld3129; /* MCA adapters */ -extern TRlldAdapterType_t CDECL TRlld3133; /* EISA adapters */ -extern TRlldAdapterType_t CDECL TRlld3136; /* PCI adapters */ -extern TRlldAdapterType_t CDECL TRlld3137; -extern TRlldAdapterType_t CDECL TRlld3139; /* Hawkeye adapters */ -extern TRlldAdapterType_t CDECL TRlld3540; /* BUllseye adapter */ - -#define T3115 &TRlld3115 -#define T3117 &TRlld3117 -#define T3118 &TRlld3118 -#define T3129 &TRlld3129 -#define T3133 &TRlld3133 -#define T3136 &TRlld3136 -#define T3137 &TRlld3137 -#define T3139 &TRlld3139 -#define T3540 &TRlld3540 - -/* Only for Boot Prom Page Zero code */ - -extern TRlldAdapterType_t CDECL TRlld3115Boot; /* ISA adapters */ -extern TRlldAdapterType_t CDECL TRlld3117Boot; -extern TRlldAdapterType_t CDECL TRlld3118Boot; -extern TRlldAdapterType_t CDECL TRlld3129Boot; /* MCA adapters */ -extern TRlldAdapterType_t CDECL TRlld3133Boot; /* EISA adapters */ -extern TRlldAdapterType_t CDECL TRlld3136Boot; /* PCI adapters */ -extern TRlldAdapterType_t CDECL TRlld3137Boot; -extern TRlldAdapterType_t CDECL TRlld3139Boot; /* Hawkeye adapters */ -extern TRlldAdapterType_t CDECL TRlld3540Boot; /* Bullseye adapters */ - -#define B3115 &TRlld3115Boot -#define B3117 &TRlld3117Boot -#define B3118 &TRlld3118Boot -#define B3129 &TRlld3129Boot -#define B3133 &TRlld3133Boot -#define B3136 &TRlld3136Boot -#define B3137 &TRlld3137Boot -#define B3139 &TRlld3139Boot -#define B3540 &TRlld3540Boot - -#define TRLLD_INIT_OK 0 -#define TRLLD_INIT_UNKNOWN 5 - -int CDECL TRlldAdapterInit(TRlldDriver_t * DriverDefinition, - TRlldAdapter_t * TRlldAdapter, - unsigned long TRlldAdapterPhysical, - void * DriverHandle, - TRlldAdapterConfig_t * config); - -#define TRLLD_INIT_OK 0 -#define TRLLD_INIT_NOT_FOUND 1 -#define TRLLD_INIT_UNSUPPORTED 2 -#define TRLLD_INIT_PHYS16 3 -#define TRLLD_INIT_VERSION 4 - -int CDECL TRlldSetSpeed(TRlldAdapter_t * adapter, - unsigned char speed); - -#define TRLLD_SPEED_4MBPS 4 -#define TRLLD_SPEED_16MBPS 16 -#define TRLLD_SPEED_100MBPS 100 - -int CDECL TRlldSetInterrupt(TRlldAdapter_t * adapter, - unsigned char interruptlevel); - -int CDECL TRlldSetDMA(TRlldAdapter_t * adapter, - unsigned char dma, unsigned char * mode); - -#define TRLLD_CONFIG_OK 0 -#define TRLLD_CONFIG_STATE 1 -#define TRLLD_CONFIG_ILLEGAL 2 -#define TRLLD_CONFIG_FAILED 3 - -int CDECL TRlldSetSpecial(TRlldAdapter_t * adapter, - unsigned short param1, unsigned short param2, - unsigned short param3, unsigned short param4); - -int CDECL TRlldAddMemory(TRlldAdapter_t * adapter, - TRlldDataPtr_t virtual, - unsigned long physical, - long size); - -int CDECL TRlldDisable(TRlldAdapter_t * adapter); - -#define TRLLD_OK 0 -#define TRLLD_NOT_SUPPORTED 1 - -void CDECL TRlldEnable(TRlldAdapter_t * adapter); - -int CDECL TRlldInterruptPresent(TRlldAdapter_t * adapter); - -#define TRLLD_NO_INTERRUPT 0 -#define TRLLD_INTERRUPT 1 - -int CDECL TRlldInterruptService(TRlldAdapter_t * adapter); - -int CDECL TRlldInterruptPreService(TRlldAdapter_t * adapter); - -void CDECL TRlldInterruptPostService(TRlldAdapter_t * adapter); - - -int CDECL TRlldPoll(TRlldAdapter_t * adapter); - -int CDECL TRlldDownload(TRlldAdapter_t * adapter, - char * DownLoadCode); - -#define TRLLD_DOWNLOAD_OK 0 -#define TRLLD_DOWNLOAD_ERROR 1 -#define TRLLD_STATE 2 - -typedef int (CDECL * GetCode_t)(void * handle, unsigned char * maccodebyte); - -int CDECL TRlldStreamDownload(TRlldAdapter_t * adapter, - GetCode_t procedure, void * handle); - -int CDECL TRlldOpen(TRlldAdapter_t * adapter, - unsigned char * MACAddress, - unsigned long GroupAddress, - unsigned long FunctionalAddress, - unsigned short MaxFrameSize, - unsigned short OpenModes); - -#define TRLLD_OPEN_OK 0 -#define TRLLD_OPEN_STATE 1 -#define TRLLD_OPEN_ADDRESS_ERROR 2 -#define TRLLD_OPEN_MODE_ERROR 3 -#define TRLLD_OPEN_MEMORY 4 - -#define TRLLD_MODE_TX_STATUS 0x01 -#define TRLLD_MODE_RX_SINGLE 0x02 -#define TRLLD_MODE_FORCE_TKP 0x04 -#define TRLLD_MODE_FORCE_TXI 0x08 -#define TRLLD_MODE_TX_CRC 0x10 - -void CDECL TRlldClose(TRlldAdapter_t * adapter, int immediate); - -void CDECL TRlldSetGroupAddress(TRlldAdapter_t * adapter, - unsigned long GroupAddress); - -void CDECL TRlldSetFunctionalAddress(TRlldAdapter_t * adapter, - unsigned long FunctionalAddress); - -void CDECL TRlldSetPromiscuousMode(TRlldAdapter_t * adapter, - unsigned char mode); - -/* mode bits */ - -#define TRLLD_PROM_LLC 1 -#define TRLLD_PROM_MAC 2 -#define TRLLD_PROM_ERRORFRAMES 4 - -int CDECL TRlldGetStatistics(TRlldAdapter_t * adapter, - TRlldStatistics_t * statistics, - int immediate); - -#define TRLLD_IMMEDIATE_STATISTICS 1 - -#define TRLLD_STATISTICS_RETRIEVED 0 -#define TRLLD_STATISTICS_PENDING 1 - -int CDECL TRlldTransmitFrame(TRlldAdapter_t * adapter, - TRlldTransmit_t * TransmitFrame, - void * FrameHandle); - -#define TRLLD_TRANSMIT_OK 0 -#define TRLLD_TRANSMIT_NOT_OPEN 1 -#define TRLLD_TRANSMIT_TOO_MANY 2 -#define TRLLD_TRANSMIT_MAX16 3 -#define TRLLD_TRANSMIT_SIZE 4 -#define TRLLD_TRANSMIT_EMPTY 5 - -/* completion flags */ - -#define TRLLD_TX_OK 0 -#define TRLLD_TX_NOT_PROCESSED 1 -#define TRLLD_TX_NOT_RECOGNIZED 2 -#define TRLLD_TX_NOT_COPIED 3 - -/* number of free transmit fragments */ - -int CDECL TRlldTransmitFree(TRlldAdapter_t * adapter); - -int CDECL TRlldReceiveFragment(TRlldAdapter_t * adapter, - TRlldDataPtr_t FragmentStart, - unsigned long FragmentPhysical, - int count, - void * FragmentHandle); - -#define TRLLD_RECEIVE_OK 0 -#define TRLLD_RECEIVE_NOT_OPEN 1 -#define TRLLD_RECEIVE_TOO_MANY 2 -#define TRLLD_RECEIVE_SIZE 3 -#define TRLLD_RECEIVE_MAX16 4 - -/* completion flags */ - -#define TRLLD_RCV_OK 0 -#define TRLLD_RCV_NO_DATA 1 -#define TRLLD_RCV_ERROR 2 /* Only when TRLLD_PROM_ERRORFRAMES */ -#define TRLLD_RCV_LONG 3 - -/* number of free receive fragments */ - -int CDECL TRlldReceiveFree(TRlldAdapter_t * adapter); - -int CDECL TRlldFind(TRlldDriver_t * driver, - TRlldAdapterConfig_t * config_table, - unsigned long type_mask, - int max); - -/* type mask bits */ - -#define OC_3115 0x0001 -#define OC_3117 0x0002 -#define OC_3118 0x0004 -#define OC_3129 0x0008 -#define OC_3133 0x0010 -#define OC_3136 0x0040 -#define OC_3137 0x0080 -#define OC_3139 0x0100 -#define OC_3140 0x0200 -#define OC_3141 0x0400 -#define OC_3540 0x0800 - -#ifdef PCMCIA -#define OC_3220 0x0800 -#define OC_3221 0x1000 -#define OC_3230 0x2000 -#define OC_3232 0x4000 -#endif - -#define OC_3250 0x8000 - -int CDECL TRlldIOAddressConfig(TRlldDriver_t * driver, - TRlldAdapterConfig_t * config, - unsigned short address); - - -#define TRLLD_FIND_OK 1 -#define TRLLD_FIND_ERROR 0 -#define TRLLD_FIND_VERSION -1 - -int CDECL TRlldEISASlotConfig(TRlldDriver_t * driver, - TRlldAdapterConfig_t * config, - int slot); - -int CDECL TRlldMCASlotConfig(TRlldDriver_t * driver, - TRlldAdapterConfig_t * config, - int slot); - -int CDECL TRlldPCIConfig(TRlldDriver_t * driver, - TRlldAdapterConfig_t * config, - char * PCIConfigurationSpace); - -#define TRLLD_PCICONFIG_OK 0 -#define TRLLD_PCICONFIG_FAIL 1 -#define TRLLD_PCICONFIG_SET_COMMAND 2 -#define TRLLD_PCICONFIG_VERSION 3 - - -int CDECL TRlldFindPCI(TRlldDriver_t * driver, - TRlldAdapterConfig_t * config_table, - unsigned long type_mask, - int max); - -#ifdef PCMCIA -typedef void * PCCardHandle_t; - -typedef int (CDECL * GetTupleData_t)(PCCardHandle_t handle, - unsigned short TupleIdent, - char * TupleData, - int length); - -int CDECL TRlldPCCardConfig(TRlldDriver_t * driver, - TRlldAdapterConfig_t * config, - unsigned short address, - int irq, - GetTupleData_t GetTuple, - PCCardHandle_t handle); - -#define TRLLD_PCCARD_CONFIG_OK 0 -#define TRLLD_PCCARD_CONFIG_FAIL 1 -#endif - -/* Boot Prom Support */ - -typedef struct TRlldPromInfo { - unsigned short PromIdent; - short PromPages; - short PromPageSize; -} TRlldPromInfo_t; - -int CDECL TRlldMapBootProm(TRlldAdapter_t * adapter, - TRlldDataPtr_t prompointer); - -#define TRLLD_PROM_OK 0 -#define TRLLD_PROM_FAILED 3 - -int CDECL TRlldGetPromInfo(TRlldAdapter_t * adapter, TRlldPromInfo_t * info); - -#define TRLLD_PROM_OK 0 -#define TRLLD_PROM_NOT_MOUNTED 1 -#define TRLLD_PROM_NOT_MAPPED 2 - -void CDECL TRlldSetPromPage(TRlldAdapter_t * adapter, int page); - -int CDECL TRlldSetMemoryUse(TRlldAdapter_t * adapter, int use); - -#define TRLLD_PROM_TO_MEMORY 0 -#define TRLLD_REGISTERS_TO_MEMORY 1 - -#define TRLLD_MEMORY_USE_OK 0 -#define TRLLD_MEMORY_USE_NO_MEMORY 1 -#define TRLLD_MEMORY_USE_STATE 2 -#define TRLLD_MEMORY_USE_ILLEGAL 3 - -int CDECL TRlldPromErase(TRlldAdapter_t * adapter, - void (CDECL * delay)(int milliseconds)); - -#define TRLLD_PROM_OK 0 -#define TRLLD_PROM_NOT_MOUNTED 1 -#define TRLLD_PROM_NOT_MAPPED 2 -#define TRLLD_PROM_FAILED 3 - -int CDECL TRlldPromWrite(TRlldAdapter_t * adapter, char * data, - int offset, int count); - -#define TRLLD_PROM_OK 0 -#define TRLLD_PROM_NOT_MOUNTED 1 -#define TRLLD_PROM_NOT_MAPPED 2 -#define TRLLD_PROM_FAILED 3 -#define TRLLD_PROM_ILLEGAL 4 - -void CDECL TRlldEmergency(TRlldAdapter_t * adapter); - -/* Convert from TRlldAdapterConfig.type to name string */ -char * CDECL TRlldAdapterName(int type); -#endif diff --git a/sys/contrib/dev/oltr/trlldbm.c b/sys/contrib/dev/oltr/trlldbm.c deleted file mode 100644 index c4400f383e11..000000000000 --- a/sys/contrib/dev/oltr/trlldbm.c +++ /dev/null @@ -1,2011 +0,0 @@ -/* - ****************************** trlld.h *********************************** - * - * Copyright (c) 1997 - * OLICOM A/S - * Denmark - * - * All Rights Reserved - * - * This source file is subject to the terms and conditions of the - * OLICOM Software License Agreement which restricts the manner - * in which it may be used. - * - *--------------------------------------------------------------------------- - * - * Description: Olicom Bullseye adapter micro-code - * - *--------------------------------------------------------------------------- - */ - -#include "opt_oltr.h" - -#ifndef OLTR_NO_BULLSEYE_MAC - -unsigned char TRlldBullseyeMac[] = { 0x52, 0x94, 0x03, 0x00, 0x02, 0x7c, 0x7d, 0xb7, 0x4f, 0x43, 0x53, 0x4d, 0x41, 0x43, 0x2e, 0x42, - 0x55, 0x4c, 0x4c, 0x53, 0x45, 0x59, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xea, 0x55, 0x00, 0x00, 0x00, 0xfc, 0xfa, 0xb8, 0x00, 0x00, 0xbb, 0x00, - 0x00, 0xb9, 0x00, 0x00, 0xba, 0x00, 0x00, 0xbe, 0x00, 0x00, 0xbf, 0x00, 0x00, 0xbd, 0x00, 0x00, - 0x8c, 0xc8, 0x8e, 0xd8, 0x8e, 0xc0, 0x8e, 0xd0, 0xb8, 0x7e, 0x5e, 0x8b, 0xe0, 0x83, 0x3e, 0x4e, - 0x00, 0x00, 0x75, 0x1c, 0x2b, 0xdb, 0x8b, 0xf3, 0xad, 0x8b, 0xd8, 0x8b, 0xc8, 0xd1, 0xe9, 0x49, - 0x49, 0xad, 0x03, 0xd8, 0xe2, 0xfb, 0x0b, 0xdb, 0x74, 0x06, 0xc7, 0x06, 0x50, 0x5d, 0x01, 0x00, - 0xb8, 0x00, 0x00, 0x8e, 0xd8, 0xc7, 0x06, 0x0c, 0x00, 0x9a, 0x01, 0x8c, 0x0e, 0x0e, 0x00, 0xc7, - 0x06, 0x04, 0x00, 0x9a, 0x01, 0x8c, 0x0e, 0x06, 0x00, 0xc7, 0x06, 0x14, 0x00, 0x9a, 0x01, 0x8c, - 0x0e, 0x14, 0x00, 0xc7, 0x06, 0x08, 0x00, 0x9a, 0x01, 0x8c, 0x0e, 0x08, 0x00, 0x90, 0x90, 0x90, - 0xc7, 0x06, 0x20, 0x00, 0xf2, 0x23, 0x8c, 0x0e, 0x22, 0x00, 0x2b, 0xc0, 0xe7, 0x06, 0xc7, 0x06, - 0x30, 0x00, 0xe4, 0x0d, 0x8c, 0x0e, 0x32, 0x00, 0xc7, 0x06, 0x34, 0x00, 0xde, 0x0e, 0x8c, 0x0e, - 0x36, 0x00, 0xc7, 0x06, 0x38, 0x00, 0x10, 0x0f, 0x8c, 0x0e, 0x3a, 0x00, 0xc7, 0x06, 0x3c, 0x00, - 0x9a, 0x01, 0x8c, 0x0e, 0x3e, 0x00, 0xc7, 0x06, 0x08, 0x00, 0x9a, 0x01, 0x8c, 0x0e, 0x0a, 0x00, - 0xc7, 0x06, 0x14, 0x00, 0x9a, 0x01, 0x8c, 0x0e, 0x16, 0x00, 0xbb, 0x40, 0x60, 0x8e, 0xc3, 0x26, - 0x83, 0x0e, 0x32, 0x00, 0x08, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, 0xc0, 0x26, 0x83, 0x26, - 0x32, 0x00, 0xf7, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, 0xc0, 0x26, 0x83, 0x0e, 0x32, 0x00, - 0x08, 0x2a, 0xe4, 0xb0, 0x13, 0xe6, 0x10, 0x90, 0x90, 0x90, 0xb0, 0x08, 0xe6, 0x12, 0x90, 0x90, - 0x90, 0xb0, 0x09, 0xe6, 0x12, 0x90, 0x90, 0x90, 0xb0, 0xff, 0xe6, 0x12, 0x90, 0x90, 0x90, 0x26, - 0x83, 0x26, 0x32, 0x00, 0xf7, 0x90, 0x90, 0x90, 0x33, 0xc0, 0x26, 0xc7, 0x06, 0x44, 0x00, 0xff, - 0xff, 0x26, 0xc7, 0x06, 0x46, 0x00, 0xff, 0xff, 0x26, 0x09, 0x06, 0x48, 0x00, 0x26, 0x09, 0x06, - 0x4a, 0x00, 0xb8, 0x00, 0x00, 0xe7, 0x06, 0xb8, 0x0f, 0x27, 0xe7, 0x00, 0xb8, 0x09, 0x00, 0xe7, - 0x06, 0xb0, 0x11, 0xe8, 0x7f, 0x0a, 0xe8, 0xbd, 0x0a, 0xfb, 0xe9, 0x67, 0x0b, 0x90, 0x50, 0xb0, - 0xa0, 0xe6, 0x10, 0x58, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xf0, 0xf0, 0xf0, 0xf0, 0xe7, 0xe7, 0xe7, 0x31, 0x36, - 0x31, 0x32, 0x39, 0x38, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, - 0x63, 0x29, 0x20, 0x31, 0x39, 0x39, 0x38, 0x20, 0x4f, 0x6c, 0x69, 0x63, 0x6f, 0x6d, 0x2e, 0x20, - 0x41, 0x6c, 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x20, 0x2c, 0x21, 0x2c, 0x21, 0x6e, 0x37, 0x1f, 0x3b, 0x1b, 0x3d, 0x61, 0x3e, - 0xa3, 0x3f, 0xeb, 0x42, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x54, 0x41, 0xaa, 0x41, 0x3b, 0x42, - 0xb8, 0x42, 0xbd, 0x42, 0xc2, 0x42, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x83, 0x3a, - 0x2c, 0x21, 0x2c, 0x21, 0x03, 0x39, 0x63, 0x39, 0x63, 0x39, 0x40, 0x3a, 0x63, 0x39, 0x68, 0x3a, - 0xa4, 0x3a, 0x2c, 0x21, 0x2c, 0x21, 0x54, 0x41, 0xaa, 0x41, 0x3b, 0x42, 0xb8, 0x42, 0xbd, 0x42, - 0xc2, 0x42, 0x2c, 0x21, 0x7d, 0x39, 0x2c, 0x21, 0x08, 0x3a, 0x2c, 0x21, 0xd9, 0x3a, 0xff, 0x3a, - 0xaa, 0x34, 0xaa, 0x34, 0xaa, 0x34, 0xaa, 0x34, 0x74, 0x35, 0x9f, 0x36, 0xaa, 0x34, 0x86, 0x35, - 0x32, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, - 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, - 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, - 0xde, 0x35, 0xaa, 0x34, 0xaa, 0x34, 0xaa, 0x34, 0xaa, 0x34, 0xaa, 0x34, 0x11, 0x36, 0xaa, 0x34, - 0xaa, 0x34, 0x23, 0x36, 0xaa, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x04, 0x04, 0x05, 0xff, 0xff, 0xff, 0x00, 0x03, 0x00, 0x03, 0x03, 0x00, 0x03, 0x0d, 0x06, - 0xff, 0xff, 0x18, 0x06, 0x28, 0x06, 0x28, 0x06, 0x28, 0x06, 0x28, 0x06, 0x00, 0x00, 0x33, 0x06, - 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x39, 0x06, 0x58, 0x06, 0x9e, 0x06, 0x9e, 0x06, 0x9e, 0x06, - 0x6d, 0x06, 0x7d, 0x06, 0x00, 0x00, 0x83, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x2c, 0x21, 0x73, 0x43, 0x3e, 0x17, 0x5f, 0x34, 0xd5, 0x27, 0x0d, 0x4a, 0x2c, 0x21, 0xad, 0x43, - 0x86, 0x47, 0xcf, 0x45, 0xcf, 0x43, 0x42, 0x45, 0x47, 0x47, 0x0b, 0x45, 0xff, 0x46, 0x0d, 0x48, - 0x57, 0x48, 0x44, 0x48, 0x26, 0x47, 0x64, 0x48, 0x89, 0x48, 0xb4, 0x48, 0x47, 0x48, 0xd2, 0x48, - 0x16, 0x03, 0x3c, 0x03, 0x5c, 0x03, 0x88, 0x03, 0xae, 0x03, 0x26, 0x04, 0x8c, 0x04, 0xc6, 0x04, - 0x10, 0x05, 0x02, 0x06, 0xe8, 0x01, 0x10, 0x03, 0x36, 0x03, 0x64, 0x03, 0x82, 0x03, 0xa8, 0x03, - 0x86, 0x04, 0xc0, 0x04, 0x0a, 0x05, 0xfc, 0x05, 0xe4, 0x01, 0x2e, 0x04, 0x94, 0x04, 0x00, 0x03, - 0x2a, 0x03, 0x50, 0x03, 0x76, 0x03, 0x9c, 0x03, 0xc2, 0x03, 0xbc, 0x03, 0xda, 0x03, 0x98, 0x05, - 0x0e, 0x04, 0x7a, 0x04, 0xb4, 0x04, 0xda, 0x04, 0xfa, 0x04, 0xe0, 0x05, 0x24, 0x05, 0x48, 0x05, - 0x64, 0x05, 0x7c, 0x05, 0xf4, 0x03, 0xb0, 0x05, 0xc8, 0x05, 0x20, 0x5c, 0x28, 0x5c, 0x34, 0x5c, - 0x3c, 0x5c, 0x44, 0x5c, 0x6a, 0x5c, 0x7e, 0x5c, 0x86, 0x5c, 0x92, 0x5c, 0xb8, 0x5c, 0xcc, 0x5c, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, - 0xe6, 0x1d, 0x50, 0x1e, 0x7c, 0x1e, 0xf2, 0x1e, 0x14, 0x1f, 0xa6, 0x1f, 0x04, 0x20, 0x2c, 0x21, - 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x30, 0x20, 0x58, 0x20, 0xc4, 0x20, 0xe8, 0x20, 0x24, 0x21, - 0x2c, 0x21, 0x2c, 0x21, 0xde, 0x16, 0x0e, 0x18, 0x92, 0x18, 0x94, 0x18, 0xb0, 0x18, 0xd6, 0x18, - 0xf2, 0x18, 0x80, 0x19, 0xf8, 0x19, 0x48, 0x1b, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, - 0x58, 0x22, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, - 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, - 0x2c, 0x21, 0x2c, 0x21, 0x84, 0x1b, 0xf4, 0x1b, 0x9e, 0x1c, 0xea, 0x1c, 0x6c, 0x1d, 0x8c, 0x1d, - 0xba, 0x1d, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, - 0xaa, 0x55, 0x00, 0xff, 0xf6, 0x46, 0x01, 0x01, 0x75, 0x48, 0xc6, 0x86, 0x0e, 0x01, 0x05, 0xe8, - 0x73, 0x01, 0xe8, 0x0d, 0x06, 0xe8, 0x02, 0x03, 0xe8, 0x5c, 0x03, 0x73, 0x19, 0xfe, 0x8e, 0x0e, - 0x01, 0x74, 0x0d, 0xe8, 0xaa, 0x03, 0x8b, 0x86, 0x0f, 0x01, 0x26, 0xa3, 0x42, 0x00, 0xeb, 0xdf, - 0xc7, 0x06, 0x50, 0x5d, 0x02, 0x00, 0x32, 0xe4, 0x8a, 0x46, 0x00, 0xe8, 0x48, 0x04, 0x83, 0x3e, - 0x4e, 0x00, 0x02, 0x72, 0x03, 0xe8, 0x61, 0x03, 0xa1, 0x50, 0x5d, 0xe8, 0xb3, 0x42, 0xc6, 0x46, - 0x01, 0x01, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x74, 0x27, 0xf6, 0x86, 0x6c, 0x01, 0x01, 0x74, 0x03, - 0xe8, 0x16, 0x55, 0xf6, 0x86, 0x6d, 0x01, 0x01, 0x74, 0x03, 0xe8, 0x64, 0x55, 0xf7, 0x86, 0x82, - 0x01, 0x01, 0x00, 0x75, 0x08, 0xf7, 0x86, 0x8a, 0x01, 0x01, 0x00, 0x74, 0x03, 0xe8, 0x40, 0x52, - 0xe8, 0x5a, 0x05, 0xe8, 0x26, 0x05, 0xe8, 0x9e, 0x04, 0xe8, 0x43, 0x04, 0xf6, 0x86, 0x95, 0x02, - 0x01, 0x74, 0x03, 0xe8, 0x78, 0x1c, 0x33, 0xdb, 0xf6, 0x86, 0xae, 0x02, 0x01, 0x74, 0x16, 0x8a, - 0x5e, 0x09, 0x8a, 0x7e, 0x08, 0x38, 0xfb, 0x75, 0x30, 0x80, 0xfb, 0x00, 0x74, 0x07, 0x80, 0xfb, - 0x1e, 0x74, 0x02, 0xeb, 0x22, 0x80, 0x7e, 0x06, 0x1e, 0x74, 0x1e, 0x33, 0xdb, 0x8a, 0x5e, 0x07, - 0x3a, 0x5e, 0x06, 0x74, 0x14, 0xfa, 0x50, 0x8b, 0x46, 0x06, 0x89, 0x46, 0x0c, 0x58, 0x88, 0x5e, - 0x06, 0x32, 0xff, 0xff, 0x97, 0x9e, 0x05, 0xeb, 0x32, 0x8a, 0x5e, 0x09, 0x3a, 0x5e, 0x08, 0x74, - 0x2a, 0x50, 0x8b, 0x46, 0x08, 0x89, 0x46, 0x0e, 0x58, 0x80, 0xfb, 0x1e, 0x74, 0x12, 0x80, 0xfb, - 0x00, 0x74, 0x0d, 0x80, 0xfb, 0x0c, 0x74, 0x08, 0x80, 0xfb, 0x16, 0x74, 0x03, 0xe8, 0x31, 0x2c, - 0x88, 0x5e, 0x08, 0x32, 0xff, 0xfa, 0xff, 0x97, 0x7c, 0x05, 0xfb, 0xfa, 0xf7, 0x86, 0xf0, 0x00, - 0xff, 0xff, 0x74, 0x0f, 0x8b, 0xb6, 0xf0, 0x00, 0x8b, 0x4c, 0x04, 0xe8, 0xce, 0x09, 0xfb, 0xff, - 0xd1, 0xeb, 0x5c, 0xfb, 0xf7, 0x46, 0x16, 0xff, 0xff, 0x74, 0x27, 0x8d, 0x7e, 0x16, 0xe8, 0x64, - 0x06, 0x56, 0x8b, 0x5c, 0x02, 0xd1, 0xe3, 0xff, 0x97, 0xcc, 0x04, 0x5e, 0xe8, 0x68, 0x06, 0xf7, - 0x86, 0xcc, 0x01, 0x01, 0x00, 0x74, 0x09, 0xe8, 0xbf, 0x25, 0xc7, 0x86, 0xcc, 0x01, 0x00, 0x00, - 0xeb, 0x2d, 0xfa, 0xf7, 0x86, 0x0a, 0x01, 0x01, 0x00, 0x75, 0x13, 0xf6, 0x86, 0xc4, 0x15, 0x80, - 0x75, 0x0c, 0xc7, 0x86, 0x0a, 0x01, 0x01, 0x00, 0xfb, 0xe8, 0x0b, 0x3c, 0xeb, 0x11, 0xfa, 0x8b, - 0x86, 0x67, 0x02, 0x38, 0xc4, 0x74, 0x07, 0x88, 0x86, 0x68, 0x02, 0xe8, 0xe5, 0x1a, 0xfb, 0xe8, - 0xcd, 0x05, 0xe9, 0xcd, 0xfe, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x44, 0x00, 0xff, 0xcb, 0x8e, - 0x46, 0x02, 0x26, 0xc7, 0x06, 0x48, 0x00, 0xff, 0xfb, 0xe8, 0xa1, 0x02, 0x33, 0xc0, 0x88, 0x86, - 0xb8, 0x01, 0x88, 0x86, 0xb9, 0x01, 0x8e, 0x46, 0x02, 0x26, 0xa2, 0x5a, 0x00, 0x89, 0x86, 0x18, - 0x02, 0x89, 0x86, 0x0a, 0x02, 0x89, 0x86, 0x3a, 0x02, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x4c, - 0x00, 0x30, 0x01, 0x8d, 0x86, 0xa8, 0x08, 0x89, 0x86, 0xc0, 0x01, 0x89, 0x86, 0xc2, 0x01, 0xc7, - 0x86, 0xc4, 0x01, 0x01, 0x00, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0xbe, 0x58, 0x02, 0xb9, - 0x52, 0x00, 0xd1, 0xe9, 0xf3, 0xab, 0xd1, 0xd1, 0xf3, 0xaa, 0x8d, 0xbe, 0xec, 0x05, 0xab, 0xab, - 0xaa, 0x8d, 0xbe, 0xf4, 0x05, 0xab, 0xab, 0xaa, 0x8d, 0xbe, 0xb8, 0x02, 0xb9, 0x0b, 0x00, 0xf3, - 0xab, 0xc7, 0x86, 0xc8, 0x01, 0x14, 0x00, 0xc7, 0x86, 0xc0, 0x02, 0x04, 0x00, 0xbb, 0xfc, 0x04, - 0xb9, 0x0b, 0x00, 0x8b, 0x3f, 0x03, 0xfd, 0xab, 0xab, 0xab, 0x43, 0x43, 0xe2, 0xf5, 0xbb, 0x12, - 0x05, 0xb9, 0x0a, 0x00, 0x8b, 0x3f, 0x03, 0xfd, 0xab, 0xab, 0x43, 0x43, 0xe2, 0xf6, 0xb8, 0x02, - 0x00, 0x03, 0x06, 0x2a, 0x5d, 0xe8, 0x19, 0x05, 0x39, 0x06, 0x2a, 0x5d, 0x75, 0xf7, 0x8e, 0x46, - 0x02, 0x26, 0x83, 0x0e, 0x4c, 0x00, 0x02, 0xc7, 0x86, 0x0c, 0x02, 0xc8, 0x00, 0xc7, 0x86, 0xfc, - 0x01, 0xff, 0xff, 0xc7, 0x86, 0xfa, 0x01, 0x07, 0x00, 0xc6, 0x86, 0x8c, 0x02, 0x00, 0xe8, 0x01, - 0x00, 0xc3, 0x8e, 0x46, 0x02, 0x33, 0xc0, 0xfa, 0x89, 0x86, 0xb6, 0x01, 0x8e, 0x46, 0x02, 0x26, - 0xa3, 0x50, 0x00, 0x8b, 0x86, 0xa8, 0x15, 0x26, 0xa3, 0x70, 0x00, 0x89, 0x86, 0xb2, 0x01, 0x93, - 0xc7, 0x07, 0x00, 0x00, 0xc7, 0x47, 0x02, 0xff, 0xff, 0x93, 0xc1, 0xe8, 0x08, 0x26, 0xa3, 0x74, - 0x00, 0x8b, 0x86, 0xaa, 0x15, 0x26, 0xa3, 0x78, 0x00, 0x26, 0xa1, 0x78, 0x00, 0x93, 0xc7, 0x47, - 0xfc, 0xde, 0xad, 0xc7, 0x47, 0xfe, 0xbe, 0xaf, 0x93, 0xc1, 0xe8, 0x08, 0x26, 0xa3, 0x76, 0x00, - 0x33, 0xc0, 0xc6, 0x86, 0x87, 0x02, 0x01, 0x8d, 0xb6, 0xa8, 0x09, 0xc7, 0x86, 0xa6, 0x01, 0xb0, - 0x09, 0x01, 0xae, 0xa6, 0x01, 0x89, 0xb6, 0xa8, 0x01, 0x89, 0xb6, 0xaa, 0x01, 0xc7, 0x04, 0x30, - 0x80, 0xc7, 0x44, 0x04, 0x00, 0x00, 0xc6, 0x86, 0x8a, 0x02, 0x01, 0xfb, 0xe8, 0xa7, 0x08, 0x80, - 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x33, 0xb8, 0x00, 0x40, 0x80, 0xbe, 0xfe, 0x00, 0x00, 0x74, 0x13, - 0x25, 0xff, 0x1f, 0x0d, 0x00, 0xa0, 0x83, 0xe0, 0xfd, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x4c, - 0x00, 0x80, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x40, 0x00, 0xa1, 0x2a, 0x5d, 0x83, 0xc0, 0x02, - 0xe8, 0x3e, 0x04, 0x39, 0x06, 0x2a, 0x5d, 0x75, 0xf7, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, - 0x40, 0x00, 0x08, 0xbe, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x42, 0x00, 0xc8, 0x8e, 0x46, 0x02, - 0x26, 0xc7, 0x06, 0x4c, 0x00, 0xa0, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x50, 0x00, 0x04, - 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x40, 0x00, 0x7f, 0xff, 0x90, 0x90, 0x8e, 0x46, 0x02, - 0x26, 0x81, 0x0e, 0x40, 0x00, 0x80, 0x00, 0x90, 0x90, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x40, - 0x00, 0x7f, 0xff, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x68, 0x00, 0x18, 0x00, 0x8e, 0x46, 0x02, - 0x26, 0x83, 0x0e, 0x4c, 0x00, 0x01, 0xc3, 0xc6, 0x86, 0x0c, 0x01, 0x01, 0xc6, 0x86, 0x0d, 0x01, - 0x00, 0xe8, 0xcc, 0x27, 0xa1, 0x2a, 0x5d, 0x83, 0xc0, 0x02, 0x0b, 0xc0, 0x0b, 0xc0, 0x0b, 0xc0, - 0x0b, 0xc0, 0x39, 0x06, 0x2a, 0x5d, 0x72, 0xf2, 0x80, 0xbe, 0x0d, 0x01, 0x01, 0x74, 0x03, 0xf9, - 0xeb, 0x01, 0xf8, 0xc6, 0x86, 0x0c, 0x01, 0x00, 0xc3, 0xb8, 0x00, 0x00, 0x88, 0x86, 0x06, 0x01, - 0x88, 0x86, 0x07, 0x01, 0x88, 0x86, 0x08, 0x01, 0x88, 0x86, 0x09, 0x01, 0x89, 0x86, 0x0a, 0x01, - 0x88, 0x86, 0xb8, 0x01, 0x88, 0x86, 0xb9, 0x01, 0x88, 0x86, 0xd1, 0x01, 0xa2, 0x81, 0x5e, 0xc3, - 0xb8, 0x40, 0x60, 0x8e, 0xc0, 0x26, 0x83, 0x0e, 0x32, 0x00, 0x08, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, - 0xc0, 0x2b, 0xc0, 0x26, 0x83, 0x26, 0x32, 0x00, 0xf7, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, - 0xc0, 0x2b, 0xc0, 0x26, 0x83, 0x0e, 0x32, 0x00, 0x08, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, - 0xc0, 0x26, 0x83, 0x26, 0x32, 0x00, 0xf7, 0xc3, 0x50, 0x53, 0x52, 0xc6, 0x46, 0x01, 0x00, 0x32, - 0xe4, 0x8a, 0x46, 0x00, 0xbb, 0x00, 0xbd, 0x81, 0xeb, 0x00, 0x7c, 0x81, 0xe3, 0x00, 0xff, 0x89, - 0x9e, 0xac, 0x15, 0x81, 0xc3, 0x00, 0x01, 0xf7, 0xe3, 0x05, 0x00, 0x7c, 0x89, 0x86, 0xa8, 0x15, - 0x03, 0x86, 0xac, 0x15, 0x48, 0x89, 0x86, 0xaa, 0x15, 0x5a, 0x5b, 0x58, 0xc3, 0x51, 0x8e, 0x46, - 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xfc, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x54, 0x00, 0x80, - 0x00, 0x75, 0x1e, 0xb9, 0xf4, 0x01, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x4c, 0x00, 0x00, 0x08, - 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x54, 0x00, 0x80, 0x00, 0x75, 0x05, 0xe8, 0xe2, 0x02, 0xe2, - 0xe5, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x4c, 0x00, 0xff, 0xf7, 0x59, 0x8e, 0x46, 0x02, 0x26, - 0x83, 0x0e, 0x4c, 0x00, 0x02, 0xc3, 0x50, 0x53, 0xc1, 0xe0, 0x05, 0x05, 0x00, 0x03, 0x8b, 0xd8, - 0x8d, 0x86, 0x00, 0x01, 0x89, 0x07, 0x8d, 0x86, 0xd4, 0x01, 0x89, 0x47, 0x02, 0x8d, 0x86, 0xe4, - 0x01, 0x89, 0x47, 0x04, 0x8d, 0x86, 0xb0, 0x15, 0x89, 0x47, 0x08, 0x8d, 0x86, 0xc4, 0x15, 0x89, - 0x47, 0x06, 0x8d, 0x86, 0xc0, 0x01, 0x89, 0x47, 0x0a, 0xc7, 0x47, 0x0c, 0x94, 0x5e, 0x8d, 0x86, - 0x40, 0x02, 0x89, 0x47, 0x0e, 0x8d, 0x06, 0x2a, 0x5d, 0x89, 0x47, 0x10, 0x5b, 0x58, 0xc3, 0x50, - 0xf7, 0x86, 0xf6, 0x00, 0x02, 0x00, 0x75, 0x02, 0xeb, 0x4b, 0xf6, 0x86, 0x64, 0x02, 0x01, 0x75, - 0x07, 0xf6, 0x86, 0x72, 0x02, 0x01, 0x74, 0x3d, 0xf6, 0x86, 0x89, 0x02, 0x01, 0x74, 0x36, 0xc6, - 0x86, 0x89, 0x02, 0x00, 0x8b, 0x86, 0x0a, 0x02, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x40, 0x74, 0x03, - 0x25, 0xff, 0xaf, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x20, 0x74, 0x03, 0x25, 0xff, 0xdf, 0x89, 0x86, - 0x0a, 0x02, 0x3b, 0x86, 0x3a, 0x02, 0x74, 0x0d, 0x89, 0x86, 0x3a, 0x02, 0x81, 0xa6, 0x3a, 0x02, - 0x7f, 0xdf, 0xe8, 0xe0, 0x3e, 0x58, 0xc3, 0x57, 0x56, 0x50, 0x8b, 0x86, 0xe6, 0x02, 0xa9, 0xff, - 0xff, 0x74, 0x40, 0x8d, 0xbe, 0xdc, 0x02, 0x8d, 0xb6, 0xec, 0x05, 0xb9, 0x0a, 0x00, 0x83, 0xf9, - 0x05, 0x75, 0x04, 0x8d, 0xb6, 0xf4, 0x05, 0xa9, 0x01, 0x00, 0x74, 0x1e, 0x80, 0x3d, 0xff, 0x74, - 0x12, 0xfe, 0x05, 0x80, 0x3d, 0xff, 0x75, 0x0b, 0x81, 0x8e, 0x0a, 0x02, 0x80, 0x00, 0xc6, 0x86, - 0x89, 0x02, 0x01, 0x80, 0x3c, 0xff, 0x74, 0x02, 0xfe, 0x04, 0xd1, 0xe8, 0x47, 0x46, 0xe2, 0xce, - 0xe8, 0x0a, 0x00, 0xc7, 0x86, 0xe6, 0x02, 0x00, 0x00, 0x58, 0x5e, 0x5f, 0xc3, 0xf6, 0x86, 0x5a, - 0x02, 0x01, 0x75, 0x27, 0xf6, 0x86, 0xaf, 0x02, 0x01, 0x75, 0x07, 0xf6, 0x86, 0x64, 0x02, 0x01, - 0x74, 0x19, 0xc6, 0x86, 0x5a, 0x02, 0x01, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x80, 0x75, 0x0c, 0xbe, - 0x07, 0x4c, 0xe8, 0xa1, 0x03, 0xc7, 0x86, 0xc0, 0x02, 0x04, 0x00, 0xc3, 0xf7, 0x86, 0xb0, 0x15, - 0x00, 0x80, 0x75, 0x02, 0xeb, 0x26, 0x8b, 0xb6, 0x60, 0x01, 0x3b, 0xb6, 0x5e, 0x01, 0x74, 0x1c, - 0x46, 0x83, 0xe6, 0x07, 0x89, 0xb6, 0x60, 0x01, 0x8b, 0xce, 0xd1, 0xe1, 0xd1, 0xe1, 0x8d, 0xb6, - 0x3e, 0x01, 0x03, 0xf1, 0x8b, 0x04, 0x8b, 0x54, 0x02, 0xe9, 0xd0, 0x3e, 0xc3, 0xbb, 0x00, 0x03, - 0x83, 0x7f, 0x12, 0x00, 0x74, 0x08, 0xe8, 0x4b, 0x3e, 0xc7, 0x47, 0x12, 0x00, 0x00, 0xc3, 0x53, - 0x50, 0x33, 0xc0, 0x88, 0x86, 0xcf, 0x01, 0xa3, 0x92, 0x5e, 0xbb, 0x94, 0x5e, 0x89, 0x1e, 0x8a, - 0x5e, 0x89, 0x07, 0x89, 0x47, 0x02, 0x89, 0x47, 0x04, 0xa3, 0x8c, 0x5e, 0xa3, 0x8e, 0x5e, 0xa3, - 0x90, 0x5e, 0x58, 0x5b, 0xc3, 0x50, 0x8a, 0xe0, 0xe4, 0x12, 0xf6, 0xd4, 0x22, 0xc4, 0xe6, 0x12, - 0x58, 0xc3, 0xc6, 0x46, 0x06, 0x00, 0xc6, 0x46, 0x07, 0x00, 0xc6, 0x46, 0x08, 0x00, 0xc6, 0x46, - 0x09, 0x00, 0xc6, 0x86, 0xc4, 0x15, 0x80, 0x8d, 0xbe, 0x16, 0x03, 0x8c, 0xd8, 0x8e, 0xc0, 0xab, - 0xab, 0xab, 0xc3, 0x51, 0x53, 0xb9, 0x10, 0x00, 0xd1, 0xe0, 0xd1, 0xdb, 0xe2, 0xfa, 0x8b, 0xc3, - 0x86, 0xc4, 0x5b, 0x59, 0xc3, 0x90, 0x50, 0x53, 0x51, 0x52, 0x57, 0x56, 0x8d, 0x1e, 0x6c, 0x05, - 0xb8, 0x40, 0x60, 0x8e, 0xc0, 0xff, 0x06, 0x4e, 0x00, 0xc7, 0x06, 0x46, 0x5d, 0x00, 0x00, 0xc6, - 0x06, 0x4a, 0x5d, 0x00, 0xc7, 0x06, 0x4e, 0x5d, 0x30, 0x00, 0x8d, 0x3e, 0x48, 0x5d, 0xb8, 0xa4, - 0x65, 0x89, 0x05, 0x06, 0x33, 0xc0, 0x8e, 0xc0, 0xa3, 0x2a, 0x5d, 0xa3, 0x2c, 0x5d, 0xa3, 0x2e, - 0x5d, 0x8d, 0x3e, 0x3e, 0x5d, 0xb9, 0x04, 0x00, 0xd1, 0xe9, 0xf3, 0xab, 0x8d, 0x3e, 0x42, 0x5d, - 0xb9, 0x04, 0x00, 0xd1, 0xe9, 0xf3, 0xab, 0x07, 0x8b, 0xd4, 0xb9, 0x01, 0x00, 0xbb, 0x00, 0x00, - 0xbd, 0xa4, 0x65, 0x88, 0x5e, 0x00, 0x8b, 0xc3, 0xd1, 0xe0, 0xd1, 0xe0, 0x05, 0x40, 0x60, 0x89, - 0x46, 0x02, 0x06, 0x51, 0x8c, 0xd8, 0x8e, 0xc0, 0xbe, 0x80, 0x03, 0x8d, 0xbe, 0x1a, 0x04, 0xb9, - 0x05, 0x00, 0xf3, 0xa5, 0x59, 0x07, 0xe8, 0x2f, 0xfd, 0xe8, 0xe2, 0x00, 0x8b, 0xc5, 0x05, 0xa4, - 0x08, 0x89, 0x86, 0xa6, 0x08, 0x83, 0xc0, 0x02, 0x8b, 0xe0, 0x68, 0x00, 0x06, 0x81, 0xc5, 0x44, - 0x16, 0x43, 0xe2, 0xbf, 0x8b, 0xe2, 0x33, 0xed, 0x5e, 0x5f, 0x5a, 0x59, 0x5b, 0x58, 0xc3, 0x3e, - 0x89, 0xa6, 0xa6, 0x08, 0x33, 0xed, 0xbc, 0x7e, 0x5e, 0xfa, 0x83, 0x0e, 0x42, 0x5d, 0x00, 0x74, - 0x0d, 0x8b, 0x36, 0x42, 0x5d, 0x8b, 0x4c, 0x04, 0xe8, 0xd1, 0x03, 0xfb, 0xff, 0xd1, 0xfb, 0x32, - 0xff, 0x8a, 0x1e, 0x46, 0x5d, 0x80, 0x8f, 0x4c, 0x5d, 0x00, 0x75, 0x21, 0xd1, 0xe3, 0x8b, 0xaf, - 0x48, 0x5d, 0x81, 0xbe, 0xa4, 0x06, 0xa5, 0xa5, 0x74, 0x0c, 0xd1, 0xeb, 0xc6, 0x87, 0x4c, 0x5d, - 0x01, 0xe8, 0xdb, 0x06, 0xeb, 0x07, 0x8b, 0x86, 0xa6, 0x08, 0x8b, 0xe0, 0xc3, 0xeb, 0xb5, 0xeb, - 0xae, 0x60, 0x9c, 0xe8, 0xa9, 0xff, 0x0e, 0xe8, 0x02, 0x00, 0xeb, 0x01, 0xcf, 0x61, 0xc3, 0x50, - 0xfa, 0x8b, 0x76, 0x1a, 0xf7, 0xc6, 0xff, 0xff, 0x74, 0x10, 0x8b, 0x04, 0x89, 0x46, 0x1a, 0x0b, - 0xc0, 0x75, 0x03, 0x89, 0x46, 0x1c, 0xc7, 0x04, 0x00, 0x00, 0xfb, 0x58, 0xc3, 0x53, 0xfa, 0xc7, - 0x04, 0x00, 0x00, 0x8b, 0x5d, 0x02, 0x89, 0x37, 0x89, 0x75, 0x02, 0x83, 0x3d, 0x00, 0x75, 0x02, - 0x89, 0x35, 0xfb, 0x5b, 0xc3, 0x50, 0xfa, 0x8b, 0x35, 0x8b, 0x04, 0x89, 0x05, 0x0b, 0xc0, 0x75, - 0x03, 0x89, 0x45, 0x02, 0xfb, 0x58, 0xc3, 0x50, 0xfa, 0x8b, 0x46, 0x1a, 0x89, 0x04, 0x89, 0x76, - 0x1a, 0xf7, 0x46, 0x1a, 0xff, 0xff, 0x75, 0x03, 0x89, 0x76, 0x1a, 0xfb, 0x58, 0xc3, 0x50, 0x53, - 0x51, 0x8b, 0xc5, 0x83, 0xc0, 0x1e, 0x89, 0x46, 0x1a, 0x83, 0xc0, 0x48, 0x89, 0x46, 0x1c, 0xb9, - 0x09, 0x00, 0x8b, 0xdd, 0x8b, 0xc5, 0x83, 0xc0, 0x26, 0x89, 0x47, 0x1e, 0x83, 0xc3, 0x08, 0x83, - 0xc0, 0x08, 0xe2, 0xf5, 0x59, 0x5b, 0x58, 0xc3, 0x60, 0x06, 0x1e, 0xfa, 0x33, 0xdb, 0x8e, 0xdb, - 0x83, 0x06, 0x2a, 0x5d, 0x01, 0x73, 0x04, 0x11, 0x1e, 0x2c, 0x5d, 0xb9, 0x01, 0x00, 0x8b, 0xaf, - 0x48, 0x5d, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x75, 0x03, 0xe8, 0x60, 0x46, 0xf7, 0x86, 0xa8, 0x02, - 0x01, 0x00, 0x74, 0x30, 0xfe, 0x86, 0x6b, 0x01, 0x80, 0xbe, 0x6b, 0x01, 0x02, 0x73, 0x02, 0xeb, - 0x23, 0xc6, 0x86, 0x6b, 0x01, 0x00, 0xf7, 0x86, 0x1c, 0x01, 0x01, 0x00, 0x75, 0x0a, 0x8e, 0x46, - 0x02, 0x26, 0x81, 0x26, 0x44, 0x00, 0x32, 0xfe, 0x81, 0xa6, 0x18, 0x01, 0x32, 0xfe, 0xc7, 0x86, - 0xa8, 0x02, 0x00, 0x00, 0xc6, 0x86, 0x6a, 0x01, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x48, 0x00, - 0x25, 0x00, 0x02, 0x74, 0x03, 0xe8, 0x30, 0x17, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, 0x03, 0xe8, - 0x2e, 0x46, 0x8b, 0x86, 0xf6, 0x00, 0x25, 0xd0, 0xe3, 0x89, 0x86, 0x30, 0x02, 0x8a, 0x46, 0x08, - 0x3c, 0x06, 0x74, 0x08, 0x3c, 0x0a, 0x74, 0x04, 0x3c, 0x18, 0x75, 0x04, 0xff, 0x86, 0x4a, 0x02, - 0x83, 0xc3, 0x02, 0x49, 0x74, 0x03, 0xe9, 0x75, 0xff, 0xf7, 0x06, 0x3e, 0x5d, 0xff, 0xff, 0x74, - 0x1f, 0xff, 0x0e, 0x2e, 0x5d, 0x75, 0x19, 0xe8, 0x14, 0x02, 0x8b, 0x1e, 0x3e, 0x5d, 0x0b, 0xdb, - 0x74, 0x0e, 0x8b, 0x47, 0x08, 0xa3, 0x2e, 0x5d, 0xf7, 0x06, 0x2e, 0x5d, 0xff, 0xff, 0x74, 0xe7, - 0x50, 0xb0, 0xa0, 0xe6, 0x10, 0x58, 0x1f, 0x07, 0x61, 0xcf, 0x60, 0x06, 0x1e, 0xfa, 0x8d, 0x36, - 0x32, 0x5d, 0x83, 0x04, 0x01, 0x83, 0x54, 0x02, 0x00, 0xe8, 0x64, 0x4a, 0xa0, 0x30, 0x5d, 0xfe, - 0xc0, 0x3c, 0x04, 0x72, 0x08, 0xc6, 0x06, 0x30, 0x5d, 0x00, 0xe9, 0x0f, 0xff, 0xa2, 0x30, 0x5d, - 0xeb, 0xce, 0x50, 0x57, 0x56, 0xfa, 0x8d, 0x36, 0x36, 0x5d, 0x83, 0x04, 0x01, 0x83, 0x54, 0x02, - 0x00, 0x80, 0x3e, 0x81, 0x5e, 0x01, 0x75, 0x0d, 0x8b, 0x36, 0x84, 0x5e, 0x83, 0xfe, 0x14, 0x77, - 0x0e, 0xff, 0x94, 0x56, 0x05, 0x50, 0xb0, 0xa0, 0xe6, 0x10, 0x58, 0x5e, 0x5f, 0x58, 0xcf, 0xe8, - 0x12, 0x4d, 0xeb, 0xf1, 0x57, 0x56, 0x50, 0xfa, 0x8d, 0x36, 0x3a, 0x5d, 0x83, 0x04, 0x01, 0x83, - 0x54, 0x02, 0x00, 0x80, 0x3e, 0x81, 0x5e, 0x01, 0x75, 0x0d, 0x8b, 0x36, 0x84, 0x5e, 0x83, 0xfe, - 0x14, 0x77, 0x0e, 0xff, 0x94, 0x56, 0x05, 0x50, 0xb0, 0xa0, 0xe6, 0x10, 0x58, 0x58, 0x5e, 0x5f, - 0xcf, 0xe8, 0xe0, 0x4c, 0xeb, 0xf1, 0x50, 0x53, 0x51, 0x57, 0xe8, 0xab, 0x00, 0xfa, 0x8b, 0x3c, - 0x03, 0xfd, 0x89, 0x6d, 0x02, 0x8b, 0x44, 0x02, 0x89, 0x45, 0x04, 0x8b, 0x44, 0x04, 0x89, 0x45, - 0x06, 0x0b, 0xc0, 0x75, 0x0e, 0x8b, 0x86, 0x0c, 0x02, 0x0b, 0xc0, 0x75, 0x03, 0xb8, 0xc8, 0x00, - 0x89, 0x45, 0x06, 0xf7, 0x06, 0x3e, 0x5d, 0xff, 0xff, 0x75, 0x14, 0x89, 0x3e, 0x3e, 0x5d, 0x89, - 0x3e, 0x40, 0x5d, 0xc7, 0x05, 0x00, 0x00, 0x89, 0x45, 0x08, 0xa3, 0x2e, 0x5d, 0xeb, 0x63, 0x8b, - 0x3e, 0x3e, 0x5d, 0x8b, 0x0e, 0x2e, 0x5d, 0x33, 0xdb, 0x3b, 0xc8, 0x72, 0x35, 0x0b, 0xdb, 0x75, - 0x17, 0x2b, 0xc8, 0x89, 0x4d, 0x08, 0x8b, 0x34, 0x03, 0xf5, 0x89, 0x44, 0x08, 0x89, 0x3c, 0x89, - 0x36, 0x3e, 0x5d, 0xa3, 0x2e, 0x5d, 0xeb, 0x3a, 0x2b, 0x4d, 0x08, 0x2b, 0xc1, 0x8b, 0x34, 0x03, - 0xf5, 0x89, 0x44, 0x08, 0x8b, 0x4d, 0x08, 0x2b, 0xc8, 0x89, 0x4d, 0x08, 0x89, 0x37, 0x89, 0x3c, - 0xeb, 0x20, 0x8b, 0xdf, 0x8b, 0x3d, 0x0b, 0xff, 0x74, 0x05, 0x03, 0x4d, 0x08, 0xeb, 0xba, 0x2b, - 0xc1, 0x8b, 0x34, 0x03, 0xf5, 0x89, 0x44, 0x08, 0x89, 0x37, 0xc7, 0x04, 0x00, 0x00, 0x89, 0x36, - 0x40, 0x5d, 0xfb, 0x5f, 0x59, 0x5b, 0x58, 0xc3, 0x57, 0x53, 0x50, 0x56, 0xfa, 0x8b, 0x1e, 0x3e, - 0x5d, 0x33, 0xff, 0x8b, 0x34, 0x03, 0xf5, 0x83, 0x7c, 0x02, 0xff, 0x74, 0x4b, 0x3b, 0xde, 0x75, - 0x49, 0x0b, 0xff, 0x74, 0x18, 0x8b, 0x07, 0x89, 0x05, 0x0b, 0xc0, 0x75, 0x06, 0x89, 0x3e, 0x40, - 0x5d, 0xeb, 0x2c, 0x8b, 0x4f, 0x08, 0x8b, 0xf8, 0x01, 0x4d, 0x08, 0xeb, 0x22, 0x8b, 0x3f, 0x89, - 0x3e, 0x3e, 0x5d, 0x0b, 0xff, 0x75, 0x0c, 0x89, 0x3e, 0x40, 0x5d, 0xc7, 0x06, 0x2e, 0x5d, 0xff, - 0xff, 0xeb, 0x0c, 0xa1, 0x2e, 0x5d, 0x01, 0x45, 0x08, 0x8b, 0x45, 0x08, 0xa3, 0x2e, 0x5d, 0xc7, - 0x47, 0x02, 0xff, 0xff, 0xc7, 0x07, 0x00, 0x00, 0xeb, 0x4e, 0x83, 0xcb, 0x00, 0x74, 0x06, 0x8b, - 0xfb, 0x8b, 0x1f, 0xeb, 0xa8, 0x83, 0xfd, 0x00, 0x75, 0x05, 0xbb, 0x42, 0x5d, 0xeb, 0x04, 0x8d, - 0x9e, 0xf0, 0x00, 0x8b, 0x1f, 0x83, 0xfb, 0x00, 0x74, 0x2e, 0x3b, 0xde, 0x75, 0x05, 0xe8, 0x6b, - 0x00, 0xeb, 0x25, 0x8b, 0xfb, 0x8b, 0x1f, 0x83, 0xcb, 0x00, 0x74, 0x1c, 0x3b, 0xde, 0x75, 0xf3, - 0x8b, 0x07, 0x89, 0x05, 0x83, 0xc8, 0x00, 0x75, 0x04, 0x89, 0xbe, 0xf2, 0x00, 0xc7, 0x07, 0x00, - 0x00, 0xc7, 0x47, 0x02, 0xff, 0xff, 0xeb, 0x00, 0xfb, 0x5e, 0x58, 0x5b, 0x5f, 0xc3, 0x50, 0x53, - 0x56, 0x55, 0x8b, 0x1e, 0x3e, 0x5d, 0x8b, 0x6f, 0x02, 0x0b, 0xed, 0x74, 0x06, 0x81, 0xc5, 0xf0, - 0x00, 0xeb, 0x03, 0xbd, 0x42, 0x5d, 0x8b, 0x76, 0x02, 0x8b, 0x07, 0xa3, 0x3e, 0x5d, 0x0b, 0xc0, - 0x75, 0x03, 0xa3, 0x40, 0x5d, 0x89, 0x5e, 0x02, 0x89, 0x1c, 0xc7, 0x07, 0x00, 0x00, 0x83, 0x4e, - 0x00, 0x00, 0x75, 0x03, 0x89, 0x5e, 0x00, 0x5d, 0x5e, 0x5b, 0x58, 0xc3, 0x55, 0x53, 0x50, 0x0b, - 0xed, 0x74, 0x06, 0x81, 0xc5, 0xf0, 0x00, 0xeb, 0x03, 0xbd, 0x42, 0x5d, 0x8b, 0x5e, 0x00, 0xc7, - 0x47, 0x02, 0xff, 0xff, 0x8b, 0x07, 0xc7, 0x07, 0x00, 0x00, 0x8b, 0xd8, 0x89, 0x5e, 0x00, 0x0b, - 0xdb, 0x75, 0x03, 0x89, 0x5e, 0x02, 0x58, 0x5b, 0x5d, 0xc3, 0x50, 0x53, 0x51, 0x57, 0x56, 0xfa, - 0x8b, 0x1e, 0x3e, 0x5d, 0x33, 0xff, 0x83, 0xcb, 0x00, 0x74, 0x54, 0x8b, 0xc3, 0x39, 0x6f, 0x02, - 0x75, 0x47, 0x0b, 0xff, 0x74, 0x18, 0x8b, 0x37, 0x89, 0x35, 0x8b, 0xc7, 0x0b, 0xf6, 0x75, 0x06, - 0x89, 0x3e, 0x40, 0x5d, 0xeb, 0x2c, 0x8b, 0x4f, 0x08, 0x01, 0x4c, 0x08, 0xeb, 0x24, 0x8b, 0x37, - 0x89, 0x36, 0x3e, 0x5d, 0x0b, 0xf6, 0x75, 0x0c, 0x89, 0x36, 0x40, 0x5d, 0xc7, 0x06, 0x2e, 0x5d, - 0xff, 0xff, 0xeb, 0x0e, 0xa1, 0x2e, 0x5d, 0x01, 0x44, 0x08, 0x8b, 0x44, 0x08, 0xa3, 0x2e, 0x5d, - 0x33, 0xc0, 0xc7, 0x47, 0x02, 0xff, 0xff, 0xeb, 0x00, 0x8b, 0xf8, 0x8b, 0x1f, 0xeb, 0xa7, 0xfb, - 0x5e, 0x5f, 0x59, 0x5b, 0x58, 0xc3, 0x50, 0x53, 0x51, 0x52, 0x8a, 0x8e, 0xad, 0x02, 0x8e, 0x46, - 0x02, 0x26, 0xa1, 0x32, 0x00, 0x8a, 0x9e, 0x7d, 0x02, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x57, - 0xf6, 0x86, 0xb3, 0x02, 0x01, 0x75, 0x4e, 0x0d, 0x74, 0x80, 0x25, 0x7f, 0x9f, 0x26, 0xa3, 0x32, - 0x00, 0xb8, 0x01, 0x00, 0xe8, 0x16, 0x05, 0x26, 0x83, 0x0e, 0x42, 0x00, 0x04, 0xc6, 0x86, 0xb4, - 0x02, 0x00, 0x26, 0xa1, 0x32, 0x00, 0x0d, 0x00, 0x60, 0x26, 0xa3, 0x32, 0x00, 0xb8, 0x00, 0x00, - 0xe8, 0xfa, 0x04, 0x26, 0xa1, 0x32, 0x00, 0x83, 0xe0, 0xdf, 0x26, 0xa3, 0x32, 0x00, 0xb8, 0x00, - 0x00, 0xe8, 0xe9, 0x04, 0xe8, 0x6c, 0x01, 0x26, 0xa1, 0x8c, 0x00, 0x25, 0xff, 0x07, 0x0d, 0x00, - 0xd0, 0x26, 0xa3, 0x8c, 0x00, 0xeb, 0x3c, 0xf6, 0x86, 0xb4, 0x02, 0x01, 0x75, 0x35, 0x26, 0x83, - 0x26, 0x42, 0x00, 0xfb, 0x26, 0xa1, 0x32, 0x00, 0x0d, 0xb4, 0x80, 0x25, 0xbf, 0x9f, 0x26, 0xa3, - 0x32, 0x00, 0xc6, 0x86, 0xb3, 0x02, 0x00, 0xb8, 0x01, 0x00, 0xe8, 0xb0, 0x04, 0x26, 0xa1, 0x32, - 0x00, 0x83, 0xe0, 0xef, 0x26, 0xa3, 0x32, 0x00, 0xc6, 0x86, 0xb4, 0x02, 0x01, 0xb8, 0x00, 0x00, - 0xe8, 0x9a, 0x04, 0x26, 0xa1, 0x40, 0x00, 0x8b, 0xd8, 0x80, 0xbe, 0xfe, 0x00, 0x01, 0x75, 0x10, - 0x83, 0xe0, 0xfd, 0xc6, 0x86, 0x7d, 0x02, 0x01, 0x25, 0xff, 0x1f, 0x0d, 0x00, 0x80, 0xeb, 0x0e, - 0x25, 0xff, 0x1f, 0x0d, 0x00, 0x20, 0x83, 0xc8, 0x02, 0xc6, 0x86, 0x7d, 0x02, 0x00, 0xe8, 0x96, - 0x02, 0x0d, 0x00, 0x08, 0xf6, 0x86, 0xaf, 0x02, 0x01, 0x75, 0x03, 0x25, 0xff, 0xf7, 0x33, 0xd8, - 0x74, 0x04, 0x26, 0xa3, 0x40, 0x00, 0x26, 0xa1, 0x4c, 0x00, 0x8a, 0x9e, 0x7d, 0x02, 0x8b, 0xd8, - 0xf7, 0x86, 0x12, 0x01, 0x10, 0x00, 0x74, 0x05, 0x0d, 0x00, 0x10, 0xeb, 0x03, 0x25, 0xff, 0xef, - 0x8a, 0xae, 0x6d, 0x02, 0x80, 0xf9, 0x01, 0x75, 0x04, 0x8a, 0xae, 0x6e, 0x02, 0xf6, 0xc5, 0x01, - 0x74, 0x05, 0x83, 0xc8, 0x10, 0xeb, 0x03, 0x83, 0xe0, 0xef, 0xf6, 0x86, 0x6f, 0x02, 0x01, 0x74, - 0x0a, 0x83, 0xc8, 0x20, 0xc6, 0x86, 0x7e, 0x02, 0x00, 0xeb, 0x08, 0x83, 0xe0, 0xdf, 0xc6, 0x86, - 0x7e, 0x02, 0x01, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, 0x0a, 0xc6, 0x86, 0x7e, 0x02, 0x00, 0x83, - 0xc8, 0x40, 0xeb, 0x03, 0x83, 0xe0, 0xbf, 0xf6, 0x86, 0x7d, 0x02, 0x01, 0x74, 0x05, 0x0d, 0x80, - 0x00, 0xeb, 0x03, 0x25, 0x7f, 0xff, 0xf6, 0x86, 0x7c, 0x02, 0x01, 0x74, 0x05, 0x0d, 0x00, 0x01, - 0xeb, 0x03, 0x25, 0xff, 0xfe, 0xf6, 0x86, 0x7e, 0x02, 0x01, 0x74, 0x05, 0x0d, 0x00, 0x20, 0xeb, - 0x03, 0x25, 0xff, 0xdf, 0x33, 0xd8, 0x74, 0x12, 0xf7, 0xc3, 0x20, 0x00, 0x74, 0x05, 0xc6, 0x06, - 0x4e, 0x13, 0x01, 0x25, 0xff, 0xf7, 0x26, 0xa3, 0x4c, 0x00, 0x26, 0xa1, 0x50, 0x00, 0x8b, 0xd8, - 0x33, 0xd8, 0x74, 0x04, 0x26, 0xa3, 0x50, 0x00, 0xf6, 0x06, 0x4e, 0x13, 0x01, 0x74, 0x1e, 0xc6, - 0x06, 0x4e, 0x13, 0x00, 0x26, 0x81, 0x26, 0x40, 0x00, 0x7f, 0xff, 0x90, 0x90, 0x26, 0x81, 0x0e, - 0x40, 0x00, 0x80, 0x00, 0x90, 0x90, 0x26, 0x81, 0x26, 0x40, 0x00, 0x7f, 0xff, 0x5a, 0x59, 0x5b, - 0x58, 0xc3, 0x00, 0xf6, 0x86, 0xb3, 0x02, 0x01, 0x75, 0x42, 0x50, 0xe8, 0x50, 0x03, 0xb3, 0x00, - 0x8a, 0x3e, 0x80, 0x5e, 0xb8, 0x00, 0x80, 0xe8, 0xdf, 0x02, 0x8b, 0xc0, 0x8b, 0xc0, 0x8b, 0xc0, - 0xb3, 0x00, 0x8a, 0x3e, 0x80, 0x5e, 0xb8, 0x00, 0x21, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x04, 0x74, - 0x03, 0x0d, 0x00, 0x40, 0xe8, 0xc2, 0x02, 0xb3, 0x1b, 0x8a, 0x3e, 0x80, 0x5e, 0xe8, 0x12, 0x02, - 0x83, 0xc8, 0x10, 0xe8, 0xb3, 0x02, 0xc6, 0x86, 0xb3, 0x02, 0x01, 0x58, 0xc3, 0x8e, 0x46, 0x02, - 0xf7, 0x86, 0xf4, 0x00, 0x04, 0x00, 0x74, 0x0b, 0xc6, 0x06, 0x81, 0x5e, 0x01, 0x26, 0x83, 0x0e, - 0x42, 0x00, 0x02, 0xc6, 0x86, 0xb0, 0x02, 0x00, 0xc6, 0x86, 0xb1, 0x02, 0x00, 0xa8, 0x02, 0x74, - 0x26, 0x26, 0x83, 0x26, 0x42, 0x00, 0xcf, 0xf7, 0x86, 0xf4, 0x00, 0x04, 0x00, 0x75, 0x14, 0xf7, - 0x86, 0x12, 0x01, 0x00, 0x84, 0x75, 0x0c, 0x80, 0xbe, 0xfe, 0x00, 0x01, 0x77, 0x05, 0xc6, 0x86, - 0xb0, 0x02, 0x01, 0xb0, 0x02, 0xeb, 0x2a, 0xa8, 0x04, 0x74, 0x0e, 0x26, 0x83, 0x0e, 0x42, 0x00, - 0x20, 0x26, 0x83, 0x26, 0x42, 0x00, 0xef, 0xeb, 0x18, 0xa8, 0x08, 0x74, 0x08, 0x26, 0x83, 0x0e, - 0x42, 0x00, 0x30, 0xeb, 0x0c, 0xa8, 0x10, 0x74, 0x08, 0x26, 0x83, 0x0e, 0x42, 0x00, 0x30, 0xeb, - 0x00, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x74, 0x06, 0x26, 0x83, 0x26, 0x42, 0x00, 0xcf, 0xc3, 0xc3, - 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x4c, 0x00, 0x00, 0x01, 0x90, 0x90, 0x90, 0x90, 0x8e, 0x46, - 0x02, 0x26, 0x81, 0x26, 0x4c, 0x00, 0xff, 0xfe, 0xc3, 0x8e, 0x46, 0x02, 0x80, 0xbe, 0xfe, 0x00, - 0x02, 0x74, 0x1e, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x75, 0x0f, 0x80, 0xbe, 0xb0, 0x02, 0x01, 0x75, - 0x10, 0x26, 0x83, 0x0e, 0x42, 0x00, 0x02, 0xeb, 0x08, 0xc6, 0x86, 0x6c, 0x01, 0x01, 0xe8, 0x18, - 0x47, 0xc3, 0x8e, 0x46, 0x02, 0xf7, 0x86, 0xf4, 0x00, 0x02, 0x00, 0x74, 0x09, 0x26, 0x81, 0x26, - 0x42, 0x00, 0xff, 0xef, 0xeb, 0x07, 0x26, 0x81, 0x0e, 0x42, 0x00, 0x00, 0x10, 0xc3, 0x8e, 0x46, - 0x02, 0xf7, 0x86, 0xf4, 0x00, 0x02, 0x00, 0x74, 0x09, 0x26, 0x81, 0x0e, 0x42, 0x00, 0x00, 0x10, - 0xeb, 0x07, 0x26, 0x81, 0x26, 0x42, 0x00, 0xff, 0xef, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, - 0x42, 0x00, 0x00, 0x80, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x42, 0x00, 0xff, 0x7f, 0xc3, - 0xf7, 0x86, 0xf4, 0x00, 0x08, 0x00, 0x74, 0x13, 0xe8, 0xdf, 0xff, 0xeb, 0x39, 0x80, 0x7e, 0x06, - 0x0e, 0x74, 0x1d, 0x80, 0x7e, 0x06, 0x48, 0x74, 0x23, 0xeb, 0x2b, 0xe8, 0xd7, 0xff, 0x8e, 0x46, - 0x02, 0xf7, 0x86, 0xf4, 0x00, 0x10, 0x00, 0x75, 0xe4, 0x80, 0xbe, 0xfe, 0x00, 0x00, 0x75, 0x0c, - 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x42, 0x00, 0x00, 0x40, 0xeb, 0x0a, 0x8e, 0x46, 0x02, 0x26, - 0x81, 0x26, 0x42, 0x00, 0xff, 0xbf, 0xc3, 0x83, 0xe0, 0xf7, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x04, - 0x74, 0x03, 0x83, 0xc8, 0x08, 0xc3, 0x80, 0xbe, 0xfe, 0x00, 0x01, 0x77, 0x0a, 0x8e, 0x46, 0x02, - 0x26, 0x83, 0x0e, 0x50, 0x00, 0x04, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x90, 0x00, 0x04, - 0xc3, 0x80, 0xbe, 0xfe, 0x00, 0x01, 0x77, 0x0a, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x50, 0x00, - 0xfb, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x90, 0x00, 0xfb, 0xc3, 0x51, 0x50, 0xfa, 0x8e, - 0x46, 0x02, 0x26, 0x83, 0x26, 0x92, 0x00, 0xfb, 0x26, 0x83, 0x26, 0x92, 0x00, 0xfe, 0x90, 0x90, - 0x90, 0x90, 0x26, 0x83, 0x0e, 0x92, 0x00, 0x01, 0x90, 0x90, 0x90, 0x90, 0x26, 0xa1, 0x92, 0x00, - 0x83, 0xc8, 0x02, 0xb9, 0x20, 0x00, 0xe8, 0x06, 0x00, 0xe2, 0xfb, 0xfb, 0x58, 0x59, 0xc3, 0x53, - 0x8e, 0x46, 0x02, 0x24, 0xfe, 0x26, 0xa3, 0x92, 0x00, 0x90, 0x90, 0x90, 0x90, 0x0c, 0x01, 0x26, - 0xa3, 0x92, 0x00, 0x90, 0x90, 0x90, 0x5b, 0xc3, 0x51, 0xb1, 0x03, 0xd2, 0xe5, 0xb1, 0x05, 0xd0, - 0xe5, 0x72, 0x04, 0x24, 0xfd, 0xeb, 0x02, 0x0c, 0x02, 0xe8, 0xd3, 0xff, 0xfe, 0xc9, 0x75, 0xef, - 0x59, 0xc3, 0x9c, 0xfa, 0x51, 0x52, 0xfa, 0x8e, 0x46, 0x02, 0xe8, 0x8f, 0xff, 0x26, 0xa1, 0x92, - 0x00, 0x83, 0xe0, 0xfd, 0x83, 0xc8, 0x01, 0x26, 0xa3, 0x92, 0x00, 0x83, 0xc8, 0x04, 0x26, 0xa3, - 0x92, 0x00, 0xe8, 0xaa, 0xff, 0x83, 0xc8, 0x02, 0xe8, 0xa4, 0xff, 0x83, 0xc8, 0x02, 0xe8, 0x9e, - 0xff, 0x83, 0xe0, 0xfd, 0xe8, 0x98, 0xff, 0x8a, 0xef, 0xe8, 0xac, 0xff, 0x8a, 0xeb, 0xe8, 0xa7, - 0xff, 0x83, 0xe0, 0xfb, 0xe8, 0x88, 0xff, 0x83, 0xe0, 0xfe, 0x26, 0xa3, 0x92, 0x00, 0x90, 0x90, - 0x26, 0x8b, 0x0e, 0x92, 0x00, 0xf7, 0xc1, 0x02, 0x00, 0x74, 0x12, 0xa8, 0x02, 0x74, 0x0e, 0xb9, - 0x12, 0x00, 0xe8, 0x6a, 0xff, 0xe2, 0xfb, 0xfb, 0x5a, 0x59, 0x9d, 0xf9, 0xc3, 0x0c, 0x01, 0x26, - 0xa3, 0x92, 0x00, 0x90, 0x90, 0x90, 0x90, 0xb1, 0x10, 0x53, 0x33, 0xdb, 0x24, 0xfe, 0x26, 0xa3, - 0x92, 0x00, 0x26, 0xa1, 0x92, 0x00, 0xd1, 0xe3, 0xa8, 0x02, 0x74, 0x03, 0x83, 0xcb, 0x01, 0x0c, - 0x01, 0x26, 0xa3, 0x92, 0x00, 0x90, 0x90, 0x90, 0x90, 0xfe, 0xc9, 0x75, 0xdf, 0xe8, 0x2f, 0xff, - 0x8b, 0xc3, 0x5b, 0xfb, 0x5a, 0x59, 0x9d, 0xf8, 0xc3, 0x9c, 0xfa, 0x51, 0x53, 0x52, 0x50, 0xfa, - 0xe8, 0xe9, 0xfe, 0x26, 0xa1, 0x92, 0x00, 0x83, 0xe0, 0xfd, 0x83, 0xc8, 0x01, 0x26, 0xa3, 0x92, - 0x00, 0x83, 0xc8, 0x04, 0x26, 0xa3, 0x92, 0x00, 0xe8, 0x04, 0xff, 0x83, 0xc8, 0x02, 0xe8, 0xfe, - 0xfe, 0x24, 0xfd, 0xe8, 0xf9, 0xfe, 0x0c, 0x02, 0xe8, 0xf4, 0xfe, 0x8a, 0xef, 0xe8, 0x08, 0xff, - 0x8a, 0xeb, 0xe8, 0x03, 0xff, 0x0c, 0x02, 0xe8, 0xe5, 0xfe, 0x24, 0xfd, 0xe8, 0xe0, 0xfe, 0x5b, - 0xb1, 0x10, 0xd1, 0xe3, 0x72, 0x04, 0x24, 0xfd, 0xeb, 0x02, 0x0c, 0x02, 0xe8, 0xd0, 0xfe, 0xfe, - 0xc9, 0x75, 0xef, 0x24, 0xfb, 0xe8, 0xc7, 0xfe, 0xfb, 0x5a, 0x5b, 0x59, 0x9d, 0xc3, 0x50, 0xe8, - 0x8a, 0xfe, 0xb7, 0x00, 0xb3, 0x02, 0xe8, 0xe9, 0xfe, 0x83, 0xf8, 0xff, 0x75, 0x09, 0xfe, 0xc7, - 0x80, 0xff, 0x20, 0x75, 0xf1, 0xb7, 0xff, 0x88, 0x3e, 0x80, 0x5e, 0x58, 0xc3, 0x53, 0x40, 0x03, - 0x06, 0x2a, 0x5d, 0x8b, 0xd8, 0xe8, 0x79, 0xf6, 0xa1, 0x2a, 0x5d, 0x3b, 0xc3, 0x75, 0xf6, 0x5b, - 0xc3, 0x90, 0xe8, 0xa0, 0xf0, 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xc6, 0x86, 0x6f, 0x02, 0x01, 0x8e, - 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0x80, - 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x0b, 0xc6, 0x86, 0x7c, 0x02, 0x00, 0xe8, 0x78, 0xfa, 0xe8, 0xf5, - 0xfd, 0x33, 0xc0, 0x88, 0x86, 0x8d, 0x02, 0x88, 0x86, 0x8e, 0x02, 0xc6, 0x86, 0x63, 0x01, 0x01, - 0xc7, 0x86, 0x64, 0x01, 0xfc, 0x05, 0xc6, 0x86, 0x69, 0x01, 0x02, 0xbe, 0x67, 0x4c, 0xe8, 0x15, - 0xf8, 0xbe, 0x61, 0x4c, 0xe8, 0x0f, 0xf8, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x44, 0x00, 0x32, - 0xfe, 0xc3, 0xc6, 0x86, 0x63, 0x01, 0x00, 0x80, 0xbe, 0x62, 0x01, 0x01, 0x75, 0x0d, 0xe8, 0x34, - 0xf0, 0xe8, 0x4b, 0x30, 0xc6, 0x46, 0x07, 0x00, 0xe9, 0xb6, 0x00, 0xbe, 0x19, 0x4c, 0xe8, 0x97, - 0xf8, 0xbe, 0x61, 0x4c, 0xe8, 0x91, 0xf8, 0xc6, 0x86, 0x8d, 0x02, 0x01, 0x80, 0x7e, 0x06, 0x02, - 0x74, 0x08, 0x80, 0x7e, 0x06, 0x44, 0x74, 0x09, 0xeb, 0x1c, 0xc6, 0x46, 0x07, 0x04, 0xe9, 0x90, - 0x00, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x84, 0x74, 0x07, 0xc6, 0x46, 0x07, 0x4e, 0xe9, 0x81, 0x00, - 0xc6, 0x46, 0x07, 0x46, 0xeb, 0x7b, 0x80, 0x7e, 0x08, 0x08, 0x75, 0xf8, 0xc6, 0x86, 0x85, 0x02, - 0x01, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x61, 0x02, 0x00, 0xc6, 0x86, 0x60, 0x02, 0x00, - 0xc6, 0x86, 0x63, 0x02, 0x01, 0xc6, 0x86, 0x6c, 0x02, 0x01, 0xc6, 0x86, 0x70, 0x02, 0x01, 0xf6, - 0x86, 0x5c, 0x02, 0x01, 0x74, 0x17, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x74, 0x2c, 0xc6, 0x46, 0x09, - 0x0a, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0xc6, 0x86, 0x5d, 0x02, 0x01, 0xeb, 0x1c, 0xf6, 0x86, 0x5d, - 0x02, 0x01, 0x74, 0x15, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x74, 0x0e, 0xc6, 0x46, 0x09, 0x06, 0xc6, - 0x86, 0x5c, 0x02, 0x01, 0xc6, 0x86, 0x6f, 0x02, 0x01, 0xe8, 0x8a, 0xf9, 0xe8, 0x3a, 0xfc, 0xbe, - 0x49, 0x4c, 0xe8, 0x41, 0xf7, 0xbe, 0x0d, 0x4c, 0xe8, 0x3b, 0xf7, 0xbe, 0x4f, 0x4c, 0xe8, 0x35, - 0xf7, 0xc3, 0xc6, 0x46, 0x09, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x44, 0x00, 0x32, 0xfe, - 0xbe, 0x6d, 0x4c, 0xe8, 0x20, 0xf7, 0xc7, 0x86, 0xc8, 0x01, 0x14, 0x00, 0xc7, 0x86, 0xcc, 0x02, - 0x00, 0x00, 0xbe, 0x55, 0x4c, 0xe8, 0x0e, 0xf7, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x6f, - 0x02, 0x00, 0xc6, 0x86, 0x6c, 0x02, 0x01, 0xc6, 0x86, 0x70, 0x02, 0x01, 0xe8, 0x37, 0xf9, 0xbe, - 0x13, 0x4c, 0xe8, 0xf1, 0xf6, 0xbe, 0x49, 0x4c, 0xe8, 0xeb, 0xf6, 0x33, 0xc0, 0x89, 0x86, 0xf2, - 0x01, 0x89, 0x86, 0xf4, 0x01, 0x89, 0x86, 0xf6, 0x01, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x74, 0x0a, - 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x44, 0x00, 0xff, 0xf7, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x20, - 0x74, 0x10, 0xbe, 0x4f, 0x4c, 0xe8, 0xbe, 0xf6, 0xc6, 0x86, 0x61, 0x02, 0x00, 0xc6, 0x86, 0x60, - 0x02, 0x00, 0xe8, 0xa4, 0xfb, 0xc3, 0xc3, 0x90, 0xc6, 0x86, 0x5b, 0x02, 0x01, 0xc7, 0x86, 0xce, - 0x02, 0x00, 0x00, 0xc7, 0x86, 0xd0, 0x02, 0x00, 0x00, 0xbe, 0x13, 0x4c, 0xe8, 0x97, 0xf6, 0xe8, - 0xc7, 0x14, 0xc3, 0x90, 0xc6, 0x86, 0x5f, 0x02, 0x01, 0xf6, 0x86, 0x88, 0x02, 0x01, 0x74, 0x08, - 0xe8, 0x0a, 0x17, 0xc6, 0x86, 0x88, 0x02, 0x00, 0xbe, 0x13, 0x4c, 0xe8, 0x78, 0xf6, 0xf6, 0x86, - 0x67, 0x02, 0x01, 0x74, 0x04, 0xc6, 0x46, 0x07, 0x0c, 0xc3, 0xbe, 0x13, 0x4c, 0xe8, 0x66, 0xf6, - 0xbe, 0x31, 0x4c, 0xe8, 0x60, 0xf6, 0xc7, 0x86, 0xc2, 0x02, 0x01, 0x00, 0xc7, 0x86, 0xc4, 0x02, - 0x01, 0x00, 0xe8, 0x50, 0x15, 0xc3, 0xc7, 0x86, 0xcc, 0x02, 0x00, 0x00, 0xc7, 0x86, 0xc8, 0x01, - 0x14, 0x00, 0xc6, 0x86, 0x08, 0x01, 0x00, 0x81, 0xa6, 0x0a, 0x02, 0xdf, 0xbf, 0xc6, 0x86, 0x64, - 0x02, 0x01, 0xc7, 0x86, 0x2a, 0x02, 0xff, 0xff, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x20, 0x75, 0x18, - 0xf7, 0x86, 0x12, 0x01, 0x00, 0x84, 0x75, 0x10, 0xbe, 0x4f, 0x4c, 0xe8, 0x18, 0xf6, 0xc6, 0x86, - 0x61, 0x02, 0x00, 0xc6, 0x86, 0x60, 0x02, 0x00, 0xbe, 0x13, 0x4c, 0xe8, 0xba, 0xf6, 0x8e, 0x46, - 0x02, 0x26, 0x83, 0x0e, 0x4c, 0x00, 0x01, 0x26, 0x81, 0x26, 0x32, 0x00, 0xff, 0x7f, 0xb8, 0x00, - 0x80, 0xe8, 0xb6, 0x2f, 0xe8, 0x59, 0xfb, 0xe8, 0x08, 0xfb, 0xc6, 0x86, 0x62, 0x02, 0x01, 0xc6, - 0x86, 0xce, 0x01, 0x00, 0xf7, 0x86, 0xf6, 0x00, 0x04, 0x00, 0x74, 0x05, 0xc6, 0x86, 0xce, 0x01, - 0x01, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x75, 0x06, 0xbe, 0x1f, 0x4c, 0xe8, 0xc8, 0xf5, 0xff, 0x86, - 0xfc, 0x00, 0xc3, 0x90, 0xe8, 0x9a, 0xfb, 0xc6, 0x86, 0x08, 0x01, 0x00, 0xc6, 0x46, 0x09, 0x00, - 0xc6, 0x46, 0x0b, 0x00, 0xc6, 0x86, 0x58, 0x02, 0x00, 0xc6, 0x86, 0x6c, 0x02, 0x00, 0xc6, 0x86, - 0x62, 0x02, 0x00, 0xc6, 0x86, 0x64, 0x02, 0x00, 0xc6, 0x86, 0x5f, 0x02, 0x00, 0xc6, 0x86, 0x67, - 0x02, 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x6e, 0x02, - 0x00, 0xe8, 0xc2, 0xf7, 0xf6, 0x86, 0x70, 0x02, 0x01, 0x74, 0x0c, 0x83, 0xbe, 0x22, 0x01, 0x0e, - 0x75, 0x28, 0xe8, 0x65, 0x08, 0xeb, 0x23, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x75, - 0x08, 0x26, 0x83, 0x26, 0x42, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0xe0, - 0x41, 0xe8, 0x26, 0xf7, 0xbe, 0x2b, 0x4c, 0xe8, 0x4c, 0xf5, 0xc3, 0x90, 0xc7, 0x86, 0x32, 0x02, - 0x02, 0x00, 0xe8, 0x1c, 0xfb, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xfe, 0x26, 0x81, - 0x0e, 0x32, 0x00, 0x00, 0x80, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x75, 0x08, 0x26, - 0x83, 0x26, 0x42, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0xa2, 0x41, 0xc6, - 0x86, 0x08, 0x01, 0x00, 0xc7, 0x86, 0x22, 0x01, 0x00, 0x00, 0xe8, 0x41, 0xfa, 0xe8, 0x65, 0xfa, - 0xf7, 0x86, 0xf4, 0x00, 0x10, 0x00, 0x74, 0x14, 0xf7, 0x86, 0xf4, 0x00, 0x02, 0x00, 0x74, 0x0c, - 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x42, 0x00, 0x00, 0x40, 0xeb, 0x0a, 0x8e, 0x46, 0x02, 0x26, - 0x81, 0x26, 0x42, 0x00, 0xff, 0xbf, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x05, 0xc6, 0x86, 0xfe, - 0x00, 0x01, 0xf6, 0x86, 0xbd, 0x01, 0x01, 0x75, 0x02, 0xeb, 0x71, 0x26, 0xff, 0x36, 0x5e, 0x00, - 0x26, 0xff, 0x36, 0x60, 0x00, 0x26, 0xff, 0x36, 0x62, 0x00, 0x26, 0xff, 0x36, 0x64, 0x00, 0x26, - 0xff, 0x36, 0x66, 0x00, 0x26, 0xff, 0x36, 0x7a, 0x00, 0x26, 0xff, 0x36, 0x7c, 0x00, 0x26, 0xff, - 0x36, 0x7e, 0x00, 0x26, 0xff, 0x36, 0x52, 0x00, 0x26, 0xff, 0x36, 0x6a, 0x00, 0x26, 0xff, 0x36, - 0x68, 0x00, 0xe8, 0x1b, 0xef, 0x26, 0x8f, 0x06, 0x68, 0x00, 0x26, 0x8f, 0x06, 0x6a, 0x00, 0x26, - 0x8f, 0x06, 0x52, 0x00, 0x26, 0x8f, 0x06, 0x7e, 0x00, 0x26, 0x8f, 0x06, 0x7c, 0x00, 0x26, 0x8f, - 0x06, 0x7a, 0x00, 0x26, 0x8f, 0x06, 0x66, 0x00, 0x26, 0x8f, 0x06, 0x64, 0x00, 0x26, 0x8f, 0x06, - 0x62, 0x00, 0x26, 0x8f, 0x06, 0x60, 0x00, 0x26, 0x8f, 0x06, 0x5e, 0x00, 0xe8, 0x96, 0xec, 0xe8, - 0xb5, 0x2e, 0xc6, 0x86, 0xb2, 0x02, 0x00, 0x8d, 0xbe, 0x16, 0x03, 0x8c, 0xd8, 0x8e, 0xc0, 0xab, - 0xab, 0xab, 0xf6, 0x86, 0xab, 0x02, 0x01, 0x74, 0x12, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x42, - 0x00, 0x04, 0xc6, 0x86, 0xb4, 0x02, 0x00, 0xc6, 0x46, 0x09, 0x1e, 0x8e, 0x46, 0x02, 0x26, 0xc7, - 0x06, 0x44, 0x00, 0xff, 0xfb, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x02, 0x74, 0x10, 0xf7, 0x86, 0x20, - 0x01, 0x80, 0x00, 0x75, 0x08, 0xbe, 0xd3, 0x4c, 0xe8, 0x0b, 0xf4, 0xeb, 0x0d, 0x8e, 0x46, 0x02, - 0x33, 0xc0, 0x26, 0xa3, 0x64, 0x00, 0x26, 0xa3, 0x66, 0x00, 0xc3, 0x90, 0x33, 0xc0, 0x88, 0x86, - 0x5f, 0x02, 0x88, 0x86, 0x62, 0x02, 0x88, 0x86, 0x64, 0x02, 0x88, 0x86, 0x67, 0x02, 0x88, 0x86, - 0x6c, 0x02, 0xbe, 0x5b, 0x4c, 0xe8, 0xde, 0xf3, 0xc6, 0x86, 0xb2, 0x02, 0x01, 0x8e, 0x46, 0x02, - 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x42, 0x00, 0xfd, 0xeb, 0x08, 0xc6, - 0x86, 0x6d, 0x01, 0x01, 0xe8, 0x4a, 0x40, 0xc3, 0xc7, 0x86, 0x32, 0x02, 0x03, 0x00, 0xe8, 0xf4, - 0xeb, 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xc6, 0x86, 0x6f, 0x02, 0x01, 0xe8, 0xe8, 0xf5, 0x8e, 0x46, - 0x02, 0x26, 0x81, 0x0e, 0x40, 0x00, 0x00, 0x1e, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x10, 0x74, 0x15, - 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x40, 0x74, 0x0d, 0xf7, 0x86, 0xf6, 0x00, 0x20, 0x00, 0x74, 0x05, - 0xc6, 0x86, 0x78, 0x02, 0x01, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x06, 0xbe, 0xc7, 0x4c, 0xe8, - 0x74, 0xf3, 0xe8, 0x31, 0xf9, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x84, 0x74, 0x06, 0xc6, 0x46, 0x07, - 0x44, 0xeb, 0x06, 0xbe, 0x79, 0x4c, 0xe8, 0x5d, 0xf3, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x44, - 0x00, 0x32, 0xfe, 0xe8, 0x8f, 0x06, 0xc3, 0x90, 0xc7, 0x86, 0x32, 0x02, 0x04, 0x00, 0x8e, 0x46, - 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0xc6, 0x86, - 0x6f, 0x02, 0x01, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x7c, 0x02, 0x00, 0xe8, 0x66, 0xf5, - 0xe8, 0xe3, 0xf8, 0xb0, 0x00, 0xe8, 0x2a, 0x17, 0x33, 0xc0, 0x88, 0x86, 0x8d, 0x02, 0x88, 0x86, - 0x8e, 0x02, 0xc6, 0x86, 0x63, 0x01, 0x01, 0xc7, 0x86, 0x64, 0x01, 0xfc, 0x05, 0xc6, 0x86, 0x69, - 0x01, 0x02, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x2c, 0xc6, 0x86, 0x68, 0x01, 0x02, 0xc7, 0x86, - 0x66, 0x01, 0x60, 0x04, 0xc6, 0x86, 0x76, 0x02, 0x01, 0xbe, 0xc7, 0x4c, 0xe8, 0xe7, 0xf2, 0xbe, - 0x19, 0x4c, 0xe8, 0xe1, 0xf2, 0xbe, 0x73, 0x4c, 0xe8, 0xdb, 0xf2, 0xbe, 0xc1, 0x4c, 0xe8, 0xd5, - 0xf2, 0xe8, 0x80, 0x14, 0xc3, 0xc6, 0x86, 0x68, 0x01, 0x02, 0xc7, 0x86, 0x66, 0x01, 0x20, 0x03, - 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x5c, 0x00, 0x00, 0x00, 0xbe, 0x19, 0x4c, 0xe8, 0xb6, 0xf2, - 0xbe, 0x73, 0x4c, 0xe8, 0xb0, 0xf2, 0x8b, 0xb6, 0x64, 0x01, 0xb9, 0xe8, 0x03, 0xe8, 0xf2, 0x10, - 0xc3, 0x90, 0xc7, 0x86, 0x32, 0x02, 0x05, 0x00, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x08, 0xc6, - 0x86, 0x6d, 0x02, 0x01, 0xe8, 0xcf, 0xf4, 0xf6, 0x86, 0x72, 0x02, 0x01, 0x75, 0x04, 0xc6, 0x46, - 0x09, 0x16, 0xc6, 0x86, 0x73, 0x02, 0x01, 0xbe, 0x97, 0x4c, 0xe8, 0x79, 0xf2, 0xbe, 0x9d, 0x4c, - 0xe8, 0x73, 0xf2, 0xbe, 0x85, 0x4c, 0xe8, 0x6d, 0xf2, 0xbe, 0xaf, 0x4c, 0xe8, 0x67, 0xf2, 0xc7, - 0x86, 0xd6, 0x02, 0x01, 0x00, 0xc6, 0x86, 0x7a, 0x02, 0x01, 0xe8, 0xcd, 0x13, 0xc3, 0xc7, 0x86, - 0x32, 0x02, 0x07, 0x00, 0xc6, 0x86, 0x6c, 0x02, 0x01, 0xc6, 0x86, 0x60, 0x02, 0x00, 0xc6, 0x86, - 0x61, 0x02, 0x00, 0xbe, 0x4f, 0x4c, 0xe8, 0x3d, 0xf2, 0xf6, 0x86, 0x72, 0x02, 0x01, 0x75, 0x0d, - 0xc6, 0x86, 0x72, 0x02, 0x01, 0xb8, 0x00, 0x80, 0xe8, 0xef, 0x2b, 0xeb, 0x0a, 0x83, 0xa6, 0x0a, - 0x02, 0xdf, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xc6, 0x86, 0x08, 0x01, 0x00, 0xe8, 0x81, 0xf7, 0xe8, - 0x30, 0xf7, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x74, 0x0a, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x44, - 0x00, 0xff, 0xf7, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x4c, 0x00, 0x01, 0x26, 0x81, 0x26, 0x32, - 0x00, 0xff, 0x7f, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x15, 0xe8, 0xdc, 0xf6, 0xc7, 0x86, 0xc8, - 0x01, 0x14, 0x00, 0xc7, 0x86, 0xcc, 0x02, 0x00, 0x00, 0xbe, 0x55, 0x4c, 0xe8, 0xd7, 0xf1, 0xc3, - 0xbe, 0xb5, 0x4c, 0xe8, 0xd0, 0xf1, 0xc6, 0x86, 0x78, 0x02, 0x00, 0xc6, 0x86, 0x74, 0x02, 0x00, - 0xc6, 0x86, 0xfe, 0x00, 0x02, 0xe8, 0xfe, 0xf3, 0xbe, 0xc7, 0x4c, 0xe8, 0xb8, 0xf1, 0xc3, 0x90, - 0xc6, 0x86, 0x6c, 0x02, 0x00, 0xc6, 0x46, 0x09, 0x1e, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, - 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0xc7, 0x86, 0xda, 0x02, 0x05, 0x00, 0xbe, - 0xbb, 0x4c, 0xe8, 0x91, 0xf1, 0xb0, 0x00, 0xe8, 0x98, 0x15, 0xe8, 0x53, 0x13, 0xc3, 0xb8, 0x00, - 0x80, 0xe8, 0x46, 0x2b, 0xc6, 0x86, 0x08, 0x01, 0x00, 0xe8, 0xe4, 0xf6, 0xe8, 0x93, 0xf6, 0x8e, - 0x46, 0x02, 0x26, 0xc7, 0x06, 0x68, 0x00, 0x18, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x4c, - 0x00, 0x01, 0x26, 0x81, 0x26, 0x32, 0x00, 0xff, 0x7f, 0xc3, 0xc7, 0x86, 0x36, 0x02, 0x01, 0x00, - 0xc7, 0x86, 0xc6, 0x01, 0xff, 0xff, 0xc7, 0x86, 0xcc, 0x02, 0x00, 0x00, 0xc7, 0x86, 0xc8, 0x01, - 0x14, 0x00, 0x80, 0x7e, 0x07, 0x10, 0x74, 0x4b, 0xb0, 0x00, 0xe8, 0x45, 0x15, 0x80, 0x7e, 0x06, - 0x0e, 0x74, 0x02, 0xeb, 0x3e, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x4c, 0x00, 0x01, 0x26, 0x81, - 0x26, 0x32, 0x00, 0xff, 0x7f, 0x83, 0xa6, 0x0a, 0x02, 0xdf, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xf6, - 0x86, 0x5f, 0x02, 0x01, 0x74, 0x1d, 0xf6, 0x86, 0x6a, 0x02, 0x01, 0x74, 0x16, 0xf6, 0x86, 0x67, - 0x02, 0x01, 0x75, 0x0f, 0xc6, 0x86, 0x67, 0x02, 0x01, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x75, 0x03, - 0xe8, 0xfb, 0x0e, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xfe, 0x26, 0x81, 0x0e, - 0x32, 0x00, 0x00, 0x80, 0xc7, 0x86, 0x36, 0x02, 0x02, 0x00, 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xe8, - 0x14, 0xf3, 0xe8, 0xab, 0xf5, 0xbe, 0x37, 0x4c, 0xe8, 0xcb, 0xf0, 0xe8, 0x8b, 0x0e, 0xc3, 0x90, - 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, - 0xc7, 0x86, 0x36, 0x02, 0x03, 0x00, 0xc7, 0x86, 0xcc, 0x02, 0x00, 0x00, 0xc7, 0x86, 0xc8, 0x01, - 0x0a, 0x00, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, 0x0f, 0xc6, 0x86, 0x58, 0x02, 0x00, 0x8e, 0x46, - 0x02, 0x26, 0x81, 0x26, 0x64, 0x00, 0xff, 0x7f, 0xc6, 0x86, 0x5e, 0x02, 0x00, 0xc6, 0x86, 0x6d, - 0x02, 0x01, 0xc6, 0x86, 0x6f, 0x02, 0x01, 0xe8, 0xbc, 0xf2, 0x81, 0xa6, 0x0a, 0x02, 0xff, 0x2f, - 0x83, 0x8e, 0x0a, 0x02, 0x20, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xbe, 0x01, 0x4c, 0xe8, 0x66, 0xf0, - 0xbe, 0x25, 0x4c, 0xe8, 0x60, 0xf0, 0xc7, 0x86, 0xbc, 0x02, 0x01, 0x00, 0xc7, 0x86, 0xbe, 0x02, - 0x01, 0x00, 0xe8, 0xc3, 0x0d, 0xc3, 0xff, 0x86, 0x48, 0x02, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, - 0x4c, 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0xe8, 0xf9, 0xf5, 0xf6, 0x86, 0x63, - 0x02, 0x01, 0x75, 0x03, 0xe8, 0x67, 0x0d, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, - 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x75, 0x20, 0xc6, - 0x86, 0x6c, 0x02, 0x00, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0xe8, 0x45, - 0xf2, 0xe8, 0xd6, 0xf1, 0xbe, 0x2b, 0x4c, 0xe8, 0xfc, 0xef, 0xe8, 0xd4, 0xf5, 0xeb, 0x59, 0xc6, - 0x86, 0x71, 0x02, 0x01, 0xf6, 0x86, 0x70, 0x02, 0x01, 0x75, 0x4d, 0xe8, 0xbc, 0xf1, 0xe8, 0x01, - 0xe9, 0xc6, 0x86, 0x6c, 0x02, 0x00, 0xc6, 0x86, 0x71, 0x02, 0x00, 0xbe, 0x2b, 0x4c, 0xe8, 0xd5, - 0xef, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x42, 0x00, - 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0x46, 0x3c, 0xe8, 0x78, 0xf5, 0x33, 0xc0, - 0x88, 0x86, 0x8d, 0x02, 0x88, 0x86, 0x8e, 0x02, 0xc6, 0x86, 0x63, 0x01, 0x01, 0xc7, 0x86, 0x64, - 0x01, 0xfc, 0x05, 0xc6, 0x86, 0x69, 0x01, 0x02, 0xc3, 0x90, 0xff, 0x86, 0x48, 0x02, 0x8e, 0x46, - 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0xe8, 0x45, - 0xf5, 0xc7, 0x86, 0xb8, 0x02, 0x02, 0x00, 0xc7, 0x86, 0xba, 0x02, 0x08, 0x00, 0xc6, 0x86, 0x58, - 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x64, 0x00, 0xff, 0x7f, 0xc6, 0x86, 0x6d, 0x02, - 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0xe8, 0x9d, 0xf1, 0xf6, 0x86, 0x85, 0x02, 0x01, 0x75, 0x06, - 0xbe, 0xf5, 0x4b, 0xe8, 0x50, 0xef, 0x81, 0xa6, 0x0a, 0x02, 0xff, 0x6f, 0x81, 0x8e, 0x0a, 0x02, - 0x00, 0x40, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, - 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0x83, 0xbe, 0xca, 0x01, 0x00, 0x74, 0x0d, 0x8b, - 0x86, 0xca, 0x01, 0xc7, 0x86, 0xca, 0x01, 0x00, 0x00, 0xe8, 0xfc, 0x0f, 0xbe, 0x01, 0x4c, 0xe8, - 0x14, 0xef, 0xc3, 0x90, 0xc7, 0x86, 0x36, 0x02, 0x01, 0x00, 0xc7, 0x86, 0x34, 0x02, 0x02, 0x00, - 0xb0, 0x00, 0xe8, 0x0d, 0x13, 0x80, 0x7e, 0x06, 0x48, 0x75, 0x10, 0x8e, 0x46, 0x02, 0x26, 0x83, - 0x0e, 0x4c, 0x00, 0x01, 0x26, 0x81, 0x26, 0x32, 0x00, 0xff, 0x7f, 0xc3, 0xc7, 0x86, 0x34, 0x02, - 0x03, 0x00, 0xff, 0x86, 0x48, 0x02, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xfe, 0x26, - 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0xc6, 0x86, 0x6c, 0x02, 0x00, 0xc6, 0x86, 0x73, 0x02, 0x00, - 0xbe, 0x7f, 0x4c, 0xe8, 0xc0, 0xee, 0xbe, 0x8b, 0x4c, 0xe8, 0xba, 0xee, 0xbe, 0xa3, 0x4c, 0xe8, - 0xb4, 0xee, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x08, 0xc6, 0x86, 0x6f, 0x02, 0x01, 0xe8, 0xe5, - 0xf0, 0x81, 0x8e, 0x0a, 0x02, 0x04, 0x50, 0xc6, 0x86, 0x89, 0x02, 0x01, 0x80, 0xbe, 0xfe, 0x00, - 0x02, 0x74, 0x0d, 0xf6, 0x86, 0x65, 0x02, 0x01, 0x74, 0x06, 0x81, 0x8e, 0x0a, 0x02, 0x00, 0x80, - 0xe8, 0xcd, 0x2f, 0xe8, 0xb8, 0x0b, 0xc3, 0x90, 0xc7, 0x86, 0x34, 0x02, 0x04, 0x00, 0xbe, 0x7f, - 0x4c, 0xe8, 0x72, 0xee, 0xbe, 0x8b, 0x4c, 0xe8, 0x6c, 0xee, 0x81, 0xa6, 0x0a, 0x02, 0xfb, 0x6f, - 0x81, 0x8e, 0x0a, 0x02, 0x00, 0x40, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xc3, 0xc7, 0x86, 0x34, 0x02, - 0x05, 0x00, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x1a, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x81, 0x5e, - 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x42, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, - 0xe8, 0xbe, 0x3a, 0x81, 0xa6, 0x0a, 0x02, 0xfb, 0x2f, 0x83, 0x8e, 0x0a, 0x02, 0x20, 0xc6, 0x86, - 0x89, 0x02, 0x01, 0xe8, 0x5e, 0x01, 0xc3, 0x90, 0xc7, 0x86, 0x34, 0x02, 0x01, 0x00, 0xc3, 0x90, - 0xc3, 0x53, 0x50, 0x89, 0x86, 0x22, 0x01, 0x80, 0xbe, 0x62, 0x01, 0x01, 0x75, 0x0f, 0x50, 0xe8, - 0x43, 0xe6, 0xe8, 0x67, 0x26, 0xc6, 0x46, 0x07, 0x00, 0x58, 0xe9, 0xea, 0x00, 0xf6, 0x86, 0x08, - 0x01, 0x01, 0x74, 0x05, 0xe8, 0xb3, 0x27, 0xeb, 0x6c, 0x83, 0xf8, 0x10, 0x75, 0x08, 0x81, 0x8e, - 0x1e, 0x01, 0x00, 0x80, 0xeb, 0x5f, 0x83, 0x8e, 0x1e, 0x01, 0x02, 0x8b, 0x9e, 0x0a, 0x02, 0x83, - 0xf8, 0x01, 0x75, 0x04, 0x81, 0xcb, 0x00, 0x04, 0x83, 0xf8, 0x0c, 0x75, 0x04, 0x81, 0xcb, 0x00, - 0x08, 0x83, 0xf8, 0x0b, 0x75, 0x03, 0x83, 0xcb, 0x02, 0x83, 0xf8, 0x09, 0x75, 0x03, 0x83, 0xcb, - 0x04, 0x83, 0xf8, 0x0a, 0x75, 0x09, 0x81, 0xcb, 0x00, 0x01, 0x83, 0x8e, 0x1e, 0x01, 0x04, 0x83, - 0xf8, 0x06, 0x75, 0x03, 0x83, 0xcb, 0x01, 0x83, 0xf8, 0x0f, 0x74, 0x19, 0x83, 0xf8, 0x02, 0x75, - 0x03, 0x83, 0xcb, 0x08, 0x83, 0xf8, 0x03, 0x75, 0x03, 0x83, 0xcb, 0x08, 0x89, 0x9e, 0x0a, 0x02, - 0xc6, 0x86, 0x89, 0x02, 0x01, 0x8a, 0x4e, 0x06, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x72, 0x2e, 0xf7, - 0x86, 0x0a, 0x02, 0x08, 0x00, 0x75, 0x1c, 0x80, 0xf9, 0x48, 0x74, 0x11, 0xf6, 0x86, 0x72, 0x02, - 0x01, 0x74, 0x10, 0x80, 0xf9, 0x44, 0x74, 0x05, 0x80, 0xf9, 0x46, 0x75, 0x06, 0xc6, 0x46, 0x07, - 0x4c, 0xeb, 0x44, 0xc6, 0x46, 0x07, 0x12, 0xc6, 0x46, 0x09, 0x1e, 0xeb, 0x3a, 0xc6, 0x46, 0x07, - 0x12, 0xc6, 0x46, 0x09, 0x1e, 0xf6, 0x86, 0xac, 0x02, 0x01, 0x74, 0x1a, 0x8e, 0x46, 0x02, 0xf6, - 0x06, 0x81, 0x5e, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x42, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, - 0x6d, 0x01, 0x01, 0xe8, 0xab, 0x39, 0xf6, 0x86, 0xaa, 0x02, 0x01, 0x75, 0x02, 0xeb, 0x08, 0xc6, - 0x46, 0x07, 0x10, 0xc6, 0x46, 0x09, 0x00, 0x58, 0x5b, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, - 0x40, 0x00, 0x02, 0x00, 0x74, 0x0b, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x40, 0x00, 0xfd, 0xeb, - 0x09, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x40, 0x00, 0x02, 0xc3, 0x90, 0xc7, 0x86, 0x32, 0x02, - 0x01, 0x00, 0xc3, 0xb9, 0x01, 0x01, 0x38, 0xc8, 0x75, 0x19, 0x8b, 0xb6, 0xf6, 0x00, 0x81, 0xe6, - 0x00, 0xc0, 0x81, 0xfe, 0x00, 0x80, 0x75, 0x0b, 0xc6, 0x86, 0x5a, 0x02, 0x01, 0xbe, 0x07, 0x4c, - 0xe8, 0xc3, 0xec, 0xc3, 0xc3, 0x50, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x18, 0xf7, 0x86, 0xf6, - 0x00, 0x00, 0x10, 0x74, 0x05, 0xc6, 0x86, 0xfe, 0x00, 0x01, 0xc6, 0x86, 0x95, 0x02, 0x01, 0xe8, - 0x05, 0x00, 0xe8, 0xe1, 0xee, 0x58, 0xc3, 0xc7, 0x86, 0x98, 0x02, 0x00, 0x00, 0xc7, 0x86, 0x9c, - 0x02, 0x05, 0x00, 0xc6, 0x86, 0x96, 0x02, 0x00, 0xa1, 0x2a, 0x5d, 0x89, 0x86, 0x9a, 0x02, 0x40, - 0x89, 0x86, 0x9e, 0x02, 0xc3, 0xc6, 0x86, 0x95, 0x02, 0x00, 0xc6, 0x86, 0x96, 0x02, 0x00, 0xc3, - 0x50, 0x53, 0xf6, 0x86, 0x96, 0x02, 0x01, 0x75, 0x1c, 0xa1, 0x2a, 0x5d, 0x8b, 0x9e, 0x9a, 0x02, - 0x3b, 0xc3, 0x74, 0x11, 0x43, 0x3b, 0xc3, 0x74, 0x0c, 0x83, 0xc0, 0x04, 0x89, 0x86, 0x9a, 0x02, - 0xc6, 0x86, 0x96, 0x02, 0x01, 0x5b, 0x58, 0xc3, 0xc7, 0x86, 0x98, 0x02, 0x00, 0x00, 0xa1, 0x2a, - 0x5d, 0x83, 0xc0, 0x04, 0x89, 0x86, 0x9a, 0x02, 0xc6, 0x86, 0x96, 0x02, 0x01, 0xc3, 0xa1, 0x2a, - 0x5d, 0x3b, 0x86, 0x9e, 0x02, 0x74, 0x3a, 0x40, 0x3b, 0x86, 0x9e, 0x02, 0x74, 0x33, 0x48, 0xf6, - 0x86, 0x96, 0x02, 0x01, 0x74, 0x42, 0x3b, 0x86, 0x9a, 0x02, 0x75, 0x3c, 0x81, 0xbe, 0x98, 0x02, - 0x04, 0x01, 0x75, 0x0a, 0x80, 0xbe, 0xfe, 0x00, 0x00, 0x75, 0x03, 0xe9, 0xa5, 0x00, 0x83, 0xbe, - 0x98, 0x02, 0x04, 0x75, 0x11, 0x80, 0x7e, 0x06, 0x04, 0x75, 0x09, 0xe8, 0xaa, 0xff, 0xe9, 0xa4, - 0x00, 0xe9, 0xa1, 0x00, 0xeb, 0x0c, 0x80, 0x7e, 0x06, 0x04, 0x75, 0x06, 0xe8, 0x26, 0xff, 0xe9, - 0x93, 0x00, 0xe8, 0x60, 0xff, 0xe9, 0x8d, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x54, 0x00, 0x25, - 0x24, 0x01, 0x8b, 0xd8, 0x33, 0x86, 0x98, 0x02, 0x75, 0x02, 0xeb, 0x79, 0xa9, 0x04, 0x00, 0x74, - 0x15, 0xe8, 0x4c, 0xff, 0xf7, 0xc3, 0x04, 0x00, 0x74, 0x07, 0xc6, 0x86, 0x97, 0x02, 0x01, 0xeb, - 0x05, 0xc6, 0x86, 0x97, 0x02, 0x00, 0xa9, 0x00, 0x01, 0x74, 0x14, 0xf7, 0xc3, 0x00, 0x01, 0x74, - 0x0b, 0xf7, 0xc3, 0x20, 0x00, 0x75, 0x20, 0xe8, 0x26, 0xff, 0xeb, 0x03, 0xe8, 0x21, 0xff, 0xa9, - 0x20, 0x00, 0x74, 0x2d, 0xf7, 0xc3, 0x20, 0x00, 0x74, 0x34, 0xf6, 0x86, 0x96, 0x02, 0x01, 0x74, - 0x30, 0xf7, 0xc3, 0x00, 0x01, 0x74, 0x2a, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x10, 0x74, 0x14, 0x80, - 0xbe, 0xfe, 0x00, 0x00, 0x74, 0x0d, 0xe8, 0x1f, 0xff, 0xc6, 0x86, 0xfe, 0x00, 0x00, 0xe8, 0xa5, - 0xed, 0xeb, 0x0e, 0xe8, 0xdf, 0xfe, 0xb8, 0x0e, 0x00, 0xe8, 0x45, 0xfd, 0xeb, 0x03, 0xe8, 0xdf, - 0xfe, 0x89, 0x9e, 0x98, 0x02, 0xc3, 0x55, 0x1e, 0x06, 0x33, 0xed, 0x8e, 0xdd, 0x8b, 0x2e, 0x48, - 0x5d, 0x8e, 0x46, 0x02, 0xeb, 0x00, 0x60, 0xfa, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x44, 0x00, 0x89, - 0x86, 0x18, 0x01, 0xc7, 0x86, 0x1c, 0x01, 0x01, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x46, 0x00, - 0x89, 0x86, 0x1a, 0x01, 0xb8, 0x07, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x46, 0x00, 0xb8, 0xff, - 0xff, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x44, 0x00, 0xfb, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x48, 0x00, - 0x8b, 0xd8, 0x81, 0xe3, 0xff, 0xfc, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, 0x48, 0x00, 0x8e, 0x46, - 0x02, 0x26, 0x8b, 0x1e, 0x4a, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, 0x4a, 0x00, 0x50, 0xb0, - 0xa0, 0xe6, 0x10, 0x58, 0xa9, 0x00, 0x08, 0x74, 0x0f, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x74, 0x05, - 0xe8, 0xe8, 0x35, 0xeb, 0x03, 0xe8, 0x74, 0x30, 0xa9, 0x00, 0x01, 0x75, 0x22, 0xf7, 0x86, 0xa8, - 0x02, 0x01, 0x00, 0x75, 0x21, 0xa9, 0xcd, 0x01, 0x74, 0x1c, 0x80, 0xbe, 0x6a, 0x01, 0x0a, 0x72, - 0x0e, 0xc7, 0x86, 0xa8, 0x02, 0x01, 0x00, 0x81, 0x8e, 0x18, 0x01, 0xcd, 0x00, 0xeb, 0x07, 0xfe, - 0x86, 0x6a, 0x01, 0xe8, 0x6c, 0x32, 0xa9, 0x00, 0x04, 0x74, 0x29, 0xf7, 0x86, 0x0a, 0x01, 0x01, - 0x00, 0x75, 0x21, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x44, 0x00, 0x00, 0x04, 0xe8, 0x9f, 0xe8, - 0xc7, 0x44, 0x02, 0x01, 0x00, 0x89, 0x44, 0x04, 0xc7, 0x86, 0x0a, 0x01, 0x01, 0x00, 0x8d, 0x7e, - 0x16, 0xe8, 0xa9, 0xe8, 0xa9, 0x00, 0x10, 0x74, 0x27, 0x80, 0xbe, 0x0c, 0x01, 0x01, 0x74, 0x20, - 0xf6, 0x86, 0xb8, 0x01, 0x01, 0x75, 0x19, 0xe8, 0x75, 0xe8, 0xf7, 0xc6, 0xff, 0xff, 0x74, 0x10, - 0xc7, 0x44, 0x02, 0x03, 0x00, 0xc6, 0x86, 0xb8, 0x01, 0x01, 0x8d, 0x7e, 0x16, 0xe8, 0x7d, 0xe8, - 0xa9, 0x00, 0x20, 0x74, 0x61, 0x80, 0xbe, 0x0c, 0x01, 0x01, 0x75, 0x07, 0xc6, 0x86, 0x0d, 0x01, - 0x01, 0xeb, 0x53, 0x50, 0x26, 0xa1, 0x78, 0x00, 0x26, 0x8b, 0x1e, 0x70, 0x00, 0x3b, 0xc3, 0x77, - 0x10, 0x2b, 0x86, 0xa8, 0x15, 0x8b, 0xc8, 0x8b, 0x86, 0xaa, 0x15, 0x2b, 0xc3, 0x03, 0xc1, 0xeb, - 0x02, 0x2b, 0xc3, 0x3d, 0x00, 0x02, 0x77, 0x0d, 0xe8, 0xe6, 0xef, 0xc6, 0x86, 0xbc, 0x01, 0x01, - 0x83, 0x8e, 0xe6, 0x02, 0x40, 0x58, 0xf6, 0x86, 0xb9, 0x01, 0x01, 0x75, 0x19, 0xe8, 0x0f, 0xe8, - 0xf7, 0xc6, 0xff, 0xff, 0x74, 0x10, 0xc7, 0x44, 0x02, 0x04, 0x00, 0xc6, 0x86, 0xb9, 0x01, 0x01, - 0x8d, 0x7e, 0x16, 0xe8, 0x17, 0xe8, 0xfa, 0x8b, 0x86, 0x18, 0x01, 0x8e, 0x46, 0x02, 0x26, 0xa3, - 0x44, 0x00, 0xc7, 0x86, 0x1c, 0x01, 0x00, 0x00, 0x8b, 0x86, 0x1a, 0x01, 0x8e, 0x46, 0x02, 0x26, - 0xa3, 0x46, 0x00, 0x61, 0x07, 0x1f, 0x5d, 0xcf, 0x50, 0x25, 0x00, 0x02, 0x8e, 0x46, 0x02, 0x26, - 0xa3, 0x48, 0x00, 0x8b, 0x86, 0xcc, 0x02, 0x40, 0x89, 0x86, 0xcc, 0x02, 0x83, 0xf8, 0x01, 0x75, - 0x08, 0x56, 0xbe, 0x55, 0x4c, 0xe8, 0x9e, 0xe9, 0x5e, 0x3b, 0x86, 0xc8, 0x01, 0x76, 0x0a, 0x80, - 0xbe, 0x65, 0x02, 0x01, 0x74, 0x03, 0xe8, 0x3e, 0x32, 0x58, 0xc3, 0x8d, 0x71, 0x18, 0x8b, 0x49, - 0x14, 0x86, 0xcd, 0x83, 0xe9, 0x04, 0x7e, 0x1b, 0x33, 0xc0, 0x03, 0xf0, 0x8a, 0x04, 0x0a, 0xc0, - 0x74, 0x11, 0x3a, 0x54, 0x01, 0x74, 0x17, 0x32, 0xe4, 0x3c, 0xff, 0x74, 0x0a, 0x2b, 0xc8, 0x72, - 0x02, 0x77, 0xe7, 0x33, 0xc0, 0xf9, 0xc3, 0x8b, 0x44, 0x02, 0x86, 0xc4, 0xeb, 0xef, 0x0a, 0xe4, - 0x75, 0xf1, 0x38, 0xf0, 0x75, 0xed, 0x8d, 0x74, 0x02, 0xf8, 0xc3, 0x8c, 0xd8, 0x8e, 0xc0, 0x8b, - 0xb6, 0xa8, 0x15, 0x8b, 0xbe, 0xaa, 0x15, 0x47, 0xa5, 0xa5, 0xa5, 0x8b, 0x4f, 0x04, 0x83, 0xc1, - 0x07, 0x80, 0xe1, 0xfe, 0x8b, 0xc7, 0x2b, 0xc3, 0x2b, 0xc8, 0x76, 0x0a, 0x81, 0xf9, 0x00, 0x01, - 0x73, 0x09, 0xd1, 0xe9, 0xf3, 0xa5, 0x8b, 0x07, 0xe9, 0xd1, 0x01, 0xb9, 0x19, 0x00, 0xf3, 0xa5, - 0x33, 0xff, 0xf6, 0x47, 0x0e, 0x80, 0x74, 0x0e, 0x8b, 0x47, 0x14, 0x83, 0xe0, 0x1f, 0x74, 0x0f, - 0xa8, 0x01, 0x75, 0x0b, 0x8b, 0xf8, 0xba, 0x80, 0x09, 0x68, 0xe9, 0x28, 0xe9, 0x65, 0x05, 0xe9, - 0x9b, 0x02, 0xc3, 0x80, 0x7f, 0x17, 0x02, 0x75, 0xf9, 0x50, 0x56, 0x8b, 0xb6, 0x1a, 0x06, 0x8b, - 0x04, 0x5e, 0x3b, 0x86, 0xc6, 0x01, 0x74, 0x07, 0x89, 0x86, 0xc6, 0x01, 0x58, 0xeb, 0x3d, 0x58, - 0xeb, 0x12, 0x8a, 0x4f, 0x07, 0x80, 0xe1, 0x3f, 0x74, 0xd8, 0x8a, 0xe9, 0x86, 0x8e, 0xfe, 0x01, - 0x38, 0xcd, 0x75, 0x18, 0x57, 0x51, 0x8d, 0xbe, 0x00, 0x02, 0x8d, 0x77, 0x0e, 0x8c, 0xd9, 0x8e, - 0xc1, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x75, 0x06, 0x59, 0x5f, 0xeb, 0xb6, 0x57, 0x51, 0x8d, 0xbe, - 0x00, 0x02, 0x8d, 0x77, 0x0e, 0xb9, 0x03, 0x00, 0xf3, 0xa5, 0x59, 0x5f, 0xeb, 0x0d, 0x8b, 0x7e, - 0x04, 0x58, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x01, 0x00, 0x74, 0xf7, 0x80, 0x7e, 0x06, 0x0e, 0x74, - 0x08, 0x80, 0x7e, 0x06, 0x48, 0x74, 0x02, 0xeb, 0xe9, 0x50, 0x8c, 0xd8, 0x8e, 0xc0, 0x8b, 0x07, - 0xa9, 0x00, 0x40, 0x75, 0xdc, 0x0d, 0x00, 0x40, 0x89, 0x07, 0xe8, 0x8a, 0x00, 0x8b, 0x4f, 0x04, - 0x83, 0xc1, 0x03, 0x80, 0xe1, 0xfe, 0x89, 0x7e, 0x04, 0x8b, 0xbe, 0xc2, 0x01, 0x3b, 0xfe, 0x72, - 0x11, 0x8d, 0x86, 0xa8, 0x08, 0x05, 0xff, 0x00, 0x2b, 0xc7, 0x3b, 0xc1, 0x7d, 0x0a, 0x8d, 0xbe, - 0xa8, 0x08, 0x2b, 0xf7, 0x3b, 0xf1, 0x7c, 0xa6, 0x8b, 0xd7, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, - 0x8b, 0xf3, 0xd1, 0xe9, 0x83, 0xc7, 0x02, 0x49, 0xad, 0xf3, 0xa5, 0x8b, 0xcf, 0xc7, 0x05, 0x00, - 0x00, 0x8b, 0xfa, 0x89, 0x4d, 0x02, 0x51, 0x8b, 0x4d, 0x04, 0x83, 0xe9, 0x04, 0x89, 0x4d, 0x04, - 0x59, 0x89, 0x05, 0x8d, 0x86, 0xa8, 0x08, 0x3b, 0xf8, 0x75, 0x0e, 0x8b, 0x86, 0xc0, 0x01, 0x3b, - 0x86, 0xc2, 0x01, 0x75, 0x1c, 0x89, 0xbe, 0xc0, 0x01, 0x89, 0x8e, 0xc2, 0x01, 0x8b, 0x7e, 0x04, - 0xc7, 0x86, 0xc4, 0x01, 0x00, 0x00, 0xb9, 0x40, 0x60, 0x8e, 0xc1, 0xe8, 0xd1, 0x22, 0xe9, 0x4d, - 0xff, 0x97, 0x89, 0x45, 0x02, 0xeb, 0xe2, 0x8b, 0xb6, 0xc0, 0x01, 0xf7, 0x86, 0xc4, 0x01, 0x01, - 0x00, 0x75, 0x0f, 0x81, 0x3c, 0x00, 0x80, 0x75, 0x05, 0x8b, 0x74, 0x02, 0xeb, 0xf5, 0x89, 0xb6, - 0xc0, 0x01, 0xc3, 0xf7, 0x07, 0x01, 0x09, 0x74, 0x03, 0xe9, 0x61, 0x01, 0xf7, 0x07, 0x00, 0x10, - 0x75, 0x34, 0x68, 0xf8, 0x27, 0xe9, 0xae, 0x26, 0xa8, 0x02, 0x74, 0x22, 0x80, 0x7e, 0x08, 0x00, - 0x75, 0x1c, 0x80, 0xbe, 0x62, 0x02, 0x00, 0x74, 0x15, 0x24, 0x28, 0x3c, 0x28, 0x75, 0x0f, 0xf6, - 0x47, 0x0e, 0x80, 0x75, 0x64, 0x81, 0x8e, 0xe6, 0x02, 0x80, 0x00, 0xeb, 0x5c, 0x90, 0xeb, 0x59, - 0xe9, 0x38, 0xfe, 0x90, 0xeb, 0xd2, 0xeb, 0x34, 0x8b, 0x47, 0x14, 0x83, 0xe0, 0x1f, 0x74, 0x06, - 0xa8, 0x01, 0x8b, 0xf8, 0x74, 0x4b, 0xe9, 0x14, 0x01, 0x50, 0x8b, 0x9e, 0xb2, 0x01, 0x8b, 0x07, - 0xa9, 0x00, 0x80, 0x75, 0x02, 0x58, 0xc3, 0xa9, 0x00, 0x20, 0x74, 0x0b, 0xff, 0x86, 0x40, 0x02, - 0x8b, 0x4f, 0x04, 0x01, 0x8e, 0x42, 0x02, 0xe8, 0x92, 0x03, 0x75, 0xc4, 0xf7, 0x86, 0xb6, 0x01, - 0x00, 0x02, 0x75, 0x11, 0xa9, 0x01, 0x09, 0x75, 0x40, 0x80, 0x7e, 0x07, 0x10, 0x74, 0x3a, 0x80, - 0x7e, 0x07, 0x12, 0x74, 0x34, 0xa8, 0x28, 0x75, 0xab, 0x33, 0xff, 0xf6, 0x47, 0x0e, 0x80, 0x75, - 0xa7, 0x8b, 0x47, 0x04, 0x83, 0xf8, 0x12, 0x77, 0x05, 0x33, 0xc0, 0xe9, 0x99, 0x01, 0x83, 0xe8, - 0x12, 0x2b, 0xc7, 0x83, 0xf8, 0x04, 0x7c, 0x38, 0x8b, 0x49, 0x16, 0x88, 0xae, 0x08, 0x02, 0x51, - 0x80, 0xe1, 0xf0, 0x80, 0xf9, 0x00, 0x74, 0x04, 0x59, 0xe9, 0xa1, 0x00, 0x59, 0x0b, 0xff, 0x74, - 0x0f, 0xf6, 0xc1, 0x0f, 0x74, 0xf3, 0x80, 0xf9, 0x33, 0x74, 0xee, 0x80, 0xf9, 0x03, 0x74, 0xe9, - 0x86, 0xc4, 0x39, 0x41, 0x14, 0x86, 0xc4, 0x75, 0x03, 0xeb, 0x0d, 0x90, 0xe9, 0x53, 0x01, 0x90, - 0xe9, 0x54, 0x01, 0x90, 0xe9, 0x5c, 0x01, 0x90, 0xf6, 0x86, 0x95, 0x02, 0x01, 0x74, 0x03, 0xe8, - 0x43, 0xfa, 0x80, 0xfd, 0x17, 0x77, 0x11, 0x80, 0xfd, 0x01, 0x74, 0xe8, 0x80, 0xfd, 0x09, 0x74, - 0xe3, 0x80, 0xfd, 0x0a, 0x74, 0xde, 0xeb, 0x11, 0x80, 0xfd, 0x20, 0x72, 0xd7, 0x80, 0xfd, 0x29, - 0x77, 0xd2, 0x80, 0xfd, 0x21, 0x74, 0xcd, 0xeb, 0xa0, 0x80, 0xfd, 0x10, 0x76, 0x02, 0xeb, 0x05, - 0x80, 0xfd, 0x0e, 0x73, 0x1d, 0x53, 0x8b, 0xd9, 0xc1, 0xeb, 0x08, 0x80, 0xe1, 0x0f, 0x3a, 0x8f, - 0x72, 0x04, 0x74, 0x23, 0x83, 0xfb, 0x0b, 0x74, 0x19, 0x83, 0xfb, 0x0c, 0x74, 0x14, 0x5b, 0xe9, - 0xfa, 0x00, 0x80, 0xe1, 0x0f, 0x80, 0xf9, 0x00, 0x74, 0xf5, 0x80, 0xf9, 0x03, 0x74, 0xf0, 0xe9, - 0xa1, 0x01, 0x80, 0xf9, 0x08, 0x75, 0xe7, 0x5b, 0xe9, 0x98, 0x01, 0x5b, 0x5f, 0x8b, 0x9e, 0xb2, - 0x01, 0xf7, 0x86, 0xf6, 0x00, 0x01, 0x00, 0x74, 0x28, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x06, 0x80, - 0x7e, 0x06, 0x48, 0x75, 0x1c, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x08, 0x74, 0x06, 0x68, 0x1d, 0x29, - 0xe9, 0x5f, 0xfd, 0xf7, 0x86, 0x12, 0x01, 0x80, 0x00, 0x74, 0x06, 0x68, 0x1d, 0x29, 0xe9, 0x32, - 0xfd, 0x8b, 0x5f, 0x02, 0x89, 0x9e, 0xb2, 0x01, 0x8b, 0xc3, 0x83, 0xe8, 0x02, 0x3b, 0x86, 0xa8, - 0x15, 0x77, 0x04, 0x8b, 0x86, 0xaa, 0x15, 0x8e, 0x46, 0x02, 0x53, 0x26, 0x8b, 0x1e, 0x78, 0x00, - 0x81, 0x7f, 0xfc, 0xde, 0xad, 0x75, 0x07, 0x81, 0x7f, 0xfe, 0xbe, 0xaf, 0x74, 0x05, 0xc6, 0x86, - 0xbd, 0x01, 0x01, 0x5b, 0x26, 0xa3, 0x78, 0x00, 0x26, 0xa1, 0x78, 0x00, 0x93, 0xc7, 0x47, 0xfc, - 0xde, 0xad, 0xc7, 0x47, 0xfe, 0xbe, 0xaf, 0x93, 0xfa, 0x8b, 0x07, 0xa9, 0x00, 0x80, 0x74, 0x17, - 0xfb, 0xff, 0x86, 0x3c, 0x01, 0x83, 0xbe, 0x3c, 0x01, 0x05, 0x77, 0x2b, 0x8a, 0x4e, 0x09, 0x3a, - 0x4e, 0x08, 0x75, 0x23, 0xe9, 0x60, 0xfe, 0xc6, 0x86, 0xb9, 0x01, 0x00, 0xfb, 0xf6, 0x86, 0xbc, - 0x01, 0x01, 0x74, 0x08, 0xc6, 0x86, 0xbc, 0x01, 0x00, 0xe8, 0x6a, 0xeb, 0xc7, 0x86, 0x3c, 0x01, - 0x00, 0x00, 0x58, 0xc3, 0xe9, 0x46, 0xff, 0xe8, 0xb5, 0xe3, 0xf7, 0xc6, 0xff, 0xff, 0x74, 0xd7, - 0xc7, 0x44, 0x02, 0x04, 0x00, 0xc6, 0x86, 0xb9, 0x01, 0x01, 0x8d, 0x7e, 0x16, 0xe8, 0xbd, 0xe3, - 0xeb, 0xcb, 0xba, 0x80, 0x02, 0xeb, 0x1d, 0xba, 0x80, 0x01, 0xeb, 0x18, 0xba, 0x80, 0x04, 0xeb, - 0x13, 0x5f, 0x5b, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x10, 0x74, 0x06, 0x68, 0x1d, 0x29, 0xe9, 0xd2, - 0xfc, 0xba, 0x80, 0x03, 0x33, 0xc0, 0x8e, 0xc0, 0x68, 0xe9, 0x28, 0xe9, 0xc6, 0x01, 0x33, 0xd2, - 0x32, 0xed, 0x8a, 0x4d, 0xff, 0x89, 0x55, 0x02, 0x83, 0xc7, 0x05, 0xe2, 0xf8, 0xf6, 0x86, 0x63, - 0x02, 0x01, 0x74, 0x38, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x0b, 0xc6, 0x46, 0x09, 0x04, 0xc6, 0x86, - 0x63, 0x02, 0x00, 0xeb, 0x24, 0x80, 0x7e, 0x08, 0x06, 0x75, 0x21, 0xc6, 0x86, 0x63, 0x02, 0x00, - 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xe8, 0x5e, 0xe7, 0xbe, 0x25, 0x4c, 0xe8, 0x18, 0xe5, 0x50, 0x53, - 0x33, 0xc0, 0x8e, 0xc0, 0xe8, 0x47, 0x02, 0x5b, 0x58, 0xbb, 0x00, 0x00, 0x8b, 0xf8, 0x8b, 0xf3, - 0x5b, 0x57, 0x53, 0x68, 0xe7, 0x28, 0xff, 0x66, 0x12, 0xeb, 0x87, 0x8b, 0xc7, 0x8b, 0xbf, 0x8a, - 0x04, 0x0b, 0xff, 0x78, 0xf4, 0x74, 0xa6, 0x03, 0xfd, 0xf6, 0x45, 0x01, 0x80, 0x75, 0x02, 0xeb, - 0x8d, 0xe9, 0x21, 0x01, 0xe9, 0x03, 0x01, 0x5f, 0x5b, 0xba, 0x80, 0x08, 0xe9, 0x75, 0xff, 0x8b, - 0x54, 0x02, 0x86, 0xd6, 0x83, 0xc6, 0x02, 0xb0, 0x04, 0xeb, 0x51, 0x5f, 0x5b, 0xba, 0x80, 0x05, - 0xe9, 0x61, 0xff, 0x53, 0x8d, 0x71, 0x18, 0x32, 0xff, 0x8a, 0xdd, 0xd1, 0xe3, 0x83, 0xe8, 0x04, - 0x0b, 0xc0, 0x74, 0xb7, 0x89, 0x46, 0x04, 0x57, 0x8b, 0xbf, 0x8a, 0x04, 0x0b, 0xff, 0x74, 0xc4, - 0x79, 0x03, 0xe9, 0x2c, 0xff, 0x03, 0xfd, 0x8e, 0xc7, 0x33, 0xc0, 0x32, 0xed, 0x8a, 0x4d, 0xff, - 0x89, 0x45, 0x02, 0x83, 0xc7, 0x05, 0xe2, 0xf8, 0x33, 0xd2, 0x03, 0xf2, 0x8a, 0x4c, 0x01, 0x8a, - 0x14, 0x0a, 0xd2, 0x74, 0xb6, 0x80, 0xfa, 0xff, 0x74, 0xa5, 0xb0, 0x02, 0x29, 0x56, 0x04, 0x72, - 0xaa, 0x0a, 0xc9, 0x78, 0x92, 0x8a, 0xe1, 0x80, 0xe1, 0x3f, 0x8c, 0xc7, 0x8a, 0x6d, 0xff, 0xeb, - 0x12, 0x80, 0x7d, 0x04, 0xff, 0x74, 0x15, 0xeb, 0x92, 0xe9, 0x7b, 0xff, 0xfe, 0xcd, 0x74, 0xf9, - 0x83, 0xc7, 0x05, 0x3a, 0x0d, 0x75, 0xf5, 0x3a, 0x55, 0x04, 0x75, 0xe5, 0x8d, 0x44, 0x02, 0x87, - 0x45, 0x02, 0x0b, 0xc0, 0x74, 0x09, 0xf6, 0x45, 0x01, 0x80, 0x75, 0xdd, 0x89, 0x45, 0x02, 0x83, - 0x7e, 0x04, 0x00, 0x75, 0xa5, 0x33, 0xc0, 0x8c, 0xc6, 0xf6, 0x44, 0x01, 0x80, 0x74, 0x0e, 0x39, - 0x44, 0x02, 0x74, 0x60, 0x83, 0xc6, 0x05, 0xf6, 0x44, 0x01, 0x80, 0x75, 0xf2, 0xf6, 0x86, 0x63, - 0x02, 0x01, 0x74, 0x36, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x0b, 0xc6, 0x86, 0x63, 0x02, 0x00, 0xc6, - 0x46, 0x09, 0x04, 0xeb, 0x22, 0x80, 0x7e, 0x08, 0x06, 0x75, 0x1f, 0xc6, 0x86, 0x63, 0x02, 0x00, - 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xe8, 0x2e, 0xe6, 0xbe, 0x25, 0x4c, 0xe8, 0xe8, 0xe3, 0x33, 0xc0, - 0x8e, 0xc0, 0x53, 0xe8, 0x18, 0x01, 0x5b, 0xbb, 0x00, 0x00, 0x89, 0x5e, 0x04, 0x8b, 0xf3, 0x5f, - 0x5b, 0x33, 0xc0, 0x8e, 0xc0, 0x3b, 0xb6, 0xba, 0x01, 0x73, 0x06, 0x68, 0xe9, 0x28, 0xff, 0x66, - 0x12, 0xe9, 0x69, 0xfd, 0x5f, 0x5b, 0xba, 0x80, 0x07, 0xe9, 0x58, 0xfe, 0x56, 0x57, 0x50, 0x33, - 0xc0, 0x8e, 0xc0, 0x8b, 0xb6, 0xa8, 0x15, 0x8b, 0xbe, 0xaa, 0x15, 0x83, 0xc7, 0x01, 0xa5, 0xa5, - 0xa5, 0x8b, 0xc3, 0x03, 0x47, 0x04, 0x8b, 0xbe, 0xaa, 0x15, 0x3b, 0xc7, 0x7f, 0x02, 0x32, 0xc0, - 0x58, 0x5f, 0x5e, 0xc3, 0x8c, 0xd8, 0x8e, 0xc0, 0xf6, 0x41, 0x16, 0x0f, 0x74, 0x60, 0x89, 0x96, - 0xee, 0x02, 0x81, 0xfa, 0x80, 0x02, 0x74, 0x13, 0xba, 0x09, 0x04, 0xe8, 0xed, 0xf9, 0x72, 0x0b, - 0xad, 0x86, 0xe0, 0x89, 0x86, 0x18, 0x02, 0x86, 0xe0, 0xeb, 0x06, 0x8b, 0x86, 0x18, 0x02, 0x86, - 0xe0, 0x89, 0x86, 0xea, 0x02, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0x4d, 0x22, 0x57, 0x53, 0xe8, 0x2b, - 0x06, 0x5a, 0x5f, 0x72, 0x29, 0x57, 0xe8, 0x26, 0x00, 0xb8, 0x00, 0x0e, 0xab, 0x47, 0xb0, 0x00, - 0xaa, 0x8d, 0xb6, 0xe8, 0x02, 0xa5, 0xa5, 0x8d, 0xb6, 0xec, 0x02, 0xa5, 0xa5, 0x55, 0x8b, 0xea, - 0x8a, 0x47, 0x16, 0x8a, 0x66, 0x17, 0xab, 0x5d, 0xe8, 0xa1, 0x06, 0x8b, 0xda, 0x5f, 0xc3, 0x55, - 0x8b, 0xea, 0x8a, 0x43, 0x16, 0xc0, 0xe0, 0x04, 0x88, 0x41, 0x16, 0xc7, 0x47, 0x06, 0xe0, 0x00, - 0x83, 0xe9, 0x06, 0x89, 0x4f, 0x04, 0x0b, 0xff, 0x75, 0x18, 0x8d, 0x76, 0x0e, 0x8d, 0x7f, 0x08, - 0x8c, 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0x8b, 0xd5, 0x5d, 0x8d, 0xb6, 0x00, 0x03, 0xa5, 0xa5, - 0xa5, 0xc3, 0x8b, 0xcf, 0xd1, 0xe9, 0x8d, 0x76, 0x0e, 0x8d, 0x7f, 0x08, 0x8c, 0xd8, 0x8e, 0xc0, - 0xad, 0x24, 0x7f, 0xab, 0xa5, 0xa5, 0x8b, 0xd5, 0x5d, 0x56, 0x8d, 0xb6, 0x00, 0x03, 0xad, 0x0c, - 0x80, 0xab, 0xa5, 0xa5, 0x5e, 0xad, 0x80, 0xcc, 0x80, 0xab, 0x49, 0xf3, 0xa5, 0xc3, 0x8b, 0x86, - 0x0c, 0x03, 0x86, 0xe0, 0x89, 0x86, 0x14, 0x02, 0x89, 0x86, 0x06, 0x02, 0x8c, 0xd8, 0x8e, 0xc0, - 0x8d, 0xbe, 0x00, 0x02, 0x8d, 0xb6, 0x00, 0x03, 0xb9, 0x03, 0x00, 0xf3, 0xa5, 0xb9, 0x2a, 0x00, - 0xe8, 0x5f, 0x05, 0x72, 0xd8, 0x8d, 0xb6, 0xf2, 0x02, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, - 0xe9, 0xf3, 0xa5, 0xe9, 0x0d, 0x06, 0xeb, 0x6a, 0xb9, 0x26, 0x00, 0xe8, 0x44, 0x05, 0x72, 0xf6, - 0x8d, 0xb6, 0x1c, 0x03, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0xf2, - 0x05, 0x8d, 0x7f, 0x08, 0x8b, 0x4f, 0x04, 0x83, 0xc1, 0x03, 0x80, 0xe1, 0xfe, 0x57, 0xe8, 0x21, - 0x05, 0x5f, 0x8b, 0xd7, 0x72, 0x22, 0x83, 0xe9, 0x08, 0x8d, 0x7f, 0x04, 0x8c, 0xd8, 0x8e, 0xc0, - 0x8b, 0xc1, 0xab, 0x8b, 0x86, 0x22, 0x03, 0xab, 0x8b, 0xf2, 0xd1, 0xe9, 0x49, 0xf3, 0xa5, 0xbe, - 0x01, 0x4c, 0xe8, 0x41, 0xe2, 0xe9, 0xbb, 0x05, 0xc3, 0xb9, 0x26, 0x00, 0xe8, 0xf3, 0x04, 0x72, - 0x11, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0xb6, 0x42, 0x03, 0x8b, 0xfb, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, - 0xa1, 0x05, 0xc3, 0xb9, 0x26, 0x00, 0xe8, 0xf3, 0x04, 0x72, 0xf7, 0x8d, 0xb6, 0x68, 0x03, 0x8b, - 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xc6, 0x86, 0x67, 0x02, 0x01, 0x80, 0xbe, - 0x87, 0x02, 0x01, 0x75, 0x03, 0xe9, 0x74, 0x05, 0x68, 0x6d, 0x31, 0xe9, 0x6e, 0x05, 0xb9, 0x26, - 0x00, 0xe8, 0xc8, 0x04, 0x72, 0xcc, 0x8d, 0xb6, 0x8e, 0x03, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, - 0xd1, 0xe9, 0xf3, 0xa5, 0xc6, 0x86, 0x67, 0x02, 0x01, 0x80, 0xbe, 0x87, 0x02, 0x01, 0x75, 0x03, - 0xe9, 0x49, 0x05, 0x68, 0x6d, 0x31, 0xe9, 0x43, 0x05, 0xb9, 0x18, 0x00, 0xe8, 0x9d, 0x04, 0x72, - 0xa1, 0x8d, 0xb6, 0xb4, 0x03, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, - 0x2a, 0x05, 0x83, 0xc1, 0x1c, 0x56, 0x57, 0x52, 0xe8, 0x81, 0x04, 0x5a, 0x5f, 0x5e, 0x72, 0x53, - 0x56, 0x8c, 0xd8, 0x8e, 0xc0, 0x83, 0xe9, 0x08, 0x8b, 0xc1, 0x8d, 0x7f, 0x04, 0xab, 0xba, 0xe0, - 0x00, 0x8b, 0xc2, 0xab, 0x8d, 0xb6, 0xd4, 0x03, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0x00, 0x03, 0x80, - 0xbe, 0x62, 0x01, 0x01, 0x75, 0x04, 0x8d, 0xb6, 0x00, 0x01, 0xa5, 0xa5, 0xa5, 0x83, 0xe9, 0x0e, - 0x80, 0xbe, 0x63, 0x01, 0x02, 0x75, 0x03, 0x83, 0xe9, 0x04, 0x8b, 0xc1, 0x86, 0xe0, 0xab, 0xb8, - 0x00, 0x08, 0xab, 0x83, 0xe9, 0x04, 0xb8, 0xff, 0x26, 0xab, 0x8b, 0xc1, 0x86, 0xe0, 0xab, 0x5e, - 0xe9, 0xc9, 0x04, 0xeb, 0x69, 0xf6, 0x86, 0x8b, 0x02, 0x01, 0x75, 0x03, 0xe9, 0xfb, 0x04, 0x83, - 0xc1, 0x1a, 0x57, 0x52, 0xe8, 0x15, 0x04, 0x5a, 0x5f, 0x72, 0x53, 0x8c, 0xd8, 0x8e, 0xc0, 0x83, - 0xe9, 0x08, 0x8b, 0xc1, 0x8d, 0x7f, 0x04, 0xab, 0xb9, 0x07, 0x00, 0x8d, 0xb6, 0xec, 0x03, 0xf3, - 0xa5, 0x83, 0xe8, 0x0e, 0x8b, 0xc8, 0x86, 0xe0, 0xab, 0xb8, 0x00, 0x08, 0xab, 0x83, 0xe9, 0x04, - 0x8b, 0xc1, 0xb4, 0x26, 0xab, 0xbe, 0x80, 0x03, 0xb9, 0x20, 0x00, 0xf3, 0xa5, 0xc6, 0x86, 0x8b, - 0x02, 0x00, 0xe9, 0x77, 0x04, 0xb9, 0x44, 0x00, 0xe8, 0xd1, 0x03, 0x72, 0x11, 0x8d, 0xb6, 0x00, - 0x04, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe8, 0x5e, 0x04, 0xc3, 0xb9, - 0x36, 0x00, 0xe8, 0xb7, 0x03, 0x72, 0xf7, 0xff, 0x86, 0x56, 0x02, 0x8d, 0xb6, 0xd2, 0x05, 0x8b, - 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0x33, 0xc0, 0x8d, 0xbe, 0xec, 0x05, 0xab, - 0xab, 0xaa, 0x8d, 0xbe, 0xf4, 0x05, 0xab, 0xab, 0xaa, 0xe9, 0x30, 0x04, 0x8d, 0x4d, 0x3a, 0x57, - 0x53, 0xe8, 0x88, 0x03, 0x5a, 0x5f, 0x72, 0x5b, 0x57, 0xe8, 0x83, 0xfd, 0x8c, 0xd8, 0x8e, 0xc0, - 0xb8, 0x00, 0x26, 0xab, 0x47, 0xb0, 0x22, 0xaa, 0x8d, 0xb6, 0xe8, 0x02, 0xa5, 0xa5, 0x8d, 0xb6, - 0x0e, 0x03, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0x14, 0x03, 0xa5, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0x44, - 0x04, 0xa5, 0xa5, 0x8d, 0xb6, 0x48, 0x04, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0x4e, 0x04, 0xa5, 0x53, - 0x8c, 0xdb, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x66, 0x00, 0xe8, 0x67, 0xdd, 0x8e, 0xc3, 0xab, 0x8e, - 0x46, 0x02, 0x26, 0xa1, 0x64, 0x00, 0xe8, 0x5a, 0xdd, 0x8e, 0xc3, 0xab, 0x5b, 0xe8, 0xcc, 0x03, - 0x8b, 0xda, 0x5f, 0xc3, 0x8d, 0x4d, 0x38, 0x57, 0x53, 0xe8, 0x20, 0x03, 0x5a, 0x5f, 0x72, 0xf3, - 0x57, 0xe8, 0x1b, 0xfd, 0x8c, 0xd8, 0x8e, 0xc0, 0xb8, 0x00, 0x24, 0xab, 0x47, 0xb0, 0x23, 0xaa, - 0x8d, 0xb6, 0xe8, 0x02, 0xa5, 0xa5, 0x8d, 0xb6, 0x18, 0x04, 0xb9, 0x06, 0x00, 0xf3, 0xa5, 0x8d, - 0xb6, 0x5c, 0x04, 0xa5, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0x54, 0x04, 0xa5, 0xa5, 0xa5, 0xa5, 0xe8, - 0x8a, 0x03, 0x8b, 0xda, 0x5f, 0xc3, 0x8d, 0x4d, 0x3e, 0x57, 0x53, 0xe8, 0xde, 0x02, 0x5a, 0x5f, - 0x72, 0x64, 0x57, 0xe8, 0xd9, 0xfc, 0x8c, 0xd8, 0x8e, 0xc0, 0xb8, 0x00, 0x2a, 0xab, 0x47, 0xb0, - 0x24, 0xaa, 0x8d, 0xb6, 0xe8, 0x02, 0xa5, 0xa5, 0x8d, 0xb6, 0x2c, 0x04, 0xb9, 0x0a, 0x00, 0xf3, - 0xa5, 0x8d, 0xb6, 0x4e, 0x04, 0xa5, 0x53, 0x8c, 0xdb, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x66, 0x00, - 0xe8, 0xd0, 0xdc, 0x8e, 0xc3, 0xab, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x64, 0x00, 0xe8, 0xc3, 0xdc, - 0x8e, 0xc3, 0xab, 0x5b, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0xb6, 0x64, 0x04, 0xa5, 0x8b, 0x86, 0xfc, - 0x01, 0x86, 0xc4, 0xab, 0x8d, 0xb6, 0x68, 0x04, 0xa5, 0x8b, 0x86, 0xfa, 0x01, 0x86, 0xc4, 0xab, - 0xe8, 0x19, 0x03, 0x8b, 0xda, 0x5f, 0xc3, 0xb9, 0x3a, 0x00, 0xe8, 0x6f, 0x02, 0x72, 0xf7, 0x8d, - 0xb6, 0x6c, 0x04, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0x80, 0xbe, 0x87, - 0x02, 0x01, 0x75, 0x03, 0xe9, 0xf5, 0x02, 0x68, 0x6d, 0x31, 0xe9, 0xef, 0x02, 0xb9, 0x26, 0x00, - 0xe8, 0x49, 0x02, 0x72, 0xd1, 0xff, 0x86, 0x52, 0x02, 0x8d, 0xb6, 0xa6, 0x04, 0x8b, 0xfb, 0x8c, - 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0x80, 0xbe, 0x87, 0x02, 0x01, 0x75, 0x03, 0xe9, 0xcb, - 0x02, 0x68, 0x6d, 0x31, 0xe9, 0xc5, 0x02, 0xb9, 0x20, 0x00, 0xe8, 0x1f, 0x02, 0x72, 0xa7, 0x8d, - 0xb6, 0xf2, 0x01, 0x8d, 0xbe, 0xe6, 0x04, 0x8c, 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, - 0xcc, 0x04, 0x8b, 0xfb, 0xd1, 0xe9, 0xf3, 0xa5, 0x80, 0xbe, 0x87, 0x02, 0x01, 0x75, 0x03, 0xe9, - 0x9a, 0x02, 0x68, 0x6d, 0x31, 0xe9, 0x94, 0x02, 0x89, 0x86, 0x06, 0x05, 0x86, 0xc4, 0x89, 0x86, - 0x12, 0x02, 0xb9, 0x2a, 0x00, 0xe8, 0xe4, 0x01, 0x72, 0x18, 0x8d, 0xb6, 0xec, 0x04, 0x8b, 0xfb, - 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0x80, 0xbe, 0x87, 0x02, 0x01, 0x75, 0x07, 0xe9, - 0x6a, 0x02, 0xe9, 0x5a, 0x01, 0x90, 0x68, 0x6d, 0x31, 0xe9, 0x60, 0x02, 0xb9, 0x18, 0x00, 0xe8, - 0xba, 0x01, 0x73, 0x03, 0xe9, 0x3f, 0xff, 0x8d, 0xb6, 0x8a, 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, - 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0x44, 0x02, 0xb9, 0x24, 0x00, 0xe8, 0x9e, 0x01, 0x73, 0x03, - 0xe9, 0x23, 0xff, 0x8b, 0x86, 0x34, 0x05, 0x86, 0xc4, 0x89, 0x86, 0x2a, 0x02, 0x8d, 0xb6, 0x16, - 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0x1e, 0x02, 0xb9, 0x1c, - 0x00, 0xe8, 0x78, 0x01, 0x73, 0x03, 0xe9, 0xfd, 0xfe, 0x8d, 0xb6, 0x3a, 0x05, 0x8b, 0xfb, 0x8c, - 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0x02, 0x02, 0xb9, 0x18, 0x00, 0xe8, 0x5c, 0x01, - 0x73, 0x03, 0xe9, 0xe1, 0xfe, 0x8d, 0xb6, 0x56, 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, - 0xe9, 0xf3, 0xa5, 0xe9, 0xe6, 0x01, 0xb9, 0x1c, 0x00, 0x50, 0xe8, 0x3f, 0x01, 0x58, 0x73, 0x03, - 0xe9, 0xc3, 0xfe, 0x8d, 0xb6, 0x6e, 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, - 0xa5, 0xe9, 0xc8, 0x01, 0xb9, 0x18, 0x00, 0xe8, 0x22, 0x01, 0x73, 0x03, 0xe9, 0xa7, 0xfe, 0x8d, - 0xb6, 0xa2, 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0xac, 0x01, - 0xb9, 0x18, 0x00, 0xe8, 0x06, 0x01, 0x73, 0x03, 0xe9, 0x8b, 0xfe, 0x8d, 0xb6, 0xba, 0x05, 0x8b, - 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0x90, 0x01, 0x8b, 0x4f, 0x04, 0x53, - 0xe8, 0xe9, 0x00, 0x5e, 0x72, 0x17, 0x89, 0x9e, 0x3c, 0x02, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, - 0xd1, 0xe9, 0xf3, 0xa5, 0xc7, 0x86, 0x3e, 0x02, 0x01, 0x00, 0xe9, 0x6f, 0x01, 0xe9, 0x61, 0x12, - 0xb9, 0x18, 0x00, 0xe8, 0xc6, 0x00, 0x8d, 0xb6, 0xb4, 0x03, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, - 0xd1, 0xe9, 0xf3, 0xa5, 0x33, 0xc0, 0x8d, 0x7f, 0x08, 0xb9, 0x06, 0x00, 0xf3, 0xab, 0xe9, 0x4b, - 0x01, 0x53, 0x8b, 0x9e, 0xb0, 0x01, 0x8b, 0xb6, 0xae, 0x01, 0x3b, 0xde, 0x74, 0x15, 0x8a, 0x47, - 0x17, 0xf6, 0x44, 0x0e, 0x80, 0x75, 0x0e, 0x38, 0x44, 0x17, 0x75, 0x09, 0x8b, 0x74, 0x02, 0x89, - 0xb6, 0xae, 0x01, 0xeb, 0x1a, 0x8b, 0xfe, 0x8b, 0x74, 0x02, 0x3b, 0xde, 0x74, 0x11, 0xf6, 0x44, - 0x0e, 0x80, 0x75, 0xf1, 0x38, 0x44, 0x17, 0x75, 0xec, 0x8b, 0x44, 0x02, 0x89, 0x45, 0x02, 0x5b, - 0xc3, 0xe8, 0x89, 0xd8, 0xc6, 0x86, 0x87, 0x02, 0x00, 0x8d, 0xb6, 0xa6, 0x01, 0x8d, 0xbe, 0xac, - 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x40, 0x00, - 0x00, 0x16, 0x8d, 0x9e, 0xa8, 0x12, 0x89, 0x9e, 0xa8, 0x01, 0x89, 0x9e, 0xaa, 0x01, 0xc7, 0x07, - 0x30, 0x80, 0xc7, 0x47, 0x04, 0x00, 0x00, 0x83, 0xc3, 0x08, 0x89, 0x9e, 0xa6, 0x01, 0xc6, 0x86, - 0x8a, 0x02, 0x01, 0x83, 0xc1, 0x02, 0xeb, 0x4a, 0x8b, 0x9e, 0xac, 0x01, 0x8b, 0xb6, 0xae, 0x01, - 0xeb, 0x29, 0x80, 0xbe, 0x87, 0x02, 0x01, 0x74, 0xa8, 0x8d, 0x96, 0xa8, 0x15, 0x8d, 0xbe, 0xa8, - 0x12, 0x8b, 0x9e, 0xa6, 0x01, 0x8b, 0xb6, 0xa8, 0x01, 0xeb, 0x18, 0x90, 0x8b, 0x9e, 0xa6, 0x01, - 0x8b, 0xb6, 0xa8, 0x01, 0x80, 0xbe, 0x87, 0x02, 0x01, 0x75, 0xcd, 0x8d, 0x96, 0xa8, 0x12, 0x8d, - 0xbe, 0xa8, 0x09, 0x83, 0xc1, 0x02, 0x3b, 0xde, 0x73, 0x17, 0x8b, 0xc6, 0x2b, 0xc3, 0x3b, 0xc1, - 0x72, 0x25, 0xc7, 0x07, 0x00, 0x00, 0x83, 0xc3, 0x02, 0xc7, 0x07, 0x00, 0x00, 0x83, 0xe9, 0x02, - 0xc3, 0x8b, 0xc2, 0x2b, 0xc3, 0x3b, 0xc1, 0x72, 0x02, 0xeb, 0xe7, 0x8b, 0xdf, 0x8b, 0xc6, 0x2b, - 0xc3, 0x3b, 0xc1, 0x72, 0x02, 0xeb, 0xdb, 0x3b, 0xb6, 0xae, 0x01, 0x74, 0x11, 0x80, 0xbe, 0x62, - 0x02, 0x01, 0x75, 0x05, 0x83, 0x8e, 0xe6, 0x02, 0x02, 0xe8, 0x82, 0x01, 0xf9, 0xc3, 0x8b, 0x74, - 0x02, 0x89, 0xb6, 0xae, 0x01, 0x3b, 0xdd, 0x74, 0x04, 0x3b, 0xde, 0x77, 0xc4, 0x8b, 0xc6, 0x2b, - 0xc3, 0x3b, 0xc1, 0x72, 0xe9, 0x89, 0xb6, 0xae, 0x01, 0xeb, 0xa7, 0x8b, 0xb6, 0xb0, 0x01, 0x89, - 0x5c, 0x02, 0x80, 0x4c, 0x05, 0x80, 0x89, 0x9e, 0xb0, 0x01, 0x03, 0x5f, 0x04, 0x83, 0xc3, 0x06, - 0x89, 0x9e, 0xac, 0x01, 0xc6, 0x86, 0x8c, 0x02, 0x01, 0xc3, 0xeb, 0xdf, 0x80, 0xbe, 0x87, 0x02, - 0x01, 0x75, 0xf7, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x4c, 0x00, 0x0c, 0x02, 0x80, 0xbe, 0x8a, 0x02, - 0x01, 0x74, 0x45, 0x8b, 0xb6, 0xaa, 0x01, 0x89, 0x5c, 0x02, 0x80, 0x4c, 0x05, 0x80, 0x83, 0xc8, - 0x04, 0x25, 0xff, 0xf7, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x4c, 0x00, 0x89, 0x9e, 0xaa, 0x01, 0x03, - 0x5f, 0x04, 0x83, 0xc3, 0x06, 0x89, 0x9e, 0xa6, 0x01, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x4c, - 0x00, 0x0c, 0x02, 0x8b, 0x9e, 0xaa, 0x01, 0xc7, 0x07, 0x00, 0x00, 0x26, 0x89, 0x1e, 0x6c, 0x00, - 0x83, 0xc8, 0x08, 0x25, 0xff, 0xf7, 0xeb, 0xcc, 0x8e, 0x46, 0x02, 0x89, 0x9e, 0xa8, 0x01, 0x26, - 0x89, 0x1e, 0x6c, 0x00, 0x83, 0xc8, 0x08, 0x25, 0xff, 0xf7, 0xc6, 0x86, 0x8a, 0x02, 0x00, 0xeb, - 0xb3, 0x53, 0xf6, 0x86, 0x87, 0x02, 0x01, 0x74, 0x13, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, - 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0xe8, 0x65, 0xfe, 0x5b, 0xc3, 0xe9, 0xac, - 0x00, 0x90, 0x80, 0xbe, 0x87, 0x02, 0x00, 0x75, 0xf5, 0x50, 0xfa, 0x8d, 0xb6, 0xac, 0x01, 0x8d, - 0xbe, 0xa6, 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0x80, 0xbe, 0x63, 0x01, 0x01, 0x75, - 0x16, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x40, 0x00, 0x00, 0x02, 0x8e, 0x46, 0x02, 0x26, 0x81, - 0x26, 0x40, 0x00, 0xff, 0xe3, 0xeb, 0x27, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x40, 0x00, 0x00, - 0x02, 0xf6, 0x86, 0xaf, 0x02, 0x01, 0x74, 0x0c, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x40, 0x00, - 0x00, 0x1c, 0xeb, 0x0a, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x40, 0x00, 0xff, 0xe3, 0x33, 0xc0, - 0x89, 0x86, 0xae, 0x01, 0x40, 0x88, 0x86, 0x87, 0x02, 0x58, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, - 0x0a, 0xe8, 0x5c, 0xe0, 0x8e, 0x46, 0x02, 0x26, 0xa2, 0x5c, 0x00, 0x8b, 0x9e, 0xa8, 0x01, 0x83, - 0x3f, 0x00, 0x74, 0x03, 0xe8, 0x90, 0x00, 0xf6, 0x86, 0x8c, 0x02, 0x01, 0x74, 0x19, 0x8e, 0x46, - 0x02, 0x26, 0x89, 0x1e, 0x6c, 0x00, 0xc6, 0x86, 0x8c, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, - 0x0e, 0x4c, 0x00, 0x08, 0xfb, 0xeb, 0x06, 0xc6, 0x86, 0x8a, 0x02, 0x01, 0xfb, 0xc3, 0x56, 0x8d, - 0xb6, 0xa8, 0x09, 0xc7, 0x86, 0xa6, 0x01, 0xb0, 0x09, 0x01, 0xae, 0xa6, 0x01, 0x89, 0xb6, 0xa8, - 0x01, 0x89, 0xb6, 0xaa, 0x01, 0xc7, 0x04, 0x30, 0x80, 0xc7, 0x44, 0x04, 0x00, 0x00, 0xc6, 0x86, - 0x8a, 0x02, 0x01, 0x5e, 0xc3, 0xff, 0xa4, 0x1c, 0x04, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x32, - 0x80, 0x7e, 0x06, 0x46, 0x75, 0x1c, 0xf6, 0x86, 0x7a, 0x02, 0x01, 0x74, 0x15, 0xff, 0x8e, 0xd6, - 0x02, 0x75, 0x0f, 0xc6, 0x86, 0x7a, 0x02, 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0xe8, 0x36, 0xdd, - 0xeb, 0x10, 0x83, 0xfe, 0x10, 0x74, 0x07, 0x83, 0xfe, 0x0e, 0x74, 0x02, 0xeb, 0x04, 0xff, 0xa4, - 0x1c, 0x04, 0xc3, 0x8b, 0x9e, 0xa8, 0x01, 0x8b, 0x07, 0xfb, 0xa9, 0x00, 0x80, 0x75, 0x46, 0x8b, - 0x77, 0x17, 0x81, 0xe6, 0xff, 0x00, 0xf7, 0x86, 0x3e, 0x02, 0x01, 0x00, 0x74, 0x1b, 0x3b, 0x9e, - 0x3c, 0x02, 0x75, 0x15, 0x89, 0x86, 0xcc, 0x15, 0x50, 0x53, 0x56, 0xe8, 0x23, 0x0f, 0x5e, 0x5b, - 0x58, 0xc7, 0x86, 0x3e, 0x02, 0x00, 0x00, 0xeb, 0x18, 0xf7, 0x46, 0x14, 0xff, 0xff, 0x74, 0x11, - 0x83, 0xfe, 0x2a, 0x77, 0x0c, 0xd1, 0xe6, 0x68, 0xad, 0x34, 0xff, 0x66, 0x14, 0x5b, 0x83, 0xc4, - 0x02, 0x81, 0x0f, 0x00, 0x80, 0xfa, 0xf6, 0x47, 0x05, 0x80, 0x74, 0x1a, 0x8b, 0x5f, 0x02, 0x89, - 0x9e, 0xa8, 0x01, 0xf7, 0x07, 0x10, 0x00, 0x74, 0x0d, 0xff, 0x86, 0x3a, 0x01, 0x83, 0xbe, 0x3a, - 0x01, 0x06, 0x77, 0x0f, 0xeb, 0x91, 0xc6, 0x86, 0xb8, 0x01, 0x00, 0xc7, 0x86, 0x3a, 0x01, 0x00, - 0x00, 0xfb, 0xc3, 0xe8, 0x79, 0xd8, 0xf7, 0xc6, 0xff, 0xff, 0x74, 0xea, 0xc7, 0x44, 0x02, 0x03, - 0x00, 0xc6, 0x86, 0xb8, 0x01, 0x01, 0x8d, 0x7e, 0x16, 0xe8, 0x81, 0xd8, 0xeb, 0xdd, 0xa9, 0x20, - 0x00, 0x75, 0x74, 0xf7, 0x47, 0x04, 0x00, 0x80, 0x74, 0x05, 0xe8, 0x08, 0x00, 0x72, 0x9f, 0x53, - 0x68, 0xa9, 0x34, 0xff, 0xe6, 0x8a, 0x47, 0x17, 0x8b, 0xfb, 0x8b, 0x7d, 0x02, 0x38, 0x45, 0x17, - 0x74, 0x09, 0xf7, 0x45, 0x04, 0x00, 0x80, 0x75, 0xf1, 0xf8, 0xc3, 0xf9, 0xc3, 0xa9, 0x20, 0x00, - 0x75, 0x05, 0xa9, 0x00, 0x10, 0x75, 0x0c, 0x33, 0xc9, 0xa9, 0x05, 0x00, 0x75, 0x0a, 0xa9, 0x0a, - 0x04, 0x74, 0x05, 0x8b, 0x0d, 0xe3, 0x01, 0x49, 0x89, 0x0d, 0xc3, 0x53, 0x8b, 0x4f, 0x04, 0x80, - 0xe5, 0x7f, 0x89, 0x4f, 0x04, 0x83, 0xc1, 0x06, 0xe8, 0xc1, 0xfc, 0x72, 0x19, 0x5e, 0x56, 0x8b, - 0xfb, 0xd1, 0xe9, 0x83, 0xe9, 0x02, 0x83, 0xc6, 0x04, 0x83, 0xc7, 0x04, 0x8c, 0xd8, 0x8e, 0xc0, - 0xf3, 0xa5, 0xe8, 0x47, 0xfd, 0xf8, 0x5b, 0xc3, 0x80, 0x7e, 0x08, 0x02, 0x75, 0x0b, 0xa9, 0x20, - 0x00, 0x75, 0x06, 0xc7, 0x86, 0xcc, 0x01, 0x01, 0x00, 0xc3, 0x8a, 0x56, 0x06, 0x80, 0xfa, 0x02, - 0x74, 0x17, 0x80, 0xfa, 0x44, 0x74, 0x12, 0x83, 0x7e, 0x08, 0x08, 0x75, 0x18, 0x80, 0xfa, 0x0c, - 0x74, 0x07, 0x80, 0xfa, 0x0e, 0x74, 0x02, 0xeb, 0x0b, 0xa9, 0x20, 0x00, 0x75, 0x06, 0xb8, 0x01, - 0x00, 0xe8, 0x7d, 0xeb, 0xc3, 0xb9, 0x05, 0x00, 0xa9, 0x20, 0x00, 0x74, 0x09, 0xb9, 0x08, 0x00, - 0xa9, 0x0f, 0x00, 0x75, 0x01, 0xc3, 0xff, 0x86, 0xce, 0x02, 0x83, 0xbe, 0xce, 0x02, 0x02, 0x72, - 0x06, 0x8b, 0xc1, 0xe8, 0x5b, 0xeb, 0xc3, 0xe8, 0x9f, 0xf7, 0xc3, 0x53, 0x68, 0xa9, 0x34, 0xe9, - 0x63, 0xf8, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0x1d, 0xa9, 0x00, 0x10, 0x75, 0xee, 0xa9, 0x20, 0x00, - 0x75, 0x00, 0xa8, 0x0a, 0x75, 0x10, 0xff, 0x86, 0xc4, 0x02, 0x83, 0xbe, 0xc4, 0x02, 0x04, 0x72, - 0xda, 0xc6, 0x46, 0x07, 0x0e, 0xc3, 0x83, 0xbe, 0xc2, 0x02, 0x04, 0x73, 0xf8, 0xbe, 0x31, 0x4c, - 0xe8, 0x33, 0xd9, 0xeb, 0xf0, 0x8d, 0xbe, 0xc8, 0x02, 0xe8, 0x11, 0xff, 0x0b, 0xc9, 0x74, 0xe5, - 0x53, 0x68, 0xa9, 0x34, 0xe9, 0x1e, 0xf8, 0x8d, 0xbe, 0xc0, 0x02, 0xe8, 0xff, 0xfe, 0x0b, 0xc9, - 0x74, 0x03, 0xe9, 0x16, 0xff, 0xc3, 0x53, 0x8a, 0x56, 0x06, 0x80, 0xfa, 0x02, 0x74, 0x17, 0x80, - 0xfa, 0x44, 0x74, 0x12, 0x80, 0x7e, 0x08, 0x08, 0x75, 0x34, 0x80, 0xfa, 0x0c, 0x74, 0x07, 0x80, - 0xfa, 0x0e, 0x74, 0x02, 0xeb, 0x28, 0xa9, 0x20, 0x00, 0x74, 0x25, 0x80, 0xbe, 0xfe, 0x00, 0x02, - 0x74, 0x1c, 0x8b, 0x96, 0x66, 0x01, 0x4a, 0x89, 0x96, 0x66, 0x01, 0x83, 0xfa, 0x01, 0x77, 0x1b, - 0xbe, 0x19, 0x4c, 0xe8, 0xd0, 0xd8, 0xc6, 0x86, 0x8a, 0x02, 0x01, 0xe8, 0xfb, 0xf6, 0x5b, 0xc3, - 0xfe, 0x8e, 0x68, 0x01, 0x75, 0x05, 0xe8, 0x15, 0x20, 0xeb, 0xf3, 0xbe, 0x19, 0x4c, 0xe8, 0xb5, - 0xd8, 0x8b, 0xb6, 0x64, 0x01, 0xb9, 0xe8, 0x03, 0xc6, 0x86, 0x8a, 0x02, 0x01, 0xfa, 0xe8, 0xf1, - 0xf6, 0xeb, 0xdb, 0xa9, 0x20, 0x00, 0x74, 0x41, 0xa9, 0x0f, 0x00, 0x75, 0x25, 0xc6, 0x86, 0x69, - 0x02, 0x01, 0xc6, 0x86, 0x6a, 0x02, 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0x77, 0x0e, - 0x8d, 0xbe, 0xf2, 0x01, 0xab, 0xab, 0xab, 0x8b, 0x86, 0x0a, 0x02, 0x83, 0x8e, 0x0a, 0x02, 0x40, - 0xeb, 0x17, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xf2, 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, - 0x8b, 0x86, 0x0a, 0x02, 0x83, 0xa6, 0x0a, 0x02, 0xbf, 0x33, 0x86, 0x0a, 0x02, 0x74, 0x05, 0xc6, - 0x86, 0x89, 0x02, 0x01, 0xc3, 0xfb, 0xc3, 0xff, 0xa4, 0xc0, 0x03, 0x53, 0x56, 0x8b, 0xc7, 0xf7, - 0x07, 0x00, 0x10, 0x75, 0x18, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xd4, 0x01, 0x8c, 0xd9, 0x8e, 0xc1, - 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x8b, 0xf8, 0x75, 0x0c, 0x81, 0x0f, 0x00, 0x10, 0x80, 0x7e, 0x06, - 0x44, 0x74, 0x47, 0xeb, 0x42, 0x8b, 0x49, 0x16, 0x80, 0xf9, 0x00, 0x74, 0x05, 0x80, 0xf9, 0x03, - 0x75, 0x38, 0x8d, 0xbe, 0x16, 0x03, 0x83, 0x3d, 0x00, 0x75, 0x0c, 0x83, 0x7d, 0x02, 0x00, 0x75, - 0x06, 0x83, 0x7d, 0x04, 0x00, 0x74, 0x23, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0x16, 0x03, 0x8c, 0xd9, - 0x8e, 0xc1, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x8b, 0xf8, 0x74, 0x0f, 0xc7, 0x86, 0x2e, 0x02, 0x0e, - 0x00, 0xb8, 0x0b, 0x00, 0xe8, 0xca, 0xe9, 0x5e, 0x5b, 0xc3, 0x8b, 0xf8, 0x5e, 0x5b, 0xff, 0xa4, - 0xec, 0x03, 0xff, 0x86, 0x4c, 0x02, 0xc7, 0x86, 0x2e, 0x02, 0x06, 0x00, 0x8c, 0xd8, 0x8e, 0xc0, - 0x8d, 0xbe, 0x00, 0x02, 0x8d, 0x77, 0x0e, 0xb9, 0x03, 0x00, 0xf3, 0xa5, 0x8b, 0xb6, 0x1a, 0x06, - 0x8b, 0x04, 0x86, 0xe0, 0x89, 0x86, 0x06, 0x02, 0x89, 0x86, 0x16, 0x02, 0x8b, 0xb6, 0x1f, 0x06, - 0x8b, 0x04, 0x89, 0x86, 0x1a, 0x02, 0x8b, 0x44, 0x02, 0x89, 0x86, 0x1c, 0x02, 0x8b, 0x44, 0x04, - 0x89, 0x86, 0x1e, 0x02, 0x8b, 0xb6, 0x24, 0x06, 0x8b, 0x04, 0x89, 0x86, 0x24, 0x02, 0x8b, 0x44, - 0x02, 0x89, 0x86, 0x26, 0x02, 0x8b, 0xb6, 0x1a, 0x06, 0x8b, 0x04, 0x80, 0x7e, 0x08, 0x06, 0x75, - 0x56, 0xf7, 0x07, 0x00, 0x10, 0x74, 0x14, 0xf6, 0x47, 0x06, 0x08, 0x75, 0x0b, 0x80, 0xbe, 0x63, - 0x02, 0x00, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x04, 0xe9, 0x1b, 0x01, 0x3b, 0x86, 0x0c, 0x03, 0x77, - 0xf7, 0x80, 0xbe, 0x62, 0x02, 0x01, 0x74, 0x10, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0xea, 0xc6, 0x46, - 0x07, 0x10, 0xc6, 0x46, 0x09, 0x1e, 0xeb, 0xe0, 0x80, 0xbe, 0x63, 0x02, 0x00, 0x75, 0xd9, 0xc6, - 0x46, 0x09, 0x0a, 0xf6, 0x86, 0x0b, 0x02, 0x10, 0x74, 0xce, 0x80, 0xa6, 0x0b, 0x02, 0x6f, 0xc6, - 0x86, 0x89, 0x02, 0x01, 0xe9, 0xdf, 0x00, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x5b, 0xc6, 0x86, 0x58, - 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xbf, 0xbe, 0xf5, 0x4b, 0xe8, 0x05, - 0xd7, 0x8b, 0xb6, 0x1f, 0x06, 0x8d, 0xbe, 0x00, 0x03, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x03, 0x00, - 0xf3, 0xa7, 0x75, 0x21, 0x83, 0xf8, 0x01, 0x74, 0x1c, 0xff, 0x8e, 0xba, 0x02, 0x75, 0x13, 0xf6, - 0x86, 0x5c, 0x02, 0x01, 0x75, 0x0c, 0xc6, 0x86, 0x5c, 0x02, 0x01, 0xc6, 0x46, 0x09, 0x08, 0xe9, - 0x94, 0x00, 0xe9, 0x91, 0x00, 0xc7, 0x86, 0xba, 0x02, 0x08, 0x00, 0x83, 0xf8, 0x01, 0x75, 0x0a, - 0xc7, 0x86, 0xb8, 0x02, 0x02, 0x00, 0xeb, 0x7e, 0xeb, 0x2e, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0x16, - 0x03, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x75, 0xe4, 0xff, 0x8e, 0xb8, 0x02, - 0x75, 0x14, 0xc7, 0x86, 0xb8, 0x02, 0x02, 0x00, 0xc6, 0x86, 0x58, 0x02, 0x01, 0x8e, 0x46, 0x02, - 0x26, 0x83, 0x0e, 0x4c, 0x00, 0x40, 0xeb, 0x4e, 0x80, 0xbe, 0x62, 0x02, 0x00, 0x74, 0x0c, 0x80, - 0x7e, 0x08, 0x08, 0x74, 0x41, 0xc6, 0x46, 0x09, 0x0a, 0xeb, 0x3b, 0xb7, 0x10, 0x8a, 0x5e, 0x06, - 0x80, 0xfb, 0x06, 0x74, 0x1f, 0x80, 0xfb, 0x08, 0x74, 0x1a, 0x80, 0xfb, 0x04, 0x74, 0x15, 0x80, - 0xfb, 0x0c, 0x74, 0x10, 0x80, 0xfb, 0x0a, 0x75, 0x07, 0xc6, 0x86, 0x5f, 0x02, 0x00, 0xeb, 0x04, - 0xb7, 0x12, 0xeb, 0x12, 0x88, 0x7e, 0x07, 0x80, 0xff, 0x12, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x1e, - 0xb8, 0x07, 0x00, 0xe8, 0x2b, 0xe8, 0xc3, 0xff, 0x86, 0x4c, 0x02, 0xc7, 0x86, 0x2e, 0x02, 0x06, - 0x00, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0xbe, 0x00, 0x02, 0x8d, 0x77, 0x0e, 0xb9, 0x03, 0x00, 0xf3, - 0xa5, 0x80, 0x7e, 0x06, 0x48, 0x74, 0x08, 0xb8, 0x06, 0x00, 0xe8, 0x04, 0xe8, 0xeb, 0x37, 0xf6, - 0x86, 0x72, 0x02, 0x01, 0x74, 0x26, 0x80, 0x7e, 0x08, 0x16, 0x75, 0x20, 0xc6, 0x46, 0x09, 0x1a, - 0xc6, 0x86, 0x73, 0x02, 0x00, 0xc6, 0x86, 0x6c, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, - 0x4c, 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0xeb, 0x0a, 0x80, 0x7e, 0x08, 0x18, - 0x75, 0x04, 0xc6, 0x46, 0x09, 0x1a, 0xc3, 0x8a, 0x4e, 0x06, 0x80, 0xbe, 0xac, 0x02, 0x01, 0x74, - 0x02, 0xeb, 0x06, 0xb8, 0x06, 0x00, 0xe8, 0xb8, 0xe7, 0xc3, 0xe9, 0x8e, 0x00, 0xeb, 0x6e, 0xeb, - 0x64, 0x80, 0x7e, 0x06, 0x42, 0x75, 0xf3, 0x8b, 0x47, 0x1a, 0x83, 0xf8, 0x00, 0x75, 0xee, 0x80, - 0xbe, 0xfe, 0x00, 0x02, 0x74, 0xe9, 0xf6, 0x86, 0x78, 0x02, 0x01, 0x74, 0x29, 0xc6, 0x86, 0x78, - 0x02, 0x00, 0xc6, 0x86, 0xb0, 0x02, 0x01, 0xc7, 0x86, 0x34, 0x05, 0x00, 0x02, 0xc7, 0x86, 0xd8, - 0x02, 0x05, 0x00, 0xbe, 0xa9, 0x4c, 0xe8, 0x8d, 0xd5, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x08, 0x74, - 0x03, 0xe8, 0xb4, 0xf6, 0xeb, 0x45, 0xf6, 0x86, 0x82, 0x02, 0x01, 0x75, 0x18, 0xf7, 0x86, 0xf4, - 0x00, 0x00, 0x10, 0x74, 0x10, 0xb8, 0x02, 0x00, 0xe8, 0x9a, 0x11, 0xc6, 0x46, 0x09, 0x1e, 0xc6, - 0x46, 0x07, 0x02, 0xeb, 0x26, 0xb8, 0x06, 0x00, 0xe8, 0x46, 0xe7, 0xeb, 0x1e, 0x3d, 0x00, 0x02, - 0x75, 0x10, 0xc6, 0x86, 0x7b, 0x02, 0x01, 0xe8, 0xf1, 0x06, 0xbe, 0x91, 0x4c, 0xe8, 0x46, 0xd5, - 0xeb, 0x09, 0x3d, 0x00, 0x04, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x4a, 0xc3, 0xc7, 0x86, 0x2e, 0x02, - 0x02, 0x00, 0x80, 0x7e, 0x06, 0x46, 0x75, 0x2b, 0x8b, 0x47, 0x1a, 0x83, 0xf8, 0x00, 0x75, 0x10, - 0xc6, 0x46, 0x07, 0x48, 0x80, 0x7e, 0x08, 0x1c, 0x75, 0x19, 0xc6, 0x46, 0x09, 0x16, 0xeb, 0x13, - 0x86, 0xc4, 0x3d, 0x20, 0x80, 0x75, 0x0c, 0xc7, 0x86, 0x2e, 0x02, 0x11, 0x00, 0xb8, 0x08, 0x00, - 0xe8, 0xee, 0xe6, 0xc3, 0xc7, 0x86, 0x2e, 0x02, 0x0f, 0x00, 0x80, 0x7e, 0x06, 0x44, 0x74, 0x06, - 0x80, 0x7e, 0x06, 0x42, 0x75, 0x08, 0xb8, 0x06, 0x00, 0xe8, 0xd5, 0xe6, 0xeb, 0x0d, 0xf6, 0x86, - 0x73, 0x02, 0x01, 0x74, 0x06, 0xbe, 0x9d, 0x4c, 0xe8, 0xdb, 0xd4, 0xc3, 0x80, 0x7e, 0x06, 0x44, - 0x75, 0x14, 0xe8, 0xea, 0xd2, 0xc7, 0x44, 0x02, 0x02, 0x00, 0x8d, 0x7e, 0x16, 0xe8, 0xfd, 0xd2, - 0xbe, 0x19, 0x4c, 0xe8, 0x72, 0xd5, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x40, 0x00, 0x74, 0x18, 0xf7, - 0x86, 0xf4, 0x00, 0x00, 0x20, 0x74, 0x10, 0x80, 0x7e, 0x06, 0x08, 0x72, 0x0a, 0x80, 0x7e, 0x06, - 0x0e, 0x77, 0x04, 0xc6, 0x46, 0x07, 0x14, 0xc3, 0x80, 0x7e, 0x06, 0x44, 0x75, 0x2e, 0xff, 0x8e, - 0x66, 0x01, 0x75, 0x1d, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x64, 0x00, 0xfd, 0xf7, 0x86, 0x12, - 0x01, 0x00, 0x84, 0x74, 0x06, 0xc6, 0x46, 0x07, 0x4e, 0xeb, 0x11, 0xc6, 0x46, 0x07, 0x46, 0xeb, - 0x0b, 0xc6, 0x86, 0x77, 0x02, 0x01, 0xb9, 0x5a, 0x00, 0xe8, 0x19, 0xf3, 0xc3, 0x80, 0x7e, 0x06, - 0x44, 0x75, 0x1f, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x64, 0x00, 0x02, 0xc6, 0x86, 0x76, 0x02, - 0x00, 0xbe, 0x19, 0x4c, 0xe8, 0x4f, 0xd4, 0xb9, 0x5a, 0x00, 0xc6, 0x86, 0x8b, 0x02, 0x01, 0xe8, - 0xf3, 0xf2, 0xc3, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x72, 0x18, 0x8a, 0x4e, 0x06, 0x80, 0xf9, 0x44, - 0x74, 0x0a, 0x80, 0xf9, 0x46, 0x74, 0x05, 0x80, 0xf9, 0x48, 0x75, 0x06, 0xb8, 0x03, 0x00, 0xe8, - 0x0f, 0xe6, 0xc3, 0xff, 0x86, 0x50, 0x02, 0xc7, 0x86, 0x2e, 0x02, 0x0b, 0x00, 0x8a, 0x86, 0x58, - 0x02, 0x88, 0x86, 0x84, 0x02, 0xc7, 0x86, 0xcc, 0x02, 0x00, 0x00, 0xc6, 0x86, 0x65, 0x02, 0x00, - 0x83, 0x8e, 0x0a, 0x02, 0x20, 0x81, 0xa6, 0x0a, 0x02, 0xff, 0x2f, 0xc6, 0x86, 0x89, 0x02, 0x01, - 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, 0x38, 0xc6, 0x86, 0x84, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, - 0x81, 0x26, 0x64, 0x00, 0xff, 0x7f, 0x80, 0x7e, 0x0a, 0x00, 0x75, 0x0a, 0xc6, 0x86, 0x6d, 0x02, - 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0x8a, 0xa6, 0x84, 0x02, 0x88, 0xa6, 0x58, 0x02, 0xe8, 0x05, - 0xd6, 0x88, 0x86, 0x58, 0x02, 0xc6, 0x46, 0x09, 0x0c, 0xc7, 0x86, 0xca, 0x01, 0x00, 0x01, 0x80, - 0x7e, 0x06, 0x04, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x06, 0x80, 0x7e, 0x08, 0x02, 0x75, 0x04, 0xc6, - 0x46, 0x09, 0x0c, 0x80, 0x7e, 0x08, 0x06, 0x74, 0x05, 0xc6, 0x86, 0x5e, 0x02, 0x01, 0x8d, 0x77, - 0x0e, 0x8d, 0xbe, 0x00, 0x03, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x06, 0x00, 0xf3, 0xa6, 0x74, 0x08, - 0x77, 0x03, 0xe9, 0x95, 0x00, 0xe9, 0xfe, 0x00, 0xf6, 0x47, 0x06, 0x08, 0x75, 0x59, 0x80, 0x7e, - 0x08, 0x04, 0x75, 0x53, 0x8b, 0xb6, 0x2a, 0x06, 0x8d, 0xbe, 0x16, 0x03, 0x8c, 0xd9, 0x8e, 0xc1, - 0xb9, 0x03, 0x00, 0xb8, 0x01, 0x00, 0xf3, 0xa7, 0x74, 0x02, 0xeb, 0x3e, 0xff, 0x86, 0xbe, 0x02, - 0x83, 0xbe, 0xbe, 0x02, 0x03, 0x72, 0x30, 0x83, 0xbe, 0xbc, 0x02, 0x03, 0x72, 0x29, 0xc6, 0x46, - 0x09, 0x02, 0xc6, 0x86, 0x84, 0x02, 0x01, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x64, 0x00, 0x00, - 0x80, 0x8a, 0x86, 0x58, 0x02, 0x8a, 0xa6, 0x84, 0x02, 0x88, 0xa6, 0x58, 0x02, 0xe8, 0x66, 0xd5, - 0x88, 0x86, 0x58, 0x02, 0xe8, 0x80, 0xf3, 0xe9, 0xec, 0x00, 0x80, 0x7e, 0x0a, 0x00, 0x75, 0x1d, - 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0x8a, 0x86, 0x58, 0x02, 0x8a, 0xa6, - 0x84, 0x02, 0x88, 0xa6, 0x58, 0x02, 0xe8, 0x3d, 0xd5, 0x88, 0x86, 0x58, 0x02, 0xc6, 0x46, 0x09, - 0x0c, 0xb8, 0x00, 0x03, 0xe8, 0xd1, 0xf3, 0xe9, 0xbc, 0x00, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x3d, - 0xf6, 0x86, 0x58, 0x02, 0x01, 0x75, 0x16, 0xf6, 0x86, 0x6c, 0x02, 0x01, 0x74, 0x16, 0xf6, 0x86, - 0x62, 0x02, 0x01, 0x74, 0x08, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x01, 0x75, 0x16, 0xc6, 0x46, 0x09, - 0x0c, 0xe9, 0x92, 0x00, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x9c, 0xf7, 0x86, 0x12, 0x01, 0x00, - 0x01, 0x74, 0x94, 0xc6, 0x46, 0x09, 0x04, 0xff, 0x86, 0x4e, 0x02, 0xeb, 0x79, 0x80, 0x7e, 0x08, - 0x0a, 0x75, 0x73, 0xf6, 0x86, 0x63, 0x02, 0x01, 0x75, 0x0e, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x01, - 0x75, 0x06, 0xc6, 0x46, 0x09, 0x0c, 0xeb, 0x5e, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x01, 0x74, 0x56, - 0xc6, 0x46, 0x09, 0x04, 0xeb, 0x50, 0x80, 0x7e, 0x08, 0x04, 0x75, 0x2c, 0xc6, 0x46, 0x09, 0x0c, - 0x80, 0x7e, 0x0a, 0x00, 0x75, 0x1d, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, - 0x8a, 0x86, 0x58, 0x02, 0x8a, 0xa6, 0x84, 0x02, 0x88, 0xa6, 0x58, 0x02, 0xe8, 0x97, 0xd4, 0x88, - 0x86, 0x58, 0x02, 0xe8, 0xdb, 0xef, 0xeb, 0x1e, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x09, 0xf6, 0x86, - 0x6c, 0x02, 0x01, 0x74, 0x02, 0xeb, 0xab, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x09, 0xf6, 0x86, 0x63, - 0x02, 0x01, 0x75, 0x02, 0xeb, 0x9c, 0x8a, 0x86, 0x84, 0x02, 0x88, 0x86, 0x58, 0x02, 0xc3, 0xc7, - 0x86, 0xc6, 0x02, 0x02, 0x00, 0xff, 0x86, 0x46, 0x02, 0xc7, 0x86, 0x2e, 0x02, 0x0c, 0x00, 0x80, - 0x7e, 0x06, 0x04, 0x74, 0x06, 0x80, 0x7e, 0x06, 0x06, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x08, 0x80, - 0x7e, 0x08, 0x00, 0x75, 0x56, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, 0x3b, 0xc6, 0x86, 0x58, 0x02, - 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x64, 0x00, 0xff, 0x7f, 0xb8, 0x00, 0x02, 0xe8, 0xc7, - 0xf2, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x0c, 0xbe, 0x1f, 0x4c, 0xe8, 0xd8, 0xd1, 0xbe, 0x3d, - 0x4c, 0xe8, 0xd2, 0xd1, 0x80, 0x7e, 0x0a, 0x00, 0x75, 0x0d, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, - 0x86, 0x6f, 0x02, 0x00, 0xe8, 0xff, 0xd3, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x34, 0xc6, 0x86, - 0x5c, 0x02, 0x00, 0xc6, 0x86, 0x5d, 0x02, 0x00, 0xe9, 0xc9, 0x00, 0x80, 0x7e, 0x08, 0x0c, 0x75, - 0x24, 0xc6, 0x46, 0x09, 0x00, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x16, 0xbe, 0x1f, 0x4c, 0xe8, - 0x94, 0xd1, 0xbe, 0x3d, 0x4c, 0xe8, 0x8e, 0xd1, 0xc6, 0x86, 0x5c, 0x02, 0x00, 0xc6, 0x86, 0x5d, - 0x02, 0x00, 0xe9, 0x9f, 0x00, 0x80, 0x7e, 0x08, 0x02, 0x75, 0xf7, 0xc7, 0x86, 0xcc, 0x01, 0x00, - 0x00, 0xc6, 0x46, 0x09, 0x00, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x0a, 0xc6, 0x86, 0x5c, 0x02, - 0x00, 0xc6, 0x86, 0x5d, 0x02, 0x00, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0x00, 0x03, 0x8c, 0xd9, 0x8e, - 0xc1, 0xb9, 0x06, 0x00, 0xf3, 0xa6, 0x74, 0x2e, 0xc6, 0x86, 0x58, 0x02, 0x00, 0x8e, 0x46, 0x02, - 0x26, 0x81, 0x26, 0x64, 0x00, 0xff, 0x7f, 0x80, 0x7e, 0x0a, 0x00, 0x75, 0x0a, 0xc6, 0x86, 0x6d, - 0x02, 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0xe8, 0x6c, 0xd3, 0xb8, 0x00, 0x02, 0xe8, 0x08, 0xf2, - 0xc6, 0x46, 0x09, 0x00, 0xeb, 0x3e, 0x8e, 0x46, 0x02, 0x26, 0xa0, 0x5c, 0x00, 0xc6, 0x46, 0x09, - 0x00, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x59, 0x02, 0x00, 0xc6, 0x86, 0x69, 0x02, 0x00, - 0xe8, 0x43, 0xd3, 0x24, 0x07, 0xe8, 0x0a, 0xf5, 0xbe, 0xef, 0x4b, 0xe8, 0xf8, 0xd0, 0x8c, 0xd8, - 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0xbe, 0xf2, 0x01, 0xab, 0xab, 0xab, 0xe8, 0xc5, 0xee, 0xbe, 0x3d, - 0x4c, 0xe8, 0xe2, 0xd0, 0xc3, 0x8c, 0xd8, 0x8e, 0xc0, 0xff, 0x86, 0x54, 0x02, 0xc7, 0x86, 0x2e, - 0x02, 0x0f, 0x00, 0xf6, 0x86, 0xce, 0x01, 0x01, 0x74, 0x3b, 0xb8, 0x94, 0x5e, 0xa3, 0x8a, 0x5e, - 0x8d, 0x77, 0x0e, 0x8b, 0xf8, 0xa5, 0xa5, 0xa5, 0xc7, 0x06, 0x92, 0x5e, 0x01, 0x00, 0xc6, 0x86, - 0xcf, 0x01, 0x00, 0x33, 0xff, 0xba, 0x02, 0x08, 0xe8, 0x20, 0xe7, 0xbf, 0x8c, 0x5e, 0xb9, 0x03, - 0x00, 0xf3, 0xa5, 0x8d, 0x77, 0x0e, 0xbf, 0x8c, 0x5e, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x75, 0x05, - 0xe8, 0x8b, 0x04, 0xeb, 0x00, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xf2, 0x01, 0xa5, 0xa5, 0xa5, 0x80, - 0x7e, 0x06, 0x04, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x08, 0x8b, 0x8e, 0xc6, 0x02, 0xe3, 0x05, 0x49, - 0x89, 0x8e, 0xc6, 0x02, 0xf7, 0x07, 0x3c, 0x00, 0x75, 0x0a, 0xf6, 0x86, 0x6c, 0x02, 0x01, 0x74, - 0x03, 0xe8, 0x07, 0x02, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x75, 0x03, 0xe9, 0x93, 0x00, 0xbe, 0x3d, - 0x4c, 0xe8, 0x52, 0xd0, 0xf7, 0x07, 0x00, 0x10, 0x75, 0x37, 0xc6, 0x86, 0x58, 0x02, 0x00, 0x8e, - 0x46, 0x02, 0x26, 0x81, 0x26, 0x64, 0x00, 0xff, 0x7f, 0xb8, 0x00, 0x02, 0xe8, 0x19, 0xf1, 0xf6, - 0x86, 0x62, 0x02, 0x01, 0x74, 0x06, 0xbe, 0x1f, 0x4c, 0xe8, 0x2a, 0xd0, 0x80, 0x7e, 0x0a, 0x00, - 0x75, 0x38, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0xe8, 0x57, 0xd2, 0xeb, - 0x29, 0xf7, 0x07, 0x3c, 0x00, 0x75, 0x33, 0xc6, 0x86, 0x69, 0x02, 0x01, 0xc6, 0x86, 0x6a, 0x02, - 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xf2, 0x01, 0xab, 0xab, - 0xab, 0x8b, 0x86, 0x0a, 0x02, 0xa9, 0x40, 0x00, 0x74, 0x02, 0xeb, 0x48, 0x83, 0xc8, 0x40, 0x89, - 0x86, 0x0a, 0x02, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xeb, 0x3a, 0x83, 0xa6, 0x0a, 0x02, 0xbf, 0x8c, - 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xf2, 0x01, 0xa5, 0xa5, 0xa5, 0xeb, - 0x23, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x06, 0xbe, 0x3d, 0x4c, 0xe8, 0xb8, 0xcf, 0xc6, 0x86, - 0x6b, 0x02, 0x00, 0xf7, 0x07, 0x3c, 0x00, 0x75, 0x0b, 0xc6, 0x86, 0x6b, 0x02, 0x01, 0xbe, 0x25, - 0x4c, 0xe8, 0xa2, 0xcf, 0xc3, 0xeb, 0x61, 0x8c, 0xd8, 0x8e, 0xc0, 0xc7, 0x86, 0x2e, 0x02, 0x0d, - 0x00, 0xf6, 0x86, 0xce, 0x01, 0x01, 0x74, 0x50, 0x33, 0xff, 0xba, 0x02, 0x08, 0xe8, 0xfb, 0xe5, - 0x8b, 0x3e, 0x8a, 0x5e, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x75, 0x3d, 0x81, 0xff, 0xa2, 0x65, 0x73, - 0x6f, 0x89, 0x3e, 0x8a, 0x5e, 0x8d, 0x77, 0x0e, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x74, 0x05, 0xc6, - 0x86, 0xd0, 0x01, 0x01, 0x81, 0xff, 0xa2, 0x65, 0x73, 0x56, 0x89, 0x3e, 0x8a, 0x5e, 0x8d, 0x77, - 0x0e, 0xa5, 0xa5, 0xa5, 0xff, 0x06, 0x92, 0x5e, 0x8d, 0x77, 0x0e, 0xbf, 0x8c, 0x5e, 0xb9, 0x03, - 0x00, 0xf3, 0xa7, 0x75, 0x03, 0xe8, 0x36, 0x03, 0x8a, 0x86, 0x0a, 0x02, 0xa8, 0x40, 0x75, 0x3d, - 0x80, 0x7e, 0x06, 0x04, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x08, 0xf7, 0x07, 0x3c, 0x00, 0x75, 0x3a, - 0xf6, 0x86, 0x6c, 0x02, 0x01, 0x74, 0x35, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, 0x07, 0xf6, 0x86, - 0x69, 0x02, 0x01, 0x75, 0x27, 0xe8, 0xb3, 0x00, 0xc7, 0x86, 0xc8, 0x02, 0x01, 0x00, 0xeb, 0x1c, - 0xbf, 0x9c, 0x65, 0x33, 0xc0, 0xab, 0xab, 0xab, 0xe8, 0xf3, 0x02, 0xeb, 0xbb, 0x24, 0xbf, 0x88, - 0x86, 0x0a, 0x02, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xeb, 0xb6, 0xeb, 0x79, 0xf6, 0x86, 0x58, 0x02, - 0x01, 0x74, 0x3c, 0xf6, 0x86, 0x69, 0x02, 0x01, 0x74, 0x19, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, - 0x12, 0x83, 0xbe, 0xc6, 0x02, 0x00, 0x75, 0x0b, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x05, 0x83, 0x8e, - 0xe6, 0x02, 0x08, 0xc6, 0x86, 0x69, 0x02, 0x01, 0xc6, 0x86, 0x6a, 0x02, 0x01, 0x8c, 0xd8, 0x8e, - 0xc0, 0x33, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xf2, 0x01, 0xab, 0xab, 0xab, 0xeb, 0x4b, 0xf6, - 0x86, 0x6c, 0x02, 0x01, 0x74, 0x44, 0xf6, 0x86, 0x6b, 0x02, 0x01, 0x75, 0x0d, 0xc6, 0x86, 0x6b, - 0x02, 0x01, 0xbe, 0x25, 0x4c, 0xe8, 0x8e, 0xce, 0xeb, 0x30, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, - 0x12, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x0c, 0x83, 0xbe, 0xc6, 0x02, 0x00, 0x75, 0x05, 0x83, 0x8e, - 0xe6, 0x02, 0x08, 0xeb, 0x15, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, 0x0e, 0x8c, 0xd8, 0x8e, 0xc0, - 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xf2, 0x01, 0xa5, 0xa5, 0xa5, 0xc3, 0x53, 0x8c, 0xd8, 0x8e, 0xc0, - 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0x16, 0x03, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x03, 0x00, 0xf3, 0xa7, - 0x74, 0x54, 0x8b, 0x44, 0xfe, 0x89, 0x45, 0xfe, 0xf3, 0xa5, 0xbb, 0xfc, 0x04, 0xb9, 0x0b, 0x00, - 0x8d, 0xb6, 0x16, 0x03, 0xad, 0x8b, 0x14, 0x8b, 0x74, 0x02, 0x8b, 0x3f, 0x03, 0xfd, 0xab, 0x89, - 0x15, 0x89, 0x75, 0x02, 0x83, 0xc3, 0x02, 0xe2, 0xf1, 0xf6, 0x86, 0xaf, 0x02, 0x01, 0x75, 0x26, - 0x8b, 0xb6, 0x2f, 0x06, 0x8d, 0xbe, 0xee, 0x01, 0xa5, 0xa5, 0x80, 0x7e, 0x06, 0x08, 0x76, 0x0b, - 0xc7, 0x86, 0xc8, 0x02, 0x04, 0x00, 0xe8, 0x84, 0xee, 0xeb, 0x0b, 0xc6, 0x86, 0x88, 0x02, 0x01, - 0xc7, 0x86, 0xc8, 0x02, 0x01, 0x00, 0x5b, 0xc3, 0xb8, 0x80, 0x0a, 0xf6, 0x86, 0xab, 0x02, 0x01, - 0x75, 0x45, 0xf6, 0x86, 0xad, 0x02, 0x01, 0x75, 0x3e, 0xf7, 0x86, 0xf6, 0x00, 0x10, 0x00, 0x75, - 0x36, 0xf7, 0x07, 0x82, 0x00, 0x74, 0x2f, 0xc7, 0x86, 0x2e, 0x02, 0x07, 0x00, 0xc6, 0x86, 0x16, - 0x01, 0x00, 0x81, 0x8e, 0x0a, 0x02, 0x00, 0x01, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xf6, 0x86, 0xac, - 0x02, 0x01, 0x75, 0x0c, 0x80, 0x7e, 0x06, 0x08, 0x72, 0x0c, 0x80, 0x7e, 0x06, 0x0e, 0x77, 0x06, - 0xb8, 0x0a, 0x00, 0xe8, 0x8b, 0xdf, 0xc3, 0x89, 0x86, 0xee, 0x02, 0xe9, 0x37, 0xea, 0xf7, 0x07, - 0x02, 0x00, 0x74, 0x0f, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0x09, 0xc6, 0x86, 0x64, 0x02, 0x01, 0xc6, - 0x46, 0x07, 0x0e, 0x8b, 0x86, 0x18, 0x02, 0x86, 0xe0, 0x8b, 0xb6, 0x54, 0x06, 0x0b, 0xf6, 0x74, - 0x09, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x18, 0x02, 0x86, 0xe0, 0x89, 0x86, 0xea, 0x02, 0x8b, 0xb6, - 0x3b, 0x06, 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xc4, 0x89, 0x86, 0x10, 0x02, 0x8b, 0xb6, 0x40, - 0x06, 0x0b, 0xf6, 0x74, 0x05, 0x8b, 0xc6, 0xe8, 0xa2, 0x00, 0x8b, 0xb6, 0x45, 0x06, 0x0b, 0xf6, - 0x74, 0x07, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x0c, 0x02, 0x8b, 0xb6, 0x4a, 0x06, 0x0b, 0xf6, 0x74, - 0x07, 0xad, 0x86, 0xc4, 0x89, 0x86, 0xfc, 0x01, 0x8b, 0xb6, 0x4f, 0x06, 0x0b, 0xf6, 0x74, 0x07, - 0xad, 0x86, 0xc4, 0x89, 0x86, 0xfa, 0x01, 0x8b, 0x07, 0xa9, 0x02, 0x00, 0x75, 0x07, 0xa8, 0x28, - 0x74, 0x03, 0xe9, 0x71, 0xff, 0xc7, 0x86, 0xee, 0x02, 0x00, 0x01, 0xe9, 0xa7, 0xe9, 0xc3, 0xf7, - 0x07, 0x02, 0x02, 0x74, 0xf9, 0x8b, 0x86, 0x18, 0x02, 0x86, 0xe0, 0x8b, 0xb6, 0x69, 0x06, 0x0b, - 0xf6, 0x74, 0x09, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x18, 0x02, 0x86, 0xe0, 0x89, 0x86, 0xea, 0x02, - 0x8b, 0xb6, 0x5a, 0x06, 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xc4, 0x89, 0x86, 0x10, 0x02, 0x8b, - 0xb6, 0x5f, 0x06, 0x0b, 0xf6, 0x74, 0x05, 0x8b, 0xc6, 0xe8, 0x20, 0x00, 0x8b, 0xb6, 0x64, 0x06, - 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x0c, 0x02, 0x80, 0x7e, 0x06, 0x0c, 0x75, - 0x96, 0xc6, 0x86, 0x64, 0x02, 0x01, 0xc6, 0x46, 0x07, 0x0e, 0xeb, 0x8b, 0x53, 0x57, 0x8c, 0xdb, - 0x8e, 0xc3, 0xbb, 0x12, 0x05, 0xb9, 0x0a, 0x00, 0x8b, 0xf0, 0xad, 0x8b, 0x34, 0x8b, 0x3f, 0x03, - 0xfd, 0xab, 0x89, 0x35, 0x83, 0xc3, 0x02, 0xe2, 0xf4, 0x5f, 0x5b, 0xc3, 0x68, 0x88, 0x2e, 0xeb, - 0x08, 0x68, 0xf0, 0x2e, 0xeb, 0x03, 0x68, 0x32, 0x2f, 0xf7, 0x07, 0x82, 0x02, 0x74, 0x1c, 0x8b, - 0x86, 0x18, 0x02, 0x86, 0xe0, 0x8b, 0xb6, 0xa0, 0x06, 0x0b, 0xf6, 0x74, 0x09, 0xad, 0x86, 0xe0, - 0x89, 0x86, 0x18, 0x02, 0x86, 0xe0, 0x89, 0x86, 0xea, 0x02, 0xc3, 0x83, 0xc4, 0x02, 0xc3, 0x8b, - 0x07, 0xf6, 0x86, 0x63, 0x01, 0x01, 0x74, 0x1e, 0xa9, 0x00, 0x20, 0x74, 0x40, 0x56, 0x57, 0xe8, - 0x5d, 0xca, 0xc7, 0x44, 0x02, 0x02, 0x00, 0x8d, 0x7e, 0x16, 0xe8, 0x70, 0xca, 0xbe, 0x19, 0x4c, - 0xe8, 0xe5, 0xcc, 0x5f, 0x5e, 0xc3, 0x80, 0x7e, 0x06, 0x08, 0x75, 0x21, 0xa9, 0x00, 0x10, 0x74, - 0x1c, 0xa9, 0x3c, 0x00, 0x75, 0x17, 0xff, 0x86, 0xd2, 0x02, 0xff, 0x86, 0xd0, 0x02, 0x83, 0xbe, - 0xd0, 0x02, 0x02, 0x72, 0x05, 0xc6, 0x46, 0x07, 0x0a, 0xc3, 0xe8, 0x3c, 0xea, 0xc3, 0x8c, 0xd8, - 0x8e, 0xc0, 0x33, 0xc0, 0x8b, 0x3e, 0x8a, 0x5e, 0x83, 0xc7, 0x06, 0x81, 0xff, 0xa2, 0x65, 0x72, - 0x03, 0xbf, 0x9c, 0x65, 0xab, 0xab, 0xab, 0xf6, 0x86, 0xd0, 0x01, 0x01, 0x74, 0x18, 0xc6, 0x86, - 0xcf, 0x01, 0x01, 0xe8, 0xf9, 0xc9, 0xc7, 0x44, 0x02, 0x05, 0x00, 0x8d, 0x7e, 0x16, 0xe8, 0x0c, - 0xca, 0xc6, 0x86, 0xce, 0x01, 0x00, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x08, 0x00, 0x74, 0x06, 0xbe, - 0xdf, 0x4c, 0xe8, 0xc1, 0xcb, 0x8d, 0xb6, 0xc4, 0x15, 0x8e, 0x46, 0x02, 0x8a, 0x1c, 0xf6, 0xc3, - 0x80, 0x75, 0x0d, 0x80, 0xfb, 0x10, 0x77, 0x14, 0x32, 0xff, 0xd1, 0xe3, 0xff, 0xa7, 0xda, 0x04, - 0xc7, 0x86, 0x0a, 0x01, 0x00, 0x00, 0xc3, 0xb8, 0x00, 0x80, 0xeb, 0x08, 0xb8, 0x00, 0x80, 0xeb, - 0x03, 0xb8, 0x00, 0x20, 0x8d, 0xb6, 0xc4, 0x15, 0x89, 0x44, 0x02, 0x80, 0x0c, 0x80, 0xb8, 0x40, - 0x60, 0x8e, 0xc0, 0xc7, 0x86, 0x0a, 0x01, 0x00, 0x00, 0x26, 0xc7, 0x06, 0x30, 0x00, 0x08, 0x00, - 0xc3, 0xeb, 0xe1, 0xb8, 0x04, 0x00, 0x80, 0xbe, 0x06, 0x01, 0x01, 0x75, 0xf4, 0xb8, 0x05, 0x00, - 0x80, 0xbe, 0x07, 0x01, 0x01, 0x74, 0xea, 0xc6, 0x86, 0x08, 0x01, 0x01, 0xc6, 0x86, 0xd1, 0x01, - 0x00, 0xc6, 0x86, 0x09, 0x01, 0x00, 0x8b, 0x86, 0xf8, 0x00, 0x89, 0x86, 0xf6, 0x00, 0x8d, 0xb6, - 0xce, 0x15, 0xb8, 0x03, 0x00, 0xf6, 0x04, 0x80, 0x75, 0xc7, 0x33, 0xc0, 0x39, 0x04, 0x75, 0x1e, - 0x39, 0x44, 0x02, 0x75, 0x19, 0x39, 0x44, 0x04, 0x75, 0x14, 0x8b, 0x86, 0x00, 0x01, 0x89, 0x04, - 0x8b, 0x86, 0x02, 0x01, 0x89, 0x44, 0x02, 0x8b, 0x86, 0x04, 0x01, 0x89, 0x44, 0x04, 0xad, 0x8b, - 0x14, 0x8b, 0x74, 0x02, 0x89, 0x86, 0xd4, 0x01, 0x89, 0x96, 0xd6, 0x01, 0x89, 0xb6, 0xd8, 0x01, - 0x8e, 0x46, 0x02, 0x50, 0xe8, 0xfc, 0xc7, 0x26, 0xa3, 0x5e, 0x00, 0x8b, 0xc2, 0xe8, 0xf3, 0xc7, - 0x26, 0xa3, 0x60, 0x00, 0x8b, 0xc6, 0xe8, 0xea, 0xc7, 0x26, 0xa3, 0x62, 0x00, 0x58, 0xbb, 0x2a, - 0x05, 0xb9, 0x16, 0x00, 0x1e, 0x07, 0x8b, 0x3f, 0x03, 0xfd, 0xab, 0x89, 0x15, 0x89, 0x75, 0x02, - 0x83, 0xc3, 0x02, 0xe2, 0xf1, 0xbb, 0x26, 0x05, 0x8d, 0x96, 0xdc, 0x15, 0xb8, 0x02, 0x00, 0x8b, - 0x3f, 0x03, 0xfd, 0x8b, 0xf2, 0xb9, 0x09, 0x00, 0xf3, 0xa5, 0x83, 0xc3, 0x02, 0x48, 0x75, 0xef, - 0xf7, 0x86, 0xf6, 0x00, 0x08, 0x00, 0x74, 0x06, 0xbe, 0xdf, 0x4c, 0xe8, 0xa8, 0xca, 0x8d, 0xb6, - 0xc4, 0x15, 0x8b, 0x44, 0x08, 0x89, 0x86, 0x12, 0x01, 0x89, 0x86, 0x14, 0x01, 0xf7, 0x86, 0x12, - 0x01, 0x01, 0x00, 0x74, 0x08, 0xc7, 0x06, 0x17, 0x4c, 0x58, 0x02, 0xeb, 0x06, 0xc7, 0x06, 0x17, - 0x4c, 0x08, 0x07, 0x8e, 0x46, 0x02, 0x26, 0x8b, 0x1e, 0x68, 0x00, 0x81, 0xe3, 0xff, 0xf4, 0xa9, - 0x04, 0x00, 0x74, 0x04, 0x81, 0xcb, 0x00, 0x08, 0xa9, 0x02, 0x00, 0x74, 0x04, 0x81, 0xcb, 0x00, - 0x03, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, 0x68, 0x00, 0x8d, 0xb6, 0xd8, 0x15, 0xe8, 0x64, 0x02, - 0x8d, 0xb6, 0xd4, 0x15, 0xe8, 0x23, 0x00, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x74, 0x03, 0xe8, 0x5e, - 0x16, 0xc6, 0x86, 0x07, 0x01, 0x01, 0xe8, 0xd0, 0x03, 0xe8, 0xc7, 0x05, 0xe9, 0xa2, 0xfe, 0x56, - 0x83, 0xc6, 0x08, 0xe8, 0x04, 0x00, 0x5e, 0xe9, 0x97, 0xfe, 0x8e, 0x46, 0x02, 0xb8, 0xc0, 0x00, - 0xe8, 0x20, 0xc7, 0x26, 0xa3, 0x7a, 0x00, 0x8b, 0x04, 0x0d, 0x80, 0x00, 0x89, 0x86, 0xda, 0x01, - 0xe8, 0x10, 0xc7, 0x26, 0xa3, 0x7c, 0x00, 0x8b, 0x44, 0x02, 0x89, 0x86, 0xdc, 0x01, 0xe8, 0x02, - 0xc7, 0x26, 0xa3, 0x7e, 0x00, 0xc3, 0x83, 0x8e, 0x1e, 0x01, 0x01, 0xc6, 0x86, 0x16, 0x01, 0x00, - 0x8a, 0x46, 0x06, 0x3c, 0x00, 0x74, 0x46, 0x3c, 0x10, 0x75, 0x03, 0xe9, 0x53, 0xfe, 0x3c, 0x12, - 0x74, 0x3b, 0x3c, 0x4c, 0x75, 0x03, 0xe9, 0x48, 0xfe, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x72, 0x1a, - 0x3c, 0x48, 0x74, 0x0f, 0xf6, 0x86, 0x72, 0x02, 0x01, 0x74, 0x17, 0x3c, 0x44, 0x74, 0x04, 0x3c, - 0x46, 0x75, 0x28, 0xc6, 0x46, 0x07, 0x4c, 0xe9, 0x27, 0xfe, 0x3c, 0x0e, 0x74, 0x17, 0x3c, 0x48, - 0x74, 0x19, 0xe8, 0x1c, 0xfe, 0xb8, 0x0f, 0x00, 0xe8, 0x96, 0xdb, 0xeb, 0x35, 0xe8, 0x11, 0xfe, - 0xe8, 0x04, 0x04, 0xeb, 0x2d, 0xc6, 0x46, 0x07, 0x10, 0xeb, 0x20, 0x8e, 0x46, 0x02, 0xf6, 0x06, - 0x81, 0x5e, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x42, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, - 0x01, 0x01, 0xe8, 0x0c, 0x16, 0xc6, 0x46, 0x07, 0x12, 0xeb, 0x00, 0xc6, 0x46, 0x09, 0x1e, 0xe9, - 0xdf, 0xfd, 0xc3, 0xc6, 0x86, 0x06, 0x01, 0x00, 0xb8, 0x05, 0x00, 0x80, 0xbe, 0x07, 0x01, 0x01, - 0x75, 0x03, 0xe9, 0xcf, 0xfd, 0x8b, 0x44, 0x08, 0x89, 0x86, 0xf4, 0x00, 0x8b, 0x44, 0x0a, 0xa9, - 0x00, 0x10, 0x74, 0x03, 0x0d, 0x00, 0x01, 0x89, 0x86, 0xf6, 0x00, 0x89, 0x86, 0xf8, 0x00, 0x8b, - 0x44, 0x12, 0x0b, 0xc0, 0x75, 0x21, 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x40, 0x74, 0x0b, 0xb8, 0x1f, - 0x47, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x12, 0x75, 0x0e, 0xb8, 0x18, 0x47, 0xf7, 0x86, 0xf6, 0x00, - 0x00, 0x01, 0x75, 0x03, 0xb8, 0xc6, 0x11, 0x89, 0x86, 0xfa, 0x00, 0xe8, 0xab, 0x02, 0x8d, 0xbe, - 0x56, 0x04, 0x8b, 0x44, 0x0c, 0x89, 0x05, 0x89, 0x86, 0x00, 0x01, 0x8b, 0x44, 0x0e, 0x89, 0x45, - 0x02, 0x89, 0x86, 0x02, 0x01, 0x8b, 0x44, 0x10, 0x89, 0x45, 0x04, 0x89, 0x86, 0x04, 0x01, 0x80, - 0xbe, 0x62, 0x01, 0x01, 0x75, 0x21, 0x8b, 0x44, 0x0c, 0x89, 0x86, 0xbc, 0x03, 0x89, 0x86, 0xc2, - 0x03, 0x8b, 0x44, 0x0e, 0x89, 0x86, 0xbe, 0x03, 0x89, 0x86, 0xc4, 0x03, 0x8b, 0x44, 0x10, 0x89, - 0x86, 0xc0, 0x03, 0x89, 0x86, 0xc6, 0x03, 0x8e, 0x46, 0x02, 0x8b, 0x86, 0xfa, 0x00, 0x26, 0xa3, - 0x52, 0x00, 0x8b, 0x44, 0x14, 0x26, 0xa3, 0x6a, 0x00, 0x8b, 0x44, 0x16, 0x25, 0xff, 0xf4, 0x83, - 0xc8, 0x30, 0x26, 0xa3, 0x68, 0x00, 0x8d, 0x1e, 0x6c, 0x05, 0x8b, 0x44, 0x18, 0xc1, 0xe8, 0x04, - 0x83, 0xe0, 0x0f, 0xd7, 0xa2, 0x87, 0x03, 0x8b, 0x44, 0x18, 0xc1, 0xe8, 0x0c, 0x83, 0xe0, 0x0f, - 0xd7, 0xa2, 0x88, 0x03, 0x33, 0xc0, 0xd7, 0xa2, 0x89, 0x03, 0x06, 0x51, 0x8c, 0xd8, 0x8e, 0xc0, - 0xbe, 0x80, 0x03, 0x8d, 0xbe, 0x1a, 0x04, 0xb9, 0x05, 0x00, 0xf3, 0xa5, 0x59, 0x07, 0x8b, 0x86, - 0xf4, 0x00, 0x25, 0xff, 0xfe, 0xc1, 0xe8, 0x08, 0x89, 0x86, 0x28, 0x02, 0xf7, 0x86, 0xf4, 0x00, - 0x04, 0x00, 0x74, 0x0f, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x75, 0x08, 0xc6, 0x06, 0x81, 0x5e, 0x01, - 0xe8, 0xa7, 0x11, 0x80, 0xbe, 0x62, 0x01, 0x01, 0x75, 0x01, 0xc3, 0xc6, 0x86, 0x06, 0x01, 0x01, - 0xe9, 0xae, 0xfc, 0x56, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0x7c, 0x08, 0x8d, 0xb6, 0xdc, 0x02, 0xb9, - 0x05, 0x00, 0x8b, 0xd1, 0xf3, 0xa5, 0x8d, 0xbe, 0xdc, 0x02, 0x33, 0xc0, 0x8b, 0xca, 0xf3, 0xab, - 0x81, 0xa6, 0x0a, 0x02, 0x7f, 0xdf, 0x5e, 0xe9, 0x87, 0xfc, 0x56, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, - 0x7c, 0x08, 0x8d, 0xb6, 0x40, 0x02, 0xb9, 0x0c, 0x00, 0x8b, 0xd1, 0xf3, 0xa5, 0x8d, 0xbe, 0x40, - 0x02, 0x33, 0xc0, 0x8b, 0xca, 0xf3, 0xab, 0x5e, 0xe9, 0x66, 0xfc, 0x83, 0xc6, 0x08, 0xe8, 0x03, - 0x00, 0xe9, 0x5d, 0xfc, 0x06, 0x8e, 0x46, 0x02, 0x8b, 0x04, 0x89, 0x86, 0xde, 0x01, 0xe8, 0xe2, - 0xc4, 0x26, 0xa3, 0x66, 0x00, 0x8b, 0x44, 0x02, 0x23, 0x86, 0xfc, 0x01, 0xe8, 0xd4, 0xc4, 0x25, - 0xff, 0x7f, 0x26, 0x8b, 0x0e, 0x64, 0x00, 0x81, 0xe1, 0x00, 0x80, 0x0b, 0xc1, 0x26, 0xa3, 0x64, - 0x00, 0xe8, 0xbf, 0xc4, 0x89, 0x86, 0xe0, 0x01, 0x07, 0xc3, 0xb8, 0x05, 0x00, 0x80, 0xbe, 0x07, - 0x01, 0x01, 0x75, 0x03, 0xe9, 0x1d, 0xfc, 0xc6, 0x86, 0x62, 0x01, 0x01, 0xe8, 0x34, 0xfe, 0xc6, - 0x86, 0x62, 0x01, 0x00, 0xc6, 0x86, 0x06, 0x01, 0x01, 0xe9, 0x05, 0xfc, 0xb8, 0x11, 0x00, 0xc6, - 0x86, 0x62, 0x01, 0x00, 0xe9, 0xfd, 0xfb, 0xc3, 0x8b, 0xd8, 0x26, 0x8b, 0x04, 0x50, 0x33, 0xc0, - 0x50, 0x23, 0xc3, 0x8b, 0xc8, 0x26, 0x89, 0x04, 0x26, 0x8b, 0x04, 0x23, 0xc3, 0x3b, 0xc1, 0x58, - 0x75, 0x3c, 0x05, 0x55, 0x55, 0x73, 0xe9, 0xb8, 0x01, 0x00, 0x50, 0x23, 0xc3, 0x8b, 0xc8, 0x26, - 0x89, 0x04, 0x26, 0x8b, 0x04, 0x23, 0xc3, 0x3b, 0xc1, 0x58, 0x75, 0x22, 0xd1, 0xc0, 0x73, 0xea, - 0xf7, 0xd0, 0x50, 0x23, 0xc3, 0x8b, 0xc8, 0x26, 0x89, 0x04, 0x26, 0x8b, 0x04, 0x23, 0xc3, 0x3b, - 0xc1, 0x58, 0x75, 0x0a, 0xd1, 0xc0, 0x72, 0xea, 0xf8, 0x58, 0x26, 0x89, 0x04, 0xc3, 0xf9, 0xeb, - 0xf8, 0x8b, 0x44, 0x08, 0x25, 0xff, 0x7b, 0x89, 0x86, 0x12, 0x01, 0x89, 0x86, 0x14, 0x01, 0x8e, - 0x46, 0x02, 0x26, 0x8b, 0x1e, 0x68, 0x00, 0x81, 0xe3, 0xff, 0xf4, 0xa9, 0x04, 0x00, 0x74, 0x04, - 0x81, 0xcb, 0x00, 0x08, 0xa9, 0x02, 0x00, 0x74, 0x04, 0x81, 0xcb, 0x00, 0x03, 0x8e, 0x46, 0x02, - 0x26, 0x89, 0x1e, 0x68, 0x00, 0xe9, 0x69, 0xfb, 0xe9, 0x61, 0xfb, 0x8b, 0x44, 0x08, 0x89, 0x86, - 0x30, 0x01, 0xbe, 0xcd, 0x4c, 0xe8, 0xee, 0xc6, 0xe9, 0x56, 0xfb, 0x8b, 0x44, 0x08, 0x8e, 0x46, - 0x02, 0x26, 0xa3, 0x6a, 0x00, 0xe9, 0x49, 0xfb, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x06, 0x80, 0x7e, - 0x06, 0x48, 0x75, 0x13, 0x80, 0x7e, 0x08, 0x00, 0x74, 0x06, 0x80, 0x7e, 0x08, 0x16, 0x75, 0x07, - 0x8d, 0x5c, 0x08, 0xe8, 0xa6, 0xe8, 0xc3, 0xb8, 0x00, 0x10, 0xe9, 0x27, 0xfb, 0xb8, 0x04, 0x00, - 0xf6, 0x86, 0x07, 0x01, 0x01, 0x74, 0x1e, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x68, 0x00, 0x8b, 0x5c, - 0x08, 0x81, 0xe3, 0xff, 0xf4, 0x25, 0x00, 0x0b, 0x0b, 0xd8, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, - 0x68, 0x00, 0xb8, 0x00, 0x20, 0xe9, 0xfc, 0xfa, 0xb8, 0x05, 0x00, 0xf6, 0x86, 0x07, 0x01, 0x01, - 0x75, 0x11, 0xfa, 0xe8, 0x54, 0xc8, 0xfa, 0xe8, 0xe7, 0xfa, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, - 0x32, 0x00, 0x02, 0xe9, 0xde, 0xfa, 0xe9, 0xd8, 0xfa, 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x40, 0x74, - 0x0d, 0xc6, 0x86, 0xfe, 0x00, 0x02, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x12, 0x75, 0x12, 0xc6, 0x86, - 0xfe, 0x00, 0x01, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x11, 0x75, 0x05, 0xc6, 0x86, 0xfe, 0x00, 0x00, - 0xc3, 0x8b, 0xd0, 0xb8, 0x01, 0x00, 0xe9, 0xa3, 0x01, 0xc3, 0x80, 0xbe, 0xb2, 0x02, 0x01, 0x74, - 0x0e, 0x80, 0xbe, 0x07, 0x01, 0x01, 0x75, 0xf1, 0x80, 0xbe, 0x09, 0x01, 0x01, 0x74, 0xea, 0xc6, - 0x86, 0x09, 0x01, 0x01, 0xc6, 0x86, 0xb2, 0x02, 0x00, 0x80, 0xbe, 0xfe, 0x00, 0x01, 0x74, 0x0c, - 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x08, 0x0d, 0x00, 0x08, 0xeb, 0x03, 0x0d, 0x00, 0x01, 0x80, - 0xbe, 0xaa, 0x02, 0x01, 0x74, 0x0a, 0x80, 0xbe, 0xac, 0x02, 0x01, 0x74, 0x03, 0x0d, 0x00, 0x04, - 0x80, 0xbe, 0xaa, 0x02, 0x01, 0x74, 0x0a, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x74, 0x03, 0x0d, 0x00, - 0x02, 0xf7, 0x86, 0xa6, 0x02, 0x01, 0x00, 0x74, 0x03, 0x0d, 0x00, 0x08, 0xa9, 0x00, 0x80, 0x74, - 0x1d, 0xc7, 0x86, 0x2e, 0x01, 0x02, 0x00, 0xf6, 0x86, 0x2c, 0x01, 0x01, 0x74, 0x1d, 0x53, 0xbb, - 0x40, 0x60, 0x8e, 0xc3, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x02, 0x5b, 0xeb, 0x0d, 0x8a, 0x56, - 0x06, 0xd0, 0xe2, 0xd0, 0xe2, 0xd0, 0xe2, 0x24, 0x0f, 0x0a, 0xc2, 0x89, 0x86, 0x38, 0x02, 0x8b, - 0xd0, 0xb8, 0x02, 0x00, 0xe9, 0x92, 0x00, 0x8b, 0x96, 0x1e, 0x01, 0x8b, 0x86, 0x12, 0x01, 0xa9, - 0x00, 0x02, 0x74, 0x06, 0xf7, 0xc2, 0x05, 0x80, 0x74, 0x0e, 0xc6, 0x86, 0x07, 0x01, 0x00, 0xc6, - 0x86, 0x16, 0x01, 0x00, 0x81, 0xca, 0x80, 0x00, 0x33, 0xc0, 0x89, 0x86, 0x1e, 0x01, 0x89, 0x96, - 0x20, 0x01, 0xc7, 0x86, 0x38, 0x02, 0x00, 0x00, 0xf7, 0xc2, 0x01, 0x00, 0x75, 0x22, 0x83, 0xbe, - 0x2e, 0x01, 0x03, 0x74, 0x1b, 0xc7, 0x86, 0x2e, 0x01, 0x03, 0x00, 0xf6, 0x86, 0x2c, 0x01, 0x01, - 0x74, 0x0e, 0x53, 0xbb, 0x40, 0x60, 0x8e, 0xc3, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x02, 0x5b, - 0xb8, 0x03, 0x00, 0xeb, 0x34, 0x3b, 0xc0, 0x74, 0x00, 0x8b, 0xd0, 0xb8, 0x04, 0x00, 0xeb, 0x29, - 0xc3, 0xc6, 0x86, 0xce, 0x01, 0x00, 0xc6, 0x86, 0xcf, 0x01, 0x00, 0x55, 0x33, 0xed, 0xbe, 0x7a, - 0x5d, 0xe8, 0x22, 0xc5, 0x5d, 0xb8, 0x05, 0x00, 0xeb, 0x0f, 0xb8, 0x06, 0x00, 0xeb, 0x0a, 0xb8, - 0x07, 0x00, 0xeb, 0x05, 0xb8, 0x08, 0x00, 0xeb, 0x00, 0x8b, 0xb6, 0x60, 0x01, 0x3b, 0xb6, 0x5e, - 0x01, 0x75, 0x0a, 0xf7, 0x86, 0xb0, 0x15, 0x00, 0x80, 0x74, 0x02, 0xeb, 0x5f, 0x8b, 0x8e, 0x5e, - 0x01, 0x41, 0x80, 0xe1, 0x07, 0x3b, 0xf1, 0x75, 0x20, 0x46, 0x83, 0xe6, 0x07, 0x89, 0xb6, 0x60, - 0x01, 0x51, 0x8b, 0xce, 0xd1, 0xe1, 0xd1, 0xe1, 0x8d, 0xb6, 0x3e, 0x01, 0x03, 0xf1, 0x8b, 0x0c, - 0x83, 0xf9, 0x05, 0x74, 0x03, 0x0d, 0x00, 0x01, 0x59, 0x83, 0xf8, 0x04, 0x75, 0x1a, 0x51, 0xb9, - 0x08, 0x00, 0x8d, 0xb6, 0x3e, 0x01, 0x39, 0x04, 0x74, 0x08, 0x83, 0xc6, 0x04, 0xe2, 0xf7, 0x59, - 0xeb, 0x06, 0x89, 0x54, 0x02, 0x59, 0xeb, 0x13, 0x89, 0x8e, 0x5e, 0x01, 0xd1, 0xe1, 0xd1, 0xe1, - 0x8d, 0xb6, 0x3e, 0x01, 0x03, 0xf1, 0x89, 0x04, 0x89, 0x54, 0x02, 0xc3, 0x8d, 0xb6, 0xb0, 0x15, - 0x89, 0x54, 0x06, 0xc7, 0x44, 0x04, 0x08, 0x00, 0x3c, 0x05, 0x75, 0x05, 0xc7, 0x44, 0x04, 0x06, - 0x00, 0x25, 0xff, 0x7f, 0x89, 0x04, 0xb8, 0x40, 0x60, 0x8e, 0xc0, 0x26, 0xc7, 0x06, 0x30, 0x00, - 0x00, 0x20, 0xc3, 0x8b, 0x86, 0x14, 0x01, 0x89, 0x86, 0x12, 0x01, 0xc6, 0x46, 0x09, 0x1e, 0xc6, - 0x46, 0x08, 0x1e, 0xc6, 0x46, 0x0b, 0x00, 0xc7, 0x86, 0x28, 0x01, 0x00, 0x00, 0xc7, 0x86, 0x2a, - 0x01, 0x00, 0x00, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0xbe, 0xe4, 0x01, 0xb9, 0x2b, 0x00, - 0xf3, 0xab, 0xc7, 0x86, 0x2a, 0x02, 0xff, 0xff, 0x8e, 0x46, 0x02, 0xb8, 0x02, 0x00, 0xf7, 0x86, - 0xf4, 0x00, 0x80, 0x00, 0x74, 0x03, 0x83, 0xc8, 0x01, 0xf7, 0x86, 0xf4, 0x00, 0x40, 0x00, 0x74, - 0x03, 0x83, 0xc8, 0x04, 0xf7, 0x86, 0xf4, 0x00, 0x20, 0x00, 0x74, 0x03, 0x83, 0xc8, 0x08, 0x26, - 0xa3, 0x4e, 0x00, 0xb0, 0x02, 0xe8, 0x65, 0xc8, 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x20, 0x74, 0x28, - 0xf7, 0x86, 0x12, 0x01, 0x00, 0x84, 0x74, 0x0c, 0xb8, 0x05, 0x00, 0xe8, 0x27, 0x00, 0xc6, 0x46, - 0x07, 0x42, 0xeb, 0x20, 0xf7, 0x86, 0xf6, 0x00, 0x80, 0x00, 0x74, 0x0c, 0xb8, 0x05, 0x00, 0xe8, - 0x13, 0x00, 0xc6, 0x46, 0x07, 0x42, 0xeb, 0x0c, 0xb8, 0x02, 0x00, 0xe8, 0x07, 0x00, 0xc6, 0x46, - 0x07, 0x02, 0xeb, 0x00, 0xc3, 0x50, 0xb0, 0x00, 0x88, 0x86, 0xaa, 0x02, 0x88, 0x86, 0xab, 0x02, - 0x88, 0x86, 0xac, 0x02, 0x88, 0x86, 0xad, 0x02, 0x88, 0x86, 0xaf, 0x02, 0x88, 0x86, 0xae, 0x02, - 0x58, 0x9c, 0xfa, 0x83, 0xf8, 0x02, 0x74, 0x13, 0x83, 0xf8, 0x05, 0x74, 0x0c, 0xc7, 0x46, 0x12, - 0x2c, 0x21, 0xc7, 0x46, 0x14, 0x2c, 0x21, 0xeb, 0x42, 0xeb, 0x21, 0xc6, 0x86, 0xaa, 0x02, 0x01, - 0xc6, 0x86, 0xae, 0x02, 0x01, 0xc6, 0x86, 0xaf, 0x02, 0x00, 0xc7, 0x46, 0x12, 0xf3, 0x36, 0xc7, - 0x46, 0x14, 0x21, 0x34, 0xc7, 0x86, 0xba, 0x01, 0x2c, 0x00, 0xeb, 0x1f, 0xc6, 0x86, 0xac, 0x02, - 0x01, 0xc6, 0x86, 0xae, 0x02, 0x00, 0xc6, 0x86, 0xaf, 0x02, 0x01, 0xc7, 0x46, 0x12, 0xf7, 0x36, - 0xc7, 0x46, 0x14, 0x25, 0x34, 0xc7, 0x86, 0xba, 0x01, 0x30, 0x00, 0x0e, 0xe8, 0x02, 0x00, 0xeb, - 0x01, 0xcf, 0xc3, 0x8c, 0x00, 0xf8, 0x4c, 0xbc, 0x02, 0x96, 0x00, 0x2e, 0x4d, 0x14, 0x00, 0x96, - 0x00, 0x42, 0x4d, 0x08, 0x07, 0x96, 0x00, 0x80, 0x4d, 0x6e, 0x00, 0x78, 0x00, 0xd2, 0x4f, 0x00, - 0x00, 0x6e, 0x00, 0x42, 0x4e, 0xf4, 0x01, 0x6e, 0x00, 0x72, 0x4e, 0x08, 0x07, 0x6e, 0x00, 0x8a, - 0x51, 0x02, 0x00, 0xaa, 0x00, 0xa6, 0x4e, 0xfa, 0x00, 0x8c, 0x00, 0xf6, 0x4e, 0x02, 0x00, 0x8c, - 0x00, 0x0c, 0x4e, 0x3c, 0x00, 0x78, 0x00, 0x62, 0x4f, 0x04, 0x01, 0x96, 0x00, 0x8e, 0x4f, 0x64, - 0x00, 0x96, 0x00, 0xb2, 0x4f, 0xdc, 0x05, 0xbe, 0x00, 0xe0, 0x50, 0xf4, 0x01, 0xa0, 0x00, 0x5c, - 0x52, 0xf4, 0x01, 0xbe, 0x00, 0x0a, 0x51, 0xf4, 0x01, 0x82, 0x00, 0x22, 0x55, 0x19, 0x00, 0x6e, - 0x00, 0x42, 0x52, 0x14, 0x00, 0x78, 0x00, 0x1e, 0x51, 0xc4, 0x09, 0x6e, 0x00, 0x32, 0x51, 0x02, - 0x00, 0xd2, 0x00, 0xac, 0x55, 0x2c, 0x01, 0x78, 0x00, 0x34, 0x54, 0xf0, 0x00, 0x6e, 0x00, 0xb4, - 0x52, 0x32, 0x00, 0xa0, 0x00, 0x16, 0x53, 0xbc, 0x02, 0x6e, 0x00, 0x28, 0x53, 0x08, 0x07, 0x6e, - 0x00, 0x36, 0x53, 0xe8, 0x03, 0x6e, 0x00, 0x48, 0x53, 0x14, 0x00, 0x96, 0x00, 0x54, 0x53, 0x64, - 0x00, 0xa0, 0x00, 0x42, 0x54, 0xf4, 0x01, 0xc8, 0x00, 0xe0, 0x4e, 0x02, 0x00, 0x6e, 0x00, 0x84, - 0x53, 0x04, 0x00, 0x8c, 0x00, 0x0c, 0x54, 0x14, 0x00, 0x6e, 0x00, 0xe6, 0x55, 0x84, 0x03, 0x96, - 0x00, 0xf4, 0x55, 0x02, 0x00, 0x82, 0x00, 0x34, 0x52, 0x14, 0x00, 0xb4, 0x00, 0x20, 0x56, 0x02, - 0x00, 0xdc, 0x00, 0xdc, 0x55, 0x64, 0x00, 0xa0, 0x00, 0x47, 0x55, 0x64, 0x00, 0xc8, 0x00, 0x5e, - 0x55, 0x03, 0x00, 0xd2, 0x00, 0xb0, 0x55, 0xf4, 0x01, 0xd2, 0x00, 0xc2, 0x55, 0x4c, 0x04, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x80, 0xbe, 0x58, 0x02, - 0x01, 0x75, 0x28, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x22, 0xf6, 0x86, 0x69, 0x02, 0x01, 0x74, 0x1c, - 0xe8, 0x10, 0xe0, 0xbe, 0xef, 0x4b, 0xe8, 0x2d, 0xc2, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, - 0xbe, 0xf2, 0x01, 0xab, 0xab, 0xab, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc3, 0xe8, 0xc8, 0xe2, 0xeb, - 0xdf, 0x90, 0x8a, 0x46, 0x08, 0x3c, 0x0a, 0x75, 0x0b, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x04, - 0xc6, 0x46, 0x09, 0x04, 0xc3, 0x90, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x74, 0x32, 0x80, 0x7e, 0x08, - 0x06, 0x75, 0x2c, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0x0f, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x08, - 0xb8, 0x07, 0x00, 0xe8, 0xcb, 0xd3, 0xeb, 0x17, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x10, 0xf6, - 0x86, 0x5d, 0x02, 0x01, 0x75, 0x09, 0xc6, 0x86, 0x5d, 0x02, 0x01, 0xc6, 0x46, 0x09, 0x08, 0xc3, - 0xe9, 0x84, 0x00, 0x90, 0x8a, 0x4e, 0x06, 0x8a, 0x56, 0x08, 0x80, 0xf9, 0x06, 0x74, 0xf1, 0x80, - 0xf9, 0x08, 0x74, 0x05, 0x80, 0xf9, 0x0a, 0x75, 0x0a, 0x80, 0xfa, 0x0c, 0x74, 0xe2, 0x80, 0xfa, - 0x04, 0x74, 0xdd, 0x80, 0xfa, 0x0c, 0x74, 0x05, 0x80, 0xfa, 0x04, 0x75, 0x59, 0xf6, 0x86, 0x67, - 0x02, 0x01, 0x74, 0x52, 0xe8, 0xd9, 0x02, 0xf6, 0x86, 0x65, 0x02, 0x01, 0x74, 0x0b, 0x81, 0x8e, - 0x0a, 0x02, 0x00, 0x80, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xc6, 0x46, 0x09, 0x06, 0x81, 0x8e, 0x0a, - 0x02, 0x00, 0x50, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xc6, 0x86, 0x6e, 0x02, 0x01, 0xc6, 0x86, 0x6d, - 0x02, 0x01, 0xc6, 0x86, 0x6f, 0x02, 0x01, 0xe8, 0x9c, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, - 0x4c, 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0xbe, 0xfb, 0x4b, 0xe8, 0x46, 0xc1, - 0xbe, 0x25, 0x4c, 0xe8, 0x40, 0xc1, 0xc3, 0xb8, 0x07, 0x00, 0xe8, 0x24, 0xd3, 0xeb, 0xf7, 0x90, - 0x80, 0xbe, 0xaa, 0x02, 0x01, 0x74, 0x02, 0xeb, 0x2b, 0x80, 0x7e, 0x06, 0x10, 0x75, 0x06, 0xc6, - 0x46, 0x07, 0x12, 0xeb, 0x1f, 0x80, 0x7e, 0x08, 0x08, 0x75, 0x19, 0xc6, 0x86, 0x6d, 0x02, 0x01, - 0xc6, 0x86, 0x6f, 0x02, 0x01, 0xe8, 0x4e, 0xc3, 0xbe, 0x61, 0x4c, 0xe8, 0x08, 0xc1, 0xbe, 0x67, - 0x4c, 0xe8, 0x02, 0xc1, 0xc3, 0x90, 0xf6, 0x86, 0x63, 0x02, 0x01, 0x74, 0x28, 0xc6, 0x86, 0x63, - 0x02, 0x00, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x06, 0xc6, 0x46, 0x09, 0x04, 0xeb, 0x17, 0x80, 0x7e, - 0x08, 0x06, 0x75, 0x11, 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xe8, 0x1a, 0xc3, 0xbe, 0x25, 0x4c, 0xe8, - 0xd4, 0xc0, 0xe8, 0x09, 0xde, 0xc3, 0x8a, 0x46, 0x06, 0x3c, 0x04, 0x75, 0x1e, 0xf7, 0x86, 0xf6, - 0x00, 0x00, 0x10, 0x75, 0x0e, 0xc6, 0x46, 0x07, 0x06, 0xc6, 0x46, 0x06, 0x06, 0xc6, 0x46, 0x09, - 0x04, 0xeb, 0x16, 0xb8, 0x0d, 0x00, 0xe8, 0x98, 0xd2, 0xeb, 0x0e, 0x3c, 0x08, 0x72, 0x0a, 0x3c, - 0x0c, 0x77, 0x06, 0xb8, 0x05, 0x00, 0xe8, 0x88, 0xd2, 0xc3, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x33, - 0xf6, 0x86, 0x58, 0x02, 0x01, 0x75, 0x2c, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x25, 0x8e, 0x46, - 0x02, 0x26, 0xf7, 0x06, 0x54, 0x00, 0x03, 0x00, 0x74, 0x11, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, - 0x54, 0x00, 0x03, 0xbe, 0x1f, 0x4c, 0xe8, 0x6d, 0xc0, 0xeb, 0x08, 0xc6, 0x46, 0x09, 0x04, 0xff, - 0x86, 0x4e, 0x02, 0xc3, 0x80, 0x7e, 0x08, 0x18, 0x75, 0x0e, 0xbe, 0xa3, 0x4c, 0xe8, 0x56, 0xc0, - 0xe8, 0x9d, 0x01, 0xe8, 0x88, 0xdd, 0xeb, 0x00, 0xc3, 0x90, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x35, - 0x80, 0xbe, 0x5f, 0x02, 0x01, 0x75, 0x58, 0x80, 0xbe, 0x58, 0x02, 0x01, 0x74, 0x1f, 0xe8, 0x3d, - 0xde, 0x80, 0x7e, 0x06, 0x0a, 0x75, 0x16, 0xc6, 0x86, 0x67, 0x02, 0x01, 0xc6, 0x46, 0x07, 0x0c, - 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x40, 0x75, 0x05, 0xc6, 0x86, 0x62, 0x02, 0x01, 0xc3, 0xbe, 0x25, - 0x4c, 0xe8, 0x12, 0xc0, 0xc3, 0x8a, 0x46, 0x08, 0x3c, 0x04, 0x75, 0x0e, 0xbe, 0x25, 0x4c, 0xe8, - 0x04, 0xc0, 0xff, 0x86, 0xbc, 0x02, 0xe8, 0x6f, 0xdd, 0xc3, 0x3c, 0x06, 0x75, 0xdf, 0xf6, 0x86, - 0x63, 0x02, 0x01, 0x75, 0xd8, 0xbe, 0x25, 0x4c, 0xe8, 0xeb, 0xbf, 0xe8, 0x20, 0xdd, 0xc3, 0xc6, - 0x86, 0x6a, 0x02, 0x01, 0xc3, 0x90, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x74, 0x22, 0x80, 0x7e, 0x06, - 0x0c, 0x75, 0x1b, 0xff, 0x86, 0xc2, 0x02, 0x83, 0xbe, 0xc2, 0x02, 0x04, 0x77, 0x0a, 0xbe, 0x31, - 0x4c, 0xe8, 0xc2, 0xbf, 0xe8, 0xbe, 0xde, 0xc3, 0xb8, 0x09, 0x00, 0xe8, 0xa3, 0xd1, 0xc3, 0xeb, - 0xfd, 0x90, 0x80, 0x7e, 0x08, 0x02, 0x75, 0x1d, 0x80, 0xbe, 0x62, 0x02, 0x01, 0x74, 0x08, 0xb8, - 0x05, 0x00, 0xe8, 0x8c, 0xd1, 0xeb, 0x0e, 0xff, 0x86, 0x4e, 0x02, 0xc6, 0x46, 0x09, 0x04, 0xb8, - 0x00, 0x01, 0xe8, 0x73, 0xe0, 0xc3, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x16, 0x80, 0xbe, 0x58, 0x02, - 0x01, 0x74, 0x07, 0x80, 0xbe, 0x62, 0x02, 0x00, 0x74, 0x08, 0xff, 0x86, 0x4e, 0x02, 0xc6, 0x46, - 0x09, 0x04, 0xc3, 0xe9, 0xb8, 0x00, 0xf6, 0x86, 0xaf, 0x02, 0x01, 0x75, 0x07, 0xf6, 0x86, 0x62, - 0x02, 0x01, 0x74, 0xef, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x80, 0x74, 0x06, 0xbe, 0x07, 0x4c, 0xe8, - 0x54, 0xbf, 0x8d, 0xbe, 0xdc, 0x02, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x05, 0x00, 0x33, 0xc0, 0xf3, - 0xaf, 0x74, 0xd0, 0x80, 0xbe, 0xaa, 0x02, 0x01, 0x74, 0x45, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x74, - 0x5f, 0x80, 0xbe, 0xac, 0x02, 0x01, 0x74, 0x09, 0x80, 0xbe, 0xad, 0x02, 0x01, 0x74, 0x51, 0xeb, - 0x6d, 0xc7, 0x86, 0xc0, 0x02, 0x04, 0x00, 0x81, 0x8e, 0x0a, 0x02, 0x00, 0x20, 0xc6, 0x86, 0x89, - 0x02, 0x01, 0xf6, 0x86, 0x72, 0x02, 0x01, 0x74, 0x14, 0x80, 0x7e, 0x08, 0x16, 0x75, 0x0e, 0xc6, - 0x86, 0x5a, 0x02, 0x00, 0xe8, 0x18, 0xde, 0xc7, 0x86, 0x2e, 0x02, 0x03, 0x00, 0xeb, 0x3f, 0xc7, - 0x86, 0xc0, 0x02, 0x04, 0x00, 0xc6, 0x86, 0x5a, 0x02, 0x00, 0xe8, 0x02, 0xde, 0xc7, 0x86, 0x2e, - 0x02, 0x03, 0x00, 0x81, 0x8e, 0x0a, 0x02, 0x00, 0x20, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xeb, 0x1e, - 0xc7, 0x86, 0xc0, 0x02, 0x04, 0x00, 0x81, 0x8e, 0x0a, 0x02, 0x00, 0x20, 0xc6, 0x86, 0x89, 0x02, - 0x01, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x80, 0x75, 0x05, 0xc6, 0x86, 0x5a, 0x02, 0x00, 0xc3, 0x90, - 0xc7, 0x86, 0x36, 0x02, 0x06, 0x00, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x18, 0xb8, 0x00, 0x02, - 0x80, 0xbe, 0x65, 0x02, 0x01, 0x74, 0x37, 0xf6, 0x86, 0xac, 0x02, 0x01, 0x75, 0x07, 0xf6, 0x86, - 0xad, 0x02, 0x01, 0x74, 0x05, 0xb8, 0x00, 0x05, 0xeb, 0x24, 0xb8, 0x00, 0x04, 0xc7, 0x86, 0x36, - 0x02, 0x04, 0x00, 0x8a, 0x4e, 0x08, 0x80, 0xf9, 0x0c, 0x74, 0x13, 0xb8, 0x00, 0x04, 0x80, 0xbe, - 0x5e, 0x02, 0x01, 0x74, 0x09, 0xb8, 0x00, 0x03, 0xc7, 0x86, 0x36, 0x02, 0x07, 0x00, 0x89, 0x86, - 0x0c, 0x03, 0xc3, 0x90, 0x80, 0x7e, 0x08, 0x08, 0x74, 0x23, 0x8a, 0x46, 0x06, 0x3c, 0x04, 0x72, - 0x1c, 0x3c, 0x48, 0x74, 0x04, 0x3c, 0x0e, 0x77, 0x14, 0xf6, 0x86, 0x61, 0x02, 0x01, 0x74, 0x0d, - 0xf6, 0x86, 0x60, 0x02, 0x01, 0x74, 0x06, 0xb8, 0x0c, 0x00, 0xe8, 0x24, 0xd0, 0xc3, 0xc6, 0x86, - 0x61, 0x02, 0x01, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x44, 0x00, 0xff, 0xf7, 0xe8, 0xcc, 0x03, - 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x02, 0x74, 0x06, 0x80, 0x7e, 0x08, 0x08, 0x75, 0x06, 0xb8, 0x01, - 0x00, 0xe8, 0xfd, 0xcf, 0xc3, 0x90, 0x51, 0x52, 0x56, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x02, - 0xeb, 0x48, 0x33, 0xd2, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xe8, 0x3a, 0xc0, 0x8d, 0xb6, 0xa6, 0x01, - 0x8d, 0xbe, 0xac, 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0xc6, 0x86, 0x87, 0x02, 0x00, - 0xb0, 0x00, 0xe8, 0xed, 0xe1, 0xc6, 0x86, 0x68, 0x01, 0x02, 0xc7, 0x86, 0x66, 0x01, 0x20, 0x03, - 0xbe, 0x19, 0x4c, 0xe8, 0xd0, 0xbd, 0x8b, 0xb6, 0x64, 0x01, 0xb9, 0xe8, 0x03, 0x8e, 0x46, 0x02, - 0x26, 0xc7, 0x06, 0x5c, 0x00, 0x00, 0x00, 0xe8, 0x08, 0xdc, 0x5e, 0x5a, 0x59, 0xc3, 0x80, 0x7e, - 0x06, 0x02, 0x74, 0x0f, 0x80, 0x7e, 0x06, 0x44, 0x74, 0x09, 0x80, 0x7e, 0x08, 0x08, 0x74, 0x03, - 0xe9, 0x94, 0x00, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x26, 0xf6, 0x86, 0x76, 0x02, 0x01, 0x74, - 0x0b, 0xbe, 0x19, 0x4c, 0xe8, 0x8f, 0xbd, 0xe8, 0x3a, 0xdf, 0xeb, 0x7b, 0xf6, 0x86, 0x77, 0x02, - 0x01, 0x74, 0x0d, 0xc6, 0x86, 0x77, 0x02, 0x00, 0xbe, 0x19, 0x4c, 0xe8, 0x78, 0xbd, 0xeb, 0x67, - 0xfe, 0x8e, 0x68, 0x01, 0x75, 0x05, 0xe8, 0xc5, 0x04, 0xeb, 0x5c, 0xbe, 0x19, 0x4c, 0xe8, 0x65, - 0xbd, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x08, 0xb9, 0x5a, 0x00, 0xe8, 0x07, 0xdc, 0xeb, 0x47, - 0xe8, 0x4a, 0xb8, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x4c, 0x00, 0x00, 0x01, 0x90, 0x8e, 0x46, - 0x02, 0x26, 0x81, 0x26, 0x4c, 0x00, 0xff, 0xfe, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x5c, 0x00, - 0x00, 0x00, 0x8b, 0xb6, 0x64, 0x01, 0xb9, 0xe8, 0x03, 0xc6, 0x86, 0x8a, 0x02, 0x01, 0x83, 0xbe, - 0x66, 0x01, 0x01, 0x75, 0x07, 0xe8, 0x51, 0xdb, 0xeb, 0x0d, 0xeb, 0x05, 0xe8, 0x63, 0xdb, 0xeb, - 0x06, 0xb8, 0x01, 0x00, 0xe8, 0xfa, 0xce, 0xc3, 0x80, 0x7e, 0x06, 0x44, 0x75, 0x07, 0xf6, 0x86, - 0x76, 0x02, 0x01, 0x75, 0xec, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x80, 0x00, 0x74, 0x10, 0x80, 0x7e, - 0x06, 0x14, 0x75, 0x0a, 0xb8, 0x05, 0x00, 0xe8, 0x1b, 0xf9, 0xc6, 0x46, 0x07, 0x42, 0xc3, 0x90, - 0x80, 0xbe, 0xab, 0x02, 0x01, 0x74, 0x4e, 0xc6, 0x86, 0x70, 0x02, 0x00, 0x80, 0x7e, 0x08, 0x08, - 0x75, 0x2c, 0xf6, 0x86, 0x71, 0x02, 0x01, 0x74, 0x25, 0xe9, 0xdf, 0xcc, 0xbe, 0x2b, 0x4c, 0xe8, - 0xc4, 0xbc, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x42, - 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0x35, 0x09, 0xeb, 0x16, 0x80, 0x7e, - 0x06, 0x10, 0x75, 0x10, 0xc6, 0x46, 0x09, 0x00, 0xc6, 0x86, 0x58, 0x02, 0x00, 0xc6, 0x86, 0x6c, - 0x02, 0x00, 0xeb, 0xc8, 0xc3, 0xeb, 0xfd, 0x90, 0x80, 0x7e, 0x06, 0x42, 0x75, 0x14, 0x80, 0xbe, - 0xfe, 0x00, 0x02, 0x72, 0x27, 0xf6, 0x86, 0x74, 0x02, 0x01, 0x75, 0x08, 0xb8, 0x02, 0x00, 0xe8, - 0x02, 0x04, 0xeb, 0x45, 0xc7, 0x86, 0x34, 0x05, 0x00, 0x02, 0xc7, 0x86, 0x30, 0x05, 0x00, 0x02, - 0xc6, 0x86, 0x79, 0x02, 0x01, 0xc6, 0x86, 0xb0, 0x02, 0x00, 0xeb, 0x1e, 0xc6, 0x86, 0xb0, 0x02, - 0x01, 0xc7, 0x86, 0x34, 0x05, 0x00, 0x02, 0xc7, 0x86, 0x30, 0x05, 0x00, 0x01, 0xf6, 0x86, 0x78, - 0x02, 0x01, 0x74, 0x06, 0xc7, 0x86, 0x34, 0x05, 0x00, 0x06, 0xc7, 0x86, 0xd8, 0x02, 0x05, 0x00, - 0xbe, 0xa9, 0x4c, 0xe8, 0x30, 0xbc, 0xe8, 0x5f, 0xdd, 0xc3, 0x80, 0x7e, 0x08, 0x18, 0x74, 0x06, - 0x80, 0x7e, 0x08, 0x1a, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x1c, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x46, - 0x75, 0x06, 0xb8, 0x05, 0x00, 0xe8, 0xf9, 0xcd, 0xc3, 0x90, 0x80, 0x7e, 0x08, 0x1c, 0x75, 0x0a, - 0x80, 0x7e, 0x06, 0x48, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x44, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x42, - 0x75, 0x04, 0xc6, 0x46, 0x07, 0x44, 0xc3, 0x90, 0xf6, 0x86, 0x73, 0x02, 0x01, 0x74, 0x27, 0xf6, - 0x46, 0x06, 0x46, 0x75, 0x18, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x11, 0xc6, 0x86, 0x6f, 0x02, - 0x01, 0xc6, 0x86, 0x7a, 0x02, 0x01, 0xe8, 0x0d, 0xbe, 0xff, 0x86, 0xd6, 0x02, 0xe8, 0xce, 0xd9, - 0xbe, 0x97, 0x4c, 0xe8, 0xc0, 0xbb, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x42, 0x75, 0x35, 0xf6, 0x86, - 0x7b, 0x02, 0x01, 0x75, 0x2e, 0x83, 0xbe, 0xd8, 0x02, 0x00, 0x74, 0x29, 0xff, 0x8e, 0xd8, 0x02, - 0xbe, 0xa9, 0x4c, 0xe8, 0xa0, 0xbb, 0x80, 0xbe, 0xfe, 0x00, 0x01, 0x77, 0x13, 0xc7, 0x86, 0x34, - 0x05, 0x00, 0x02, 0xf6, 0x86, 0x78, 0x02, 0x01, 0x74, 0x06, 0xc7, 0x86, 0x34, 0x05, 0x00, 0x06, - 0xe8, 0xb5, 0xdc, 0xeb, 0x49, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x10, 0x74, 0x1c, 0x80, 0xbe, 0xfe, - 0x00, 0x00, 0x74, 0x08, 0xb8, 0x06, 0x00, 0xe8, 0xfa, 0x02, 0xeb, 0x32, 0xf7, 0x86, 0xf6, 0x00, - 0x00, 0x10, 0x74, 0x05, 0xc6, 0x86, 0xfe, 0x00, 0x01, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x18, - 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x10, 0x74, 0x10, 0xb8, 0x02, 0x00, 0xe8, 0x77, 0xf7, 0xc6, 0x46, - 0x09, 0x1e, 0xc6, 0x46, 0x07, 0x02, 0xeb, 0x06, 0xb8, 0x06, 0x00, 0xe8, 0x23, 0xcd, 0xc3, 0x90, - 0x80, 0x7e, 0x06, 0x46, 0x75, 0x21, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x11, 0xc6, 0x86, 0x6f, - 0x02, 0x01, 0xc6, 0x86, 0x7a, 0x02, 0x01, 0xe8, 0x5c, 0xbd, 0xff, 0x86, 0xd6, 0x02, 0xbe, 0xaf, - 0x4c, 0xe8, 0x12, 0xbb, 0xe8, 0x83, 0xdc, 0xc3, 0x80, 0x7e, 0x06, 0x44, 0x75, 0x06, 0xb8, 0x05, - 0x00, 0xe8, 0xed, 0xcc, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x46, 0x75, 0x08, 0xb8, 0x06, 0x00, 0xe8, - 0xdf, 0xcc, 0xeb, 0x17, 0x80, 0x7e, 0x08, 0x16, 0x75, 0x11, 0xc7, 0x86, 0x2e, 0x02, 0x04, 0x00, - 0xf6, 0x86, 0x72, 0x02, 0x01, 0x74, 0x04, 0xc6, 0x46, 0x09, 0x18, 0xc3, 0x8e, 0x46, 0x02, 0x26, - 0x8b, 0x16, 0x42, 0x00, 0xf7, 0xc2, 0x02, 0x00, 0x74, 0x14, 0x8b, 0xc2, 0x83, 0xe0, 0xfd, 0x8e, - 0x46, 0x02, 0x26, 0xa3, 0x42, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x16, 0x42, 0x00, 0xc3, 0x90, - 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x54, 0x00, 0x03, 0x00, 0x74, 0x10, 0x8e, 0x46, 0x02, 0x26, - 0x83, 0x26, 0x54, 0x00, 0x03, 0xc6, 0x86, 0x59, 0x02, 0x01, 0xeb, 0x00, 0xf6, 0x86, 0x59, 0x02, - 0x01, 0x75, 0x14, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x0e, 0xc6, 0x46, 0x09, 0x02, 0xff, 0x86, 0x44, - 0x02, 0x81, 0x8e, 0xe6, 0x02, 0x00, 0x02, 0xc6, 0x86, 0x59, 0x02, 0x00, 0xc3, 0x90, 0xf7, 0x86, - 0xf4, 0x00, 0x00, 0x10, 0x75, 0x15, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x54, 0x00, 0x03, 0x00, - 0x74, 0x09, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x54, 0x00, 0x03, 0xc3, 0x80, 0xbe, 0xb0, 0x02, - 0x01, 0x75, 0x32, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x54, 0x00, 0x08, 0x00, 0x74, 0x21, 0xf6, - 0x86, 0x61, 0x02, 0x01, 0x74, 0x1f, 0xf6, 0x86, 0x60, 0x02, 0x01, 0x75, 0x18, 0xc7, 0x86, 0x2e, - 0x02, 0x0a, 0x00, 0xbe, 0x43, 0x4c, 0xe8, 0x2d, 0xba, 0xc6, 0x86, 0x60, 0x02, 0x01, 0xeb, 0x05, - 0xc6, 0x86, 0x60, 0x02, 0x00, 0xc3, 0xbe, 0x55, 0x4c, 0xe8, 0x1a, 0xba, 0x33, 0xc0, 0x87, 0x86, - 0xcc, 0x02, 0x0b, 0xc0, 0x75, 0x14, 0x80, 0xbe, 0x65, 0x02, 0x00, 0x74, 0x0d, 0xc6, 0x86, 0x65, - 0x02, 0x00, 0x80, 0xa6, 0x0b, 0x02, 0x7f, 0xe8, 0x46, 0xfb, 0xc3, 0x80, 0x7e, 0x06, 0x12, 0x75, - 0x10, 0xc6, 0x86, 0x08, 0x01, 0x01, 0xc6, 0x86, 0x09, 0x01, 0x00, 0xe8, 0x7b, 0xf3, 0xe8, 0x72, - 0xf5, 0xc3, 0xf6, 0x86, 0x6e, 0x01, 0x01, 0x74, 0x15, 0x80, 0xbe, 0x70, 0x01, 0x03, 0x73, 0x07, - 0xc6, 0x86, 0x6c, 0x01, 0x01, 0xeb, 0x23, 0xc6, 0x86, 0x6e, 0x01, 0x00, 0xeb, 0x1c, 0xf6, 0x86, - 0x6f, 0x01, 0x01, 0x74, 0x15, 0x80, 0xbe, 0x71, 0x01, 0x03, 0x73, 0x07, 0xc6, 0x86, 0x6d, 0x01, - 0x01, 0xeb, 0x07, 0xc6, 0x86, 0x6f, 0x01, 0x00, 0xeb, 0x00, 0xc3, 0xf7, 0x86, 0xb0, 0x15, 0x00, - 0x80, 0x75, 0x07, 0x83, 0xbe, 0xb0, 0x15, 0x05, 0x74, 0x05, 0xc6, 0x86, 0xce, 0x01, 0x01, 0xc3, - 0xe8, 0xd2, 0xcc, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x08, 0x00, 0x74, 0x09, 0xe8, 0x6b, 0xf4, 0xbe, - 0xe5, 0x4c, 0xe8, 0x81, 0xb9, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x08, 0x00, 0x74, 0x11, 0x81, 0x8e, - 0x0a, 0x02, 0x00, 0x04, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xb8, 0x10, 0x00, 0xe8, 0x52, 0xcb, 0xc3, - 0x8b, 0x86, 0x30, 0x01, 0x88, 0xa6, 0x2c, 0x01, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x4a, 0x75, 0x06, - 0xb8, 0x04, 0x00, 0xe8, 0x3b, 0xcb, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x4c, 0x75, 0x25, 0xf6, 0x86, - 0x74, 0x02, 0x01, 0x74, 0x07, 0x83, 0xbe, 0xda, 0x02, 0x00, 0x75, 0x0a, 0xc6, 0x46, 0x07, 0x12, - 0xc6, 0x46, 0x09, 0x1e, 0xeb, 0x0d, 0xff, 0x8e, 0xda, 0x02, 0xbe, 0xbb, 0x4c, 0xe8, 0x26, 0xb9, - 0xe8, 0xed, 0xda, 0xc3, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x2e, 0x8a, 0x3e, 0x80, 0x5e, 0xb3, - 0x01, 0xe8, 0x6e, 0xbf, 0xf6, 0x86, 0x74, 0x02, 0x01, 0x74, 0x24, 0xa9, 0x04, 0x00, 0x75, 0x1d, - 0xff, 0x8e, 0xb5, 0x02, 0x75, 0x15, 0xc6, 0x86, 0x74, 0x02, 0x00, 0x8a, 0x4e, 0x06, 0x80, 0xf9, - 0x42, 0x74, 0x08, 0xb8, 0x02, 0x00, 0xe8, 0xd8, 0xca, 0xeb, 0x41, 0xeb, 0x39, 0xeb, 0x31, 0xa9, - 0x04, 0x00, 0x74, 0x2c, 0xc6, 0x86, 0x74, 0x02, 0x01, 0x8a, 0x4e, 0x06, 0x80, 0xf9, 0x4a, 0x75, - 0x1d, 0xc6, 0x46, 0x07, 0x42, 0xc6, 0x46, 0x06, 0x42, 0xe8, 0x8a, 0xbe, 0xbe, 0x79, 0x4c, 0xe8, - 0xc4, 0xb8, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x44, 0x00, 0x32, 0xfe, 0xeb, 0x08, 0xeb, 0x06, - 0xc7, 0x86, 0xb5, 0x02, 0x02, 0x00, 0xbe, 0xc7, 0x4c, 0xe8, 0xaa, 0xb8, 0xc3, 0x90, 0xf7, 0x86, - 0xf6, 0x00, 0x00, 0x10, 0x74, 0x26, 0x80, 0x8e, 0xfe, 0x00, 0x00, 0x74, 0x1f, 0xfe, 0x8e, 0xfe, - 0x00, 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xc6, 0x86, 0x6f, 0x02, 0x01, 0xe8, 0xc8, 0xba, 0xbe, 0x61, - 0x4c, 0xe8, 0x82, 0xb8, 0xbe, 0x67, 0x4c, 0xe8, 0x7c, 0xb8, 0xeb, 0x06, 0xb8, 0x01, 0x00, 0xe8, - 0x5f, 0xca, 0xc3, 0x90, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x10, 0x74, 0x32, 0x80, 0x8e, 0xfe, 0x00, - 0x00, 0x74, 0x2b, 0xfe, 0x8e, 0xfe, 0x00, 0xbe, 0x79, 0x4c, 0xe8, 0x59, 0xb8, 0xb0, 0x02, 0xe8, - 0xab, 0xbc, 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xc6, 0x86, 0x6f, 0x02, 0x01, 0xe8, 0x87, 0xba, 0x8e, - 0x46, 0x02, 0x26, 0x81, 0x0e, 0x40, 0x00, 0x00, 0x1e, 0xe8, 0xfa, 0xbd, 0xeb, 0x03, 0xe8, 0x20, - 0xca, 0xc3, 0xf6, 0x86, 0x95, 0x02, 0x01, 0x74, 0x07, 0xa8, 0x24, 0x74, 0x03, 0xe8, 0xb0, 0xcb, - 0xf6, 0x86, 0xae, 0x02, 0x01, 0x74, 0x09, 0x80, 0xbe, 0x62, 0x02, 0x01, 0x75, 0x58, 0xeb, 0x09, - 0xf6, 0x86, 0x72, 0x02, 0x01, 0x75, 0x10, 0xeb, 0x52, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x02, 0xeb, - 0x45, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x3f, 0xa8, 0x01, 0x74, 0x05, 0x83, 0x8e, 0xe6, 0x02, 0x10, - 0xa8, 0x04, 0x74, 0x05, 0x83, 0x8e, 0xe6, 0x02, 0x04, 0xa8, 0x08, 0x74, 0x05, 0x83, 0x8e, 0xe6, - 0x02, 0x40, 0xa8, 0x20, 0x74, 0x10, 0x81, 0x8e, 0xe6, 0x02, 0x00, 0x01, 0xf6, 0x86, 0x58, 0x02, - 0x01, 0x75, 0x03, 0xe8, 0xaa, 0xbc, 0xa8, 0x40, 0x74, 0x05, 0x83, 0x8e, 0xe6, 0x02, 0x01, 0xa8, - 0x80, 0x74, 0x03, 0xe8, 0x52, 0x00, 0xa9, 0x00, 0x01, 0x75, 0x01, 0xc3, 0x50, 0x80, 0x7e, 0x08, - 0x0a, 0x75, 0x06, 0xc6, 0x46, 0x09, 0x04, 0xeb, 0x1b, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x23, 0xc6, - 0x46, 0x09, 0x02, 0xff, 0x86, 0x44, 0x02, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x06, 0x81, 0x8e, - 0xe6, 0x02, 0x00, 0x02, 0xc6, 0x86, 0x6d, 0x02, 0x01, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x4c, - 0x00, 0x10, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x48, 0x00, 0x00, 0x00, 0x8e, 0x46, 0x02, 0x26, - 0xc7, 0x06, 0x48, 0x00, 0x00, 0x01, 0x58, 0xc3, 0x83, 0x8e, 0xe6, 0x02, 0x20, 0x83, 0x7e, 0x06, - 0x08, 0x75, 0x13, 0x8b, 0x8e, 0xce, 0x02, 0x41, 0x89, 0x8e, 0xce, 0x02, 0x80, 0xf9, 0x02, 0x75, - 0x05, 0x50, 0xe8, 0x84, 0xd5, 0x58, 0xc3, 0x50, 0x53, 0x51, 0x8a, 0x4e, 0x06, 0x80, 0xf9, 0x0e, - 0x74, 0x1e, 0x80, 0xf9, 0x48, 0x74, 0x19, 0x80, 0xbe, 0x58, 0x02, 0x01, 0x74, 0x46, 0x80, 0xf9, - 0x08, 0x72, 0x41, 0x80, 0xf9, 0x0e, 0x77, 0x3c, 0xb8, 0x02, 0x00, 0xe8, 0x13, 0xc9, 0xeb, 0x34, - 0xc7, 0x86, 0x2e, 0x02, 0x05, 0x00, 0xc6, 0x86, 0x65, 0x02, 0x01, 0x8a, 0x46, 0x08, 0x3c, 0x06, - 0x74, 0x26, 0x3c, 0x02, 0x74, 0x51, 0x3c, 0x08, 0x74, 0x1a, 0x3c, 0x04, 0x74, 0x16, 0xf6, 0x86, - 0xac, 0x02, 0x01, 0x75, 0x13, 0xf6, 0x86, 0xad, 0x02, 0x01, 0x75, 0x0c, 0xc6, 0x46, 0x09, 0x04, - 0xff, 0x86, 0x4e, 0x02, 0x59, 0x5b, 0x58, 0xc3, 0x8b, 0x86, 0x0a, 0x02, 0xf6, 0xc4, 0x80, 0x75, - 0x0c, 0x80, 0xcc, 0x80, 0x89, 0x86, 0x0a, 0x02, 0xc6, 0x86, 0x89, 0x02, 0x01, 0x81, 0xbe, 0x0c, - 0x03, 0x00, 0x02, 0x74, 0xdf, 0xc7, 0x86, 0x0c, 0x03, 0x00, 0x02, 0xf6, 0x86, 0xaa, 0x02, 0x01, - 0x74, 0xd2, 0xe8, 0xf9, 0xd3, 0xeb, 0xcd, 0xb8, 0x00, 0x01, 0xe8, 0x9b, 0xd7, 0xf6, 0x86, 0x62, - 0x02, 0x01, 0x74, 0xc0, 0xc6, 0x46, 0x09, 0x04, 0xeb, 0xba, 0xfa, 0xc7, 0x06, 0x30, 0x00, 0xb6, - 0x0e, 0x8c, 0x0e, 0x32, 0x00, 0xb8, 0x00, 0x00, 0xe7, 0x06, 0xb8, 0xea, 0x09, 0xe7, 0x00, 0xb8, - 0x09, 0x00, 0xe7, 0x06, 0xb0, 0x7f, 0xe8, 0x5c, 0xb3, 0xc6, 0x06, 0x82, 0x5e, 0x80, 0xfb, 0xc3, - 0xf7, 0x86, 0x82, 0x01, 0x01, 0x00, 0x74, 0x1a, 0xc7, 0x86, 0x82, 0x01, 0x00, 0x00, 0xf6, 0x86, - 0x6e, 0x01, 0x01, 0x74, 0x0d, 0xc6, 0x86, 0x6e, 0x01, 0x00, 0xbe, 0xd9, 0x4c, 0xe8, 0x18, 0xb7, - 0xeb, 0x00, 0xf7, 0x86, 0x8a, 0x01, 0x01, 0x00, 0x74, 0x45, 0xc7, 0x86, 0x8a, 0x01, 0x00, 0x00, - 0xf6, 0x86, 0x6f, 0x01, 0x01, 0x74, 0x0d, 0xc6, 0x86, 0x6f, 0x01, 0x00, 0xbe, 0xd9, 0x4c, 0xe8, - 0xf6, 0xb6, 0xeb, 0x2b, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x06, 0x80, 0x7e, 0x06, 0x48, 0x75, 0x1f, - 0xf6, 0x86, 0x61, 0x02, 0x01, 0x74, 0x18, 0xf6, 0x86, 0x60, 0x02, 0x01, 0x75, 0x11, 0xc6, 0x86, - 0x60, 0x02, 0x01, 0xc7, 0x86, 0x2e, 0x02, 0x0a, 0x00, 0xb8, 0x0c, 0x00, 0xe8, 0x02, 0xc8, 0xc3, - 0xb9, 0x01, 0x00, 0x33, 0xdb, 0x8b, 0xaf, 0x48, 0x5d, 0x8e, 0x46, 0x02, 0x26, 0x8b, 0x16, 0x54, - 0x00, 0x83, 0xe2, 0x08, 0x26, 0xa1, 0x72, 0x00, 0xd1, 0xe8, 0xd0, 0xe8, 0x86, 0xe0, 0xf7, 0xc2, - 0x08, 0x00, 0x75, 0x02, 0xeb, 0x67, 0x83, 0xbe, 0x74, 0x01, 0x00, 0x75, 0x04, 0x88, 0xa6, 0x78, - 0x01, 0x81, 0xbe, 0x74, 0x01, 0xbc, 0x02, 0x72, 0x06, 0xc7, 0x86, 0x74, 0x01, 0xf4, 0x01, 0x8a, - 0xc4, 0x2a, 0xe4, 0x83, 0xf8, 0x7f, 0x75, 0x12, 0x8b, 0x86, 0x74, 0x01, 0xbe, 0xeb, 0x09, 0xf7, - 0xe6, 0xbe, 0x20, 0x00, 0xf7, 0xf6, 0x03, 0x86, 0x78, 0x01, 0x89, 0x86, 0x7c, 0x01, 0xff, 0x86, - 0x74, 0x01, 0x83, 0xbe, 0x7c, 0x01, 0x7d, 0x72, 0x21, 0x83, 0xbe, 0x88, 0x01, 0x01, 0x74, 0x1a, - 0xc7, 0x86, 0x88, 0x01, 0x01, 0x00, 0xc7, 0x86, 0x8a, 0x01, 0x01, 0x00, 0xa1, 0x32, 0x5d, 0x89, - 0x86, 0x8c, 0x01, 0xa1, 0x34, 0x5d, 0x89, 0x86, 0x8e, 0x01, 0xe9, 0x94, 0x00, 0x83, 0xbe, 0x76, - 0x01, 0x00, 0x75, 0x04, 0x88, 0x86, 0x7a, 0x01, 0x81, 0xbe, 0x76, 0x01, 0xbc, 0x02, 0x72, 0x06, - 0xc7, 0x86, 0x76, 0x01, 0xf4, 0x01, 0x2a, 0xe4, 0x83, 0xf8, 0x7f, 0x75, 0x12, 0x8b, 0x86, 0x76, - 0x01, 0xbe, 0xeb, 0x09, 0xf7, 0xe6, 0xbe, 0x20, 0x00, 0xf7, 0xf6, 0x03, 0x86, 0x7a, 0x01, 0x89, - 0x86, 0x7e, 0x01, 0xff, 0x86, 0x76, 0x01, 0x83, 0xbe, 0x80, 0x01, 0x01, 0x74, 0x53, 0x83, 0xf8, - 0x1f, 0x72, 0x4e, 0x8d, 0xb6, 0x96, 0x01, 0x83, 0x3c, 0x12, 0x72, 0x45, 0x83, 0x3c, 0x23, 0x77, - 0x40, 0x83, 0x7c, 0x02, 0x1f, 0x72, 0x3a, 0x83, 0x7c, 0x02, 0x45, 0x77, 0x34, 0x83, 0x7c, 0x04, - 0x12, 0x72, 0x2e, 0x90, 0x83, 0x7c, 0x04, 0x23, 0x77, 0x27, 0x81, 0x7c, 0x06, 0x9c, 0x00, 0x72, - 0x20, 0xc7, 0x86, 0x80, 0x01, 0x01, 0x00, 0xc7, 0x86, 0x82, 0x01, 0x01, 0x00, 0xc7, 0x86, 0x88, - 0x01, 0x00, 0x00, 0xa1, 0x32, 0x5d, 0x89, 0x86, 0x84, 0x01, 0xa1, 0x34, 0x5d, 0x89, 0x86, 0x86, - 0x01, 0x83, 0xc3, 0x02, 0x49, 0x74, 0x03, 0xe9, 0xdb, 0xfe, 0xc3, 0x50, 0x51, 0x52, 0x56, 0x57, - 0x8e, 0x46, 0x02, 0x83, 0x86, 0x90, 0x01, 0x01, 0x83, 0x96, 0x92, 0x01, 0x00, 0xc7, 0x86, 0x80, - 0x01, 0x00, 0x00, 0x26, 0xa1, 0x72, 0x00, 0xd1, 0xe8, 0xd0, 0xe8, 0x86, 0xe0, 0x8d, 0xb6, 0x96, - 0x01, 0x26, 0x8b, 0x0e, 0x54, 0x00, 0x83, 0xe1, 0x08, 0x89, 0x8e, 0x94, 0x01, 0xf7, 0xc1, 0x08, - 0x00, 0x74, 0x4f, 0x8b, 0x4c, 0x0a, 0x89, 0x4c, 0x0e, 0x8b, 0x4c, 0x06, 0x89, 0x4c, 0x0a, 0x8b, - 0x4c, 0x02, 0x89, 0x4c, 0x06, 0x2a, 0xe4, 0x8b, 0xc8, 0x83, 0xf8, 0x7f, 0x75, 0x19, 0xb0, 0x0a, - 0xe6, 0x10, 0xe5, 0x00, 0xb1, 0x05, 0xd3, 0xe8, 0x03, 0x86, 0x7e, 0x01, 0x8b, 0xc8, 0xe4, 0x10, - 0xa8, 0x10, 0x74, 0x03, 0x83, 0xc1, 0x4f, 0x8b, 0xc1, 0x89, 0x44, 0x02, 0xc7, 0x86, 0x7e, 0x01, - 0x00, 0x00, 0xc7, 0x86, 0x76, 0x01, 0x00, 0x00, 0xeb, 0x7f, 0xc7, 0x86, 0x88, 0x01, 0x00, 0x00, - 0xeb, 0x77, 0x8b, 0x4c, 0x08, 0x89, 0x4c, 0x0c, 0x8b, 0x4c, 0x04, 0x89, 0x4c, 0x08, 0x8b, 0x0c, - 0x89, 0x4c, 0x04, 0x8a, 0xc4, 0x2a, 0xe4, 0x8b, 0xc8, 0x83, 0xf8, 0x7f, 0x75, 0x25, 0xb0, 0x0a, - 0xe6, 0x10, 0xe5, 0x00, 0xb1, 0x05, 0xd3, 0xe8, 0x03, 0x86, 0x7c, 0x01, 0x8b, 0xc8, 0xe4, 0x10, - 0xa8, 0x10, 0x74, 0x03, 0x83, 0xc1, 0x4f, 0x8b, 0x96, 0x7c, 0x01, 0x83, 0xf9, 0x7f, 0x77, 0x03, - 0x83, 0xc1, 0x4f, 0x8b, 0xc1, 0x89, 0x04, 0xc7, 0x86, 0x7c, 0x01, 0x00, 0x00, 0xc7, 0x86, 0x74, - 0x01, 0x00, 0x00, 0x83, 0xf8, 0x7d, 0x72, 0xa2, 0x83, 0xbe, 0x88, 0x01, 0x01, 0x74, 0x1a, 0xc7, - 0x86, 0x88, 0x01, 0x01, 0x00, 0xc7, 0x86, 0x8a, 0x01, 0x01, 0x00, 0xa1, 0x32, 0x5d, 0x89, 0x86, - 0x84, 0x01, 0xa1, 0x34, 0x5d, 0x89, 0x86, 0x86, 0x01, 0x5f, 0x5e, 0x5a, 0x59, 0x58, 0xc3, 0x50, - 0x51, 0x57, 0x06, 0xfa, 0x8c, 0xd8, 0x8e, 0xc0, 0x2b, 0xc0, 0x8d, 0xbe, 0x72, 0x01, 0xb9, 0x1a, - 0x00, 0xf3, 0xab, 0xfb, 0x07, 0x5f, 0x59, 0x58, 0xc3, 0xfa, 0xf6, 0x06, 0x82, 0x5e, 0x80, 0x74, - 0x4e, 0xc6, 0x86, 0x6c, 0x01, 0x00, 0xc6, 0x86, 0x6e, 0x01, 0x01, 0xfe, 0x86, 0x70, 0x01, 0x8a, - 0x46, 0x00, 0xa2, 0x82, 0x5e, 0xc7, 0x06, 0x84, 0x5e, 0x02, 0x00, 0xc7, 0x06, 0x86, 0x5e, 0x01, - 0x00, 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, 0x8b, 0xc8, 0xb8, 0xd6, 0x13, 0xe7, 0x02, 0xb8, - 0x4e, 0x03, 0xe7, 0x04, 0x83, 0xc9, 0x46, 0x8b, 0xc1, 0xe7, 0x06, 0x8e, 0x46, 0x02, 0x26, 0x83, - 0x0e, 0x42, 0x00, 0x01, 0xbe, 0xd9, 0x4c, 0xe8, 0x7c, 0xb3, 0xc6, 0x86, 0x61, 0x02, 0x01, 0xfb, - 0xc3, 0xfa, 0xf6, 0x06, 0x82, 0x5e, 0x80, 0x74, 0x49, 0xc6, 0x86, 0x6d, 0x01, 0x00, 0xc6, 0x86, - 0x6f, 0x01, 0x01, 0xfe, 0x86, 0x71, 0x01, 0x8a, 0x46, 0x00, 0xa2, 0x82, 0x5e, 0xc7, 0x06, 0x84, - 0x5e, 0x0e, 0x00, 0xc7, 0x06, 0x86, 0x5e, 0x02, 0x00, 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, - 0x8b, 0xc8, 0xb8, 0xf7, 0x03, 0xe7, 0x02, 0xb8, 0xd6, 0x13, 0xe7, 0x04, 0x83, 0xc9, 0x46, 0x8b, - 0xc1, 0xe7, 0x06, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x42, 0x00, 0x01, 0xbe, 0xd9, 0x4c, 0xe8, - 0x24, 0xb3, 0xfb, 0xc3, 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, 0xc3, 0xb8, 0x9d, 0x06, 0xe7, - 0x02, 0xc7, 0x06, 0x84, 0x5e, 0x04, 0x00, 0xc3, 0xc7, 0x06, 0x84, 0x5e, 0x06, 0x00, 0xc3, 0x90, - 0xc7, 0x06, 0x84, 0x5e, 0x08, 0x00, 0xc3, 0x90, 0x53, 0xc7, 0x06, 0x84, 0x5e, 0x0a, 0x00, 0x33, - 0xdb, 0x8a, 0x1e, 0x82, 0x5e, 0xd0, 0xe3, 0x8b, 0x9f, 0x48, 0x5d, 0x06, 0x8e, 0x47, 0x02, 0x26, - 0x83, 0x26, 0x42, 0x00, 0xfe, 0x07, 0xb8, 0x9d, 0x06, 0xe7, 0x02, 0x5b, 0xc3, 0x90, 0xe5, 0x06, - 0x83, 0xe0, 0x09, 0xe7, 0x06, 0xc7, 0x06, 0x84, 0x5e, 0x0c, 0x00, 0xc6, 0x06, 0x82, 0x5e, 0x80, - 0xc3, 0x90, 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, 0xc3, 0xb8, 0xf7, 0x03, 0xe7, 0x02, 0xc7, - 0x06, 0x84, 0x5e, 0x10, 0x00, 0xc3, 0x53, 0xc7, 0x06, 0x84, 0x5e, 0x12, 0x00, 0x33, 0xdb, 0x8a, - 0x1e, 0x82, 0x5e, 0xd0, 0xe3, 0x8b, 0x9f, 0x48, 0x5d, 0x06, 0x8e, 0x47, 0x02, 0x26, 0x83, 0x26, - 0x42, 0x00, 0xfe, 0x07, 0xb8, 0x9d, 0x06, 0xe7, 0x02, 0x5b, 0xc3, 0x90, 0xe5, 0x06, 0x83, 0xe0, - 0x09, 0xe7, 0x06, 0xc7, 0x06, 0x84, 0x5e, 0x14, 0x00, 0xc6, 0x06, 0x82, 0x5e, 0x80, 0xc3, 0x90, - 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, 0xc3, 0x4e, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, - 0x78, 0x74, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x12, 0x45, 0x23, - 0x56, 0x34, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xab, 0xde, 0xbc, 0xef, 0xcd, 0x00, 0x00, 0x00, 0x00, - 0x4e, 0x6f, 0x74, 0x49, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x00, 0x54, - 0x69, 0x6d, 0x65, 0x72, 0x30, 0x00, 0x00, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x31, 0x00, 0x00, 0x54, - 0x65, 0x73, 0x74, 0x31, 0x00, 0x00, 0x54, 0x65, 0x73, 0x74, 0x32, 0x00, 0x00, 0x90, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x5d, - 0x97, 0x55, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x09, 0x00, 0x00, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, - 0xe0, 0x02, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, - 0x00, 0x02, 0x04, 0x01, 0x00, 0x00, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x03, 0xc0, 0x00, 0xff, 0xff, - 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x03, 0x06, 0x0b, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, - 0xe0, 0x04, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, - 0x00, 0x04, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x05, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x05, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x06, 0xc0, 0x00, - 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x06, 0x06, 0x0b, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x12, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x08, 0x02, 0x26, 0x00, 0x00, - 0x00, 0x00, 0x14, 0x00, 0xe0, 0x08, 0xc0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x00, 0x08, 0x1c, 0x26, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xe0, 0x00, - 0xc0, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x50, 0x20, - 0x0c, 0x23, 0x30, 0x30, 0x30, 0x30, 0xf3, 0xf0, 0xf0, 0xf8, 0xf9, 0xf6, 0x08, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x14, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x21, 0x00, 0x00, 0x04, 0x21, 0x00, 0x00, - 0x06, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x06, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x08, 0x28, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x29, 0x20, 0x00, 0x08, 0x00, 0x01, 0x00, 0x04, 0x06, 0x00, 0x00, - 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x40, 0x25, 0x06, 0x0b, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x22, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x12, 0x40, 0x26, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x60, 0x27, 0x08, 0x0a, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x60, 0x28, 0x04, 0x30, 0x00, 0x00, - 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1e, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x30, 0x11, 0x04, 0x0c, 0x00, 0x01, 0x04, 0x0e, 0x00, 0x02, 0x04, 0x21, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x03, 0x12, 0x04, 0x0f, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x12, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x30, 0x13, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0xe0, 0x00, 0xc0, 0x00, - 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x03, 0x14, 0x04, 0x0d, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x15, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, - 0xe0, 0x08, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0xe0, 0x07, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x30, 0x17, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, - 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, - 0x60, 0x29, 0x08, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x2e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x2a, 0x00, 0x00, 0x02, 0x20, 0x80, 0x00, 0x00, 0x06, 0x09, 0x00, 0x00, 0x00, 0x04, 0x03, - 0x01, 0x80, 0x00, 0x00, 0x04, 0x02, 0x80, 0x00, 0x00, 0x08, 0x0b, 0x00, 0x00, 0x00, 0x06, 0x02, - 0x02, 0x80, 0x00, 0x00, 0x08, 0x0b, 0x00, 0x00, 0x00, 0x06, 0x01, 0x26, 0x80, 0x00, 0x00, 0xff, - 0x06, 0x03, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x06, 0x05, 0x00, 0x00, 0x00, 0x04, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0x00, 0x04, 0x04, - 0x03, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x06, 0x05, 0x00, 0x00, 0x00, 0x04, 0x09, - 0x00, 0x00, 0x00, 0x04, 0x03, 0x0c, 0x80, 0x00, 0x00, 0x04, 0x0e, 0x80, 0x00, 0x00, 0x04, 0x21, - 0x00, 0x00, 0x00, 0x04, 0x01, 0x0f, 0x80, 0x00, 0x00, 0x04, 0x01, 0x0d, 0x80, 0x00, 0x00, 0x04, - 0x04, 0x02, 0x80, 0x00, 0x00, 0x08, 0x22, 0x00, 0x00, 0x00, 0xff, 0x23, 0x00, 0x00, 0x00, 0xff, - 0x21, 0x00, 0x00, 0x00, 0x04, 0x01, 0x09, 0x00, 0x00, 0x00, 0x04, 0x00, 0xa5, 0xa5, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - -#endif /* OLTR_NO_BULLSEYE_MAC */ diff --git a/sys/contrib/dev/oltr/trlldhm.c b/sys/contrib/dev/oltr/trlldhm.c deleted file mode 100644 index 633eea215421..000000000000 --- a/sys/contrib/dev/oltr/trlldhm.c +++ /dev/null @@ -1,1899 +0,0 @@ -/* - ****************************** trlld.h *********************************** - * - * Copyright (c) 1997 - * OLICOM A/S - * Denmark - * - * All Rights Reserved - * - * This source file is subject to the terms and conditions of the - * OLICOM Software License Agreement which restricts the manner - * in which it may be used. - * - *--------------------------------------------------------------------------- - * - * Description: Olicom Hawkeye adapter micro-code - * - *--------------------------------------------------------------------------- - */ - -#include "opt_oltr.h" - -#ifndef OLTR_NO_HAWKEYE_MAC - -unsigned char TRlldHawkeyeMac[] = { 0x52, 0x94, 0x03, 0x00, 0x02, 0x75, 0xfb, 0xbb, 0x4f, 0x43, 0x53, 0x4d, 0x41, 0x43, 0x2e, 0x48, - 0x41, 0x57, 0x4b, 0x45, 0x59, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xea, 0x55, 0x00, 0x00, 0x00, 0xfc, 0xfa, 0xb8, 0x00, 0x00, 0xbb, 0x00, - 0x00, 0xb9, 0x00, 0x00, 0xba, 0x00, 0x00, 0xbe, 0x00, 0x00, 0xbf, 0x00, 0x00, 0xbd, 0x00, 0x00, - 0x8c, 0xc8, 0x8e, 0xd8, 0x8e, 0xc0, 0x8e, 0xd0, 0xb8, 0x1c, 0x56, 0x8b, 0xe0, 0x83, 0x3e, 0x4e, - 0x00, 0x00, 0x75, 0x1c, 0x2b, 0xdb, 0x8b, 0xf3, 0xad, 0x8b, 0xd8, 0x8b, 0xc8, 0xd1, 0xe9, 0x49, - 0x49, 0xad, 0x03, 0xd8, 0xe2, 0xfb, 0x0b, 0xdb, 0x74, 0x06, 0xc7, 0x06, 0xee, 0x54, 0x01, 0x00, - 0xc7, 0x06, 0x0c, 0x00, 0xa8, 0x01, 0x8c, 0x0e, 0x0e, 0x00, 0xc7, 0x06, 0x04, 0x00, 0xa8, 0x01, - 0x8c, 0x0e, 0x06, 0x00, 0xc7, 0x06, 0x14, 0x00, 0xa8, 0x01, 0x8c, 0x0e, 0x14, 0x00, 0xc7, 0x06, - 0x08, 0x00, 0xa8, 0x01, 0x8c, 0x0e, 0x08, 0x00, 0x90, 0x90, 0x90, 0xc7, 0x06, 0x20, 0x00, 0x6e, - 0x1f, 0x8c, 0x0e, 0x22, 0x00, 0x2b, 0xc0, 0xe7, 0x06, 0xc7, 0x06, 0x30, 0x00, 0x20, 0x0e, 0x8c, - 0x0e, 0x32, 0x00, 0xc7, 0x06, 0x34, 0x00, 0x32, 0x0f, 0x8c, 0x0e, 0x36, 0x00, 0xc7, 0x06, 0x38, - 0x00, 0x64, 0x0f, 0x8c, 0x0e, 0x3a, 0x00, 0xc7, 0x06, 0x3c, 0x00, 0xa8, 0x01, 0x8c, 0x0e, 0x3e, - 0x00, 0xc7, 0x06, 0x08, 0x00, 0xa8, 0x01, 0x8c, 0x0e, 0x0a, 0x00, 0xc7, 0x06, 0x14, 0x00, 0xa8, - 0x01, 0x8c, 0x0e, 0x16, 0x00, 0xbb, 0x40, 0x60, 0x8e, 0xc3, 0x26, 0xa1, 0x02, 0x00, 0x25, 0x00, - 0x50, 0x89, 0x86, 0x0f, 0x01, 0x26, 0x83, 0x0e, 0x72, 0x00, 0x08, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, - 0xc0, 0x2b, 0xc0, 0x26, 0x83, 0x26, 0x72, 0x00, 0xf7, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, - 0xc0, 0x26, 0x83, 0x0e, 0x72, 0x00, 0x08, 0x2a, 0xe4, 0xb0, 0x13, 0xe6, 0x10, 0x90, 0x90, 0x90, - 0xb0, 0x08, 0xe6, 0x12, 0x90, 0x90, 0x90, 0xb0, 0x09, 0xe6, 0x12, 0x90, 0x90, 0x90, 0xb0, 0xff, - 0xe6, 0x12, 0x90, 0x90, 0x90, 0x26, 0x83, 0x26, 0x72, 0x00, 0xf7, 0x8b, 0x86, 0x0f, 0x01, 0x26, - 0xa3, 0x02, 0x00, 0x90, 0x90, 0x90, 0x33, 0xc0, 0x26, 0xc7, 0x06, 0x04, 0x00, 0xff, 0xff, 0x26, - 0xc7, 0x06, 0x06, 0x00, 0xff, 0xff, 0x26, 0x09, 0x06, 0x08, 0x00, 0x26, 0x09, 0x06, 0x0a, 0x00, - 0xb8, 0x00, 0x00, 0xe7, 0x06, 0xb8, 0x0f, 0x27, 0xe7, 0x00, 0xb8, 0x09, 0x00, 0xe7, 0x06, 0xb0, - 0x11, 0xe8, 0xae, 0x0a, 0xe8, 0xeb, 0x0a, 0xfb, 0xe9, 0x94, 0x0b, 0x90, 0x50, 0xb0, 0xa0, 0xe6, - 0x10, 0x58, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0xe7, 0xe7, 0xe7, 0x31, 0x36, - 0x31, 0x32, 0x39, 0x38, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, - 0x63, 0x29, 0x20, 0x31, 0x39, 0x39, 0x37, 0x2c, 0x20, 0x31, 0x39, 0x39, 0x38, 0x20, 0x4f, 0x6c, - 0x69, 0x63, 0x6f, 0x6d, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, - 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x20, 0xf8, 0x1c, 0xf8, 0x1c, 0x2e, 0x32, - 0x14, 0x35, 0x10, 0x37, 0x56, 0x38, 0x98, 0x39, 0xe0, 0x3c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, - 0x49, 0x3b, 0x9f, 0x3b, 0x30, 0x3c, 0xad, 0x3c, 0xb2, 0x3c, 0xb7, 0x3c, 0xf8, 0x1c, 0xf8, 0x1c, - 0xf8, 0x1c, 0xf8, 0x1c, 0xf3, 0x34, 0xf8, 0x1c, 0xf8, 0x1c, 0xc3, 0x33, 0x1c, 0x34, 0x1c, 0x34, - 0xb0, 0x34, 0x1c, 0x34, 0xd8, 0x34, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0x49, 0x3b, 0x9f, 0x3b, - 0x30, 0x3c, 0xad, 0x3c, 0xb2, 0x3c, 0xb7, 0x3c, 0xf8, 0x1c, 0x2f, 0x34, 0xf8, 0x1c, 0x78, 0x34, - 0xf8, 0x1c, 0x7f, 0x2f, 0x7f, 0x2f, 0x7f, 0x2f, 0x7f, 0x2f, 0x49, 0x30, 0x75, 0x31, 0x7f, 0x2f, - 0x5b, 0x30, 0x07, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, - 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, - 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, - 0xc7, 0x31, 0xb3, 0x30, 0x7f, 0x2f, 0x7f, 0x2f, 0x7f, 0x2f, 0x7f, 0x2f, 0x7f, 0x2f, 0xe6, 0x30, - 0x7f, 0x2f, 0x7f, 0x2f, 0xf8, 0x30, 0x7f, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x04, 0x04, 0x05, 0xff, 0xff, 0xff, 0x00, 0x03, 0x00, 0x03, 0x03, 0xb7, 0x05, - 0xff, 0xff, 0xc2, 0x05, 0xd2, 0x05, 0xd2, 0x05, 0xd2, 0x05, 0xd2, 0x05, 0x00, 0x00, 0xdd, 0x05, - 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xe3, 0x05, 0x02, 0x06, 0x48, 0x06, 0x48, 0x06, 0x48, 0x06, - 0x17, 0x06, 0x27, 0x06, 0x00, 0x00, 0x2d, 0x06, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xf8, 0x1c, 0x68, 0x3d, 0xde, 0x14, 0x34, 0x2f, 0x1b, 0x23, 0xac, 0x43, 0xf8, 0x1c, 0xa2, 0x3d, - 0x2e, 0x41, 0xab, 0x3f, 0xc4, 0x3d, 0x49, 0x3f, 0xef, 0x40, 0x12, 0x3f, 0xa7, 0x40, 0xb5, 0x41, - 0x1d, 0x42, 0xec, 0x41, 0xce, 0x40, 0x2a, 0x42, 0x4f, 0x42, 0x7a, 0x42, 0x0d, 0x42, 0x98, 0x42, - 0x0a, 0x03, 0x30, 0x03, 0x50, 0x03, 0x7c, 0x03, 0xa2, 0x03, 0x00, 0x04, 0x66, 0x04, 0xa0, 0x04, - 0xea, 0x04, 0xac, 0x05, 0xe4, 0x01, 0x04, 0x03, 0x2a, 0x03, 0x58, 0x03, 0x76, 0x03, 0x9c, 0x03, - 0x60, 0x04, 0x9a, 0x04, 0xe4, 0x04, 0xa6, 0x05, 0xe0, 0x01, 0x08, 0x04, 0x6e, 0x04, 0xf4, 0x02, - 0x1e, 0x03, 0x44, 0x03, 0x6a, 0x03, 0x90, 0x03, 0xb6, 0x03, 0xb0, 0x03, 0xce, 0x03, 0x72, 0x05, - 0xe8, 0x03, 0x54, 0x04, 0x8e, 0x04, 0xb4, 0x04, 0xd4, 0x04, 0x8a, 0x05, 0xfe, 0x04, 0x22, 0x05, - 0x3e, 0x05, 0x56, 0x05, 0xbe, 0x53, 0xc6, 0x53, 0xd2, 0x53, 0xda, 0x53, 0xe2, 0x53, 0x08, 0x54, - 0x1c, 0x54, 0x24, 0x54, 0x30, 0x54, 0x56, 0x54, 0x6a, 0x54, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, - 0xf6, 0xf7, 0xf8, 0xf9, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xec, 0x19, 0x50, 0x1a, 0x74, 0x1a, - 0xe4, 0x1a, 0x06, 0x1b, 0x9e, 0x1b, 0xfc, 0x1b, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, - 0x20, 0x1c, 0x42, 0x1c, 0x98, 0x1c, 0xbc, 0x1c, 0xf0, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0x7c, 0x14, - 0xa0, 0x15, 0x24, 0x16, 0x26, 0x16, 0x42, 0x16, 0x68, 0x16, 0x84, 0x16, 0x0e, 0x17, 0x8c, 0x17, - 0x3e, 0x18, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xd6, 0x1d, 0xf8, 0x1c, 0xf8, 0x1c, - 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, - 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0x7a, 0x18, - 0xb8, 0x18, 0x2e, 0x19, 0x74, 0x19, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, - 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xaa, 0x55, 0x00, 0xff, 0xf6, 0x46, - 0x01, 0x01, 0x75, 0x6a, 0xc6, 0x86, 0x0e, 0x01, 0x05, 0xe8, 0x90, 0x01, 0xe8, 0x50, 0x06, 0xe8, - 0xfc, 0x02, 0xe8, 0x56, 0x03, 0x73, 0x3a, 0xfe, 0x8e, 0x0e, 0x01, 0x74, 0x2e, 0x26, 0x83, 0x0e, - 0x72, 0x00, 0x08, 0x2b, 0xc0, 0x2b, 0xc0, 0x26, 0x83, 0x26, 0x72, 0x00, 0xf7, 0x2b, 0xc0, 0x2b, - 0xc0, 0x26, 0x83, 0x0e, 0x72, 0x00, 0x08, 0x2b, 0xc0, 0x2b, 0xc0, 0x26, 0x83, 0x26, 0x72, 0x00, - 0xf7, 0x8b, 0x86, 0x0f, 0x01, 0x26, 0xa3, 0x02, 0x00, 0xeb, 0xbe, 0xc7, 0x06, 0xee, 0x54, 0x02, - 0x00, 0x32, 0xe4, 0x8a, 0x46, 0x00, 0xe8, 0xf6, 0x03, 0x83, 0x3e, 0x4e, 0x00, 0x02, 0x72, 0x03, - 0xe8, 0x3a, 0x03, 0xa1, 0xee, 0x54, 0xe8, 0x36, 0x3c, 0xc6, 0x46, 0x01, 0x01, 0x90, 0xf6, 0x06, - 0x1e, 0x56, 0x01, 0x74, 0x27, 0xf6, 0x86, 0x6c, 0x01, 0x01, 0x74, 0x03, 0xe8, 0x98, 0x4c, 0xf6, - 0x86, 0x6d, 0x01, 0x01, 0x74, 0x03, 0xe8, 0xe6, 0x4c, 0xf7, 0x86, 0x82, 0x01, 0x01, 0x00, 0x75, - 0x08, 0xf7, 0x86, 0x8a, 0x01, 0x01, 0x00, 0x74, 0x03, 0xe8, 0xc2, 0x49, 0xe8, 0x7b, 0x05, 0xe8, - 0x47, 0x05, 0xe8, 0xbf, 0x04, 0xe8, 0x64, 0x04, 0xf6, 0x86, 0x90, 0x02, 0x01, 0x74, 0x03, 0xe8, - 0xd4, 0x17, 0x33, 0xdb, 0xf6, 0x86, 0xa9, 0x02, 0x01, 0x74, 0x16, 0x8a, 0x5e, 0x09, 0x8a, 0x7e, - 0x08, 0x38, 0xfb, 0x75, 0x30, 0x80, 0xfb, 0x00, 0x74, 0x07, 0x80, 0xfb, 0x1e, 0x74, 0x02, 0xeb, - 0x22, 0x80, 0x7e, 0x06, 0x1e, 0x74, 0x1e, 0x33, 0xdb, 0x8a, 0x5e, 0x07, 0x3a, 0x5e, 0x06, 0x74, - 0x14, 0xfa, 0x50, 0x8b, 0x46, 0x06, 0x89, 0x46, 0x0c, 0x58, 0x88, 0x5e, 0x06, 0x32, 0xff, 0xff, - 0x97, 0x98, 0x05, 0xeb, 0x2d, 0x8a, 0x5e, 0x09, 0x3a, 0x5e, 0x08, 0x74, 0x25, 0x50, 0x8b, 0x46, - 0x08, 0x89, 0x46, 0x0e, 0x58, 0x80, 0xfb, 0x1e, 0x74, 0x0d, 0x80, 0xfb, 0x00, 0x74, 0x08, 0x80, - 0xfb, 0x16, 0x74, 0x03, 0xe8, 0xfc, 0x26, 0x88, 0x5e, 0x08, 0x32, 0xff, 0xfa, 0xff, 0x97, 0x76, - 0x05, 0xfb, 0xfa, 0xf7, 0x86, 0xf0, 0x00, 0xff, 0xff, 0x74, 0x0f, 0x8b, 0xb6, 0xf0, 0x00, 0x8b, - 0x4c, 0x04, 0xe8, 0x0b, 0x0a, 0xfb, 0xff, 0xd1, 0xeb, 0x5c, 0xfb, 0xf7, 0x46, 0x16, 0xff, 0xff, - 0x74, 0x27, 0x8d, 0x7e, 0x16, 0xe8, 0x88, 0x06, 0x56, 0x8b, 0x5c, 0x02, 0xd1, 0xe3, 0xff, 0x97, - 0xcc, 0x04, 0x5e, 0xe8, 0x8c, 0x06, 0xf7, 0x86, 0xc8, 0x01, 0x01, 0x00, 0x74, 0x09, 0xe8, 0x33, - 0x21, 0xc7, 0x86, 0xc8, 0x01, 0x00, 0x00, 0xeb, 0x2d, 0xfa, 0xf7, 0x86, 0x0a, 0x01, 0x01, 0x00, - 0x75, 0x13, 0xf6, 0x86, 0x6c, 0x15, 0x80, 0x75, 0x0c, 0xc7, 0x86, 0x0a, 0x01, 0x01, 0x00, 0xfb, - 0xe8, 0xe9, 0x35, 0xeb, 0x11, 0xfa, 0x8b, 0x86, 0x63, 0x02, 0x38, 0xc4, 0x74, 0x07, 0x88, 0x86, - 0x64, 0x02, 0xe8, 0x4c, 0x16, 0xfb, 0xe8, 0xf1, 0x05, 0xe9, 0xd2, 0xfe, 0x8e, 0x46, 0x02, 0x26, - 0xc7, 0x06, 0x04, 0x00, 0xff, 0xcb, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x08, 0x00, 0xff, 0xfb, - 0xe8, 0x53, 0x02, 0x33, 0xc0, 0x88, 0x86, 0xb8, 0x01, 0x88, 0x86, 0xb9, 0x01, 0x8e, 0x46, 0x02, - 0x26, 0xa2, 0x1a, 0x00, 0x89, 0x86, 0x14, 0x02, 0x89, 0x86, 0x06, 0x02, 0x89, 0x86, 0x36, 0x02, - 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x0c, 0x00, 0x30, 0x01, 0x8d, 0x86, 0x52, 0x08, 0x89, 0x86, - 0xbc, 0x01, 0x89, 0x86, 0xbe, 0x01, 0xc7, 0x86, 0xc0, 0x01, 0x01, 0x00, 0x8c, 0xd8, 0x8e, 0xc0, - 0x33, 0xc0, 0x8d, 0xbe, 0x54, 0x02, 0xb9, 0x51, 0x00, 0xd1, 0xe9, 0xf3, 0xab, 0xd1, 0xd1, 0xf3, - 0xaa, 0x8d, 0xbe, 0x96, 0x05, 0xab, 0xab, 0xaa, 0x8d, 0xbe, 0x9e, 0x05, 0xab, 0xab, 0xaa, 0x8d, - 0xbe, 0xae, 0x02, 0xb9, 0x0b, 0x00, 0xf3, 0xab, 0xc7, 0x86, 0xc4, 0x01, 0x14, 0x00, 0xc7, 0x86, - 0xb6, 0x02, 0x04, 0x00, 0xbb, 0xfc, 0x04, 0xb9, 0x0b, 0x00, 0x8b, 0x3f, 0x03, 0xfd, 0xab, 0xab, - 0xab, 0x43, 0x43, 0xe2, 0xf5, 0xbb, 0x12, 0x05, 0xb9, 0x0a, 0x00, 0x8b, 0x3f, 0x03, 0xfd, 0xab, - 0xab, 0x43, 0x43, 0xe2, 0xf6, 0xb8, 0x02, 0x00, 0x03, 0x06, 0xc8, 0x54, 0xe8, 0x3d, 0x05, 0x39, - 0x06, 0xc8, 0x54, 0x75, 0xf7, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x0c, 0x00, 0x02, 0xc7, 0x86, - 0x08, 0x02, 0xc8, 0x00, 0xc7, 0x86, 0xf8, 0x01, 0xff, 0xff, 0xc7, 0x86, 0xf6, 0x01, 0x07, 0x00, - 0xc6, 0x86, 0x87, 0x02, 0x00, 0xe8, 0x01, 0x00, 0xc3, 0x8e, 0x46, 0x02, 0x33, 0xc0, 0x89, 0x86, - 0xb6, 0x01, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x10, 0x00, 0x8b, 0x86, 0x52, 0x15, 0x26, 0xa3, 0x30, - 0x00, 0x89, 0x86, 0xb2, 0x01, 0xc1, 0xe8, 0x08, 0x26, 0xa3, 0x34, 0x00, 0x8b, 0x86, 0x54, 0x15, - 0x26, 0xa3, 0x38, 0x00, 0xc1, 0xe8, 0x08, 0x26, 0xa3, 0x36, 0x00, 0x33, 0xc0, 0xc6, 0x86, 0x83, - 0x02, 0x01, 0x8d, 0xb6, 0x52, 0x09, 0xc7, 0x86, 0xa6, 0x01, 0x5a, 0x09, 0x01, 0xae, 0xa6, 0x01, - 0x89, 0xb6, 0xa8, 0x01, 0x89, 0xb6, 0xaa, 0x01, 0xc7, 0x04, 0x30, 0x80, 0xc7, 0x44, 0x04, 0x00, - 0x00, 0xc6, 0x86, 0x86, 0x02, 0x01, 0xe8, 0x01, 0x09, 0xb8, 0x00, 0x40, 0xf7, 0x86, 0xf6, 0x00, - 0x00, 0x01, 0x74, 0x13, 0x25, 0xff, 0x1f, 0x0d, 0x00, 0xa0, 0x83, 0xe0, 0xfd, 0x8e, 0x46, 0x02, - 0x26, 0x81, 0x0e, 0x0c, 0x00, 0x80, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x00, 0x00, 0xa1, 0xc8, - 0x54, 0x83, 0xc0, 0x02, 0xe8, 0x85, 0x04, 0x39, 0x06, 0xc8, 0x54, 0x75, 0xf7, 0xc3, 0x8e, 0x46, - 0x02, 0x26, 0xc7, 0x06, 0x00, 0x00, 0x08, 0xbe, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x02, 0x00, - 0xc8, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x0c, 0x00, 0xa0, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xc7, - 0x06, 0x10, 0x00, 0x04, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x00, 0x00, 0x7f, 0xff, 0x90, - 0x90, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x00, 0x00, 0x80, 0x00, 0x90, 0x90, 0x8e, 0x46, 0x02, - 0x26, 0x81, 0x26, 0x00, 0x00, 0x7f, 0xff, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x28, 0x00, 0x18, - 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x0c, 0x00, 0x01, 0xc3, 0xc6, 0x86, 0x0c, 0x01, 0x01, - 0xc6, 0x86, 0x0d, 0x01, 0x00, 0xe8, 0xda, 0x22, 0xa1, 0xc8, 0x54, 0x83, 0xc0, 0x02, 0x0b, 0xc0, - 0x0b, 0xc0, 0x0b, 0xc0, 0x0b, 0xc0, 0x39, 0x06, 0xc8, 0x54, 0x72, 0xf2, 0x80, 0xbe, 0x0d, 0x01, - 0x01, 0x74, 0x03, 0xf9, 0xeb, 0x01, 0xf8, 0xc6, 0x86, 0x0c, 0x01, 0x00, 0xc3, 0xb8, 0x00, 0x00, - 0x88, 0x86, 0x06, 0x01, 0x88, 0x86, 0x07, 0x01, 0x88, 0x86, 0x08, 0x01, 0x88, 0x86, 0x09, 0x01, - 0x89, 0x86, 0x0a, 0x01, 0x88, 0x86, 0xb8, 0x01, 0x88, 0x86, 0xb9, 0x01, 0x88, 0x86, 0xcd, 0x01, - 0xa2, 0x1e, 0x56, 0xc3, 0x50, 0x53, 0x52, 0xc6, 0x46, 0x01, 0x00, 0x32, 0xe4, 0x8a, 0x46, 0x00, - 0xbb, 0x00, 0xfd, 0xbb, 0x00, 0xee, 0x83, 0x3e, 0xec, 0x54, 0x20, 0x75, 0x03, 0xbb, 0x00, 0x7d, - 0x81, 0xeb, 0x00, 0x75, 0x81, 0xe3, 0x00, 0xff, 0x89, 0x9e, 0x56, 0x15, 0x81, 0xc3, 0x00, 0x01, - 0xf7, 0xe3, 0x05, 0x00, 0x75, 0x89, 0x86, 0x52, 0x15, 0x03, 0x86, 0x56, 0x15, 0x48, 0x89, 0x86, - 0x54, 0x15, 0x5a, 0x5b, 0x58, 0xc3, 0x51, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, 0xfc, - 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x14, 0x00, 0x80, 0x00, 0x75, 0x1e, 0xb9, 0xf4, 0x01, 0x8e, - 0x46, 0x02, 0x26, 0x81, 0x0e, 0x0c, 0x00, 0x00, 0x08, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x14, - 0x00, 0x80, 0x00, 0x75, 0x05, 0xe8, 0x54, 0x03, 0xe2, 0xe5, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, - 0x0c, 0x00, 0xff, 0xf7, 0x59, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x0c, 0x00, 0x02, 0xc3, 0x50, - 0x53, 0xc1, 0xe0, 0x05, 0x05, 0x00, 0x03, 0x8b, 0xd8, 0x8d, 0x86, 0x00, 0x01, 0x89, 0x07, 0x8d, - 0x86, 0xd0, 0x01, 0x89, 0x47, 0x02, 0x8d, 0x86, 0xe0, 0x01, 0x89, 0x47, 0x04, 0x8d, 0x86, 0x58, - 0x15, 0x89, 0x47, 0x08, 0x8d, 0x86, 0x6c, 0x15, 0x89, 0x47, 0x06, 0x8d, 0x86, 0xbc, 0x01, 0x89, - 0x47, 0x0a, 0xc7, 0x47, 0x0c, 0x30, 0x56, 0x8d, 0x86, 0x3c, 0x02, 0x89, 0x47, 0x0e, 0x8d, 0x06, - 0xc8, 0x54, 0x89, 0x47, 0x10, 0xc7, 0x47, 0x14, 0x00, 0x00, 0xc7, 0x47, 0x16, 0x00, 0x00, 0x8d, - 0x86, 0xec, 0x15, 0x89, 0x47, 0x18, 0x5b, 0x58, 0xc3, 0x8e, 0x46, 0x02, 0x80, 0xbe, 0x2d, 0x01, - 0x01, 0x75, 0x40, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x10, 0x00, 0xfb, 0x26, 0xa1, 0x38, 0x00, - 0x2d, 0x00, 0x02, 0x3b, 0x86, 0x52, 0x15, 0x73, 0x0c, 0x8b, 0xd8, 0x2b, 0x9e, 0x52, 0x15, 0x8b, - 0x86, 0x54, 0x15, 0x2b, 0xc3, 0x26, 0xa3, 0x6c, 0x00, 0x26, 0xa1, 0x12, 0x00, 0x89, 0x86, 0x32, - 0x01, 0x26, 0xc7, 0x06, 0x12, 0x00, 0x00, 0x01, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x10, 0x00, - 0x05, 0xeb, 0x18, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x10, 0x00, 0xfe, 0x8b, 0x86, 0x32, 0x01, - 0x26, 0xa3, 0x12, 0x00, 0xb8, 0xff, 0xff, 0x26, 0xa3, 0x6c, 0x00, 0xc3, 0x50, 0xf7, 0x86, 0xf6, - 0x00, 0x02, 0x00, 0x75, 0x02, 0xeb, 0x4b, 0xf6, 0x86, 0x60, 0x02, 0x01, 0x75, 0x07, 0xf6, 0x86, - 0x6e, 0x02, 0x01, 0x74, 0x3d, 0xf6, 0x86, 0x85, 0x02, 0x01, 0x74, 0x36, 0xc6, 0x86, 0x85, 0x02, - 0x00, 0x8b, 0x86, 0x06, 0x02, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x40, 0x74, 0x03, 0x25, 0xff, 0xaf, - 0xf7, 0x86, 0x12, 0x01, 0x00, 0x20, 0x74, 0x03, 0x25, 0xff, 0xdf, 0x89, 0x86, 0x06, 0x02, 0x3b, - 0x86, 0x36, 0x02, 0x74, 0x0d, 0x89, 0x86, 0x36, 0x02, 0x81, 0xa6, 0x36, 0x02, 0x7f, 0xdf, 0xe8, - 0x42, 0x38, 0x58, 0xc3, 0x57, 0x56, 0x50, 0x8b, 0x86, 0xda, 0x02, 0xa9, 0xff, 0xff, 0x74, 0x40, - 0x8d, 0xbe, 0xd0, 0x02, 0x8d, 0xb6, 0x96, 0x05, 0xb9, 0x0a, 0x00, 0x83, 0xf9, 0x05, 0x75, 0x04, - 0x8d, 0xb6, 0x9e, 0x05, 0xa9, 0x01, 0x00, 0x74, 0x1e, 0x80, 0x3d, 0xff, 0x74, 0x12, 0xfe, 0x05, - 0x80, 0x3d, 0xff, 0x75, 0x0b, 0x81, 0x8e, 0x06, 0x02, 0x80, 0x00, 0xc6, 0x86, 0x85, 0x02, 0x01, - 0x80, 0x3c, 0xff, 0x74, 0x02, 0xfe, 0x04, 0xd1, 0xe8, 0x47, 0x46, 0xe2, 0xce, 0xe8, 0x0a, 0x00, - 0xc7, 0x86, 0xda, 0x02, 0x00, 0x00, 0x58, 0x5e, 0x5f, 0xc3, 0xf6, 0x86, 0x56, 0x02, 0x01, 0x75, - 0x27, 0xf6, 0x86, 0xaa, 0x02, 0x01, 0x75, 0x07, 0xf6, 0x86, 0x60, 0x02, 0x01, 0x74, 0x19, 0xc6, - 0x86, 0x56, 0x02, 0x01, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x80, 0x75, 0x0c, 0xbe, 0x5b, 0x45, 0xe8, - 0xb8, 0x03, 0xc7, 0x86, 0xb6, 0x02, 0x04, 0x00, 0xc3, 0xf7, 0x86, 0x58, 0x15, 0x00, 0x80, 0x75, - 0x02, 0xeb, 0x26, 0x8b, 0xb6, 0x60, 0x01, 0x3b, 0xb6, 0x5e, 0x01, 0x74, 0x1c, 0x46, 0x83, 0xe6, - 0x07, 0x89, 0xb6, 0x60, 0x01, 0x8b, 0xce, 0xd1, 0xe1, 0xd1, 0xe1, 0x8d, 0xb6, 0x3e, 0x01, 0x03, - 0xf1, 0x8b, 0x04, 0x8b, 0x54, 0x02, 0xe9, 0x32, 0x38, 0xc3, 0xbb, 0x00, 0x03, 0x83, 0x7f, 0x12, - 0x00, 0x74, 0x08, 0xe8, 0xad, 0x37, 0xc7, 0x47, 0x12, 0x00, 0x00, 0xc3, 0x53, 0x50, 0x33, 0xc0, - 0x88, 0x86, 0xcb, 0x01, 0xa3, 0x2e, 0x56, 0xbb, 0x30, 0x56, 0x89, 0x1e, 0x26, 0x56, 0x89, 0x07, - 0x89, 0x47, 0x02, 0x89, 0x47, 0x04, 0xa3, 0x28, 0x56, 0xa3, 0x2a, 0x56, 0xa3, 0x2c, 0x56, 0x58, - 0x5b, 0xc3, 0x50, 0x8a, 0xe0, 0xe4, 0x12, 0xf6, 0xd4, 0x22, 0xc4, 0xe6, 0x12, 0x58, 0xc3, 0xc6, - 0x46, 0x06, 0x00, 0xc6, 0x46, 0x07, 0x00, 0xc6, 0x46, 0x08, 0x00, 0xc6, 0x46, 0x09, 0x00, 0xc6, - 0x86, 0x6c, 0x15, 0x80, 0x8d, 0xbe, 0x0a, 0x03, 0x8c, 0xd8, 0x8e, 0xc0, 0xab, 0xab, 0xab, 0xc3, - 0x51, 0x53, 0xb9, 0x10, 0x00, 0xd1, 0xe0, 0xd1, 0xdb, 0xe2, 0xfa, 0x8b, 0xc3, 0x86, 0xc4, 0x5b, - 0x59, 0xc3, 0x50, 0x53, 0x51, 0x52, 0x57, 0x56, 0x8d, 0x1e, 0x66, 0x05, 0xb8, 0x40, 0x60, 0x8e, - 0xc0, 0xff, 0x06, 0x4e, 0x00, 0xc7, 0x06, 0xe4, 0x54, 0x00, 0x00, 0xc6, 0x06, 0xe8, 0x54, 0x00, - 0xc7, 0x06, 0xec, 0x54, 0x20, 0x00, 0xbb, 0xfe, 0x0c, 0x8b, 0x07, 0x81, 0xc3, 0x00, 0x80, 0x3b, - 0x07, 0x74, 0x06, 0xc7, 0x06, 0xec, 0x54, 0x40, 0x00, 0x8d, 0x3e, 0xe6, 0x54, 0xb8, 0x40, 0x5d, - 0x89, 0x05, 0x06, 0x33, 0xc0, 0x8e, 0xc0, 0xa3, 0xc8, 0x54, 0xa3, 0xca, 0x54, 0xa3, 0xcc, 0x54, - 0x8d, 0x3e, 0xdc, 0x54, 0xb9, 0x04, 0x00, 0xd1, 0xe9, 0xf3, 0xab, 0x8d, 0x3e, 0xe0, 0x54, 0xb9, - 0x04, 0x00, 0xd1, 0xe9, 0xf3, 0xab, 0x07, 0x8b, 0xd4, 0xb9, 0x01, 0x00, 0xbb, 0x00, 0x00, 0xbd, - 0x40, 0x5d, 0x88, 0x5e, 0x00, 0x8b, 0xc3, 0xd1, 0xe0, 0xd1, 0xe0, 0x05, 0x40, 0x60, 0x89, 0x46, - 0x02, 0xe8, 0xb0, 0xfc, 0xe8, 0xe2, 0x00, 0x8b, 0xc5, 0x05, 0x4e, 0x08, 0x89, 0x86, 0x50, 0x08, - 0x83, 0xc0, 0x02, 0x8b, 0xe0, 0x68, 0xfa, 0x05, 0x81, 0xc5, 0xec, 0x16, 0x43, 0xe2, 0xd3, 0x8b, - 0xe2, 0x33, 0xed, 0x5e, 0x5f, 0x5a, 0x59, 0x5b, 0x58, 0xc3, 0x3e, 0x89, 0xa6, 0x50, 0x08, 0x33, - 0xed, 0xbc, 0x1c, 0x56, 0xfa, 0x83, 0x0e, 0xe0, 0x54, 0x00, 0x74, 0x0d, 0x8b, 0x36, 0xe0, 0x54, - 0x8b, 0x4c, 0x04, 0xe8, 0xea, 0x03, 0xfb, 0xff, 0xd1, 0xfb, 0x32, 0xff, 0x8a, 0x1e, 0xe4, 0x54, - 0x80, 0x8f, 0xea, 0x54, 0x00, 0x75, 0x21, 0xd1, 0xe3, 0x8b, 0xaf, 0xe6, 0x54, 0x81, 0xbe, 0x4e, - 0x06, 0xa5, 0xa5, 0x74, 0x0c, 0xd1, 0xeb, 0xc6, 0x87, 0xea, 0x54, 0x01, 0xe8, 0x21, 0x06, 0xeb, - 0x07, 0x8b, 0x86, 0x50, 0x08, 0x8b, 0xe0, 0xc3, 0xeb, 0xb5, 0xeb, 0xae, 0x60, 0x9c, 0xe8, 0xa9, - 0xff, 0x0e, 0xe8, 0x02, 0x00, 0xeb, 0x01, 0xcf, 0x61, 0xc3, 0x50, 0xfa, 0x8b, 0x76, 0x1a, 0xf7, - 0xc6, 0xff, 0xff, 0x74, 0x10, 0x8b, 0x04, 0x89, 0x46, 0x1a, 0x0b, 0xc0, 0x75, 0x03, 0x89, 0x46, - 0x1c, 0xc7, 0x04, 0x00, 0x00, 0xfb, 0x58, 0xc3, 0x53, 0xfa, 0xc7, 0x04, 0x00, 0x00, 0x8b, 0x5d, - 0x02, 0x89, 0x37, 0x89, 0x75, 0x02, 0x83, 0x3d, 0x00, 0x75, 0x02, 0x89, 0x35, 0xfb, 0x5b, 0xc3, - 0x50, 0xfa, 0x8b, 0x35, 0x8b, 0x04, 0x89, 0x05, 0x0b, 0xc0, 0x75, 0x03, 0x89, 0x45, 0x02, 0xfb, - 0x58, 0xc3, 0x50, 0xfa, 0x8b, 0x46, 0x1a, 0x89, 0x04, 0x89, 0x76, 0x1a, 0xf7, 0x46, 0x1a, 0xff, - 0xff, 0x75, 0x03, 0x89, 0x76, 0x1a, 0xfb, 0x58, 0xc3, 0x50, 0x53, 0x51, 0x8b, 0xc5, 0x83, 0xc0, - 0x1e, 0x89, 0x46, 0x1a, 0x83, 0xc0, 0x48, 0x89, 0x46, 0x1c, 0xb9, 0x09, 0x00, 0x8b, 0xdd, 0x8b, - 0xc5, 0x83, 0xc0, 0x26, 0x89, 0x47, 0x1e, 0x83, 0xc3, 0x08, 0x83, 0xc0, 0x08, 0xe2, 0xf5, 0x59, - 0x5b, 0x58, 0xc3, 0x90, 0x60, 0x06, 0x1e, 0xfa, 0x33, 0xdb, 0x8e, 0xdb, 0x83, 0x06, 0xc8, 0x54, - 0x01, 0x73, 0x04, 0x11, 0x1e, 0xca, 0x54, 0xb9, 0x01, 0x00, 0x8b, 0xaf, 0xe6, 0x54, 0xf6, 0x06, - 0x1e, 0x56, 0x01, 0x75, 0x03, 0xe8, 0x80, 0x3e, 0xf7, 0x06, 0xc8, 0x54, 0x07, 0x00, 0x74, 0x10, - 0x80, 0xbe, 0x2d, 0x01, 0x01, 0x75, 0x09, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x10, 0x00, 0x01, - 0xf7, 0x86, 0xa3, 0x02, 0x01, 0x00, 0x74, 0x30, 0xfe, 0x86, 0x6b, 0x01, 0x80, 0xbe, 0x6b, 0x01, - 0x02, 0x73, 0x02, 0xeb, 0x23, 0xc6, 0x86, 0x6b, 0x01, 0x00, 0xf7, 0x86, 0x1c, 0x01, 0x01, 0x00, - 0x75, 0x0a, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x04, 0x00, 0x32, 0xfe, 0x81, 0xa6, 0x18, 0x01, - 0x32, 0xfe, 0xc7, 0x86, 0xa3, 0x02, 0x00, 0x00, 0xc6, 0x86, 0x6a, 0x01, 0x00, 0x8e, 0x46, 0x02, - 0x26, 0xa1, 0x08, 0x00, 0x25, 0x00, 0x02, 0x74, 0x03, 0xe8, 0x23, 0x12, 0xf6, 0x86, 0x54, 0x02, - 0x01, 0x74, 0x03, 0xe8, 0x36, 0x3e, 0x8b, 0x86, 0xf6, 0x00, 0x25, 0xd0, 0xe5, 0x89, 0x86, 0x2c, - 0x02, 0x8a, 0x46, 0x08, 0x3c, 0x06, 0x74, 0x08, 0x3c, 0x0a, 0x74, 0x04, 0x3c, 0x18, 0x75, 0x04, - 0xff, 0x86, 0x46, 0x02, 0x83, 0xc3, 0x02, 0x49, 0x74, 0x03, 0xe9, 0x5d, 0xff, 0xf7, 0x06, 0xdc, - 0x54, 0xff, 0xff, 0x74, 0x1f, 0xff, 0x0e, 0xcc, 0x54, 0x75, 0x19, 0xe8, 0x14, 0x02, 0x8b, 0x1e, - 0xdc, 0x54, 0x0b, 0xdb, 0x74, 0x0e, 0x8b, 0x47, 0x08, 0xa3, 0xcc, 0x54, 0xf7, 0x06, 0xcc, 0x54, - 0xff, 0xff, 0x74, 0xe7, 0x50, 0xb0, 0xa0, 0xe6, 0x10, 0x58, 0x1f, 0x07, 0x61, 0xcf, 0x60, 0x06, - 0x1e, 0xfa, 0x8d, 0x36, 0xd0, 0x54, 0x83, 0x04, 0x01, 0x83, 0x54, 0x02, 0x00, 0xe8, 0xae, 0x41, - 0xa0, 0xce, 0x54, 0xfe, 0xc0, 0x3c, 0x04, 0x72, 0x08, 0xc6, 0x06, 0xce, 0x54, 0x00, 0xe9, 0xf7, - 0xfe, 0xa2, 0xce, 0x54, 0xeb, 0xce, 0x50, 0x57, 0x56, 0xfa, 0x8d, 0x36, 0xd4, 0x54, 0x83, 0x04, - 0x01, 0x83, 0x54, 0x02, 0x00, 0x80, 0x3e, 0x1e, 0x56, 0x01, 0x75, 0x0d, 0x8b, 0x36, 0x20, 0x56, - 0x83, 0xfe, 0x14, 0x77, 0x0e, 0xff, 0x94, 0x50, 0x05, 0x50, 0xb0, 0xa0, 0xe6, 0x10, 0x58, 0x5e, - 0x5f, 0x58, 0xcf, 0xe8, 0x5c, 0x44, 0xeb, 0xf1, 0x57, 0x56, 0x50, 0xfa, 0x8d, 0x36, 0xd8, 0x54, - 0x83, 0x04, 0x01, 0x83, 0x54, 0x02, 0x00, 0x80, 0x3e, 0x1e, 0x56, 0x01, 0x75, 0x0d, 0x8b, 0x36, - 0x20, 0x56, 0x83, 0xfe, 0x14, 0x77, 0x0e, 0xff, 0x94, 0x50, 0x05, 0x50, 0xb0, 0xa0, 0xe6, 0x10, - 0x58, 0x58, 0x5e, 0x5f, 0xcf, 0xe8, 0x2a, 0x44, 0xeb, 0xf1, 0x50, 0x53, 0x51, 0x57, 0xe8, 0xab, - 0x00, 0xfa, 0x8b, 0x3c, 0x03, 0xfd, 0x89, 0x6d, 0x02, 0x8b, 0x44, 0x02, 0x89, 0x45, 0x04, 0x8b, - 0x44, 0x04, 0x89, 0x45, 0x06, 0x0b, 0xc0, 0x75, 0x0e, 0x8b, 0x86, 0x08, 0x02, 0x0b, 0xc0, 0x75, - 0x03, 0xb8, 0xc8, 0x00, 0x89, 0x45, 0x06, 0xf7, 0x06, 0xdc, 0x54, 0xff, 0xff, 0x75, 0x14, 0x89, - 0x3e, 0xdc, 0x54, 0x89, 0x3e, 0xde, 0x54, 0xc7, 0x05, 0x00, 0x00, 0x89, 0x45, 0x08, 0xa3, 0xcc, - 0x54, 0xeb, 0x63, 0x8b, 0x3e, 0xdc, 0x54, 0x8b, 0x0e, 0xcc, 0x54, 0x33, 0xdb, 0x3b, 0xc8, 0x72, - 0x35, 0x0b, 0xdb, 0x75, 0x17, 0x2b, 0xc8, 0x89, 0x4d, 0x08, 0x8b, 0x34, 0x03, 0xf5, 0x89, 0x44, - 0x08, 0x89, 0x3c, 0x89, 0x36, 0xdc, 0x54, 0xa3, 0xcc, 0x54, 0xeb, 0x3a, 0x2b, 0x4d, 0x08, 0x2b, - 0xc1, 0x8b, 0x34, 0x03, 0xf5, 0x89, 0x44, 0x08, 0x8b, 0x4d, 0x08, 0x2b, 0xc8, 0x89, 0x4d, 0x08, - 0x89, 0x37, 0x89, 0x3c, 0xeb, 0x20, 0x8b, 0xdf, 0x8b, 0x3d, 0x0b, 0xff, 0x74, 0x05, 0x03, 0x4d, - 0x08, 0xeb, 0xba, 0x2b, 0xc1, 0x8b, 0x34, 0x03, 0xf5, 0x89, 0x44, 0x08, 0x89, 0x37, 0xc7, 0x04, - 0x00, 0x00, 0x89, 0x36, 0xde, 0x54, 0xfb, 0x5f, 0x59, 0x5b, 0x58, 0xc3, 0x57, 0x53, 0x50, 0x56, - 0xfa, 0x8b, 0x1e, 0xdc, 0x54, 0x33, 0xff, 0x8b, 0x34, 0x03, 0xf5, 0x83, 0x7c, 0x02, 0xff, 0x74, - 0x4b, 0x3b, 0xde, 0x75, 0x49, 0x0b, 0xff, 0x74, 0x18, 0x8b, 0x07, 0x89, 0x05, 0x0b, 0xc0, 0x75, - 0x06, 0x89, 0x3e, 0xde, 0x54, 0xeb, 0x2c, 0x8b, 0x4f, 0x08, 0x8b, 0xf8, 0x01, 0x4d, 0x08, 0xeb, - 0x22, 0x8b, 0x3f, 0x89, 0x3e, 0xdc, 0x54, 0x0b, 0xff, 0x75, 0x0c, 0x89, 0x3e, 0xde, 0x54, 0xc7, - 0x06, 0xcc, 0x54, 0xff, 0xff, 0xeb, 0x0c, 0xa1, 0xcc, 0x54, 0x01, 0x45, 0x08, 0x8b, 0x45, 0x08, - 0xa3, 0xcc, 0x54, 0xc7, 0x47, 0x02, 0xff, 0xff, 0xc7, 0x07, 0x00, 0x00, 0xeb, 0x4e, 0x83, 0xcb, - 0x00, 0x74, 0x06, 0x8b, 0xfb, 0x8b, 0x1f, 0xeb, 0xa8, 0x83, 0xfd, 0x00, 0x75, 0x05, 0xbb, 0xe0, - 0x54, 0xeb, 0x04, 0x8d, 0x9e, 0xf0, 0x00, 0x8b, 0x1f, 0x83, 0xfb, 0x00, 0x74, 0x2e, 0x3b, 0xde, - 0x75, 0x05, 0xe8, 0x6b, 0x00, 0xeb, 0x25, 0x8b, 0xfb, 0x8b, 0x1f, 0x83, 0xcb, 0x00, 0x74, 0x1c, - 0x3b, 0xde, 0x75, 0xf3, 0x8b, 0x07, 0x89, 0x05, 0x83, 0xc8, 0x00, 0x75, 0x04, 0x89, 0xbe, 0xf2, - 0x00, 0xc7, 0x07, 0x00, 0x00, 0xc7, 0x47, 0x02, 0xff, 0xff, 0xeb, 0x00, 0xfb, 0x5e, 0x58, 0x5b, - 0x5f, 0xc3, 0x50, 0x53, 0x56, 0x55, 0x8b, 0x1e, 0xdc, 0x54, 0x8b, 0x6f, 0x02, 0x0b, 0xed, 0x74, - 0x06, 0x81, 0xc5, 0xf0, 0x00, 0xeb, 0x03, 0xbd, 0xe0, 0x54, 0x8b, 0x76, 0x02, 0x8b, 0x07, 0xa3, - 0xdc, 0x54, 0x0b, 0xc0, 0x75, 0x03, 0xa3, 0xde, 0x54, 0x89, 0x5e, 0x02, 0x89, 0x1c, 0xc7, 0x07, - 0x00, 0x00, 0x83, 0x4e, 0x00, 0x00, 0x75, 0x03, 0x89, 0x5e, 0x00, 0x5d, 0x5e, 0x5b, 0x58, 0xc3, - 0x55, 0x53, 0x50, 0x0b, 0xed, 0x74, 0x06, 0x81, 0xc5, 0xf0, 0x00, 0xeb, 0x03, 0xbd, 0xe0, 0x54, - 0x8b, 0x5e, 0x00, 0xc7, 0x47, 0x02, 0xff, 0xff, 0x8b, 0x07, 0xc7, 0x07, 0x00, 0x00, 0x8b, 0xd8, - 0x89, 0x5e, 0x00, 0x0b, 0xdb, 0x75, 0x03, 0x89, 0x5e, 0x02, 0x58, 0x5b, 0x5d, 0xc3, 0x50, 0x53, - 0x51, 0x57, 0x56, 0xfa, 0x8b, 0x1e, 0xdc, 0x54, 0x33, 0xff, 0x83, 0xcb, 0x00, 0x74, 0x54, 0x8b, - 0xc3, 0x39, 0x6f, 0x02, 0x75, 0x47, 0x0b, 0xff, 0x74, 0x18, 0x8b, 0x37, 0x89, 0x35, 0x8b, 0xc7, - 0x0b, 0xf6, 0x75, 0x06, 0x89, 0x3e, 0xde, 0x54, 0xeb, 0x2c, 0x8b, 0x4f, 0x08, 0x01, 0x4c, 0x08, - 0xeb, 0x24, 0x8b, 0x37, 0x89, 0x36, 0xdc, 0x54, 0x0b, 0xf6, 0x75, 0x0c, 0x89, 0x36, 0xde, 0x54, - 0xc7, 0x06, 0xcc, 0x54, 0xff, 0xff, 0xeb, 0x0e, 0xa1, 0xcc, 0x54, 0x01, 0x44, 0x08, 0x8b, 0x44, - 0x08, 0xa3, 0xcc, 0x54, 0x33, 0xc0, 0xc7, 0x47, 0x02, 0xff, 0xff, 0xeb, 0x00, 0x8b, 0xf8, 0x8b, - 0x1f, 0xeb, 0xa7, 0xfb, 0x5e, 0x5f, 0x59, 0x5b, 0x58, 0xc3, 0x50, 0x53, 0x51, 0x52, 0x8a, 0x8e, - 0xa8, 0x02, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x00, 0x00, 0x8b, 0xd8, 0xf7, 0x86, 0xf6, 0x00, 0x00, - 0x01, 0x74, 0x10, 0x83, 0xe0, 0xfd, 0xc6, 0x86, 0x79, 0x02, 0x01, 0x25, 0xff, 0x1f, 0x0d, 0x00, - 0x80, 0xeb, 0x0e, 0x25, 0xff, 0x1f, 0x0d, 0x00, 0x20, 0x83, 0xc8, 0x02, 0xc6, 0x86, 0x79, 0x02, - 0x00, 0xe8, 0x5c, 0x02, 0x0d, 0x00, 0x08, 0xf6, 0x86, 0xaa, 0x02, 0x01, 0x75, 0x03, 0x25, 0xff, - 0xf7, 0x33, 0xd8, 0x74, 0x04, 0x26, 0xa3, 0x00, 0x00, 0x26, 0xa1, 0x0c, 0x00, 0x8b, 0xd8, 0xf7, - 0x86, 0x12, 0x01, 0x10, 0x00, 0x74, 0x05, 0x0d, 0x00, 0x10, 0xeb, 0x03, 0x25, 0xff, 0xef, 0x8a, - 0xae, 0x69, 0x02, 0x80, 0xf9, 0x01, 0x75, 0x04, 0x8a, 0xae, 0x6a, 0x02, 0xf6, 0xc5, 0x01, 0x74, - 0x05, 0x83, 0xc8, 0x10, 0xeb, 0x03, 0x83, 0xe0, 0xef, 0xf6, 0x86, 0x6b, 0x02, 0x01, 0x74, 0x0a, - 0x83, 0xc8, 0x20, 0xc6, 0x86, 0x7a, 0x02, 0x00, 0xeb, 0x08, 0x83, 0xe0, 0xdf, 0xc6, 0x86, 0x7a, - 0x02, 0x01, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x74, 0x0a, 0xc6, 0x86, 0x7a, 0x02, 0x00, 0x83, 0xc8, - 0x40, 0xeb, 0x03, 0x83, 0xe0, 0xbf, 0xf6, 0x86, 0x79, 0x02, 0x01, 0x74, 0x05, 0x0d, 0x80, 0x00, - 0xeb, 0x03, 0x25, 0x7f, 0xff, 0xf6, 0x86, 0x78, 0x02, 0x01, 0x74, 0x05, 0x0d, 0x00, 0x01, 0xeb, - 0x03, 0x25, 0xff, 0xfe, 0xf6, 0x86, 0x7a, 0x02, 0x01, 0x74, 0x05, 0x0d, 0x00, 0x20, 0xeb, 0x03, - 0x25, 0xff, 0xdf, 0x33, 0xd8, 0x74, 0x12, 0xf7, 0xc3, 0x20, 0x00, 0x74, 0x05, 0xc6, 0x06, 0xfd, - 0x12, 0x01, 0x25, 0xff, 0xf7, 0x26, 0xa3, 0x0c, 0x00, 0x26, 0xa1, 0x10, 0x00, 0x8b, 0xd8, 0x33, - 0xd8, 0x74, 0x04, 0x26, 0xa3, 0x10, 0x00, 0xf6, 0x06, 0xfd, 0x12, 0x01, 0x74, 0x1e, 0xc6, 0x06, - 0xfd, 0x12, 0x00, 0x26, 0x81, 0x26, 0x00, 0x00, 0x7f, 0xff, 0x90, 0x90, 0x26, 0x81, 0x0e, 0x00, - 0x00, 0x80, 0x00, 0x90, 0x90, 0x26, 0x81, 0x26, 0x00, 0x00, 0x7f, 0xff, 0x5a, 0x59, 0x5b, 0x58, - 0xc3, 0x00, 0x8e, 0x46, 0x02, 0xf7, 0x86, 0xf4, 0x00, 0x04, 0x00, 0x74, 0x0b, 0xc6, 0x06, 0x1e, - 0x56, 0x01, 0x26, 0x83, 0x0e, 0x02, 0x00, 0x02, 0xc6, 0x86, 0xab, 0x02, 0x00, 0xc6, 0x86, 0xac, - 0x02, 0x00, 0x81, 0xa6, 0xf6, 0x00, 0xff, 0xfb, 0xa8, 0x01, 0x74, 0x19, 0x81, 0x8e, 0xf6, 0x00, - 0x00, 0x04, 0x26, 0x83, 0x0e, 0x02, 0x00, 0x20, 0x26, 0x83, 0x26, 0x02, 0x00, 0xef, 0xc6, 0x86, - 0xac, 0x02, 0x01, 0xeb, 0x4d, 0xa8, 0x02, 0x74, 0x1f, 0x26, 0x83, 0x26, 0x02, 0x00, 0xcf, 0xf7, - 0x86, 0xf4, 0x00, 0x04, 0x00, 0x75, 0x0d, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x84, 0x75, 0x05, 0xc6, - 0x86, 0xab, 0x02, 0x01, 0xb0, 0x02, 0xeb, 0x2a, 0xa8, 0x04, 0x74, 0x0e, 0x26, 0x83, 0x0e, 0x02, - 0x00, 0x20, 0x26, 0x83, 0x26, 0x02, 0x00, 0xef, 0xeb, 0x18, 0xa8, 0x08, 0x74, 0x08, 0x26, 0x83, - 0x0e, 0x02, 0x00, 0x30, 0xeb, 0x0c, 0xa8, 0x10, 0x74, 0x08, 0x26, 0x83, 0x0e, 0x02, 0x00, 0x30, - 0xeb, 0x00, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x74, 0x06, 0x26, 0x83, 0x26, 0x02, 0x00, 0xcf, 0xc3, - 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x0c, 0x00, 0x00, 0x01, 0x90, 0x90, 0x8e, 0x46, 0x02, - 0x26, 0x81, 0x26, 0x0c, 0x00, 0xff, 0xfe, 0xc3, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x1e, 0x56, 0x01, - 0x75, 0x0f, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x75, 0x10, 0x26, 0x83, 0x0e, 0x02, 0x00, 0x02, 0xeb, - 0x08, 0xc6, 0x86, 0x6c, 0x01, 0x01, 0xe8, 0x3e, 0x3f, 0xc3, 0x8e, 0x46, 0x02, 0xf7, 0x86, 0xf4, - 0x00, 0x02, 0x00, 0x74, 0x09, 0x26, 0x81, 0x26, 0x02, 0x00, 0xff, 0xef, 0xeb, 0x07, 0x26, 0x81, - 0x0e, 0x02, 0x00, 0x00, 0x10, 0xc3, 0x8e, 0x46, 0x02, 0xf7, 0x86, 0xf4, 0x00, 0x02, 0x00, 0x74, - 0x09, 0x26, 0x81, 0x0e, 0x02, 0x00, 0x00, 0x10, 0xeb, 0x07, 0x26, 0x81, 0x26, 0x02, 0x00, 0xff, - 0xef, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x02, 0x00, 0x00, 0x80, 0xc3, 0x8e, 0x46, 0x02, - 0x26, 0x81, 0x26, 0x02, 0x00, 0xff, 0x7f, 0xc3, 0xf7, 0x86, 0xf4, 0x00, 0x08, 0x00, 0x74, 0x13, - 0xe8, 0xdf, 0xff, 0xeb, 0x3a, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x1e, 0x80, 0x7e, 0x06, 0x48, 0x74, - 0x24, 0xeb, 0x2c, 0xe8, 0xd7, 0xff, 0x8e, 0x46, 0x02, 0xf7, 0x86, 0xf4, 0x00, 0x10, 0x00, 0x75, - 0xe4, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x01, 0x75, 0x0c, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x02, - 0x00, 0x00, 0x40, 0xeb, 0x0a, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x02, 0x00, 0xff, 0xbf, 0xc3, - 0x83, 0xe0, 0xf7, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x04, 0x74, 0x03, 0x83, 0xc8, 0x08, 0xc3, 0x90, - 0xe8, 0x19, 0xf3, 0xc6, 0x86, 0x69, 0x02, 0x01, 0xc6, 0x86, 0x6b, 0x02, 0x01, 0x8e, 0x46, 0x02, - 0x26, 0x83, 0x26, 0x0c, 0x00, 0xfe, 0xc6, 0x86, 0x78, 0x02, 0x00, 0xe8, 0x3c, 0xfd, 0x8e, 0x46, - 0x02, 0x26, 0xc7, 0x06, 0x10, 0x00, 0x04, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x10, 0x00, - 0x04, 0x33, 0xc0, 0x88, 0x86, 0x88, 0x02, 0x88, 0x86, 0x89, 0x02, 0xc6, 0x86, 0x63, 0x01, 0x01, - 0xc7, 0x86, 0x64, 0x01, 0xf6, 0x05, 0xc6, 0x86, 0x69, 0x01, 0x02, 0xbe, 0xbb, 0x45, 0xe8, 0xc9, - 0xfa, 0xbe, 0xb5, 0x45, 0xe8, 0xc3, 0xfa, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x04, 0x00, 0x32, - 0xfe, 0xc3, 0xc6, 0x86, 0x63, 0x01, 0x00, 0x80, 0xbe, 0x62, 0x01, 0x01, 0x75, 0x0d, 0xe8, 0xab, - 0xf2, 0xe8, 0x53, 0x2c, 0xc6, 0x46, 0x07, 0x00, 0xe9, 0xa7, 0x00, 0xbe, 0x6d, 0x45, 0xe8, 0x4b, - 0xfb, 0xbe, 0xb5, 0x45, 0xe8, 0x45, 0xfb, 0xc6, 0x86, 0x88, 0x02, 0x01, 0x80, 0x7e, 0x06, 0x02, - 0x74, 0x08, 0x80, 0x7e, 0x06, 0x44, 0x74, 0x09, 0xeb, 0x0d, 0xc6, 0x46, 0x07, 0x04, 0xe9, 0x81, - 0x00, 0xc6, 0x46, 0x07, 0x46, 0xeb, 0x7b, 0x80, 0x7e, 0x08, 0x08, 0x75, 0xf8, 0xc6, 0x86, 0x81, - 0x02, 0x01, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x5d, 0x02, 0x00, 0xc6, 0x86, 0x5c, 0x02, - 0x00, 0xc6, 0x86, 0x5f, 0x02, 0x01, 0xc6, 0x86, 0x68, 0x02, 0x01, 0xc6, 0x86, 0x6c, 0x02, 0x01, - 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, 0x17, 0x80, 0xbe, 0xa6, 0x02, 0x01, 0x74, 0x2c, 0xc6, 0x46, - 0x09, 0x0a, 0xc6, 0x86, 0x6b, 0x02, 0x00, 0xc6, 0x86, 0x59, 0x02, 0x01, 0xeb, 0x1c, 0xf6, 0x86, - 0x59, 0x02, 0x01, 0x74, 0x15, 0x80, 0xbe, 0xa6, 0x02, 0x01, 0x74, 0x0e, 0xc6, 0x46, 0x09, 0x06, - 0xc6, 0x86, 0x58, 0x02, 0x01, 0xc6, 0x86, 0x6b, 0x02, 0x01, 0xe8, 0x4d, 0xfc, 0xe8, 0x28, 0xfe, - 0xbe, 0x9d, 0x45, 0xe8, 0x04, 0xfa, 0xbe, 0x61, 0x45, 0xe8, 0xfe, 0xf9, 0xbe, 0xa3, 0x45, 0xe8, - 0xf8, 0xf9, 0xc3, 0x90, 0xc6, 0x46, 0x09, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x04, 0x00, - 0x32, 0xfe, 0xbe, 0xc1, 0x45, 0xe8, 0xe2, 0xf9, 0xc7, 0x86, 0xc4, 0x01, 0x14, 0x00, 0xc7, 0x86, - 0xc2, 0x02, 0x00, 0x00, 0xbe, 0xa9, 0x45, 0xe8, 0xd0, 0xf9, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, - 0x86, 0x6b, 0x02, 0x00, 0xc6, 0x86, 0x68, 0x02, 0x01, 0xc6, 0x86, 0x6c, 0x02, 0x01, 0xe8, 0xf9, - 0xfb, 0xbe, 0x67, 0x45, 0xe8, 0xb3, 0xf9, 0xbe, 0x9d, 0x45, 0xe8, 0xad, 0xf9, 0x33, 0xc0, 0x89, - 0x86, 0xee, 0x01, 0x89, 0x86, 0xf0, 0x01, 0x89, 0x86, 0xf2, 0x01, 0xf6, 0x06, 0x1e, 0x56, 0x01, - 0x74, 0x0a, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x04, 0x00, 0xff, 0xf7, 0xf7, 0x86, 0xf6, 0x00, - 0x00, 0x20, 0x74, 0x10, 0xbe, 0xa3, 0x45, 0xe8, 0x80, 0xf9, 0xc6, 0x86, 0x5d, 0x02, 0x00, 0xc6, - 0x86, 0x5c, 0x02, 0x00, 0xe8, 0x91, 0xfd, 0xc3, 0xc3, 0x90, 0xc6, 0x86, 0x57, 0x02, 0x01, 0xc7, - 0x86, 0xc4, 0x02, 0x00, 0x00, 0xc7, 0x86, 0xc6, 0x02, 0x00, 0x00, 0xbe, 0x67, 0x45, 0xe8, 0x59, - 0xf9, 0xe8, 0xc0, 0x12, 0xc3, 0x90, 0xc6, 0x86, 0x5b, 0x02, 0x01, 0xf6, 0x86, 0x84, 0x02, 0x01, - 0x74, 0x08, 0xe8, 0xb1, 0x14, 0xc6, 0x86, 0x84, 0x02, 0x00, 0xbe, 0x67, 0x45, 0xe8, 0x3a, 0xf9, - 0xf6, 0x86, 0x63, 0x02, 0x01, 0x74, 0x04, 0xc6, 0x46, 0x07, 0x0c, 0xc3, 0xbe, 0x67, 0x45, 0xe8, - 0x28, 0xf9, 0xbe, 0x85, 0x45, 0xe8, 0x22, 0xf9, 0xc7, 0x86, 0xb8, 0x02, 0x01, 0x00, 0xc7, 0x86, - 0xba, 0x02, 0x01, 0x00, 0xe8, 0xf7, 0x12, 0xc3, 0xc7, 0x86, 0xc2, 0x02, 0x00, 0x00, 0xc7, 0x86, - 0xc4, 0x01, 0x14, 0x00, 0xc6, 0x86, 0x08, 0x01, 0x00, 0x81, 0xa6, 0x06, 0x02, 0xdf, 0xbf, 0xc6, - 0x86, 0x60, 0x02, 0x01, 0xc7, 0x86, 0x26, 0x02, 0xff, 0xff, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x20, - 0x75, 0x18, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x84, 0x75, 0x10, 0xbe, 0xa3, 0x45, 0xe8, 0xda, 0xf8, - 0xc6, 0x86, 0x5d, 0x02, 0x00, 0xc6, 0x86, 0x5c, 0x02, 0x00, 0xbe, 0x67, 0x45, 0xe8, 0x7c, 0xf9, - 0xb8, 0x00, 0x80, 0xe8, 0xd2, 0x2b, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x0c, 0x00, 0x01, 0xe8, - 0x46, 0xfd, 0xe8, 0xf5, 0xfc, 0xc6, 0x86, 0x5e, 0x02, 0x01, 0xc6, 0x86, 0xca, 0x01, 0x00, 0xf7, - 0x86, 0xf6, 0x00, 0x04, 0x00, 0x74, 0x05, 0xc6, 0x86, 0xca, 0x01, 0x01, 0xe8, 0xaa, 0xf3, 0xf6, - 0x86, 0x54, 0x02, 0x01, 0x75, 0x06, 0xbe, 0x73, 0x45, 0xe8, 0x8e, 0xf8, 0xff, 0x86, 0xfc, 0x00, - 0xc3, 0x90, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x10, 0x00, 0xfb, 0xc6, 0x86, 0x08, 0x01, 0x00, - 0xc6, 0x46, 0x09, 0x00, 0xc6, 0x46, 0x0b, 0x00, 0xc6, 0x86, 0x54, 0x02, 0x00, 0xc6, 0x86, 0x68, - 0x02, 0x00, 0xc6, 0x86, 0x5e, 0x02, 0x00, 0xc6, 0x86, 0x60, 0x02, 0x00, 0xc6, 0x86, 0x5b, 0x02, - 0x00, 0xc6, 0x86, 0x63, 0x02, 0x00, 0xc6, 0x86, 0x6b, 0x02, 0x00, 0xc6, 0x86, 0x69, 0x02, 0x00, - 0xc6, 0x86, 0x6a, 0x02, 0x00, 0xe8, 0x82, 0xfa, 0xf6, 0x86, 0x6c, 0x02, 0x01, 0x74, 0x0c, 0x83, - 0xbe, 0x22, 0x01, 0x0e, 0x75, 0x28, 0xe8, 0x50, 0x06, 0xeb, 0x23, 0x8e, 0x46, 0x02, 0xf6, 0x06, - 0x1e, 0x56, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x02, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, - 0x01, 0x01, 0xe8, 0xea, 0x3b, 0xe8, 0xe6, 0xf9, 0xbe, 0x7f, 0x45, 0xe8, 0x0c, 0xf8, 0xc3, 0x90, - 0xc7, 0x86, 0x2e, 0x02, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x10, 0x00, 0xfb, 0x8e, - 0x46, 0x02, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x02, 0x00, 0xfd, 0xeb, - 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0xb6, 0x3b, 0xc6, 0x86, 0x08, 0x01, 0x00, 0xc7, 0x86, - 0x22, 0x01, 0x00, 0x00, 0xe8, 0x2f, 0xfc, 0xe8, 0x53, 0xfc, 0xf7, 0x86, 0xf4, 0x00, 0x10, 0x00, - 0x74, 0x14, 0xf7, 0x86, 0xf4, 0x00, 0x02, 0x00, 0x74, 0x0c, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, - 0x02, 0x00, 0x00, 0x40, 0xeb, 0x0a, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x02, 0x00, 0xff, 0xbf, - 0xe8, 0xa9, 0xef, 0xe8, 0x50, 0x2b, 0xc6, 0x86, 0xad, 0x02, 0x00, 0x8d, 0xbe, 0x0a, 0x03, 0x8c, - 0xd8, 0x8e, 0xc0, 0xab, 0xab, 0xab, 0xf6, 0x86, 0xa6, 0x02, 0x01, 0x74, 0x04, 0xc6, 0x46, 0x09, - 0x1e, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x04, 0x00, 0xff, 0xfb, 0xf7, 0x86, 0x12, 0x01, 0x00, - 0x02, 0x74, 0x10, 0xf7, 0x86, 0x20, 0x01, 0x80, 0x00, 0x75, 0x08, 0xbe, 0x0f, 0x46, 0xe8, 0x69, - 0xf7, 0xeb, 0x0d, 0x8e, 0x46, 0x02, 0x33, 0xc0, 0x26, 0xa3, 0x24, 0x00, 0x26, 0xa3, 0x26, 0x00, - 0xc3, 0x90, 0x33, 0xc0, 0x88, 0x86, 0x5b, 0x02, 0x88, 0x86, 0x5e, 0x02, 0x88, 0x86, 0x60, 0x02, - 0x88, 0x86, 0x63, 0x02, 0x88, 0x86, 0x68, 0x02, 0xbe, 0xaf, 0x45, 0xe8, 0x3c, 0xf7, 0xc6, 0x86, - 0xad, 0x02, 0x01, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, - 0x02, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0xf2, 0x3a, 0xc3, 0xc7, 0x86, - 0x2e, 0x02, 0x03, 0x00, 0xe8, 0x15, 0xef, 0xc6, 0x86, 0x69, 0x02, 0x01, 0xc6, 0x86, 0x6b, 0x02, - 0x01, 0xe8, 0x46, 0xf9, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x00, 0x00, 0x00, 0x1e, 0x8e, 0x46, - 0x02, 0x26, 0x83, 0x0e, 0x10, 0x00, 0x04, 0xbe, 0xcd, 0x45, 0xe8, 0xed, 0xf6, 0x8e, 0x46, 0x02, - 0x26, 0x81, 0x26, 0x04, 0x00, 0x32, 0xfe, 0xe8, 0x49, 0x05, 0xc3, 0x90, 0xc7, 0x86, 0x2e, 0x02, - 0x04, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, 0xfe, 0xc6, 0x86, 0x6b, 0x02, 0x01, - 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x78, 0x02, 0x00, 0xe8, 0xfd, 0xf8, 0x8e, 0x46, 0x02, - 0x26, 0xc7, 0x06, 0x10, 0x00, 0x04, 0x00, 0x32, 0xc0, 0xe8, 0x42, 0x15, 0x33, 0xc0, 0x88, 0x86, - 0x88, 0x02, 0x88, 0x86, 0x89, 0x02, 0xc6, 0x86, 0x63, 0x01, 0x01, 0xc7, 0x86, 0x64, 0x01, 0xf6, - 0x05, 0xc6, 0x86, 0x69, 0x01, 0x02, 0xc6, 0x86, 0x68, 0x01, 0x02, 0xc7, 0x86, 0x66, 0x01, 0x20, - 0x03, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x1c, 0x00, 0x00, 0x00, 0xbe, 0x6d, 0x45, 0xe8, 0x79, - 0xf6, 0xbe, 0xc7, 0x45, 0xe8, 0x73, 0xf6, 0x8b, 0xb6, 0x64, 0x01, 0xb9, 0xe8, 0x03, 0xe8, 0xec, - 0x0f, 0xc3, 0xc7, 0x86, 0x2e, 0x02, 0x05, 0x00, 0xc6, 0x86, 0x69, 0x02, 0x01, 0xe8, 0x9a, 0xf8, - 0xf6, 0x86, 0x6e, 0x02, 0x01, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x16, 0xc6, 0x86, 0x72, 0x02, 0x01, - 0xbe, 0xeb, 0x45, 0xe8, 0x44, 0xf6, 0xbe, 0xf1, 0x45, 0xe8, 0x3e, 0xf6, 0xbe, 0xd9, 0x45, 0xe8, - 0x38, 0xf6, 0xbe, 0x03, 0x46, 0xe8, 0x32, 0xf6, 0xc7, 0x86, 0xcc, 0x02, 0x01, 0x00, 0xc6, 0x86, - 0x76, 0x02, 0x01, 0xe8, 0x7e, 0x12, 0xc3, 0x90, 0xc7, 0x86, 0x2e, 0x02, 0x07, 0x00, 0xc6, 0x86, - 0x68, 0x02, 0x01, 0xc6, 0x86, 0x5c, 0x02, 0x00, 0xc6, 0x86, 0x5d, 0x02, 0x00, 0xbe, 0xa3, 0x45, - 0xe8, 0x07, 0xf6, 0xf6, 0x86, 0x6e, 0x02, 0x01, 0x75, 0x0d, 0xc6, 0x86, 0x6e, 0x02, 0x01, 0xb8, - 0x00, 0x80, 0xe8, 0x03, 0x29, 0xeb, 0x0a, 0x83, 0xa6, 0x06, 0x02, 0xdf, 0xc6, 0x86, 0x85, 0x02, - 0x01, 0xc6, 0x86, 0x08, 0x01, 0x00, 0xe8, 0x6f, 0xfa, 0xe8, 0x1e, 0xfa, 0xf6, 0x06, 0x1e, 0x56, - 0x01, 0x74, 0x0a, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x04, 0x00, 0xff, 0xf7, 0xe8, 0xe8, 0xf9, - 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x0c, 0x00, 0x01, 0xe8, 0xcd, 0xf0, 0xc7, 0x86, 0xc4, 0x01, - 0x14, 0x00, 0xc7, 0x86, 0xc2, 0x02, 0x00, 0x00, 0xbe, 0xa9, 0x45, 0xe8, 0xac, 0xf5, 0xc3, 0x90, - 0xc7, 0x86, 0x32, 0x02, 0x01, 0x00, 0xc7, 0x86, 0xc2, 0x01, 0xff, 0xff, 0xc7, 0x86, 0xc2, 0x02, - 0x00, 0x00, 0xc7, 0x86, 0xc4, 0x01, 0x14, 0x00, 0x80, 0x7e, 0x07, 0x10, 0x74, 0x44, 0x32, 0xc0, - 0xe8, 0x1b, 0x14, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x02, 0xeb, 0x37, 0x8e, 0x46, 0x02, 0x26, 0x83, - 0x0e, 0x0c, 0x00, 0x01, 0x83, 0xa6, 0x06, 0x02, 0xdf, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xf6, 0x86, - 0x5b, 0x02, 0x01, 0x74, 0x1d, 0xf6, 0x86, 0x66, 0x02, 0x01, 0x74, 0x16, 0xf6, 0x86, 0x63, 0x02, - 0x01, 0x75, 0x0f, 0xc6, 0x86, 0x63, 0x02, 0x01, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x75, 0x03, 0xe8, - 0x87, 0x0e, 0xc3, 0x90, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, 0xfe, 0xc7, 0x86, 0x32, - 0x02, 0x02, 0x00, 0xc6, 0x86, 0x69, 0x02, 0x01, 0xe8, 0x6f, 0xf7, 0xe8, 0x33, 0xf9, 0xbe, 0x8b, - 0x45, 0xe8, 0x26, 0xf5, 0xe8, 0x1d, 0x0e, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, - 0xfe, 0xc7, 0x86, 0x32, 0x02, 0x03, 0x00, 0xc7, 0x86, 0xc2, 0x02, 0x00, 0x00, 0xc7, 0x86, 0xc4, - 0x01, 0x0a, 0x00, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x74, 0x0f, 0xc6, 0x86, 0x54, 0x02, 0x00, 0x8e, - 0x46, 0x02, 0x26, 0x81, 0x26, 0x24, 0x00, 0xff, 0x7f, 0xc6, 0x86, 0x5a, 0x02, 0x00, 0xc6, 0x86, - 0x69, 0x02, 0x01, 0xc6, 0x86, 0x6b, 0x02, 0x01, 0xe8, 0x1f, 0xf7, 0x81, 0xa6, 0x06, 0x02, 0xff, - 0x2f, 0x83, 0x8e, 0x06, 0x02, 0x20, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xbe, 0x55, 0x45, 0xe8, 0xc9, - 0xf4, 0xbe, 0x79, 0x45, 0xe8, 0xc3, 0xf4, 0xc7, 0x86, 0xb2, 0x02, 0x01, 0x00, 0xc7, 0x86, 0xb4, - 0x02, 0x01, 0x00, 0xe8, 0x5d, 0x0d, 0xc3, 0x90, 0xff, 0x86, 0x44, 0x02, 0x8e, 0x46, 0x02, 0x26, - 0x83, 0x26, 0x0c, 0x00, 0xfe, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x10, 0x00, 0x04, 0xf6, 0x86, - 0x5f, 0x02, 0x01, 0x75, 0x03, 0xe8, 0x03, 0x0d, 0xc3, 0x90, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, - 0x0c, 0x00, 0xfe, 0x80, 0xbe, 0xa6, 0x02, 0x01, 0x75, 0x26, 0xc6, 0x86, 0x68, 0x02, 0x00, 0xc6, - 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x6b, 0x02, 0x00, 0xe8, 0xae, 0xf6, 0xe8, 0x3f, 0xf6, 0xbe, - 0x7f, 0x45, 0xe8, 0x65, 0xf4, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x10, 0x00, 0xfb, 0xeb, 0x60, - 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xf6, 0x86, 0x6c, 0x02, 0x01, 0x75, 0x54, 0xe8, 0x1f, 0xf6, 0xe8, - 0x27, 0xed, 0xc6, 0x86, 0x68, 0x02, 0x00, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xbe, 0x7f, 0x45, 0xe8, - 0x38, 0xf4, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x02, - 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0xf3, 0x37, 0x8e, 0x46, 0x02, 0x26, - 0xc7, 0x06, 0x10, 0x00, 0x04, 0x00, 0x33, 0xc0, 0x88, 0x86, 0x88, 0x02, 0x88, 0x86, 0x89, 0x02, - 0xc6, 0x86, 0x63, 0x01, 0x01, 0xc7, 0x86, 0x64, 0x01, 0xf6, 0x05, 0xc6, 0x86, 0x69, 0x01, 0x02, - 0xc3, 0x90, 0xff, 0x86, 0x44, 0x02, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, 0xfe, 0x8e, - 0x46, 0x02, 0x26, 0x83, 0x0e, 0x10, 0x00, 0x04, 0xc7, 0x86, 0xae, 0x02, 0x02, 0x00, 0xc7, 0x86, - 0xb0, 0x02, 0x08, 0x00, 0xc6, 0x86, 0x54, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x24, - 0x00, 0xff, 0x7f, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x6b, 0x02, 0x00, 0xe8, 0xfa, 0xf5, - 0xf6, 0x86, 0x81, 0x02, 0x01, 0x75, 0x06, 0xbe, 0x49, 0x45, 0xe8, 0xad, 0xf3, 0x81, 0xa6, 0x06, - 0x02, 0xff, 0x6f, 0x81, 0x8e, 0x06, 0x02, 0x00, 0x40, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xc3, 0x90, - 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, 0xfe, 0x83, 0xbe, 0xc6, 0x01, 0x00, 0x74, 0x0d, - 0x8b, 0x86, 0xc6, 0x01, 0xc7, 0x86, 0xc6, 0x01, 0x00, 0x00, 0xe8, 0x44, 0x0f, 0xbe, 0x55, 0x45, - 0xe8, 0x77, 0xf3, 0xc3, 0xc7, 0x86, 0x32, 0x02, 0x01, 0x00, 0xc7, 0x86, 0x30, 0x02, 0x02, 0x00, - 0x32, 0xc0, 0xe8, 0xf9, 0x11, 0x80, 0x7e, 0x06, 0x48, 0x75, 0x09, 0x8e, 0x46, 0x02, 0x26, 0x83, - 0x0e, 0x0c, 0x00, 0x01, 0xc3, 0x90, 0xc7, 0x86, 0x30, 0x02, 0x03, 0x00, 0xff, 0x86, 0x44, 0x02, - 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, 0xfe, 0xc6, 0x86, 0x68, 0x02, 0x00, 0xc6, 0x86, - 0x72, 0x02, 0x00, 0xbe, 0xd3, 0x45, 0xe8, 0x31, 0xf3, 0xbe, 0xdf, 0x45, 0xe8, 0x2b, 0xf3, 0xbe, - 0xf7, 0x45, 0xe8, 0x25, 0xf3, 0xc6, 0x86, 0x6b, 0x02, 0x01, 0xe8, 0x5d, 0xf5, 0x81, 0x8e, 0x06, - 0x02, 0x04, 0x50, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xf6, 0x86, 0x61, 0x02, 0x01, 0x74, 0x06, 0x81, - 0x8e, 0x06, 0x02, 0x00, 0x80, 0xe8, 0x54, 0x2d, 0xe8, 0x70, 0x0b, 0xc3, 0xc7, 0x86, 0x30, 0x02, - 0x04, 0x00, 0xbe, 0xd3, 0x45, 0xe8, 0xf2, 0xf2, 0xbe, 0xdf, 0x45, 0xe8, 0xec, 0xf2, 0x81, 0xa6, - 0x06, 0x02, 0xfb, 0x6f, 0x81, 0x8e, 0x06, 0x02, 0x00, 0x40, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xc3, - 0xc7, 0x86, 0x30, 0x02, 0x05, 0x00, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x75, 0x08, - 0x26, 0x83, 0x26, 0x02, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0x8f, 0x36, - 0x81, 0xa6, 0x06, 0x02, 0xfb, 0x2f, 0x83, 0x8e, 0x06, 0x02, 0x20, 0xc6, 0x86, 0x85, 0x02, 0x01, - 0xe8, 0x0f, 0x01, 0xc3, 0xc7, 0x86, 0x30, 0x02, 0x01, 0x00, 0xc3, 0x90, 0xc3, 0x53, 0x50, 0x89, - 0x86, 0x22, 0x01, 0x80, 0xbe, 0x62, 0x01, 0x01, 0x75, 0x0f, 0x50, 0xe8, 0x8e, 0xea, 0xe8, 0x43, - 0x24, 0xc6, 0x46, 0x07, 0x00, 0x58, 0xe9, 0x9d, 0x00, 0xf6, 0x86, 0x08, 0x01, 0x01, 0x74, 0x05, - 0xe8, 0x85, 0x25, 0xeb, 0x57, 0x83, 0xf8, 0x10, 0x75, 0x08, 0x81, 0x8e, 0x1e, 0x01, 0x00, 0x80, - 0xeb, 0x4a, 0x83, 0x8e, 0x1e, 0x01, 0x02, 0x8b, 0x9e, 0x06, 0x02, 0x83, 0xf8, 0x01, 0x75, 0x04, - 0x81, 0xcb, 0x00, 0x04, 0x83, 0xf8, 0x0c, 0x75, 0x04, 0x81, 0xcb, 0x00, 0x08, 0x83, 0xf8, 0x0b, - 0x75, 0x03, 0x83, 0xcb, 0x02, 0x83, 0xf8, 0x09, 0x75, 0x03, 0x83, 0xcb, 0x04, 0x83, 0xf8, 0x0a, - 0x75, 0x04, 0x81, 0xcb, 0x00, 0x01, 0x83, 0xf8, 0x06, 0x75, 0x03, 0x83, 0xcb, 0x01, 0x83, 0xf8, - 0x0f, 0x74, 0x09, 0x89, 0x9e, 0x06, 0x02, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xc6, 0x46, 0x07, 0x12, - 0xc6, 0x46, 0x09, 0x1e, 0xf6, 0x86, 0xa7, 0x02, 0x01, 0x74, 0x1a, 0x8e, 0x46, 0x02, 0xf6, 0x06, - 0x1e, 0x56, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x02, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, - 0x01, 0x01, 0xe8, 0xca, 0x35, 0xf6, 0x86, 0xa5, 0x02, 0x01, 0x75, 0x02, 0xeb, 0x08, 0xc6, 0x46, - 0x07, 0x10, 0xc6, 0x46, 0x09, 0x00, 0x58, 0x5b, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x00, - 0x00, 0x02, 0x00, 0x74, 0x0b, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x00, 0x00, 0xfd, 0xeb, 0x09, - 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x00, 0x00, 0x02, 0xc3, 0xc7, 0x86, 0x2e, 0x02, 0x01, 0x00, - 0xc3, 0xb9, 0x01, 0x01, 0x38, 0xc8, 0x75, 0x19, 0x8b, 0xb6, 0xf6, 0x00, 0x81, 0xe6, 0x00, 0xc0, - 0x81, 0xfe, 0x00, 0x80, 0x75, 0x0b, 0xc6, 0x86, 0x56, 0x02, 0x01, 0xbe, 0x5b, 0x45, 0xe8, 0x99, - 0xf1, 0xc3, 0xc3, 0x50, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x02, 0x74, 0x06, 0x81, 0x8e, 0xf6, 0x00, - 0x00, 0x01, 0xc6, 0x86, 0x90, 0x02, 0x01, 0xe8, 0x05, 0x00, 0xe8, 0xbd, 0xf3, 0x58, 0xc3, 0xc7, - 0x86, 0x93, 0x02, 0x00, 0x00, 0xc7, 0x86, 0x97, 0x02, 0x05, 0x00, 0xc6, 0x86, 0x91, 0x02, 0x00, - 0xa1, 0xc8, 0x54, 0x89, 0x86, 0x95, 0x02, 0x40, 0x89, 0x86, 0x99, 0x02, 0xc3, 0xc6, 0x86, 0x90, - 0x02, 0x00, 0xc6, 0x86, 0x91, 0x02, 0x00, 0xc3, 0x50, 0x53, 0xf6, 0x86, 0x91, 0x02, 0x01, 0x75, - 0x1c, 0xa1, 0xc8, 0x54, 0x8b, 0x9e, 0x95, 0x02, 0x3b, 0xc3, 0x74, 0x11, 0x43, 0x3b, 0xc3, 0x74, - 0x0c, 0x83, 0xc0, 0x04, 0x89, 0x86, 0x95, 0x02, 0xc6, 0x86, 0x91, 0x02, 0x01, 0x5b, 0x58, 0xc3, - 0xc7, 0x86, 0x93, 0x02, 0x00, 0x00, 0xa1, 0xc8, 0x54, 0x83, 0xc0, 0x04, 0x89, 0x86, 0x95, 0x02, - 0xc6, 0x86, 0x91, 0x02, 0x01, 0xc3, 0xa1, 0xc8, 0x54, 0x3b, 0x86, 0x99, 0x02, 0x74, 0x3b, 0x40, - 0x3b, 0x86, 0x99, 0x02, 0x74, 0x34, 0x48, 0xf6, 0x86, 0x91, 0x02, 0x01, 0x74, 0x43, 0x3b, 0x86, - 0x95, 0x02, 0x75, 0x3d, 0x81, 0xbe, 0x93, 0x02, 0x04, 0x01, 0x75, 0x0b, 0xf7, 0x86, 0xf6, 0x00, - 0x00, 0x01, 0x75, 0x03, 0xe9, 0xa7, 0x00, 0x83, 0xbe, 0x93, 0x02, 0x04, 0x75, 0x11, 0x80, 0x7e, - 0x06, 0x04, 0x75, 0x09, 0xe8, 0xa9, 0xff, 0xe9, 0xa6, 0x00, 0xe9, 0xa3, 0x00, 0xeb, 0x0c, 0x80, - 0x7e, 0x06, 0x04, 0x75, 0x06, 0xe8, 0x2b, 0xff, 0xe9, 0x95, 0x00, 0xe8, 0x5f, 0xff, 0xe9, 0x8f, - 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x14, 0x00, 0x25, 0x24, 0x01, 0x8b, 0xd8, 0x33, 0x86, 0x93, - 0x02, 0x75, 0x02, 0xeb, 0x7b, 0xa9, 0x04, 0x00, 0x74, 0x15, 0xe8, 0x4b, 0xff, 0xf7, 0xc3, 0x04, - 0x00, 0x74, 0x07, 0xc6, 0x86, 0x92, 0x02, 0x01, 0xeb, 0x05, 0xc6, 0x86, 0x92, 0x02, 0x00, 0xa9, - 0x00, 0x01, 0x74, 0x14, 0xf7, 0xc3, 0x00, 0x01, 0x74, 0x0b, 0xf7, 0xc3, 0x20, 0x00, 0x75, 0x20, - 0xe8, 0x25, 0xff, 0xeb, 0x03, 0xe8, 0x20, 0xff, 0xa9, 0x20, 0x00, 0x74, 0x2f, 0xf7, 0xc3, 0x20, - 0x00, 0x74, 0x36, 0xf6, 0x86, 0x91, 0x02, 0x01, 0x74, 0x32, 0xf7, 0xc3, 0x00, 0x01, 0x74, 0x2c, - 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x02, 0x74, 0x16, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x01, 0x74, 0x0e, - 0xe8, 0x1d, 0xff, 0x81, 0xa6, 0xf6, 0x00, 0xff, 0xfe, 0xe8, 0x7e, 0xf2, 0xeb, 0x0e, 0xe8, 0xdc, - 0xfe, 0xb8, 0x0e, 0x00, 0xe8, 0x96, 0xfd, 0xeb, 0x03, 0xe8, 0xdc, 0xfe, 0x89, 0x9e, 0x93, 0x02, - 0xc3, 0x90, 0x55, 0x1e, 0x06, 0x33, 0xed, 0x8e, 0xdd, 0x8b, 0x2e, 0xe6, 0x54, 0x8e, 0x46, 0x02, - 0xeb, 0x00, 0x60, 0xfa, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x04, 0x00, 0x89, 0x86, 0x18, 0x01, 0xc7, - 0x86, 0x1c, 0x01, 0x01, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x06, 0x00, 0x89, 0x86, 0x1a, 0x01, - 0xb8, 0x07, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x06, 0x00, 0xb8, 0xff, 0xff, 0x8e, 0x46, 0x02, - 0x26, 0xa3, 0x04, 0x00, 0xfb, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x08, 0x00, 0x8b, 0xd8, 0x81, 0xe3, - 0xff, 0xfc, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, 0x08, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x8b, 0x1e, - 0x0a, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, 0x0a, 0x00, 0x50, 0xb0, 0xa0, 0xe6, 0x10, 0x58, - 0xa9, 0x00, 0x08, 0x74, 0x0f, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x74, 0x05, 0xe8, 0x0a, 0x32, 0xeb, - 0x03, 0xe8, 0x54, 0x2d, 0xa9, 0x00, 0x01, 0x75, 0x20, 0xf7, 0x86, 0xa3, 0x02, 0x01, 0x00, 0x75, - 0x1f, 0xa9, 0xcd, 0x01, 0x74, 0x1a, 0x80, 0xbe, 0x6a, 0x01, 0x0a, 0x72, 0x0c, 0xc7, 0x86, 0xa3, - 0x02, 0x01, 0x00, 0x81, 0x8e, 0x18, 0x01, 0xcd, 0x00, 0xfe, 0x86, 0x6a, 0x01, 0xe8, 0x90, 0x2e, - 0xa9, 0x00, 0x04, 0x74, 0x29, 0xf7, 0x86, 0x0a, 0x01, 0x01, 0x00, 0x75, 0x21, 0x8e, 0x46, 0x02, - 0x26, 0x81, 0x0e, 0x04, 0x00, 0x00, 0x04, 0xe8, 0x60, 0xed, 0xc7, 0x44, 0x02, 0x01, 0x00, 0x89, - 0x44, 0x04, 0xc7, 0x86, 0x0a, 0x01, 0x01, 0x00, 0x8d, 0x7e, 0x16, 0xe8, 0x6a, 0xed, 0xa9, 0x00, - 0x10, 0x74, 0x27, 0x80, 0xbe, 0x0c, 0x01, 0x01, 0x74, 0x20, 0xf6, 0x86, 0xb8, 0x01, 0x01, 0x75, - 0x19, 0xe8, 0x36, 0xed, 0xf7, 0xc6, 0xff, 0xff, 0x74, 0x10, 0xc7, 0x44, 0x02, 0x03, 0x00, 0xc6, - 0x86, 0xb8, 0x01, 0x01, 0x8d, 0x7e, 0x16, 0xe8, 0x3e, 0xed, 0xa9, 0x00, 0x20, 0x74, 0x2e, 0x80, - 0xbe, 0x0c, 0x01, 0x01, 0x75, 0x07, 0xc6, 0x86, 0x0d, 0x01, 0x01, 0xeb, 0x20, 0xf6, 0x86, 0xb9, - 0x01, 0x01, 0x75, 0x19, 0xe8, 0x03, 0xed, 0xf7, 0xc6, 0xff, 0xff, 0x74, 0x10, 0xc7, 0x44, 0x02, - 0x04, 0x00, 0xc6, 0x86, 0xb9, 0x01, 0x01, 0x8d, 0x7e, 0x16, 0xe8, 0x0b, 0xed, 0xfa, 0x8b, 0x86, - 0x18, 0x01, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x04, 0x00, 0xc7, 0x86, 0x1c, 0x01, 0x00, 0x00, 0x8b, - 0x86, 0x1a, 0x01, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x06, 0x00, 0x61, 0x07, 0x1f, 0x5d, 0xcf, 0x50, - 0x25, 0x00, 0x02, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x08, 0x00, 0x8b, 0x86, 0xc2, 0x02, 0x40, 0x89, - 0x86, 0xc2, 0x02, 0x83, 0xf8, 0x01, 0x75, 0x08, 0x56, 0xbe, 0xa9, 0x45, 0xe8, 0xab, 0xee, 0x5e, - 0x3b, 0x86, 0xc4, 0x01, 0x76, 0x0a, 0x80, 0xbe, 0x61, 0x02, 0x01, 0x74, 0x03, 0xe8, 0x95, 0x2e, - 0x58, 0xc3, 0x8d, 0x71, 0x18, 0x8b, 0x49, 0x14, 0x86, 0xcd, 0x83, 0xe9, 0x04, 0x7e, 0x1b, 0x33, - 0xc0, 0x03, 0xf0, 0x8a, 0x04, 0x0a, 0xc0, 0x74, 0x11, 0x3a, 0x54, 0x01, 0x74, 0x17, 0x32, 0xe4, - 0x3c, 0xff, 0x74, 0x0a, 0x2b, 0xc8, 0x72, 0x02, 0x77, 0xe7, 0x33, 0xc0, 0xf9, 0xc3, 0x8b, 0x44, - 0x02, 0x86, 0xc4, 0xeb, 0xef, 0x0a, 0xe4, 0x75, 0xf1, 0x38, 0xf0, 0x75, 0xed, 0x8d, 0x74, 0x02, - 0xf8, 0xc3, 0x8c, 0xd8, 0x8e, 0xc0, 0x8b, 0xb6, 0x52, 0x15, 0x8b, 0xbe, 0x54, 0x15, 0x47, 0xa5, - 0xa5, 0xa5, 0x8b, 0x4f, 0x04, 0x83, 0xc1, 0x07, 0x80, 0xe1, 0xfe, 0x8b, 0xc7, 0x2b, 0xc3, 0x2b, - 0xc8, 0x76, 0x0a, 0x81, 0xf9, 0x00, 0x01, 0x73, 0x09, 0xd1, 0xe9, 0xf3, 0xa5, 0x8b, 0x07, 0xe9, - 0xc9, 0x01, 0xb9, 0x19, 0x00, 0xf3, 0xa5, 0x33, 0xff, 0xf6, 0x47, 0x0e, 0x80, 0x74, 0x0e, 0x8b, - 0x47, 0x14, 0x83, 0xe0, 0x1f, 0x74, 0x0f, 0xa8, 0x01, 0x75, 0x0b, 0x8b, 0xf8, 0xba, 0x80, 0x09, - 0x68, 0x2e, 0x24, 0xe9, 0xab, 0x05, 0xe9, 0x99, 0x02, 0xc3, 0x80, 0x7f, 0x17, 0x02, 0x75, 0xf9, - 0x50, 0x56, 0x8b, 0xb6, 0xc4, 0x05, 0x8b, 0x04, 0x5e, 0x3b, 0x86, 0xc2, 0x01, 0x74, 0x07, 0x89, - 0x86, 0xc2, 0x01, 0x58, 0xeb, 0x3d, 0x58, 0xeb, 0x12, 0x8a, 0x4f, 0x07, 0x80, 0xe1, 0x3f, 0x74, - 0xd8, 0x8a, 0xe9, 0x86, 0x8e, 0xfa, 0x01, 0x38, 0xcd, 0x75, 0x18, 0x57, 0x51, 0x8d, 0xbe, 0xfc, - 0x01, 0x8d, 0x77, 0x0e, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x75, 0x06, 0x59, - 0x5f, 0xeb, 0xb6, 0x57, 0x51, 0x8d, 0xbe, 0xfc, 0x01, 0x8d, 0x77, 0x0e, 0xb9, 0x03, 0x00, 0xf3, - 0xa5, 0x59, 0x5f, 0xeb, 0x0d, 0x8b, 0x7e, 0x04, 0x58, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x01, 0x00, - 0x74, 0xf7, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x08, 0x80, 0x7e, 0x06, 0x48, 0x74, 0x02, 0xeb, 0xe9, - 0x50, 0x8c, 0xd8, 0x8e, 0xc0, 0x8b, 0x07, 0xa9, 0x00, 0x40, 0x75, 0xdc, 0x0d, 0x00, 0x40, 0x89, - 0x07, 0xe8, 0x8a, 0x00, 0x8b, 0x4f, 0x04, 0x83, 0xc1, 0x03, 0x80, 0xe1, 0xfe, 0x89, 0x7e, 0x04, - 0x8b, 0xbe, 0xbe, 0x01, 0x3b, 0xfe, 0x72, 0x11, 0x8d, 0x86, 0x52, 0x08, 0x05, 0xff, 0x00, 0x2b, - 0xc7, 0x3b, 0xc1, 0x7d, 0x0a, 0x8d, 0xbe, 0x52, 0x08, 0x2b, 0xf7, 0x3b, 0xf1, 0x7c, 0xa6, 0x8b, - 0xd7, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8b, 0xf3, 0xd1, 0xe9, 0x83, 0xc7, 0x02, 0x49, 0xad, - 0xf3, 0xa5, 0x8b, 0xcf, 0xc7, 0x05, 0x00, 0x00, 0x8b, 0xfa, 0x89, 0x4d, 0x02, 0x51, 0x8b, 0x4d, - 0x04, 0x83, 0xe9, 0x04, 0x89, 0x4d, 0x04, 0x59, 0x89, 0x05, 0x8d, 0x86, 0x52, 0x08, 0x3b, 0xf8, - 0x75, 0x0e, 0x8b, 0x86, 0xbc, 0x01, 0x3b, 0x86, 0xbe, 0x01, 0x75, 0x1c, 0x89, 0xbe, 0xbc, 0x01, - 0x89, 0x8e, 0xbe, 0x01, 0x8b, 0x7e, 0x04, 0xc7, 0x86, 0xc0, 0x01, 0x00, 0x00, 0xb9, 0x40, 0x60, - 0x8e, 0xc1, 0xe8, 0x29, 0x21, 0xe9, 0x4d, 0xff, 0x97, 0x89, 0x45, 0x02, 0xeb, 0xe2, 0x8b, 0xb6, - 0xbc, 0x01, 0xf7, 0x86, 0xc0, 0x01, 0x01, 0x00, 0x75, 0x0f, 0x81, 0x3c, 0x00, 0x80, 0x75, 0x05, - 0x8b, 0x74, 0x02, 0xeb, 0xf5, 0x89, 0xb6, 0xbc, 0x01, 0xc3, 0xf7, 0x07, 0x01, 0x09, 0x74, 0x03, - 0xe9, 0x5f, 0x01, 0xf7, 0x07, 0x00, 0x10, 0x75, 0x33, 0x68, 0x42, 0x23, 0xe9, 0x9d, 0x24, 0xa8, - 0x02, 0x74, 0x21, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x1b, 0x80, 0xbe, 0x5e, 0x02, 0x00, 0x74, 0x14, - 0x24, 0x28, 0x3c, 0x28, 0x75, 0x0e, 0xf6, 0x47, 0x0e, 0x80, 0x75, 0x67, 0x81, 0x8e, 0xda, 0x02, - 0x80, 0x00, 0xeb, 0x5f, 0xeb, 0x5d, 0xe9, 0x39, 0xfe, 0x90, 0xeb, 0xd3, 0xeb, 0x38, 0x8b, 0x47, - 0x14, 0x83, 0xe0, 0x1f, 0x74, 0x06, 0xa8, 0x01, 0x8b, 0xf8, 0x74, 0x4f, 0xe9, 0x13, 0x01, 0x50, - 0x8b, 0x9e, 0xb2, 0x01, 0x8b, 0x07, 0xa9, 0x00, 0x20, 0x74, 0x0b, 0xff, 0x86, 0x3c, 0x02, 0x8b, - 0x4f, 0x04, 0x01, 0x8e, 0x3e, 0x02, 0xe8, 0x81, 0x03, 0x75, 0xcb, 0xf6, 0x47, 0x07, 0x40, 0x74, - 0x05, 0xe8, 0x9e, 0x03, 0xeb, 0x78, 0xf7, 0x86, 0xb6, 0x01, 0x00, 0x02, 0x75, 0x11, 0xa9, 0x01, - 0x09, 0x75, 0x6b, 0x80, 0x7e, 0x07, 0x10, 0x74, 0x65, 0x80, 0x7e, 0x07, 0x12, 0x74, 0x5f, 0xa8, - 0x28, 0x75, 0xa7, 0x33, 0xff, 0xf6, 0x47, 0x0e, 0x80, 0x75, 0xa3, 0x8b, 0x47, 0x04, 0x83, 0xf8, - 0x12, 0x77, 0x05, 0x33, 0xc0, 0xe9, 0x7d, 0x01, 0x83, 0xe8, 0x12, 0x2b, 0xc7, 0x83, 0xf8, 0x04, - 0x7c, 0x3e, 0x8b, 0x49, 0x16, 0x88, 0xae, 0x04, 0x02, 0x51, 0x80, 0xe1, 0xf0, 0x80, 0xf9, 0x00, - 0x74, 0x09, 0x80, 0xf9, 0x30, 0x74, 0x04, 0x59, 0xe9, 0x97, 0x00, 0x59, 0x0b, 0xff, 0x74, 0x0f, - 0xf6, 0xc1, 0x0f, 0x74, 0x19, 0x80, 0xf9, 0x33, 0x74, 0x14, 0x80, 0xf9, 0x03, 0x74, 0x0f, 0x86, - 0xc4, 0x39, 0x41, 0x14, 0x86, 0xc4, 0x75, 0x02, 0xeb, 0x0e, 0xe9, 0x33, 0x01, 0x90, 0xeb, 0x72, - 0xe9, 0x32, 0x01, 0x90, 0xe9, 0x3a, 0x01, 0x90, 0xf6, 0x86, 0x90, 0x02, 0x01, 0x74, 0x03, 0xe8, - 0x6b, 0xfa, 0x80, 0xfd, 0x15, 0x77, 0x11, 0x80, 0xfd, 0x01, 0x74, 0xe8, 0x80, 0xfd, 0x09, 0x74, - 0xe3, 0x80, 0xfd, 0x0a, 0x74, 0xde, 0xeb, 0x11, 0x80, 0xfd, 0x20, 0x72, 0xd7, 0x80, 0xfd, 0x29, - 0x77, 0xd2, 0x80, 0xfd, 0x21, 0x74, 0xcd, 0xeb, 0xc5, 0x80, 0xfd, 0x10, 0x76, 0x02, 0xeb, 0x0a, - 0x80, 0xfd, 0x0e, 0x73, 0x28, 0x80, 0xfd, 0x15, 0x77, 0x23, 0x53, 0x8b, 0xd9, 0xc1, 0xeb, 0x08, - 0x80, 0xe1, 0x0f, 0x3a, 0x8f, 0x74, 0x04, 0x74, 0x13, 0x83, 0xfb, 0x0b, 0x74, 0x09, 0x83, 0xfb, - 0x0c, 0x74, 0x04, 0x5b, 0xe9, 0xd3, 0x00, 0x80, 0xf9, 0x08, 0x75, 0xf7, 0x5b, 0xe9, 0x81, 0x01, - 0x5b, 0x5f, 0x8b, 0x9e, 0xb2, 0x01, 0xf7, 0x86, 0xf6, 0x00, 0x01, 0x00, 0x74, 0x28, 0x80, 0x7e, - 0x06, 0x0e, 0x74, 0x06, 0x80, 0x7e, 0x06, 0x48, 0x75, 0x1c, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x08, - 0x74, 0x06, 0x68, 0x62, 0x24, 0xe9, 0x61, 0xfd, 0xf7, 0x86, 0x12, 0x01, 0x80, 0x00, 0x74, 0x06, - 0x68, 0x62, 0x24, 0xe9, 0x34, 0xfd, 0x8b, 0x5f, 0x02, 0x89, 0x9e, 0xb2, 0x01, 0x8b, 0xc3, 0x83, - 0xe8, 0x02, 0x3b, 0x86, 0x52, 0x15, 0x77, 0x04, 0x8b, 0x86, 0x54, 0x15, 0x8e, 0x46, 0x02, 0x26, - 0xa3, 0x38, 0x00, 0x80, 0xbe, 0x2d, 0x01, 0x01, 0x75, 0x1b, 0x2d, 0x00, 0x02, 0x3b, 0x86, 0x52, - 0x15, 0x73, 0x0e, 0x53, 0x8b, 0xd8, 0x2b, 0x9e, 0x52, 0x15, 0x8b, 0x86, 0x54, 0x15, 0x2b, 0xc3, - 0x5b, 0x26, 0xa3, 0x6c, 0x00, 0xfa, 0x8b, 0x07, 0xa9, 0x00, 0x80, 0x74, 0x17, 0xfb, 0xff, 0x86, - 0x3c, 0x01, 0x83, 0xbe, 0x3c, 0x01, 0x05, 0x77, 0x1c, 0x8a, 0x4e, 0x09, 0x3a, 0x4e, 0x08, 0x75, - 0x14, 0xe9, 0x62, 0xfe, 0xc6, 0x86, 0xb9, 0x01, 0x00, 0xfb, 0xc7, 0x86, 0x3c, 0x01, 0x00, 0x00, - 0x58, 0xc3, 0xe9, 0x5d, 0xff, 0xe8, 0xc2, 0xe8, 0xf7, 0xc6, 0xff, 0xff, 0x74, 0xe6, 0xc7, 0x44, - 0x02, 0x04, 0x00, 0xc6, 0x86, 0xb9, 0x01, 0x01, 0x8d, 0x7e, 0x16, 0xe8, 0xca, 0xe8, 0xeb, 0xda, - 0xba, 0x80, 0x02, 0xeb, 0x1d, 0xba, 0x80, 0x01, 0xeb, 0x18, 0xba, 0x80, 0x04, 0xeb, 0x13, 0x5f, - 0x5b, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x10, 0x74, 0x06, 0x68, 0x62, 0x24, 0xe9, 0xeb, 0xfc, 0xba, - 0x80, 0x03, 0x33, 0xc0, 0x8e, 0xc0, 0x68, 0x2e, 0x24, 0xe9, 0x25, 0x02, 0x33, 0xd2, 0x32, 0xed, - 0x8a, 0x4d, 0xff, 0x89, 0x55, 0x02, 0x83, 0xc7, 0x05, 0xe2, 0xf8, 0xf6, 0x86, 0x5f, 0x02, 0x01, - 0x74, 0x38, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x0b, 0xc6, 0x46, 0x09, 0x04, 0xc6, 0x86, 0x5f, 0x02, - 0x00, 0xeb, 0x24, 0x80, 0x7e, 0x08, 0x06, 0x75, 0x21, 0xc6, 0x86, 0x5f, 0x02, 0x00, 0xc6, 0x86, - 0x69, 0x02, 0x01, 0xe8, 0x84, 0xec, 0xbe, 0x79, 0x45, 0xe8, 0x3e, 0xea, 0x50, 0x53, 0x33, 0xc0, - 0x8e, 0xc0, 0xe8, 0xa6, 0x02, 0x5b, 0x58, 0xbb, 0x00, 0x00, 0x8b, 0xf8, 0x8b, 0xf3, 0x5b, 0x57, - 0x53, 0x68, 0x2c, 0x24, 0xff, 0x66, 0x12, 0xeb, 0x87, 0x8b, 0xc7, 0x8b, 0xbf, 0x8a, 0x04, 0x0b, - 0xff, 0x78, 0xf4, 0x74, 0xa6, 0x03, 0xfd, 0xf6, 0x45, 0x01, 0x80, 0x75, 0x02, 0xeb, 0x8d, 0xe9, - 0x21, 0x01, 0xe9, 0x03, 0x01, 0x5f, 0x5b, 0xba, 0x80, 0x08, 0xe9, 0x75, 0xff, 0x8b, 0x54, 0x02, - 0x86, 0xd6, 0x83, 0xc6, 0x02, 0xb0, 0x04, 0xeb, 0x51, 0x5f, 0x5b, 0xba, 0x80, 0x05, 0xe9, 0x61, - 0xff, 0x53, 0x8d, 0x71, 0x18, 0x32, 0xff, 0x8a, 0xdd, 0xd1, 0xe3, 0x83, 0xe8, 0x04, 0x0b, 0xc0, - 0x74, 0xb7, 0x89, 0x46, 0x04, 0x57, 0x8b, 0xbf, 0x8a, 0x04, 0x0b, 0xff, 0x74, 0xc4, 0x79, 0x03, - 0xe9, 0x2c, 0xff, 0x03, 0xfd, 0x8e, 0xc7, 0x33, 0xc0, 0x32, 0xed, 0x8a, 0x4d, 0xff, 0x89, 0x45, - 0x02, 0x83, 0xc7, 0x05, 0xe2, 0xf8, 0x33, 0xd2, 0x03, 0xf2, 0x8a, 0x4c, 0x01, 0x8a, 0x14, 0x0a, - 0xd2, 0x74, 0xb6, 0x80, 0xfa, 0xff, 0x74, 0xa5, 0xb0, 0x02, 0x29, 0x56, 0x04, 0x72, 0xaa, 0x0a, - 0xc9, 0x78, 0x92, 0x8a, 0xe1, 0x80, 0xe1, 0x3f, 0x8c, 0xc7, 0x8a, 0x6d, 0xff, 0xeb, 0x12, 0x80, - 0x7d, 0x04, 0xff, 0x74, 0x15, 0xeb, 0x92, 0xe9, 0x7b, 0xff, 0xfe, 0xcd, 0x74, 0xf9, 0x83, 0xc7, - 0x05, 0x3a, 0x0d, 0x75, 0xf5, 0x3a, 0x55, 0x04, 0x75, 0xe5, 0x8d, 0x44, 0x02, 0x87, 0x45, 0x02, - 0x0b, 0xc0, 0x74, 0x09, 0xf6, 0x45, 0x01, 0x80, 0x75, 0xdd, 0x89, 0x45, 0x02, 0x83, 0x7e, 0x04, - 0x00, 0x75, 0xa5, 0x33, 0xc0, 0x8c, 0xc6, 0xf6, 0x44, 0x01, 0x80, 0x74, 0x0e, 0x39, 0x44, 0x02, - 0x74, 0x60, 0x83, 0xc6, 0x05, 0xf6, 0x44, 0x01, 0x80, 0x75, 0xf2, 0xf6, 0x86, 0x5f, 0x02, 0x01, - 0x74, 0x36, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x0b, 0xc6, 0x86, 0x5f, 0x02, 0x00, 0xc6, 0x46, 0x09, - 0x04, 0xeb, 0x22, 0x80, 0x7e, 0x08, 0x06, 0x75, 0x1f, 0xc6, 0x86, 0x5f, 0x02, 0x00, 0xc6, 0x86, - 0x69, 0x02, 0x01, 0xe8, 0x54, 0xeb, 0xbe, 0x79, 0x45, 0xe8, 0x0e, 0xe9, 0x33, 0xc0, 0x8e, 0xc0, - 0x53, 0xe8, 0x77, 0x01, 0x5b, 0xbb, 0x00, 0x00, 0x89, 0x5e, 0x04, 0x8b, 0xf3, 0x5f, 0x5b, 0x33, - 0xc0, 0x8e, 0xc0, 0x3b, 0xb6, 0xba, 0x01, 0x73, 0x06, 0x68, 0x2e, 0x24, 0xff, 0x66, 0x12, 0xe9, - 0x80, 0xfd, 0x5f, 0x5b, 0xba, 0x80, 0x07, 0xe9, 0x58, 0xfe, 0x56, 0x57, 0x50, 0x33, 0xc0, 0x8e, - 0xc0, 0x8b, 0xb6, 0x52, 0x15, 0x8b, 0xbe, 0x54, 0x15, 0x83, 0xc7, 0x01, 0xa5, 0xa5, 0xa5, 0x8b, - 0xc3, 0x03, 0x47, 0x04, 0x8b, 0xbe, 0x54, 0x15, 0x3b, 0xc7, 0x7f, 0x02, 0x32, 0xc0, 0x58, 0x5f, - 0x5e, 0xc3, 0x80, 0xbe, 0x2d, 0x01, 0x01, 0x75, 0x57, 0x53, 0x33, 0xff, 0xf6, 0x47, 0x0e, 0x80, - 0x74, 0x0e, 0x8b, 0x47, 0x14, 0x83, 0xe0, 0x1f, 0x74, 0x45, 0xa8, 0x01, 0x75, 0x41, 0x8b, 0xf8, - 0x83, 0xc3, 0x06, 0x8d, 0xb6, 0xec, 0x15, 0x33, 0xc0, 0x33, 0xc9, 0x8a, 0x0c, 0x80, 0xf9, 0x00, - 0x74, 0x2d, 0x53, 0x46, 0x8a, 0x04, 0x03, 0xd8, 0x80, 0x3c, 0x0e, 0x72, 0x02, 0x03, 0xdf, 0x46, - 0x8a, 0x04, 0x3a, 0x07, 0x75, 0x07, 0x5b, 0xfe, 0xc9, 0x74, 0x0a, 0xeb, 0xe5, 0x5b, 0x03, 0xf1, - 0x03, 0xf1, 0x4e, 0xeb, 0xd6, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x72, 0x00, 0x00, 0x01, 0x5b, - 0xc3, 0x8c, 0xd8, 0x8e, 0xc0, 0xf6, 0x41, 0x16, 0x0f, 0x74, 0x60, 0x89, 0x96, 0xe2, 0x02, 0x81, - 0xfa, 0x80, 0x02, 0x74, 0x13, 0xba, 0x09, 0x04, 0xe8, 0xa7, 0xf9, 0x72, 0x0b, 0xad, 0x86, 0xe0, - 0x89, 0x86, 0x14, 0x02, 0x86, 0xe0, 0xeb, 0x06, 0x8b, 0x86, 0x14, 0x02, 0x86, 0xe0, 0x89, 0x86, - 0xde, 0x02, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0x4d, 0x22, 0x57, 0x53, 0xe8, 0xa0, 0x05, 0x5a, 0x5f, - 0x72, 0x29, 0x57, 0xe8, 0x26, 0x00, 0xb8, 0x00, 0x0e, 0xab, 0x47, 0xb0, 0x00, 0xaa, 0x8d, 0xb6, - 0xdc, 0x02, 0xa5, 0xa5, 0x8d, 0xb6, 0xe0, 0x02, 0xa5, 0xa5, 0x55, 0x8b, 0xea, 0x8a, 0x47, 0x16, - 0x8a, 0x66, 0x17, 0xab, 0x5d, 0xe8, 0x14, 0x06, 0x8b, 0xda, 0x5f, 0xc3, 0x55, 0x8b, 0xea, 0x8a, - 0x43, 0x16, 0xc0, 0xe0, 0x04, 0x88, 0x41, 0x16, 0xc7, 0x47, 0x06, 0xe0, 0x00, 0x83, 0xe9, 0x06, - 0x89, 0x4f, 0x04, 0x0b, 0xff, 0x75, 0x18, 0x8d, 0x76, 0x0e, 0x8d, 0x7f, 0x08, 0x8c, 0xd8, 0x8e, - 0xc0, 0xa5, 0xa5, 0xa5, 0x8b, 0xd5, 0x5d, 0x8d, 0xb6, 0xf4, 0x02, 0xa5, 0xa5, 0xa5, 0xc3, 0x8b, - 0xcf, 0xd1, 0xe9, 0x8d, 0x76, 0x0e, 0x8d, 0x7f, 0x08, 0x8c, 0xd8, 0x8e, 0xc0, 0xad, 0x24, 0x7f, - 0xab, 0xa5, 0xa5, 0x8b, 0xd5, 0x5d, 0x56, 0x8d, 0xb6, 0xf4, 0x02, 0xad, 0x0c, 0x80, 0xab, 0xa5, - 0xa5, 0x5e, 0xad, 0x80, 0xcc, 0x80, 0xab, 0x49, 0xf3, 0xa5, 0xc3, 0x8b, 0x86, 0x00, 0x03, 0x86, - 0xe0, 0x89, 0x86, 0x10, 0x02, 0x89, 0x86, 0x02, 0x02, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0xbe, 0xfc, - 0x01, 0x8d, 0xb6, 0xf4, 0x02, 0xb9, 0x03, 0x00, 0xf3, 0xa5, 0xb9, 0x2a, 0x00, 0xe8, 0xd4, 0x04, - 0x72, 0xd8, 0x8d, 0xb6, 0xe6, 0x02, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, - 0xe9, 0x80, 0x05, 0xb9, 0x26, 0x00, 0xe8, 0xbb, 0x04, 0x72, 0x62, 0x8d, 0xb6, 0x10, 0x03, 0x8b, - 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0x67, 0x05, 0x8d, 0x7f, 0x08, 0x8b, - 0x4f, 0x04, 0x83, 0xc1, 0x03, 0x80, 0xe1, 0xfe, 0x57, 0xe8, 0x98, 0x04, 0x5f, 0x8b, 0xd7, 0x72, - 0x22, 0x83, 0xe9, 0x08, 0x8d, 0x7f, 0x04, 0x8c, 0xd8, 0x8e, 0xc0, 0x8b, 0xc1, 0xab, 0x8b, 0x86, - 0x16, 0x03, 0xab, 0x8b, 0xf2, 0xd1, 0xe9, 0x49, 0xf3, 0xa5, 0xbe, 0x55, 0x45, 0xe8, 0x0a, 0xe7, - 0xe9, 0x30, 0x05, 0xc3, 0xb9, 0x26, 0x00, 0xe8, 0x6a, 0x04, 0x72, 0x11, 0x8c, 0xd8, 0x8e, 0xc0, - 0x8d, 0xb6, 0x36, 0x03, 0x8b, 0xfb, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0x16, 0x05, 0xc3, 0xb9, 0x26, - 0x00, 0xe8, 0x6a, 0x04, 0x72, 0xf7, 0x8d, 0xb6, 0x5c, 0x03, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, - 0xd1, 0xe9, 0xf3, 0xa5, 0xc6, 0x86, 0x63, 0x02, 0x01, 0x80, 0xbe, 0x83, 0x02, 0x01, 0x75, 0x03, - 0xe9, 0xe9, 0x04, 0x68, 0x6f, 0x2c, 0xe9, 0xe3, 0x04, 0xb9, 0x26, 0x00, 0xe8, 0x3f, 0x04, 0x72, - 0xcc, 0x8d, 0xb6, 0x82, 0x03, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xc6, - 0x86, 0x63, 0x02, 0x01, 0x80, 0xbe, 0x83, 0x02, 0x01, 0x75, 0x03, 0xe9, 0xbe, 0x04, 0x68, 0x6f, - 0x2c, 0xe9, 0xb8, 0x04, 0xb9, 0x18, 0x00, 0xe8, 0x14, 0x04, 0x72, 0xa1, 0x8d, 0xb6, 0xa8, 0x03, - 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0x9f, 0x04, 0x83, 0xc1, 0x1c, - 0x56, 0x57, 0x52, 0xe8, 0xf8, 0x03, 0x5a, 0x5f, 0x5e, 0x72, 0x6c, 0x56, 0x8c, 0xd8, 0x8e, 0xc0, - 0x83, 0xe9, 0x08, 0x8b, 0xc1, 0x8d, 0x7f, 0x04, 0xab, 0xba, 0xe0, 0x00, 0x8b, 0xc2, 0xab, 0x8d, - 0xb6, 0xc8, 0x03, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0xf4, 0x02, 0x80, 0xbe, 0x62, 0x01, 0x01, 0x75, - 0x04, 0x8d, 0xb6, 0x00, 0x01, 0xa5, 0xa5, 0xa5, 0x83, 0xe9, 0x0e, 0x80, 0xbe, 0x63, 0x01, 0x02, - 0x75, 0x03, 0x83, 0xe9, 0x04, 0x8b, 0xc1, 0x86, 0xe0, 0xab, 0xb8, 0x00, 0x08, 0xab, 0xb8, 0xff, - 0x26, 0xab, 0x83, 0xe9, 0x04, 0x8b, 0xc1, 0x86, 0xe0, 0xab, 0x5e, 0xe9, 0x3e, 0x04, 0xb9, 0x44, - 0x00, 0xe8, 0x9a, 0x03, 0x72, 0x11, 0x8d, 0xb6, 0xda, 0x03, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, - 0xd1, 0xe9, 0xf3, 0xa5, 0xe8, 0x25, 0x04, 0xc3, 0xb9, 0x36, 0x00, 0xe8, 0x80, 0x03, 0x72, 0xf7, - 0xff, 0x86, 0x52, 0x02, 0x8d, 0xb6, 0x7c, 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, - 0xf3, 0xa5, 0x33, 0xc0, 0x8d, 0xbe, 0x96, 0x05, 0xab, 0xab, 0xaa, 0x8d, 0xbe, 0x9e, 0x05, 0xab, - 0xab, 0xaa, 0xe9, 0xf7, 0x03, 0x8d, 0x4d, 0x3a, 0x57, 0x53, 0xe8, 0x51, 0x03, 0x5a, 0x5f, 0x72, - 0x5b, 0x57, 0xe8, 0xd7, 0xfd, 0x8c, 0xd8, 0x8e, 0xc0, 0xb8, 0x00, 0x26, 0xab, 0x47, 0xb0, 0x22, - 0xaa, 0x8d, 0xb6, 0xdc, 0x02, 0xa5, 0xa5, 0x8d, 0xb6, 0x02, 0x03, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, - 0x08, 0x03, 0xa5, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0x1e, 0x04, 0xa5, 0xa5, 0x8d, 0xb6, 0x22, 0x04, - 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0x28, 0x04, 0xa5, 0x53, 0x8c, 0xdb, 0x8e, 0x46, 0x02, 0x26, 0xa1, - 0x26, 0x00, 0xe8, 0x6b, 0xe2, 0x8e, 0xc3, 0xab, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x24, 0x00, 0xe8, - 0x5e, 0xe2, 0x8e, 0xc3, 0xab, 0x5b, 0xe8, 0x93, 0x03, 0x8b, 0xda, 0x5f, 0xc3, 0x8d, 0x4d, 0x38, - 0x57, 0x53, 0xe8, 0xe9, 0x02, 0x5a, 0x5f, 0x72, 0xf3, 0x57, 0xe8, 0x6f, 0xfd, 0x8c, 0xd8, 0x8e, - 0xc0, 0xb8, 0x00, 0x24, 0xab, 0x47, 0xb0, 0x23, 0xaa, 0x8d, 0xb6, 0xdc, 0x02, 0xa5, 0xa5, 0x8d, - 0xb6, 0xf2, 0x03, 0xb9, 0x06, 0x00, 0xf3, 0xa5, 0x8d, 0xb6, 0x36, 0x04, 0xa5, 0xa5, 0xa5, 0xa5, - 0x8d, 0xb6, 0x2e, 0x04, 0xa5, 0xa5, 0xa5, 0xa5, 0xe8, 0x51, 0x03, 0x8b, 0xda, 0x5f, 0xc3, 0x8d, - 0x4d, 0x3e, 0x57, 0x53, 0xe8, 0xa7, 0x02, 0x5a, 0x5f, 0x72, 0x64, 0x57, 0xe8, 0x2d, 0xfd, 0x8c, - 0xd8, 0x8e, 0xc0, 0xb8, 0x00, 0x2a, 0xab, 0x47, 0xb0, 0x24, 0xaa, 0x8d, 0xb6, 0xdc, 0x02, 0xa5, - 0xa5, 0x8d, 0xb6, 0x06, 0x04, 0xb9, 0x0a, 0x00, 0xf3, 0xa5, 0x8d, 0xb6, 0x28, 0x04, 0xa5, 0x53, - 0x8c, 0xdb, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x26, 0x00, 0xe8, 0xd4, 0xe1, 0x8e, 0xc3, 0xab, 0x8e, - 0x46, 0x02, 0x26, 0xa1, 0x24, 0x00, 0xe8, 0xc7, 0xe1, 0x8e, 0xc3, 0xab, 0x5b, 0x8c, 0xd8, 0x8e, - 0xc0, 0x8d, 0xb6, 0x3e, 0x04, 0xa5, 0x8b, 0x86, 0xf8, 0x01, 0x86, 0xc4, 0xab, 0x8d, 0xb6, 0x42, - 0x04, 0xa5, 0x8b, 0x86, 0xf6, 0x01, 0x86, 0xc4, 0xab, 0xe8, 0xe0, 0x02, 0x8b, 0xda, 0x5f, 0xc3, - 0xb9, 0x3a, 0x00, 0xe8, 0x38, 0x02, 0x72, 0xf7, 0x8d, 0xb6, 0x46, 0x04, 0x8b, 0xfb, 0x8c, 0xd8, - 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0x80, 0xbe, 0x83, 0x02, 0x01, 0x75, 0x03, 0xe9, 0xbc, 0x02, - 0x68, 0x6f, 0x2c, 0xe9, 0xb6, 0x02, 0xb9, 0x26, 0x00, 0xe8, 0x12, 0x02, 0x72, 0xd1, 0xff, 0x86, - 0x4e, 0x02, 0x8d, 0xb6, 0x80, 0x04, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, - 0x80, 0xbe, 0x83, 0x02, 0x01, 0x75, 0x03, 0xe9, 0x92, 0x02, 0x68, 0x6f, 0x2c, 0xe9, 0x8c, 0x02, - 0xb9, 0x20, 0x00, 0xe8, 0xe8, 0x01, 0x72, 0xa7, 0x8d, 0xb6, 0xee, 0x01, 0x8d, 0xbe, 0xc0, 0x04, - 0x8c, 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0xa6, 0x04, 0x8b, 0xfb, 0xd1, 0xe9, 0xf3, - 0xa5, 0x80, 0xbe, 0x83, 0x02, 0x01, 0x75, 0x03, 0xe9, 0x61, 0x02, 0x68, 0x6f, 0x2c, 0xe9, 0x5b, - 0x02, 0x89, 0x86, 0xe0, 0x04, 0x86, 0xc4, 0x89, 0x86, 0x0e, 0x02, 0xb9, 0x2a, 0x00, 0xe8, 0xad, - 0x01, 0x72, 0x19, 0x8d, 0xb6, 0xc6, 0x04, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, - 0xa5, 0x80, 0xbe, 0x83, 0x02, 0x01, 0x75, 0x08, 0xe9, 0x31, 0x02, 0x90, 0xe9, 0x22, 0x01, 0x90, - 0x68, 0x6f, 0x2c, 0xe9, 0x26, 0x02, 0xb9, 0x18, 0x00, 0xe8, 0x82, 0x01, 0x73, 0x03, 0xe9, 0x3e, - 0xff, 0x8d, 0xb6, 0x64, 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, - 0x0a, 0x02, 0xb9, 0x24, 0x00, 0xe8, 0x66, 0x01, 0x73, 0x03, 0xe9, 0x22, 0xff, 0x8b, 0x86, 0x0e, - 0x05, 0x86, 0xc4, 0x89, 0x86, 0x26, 0x02, 0x8d, 0xb6, 0xf0, 0x04, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, - 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0xe4, 0x01, 0xb9, 0x1c, 0x00, 0xe8, 0x40, 0x01, 0x73, 0x03, - 0xe9, 0xfc, 0xfe, 0x8d, 0xb6, 0x14, 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, - 0xa5, 0xe9, 0xc8, 0x01, 0xb9, 0x18, 0x00, 0xe8, 0x24, 0x01, 0x73, 0x03, 0xe9, 0xe0, 0xfe, 0x8d, - 0xb6, 0x30, 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0xac, 0x01, - 0xb9, 0x1c, 0x00, 0x50, 0xe8, 0x07, 0x01, 0x58, 0x73, 0x03, 0xe9, 0xc2, 0xfe, 0x8d, 0xb6, 0x48, - 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0x8e, 0x01, 0x8b, 0x4f, - 0x04, 0x53, 0xe8, 0xe9, 0x00, 0x5e, 0x72, 0x17, 0x89, 0x9e, 0x38, 0x02, 0x8b, 0xfb, 0x8c, 0xd8, - 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xc7, 0x86, 0x3a, 0x02, 0x01, 0x00, 0xe9, 0x6d, 0x01, 0xe9, - 0x54, 0x11, 0xb9, 0x18, 0x00, 0xe8, 0xc6, 0x00, 0x8d, 0xb6, 0xa8, 0x03, 0x8b, 0xfb, 0x8c, 0xd8, - 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0x33, 0xc0, 0x8d, 0x7f, 0x08, 0xb9, 0x06, 0x00, 0xf3, 0xab, - 0xe9, 0x49, 0x01, 0x53, 0x8b, 0x9e, 0xb0, 0x01, 0x8b, 0xb6, 0xae, 0x01, 0x3b, 0xde, 0x74, 0x15, - 0x8a, 0x47, 0x17, 0xf6, 0x44, 0x0e, 0x80, 0x75, 0x0e, 0x38, 0x44, 0x17, 0x75, 0x09, 0x8b, 0x74, - 0x02, 0x89, 0xb6, 0xae, 0x01, 0xeb, 0x1a, 0x8b, 0xfe, 0x8b, 0x74, 0x02, 0x3b, 0xde, 0x74, 0x11, - 0xf6, 0x44, 0x0e, 0x80, 0x75, 0xf1, 0x38, 0x44, 0x17, 0x75, 0xec, 0x8b, 0x44, 0x02, 0x89, 0x45, - 0x02, 0x5b, 0xc3, 0xe8, 0x50, 0xdd, 0xc6, 0x86, 0x83, 0x02, 0x00, 0x8d, 0xb6, 0xa6, 0x01, 0x8d, - 0xbe, 0xac, 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, - 0x00, 0x00, 0x00, 0x16, 0x8d, 0x9e, 0x52, 0x12, 0x89, 0x9e, 0xa8, 0x01, 0x89, 0x9e, 0xaa, 0x01, - 0xc7, 0x07, 0x30, 0x80, 0xc7, 0x47, 0x04, 0x00, 0x00, 0x83, 0xc3, 0x08, 0x89, 0x9e, 0xa6, 0x01, - 0xc6, 0x86, 0x86, 0x02, 0x01, 0x83, 0xc1, 0x02, 0xeb, 0x4a, 0x8b, 0x9e, 0xac, 0x01, 0x8b, 0xb6, - 0xae, 0x01, 0xeb, 0x29, 0x80, 0xbe, 0x83, 0x02, 0x01, 0x74, 0xa8, 0x8d, 0x96, 0x52, 0x15, 0x8d, - 0xbe, 0x52, 0x12, 0x8b, 0x9e, 0xa6, 0x01, 0x8b, 0xb6, 0xa8, 0x01, 0xeb, 0x18, 0x90, 0x8b, 0x9e, - 0xa6, 0x01, 0x8b, 0xb6, 0xa8, 0x01, 0x80, 0xbe, 0x83, 0x02, 0x01, 0x75, 0xcd, 0x8d, 0x96, 0x52, - 0x12, 0x8d, 0xbe, 0x52, 0x09, 0x83, 0xc1, 0x02, 0x3b, 0xde, 0x73, 0x17, 0x8b, 0xc6, 0x2b, 0xc3, - 0x3b, 0xc1, 0x72, 0x25, 0xc7, 0x07, 0x00, 0x00, 0x83, 0xc3, 0x02, 0xc7, 0x07, 0x00, 0x00, 0x83, - 0xe9, 0x02, 0xc3, 0x8b, 0xc2, 0x2b, 0xc3, 0x3b, 0xc1, 0x72, 0x02, 0xeb, 0xe7, 0x8b, 0xdf, 0x8b, - 0xc6, 0x2b, 0xc3, 0x3b, 0xc1, 0x72, 0x02, 0xeb, 0xdb, 0x3b, 0xb6, 0xae, 0x01, 0x74, 0x11, 0x80, - 0xbe, 0x5e, 0x02, 0x01, 0x75, 0x05, 0x83, 0x8e, 0xda, 0x02, 0x02, 0xe8, 0x5c, 0x01, 0xf9, 0xc3, - 0x8b, 0x74, 0x02, 0x89, 0xb6, 0xae, 0x01, 0x3b, 0xdd, 0x74, 0x04, 0x3b, 0xde, 0x77, 0xc4, 0x8b, - 0xc6, 0x2b, 0xc3, 0x3b, 0xc1, 0x72, 0xe9, 0x89, 0xb6, 0xae, 0x01, 0xeb, 0xa7, 0x8b, 0xb6, 0xb0, - 0x01, 0x89, 0x5c, 0x02, 0x80, 0x4c, 0x05, 0x80, 0x89, 0x9e, 0xb0, 0x01, 0x03, 0x5f, 0x04, 0x83, - 0xc3, 0x06, 0x89, 0x9e, 0xac, 0x01, 0xc6, 0x86, 0x87, 0x02, 0x01, 0xc3, 0x80, 0xbe, 0x83, 0x02, - 0x01, 0x75, 0xda, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x0c, 0x00, 0x0c, 0x02, 0x80, 0xbe, 0x86, 0x02, - 0x01, 0x74, 0x27, 0x8b, 0xb6, 0xaa, 0x01, 0x89, 0x5c, 0x02, 0x80, 0x4c, 0x05, 0x80, 0x83, 0xc8, - 0x04, 0x25, 0xff, 0xf7, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x0c, 0x00, 0x89, 0x9e, 0xaa, 0x01, 0x03, - 0x5f, 0x04, 0x83, 0xc3, 0x06, 0x89, 0x9e, 0xa6, 0x01, 0xc3, 0x8e, 0x46, 0x02, 0x89, 0x9e, 0xa8, - 0x01, 0x26, 0x89, 0x1e, 0x2c, 0x00, 0x83, 0xc8, 0x08, 0x25, 0xff, 0xf7, 0xc6, 0x86, 0x86, 0x02, - 0x00, 0xeb, 0xd1, 0x53, 0xf6, 0x86, 0x83, 0x02, 0x01, 0x74, 0x0c, 0x8e, 0x46, 0x02, 0x26, 0x83, - 0x26, 0x0c, 0x00, 0xfe, 0xe8, 0x8c, 0xfe, 0x5b, 0xc3, 0x90, 0xe9, 0xac, 0x00, 0x90, 0x80, 0xbe, - 0x83, 0x02, 0x00, 0x75, 0xf5, 0x50, 0xfa, 0x8d, 0xb6, 0xac, 0x01, 0x8d, 0xbe, 0xa6, 0x01, 0x8c, - 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0x80, 0xbe, 0x63, 0x01, 0x01, 0x75, 0x16, 0x8e, 0x46, 0x02, - 0x26, 0x81, 0x0e, 0x00, 0x00, 0x00, 0x02, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x00, 0x00, 0xff, - 0xe3, 0xeb, 0x27, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x00, 0x00, 0x00, 0x02, 0xf6, 0x86, 0xaa, - 0x02, 0x01, 0x74, 0x0c, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x00, 0x00, 0x00, 0x1c, 0xeb, 0x0a, - 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x00, 0x00, 0xff, 0xe3, 0x33, 0xc0, 0x89, 0x86, 0xae, 0x01, - 0x40, 0x88, 0x86, 0x83, 0x02, 0x58, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x74, 0x0a, 0xe8, 0x01, 0xe5, - 0x8e, 0x46, 0x02, 0x26, 0xa2, 0x1c, 0x00, 0x8b, 0x9e, 0xa8, 0x01, 0x83, 0x3f, 0x00, 0x74, 0x03, - 0xe8, 0x89, 0x00, 0xf6, 0x86, 0x87, 0x02, 0x01, 0x74, 0x19, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, - 0x2c, 0x00, 0xc6, 0x86, 0x87, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x0c, 0x00, 0x08, - 0xfb, 0xeb, 0x06, 0xc6, 0x86, 0x86, 0x02, 0x01, 0xfb, 0xc3, 0x56, 0x8d, 0xb6, 0x52, 0x09, 0xc7, - 0x86, 0xa6, 0x01, 0x5a, 0x09, 0x01, 0xae, 0xa6, 0x01, 0x89, 0xb6, 0xa8, 0x01, 0x89, 0xb6, 0xaa, - 0x01, 0xc7, 0x04, 0x30, 0x80, 0xc7, 0x44, 0x04, 0x00, 0x00, 0xc6, 0x86, 0x86, 0x02, 0x01, 0x5e, - 0xc3, 0xff, 0xa4, 0x1e, 0x04, 0x80, 0x7e, 0x06, 0x46, 0x75, 0x1c, 0xf6, 0x86, 0x76, 0x02, 0x01, - 0x74, 0x15, 0xff, 0x8e, 0xcc, 0x02, 0x75, 0x0f, 0xc6, 0x86, 0x76, 0x02, 0x00, 0xc6, 0x86, 0x6b, - 0x02, 0x00, 0xe8, 0xb5, 0xe2, 0xeb, 0x10, 0x83, 0xfe, 0x10, 0x74, 0x07, 0x83, 0xfe, 0x0e, 0x74, - 0x02, 0xeb, 0x04, 0xff, 0xa4, 0x1e, 0x04, 0xc3, 0x8b, 0x9e, 0xa8, 0x01, 0x8b, 0x07, 0xfb, 0xa9, - 0x00, 0x80, 0x75, 0x46, 0x8b, 0x77, 0x17, 0x81, 0xe6, 0xff, 0x00, 0xf7, 0x86, 0x3a, 0x02, 0x01, - 0x00, 0x74, 0x1b, 0x3b, 0x9e, 0x38, 0x02, 0x75, 0x15, 0x89, 0x86, 0x74, 0x15, 0x50, 0x53, 0x56, - 0xe8, 0x43, 0x0e, 0x5e, 0x5b, 0x58, 0xc7, 0x86, 0x3a, 0x02, 0x00, 0x00, 0xeb, 0x18, 0xf7, 0x46, - 0x14, 0xff, 0xff, 0x74, 0x11, 0x83, 0xfe, 0x2a, 0x77, 0x0c, 0xd1, 0xe6, 0x68, 0x82, 0x2f, 0xff, - 0x66, 0x14, 0x5b, 0x83, 0xc4, 0x02, 0x81, 0x0f, 0x00, 0x80, 0xfa, 0xf6, 0x47, 0x05, 0x80, 0x74, - 0x1a, 0x8b, 0x5f, 0x02, 0x89, 0x9e, 0xa8, 0x01, 0xf7, 0x07, 0x10, 0x00, 0x74, 0x0d, 0xff, 0x86, - 0x3a, 0x01, 0x83, 0xbe, 0x3a, 0x01, 0x06, 0x77, 0x0f, 0xeb, 0x91, 0xc6, 0x86, 0xb8, 0x01, 0x00, - 0xc7, 0x86, 0x3a, 0x01, 0x00, 0x00, 0xfb, 0xc3, 0xe8, 0xdf, 0xdd, 0xf7, 0xc6, 0xff, 0xff, 0x74, - 0xea, 0xc7, 0x44, 0x02, 0x03, 0x00, 0xc6, 0x86, 0xb8, 0x01, 0x01, 0x8d, 0x7e, 0x16, 0xe8, 0xe7, - 0xdd, 0xeb, 0xdd, 0xa9, 0x20, 0x00, 0x75, 0x74, 0xf7, 0x47, 0x04, 0x00, 0x80, 0x74, 0x05, 0xe8, - 0x08, 0x00, 0x72, 0x9f, 0x53, 0x68, 0x7e, 0x2f, 0xff, 0xe6, 0x8a, 0x47, 0x17, 0x8b, 0xfb, 0x8b, - 0x7d, 0x02, 0x38, 0x45, 0x17, 0x74, 0x09, 0xf7, 0x45, 0x04, 0x00, 0x80, 0x75, 0xf1, 0xf8, 0xc3, - 0xf9, 0xc3, 0xa9, 0x20, 0x00, 0x75, 0x05, 0xa9, 0x00, 0x10, 0x75, 0x0c, 0x33, 0xc9, 0xa9, 0x05, - 0x00, 0x75, 0x0a, 0xa9, 0x0a, 0x04, 0x74, 0x05, 0x8b, 0x0d, 0xe3, 0x01, 0x49, 0x89, 0x0d, 0xc3, - 0x53, 0x8b, 0x4f, 0x04, 0x80, 0xe5, 0x7f, 0x89, 0x4f, 0x04, 0x83, 0xc1, 0x06, 0xe8, 0xee, 0xfc, - 0x72, 0x19, 0x5e, 0x56, 0x8b, 0xfb, 0xd1, 0xe9, 0x83, 0xe9, 0x02, 0x83, 0xc6, 0x04, 0x83, 0xc7, - 0x04, 0x8c, 0xd8, 0x8e, 0xc0, 0xf3, 0xa5, 0xe8, 0x72, 0xfd, 0xf8, 0x5b, 0xc3, 0x80, 0x7e, 0x08, - 0x02, 0x75, 0x0b, 0xa9, 0x20, 0x00, 0x75, 0x06, 0xc7, 0x86, 0xc8, 0x01, 0x01, 0x00, 0xc3, 0x8a, - 0x56, 0x06, 0x80, 0xfa, 0x02, 0x74, 0x17, 0x80, 0xfa, 0x44, 0x74, 0x12, 0x83, 0x7e, 0x08, 0x08, - 0x75, 0x18, 0x80, 0xfa, 0x0c, 0x74, 0x07, 0x80, 0xfa, 0x0e, 0x74, 0x02, 0xeb, 0x0b, 0xa9, 0x20, - 0x00, 0x75, 0x06, 0xb8, 0x01, 0x00, 0xe8, 0x74, 0xec, 0xc3, 0xb9, 0x05, 0x00, 0xa9, 0x20, 0x00, - 0x74, 0x09, 0xb9, 0x08, 0x00, 0xa9, 0x0f, 0x00, 0x75, 0x01, 0xc3, 0xff, 0x86, 0xc4, 0x02, 0x83, - 0xbe, 0xc4, 0x02, 0x02, 0x72, 0x06, 0x8b, 0xc1, 0xe8, 0x52, 0xec, 0xc3, 0xe8, 0x55, 0xf8, 0xc3, - 0x53, 0x68, 0x7e, 0x2f, 0xe9, 0xc7, 0xf8, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0x1d, 0xa9, 0x00, 0x10, - 0x75, 0xee, 0xa9, 0x20, 0x00, 0x75, 0x00, 0xa8, 0x0a, 0x75, 0x10, 0xff, 0x86, 0xba, 0x02, 0x83, - 0xbe, 0xba, 0x02, 0x04, 0x72, 0xda, 0xc6, 0x46, 0x07, 0x0e, 0xc3, 0x83, 0xbe, 0xb8, 0x02, 0x04, - 0x73, 0xf8, 0xbe, 0x85, 0x45, 0xe8, 0xb2, 0xde, 0xeb, 0xf0, 0x8d, 0xbe, 0xbe, 0x02, 0xe8, 0x11, - 0xff, 0x0b, 0xc9, 0x74, 0xe5, 0x53, 0x68, 0x7e, 0x2f, 0xe9, 0x82, 0xf8, 0x8d, 0xbe, 0xb6, 0x02, - 0xe8, 0xff, 0xfe, 0x0b, 0xc9, 0x74, 0x03, 0xe9, 0x16, 0xff, 0xc3, 0x53, 0x8a, 0x56, 0x06, 0x80, - 0xfa, 0x02, 0x74, 0x17, 0x80, 0xfa, 0x44, 0x74, 0x12, 0x80, 0x7e, 0x08, 0x08, 0x75, 0x2d, 0x80, - 0xfa, 0x0c, 0x74, 0x07, 0x80, 0xfa, 0x0e, 0x74, 0x02, 0xeb, 0x21, 0xa9, 0x20, 0x00, 0x74, 0x1e, - 0x8b, 0x96, 0x66, 0x01, 0x4a, 0x89, 0x96, 0x66, 0x01, 0x83, 0xfa, 0x01, 0x77, 0x23, 0xbe, 0x6d, - 0x45, 0xe8, 0x56, 0xde, 0xc6, 0x86, 0x86, 0x02, 0x01, 0xe8, 0xb8, 0xf7, 0x5b, 0xc3, 0xfe, 0x8e, - 0x68, 0x01, 0x80, 0x8e, 0x68, 0x01, 0x00, 0x75, 0x08, 0xb8, 0x01, 0x00, 0xe8, 0x9e, 0xeb, 0xeb, - 0xeb, 0xbe, 0x6d, 0x45, 0xe8, 0x33, 0xde, 0x8b, 0xb6, 0x64, 0x01, 0xb9, 0xe8, 0x03, 0xc6, 0x86, - 0x86, 0x02, 0x01, 0xfa, 0xe8, 0xa6, 0xf7, 0xeb, 0xd3, 0xa9, 0x20, 0x00, 0x74, 0x41, 0xa9, 0x0f, - 0x00, 0x75, 0x25, 0xc6, 0x86, 0x65, 0x02, 0x01, 0xc6, 0x86, 0x66, 0x02, 0x01, 0x8c, 0xd8, 0x8e, - 0xc0, 0x33, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xee, 0x01, 0xab, 0xab, 0xab, 0x8b, 0x86, 0x06, - 0x02, 0x83, 0x8e, 0x06, 0x02, 0x40, 0xeb, 0x17, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xee, 0x01, 0x8c, - 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0x8b, 0x86, 0x06, 0x02, 0x83, 0xa6, 0x06, 0x02, 0xbf, 0x33, - 0x86, 0x06, 0x02, 0x74, 0x05, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xc3, 0xfb, 0xc3, 0xff, 0xa4, 0xc6, - 0x03, 0x53, 0x56, 0xf7, 0x07, 0x00, 0x10, 0x74, 0x0a, 0x8b, 0xc7, 0x80, 0x7e, 0x06, 0x44, 0x74, - 0x49, 0xeb, 0x44, 0x8b, 0xc7, 0x8b, 0x49, 0x16, 0x80, 0xf9, 0x00, 0x74, 0x05, 0x80, 0xf9, 0x03, - 0x75, 0x38, 0x8d, 0xbe, 0x0a, 0x03, 0x83, 0x3d, 0x00, 0x75, 0x0c, 0x83, 0x7d, 0x02, 0x00, 0x75, - 0x06, 0x83, 0x7d, 0x04, 0x00, 0x74, 0x23, 0x8b, 0xf8, 0x8d, 0x71, 0x0e, 0x8d, 0xbe, 0x0a, 0x03, - 0x8c, 0xd8, 0x8e, 0xc0, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x74, 0x0f, 0xc7, 0x86, 0x2a, 0x02, 0x0e, - 0x00, 0xb8, 0x0b, 0x00, 0xe8, 0xd6, 0xea, 0x5e, 0x5b, 0xc3, 0x8b, 0xf8, 0x5e, 0x5b, 0xff, 0xa4, - 0xf2, 0x03, 0xff, 0x86, 0x48, 0x02, 0xc7, 0x86, 0x2a, 0x02, 0x06, 0x00, 0x8c, 0xd8, 0x8e, 0xc0, - 0x8d, 0xbe, 0xfc, 0x01, 0x8d, 0x77, 0x0e, 0xb9, 0x03, 0x00, 0xf3, 0xa5, 0x8b, 0xb6, 0xc4, 0x05, - 0x8b, 0x04, 0x86, 0xe0, 0x89, 0x86, 0x02, 0x02, 0x89, 0x86, 0x12, 0x02, 0x8b, 0xb6, 0xc9, 0x05, - 0x8b, 0x04, 0x89, 0x86, 0x16, 0x02, 0x8b, 0x44, 0x02, 0x89, 0x86, 0x18, 0x02, 0x8b, 0x44, 0x04, - 0x89, 0x86, 0x1a, 0x02, 0x8b, 0xb6, 0xce, 0x05, 0x8b, 0x04, 0x89, 0x86, 0x20, 0x02, 0x8b, 0x44, - 0x02, 0x89, 0x86, 0x22, 0x02, 0x8b, 0xb6, 0xc4, 0x05, 0x8b, 0x04, 0x80, 0x7e, 0x08, 0x06, 0x75, - 0x56, 0xf7, 0x07, 0x00, 0x10, 0x74, 0x14, 0xf6, 0x47, 0x06, 0x08, 0x75, 0x0b, 0x80, 0xbe, 0x5f, - 0x02, 0x00, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x04, 0xe9, 0x1b, 0x01, 0x3b, 0x86, 0x00, 0x03, 0x77, - 0xf7, 0x80, 0xbe, 0x5e, 0x02, 0x01, 0x74, 0x10, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0xea, 0xc6, 0x46, - 0x07, 0x10, 0xc6, 0x46, 0x09, 0x1e, 0xeb, 0xe0, 0x80, 0xbe, 0x5f, 0x02, 0x00, 0x75, 0xd9, 0xc6, - 0x46, 0x09, 0x0a, 0xf6, 0x86, 0x07, 0x02, 0x10, 0x74, 0xce, 0x80, 0xa6, 0x07, 0x02, 0x6f, 0xc6, - 0x86, 0x85, 0x02, 0x01, 0xe9, 0xdf, 0x00, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x5b, 0xc6, 0x86, 0x54, - 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, 0xbf, 0xbe, 0x49, 0x45, 0xe8, 0x99, - 0xdc, 0x8b, 0xb6, 0xc9, 0x05, 0x8d, 0xbe, 0xf4, 0x02, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x03, 0x00, - 0xf3, 0xa7, 0x75, 0x21, 0x83, 0xf8, 0x01, 0x74, 0x1c, 0xff, 0x8e, 0xb0, 0x02, 0x75, 0x13, 0xf6, - 0x86, 0x58, 0x02, 0x01, 0x75, 0x0c, 0xc6, 0x86, 0x58, 0x02, 0x01, 0xc6, 0x46, 0x09, 0x08, 0xe9, - 0x94, 0x00, 0xe9, 0x91, 0x00, 0xc7, 0x86, 0xb0, 0x02, 0x08, 0x00, 0x83, 0xf8, 0x01, 0x75, 0x0a, - 0xc7, 0x86, 0xae, 0x02, 0x02, 0x00, 0xeb, 0x7e, 0xeb, 0x2e, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0x0a, - 0x03, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x75, 0xe4, 0xff, 0x8e, 0xae, 0x02, - 0x75, 0x14, 0xc7, 0x86, 0xae, 0x02, 0x02, 0x00, 0xc6, 0x86, 0x54, 0x02, 0x01, 0x8e, 0x46, 0x02, - 0x26, 0x83, 0x0e, 0x0c, 0x00, 0x40, 0xeb, 0x4e, 0x80, 0xbe, 0x5e, 0x02, 0x00, 0x74, 0x0c, 0x80, - 0x7e, 0x08, 0x08, 0x74, 0x41, 0xc6, 0x46, 0x09, 0x0a, 0xeb, 0x3b, 0xb7, 0x10, 0x8a, 0x5e, 0x06, - 0x80, 0xfb, 0x06, 0x74, 0x1f, 0x80, 0xfb, 0x08, 0x74, 0x1a, 0x80, 0xfb, 0x04, 0x74, 0x15, 0x80, - 0xfb, 0x0c, 0x74, 0x10, 0x80, 0xfb, 0x0a, 0x75, 0x07, 0xc6, 0x86, 0x5b, 0x02, 0x00, 0xeb, 0x04, - 0xb7, 0x12, 0xeb, 0x12, 0x88, 0x7e, 0x07, 0x80, 0xff, 0x12, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x1e, - 0xb8, 0x07, 0x00, 0xe8, 0x37, 0xe9, 0xc3, 0xff, 0x86, 0x48, 0x02, 0xc7, 0x86, 0x2a, 0x02, 0x06, - 0x00, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0xbe, 0xfc, 0x01, 0x8d, 0x77, 0x0e, 0xb9, 0x03, 0x00, 0xf3, - 0xa5, 0x80, 0x7e, 0x06, 0x48, 0x74, 0x08, 0xb8, 0x06, 0x00, 0xe8, 0x10, 0xe9, 0xeb, 0x30, 0xf6, - 0x86, 0x6e, 0x02, 0x01, 0x74, 0x1f, 0x80, 0x7e, 0x08, 0x16, 0x75, 0x19, 0xc6, 0x46, 0x09, 0x1a, - 0xc6, 0x86, 0x72, 0x02, 0x00, 0xc6, 0x86, 0x68, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, - 0x0c, 0x00, 0xfe, 0xeb, 0x0a, 0x80, 0x7e, 0x08, 0x18, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x1a, 0xc3, - 0x8a, 0x4e, 0x06, 0x80, 0xbe, 0xa7, 0x02, 0x01, 0x74, 0x02, 0xeb, 0x06, 0xb8, 0x06, 0x00, 0xe8, - 0xcb, 0xe8, 0xc3, 0x80, 0x7e, 0x06, 0x42, 0x75, 0x42, 0x8b, 0x47, 0x1a, 0x83, 0xf8, 0x00, 0x75, - 0x27, 0xf6, 0x86, 0x7e, 0x02, 0x01, 0x75, 0x18, 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x10, 0x74, 0x10, - 0xb8, 0x02, 0x00, 0xe8, 0x73, 0x10, 0xc6, 0x46, 0x09, 0x1e, 0xc6, 0x46, 0x07, 0x02, 0xeb, 0x1b, - 0xb8, 0x06, 0x00, 0xe8, 0x97, 0xe8, 0xeb, 0x13, 0x3d, 0x00, 0x02, 0x75, 0x0e, 0xc6, 0x86, 0x77, - 0x02, 0x01, 0xe8, 0x6b, 0x06, 0xbe, 0xe5, 0x45, 0xe8, 0x1f, 0xdb, 0xc3, 0xc7, 0x86, 0x2a, 0x02, - 0x02, 0x00, 0x80, 0x7e, 0x06, 0x46, 0x75, 0x2b, 0x8b, 0x47, 0x1a, 0x83, 0xf8, 0x00, 0x75, 0x10, - 0xc6, 0x46, 0x07, 0x48, 0x80, 0x7e, 0x08, 0x1c, 0x75, 0x19, 0xc6, 0x46, 0x09, 0x16, 0xeb, 0x13, - 0x86, 0xc4, 0x3d, 0x20, 0x80, 0x75, 0x0c, 0xc7, 0x86, 0x2a, 0x02, 0x11, 0x00, 0xb8, 0x08, 0x00, - 0xe8, 0x4a, 0xe8, 0xc3, 0xc7, 0x86, 0x2a, 0x02, 0x0f, 0x00, 0x80, 0x7e, 0x06, 0x44, 0x74, 0x06, - 0x80, 0x7e, 0x06, 0x42, 0x75, 0x08, 0xb8, 0x06, 0x00, 0xe8, 0x31, 0xe8, 0xeb, 0x0d, 0xf6, 0x86, - 0x72, 0x02, 0x01, 0x74, 0x06, 0xbe, 0xf1, 0x45, 0xe8, 0xbf, 0xda, 0xc3, 0x80, 0x7e, 0x06, 0x44, - 0x75, 0x14, 0xe8, 0xb5, 0xd8, 0xc7, 0x44, 0x02, 0x02, 0x00, 0x8d, 0x7e, 0x16, 0xe8, 0xc8, 0xd8, - 0xbe, 0x6d, 0x45, 0xe8, 0x56, 0xdb, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x40, 0x00, 0x74, 0x18, 0xf7, - 0x86, 0xf4, 0x00, 0x00, 0x20, 0x74, 0x10, 0x80, 0x7e, 0x06, 0x08, 0x72, 0x0a, 0x80, 0x7e, 0x06, - 0x0e, 0x77, 0x04, 0xc6, 0x46, 0x07, 0x14, 0xc3, 0xff, 0x86, 0x4c, 0x02, 0xc7, 0x86, 0x2a, 0x02, - 0x0b, 0x00, 0x8a, 0x86, 0x54, 0x02, 0x88, 0x86, 0x80, 0x02, 0xc7, 0x86, 0xc2, 0x02, 0x00, 0x00, - 0xc6, 0x86, 0x61, 0x02, 0x00, 0x83, 0x8e, 0x06, 0x02, 0x20, 0x81, 0xa6, 0x06, 0x02, 0xff, 0x2f, - 0xc6, 0x86, 0x85, 0x02, 0x01, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x74, 0x38, 0xc6, 0x86, 0x80, 0x02, - 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x24, 0x00, 0xff, 0x7f, 0x80, 0x7e, 0x0a, 0x00, 0x75, - 0x0a, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x6b, 0x02, 0x00, 0x8a, 0xa6, 0x80, 0x02, 0x88, - 0xa6, 0x54, 0x02, 0xe8, 0x64, 0xdc, 0x88, 0x86, 0x54, 0x02, 0xc6, 0x46, 0x09, 0x0c, 0xc7, 0x86, - 0xc6, 0x01, 0x00, 0x01, 0x80, 0x7e, 0x06, 0x04, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x06, 0x80, 0x7e, - 0x08, 0x02, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x0c, 0x80, 0x7e, 0x08, 0x06, 0x74, 0x05, 0xc6, 0x86, - 0x5a, 0x02, 0x01, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xf4, 0x02, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x06, - 0x00, 0xf3, 0xa6, 0x74, 0x08, 0x77, 0x03, 0xe9, 0x95, 0x00, 0xe9, 0xfe, 0x00, 0xf6, 0x47, 0x06, - 0x08, 0x75, 0x59, 0x80, 0x7e, 0x08, 0x04, 0x75, 0x53, 0x8b, 0xb6, 0xd4, 0x05, 0x8d, 0xbe, 0x0a, - 0x03, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x03, 0x00, 0xb8, 0x01, 0x00, 0xf3, 0xa7, 0x74, 0x02, 0xeb, - 0x3e, 0xff, 0x86, 0xb4, 0x02, 0x83, 0xbe, 0xb4, 0x02, 0x03, 0x72, 0x30, 0x83, 0xbe, 0xb2, 0x02, - 0x03, 0x72, 0x29, 0xc6, 0x46, 0x09, 0x02, 0xc6, 0x86, 0x80, 0x02, 0x01, 0x8e, 0x46, 0x02, 0x26, - 0x81, 0x0e, 0x24, 0x00, 0x00, 0x80, 0x8a, 0x86, 0x54, 0x02, 0x8a, 0xa6, 0x80, 0x02, 0x88, 0xa6, - 0x54, 0x02, 0xe8, 0xc5, 0xdb, 0x88, 0x86, 0x54, 0x02, 0xe8, 0xc4, 0xf4, 0xe9, 0xec, 0x00, 0x80, - 0x7e, 0x0a, 0x00, 0x75, 0x1d, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x6b, 0x02, 0x00, 0x8a, - 0x86, 0x54, 0x02, 0x8a, 0xa6, 0x80, 0x02, 0x88, 0xa6, 0x54, 0x02, 0xe8, 0x9c, 0xdb, 0x88, 0x86, - 0x54, 0x02, 0xc6, 0x46, 0x09, 0x0c, 0xb8, 0x00, 0x03, 0xe8, 0x15, 0xf5, 0xe9, 0xbc, 0x00, 0x80, - 0x7e, 0x08, 0x00, 0x75, 0x3d, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x75, 0x16, 0xf6, 0x86, 0x68, 0x02, - 0x01, 0x74, 0x16, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, 0x08, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x01, - 0x75, 0x16, 0xc6, 0x46, 0x09, 0x0c, 0xe9, 0x92, 0x00, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, 0x9c, - 0xf7, 0x86, 0x12, 0x01, 0x00, 0x01, 0x74, 0x94, 0xc6, 0x46, 0x09, 0x04, 0xff, 0x86, 0x4a, 0x02, - 0xeb, 0x79, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x73, 0xf6, 0x86, 0x5f, 0x02, 0x01, 0x75, 0x0e, 0xf7, - 0x86, 0x12, 0x01, 0x00, 0x01, 0x75, 0x06, 0xc6, 0x46, 0x09, 0x0c, 0xeb, 0x5e, 0xf7, 0x86, 0x12, - 0x01, 0x00, 0x01, 0x74, 0x56, 0xc6, 0x46, 0x09, 0x04, 0xeb, 0x50, 0x80, 0x7e, 0x08, 0x04, 0x75, - 0x2c, 0xc6, 0x46, 0x09, 0x0c, 0x80, 0x7e, 0x0a, 0x00, 0x75, 0x1d, 0xc6, 0x86, 0x69, 0x02, 0x00, - 0xc6, 0x86, 0x6b, 0x02, 0x00, 0x8a, 0x86, 0x54, 0x02, 0x8a, 0xa6, 0x80, 0x02, 0x88, 0xa6, 0x54, - 0x02, 0xe8, 0xf6, 0xda, 0x88, 0x86, 0x54, 0x02, 0xe8, 0x71, 0xf1, 0xeb, 0x1e, 0x80, 0x7e, 0x08, - 0x00, 0x75, 0x09, 0xf6, 0x86, 0x68, 0x02, 0x01, 0x74, 0x02, 0xeb, 0xab, 0x80, 0x7e, 0x08, 0x0a, - 0x75, 0x09, 0xf6, 0x86, 0x5f, 0x02, 0x01, 0x75, 0x02, 0xeb, 0x9c, 0x8a, 0x86, 0x80, 0x02, 0x88, - 0x86, 0x54, 0x02, 0xc3, 0xc7, 0x86, 0xbc, 0x02, 0x02, 0x00, 0xff, 0x86, 0x42, 0x02, 0xc7, 0x86, - 0x2a, 0x02, 0x0c, 0x00, 0x80, 0x7e, 0x06, 0x04, 0x74, 0x06, 0x80, 0x7e, 0x06, 0x06, 0x75, 0x04, - 0xc6, 0x46, 0x07, 0x08, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x56, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x74, - 0x3b, 0xc6, 0x86, 0x54, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x24, 0x00, 0xff, 0x7f, - 0xb8, 0x00, 0x02, 0xe8, 0x0b, 0xf4, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, 0x0c, 0xbe, 0x73, 0x45, - 0xe8, 0x37, 0xd8, 0xbe, 0x91, 0x45, 0xe8, 0x31, 0xd8, 0x80, 0x7e, 0x0a, 0x00, 0x75, 0x0d, 0xc6, - 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x6b, 0x02, 0x00, 0xe8, 0x5e, 0xda, 0xf6, 0x86, 0x5e, 0x02, - 0x01, 0x74, 0x34, 0xc6, 0x86, 0x58, 0x02, 0x00, 0xc6, 0x86, 0x59, 0x02, 0x00, 0xe9, 0xc9, 0x00, - 0x80, 0x7e, 0x08, 0x0c, 0x75, 0x24, 0xc6, 0x46, 0x09, 0x00, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, - 0x16, 0xbe, 0x73, 0x45, 0xe8, 0xf3, 0xd7, 0xbe, 0x91, 0x45, 0xe8, 0xed, 0xd7, 0xc6, 0x86, 0x58, - 0x02, 0x00, 0xc6, 0x86, 0x59, 0x02, 0x00, 0xe9, 0x9f, 0x00, 0x80, 0x7e, 0x08, 0x02, 0x75, 0xf7, - 0xc7, 0x86, 0xc8, 0x01, 0x00, 0x00, 0xc6, 0x46, 0x09, 0x00, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, - 0x0a, 0xc6, 0x86, 0x58, 0x02, 0x00, 0xc6, 0x86, 0x59, 0x02, 0x00, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, - 0xf4, 0x02, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x06, 0x00, 0xf3, 0xa6, 0x74, 0x2e, 0xc6, 0x86, 0x54, - 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x24, 0x00, 0xff, 0x7f, 0x80, 0x7e, 0x0a, 0x00, - 0x75, 0x0a, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x6b, 0x02, 0x00, 0xe8, 0xcb, 0xd9, 0xb8, - 0x00, 0x02, 0xe8, 0x4c, 0xf3, 0xc6, 0x46, 0x09, 0x00, 0xeb, 0x3e, 0x8e, 0x46, 0x02, 0x26, 0xa0, - 0x1c, 0x00, 0xc6, 0x46, 0x09, 0x00, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x55, 0x02, 0x00, - 0xc6, 0x86, 0x65, 0x02, 0x00, 0xe8, 0xa2, 0xd9, 0x24, 0x07, 0xe8, 0xf1, 0xf5, 0xbe, 0x43, 0x45, - 0xe8, 0x57, 0xd7, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0xbe, 0xee, 0x01, 0xab, 0xab, 0xab, - 0xe8, 0x5b, 0xf0, 0xbe, 0x91, 0x45, 0xe8, 0x41, 0xd7, 0xc3, 0x8c, 0xd8, 0x8e, 0xc0, 0xff, 0x86, - 0x50, 0x02, 0xc7, 0x86, 0x2a, 0x02, 0x0f, 0x00, 0xf6, 0x86, 0xca, 0x01, 0x01, 0x74, 0x3b, 0xb8, - 0x30, 0x56, 0xa3, 0x26, 0x56, 0x8d, 0x77, 0x0e, 0x8b, 0xf8, 0xa5, 0xa5, 0xa5, 0xc7, 0x06, 0x2e, - 0x56, 0x01, 0x00, 0xc6, 0x86, 0xcb, 0x01, 0x00, 0x33, 0xff, 0xba, 0x02, 0x08, 0xe8, 0x72, 0xe8, - 0xbf, 0x28, 0x56, 0xb9, 0x03, 0x00, 0xf3, 0xa5, 0x8d, 0x77, 0x0e, 0xbf, 0x28, 0x56, 0xb9, 0x03, - 0x00, 0xf3, 0xa7, 0x75, 0x05, 0xe8, 0x8b, 0x04, 0xeb, 0x00, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xee, - 0x01, 0xa5, 0xa5, 0xa5, 0x80, 0x7e, 0x06, 0x04, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x08, 0x8b, 0x8e, - 0xbc, 0x02, 0xe3, 0x05, 0x49, 0x89, 0x8e, 0xbc, 0x02, 0xf7, 0x07, 0x3c, 0x00, 0x75, 0x0a, 0xf6, - 0x86, 0x68, 0x02, 0x01, 0x74, 0x03, 0xe8, 0x07, 0x02, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x75, 0x03, - 0xe9, 0x93, 0x00, 0xbe, 0x91, 0x45, 0xe8, 0xb1, 0xd6, 0xf7, 0x07, 0x00, 0x10, 0x75, 0x37, 0xc6, - 0x86, 0x54, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x24, 0x00, 0xff, 0x7f, 0xb8, 0x00, - 0x02, 0xe8, 0x5d, 0xf2, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, 0x06, 0xbe, 0x73, 0x45, 0xe8, 0x89, - 0xd6, 0x80, 0x7e, 0x0a, 0x00, 0x75, 0x38, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x6b, 0x02, - 0x00, 0xe8, 0xb6, 0xd8, 0xeb, 0x29, 0xf7, 0x07, 0x3c, 0x00, 0x75, 0x33, 0xc6, 0x86, 0x65, 0x02, - 0x01, 0xc6, 0x86, 0x66, 0x02, 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, - 0xbe, 0xee, 0x01, 0xab, 0xab, 0xab, 0x8b, 0x86, 0x06, 0x02, 0xa9, 0x40, 0x00, 0x74, 0x02, 0xeb, - 0x48, 0x83, 0xc8, 0x40, 0x89, 0x86, 0x06, 0x02, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xeb, 0x3a, 0x83, - 0xa6, 0x06, 0x02, 0xbf, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xee, - 0x01, 0xa5, 0xa5, 0xa5, 0xeb, 0x23, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, 0x06, 0xbe, 0x91, 0x45, - 0xe8, 0x17, 0xd6, 0xc6, 0x86, 0x67, 0x02, 0x00, 0xf7, 0x07, 0x3c, 0x00, 0x75, 0x0b, 0xc6, 0x86, - 0x67, 0x02, 0x01, 0xbe, 0x79, 0x45, 0xe8, 0x01, 0xd6, 0xc3, 0xeb, 0x61, 0x8c, 0xd8, 0x8e, 0xc0, - 0xc7, 0x86, 0x2a, 0x02, 0x0d, 0x00, 0xf6, 0x86, 0xca, 0x01, 0x01, 0x74, 0x50, 0x33, 0xff, 0xba, - 0x02, 0x08, 0xe8, 0x4d, 0xe7, 0x8b, 0x3e, 0x26, 0x56, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x75, 0x3d, - 0x81, 0xff, 0x3e, 0x5d, 0x73, 0x6f, 0x89, 0x3e, 0x26, 0x56, 0x8d, 0x77, 0x0e, 0xb9, 0x03, 0x00, - 0xf3, 0xa7, 0x74, 0x05, 0xc6, 0x86, 0xcc, 0x01, 0x01, 0x81, 0xff, 0x3e, 0x5d, 0x73, 0x56, 0x89, - 0x3e, 0x26, 0x56, 0x8d, 0x77, 0x0e, 0xa5, 0xa5, 0xa5, 0xff, 0x06, 0x2e, 0x56, 0x8d, 0x77, 0x0e, - 0xbf, 0x28, 0x56, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x75, 0x03, 0xe8, 0x36, 0x03, 0x8a, 0x86, 0x06, - 0x02, 0xa8, 0x40, 0x75, 0x3d, 0x80, 0x7e, 0x06, 0x04, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x08, 0xf7, - 0x07, 0x3c, 0x00, 0x75, 0x3a, 0xf6, 0x86, 0x68, 0x02, 0x01, 0x74, 0x35, 0xf6, 0x86, 0x54, 0x02, - 0x01, 0x74, 0x07, 0xf6, 0x86, 0x65, 0x02, 0x01, 0x75, 0x27, 0xe8, 0xb3, 0x00, 0xc7, 0x86, 0xbe, - 0x02, 0x01, 0x00, 0xeb, 0x1c, 0xbf, 0x38, 0x5d, 0x33, 0xc0, 0xab, 0xab, 0xab, 0xe8, 0xf3, 0x02, - 0xeb, 0xbb, 0x24, 0xbf, 0x88, 0x86, 0x06, 0x02, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xeb, 0xb6, 0xeb, - 0x79, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x74, 0x3c, 0xf6, 0x86, 0x65, 0x02, 0x01, 0x74, 0x19, 0xf6, - 0x86, 0x5e, 0x02, 0x01, 0x74, 0x12, 0x83, 0xbe, 0xbc, 0x02, 0x00, 0x75, 0x0b, 0x80, 0x7e, 0x08, - 0x00, 0x75, 0x05, 0x83, 0x8e, 0xda, 0x02, 0x08, 0xc6, 0x86, 0x65, 0x02, 0x01, 0xc6, 0x86, 0x66, - 0x02, 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xee, 0x01, 0xab, - 0xab, 0xab, 0xeb, 0x4b, 0xf6, 0x86, 0x68, 0x02, 0x01, 0x74, 0x44, 0xf6, 0x86, 0x67, 0x02, 0x01, - 0x75, 0x0d, 0xc6, 0x86, 0x67, 0x02, 0x01, 0xbe, 0x79, 0x45, 0xe8, 0xed, 0xd4, 0xeb, 0x30, 0xf6, - 0x86, 0x5e, 0x02, 0x01, 0x74, 0x12, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x0c, 0x83, 0xbe, 0xbc, 0x02, - 0x00, 0x75, 0x05, 0x83, 0x8e, 0xda, 0x02, 0x08, 0xeb, 0x15, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x74, - 0x0e, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xee, 0x01, 0xa5, 0xa5, 0xa5, 0xc3, - 0x53, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0x0a, 0x03, 0x8c, 0xd9, 0x8e, 0xc1, - 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x74, 0x54, 0x8b, 0x44, 0xfe, 0x89, 0x45, 0xfe, 0xf3, 0xa5, 0xbb, - 0xfc, 0x04, 0xb9, 0x0b, 0x00, 0x8d, 0xb6, 0x0a, 0x03, 0xad, 0x8b, 0x14, 0x8b, 0x74, 0x02, 0x8b, - 0x3f, 0x03, 0xfd, 0xab, 0x89, 0x15, 0x89, 0x75, 0x02, 0x83, 0xc3, 0x02, 0xe2, 0xf1, 0xf6, 0x86, - 0xaa, 0x02, 0x01, 0x75, 0x26, 0x8b, 0xb6, 0xd9, 0x05, 0x8d, 0xbe, 0xea, 0x01, 0xa5, 0xa5, 0x80, - 0x7e, 0x06, 0x08, 0x76, 0x0b, 0xc7, 0x86, 0xbe, 0x02, 0x04, 0x00, 0xe8, 0xc8, 0xef, 0xeb, 0x0b, - 0xc6, 0x86, 0x84, 0x02, 0x01, 0xc7, 0x86, 0xbe, 0x02, 0x01, 0x00, 0x5b, 0xc3, 0xb8, 0x80, 0x0a, - 0xf6, 0x86, 0xa6, 0x02, 0x01, 0x75, 0x45, 0xf6, 0x86, 0xa8, 0x02, 0x01, 0x75, 0x3e, 0xf7, 0x86, - 0xf6, 0x00, 0x10, 0x00, 0x75, 0x36, 0xf7, 0x07, 0x82, 0x00, 0x74, 0x2f, 0xc7, 0x86, 0x2a, 0x02, - 0x07, 0x00, 0xc6, 0x86, 0x16, 0x01, 0x00, 0x81, 0x8e, 0x06, 0x02, 0x00, 0x01, 0xc6, 0x86, 0x85, - 0x02, 0x01, 0xf6, 0x86, 0xa7, 0x02, 0x01, 0x75, 0x0c, 0x80, 0x7e, 0x06, 0x08, 0x72, 0x0c, 0x80, - 0x7e, 0x06, 0x0e, 0x77, 0x06, 0xb8, 0x0a, 0x00, 0xe8, 0x62, 0xe1, 0xc3, 0x89, 0x86, 0xe2, 0x02, - 0xe9, 0xcf, 0xeb, 0xf7, 0x07, 0x02, 0x00, 0x74, 0x0f, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0x09, 0xc6, - 0x86, 0x60, 0x02, 0x01, 0xc6, 0x46, 0x07, 0x0e, 0x8b, 0x86, 0x14, 0x02, 0x86, 0xe0, 0x8b, 0xb6, - 0xfe, 0x05, 0x0b, 0xf6, 0x74, 0x09, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x14, 0x02, 0x86, 0xe0, 0x89, - 0x86, 0xde, 0x02, 0x8b, 0xb6, 0xe5, 0x05, 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xc4, 0x89, 0x86, - 0x0c, 0x02, 0x8b, 0xb6, 0xea, 0x05, 0x0b, 0xf6, 0x74, 0x05, 0x8b, 0xc6, 0xe8, 0xa2, 0x00, 0x8b, - 0xb6, 0xef, 0x05, 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x08, 0x02, 0x8b, 0xb6, - 0xf4, 0x05, 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xc4, 0x89, 0x86, 0xf8, 0x01, 0x8b, 0xb6, 0xf9, - 0x05, 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xc4, 0x89, 0x86, 0xf6, 0x01, 0x8b, 0x07, 0xa9, 0x02, - 0x00, 0x75, 0x07, 0xa8, 0x28, 0x74, 0x03, 0xe9, 0x71, 0xff, 0xc7, 0x86, 0xe2, 0x02, 0x00, 0x01, - 0xe9, 0x3f, 0xeb, 0xc3, 0xf7, 0x07, 0x02, 0x02, 0x74, 0xf9, 0x8b, 0x86, 0x14, 0x02, 0x86, 0xe0, - 0x8b, 0xb6, 0x13, 0x06, 0x0b, 0xf6, 0x74, 0x09, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x14, 0x02, 0x86, - 0xe0, 0x89, 0x86, 0xde, 0x02, 0x8b, 0xb6, 0x04, 0x06, 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xc4, - 0x89, 0x86, 0x0c, 0x02, 0x8b, 0xb6, 0x09, 0x06, 0x0b, 0xf6, 0x74, 0x05, 0x8b, 0xc6, 0xe8, 0x20, - 0x00, 0x8b, 0xb6, 0x0e, 0x06, 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x08, 0x02, - 0x80, 0x7e, 0x06, 0x0c, 0x75, 0x96, 0xc6, 0x86, 0x60, 0x02, 0x01, 0xc6, 0x46, 0x07, 0x0e, 0xeb, - 0x8b, 0x53, 0x57, 0x8c, 0xdb, 0x8e, 0xc3, 0xbb, 0x12, 0x05, 0xb9, 0x0a, 0x00, 0x8b, 0xf0, 0xad, - 0x8b, 0x34, 0x8b, 0x3f, 0x03, 0xfd, 0xab, 0x89, 0x35, 0x83, 0xc3, 0x02, 0xe2, 0xf4, 0x5f, 0x5b, - 0xc3, 0x68, 0xc1, 0x29, 0xeb, 0x08, 0x68, 0x29, 0x2a, 0xeb, 0x03, 0x68, 0x6b, 0x2a, 0xf7, 0x07, - 0x82, 0x02, 0x74, 0x1c, 0x8b, 0x86, 0x14, 0x02, 0x86, 0xe0, 0x8b, 0xb6, 0x4a, 0x06, 0x0b, 0xf6, - 0x74, 0x09, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x14, 0x02, 0x86, 0xe0, 0x89, 0x86, 0xde, 0x02, 0xc3, - 0x83, 0xc4, 0x02, 0xc3, 0x8b, 0x07, 0xf6, 0x86, 0x63, 0x01, 0x01, 0x74, 0x1e, 0xa9, 0x00, 0x20, - 0x74, 0x40, 0x56, 0x57, 0xe8, 0xa3, 0xd0, 0xc7, 0x44, 0x02, 0x02, 0x00, 0x8d, 0x7e, 0x16, 0xe8, - 0xb6, 0xd0, 0xbe, 0x6d, 0x45, 0xe8, 0x44, 0xd3, 0x5f, 0x5e, 0xc3, 0x80, 0x7e, 0x06, 0x08, 0x75, - 0x21, 0xa9, 0x00, 0x10, 0x74, 0x1c, 0xa9, 0x3c, 0x00, 0x75, 0x17, 0xff, 0x86, 0xc8, 0x02, 0xff, - 0x86, 0xc6, 0x02, 0x83, 0xbe, 0xc6, 0x02, 0x02, 0x72, 0x05, 0xc6, 0x46, 0x07, 0x0a, 0xc3, 0xe8, - 0xd2, 0xeb, 0xc3, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8b, 0x3e, 0x26, 0x56, 0x83, 0xc7, 0x06, - 0x81, 0xff, 0x3e, 0x5d, 0x72, 0x03, 0xbf, 0x38, 0x5d, 0xab, 0xab, 0xab, 0xf6, 0x86, 0xcc, 0x01, - 0x01, 0x74, 0x18, 0xc6, 0x86, 0xcb, 0x01, 0x01, 0xe8, 0x3f, 0xd0, 0xc7, 0x44, 0x02, 0x05, 0x00, - 0x8d, 0x7e, 0x16, 0xe8, 0x52, 0xd0, 0xc6, 0x86, 0xca, 0x01, 0x00, 0xc3, 0xf7, 0x86, 0xf6, 0x00, - 0x08, 0x00, 0x74, 0x06, 0xbe, 0x1b, 0x46, 0xe8, 0x20, 0xd2, 0x8d, 0xb6, 0x6c, 0x15, 0x8e, 0x46, - 0x02, 0x8a, 0x1c, 0xf6, 0xc3, 0x80, 0x75, 0x0d, 0x80, 0xfb, 0x10, 0x77, 0x14, 0x32, 0xff, 0xd1, - 0xe3, 0xff, 0xa7, 0xda, 0x04, 0xc7, 0x86, 0x0a, 0x01, 0x00, 0x00, 0xc3, 0xb8, 0x00, 0x80, 0xeb, - 0x08, 0xb8, 0x00, 0x80, 0xeb, 0x03, 0xb8, 0x00, 0x20, 0x8d, 0xb6, 0x6c, 0x15, 0x89, 0x44, 0x02, - 0x80, 0x0c, 0x80, 0xb8, 0x40, 0x60, 0x8e, 0xc0, 0xc7, 0x86, 0x0a, 0x01, 0x00, 0x00, 0x26, 0xc7, - 0x06, 0x70, 0x00, 0x08, 0x00, 0xc3, 0xeb, 0xe1, 0xb8, 0x04, 0x00, 0x80, 0xbe, 0x06, 0x01, 0x01, - 0x75, 0xf4, 0xb8, 0x05, 0x00, 0x80, 0xbe, 0x07, 0x01, 0x01, 0x74, 0xea, 0xc6, 0x86, 0x08, 0x01, - 0x01, 0xc6, 0x86, 0xcd, 0x01, 0x00, 0xc6, 0x86, 0x09, 0x01, 0x00, 0x8b, 0x86, 0xf8, 0x00, 0x89, - 0x86, 0xf6, 0x00, 0x8d, 0xb6, 0x76, 0x15, 0xb8, 0x03, 0x00, 0xf6, 0x04, 0x80, 0x75, 0xc7, 0x33, - 0xc0, 0x39, 0x04, 0x75, 0x1e, 0x39, 0x44, 0x02, 0x75, 0x19, 0x39, 0x44, 0x04, 0x75, 0x14, 0x8b, - 0x86, 0x00, 0x01, 0x89, 0x04, 0x8b, 0x86, 0x02, 0x01, 0x89, 0x44, 0x02, 0x8b, 0x86, 0x04, 0x01, - 0x89, 0x44, 0x04, 0xad, 0x8b, 0x14, 0x8b, 0x74, 0x02, 0x89, 0x86, 0xd0, 0x01, 0x89, 0x96, 0xd2, - 0x01, 0x89, 0xb6, 0xd4, 0x01, 0x8e, 0x46, 0x02, 0x50, 0xe8, 0x44, 0xce, 0x26, 0xa3, 0x1e, 0x00, - 0x8b, 0xc2, 0xe8, 0x3b, 0xce, 0x26, 0xa3, 0x20, 0x00, 0x8b, 0xc6, 0xe8, 0x32, 0xce, 0x26, 0xa3, - 0x22, 0x00, 0x58, 0xbb, 0x2a, 0x05, 0xb9, 0x13, 0x00, 0x1e, 0x07, 0x8b, 0x3f, 0x03, 0xfd, 0xab, - 0x89, 0x15, 0x89, 0x75, 0x02, 0x83, 0xc3, 0x02, 0xe2, 0xf1, 0xbb, 0x26, 0x05, 0x8d, 0x96, 0x84, - 0x15, 0xb8, 0x02, 0x00, 0x8b, 0x3f, 0x03, 0xfd, 0x8b, 0xf2, 0xb9, 0x09, 0x00, 0xf3, 0xa5, 0x83, - 0xc3, 0x02, 0x48, 0x75, 0xef, 0xf7, 0x86, 0xf6, 0x00, 0x08, 0x00, 0x74, 0x06, 0xbe, 0x1b, 0x46, - 0xe8, 0x07, 0xd1, 0x8d, 0xb6, 0x6c, 0x15, 0x8b, 0x44, 0x08, 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x20, - 0x75, 0x0a, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x0c, 0x75, 0x02, 0xeb, 0x03, 0x25, 0xff, 0x7b, 0x89, - 0x86, 0x12, 0x01, 0x89, 0x86, 0x14, 0x01, 0xf7, 0x86, 0x12, 0x01, 0x01, 0x00, 0x74, 0x08, 0xc7, - 0x06, 0x6b, 0x45, 0x58, 0x02, 0xeb, 0x06, 0xc7, 0x06, 0x6b, 0x45, 0x08, 0x07, 0x8e, 0x46, 0x02, - 0x26, 0x8b, 0x1e, 0x28, 0x00, 0x81, 0xe3, 0xff, 0xf4, 0xa9, 0x04, 0x00, 0x74, 0x04, 0x81, 0xcb, - 0x00, 0x08, 0xa9, 0x02, 0x00, 0x74, 0x04, 0x81, 0xcb, 0x00, 0x03, 0x8e, 0x46, 0x02, 0x26, 0x89, - 0x1e, 0x28, 0x00, 0x8d, 0xb6, 0x80, 0x15, 0xe8, 0x02, 0x02, 0x8d, 0xb6, 0x7c, 0x15, 0xe8, 0x20, - 0x00, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x74, 0x03, 0xe8, 0xf2, 0x13, 0xc6, 0x86, 0x07, 0x01, 0x01, - 0xe8, 0x5f, 0x05, 0xe9, 0x90, 0xfe, 0x56, 0x83, 0xc6, 0x08, 0xe8, 0x04, 0x00, 0x5e, 0xe9, 0x85, - 0xfe, 0x8e, 0x46, 0x02, 0xb8, 0xc0, 0x00, 0xe8, 0x56, 0xcd, 0x26, 0xa3, 0x3a, 0x00, 0x8b, 0x04, - 0x0d, 0x80, 0x00, 0x89, 0x86, 0xd6, 0x01, 0xe8, 0x46, 0xcd, 0x26, 0xa3, 0x3c, 0x00, 0x8b, 0x44, - 0x02, 0x89, 0x86, 0xd8, 0x01, 0xe8, 0x38, 0xcd, 0x26, 0xa3, 0x3e, 0x00, 0xc3, 0x83, 0x8e, 0x1e, - 0x01, 0x01, 0xc6, 0x86, 0x16, 0x01, 0x00, 0x8a, 0x46, 0x06, 0x3c, 0x00, 0x74, 0x1b, 0x3c, 0x10, - 0x74, 0x17, 0x3c, 0x12, 0x74, 0x13, 0x3c, 0x0e, 0x74, 0x17, 0x3c, 0x48, 0x74, 0x19, 0xe8, 0x35, - 0xfe, 0xb8, 0x0f, 0x00, 0xe8, 0x86, 0xdd, 0xeb, 0x35, 0xe8, 0x2a, 0xfe, 0xe8, 0xc7, 0x03, 0xeb, - 0x2d, 0xc6, 0x46, 0x07, 0x10, 0xeb, 0x20, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x75, - 0x08, 0x26, 0x83, 0x26, 0x02, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0xce, - 0x13, 0xc6, 0x46, 0x07, 0x12, 0xeb, 0x00, 0xc6, 0x46, 0x09, 0x1e, 0xe9, 0xf8, 0xfd, 0xc3, 0xc6, - 0x86, 0x06, 0x01, 0x00, 0xb8, 0x05, 0x00, 0x80, 0xbe, 0x07, 0x01, 0x01, 0x75, 0x03, 0xe9, 0xe8, - 0xfd, 0x8b, 0x44, 0x08, 0x89, 0x86, 0xf4, 0x00, 0x8b, 0x44, 0x0a, 0xa9, 0x00, 0x02, 0x74, 0x03, - 0x0d, 0x00, 0x01, 0x89, 0x86, 0xf6, 0x00, 0x89, 0x86, 0xf8, 0x00, 0xf7, 0x86, 0xf6, 0x00, 0x00, - 0x04, 0x74, 0x06, 0xb8, 0x01, 0x00, 0xe9, 0xc0, 0xfd, 0x8b, 0x44, 0x12, 0x0b, 0xc0, 0x75, 0x16, - 0xb8, 0x18, 0x47, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x01, 0x75, 0x0b, 0xf7, 0x86, 0xf6, 0x00, 0x00, - 0x02, 0x75, 0x03, 0xb8, 0xc6, 0x11, 0x89, 0x86, 0xfa, 0x00, 0x89, 0x86, 0x32, 0x01, 0x8d, 0xbe, - 0x30, 0x04, 0x8b, 0x44, 0x0c, 0x89, 0x05, 0x89, 0x86, 0x00, 0x01, 0x8b, 0x44, 0x0e, 0x89, 0x45, - 0x02, 0x89, 0x86, 0x02, 0x01, 0x8b, 0x44, 0x10, 0x89, 0x45, 0x04, 0x89, 0x86, 0x04, 0x01, 0x80, - 0xbe, 0x62, 0x01, 0x01, 0x75, 0x21, 0x8b, 0x44, 0x0c, 0x89, 0x86, 0xb0, 0x03, 0x89, 0x86, 0xb6, - 0x03, 0x8b, 0x44, 0x0e, 0x89, 0x86, 0xb2, 0x03, 0x89, 0x86, 0xb8, 0x03, 0x8b, 0x44, 0x10, 0x89, - 0x86, 0xb4, 0x03, 0x89, 0x86, 0xba, 0x03, 0x8e, 0x46, 0x02, 0x8b, 0x86, 0xfa, 0x00, 0x26, 0xa3, - 0x12, 0x00, 0x8b, 0x44, 0x14, 0x26, 0xa3, 0x2a, 0x00, 0x8b, 0x44, 0x16, 0x25, 0xff, 0xf4, 0x83, - 0xc8, 0x30, 0x26, 0xa3, 0x28, 0x00, 0x8b, 0x86, 0xf4, 0x00, 0x25, 0xff, 0xfe, 0xc1, 0xe8, 0x08, - 0x89, 0x86, 0x24, 0x02, 0xf7, 0x86, 0xf4, 0x00, 0x04, 0x00, 0x74, 0x0f, 0xf6, 0x06, 0x1e, 0x56, - 0x01, 0x75, 0x08, 0xc6, 0x06, 0x1e, 0x56, 0x01, 0xe8, 0x9d, 0x0f, 0x80, 0xbe, 0x62, 0x01, 0x01, - 0x75, 0x01, 0xc3, 0xc6, 0x86, 0x06, 0x01, 0x01, 0xe9, 0xfb, 0xfc, 0x56, 0x8c, 0xd8, 0x8e, 0xc0, - 0x8d, 0x7c, 0x08, 0x8d, 0xb6, 0xd0, 0x02, 0xb9, 0x05, 0x00, 0x8b, 0xd1, 0xf3, 0xa5, 0x8d, 0xbe, - 0xd0, 0x02, 0x33, 0xc0, 0x8b, 0xca, 0xf3, 0xab, 0x81, 0xa6, 0x06, 0x02, 0x7f, 0xdf, 0x5e, 0xe9, - 0xd4, 0xfc, 0x56, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0x7c, 0x08, 0x8d, 0xb6, 0x3c, 0x02, 0xb9, 0x0c, - 0x00, 0x8b, 0xd1, 0xf3, 0xa5, 0x8d, 0xbe, 0x3c, 0x02, 0x33, 0xc0, 0x8b, 0xca, 0xf3, 0xab, 0x5e, - 0xe9, 0xb3, 0xfc, 0x83, 0xc6, 0x08, 0xe8, 0x03, 0x00, 0xe9, 0xaa, 0xfc, 0x06, 0x8e, 0x46, 0x02, - 0x8b, 0x04, 0x89, 0x86, 0xda, 0x01, 0xe8, 0x77, 0xcb, 0x26, 0xa3, 0x26, 0x00, 0x8b, 0x44, 0x02, - 0x23, 0x86, 0xf8, 0x01, 0xe8, 0x69, 0xcb, 0x25, 0xff, 0x7f, 0x26, 0x8b, 0x0e, 0x24, 0x00, 0x81, - 0xe1, 0x00, 0x80, 0x0b, 0xc1, 0x26, 0xa3, 0x24, 0x00, 0xe8, 0x54, 0xcb, 0x89, 0x86, 0xdc, 0x01, - 0x07, 0xc3, 0xb8, 0x05, 0x00, 0x80, 0xbe, 0x07, 0x01, 0x01, 0x75, 0x03, 0xe9, 0x6a, 0xfc, 0xc6, - 0x86, 0x62, 0x01, 0x01, 0xe8, 0x68, 0xfe, 0xc6, 0x86, 0x62, 0x01, 0x00, 0xc6, 0x86, 0x06, 0x01, - 0x01, 0xe9, 0x52, 0xfc, 0xb8, 0x11, 0x00, 0xc6, 0x86, 0x62, 0x01, 0x00, 0xe9, 0x4a, 0xfc, 0xc3, - 0x8b, 0xd8, 0x26, 0x8b, 0x04, 0x50, 0x33, 0xc0, 0x50, 0x23, 0xc3, 0x8b, 0xc8, 0x26, 0x89, 0x04, - 0x26, 0x8b, 0x04, 0x23, 0xc3, 0x3b, 0xc1, 0x58, 0x75, 0x3c, 0x05, 0x55, 0x55, 0x73, 0xe9, 0xb8, - 0x01, 0x00, 0x50, 0x23, 0xc3, 0x8b, 0xc8, 0x26, 0x89, 0x04, 0x26, 0x8b, 0x04, 0x23, 0xc3, 0x3b, - 0xc1, 0x58, 0x75, 0x22, 0xd1, 0xc0, 0x73, 0xea, 0xf7, 0xd0, 0x50, 0x23, 0xc3, 0x8b, 0xc8, 0x26, - 0x89, 0x04, 0x26, 0x8b, 0x04, 0x23, 0xc3, 0x3b, 0xc1, 0x58, 0x75, 0x0a, 0xd1, 0xc0, 0x72, 0xea, - 0xf8, 0x58, 0x26, 0x89, 0x04, 0xc3, 0xf9, 0xeb, 0xf8, 0x8b, 0x44, 0x08, 0x25, 0xff, 0x7b, 0x89, - 0x86, 0x12, 0x01, 0x89, 0x86, 0x14, 0x01, 0x8e, 0x46, 0x02, 0x26, 0x8b, 0x1e, 0x28, 0x00, 0x81, - 0xe3, 0xff, 0xf4, 0xa9, 0x04, 0x00, 0x74, 0x04, 0x81, 0xcb, 0x00, 0x08, 0xa9, 0x02, 0x00, 0x74, - 0x04, 0x81, 0xcb, 0x00, 0x03, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, 0x28, 0x00, 0xe9, 0xb6, 0xfb, - 0x8b, 0x44, 0x08, 0x89, 0x86, 0x28, 0x02, 0x86, 0xc4, 0x89, 0x86, 0x62, 0x05, 0xf6, 0x86, 0x73, - 0x02, 0x01, 0x75, 0x05, 0xc6, 0x86, 0x74, 0x02, 0x01, 0xc6, 0x86, 0x73, 0x02, 0x00, 0xe9, 0x95, - 0xfb, 0x8b, 0x44, 0x08, 0x89, 0x86, 0x30, 0x01, 0xbe, 0x09, 0x46, 0xe8, 0x7c, 0xcd, 0xe9, 0x85, - 0xfb, 0x8b, 0x44, 0x08, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x2a, 0x00, 0xe9, 0x78, 0xfb, 0x80, 0x7e, - 0x06, 0x0e, 0x74, 0x06, 0x80, 0x7e, 0x06, 0x48, 0x75, 0x13, 0x80, 0x7e, 0x08, 0x00, 0x74, 0x06, - 0x80, 0x7e, 0x08, 0x16, 0x75, 0x07, 0x8d, 0x5c, 0x08, 0xe8, 0xe2, 0xe9, 0xc3, 0xb8, 0x00, 0x10, - 0xe9, 0x56, 0xfb, 0xb8, 0x04, 0x00, 0xf6, 0x86, 0x07, 0x01, 0x01, 0x74, 0x1e, 0x8e, 0x46, 0x02, - 0x26, 0xa1, 0x28, 0x00, 0x8b, 0x5c, 0x08, 0x81, 0xe3, 0xff, 0xf4, 0x25, 0x00, 0x0b, 0x0b, 0xd8, - 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, 0x28, 0x00, 0xb8, 0x00, 0x20, 0xe9, 0x2b, 0xfb, 0xb8, 0x05, - 0x00, 0xf6, 0x86, 0x07, 0x01, 0x01, 0x75, 0x11, 0xfa, 0xe8, 0xe2, 0xce, 0xfa, 0xe8, 0x16, 0xfb, - 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x72, 0x00, 0x02, 0xe9, 0x0d, 0xfb, 0xe9, 0x07, 0xfb, 0x8b, - 0xd0, 0xb8, 0x01, 0x00, 0xe9, 0xa4, 0x01, 0xc3, 0x80, 0xbe, 0xad, 0x02, 0x01, 0x74, 0x0e, 0x80, - 0xbe, 0x07, 0x01, 0x01, 0x75, 0xf1, 0x80, 0xbe, 0x09, 0x01, 0x01, 0x74, 0xea, 0xc6, 0x86, 0x09, - 0x01, 0x01, 0xc6, 0x86, 0xad, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x00, 0x00, 0x02, - 0x00, 0x74, 0x08, 0xbe, 0x27, 0x46, 0xe8, 0xc1, 0xcc, 0xeb, 0x03, 0x0d, 0x00, 0x01, 0x80, 0xbe, - 0xa5, 0x02, 0x01, 0x74, 0x0a, 0x80, 0xbe, 0xa7, 0x02, 0x01, 0x74, 0x03, 0x0d, 0x00, 0x04, 0x80, - 0xbe, 0xa5, 0x02, 0x01, 0x74, 0x0a, 0x80, 0xbe, 0xa6, 0x02, 0x01, 0x74, 0x03, 0x0d, 0x00, 0x02, - 0xf7, 0x86, 0xa1, 0x02, 0x01, 0x00, 0x74, 0x03, 0x0d, 0x00, 0x08, 0xa9, 0x00, 0x80, 0x74, 0x1d, - 0xc7, 0x86, 0x2e, 0x01, 0x02, 0x00, 0xf6, 0x86, 0x2c, 0x01, 0x01, 0x74, 0x1d, 0x53, 0xbb, 0x40, - 0x60, 0x8e, 0xc3, 0x26, 0x81, 0x0e, 0x72, 0x00, 0x00, 0x02, 0x5b, 0xeb, 0x0d, 0x8a, 0x56, 0x06, - 0xd0, 0xe2, 0xd0, 0xe2, 0xd0, 0xe2, 0x24, 0x0f, 0x0a, 0xc2, 0x89, 0x86, 0x34, 0x02, 0x8b, 0xd0, - 0xb8, 0x02, 0x00, 0xe9, 0x92, 0x00, 0x8b, 0x96, 0x1e, 0x01, 0x8b, 0x86, 0x12, 0x01, 0xa9, 0x00, - 0x02, 0x74, 0x06, 0xf7, 0xc2, 0x05, 0x80, 0x74, 0x0e, 0xc6, 0x86, 0x07, 0x01, 0x00, 0xc6, 0x86, - 0x16, 0x01, 0x00, 0x81, 0xca, 0x80, 0x00, 0x33, 0xc0, 0x89, 0x86, 0x1e, 0x01, 0x89, 0x96, 0x20, - 0x01, 0xc7, 0x86, 0x34, 0x02, 0x00, 0x00, 0xf7, 0xc2, 0x01, 0x00, 0x75, 0x22, 0x83, 0xbe, 0x2e, - 0x01, 0x03, 0x74, 0x1b, 0xc7, 0x86, 0x2e, 0x01, 0x03, 0x00, 0xf6, 0x86, 0x2c, 0x01, 0x01, 0x74, - 0x0e, 0x53, 0xbb, 0x40, 0x60, 0x8e, 0xc3, 0x26, 0x81, 0x0e, 0x72, 0x00, 0x00, 0x02, 0x5b, 0xb8, - 0x03, 0x00, 0xeb, 0x34, 0x3b, 0xc0, 0x74, 0x00, 0x8b, 0xd0, 0xb8, 0x04, 0x00, 0xeb, 0x29, 0xc3, - 0xc6, 0x86, 0xca, 0x01, 0x00, 0xc6, 0x86, 0xcb, 0x01, 0x00, 0x55, 0x33, 0xed, 0xbe, 0x18, 0x55, - 0xe8, 0xd7, 0xcb, 0x5d, 0xb8, 0x05, 0x00, 0xeb, 0x0f, 0xb8, 0x06, 0x00, 0xeb, 0x0a, 0xb8, 0x07, - 0x00, 0xeb, 0x05, 0xb8, 0x08, 0x00, 0xeb, 0x00, 0x8b, 0xb6, 0x60, 0x01, 0x3b, 0xb6, 0x5e, 0x01, - 0x75, 0x0a, 0xf7, 0x86, 0x58, 0x15, 0x00, 0x80, 0x74, 0x02, 0xeb, 0x5f, 0x8b, 0x8e, 0x5e, 0x01, - 0x41, 0x80, 0xe1, 0x07, 0x3b, 0xf1, 0x75, 0x20, 0x46, 0x83, 0xe6, 0x07, 0x89, 0xb6, 0x60, 0x01, - 0x51, 0x8b, 0xce, 0xd1, 0xe1, 0xd1, 0xe1, 0x8d, 0xb6, 0x3e, 0x01, 0x03, 0xf1, 0x8b, 0x0c, 0x83, - 0xf9, 0x05, 0x74, 0x03, 0x0d, 0x00, 0x01, 0x59, 0x83, 0xf8, 0x04, 0x75, 0x1a, 0x51, 0xb9, 0x08, - 0x00, 0x8d, 0xb6, 0x3e, 0x01, 0x39, 0x04, 0x74, 0x08, 0x83, 0xc6, 0x04, 0xe2, 0xf7, 0x59, 0xeb, - 0x06, 0x89, 0x54, 0x02, 0x59, 0xeb, 0x13, 0x89, 0x8e, 0x5e, 0x01, 0xd1, 0xe1, 0xd1, 0xe1, 0x8d, - 0xb6, 0x3e, 0x01, 0x03, 0xf1, 0x89, 0x04, 0x89, 0x54, 0x02, 0xc3, 0x8d, 0xb6, 0x58, 0x15, 0x89, - 0x54, 0x06, 0xc7, 0x44, 0x04, 0x08, 0x00, 0x3c, 0x05, 0x75, 0x05, 0xc7, 0x44, 0x04, 0x06, 0x00, - 0x25, 0xff, 0x7f, 0x89, 0x04, 0xb8, 0x40, 0x60, 0x8e, 0xc0, 0x26, 0xc7, 0x06, 0x70, 0x00, 0x00, - 0x20, 0xc3, 0x8b, 0x86, 0x14, 0x01, 0x89, 0x86, 0x12, 0x01, 0xc6, 0x46, 0x09, 0x1e, 0xc6, 0x46, - 0x08, 0x1e, 0xc7, 0x86, 0x28, 0x01, 0x00, 0x00, 0xc7, 0x86, 0x2a, 0x01, 0x00, 0x00, 0x8c, 0xd8, - 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0xbe, 0xe0, 0x01, 0xb9, 0x2b, 0x00, 0xf3, 0xab, 0xc7, 0x86, 0x26, - 0x02, 0xff, 0xff, 0xb0, 0x02, 0xe8, 0x5a, 0xce, 0xf7, 0x86, 0xf6, 0x00, 0x80, 0x00, 0x74, 0x0c, - 0xb8, 0x05, 0x00, 0xe8, 0x13, 0x00, 0xc6, 0x46, 0x07, 0x42, 0xeb, 0x0c, 0xb8, 0x02, 0x00, 0xe8, - 0x07, 0x00, 0xc6, 0x46, 0x07, 0x02, 0xeb, 0x00, 0xc3, 0x50, 0xb0, 0x00, 0x88, 0x86, 0xa5, 0x02, - 0x88, 0x86, 0xa6, 0x02, 0x88, 0x86, 0xa7, 0x02, 0x88, 0x86, 0xa8, 0x02, 0x88, 0x86, 0xaa, 0x02, - 0x88, 0x86, 0xa9, 0x02, 0x58, 0x9c, 0xfa, 0x83, 0xf8, 0x02, 0x74, 0x13, 0x83, 0xf8, 0x05, 0x74, - 0x0c, 0xc7, 0x46, 0x12, 0xf8, 0x1c, 0xc7, 0x46, 0x14, 0xf8, 0x1c, 0xeb, 0x42, 0xeb, 0x21, 0xc6, - 0x86, 0xa5, 0x02, 0x01, 0xc6, 0x86, 0xa9, 0x02, 0x01, 0xc6, 0x86, 0xaa, 0x02, 0x00, 0xc7, 0x46, - 0x12, 0xc9, 0x31, 0xc7, 0x46, 0x14, 0xfd, 0x2e, 0xc7, 0x86, 0xba, 0x01, 0x2c, 0x00, 0xeb, 0x1f, - 0xc6, 0x86, 0xa7, 0x02, 0x01, 0xc6, 0x86, 0xa9, 0x02, 0x00, 0xc6, 0x86, 0xaa, 0x02, 0x01, 0xc7, - 0x46, 0x12, 0xcd, 0x31, 0xc7, 0x46, 0x14, 0x01, 0x2f, 0xc7, 0x86, 0xba, 0x01, 0x2c, 0x00, 0x0e, - 0xe8, 0x02, 0x00, 0xeb, 0x01, 0xcf, 0xc3, 0x8c, 0x00, 0x3a, 0x46, 0xbc, 0x02, 0x96, 0x00, 0x70, - 0x46, 0x14, 0x00, 0x96, 0x00, 0x84, 0x46, 0x08, 0x07, 0x96, 0x00, 0xbe, 0x46, 0x6e, 0x00, 0x78, - 0x00, 0x2e, 0x49, 0x00, 0x00, 0x6e, 0x00, 0x78, 0x47, 0xf4, 0x01, 0x6e, 0x00, 0xa8, 0x47, 0x08, - 0x07, 0x6e, 0x00, 0xd6, 0x4a, 0x05, 0x00, 0xaa, 0x00, 0xdc, 0x47, 0xfa, 0x00, 0x8c, 0x00, 0x52, - 0x48, 0x02, 0x00, 0x8c, 0x00, 0x42, 0x47, 0x3c, 0x00, 0x78, 0x00, 0xbe, 0x48, 0x04, 0x01, 0x96, - 0x00, 0xea, 0x48, 0x64, 0x00, 0x96, 0x00, 0x0e, 0x49, 0xdc, 0x05, 0xbe, 0x00, 0x34, 0x4a, 0xf4, - 0x01, 0xa0, 0x00, 0x58, 0x4b, 0xf4, 0x01, 0xbe, 0x00, 0x5e, 0x4a, 0xf4, 0x01, 0x82, 0x00, 0x7e, - 0x4d, 0x19, 0x00, 0x6e, 0x00, 0x3f, 0x4b, 0x14, 0x00, 0x78, 0x00, 0x72, 0x4a, 0xc4, 0x09, 0x6e, - 0x00, 0x86, 0x4a, 0x02, 0x00, 0xd2, 0x00, 0x06, 0x4e, 0x2c, 0x01, 0x78, 0x00, 0x90, 0x4c, 0xf0, - 0x00, 0x6e, 0x00, 0xaf, 0x4b, 0x04, 0x00, 0xa0, 0x00, 0xc6, 0x4b, 0xbc, 0x02, 0x6e, 0x00, 0xd8, - 0x4b, 0x08, 0x07, 0x6e, 0x00, 0xe6, 0x4b, 0xe8, 0x03, 0x6e, 0x00, 0xf8, 0x4b, 0x14, 0x00, 0x96, - 0x00, 0x04, 0x4c, 0x64, 0x00, 0xa0, 0x00, 0x9e, 0x4c, 0xf4, 0x01, 0xc8, 0x00, 0x16, 0x48, 0x02, - 0x00, 0x6e, 0x00, 0x2c, 0x4c, 0x04, 0x00, 0x8c, 0x00, 0x6e, 0x4c, 0x14, 0x00, 0xb4, 0x00, 0x8a, - 0x4e, 0x64, 0x00, 0xa0, 0x00, 0xa3, 0x4d, 0x05, 0x00, 0xc8, 0x00, 0xb8, 0x4d, 0x03, 0x00, 0xd2, - 0x00, 0x0a, 0x4e, 0xf4, 0x01, 0xd2, 0x00, 0x1c, 0x4e, 0x4c, 0x04, 0xdc, 0x00, 0x36, 0x4e, 0xfa, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x80, 0xbe, - 0x54, 0x02, 0x01, 0x75, 0x28, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x22, 0xf6, 0x86, 0x65, 0x02, 0x01, - 0x74, 0x1c, 0xe8, 0x59, 0xe2, 0xbe, 0x43, 0x45, 0xe8, 0x3f, 0xc9, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, - 0xc0, 0x8d, 0xbe, 0xee, 0x01, 0xab, 0xab, 0xab, 0xc6, 0x86, 0x65, 0x02, 0x00, 0xc3, 0xe8, 0xbf, - 0xe4, 0xeb, 0xdf, 0x90, 0x8a, 0x46, 0x08, 0x3c, 0x0a, 0x75, 0x0b, 0xf6, 0x86, 0x5e, 0x02, 0x01, - 0x74, 0x04, 0xc6, 0x46, 0x09, 0x04, 0xc3, 0x90, 0x80, 0xbe, 0xa6, 0x02, 0x01, 0x74, 0x32, 0x80, - 0x7e, 0x08, 0x06, 0x75, 0x2c, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0x0f, 0xf6, 0x86, 0x5e, 0x02, 0x01, - 0x74, 0x08, 0xb8, 0x07, 0x00, 0xe8, 0x55, 0xd6, 0xeb, 0x17, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, - 0x10, 0xf6, 0x86, 0x59, 0x02, 0x01, 0x75, 0x09, 0xc6, 0x86, 0x59, 0x02, 0x01, 0xc6, 0x46, 0x09, - 0x08, 0xc3, 0x8a, 0x4e, 0x06, 0x8a, 0x56, 0x08, 0x80, 0xf9, 0x06, 0x74, 0x71, 0x80, 0xf9, 0x08, - 0x74, 0x05, 0x80, 0xf9, 0x0a, 0x75, 0x0a, 0x80, 0xfa, 0x0c, 0x74, 0x62, 0x80, 0xfa, 0x04, 0x74, - 0x5d, 0x80, 0xfa, 0x0c, 0x74, 0x05, 0x80, 0xfa, 0x04, 0x75, 0x52, 0xf6, 0x86, 0x63, 0x02, 0x01, - 0x74, 0x4b, 0xe8, 0xf7, 0x02, 0xf6, 0x86, 0x61, 0x02, 0x01, 0x74, 0x0b, 0x81, 0x8e, 0x06, 0x02, - 0x00, 0x80, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xc6, 0x46, 0x09, 0x06, 0x81, 0x8e, 0x06, 0x02, 0x00, - 0x50, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xc6, 0x86, 0x6a, 0x02, 0x01, 0xc6, 0x86, 0x69, 0x02, 0x01, - 0xc6, 0x86, 0x6b, 0x02, 0x01, 0xe8, 0xb2, 0xca, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, - 0xfe, 0xbe, 0x4f, 0x45, 0xe8, 0x63, 0xc8, 0xbe, 0x79, 0x45, 0xe8, 0x5d, 0xc8, 0xc3, 0xb8, 0x07, - 0x00, 0xe8, 0xb9, 0xd5, 0xeb, 0xf7, 0x80, 0xbe, 0xa5, 0x02, 0x01, 0x74, 0x02, 0xeb, 0x2b, 0x80, - 0x7e, 0x06, 0x10, 0x75, 0x06, 0xc6, 0x46, 0x07, 0x12, 0xeb, 0x1f, 0x80, 0x7e, 0x08, 0x08, 0x75, - 0x19, 0xc6, 0x86, 0x69, 0x02, 0x01, 0xc6, 0x86, 0x6b, 0x02, 0x01, 0xe8, 0x6c, 0xca, 0xbe, 0xb5, - 0x45, 0xe8, 0x26, 0xc8, 0xbe, 0xbb, 0x45, 0xe8, 0x20, 0xc8, 0xc3, 0x90, 0xf6, 0x86, 0x5f, 0x02, - 0x01, 0x74, 0x28, 0xc6, 0x86, 0x5f, 0x02, 0x00, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x06, 0xc6, 0x46, - 0x09, 0x04, 0xeb, 0x17, 0x80, 0x7e, 0x08, 0x06, 0x75, 0x11, 0xc6, 0x86, 0x69, 0x02, 0x01, 0xe8, - 0x38, 0xca, 0xbe, 0x79, 0x45, 0xe8, 0xf2, 0xc7, 0xe8, 0x60, 0xe0, 0xc3, 0x8a, 0x46, 0x06, 0x3c, - 0x04, 0x75, 0x1e, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x02, 0x75, 0x0e, 0xc6, 0x46, 0x07, 0x06, 0xc6, - 0x46, 0x06, 0x06, 0xc6, 0x46, 0x09, 0x04, 0xeb, 0x16, 0xb8, 0x0d, 0x00, 0xe8, 0x2e, 0xd5, 0xeb, - 0x0e, 0x3c, 0x08, 0x72, 0x0a, 0x3c, 0x0c, 0x77, 0x06, 0xb8, 0x05, 0x00, 0xe8, 0x1e, 0xd5, 0xc3, - 0x80, 0x7e, 0x08, 0x00, 0x75, 0x33, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x75, 0x2c, 0xf6, 0x86, 0x5e, - 0x02, 0x01, 0x74, 0x25, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x14, 0x00, 0x03, 0x00, 0x74, 0x11, - 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x14, 0x00, 0x03, 0xbe, 0x73, 0x45, 0xe8, 0x8b, 0xc7, 0xeb, - 0x08, 0xc6, 0x46, 0x09, 0x04, 0xff, 0x86, 0x4a, 0x02, 0xc3, 0x80, 0x7e, 0x08, 0x18, 0x75, 0x0e, - 0xbe, 0xf7, 0x45, 0xe8, 0x74, 0xc7, 0xe8, 0xc3, 0x01, 0xe8, 0xdf, 0xdf, 0xeb, 0x00, 0xc3, 0xf6, - 0x86, 0x7c, 0x02, 0x01, 0x75, 0x1e, 0x80, 0xbe, 0x68, 0x02, 0x01, 0x75, 0x17, 0xc6, 0x46, 0x07, - 0x12, 0xc6, 0x46, 0x09, 0x1e, 0x83, 0x8e, 0x06, 0x02, 0x08, 0x83, 0x8e, 0x1e, 0x01, 0x02, 0xc6, - 0x86, 0x85, 0x02, 0x01, 0xc3, 0x90, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x35, 0x80, 0xbe, 0x5b, 0x02, - 0x01, 0x75, 0x58, 0x80, 0xbe, 0x54, 0x02, 0x01, 0x74, 0x1f, 0xe8, 0x6c, 0xe0, 0x80, 0x7e, 0x06, - 0x0a, 0x75, 0x16, 0xc6, 0x86, 0x63, 0x02, 0x01, 0xc6, 0x46, 0x07, 0x0c, 0xf7, 0x86, 0xf6, 0x00, - 0x00, 0x40, 0x75, 0x05, 0xc6, 0x86, 0x5e, 0x02, 0x01, 0xc3, 0xbe, 0x79, 0x45, 0xe8, 0x0a, 0xc7, - 0xc3, 0x8a, 0x46, 0x08, 0x3c, 0x04, 0x75, 0x0e, 0xbe, 0x79, 0x45, 0xe8, 0xfc, 0xc6, 0xff, 0x86, - 0xb2, 0x02, 0xe8, 0x9e, 0xdf, 0xc3, 0x3c, 0x06, 0x75, 0xdf, 0xf6, 0x86, 0x5f, 0x02, 0x01, 0x75, - 0xd8, 0xbe, 0x79, 0x45, 0xe8, 0xe3, 0xc6, 0xe8, 0x51, 0xdf, 0xc3, 0xc6, 0x86, 0x66, 0x02, 0x01, - 0xc3, 0x90, 0x80, 0xbe, 0xa6, 0x02, 0x01, 0x74, 0x22, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0x1b, 0xff, - 0x86, 0xb8, 0x02, 0x83, 0xbe, 0xb8, 0x02, 0x04, 0x77, 0x0a, 0xbe, 0x85, 0x45, 0xe8, 0xba, 0xc6, - 0xe8, 0x9b, 0xe0, 0xc3, 0xb8, 0x09, 0x00, 0xe8, 0x13, 0xd4, 0xc3, 0xeb, 0xfd, 0x90, 0x80, 0x7e, - 0x08, 0x02, 0x75, 0x1d, 0x80, 0xbe, 0x5e, 0x02, 0x01, 0x74, 0x08, 0xb8, 0x05, 0x00, 0xe8, 0xfc, - 0xd3, 0xeb, 0x0e, 0xff, 0x86, 0x4a, 0x02, 0xc6, 0x46, 0x09, 0x04, 0xb8, 0x00, 0x01, 0xe8, 0x50, - 0xe2, 0xc3, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x16, 0x80, 0xbe, 0x54, 0x02, 0x01, 0x74, 0x07, 0x80, - 0xbe, 0x5e, 0x02, 0x00, 0x74, 0x08, 0xff, 0x86, 0x4a, 0x02, 0xc6, 0x46, 0x09, 0x04, 0xc3, 0xe9, - 0xb8, 0x00, 0xf6, 0x86, 0xaa, 0x02, 0x01, 0x75, 0x07, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, 0xef, - 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x80, 0x74, 0x06, 0xbe, 0x5b, 0x45, 0xe8, 0x4c, 0xc6, 0x8d, 0xbe, - 0xd0, 0x02, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x05, 0x00, 0x33, 0xc0, 0xf3, 0xaf, 0x74, 0xd0, 0x80, - 0xbe, 0xa5, 0x02, 0x01, 0x74, 0x45, 0x80, 0xbe, 0xa6, 0x02, 0x01, 0x74, 0x5f, 0x80, 0xbe, 0xa7, - 0x02, 0x01, 0x74, 0x09, 0x80, 0xbe, 0xa8, 0x02, 0x01, 0x74, 0x51, 0xeb, 0x6d, 0xc7, 0x86, 0xb6, - 0x02, 0x04, 0x00, 0x81, 0x8e, 0x06, 0x02, 0x00, 0x20, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xf6, 0x86, - 0x6e, 0x02, 0x01, 0x74, 0x14, 0x80, 0x7e, 0x08, 0x16, 0x75, 0x0e, 0xc6, 0x86, 0x56, 0x02, 0x00, - 0xe8, 0xf5, 0xdf, 0xc7, 0x86, 0x2a, 0x02, 0x03, 0x00, 0xeb, 0x3f, 0xc7, 0x86, 0xb6, 0x02, 0x04, - 0x00, 0xc6, 0x86, 0x56, 0x02, 0x00, 0xe8, 0xdf, 0xdf, 0xc7, 0x86, 0x2a, 0x02, 0x03, 0x00, 0x81, - 0x8e, 0x06, 0x02, 0x00, 0x20, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xeb, 0x1e, 0xc7, 0x86, 0xb6, 0x02, - 0x04, 0x00, 0x81, 0x8e, 0x06, 0x02, 0x00, 0x20, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xf7, 0x86, 0xf6, - 0x00, 0x00, 0x80, 0x75, 0x05, 0xc6, 0x86, 0x56, 0x02, 0x00, 0xc3, 0x90, 0xb8, 0x00, 0x02, 0xc7, - 0x86, 0x32, 0x02, 0x06, 0x00, 0x80, 0xbe, 0x61, 0x02, 0x01, 0x74, 0x37, 0xf6, 0x86, 0xa7, 0x02, - 0x01, 0x75, 0x07, 0xf6, 0x86, 0xa8, 0x02, 0x01, 0x74, 0x05, 0xb8, 0x00, 0x05, 0xeb, 0x24, 0xb8, - 0x00, 0x04, 0xc7, 0x86, 0x32, 0x02, 0x04, 0x00, 0x8a, 0x4e, 0x08, 0x80, 0xf9, 0x0c, 0x74, 0x13, - 0xb8, 0x00, 0x04, 0x80, 0xbe, 0x5a, 0x02, 0x01, 0x74, 0x09, 0xb8, 0x00, 0x03, 0xc7, 0x86, 0x32, - 0x02, 0x07, 0x00, 0x89, 0x86, 0x00, 0x03, 0xc3, 0x80, 0x7e, 0x08, 0x08, 0x74, 0x23, 0x8a, 0x46, - 0x06, 0x3c, 0x04, 0x72, 0x1c, 0x3c, 0x48, 0x74, 0x04, 0x3c, 0x0e, 0x77, 0x14, 0xf6, 0x86, 0x5d, - 0x02, 0x01, 0x74, 0x0d, 0xf6, 0x86, 0x5c, 0x02, 0x01, 0x74, 0x06, 0xb8, 0x0c, 0x00, 0xe8, 0x9c, - 0xd2, 0xc3, 0xc6, 0x86, 0x5d, 0x02, 0x01, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x04, 0x00, 0xff, - 0xf7, 0xe8, 0xd4, 0x02, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x02, 0x74, 0x06, 0x80, 0x7e, 0x08, 0x08, - 0x75, 0x06, 0xb8, 0x01, 0x00, 0xe8, 0x75, 0xd2, 0xc3, 0x90, 0x51, 0x52, 0x56, 0x33, 0xd2, 0xc6, - 0x86, 0x69, 0x02, 0x00, 0xe8, 0x43, 0xc7, 0x8d, 0xb6, 0xa6, 0x01, 0x8d, 0xbe, 0xac, 0x01, 0x8c, - 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0xc6, 0x86, 0x83, 0x02, 0x00, 0x32, 0xc0, 0xe8, 0x7e, 0xe3, - 0xc6, 0x86, 0x68, 0x01, 0x02, 0xc7, 0x86, 0x66, 0x01, 0x20, 0x03, 0xbe, 0x6d, 0x45, 0xe8, 0xd9, - 0xc4, 0x8b, 0xb6, 0x64, 0x01, 0xb9, 0xe8, 0x03, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x1c, 0x00, - 0x00, 0x00, 0xe8, 0x48, 0xde, 0x5e, 0x5a, 0x59, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x02, 0x74, 0x0c, - 0x80, 0x7e, 0x06, 0x44, 0x74, 0x06, 0x80, 0x7e, 0x08, 0x08, 0x75, 0x56, 0xfe, 0x8e, 0x68, 0x01, - 0x80, 0x8e, 0x68, 0x01, 0x00, 0x74, 0x45, 0xbe, 0x6d, 0x45, 0xe8, 0x9d, 0xc4, 0xe8, 0x06, 0xbf, - 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x0c, 0x00, 0x00, 0x01, 0x90, 0x8e, 0x46, 0x02, 0x26, 0x81, - 0x26, 0x0c, 0x00, 0xff, 0xfe, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x1c, 0x00, 0x00, 0x00, 0x8b, - 0xb6, 0x64, 0x01, 0xb9, 0xe8, 0x03, 0xc6, 0x86, 0x86, 0x02, 0x01, 0x83, 0xbe, 0x66, 0x01, 0x01, - 0x75, 0x05, 0xe8, 0xcf, 0xdd, 0xeb, 0x0b, 0xe8, 0xe3, 0xdd, 0xeb, 0x06, 0xb8, 0x01, 0x00, 0xe8, - 0xbb, 0xd1, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x80, 0x00, 0x74, 0x10, 0x80, 0x7e, 0x06, 0x14, 0x75, - 0x0a, 0xb8, 0x05, 0x00, 0xe8, 0x72, 0xf9, 0xc6, 0x46, 0x07, 0x42, 0xc3, 0x80, 0xbe, 0xa6, 0x02, - 0x01, 0x74, 0x4e, 0xc6, 0x86, 0x6c, 0x02, 0x00, 0x80, 0x7e, 0x08, 0x08, 0x75, 0x2c, 0xf6, 0x86, - 0x6d, 0x02, 0x01, 0x74, 0x25, 0xe9, 0xd4, 0xcf, 0xbe, 0x7f, 0x45, 0xe8, 0x1c, 0xc4, 0x8e, 0x46, - 0x02, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x02, 0x00, 0xfd, 0xeb, 0x08, - 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0xd7, 0x07, 0xeb, 0x16, 0x80, 0x7e, 0x06, 0x10, 0x75, 0x10, - 0xc6, 0x46, 0x09, 0x00, 0xc6, 0x86, 0x54, 0x02, 0x00, 0xc6, 0x86, 0x68, 0x02, 0x00, 0xeb, 0xc8, - 0xc3, 0xeb, 0xfd, 0x80, 0x7e, 0x06, 0x42, 0x75, 0x0f, 0xc7, 0x86, 0xce, 0x02, 0x05, 0x00, 0xbe, - 0xfd, 0x45, 0xe8, 0xd5, 0xc3, 0xe8, 0xea, 0xdf, 0xc3, 0x90, 0x80, 0x7e, 0x08, 0x18, 0x74, 0x06, - 0x80, 0x7e, 0x08, 0x1a, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x1c, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x46, - 0x75, 0x06, 0xb8, 0x05, 0x00, 0xe8, 0x15, 0xd1, 0xc3, 0x90, 0x80, 0x7e, 0x08, 0x1c, 0x75, 0x0a, - 0x80, 0x7e, 0x06, 0x48, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x44, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x42, - 0x75, 0x04, 0xc6, 0x46, 0x07, 0x44, 0xc3, 0x90, 0xf6, 0x86, 0x72, 0x02, 0x01, 0x74, 0x20, 0xf6, - 0x46, 0x06, 0x46, 0x75, 0x11, 0xc6, 0x86, 0x6b, 0x02, 0x01, 0xc6, 0x86, 0x76, 0x02, 0x01, 0xe8, - 0xb8, 0xc5, 0xff, 0x86, 0xcc, 0x02, 0xe8, 0xb0, 0xdc, 0xbe, 0xeb, 0x45, 0xe8, 0x6b, 0xc3, 0xc3, - 0x80, 0x7e, 0x06, 0x42, 0x75, 0x3b, 0xf6, 0x86, 0x77, 0x02, 0x01, 0x75, 0x34, 0x83, 0xbe, 0xce, - 0x02, 0x00, 0x74, 0x0f, 0xff, 0x8e, 0xce, 0x02, 0xbe, 0xfd, 0x45, 0xe8, 0x4c, 0xc3, 0xe8, 0x61, - 0xdf, 0xeb, 0x1e, 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x10, 0x74, 0x10, 0xb8, 0x02, 0x00, 0xe8, 0x68, - 0xf8, 0xc6, 0x46, 0x09, 0x1e, 0xc6, 0x46, 0x07, 0x02, 0xeb, 0x06, 0xb8, 0x06, 0x00, 0xe8, 0x8c, - 0xd0, 0xc3, 0x80, 0x7e, 0x06, 0x46, 0x75, 0x1a, 0xc6, 0x86, 0x6b, 0x02, 0x01, 0xc6, 0x86, 0x76, - 0x02, 0x01, 0xe8, 0x55, 0xc5, 0xff, 0x86, 0xcc, 0x02, 0xbe, 0x03, 0x46, 0xe8, 0x0b, 0xc3, 0xe8, - 0x62, 0xdf, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x44, 0x75, 0x06, 0xb8, 0x05, 0x00, 0xe8, 0x5d, 0xd0, - 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x46, 0x75, 0x08, 0xb8, 0x06, 0x00, 0xe8, 0x4f, 0xd0, 0xeb, 0x17, - 0x80, 0x7e, 0x08, 0x16, 0x75, 0x11, 0xc7, 0x86, 0x2a, 0x02, 0x04, 0x00, 0xf6, 0x86, 0x6e, 0x02, - 0x01, 0x74, 0x04, 0xc6, 0x46, 0x09, 0x18, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x8b, 0x16, 0x02, 0x00, - 0xf7, 0xc2, 0x02, 0x00, 0x74, 0x14, 0x8b, 0xc2, 0x83, 0xe0, 0xfd, 0x8e, 0x46, 0x02, 0x26, 0xa3, - 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x16, 0x02, 0x00, 0xc3, 0x90, 0x8e, 0x46, 0x02, 0x26, - 0xf7, 0x06, 0x14, 0x00, 0x03, 0x00, 0x74, 0x10, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x14, 0x00, - 0x03, 0xc6, 0x86, 0x55, 0x02, 0x01, 0xeb, 0x00, 0xf6, 0x86, 0x55, 0x02, 0x01, 0x75, 0x14, 0x80, - 0x7e, 0x08, 0x00, 0x75, 0x0e, 0xc6, 0x46, 0x09, 0x02, 0xff, 0x86, 0x40, 0x02, 0x81, 0x8e, 0xda, - 0x02, 0x00, 0x02, 0xc6, 0x86, 0x55, 0x02, 0x00, 0xc3, 0x90, 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x10, - 0x75, 0x15, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x14, 0x00, 0x03, 0x00, 0x74, 0x09, 0x8e, 0x46, - 0x02, 0x26, 0x83, 0x26, 0x14, 0x00, 0x03, 0xc3, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x75, 0x32, 0x8e, - 0x46, 0x02, 0x26, 0xf7, 0x06, 0x14, 0x00, 0x08, 0x00, 0x74, 0x21, 0xf6, 0x86, 0x5d, 0x02, 0x01, - 0x74, 0x1f, 0xf6, 0x86, 0x5c, 0x02, 0x01, 0x75, 0x18, 0xc7, 0x86, 0x2a, 0x02, 0x0a, 0x00, 0xbe, - 0x97, 0x45, 0xe8, 0x25, 0xc2, 0xc6, 0x86, 0x5c, 0x02, 0x01, 0xeb, 0x05, 0xc6, 0x86, 0x5c, 0x02, - 0x00, 0xc3, 0xbe, 0xa9, 0x45, 0xe8, 0x12, 0xc2, 0x33, 0xc0, 0x87, 0x86, 0xc2, 0x02, 0x0b, 0xc0, - 0x75, 0x14, 0x80, 0xbe, 0x61, 0x02, 0x00, 0x74, 0x0d, 0xc6, 0x86, 0x61, 0x02, 0x00, 0x80, 0xa6, - 0x07, 0x02, 0x7f, 0xe8, 0x46, 0xfc, 0xc3, 0x80, 0x7e, 0x06, 0x12, 0x75, 0x0d, 0xc6, 0x86, 0x08, - 0x01, 0x01, 0xc6, 0x86, 0x09, 0x01, 0x00, 0xe8, 0xb8, 0xf6, 0xc3, 0x90, 0xf6, 0x86, 0x6e, 0x01, - 0x01, 0x74, 0x15, 0x80, 0xbe, 0x70, 0x01, 0x03, 0x73, 0x07, 0xc6, 0x86, 0x6c, 0x01, 0x01, 0xeb, - 0x23, 0xc6, 0x86, 0x6e, 0x01, 0x00, 0xeb, 0x1c, 0xf6, 0x86, 0x6f, 0x01, 0x01, 0x74, 0x15, 0x80, - 0xbe, 0x71, 0x01, 0x03, 0x73, 0x07, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xeb, 0x07, 0xc6, 0x86, 0x6f, - 0x01, 0x00, 0xeb, 0x00, 0xc3, 0xf7, 0x86, 0x58, 0x15, 0x00, 0x80, 0x75, 0x07, 0x83, 0xbe, 0x58, - 0x15, 0x05, 0x74, 0x05, 0xc6, 0x86, 0xca, 0x01, 0x01, 0xc3, 0xe8, 0xf6, 0xcf, 0xc3, 0xf7, 0x86, - 0xf6, 0x00, 0x08, 0x00, 0x74, 0x09, 0xe8, 0xb0, 0xf5, 0xbe, 0x21, 0x46, 0xe8, 0x7b, 0xc1, 0xc3, - 0xf7, 0x86, 0xf6, 0x00, 0x08, 0x00, 0x74, 0x11, 0x81, 0x8e, 0x06, 0x02, 0x00, 0x04, 0xc6, 0x86, - 0x85, 0x02, 0x01, 0xb8, 0x10, 0x00, 0xe8, 0xc4, 0xce, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, - 0x00, 0x00, 0x02, 0x00, 0x74, 0x41, 0xbb, 0x00, 0x03, 0x8b, 0x47, 0x14, 0x83, 0xf8, 0x00, 0x74, - 0x36, 0x3b, 0x86, 0x2a, 0x01, 0x74, 0x0c, 0x89, 0x86, 0x2a, 0x01, 0xc7, 0x86, 0x28, 0x01, 0x00, - 0x00, 0xeb, 0x24, 0xff, 0x86, 0x28, 0x01, 0x83, 0xbe, 0x28, 0x01, 0x02, 0x72, 0x19, 0x83, 0xbe, - 0x28, 0x01, 0x18, 0x73, 0x0c, 0x80, 0x7e, 0x08, 0x00, 0x74, 0x0c, 0x80, 0x7e, 0x08, 0x16, 0x74, - 0x06, 0xb8, 0x10, 0x00, 0xe8, 0x76, 0xce, 0xbe, 0x27, 0x46, 0xe8, 0x0d, 0xc1, 0xc3, 0x8b, 0x86, - 0x30, 0x01, 0x88, 0xa6, 0x2c, 0x01, 0x86, 0x86, 0x2d, 0x01, 0x32, 0x86, 0x2d, 0x01, 0x74, 0x0f, - 0xf6, 0x46, 0x06, 0x0e, 0x74, 0x06, 0xf6, 0x46, 0x06, 0x48, 0x75, 0x03, 0xe8, 0xfa, 0xbb, 0xc3, - 0xf6, 0x86, 0x90, 0x02, 0x01, 0x74, 0x07, 0xa8, 0x24, 0x74, 0x03, 0xe8, 0x8a, 0xcf, 0xf6, 0x86, - 0xa9, 0x02, 0x01, 0x74, 0x09, 0x80, 0xbe, 0x5e, 0x02, 0x01, 0x75, 0x58, 0xeb, 0x09, 0xf6, 0x86, - 0x6e, 0x02, 0x01, 0x75, 0x10, 0xeb, 0x52, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x02, 0xeb, 0x45, 0x80, - 0x7e, 0x08, 0x00, 0x75, 0x3f, 0xa8, 0x01, 0x74, 0x05, 0x83, 0x8e, 0xda, 0x02, 0x10, 0xa8, 0x04, - 0x74, 0x05, 0x83, 0x8e, 0xda, 0x02, 0x04, 0xa8, 0x08, 0x74, 0x05, 0x83, 0x8e, 0xda, 0x02, 0x40, - 0xa8, 0x20, 0x74, 0x10, 0x81, 0x8e, 0xda, 0x02, 0x00, 0x01, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x75, - 0x03, 0xe8, 0x8d, 0xc4, 0xa8, 0x40, 0x74, 0x05, 0x83, 0x8e, 0xda, 0x02, 0x01, 0xa8, 0x80, 0x74, - 0x03, 0xe8, 0x52, 0x00, 0xa9, 0x00, 0x01, 0x75, 0x01, 0xc3, 0x50, 0x80, 0x7e, 0x08, 0x0a, 0x75, - 0x06, 0xc6, 0x46, 0x09, 0x04, 0xeb, 0x1b, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x23, 0xc6, 0x46, 0x09, - 0x02, 0xff, 0x86, 0x40, 0x02, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, 0x06, 0x81, 0x8e, 0xda, 0x02, - 0x00, 0x02, 0xc6, 0x86, 0x69, 0x02, 0x01, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x0c, 0x00, 0x10, - 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, - 0x08, 0x00, 0x00, 0x01, 0x58, 0xc3, 0x83, 0x8e, 0xda, 0x02, 0x20, 0x83, 0x7e, 0x06, 0x08, 0x75, - 0x13, 0x8b, 0x8e, 0xc4, 0x02, 0x41, 0x89, 0x8e, 0xc4, 0x02, 0x80, 0xf9, 0x02, 0x75, 0x05, 0x50, - 0xe8, 0x71, 0xd9, 0x58, 0xc3, 0x50, 0x53, 0x51, 0x8a, 0x4e, 0x06, 0x80, 0xf9, 0x0e, 0x74, 0x1e, - 0x80, 0xf9, 0x48, 0x74, 0x19, 0x80, 0xbe, 0x54, 0x02, 0x01, 0x74, 0x46, 0x80, 0xf9, 0x08, 0x72, - 0x41, 0x80, 0xf9, 0x0e, 0x77, 0x3c, 0xb8, 0x02, 0x00, 0xe8, 0x41, 0xcd, 0xeb, 0x34, 0xc7, 0x86, - 0x2a, 0x02, 0x05, 0x00, 0xc6, 0x86, 0x61, 0x02, 0x01, 0x8a, 0x46, 0x08, 0x3c, 0x06, 0x74, 0x26, - 0x3c, 0x02, 0x74, 0x51, 0x3c, 0x08, 0x74, 0x1a, 0x3c, 0x04, 0x74, 0x16, 0xf6, 0x86, 0xa7, 0x02, - 0x01, 0x75, 0x13, 0xf6, 0x86, 0xa8, 0x02, 0x01, 0x75, 0x0c, 0xc6, 0x46, 0x09, 0x04, 0xff, 0x86, - 0x4a, 0x02, 0x59, 0x5b, 0x58, 0xc3, 0x8b, 0x86, 0x06, 0x02, 0xf6, 0xc4, 0x80, 0x75, 0x0c, 0x80, - 0xcc, 0x80, 0x89, 0x86, 0x06, 0x02, 0xc6, 0x86, 0x85, 0x02, 0x01, 0x81, 0xbe, 0x00, 0x03, 0x00, - 0x02, 0x74, 0xdf, 0xc7, 0x86, 0x00, 0x03, 0x00, 0x02, 0xf6, 0x86, 0xa5, 0x02, 0x01, 0x74, 0xd2, - 0xe8, 0xe8, 0xd7, 0xeb, 0xcd, 0xb8, 0x00, 0x01, 0xe8, 0x36, 0xdb, 0xf6, 0x86, 0x5e, 0x02, 0x01, - 0x74, 0xc0, 0xc6, 0x46, 0x09, 0x04, 0xeb, 0xba, 0xfa, 0xc7, 0x06, 0x30, 0x00, 0x0a, 0x0f, 0x8c, - 0x0e, 0x32, 0x00, 0xb8, 0x00, 0x00, 0xe7, 0x06, 0xb8, 0xea, 0x09, 0xe7, 0x00, 0xb8, 0x09, 0x00, - 0xe7, 0x06, 0xb0, 0x7f, 0xe8, 0xfb, 0xbb, 0xc6, 0x06, 0x1f, 0x56, 0x80, 0xfb, 0xc3, 0xf7, 0x86, - 0x82, 0x01, 0x01, 0x00, 0x74, 0x1a, 0xc7, 0x86, 0x82, 0x01, 0x00, 0x00, 0xf6, 0x86, 0x6e, 0x01, - 0x01, 0x74, 0x0d, 0xc6, 0x86, 0x6e, 0x01, 0x00, 0xbe, 0x15, 0x46, 0xe8, 0xce, 0xbf, 0xeb, 0x00, - 0xf7, 0x86, 0x8a, 0x01, 0x01, 0x00, 0x74, 0x45, 0xc7, 0x86, 0x8a, 0x01, 0x00, 0x00, 0xf6, 0x86, - 0x6f, 0x01, 0x01, 0x74, 0x0d, 0xc6, 0x86, 0x6f, 0x01, 0x00, 0xbe, 0x15, 0x46, 0xe8, 0xac, 0xbf, - 0xeb, 0x2b, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x06, 0x80, 0x7e, 0x06, 0x48, 0x75, 0x1f, 0xf6, 0x86, - 0x5d, 0x02, 0x01, 0x74, 0x18, 0xf6, 0x86, 0x5c, 0x02, 0x01, 0x75, 0x11, 0xc6, 0x86, 0x5c, 0x02, - 0x01, 0xc7, 0x86, 0x2a, 0x02, 0x0a, 0x00, 0xb8, 0x0c, 0x00, 0xe8, 0x30, 0xcc, 0xc3, 0xb9, 0x01, - 0x00, 0x33, 0xdb, 0x8b, 0xaf, 0xe6, 0x54, 0x8e, 0x46, 0x02, 0x26, 0x8b, 0x16, 0x14, 0x00, 0x83, - 0xe2, 0x08, 0x26, 0xa1, 0x32, 0x00, 0xd1, 0xe8, 0xd0, 0xe8, 0x86, 0xe0, 0xf7, 0xc2, 0x08, 0x00, - 0x75, 0x02, 0xeb, 0x67, 0x83, 0xbe, 0x74, 0x01, 0x00, 0x75, 0x04, 0x88, 0xa6, 0x78, 0x01, 0x81, - 0xbe, 0x74, 0x01, 0xbc, 0x02, 0x72, 0x06, 0xc7, 0x86, 0x74, 0x01, 0xf4, 0x01, 0x8a, 0xc4, 0x2a, - 0xe4, 0x83, 0xf8, 0x7f, 0x75, 0x12, 0x8b, 0x86, 0x74, 0x01, 0xbe, 0xeb, 0x09, 0xf7, 0xe6, 0xbe, - 0x20, 0x00, 0xf7, 0xf6, 0x03, 0x86, 0x78, 0x01, 0x89, 0x86, 0x7c, 0x01, 0xff, 0x86, 0x74, 0x01, - 0x83, 0xbe, 0x7c, 0x01, 0x7d, 0x72, 0x21, 0x83, 0xbe, 0x88, 0x01, 0x01, 0x74, 0x1a, 0xc7, 0x86, - 0x88, 0x01, 0x01, 0x00, 0xc7, 0x86, 0x8a, 0x01, 0x01, 0x00, 0xa1, 0xd0, 0x54, 0x89, 0x86, 0x8c, - 0x01, 0xa1, 0xd2, 0x54, 0x89, 0x86, 0x8e, 0x01, 0xe9, 0x94, 0x00, 0x83, 0xbe, 0x76, 0x01, 0x00, - 0x75, 0x04, 0x88, 0x86, 0x7a, 0x01, 0x81, 0xbe, 0x76, 0x01, 0xbc, 0x02, 0x72, 0x06, 0xc7, 0x86, - 0x76, 0x01, 0xf4, 0x01, 0x2a, 0xe4, 0x83, 0xf8, 0x7f, 0x75, 0x12, 0x8b, 0x86, 0x76, 0x01, 0xbe, - 0xeb, 0x09, 0xf7, 0xe6, 0xbe, 0x20, 0x00, 0xf7, 0xf6, 0x03, 0x86, 0x7a, 0x01, 0x89, 0x86, 0x7e, - 0x01, 0xff, 0x86, 0x76, 0x01, 0x83, 0xbe, 0x80, 0x01, 0x01, 0x74, 0x53, 0x83, 0xf8, 0x1f, 0x72, - 0x4e, 0x8d, 0xb6, 0x96, 0x01, 0x83, 0x3c, 0x12, 0x72, 0x45, 0x83, 0x3c, 0x23, 0x77, 0x40, 0x83, - 0x7c, 0x02, 0x1f, 0x72, 0x3a, 0x83, 0x7c, 0x02, 0x45, 0x77, 0x34, 0x83, 0x7c, 0x04, 0x12, 0x72, - 0x2e, 0x90, 0x83, 0x7c, 0x04, 0x23, 0x77, 0x27, 0x81, 0x7c, 0x06, 0x9c, 0x00, 0x72, 0x20, 0xc7, - 0x86, 0x80, 0x01, 0x01, 0x00, 0xc7, 0x86, 0x82, 0x01, 0x01, 0x00, 0xc7, 0x86, 0x88, 0x01, 0x00, - 0x00, 0xa1, 0xd0, 0x54, 0x89, 0x86, 0x84, 0x01, 0xa1, 0xd2, 0x54, 0x89, 0x86, 0x86, 0x01, 0x83, - 0xc3, 0x02, 0x49, 0x74, 0x03, 0xe9, 0xdb, 0xfe, 0xc3, 0x50, 0x51, 0x52, 0x56, 0x57, 0x8e, 0x46, - 0x02, 0x83, 0x86, 0x90, 0x01, 0x01, 0x83, 0x96, 0x92, 0x01, 0x00, 0xc7, 0x86, 0x80, 0x01, 0x00, - 0x00, 0x26, 0xa1, 0x32, 0x00, 0xd1, 0xe8, 0xd0, 0xe8, 0x86, 0xe0, 0x8d, 0xb6, 0x96, 0x01, 0x26, - 0x8b, 0x0e, 0x14, 0x00, 0x83, 0xe1, 0x08, 0x89, 0x8e, 0x94, 0x01, 0xf7, 0xc1, 0x08, 0x00, 0x74, - 0x4f, 0x8b, 0x4c, 0x0a, 0x89, 0x4c, 0x0e, 0x8b, 0x4c, 0x06, 0x89, 0x4c, 0x0a, 0x8b, 0x4c, 0x02, - 0x89, 0x4c, 0x06, 0x2a, 0xe4, 0x8b, 0xc8, 0x83, 0xf8, 0x7f, 0x75, 0x19, 0xb0, 0x0a, 0xe6, 0x10, - 0xe5, 0x00, 0xb1, 0x05, 0xd3, 0xe8, 0x03, 0x86, 0x7e, 0x01, 0x8b, 0xc8, 0xe4, 0x10, 0xa8, 0x10, - 0x74, 0x03, 0x83, 0xc1, 0x4f, 0x8b, 0xc1, 0x89, 0x44, 0x02, 0xc7, 0x86, 0x7e, 0x01, 0x00, 0x00, - 0xc7, 0x86, 0x76, 0x01, 0x00, 0x00, 0xeb, 0x7f, 0xc7, 0x86, 0x88, 0x01, 0x00, 0x00, 0xeb, 0x77, - 0x8b, 0x4c, 0x08, 0x89, 0x4c, 0x0c, 0x8b, 0x4c, 0x04, 0x89, 0x4c, 0x08, 0x8b, 0x0c, 0x89, 0x4c, - 0x04, 0x8a, 0xc4, 0x2a, 0xe4, 0x8b, 0xc8, 0x83, 0xf8, 0x7f, 0x75, 0x25, 0xb0, 0x0a, 0xe6, 0x10, - 0xe5, 0x00, 0xb1, 0x05, 0xd3, 0xe8, 0x03, 0x86, 0x7c, 0x01, 0x8b, 0xc8, 0xe4, 0x10, 0xa8, 0x10, - 0x74, 0x03, 0x83, 0xc1, 0x4f, 0x8b, 0x96, 0x7c, 0x01, 0x83, 0xf9, 0x7f, 0x77, 0x03, 0x83, 0xc1, - 0x4f, 0x8b, 0xc1, 0x89, 0x04, 0xc7, 0x86, 0x7c, 0x01, 0x00, 0x00, 0xc7, 0x86, 0x74, 0x01, 0x00, - 0x00, 0x83, 0xf8, 0x7d, 0x72, 0xa2, 0x83, 0xbe, 0x88, 0x01, 0x01, 0x74, 0x1a, 0xc7, 0x86, 0x88, - 0x01, 0x01, 0x00, 0xc7, 0x86, 0x8a, 0x01, 0x01, 0x00, 0xa1, 0xd0, 0x54, 0x89, 0x86, 0x84, 0x01, - 0xa1, 0xd2, 0x54, 0x89, 0x86, 0x86, 0x01, 0x5f, 0x5e, 0x5a, 0x59, 0x58, 0xc3, 0x50, 0x51, 0x57, - 0x06, 0xfa, 0x8c, 0xd8, 0x8e, 0xc0, 0x2b, 0xc0, 0x8d, 0xbe, 0x72, 0x01, 0xb9, 0x1a, 0x00, 0xf3, - 0xab, 0xfb, 0x07, 0x5f, 0x59, 0x58, 0xc3, 0xfa, 0xf6, 0x06, 0x1f, 0x56, 0x80, 0x74, 0x4e, 0xc6, - 0x86, 0x6c, 0x01, 0x00, 0xc6, 0x86, 0x6e, 0x01, 0x01, 0xfe, 0x86, 0x70, 0x01, 0x8a, 0x46, 0x00, - 0xa2, 0x1f, 0x56, 0xc7, 0x06, 0x20, 0x56, 0x02, 0x00, 0xc7, 0x06, 0x22, 0x56, 0x01, 0x00, 0xe5, - 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, 0x8b, 0xc8, 0xb8, 0xd6, 0x13, 0xe7, 0x02, 0xb8, 0x4e, 0x03, - 0xe7, 0x04, 0x83, 0xc9, 0x46, 0x8b, 0xc1, 0xe7, 0x06, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x02, - 0x00, 0x01, 0xbe, 0x15, 0x46, 0xe8, 0x32, 0xbc, 0xc6, 0x86, 0x5d, 0x02, 0x01, 0xfb, 0xc3, 0xfa, - 0xf6, 0x06, 0x1f, 0x56, 0x80, 0x74, 0x49, 0xc6, 0x86, 0x6d, 0x01, 0x00, 0xc6, 0x86, 0x6f, 0x01, - 0x01, 0xfe, 0x86, 0x71, 0x01, 0x8a, 0x46, 0x00, 0xa2, 0x1f, 0x56, 0xc7, 0x06, 0x20, 0x56, 0x0e, - 0x00, 0xc7, 0x06, 0x22, 0x56, 0x02, 0x00, 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, 0x8b, 0xc8, - 0xb8, 0xf7, 0x03, 0xe7, 0x02, 0xb8, 0xd6, 0x13, 0xe7, 0x04, 0x83, 0xc9, 0x46, 0x8b, 0xc1, 0xe7, - 0x06, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x02, 0x00, 0x01, 0xbe, 0x15, 0x46, 0xe8, 0xda, 0xbb, - 0xfb, 0xc3, 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, 0xc3, 0xb8, 0x9d, 0x06, 0xe7, 0x02, 0xc7, - 0x06, 0x20, 0x56, 0x04, 0x00, 0xc3, 0xc7, 0x06, 0x20, 0x56, 0x06, 0x00, 0xc3, 0x90, 0xc7, 0x06, - 0x20, 0x56, 0x08, 0x00, 0xc3, 0x90, 0x53, 0xc7, 0x06, 0x20, 0x56, 0x0a, 0x00, 0x33, 0xdb, 0x8a, - 0x1e, 0x1f, 0x56, 0xd0, 0xe3, 0x8b, 0x9f, 0xe6, 0x54, 0x06, 0x8e, 0x47, 0x02, 0x26, 0x83, 0x26, - 0x02, 0x00, 0xfe, 0x07, 0xb8, 0x9d, 0x06, 0xe7, 0x02, 0x5b, 0xc3, 0x90, 0xe5, 0x06, 0x83, 0xe0, - 0x09, 0xe7, 0x06, 0xc7, 0x06, 0x20, 0x56, 0x0c, 0x00, 0xc6, 0x06, 0x1f, 0x56, 0x80, 0xc3, 0x90, - 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, 0xc3, 0xb8, 0xf7, 0x03, 0xe7, 0x02, 0xc7, 0x06, 0x20, - 0x56, 0x10, 0x00, 0xc3, 0x53, 0xc7, 0x06, 0x20, 0x56, 0x12, 0x00, 0x33, 0xdb, 0x8a, 0x1e, 0x1f, - 0x56, 0xd0, 0xe3, 0x8b, 0x9f, 0xe6, 0x54, 0x06, 0x8e, 0x47, 0x02, 0x26, 0x83, 0x26, 0x02, 0x00, - 0xfe, 0x07, 0xb8, 0x9d, 0x06, 0xe7, 0x02, 0x5b, 0xc3, 0x90, 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, - 0x06, 0xc7, 0x06, 0x20, 0x56, 0x14, 0x00, 0xc6, 0x06, 0x1f, 0x56, 0x80, 0xc3, 0x90, 0xe5, 0x06, - 0x83, 0xe0, 0x09, 0xe7, 0x06, 0xc3, 0x4e, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x78, 0x74, - 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x12, 0x45, 0x23, 0x56, 0x34, - 0x00, 0x00, 0x00, 0x00, 0xcd, 0xab, 0xde, 0xbc, 0xef, 0xcd, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x6f, - 0x74, 0x49, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x00, 0x54, 0x69, 0x6d, - 0x65, 0x72, 0x30, 0x00, 0x00, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x31, 0x00, 0x00, 0x54, 0x65, 0x73, - 0x74, 0x31, 0x00, 0x00, 0x54, 0x65, 0x73, 0x74, 0x32, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x55, 0xf1, 0x4d, - 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x41, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x09, 0x00, 0x00, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, - 0xe0, 0x02, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, - 0x00, 0x02, 0x04, 0x01, 0x00, 0x00, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x03, 0xc0, 0x00, 0xff, 0xff, - 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x03, 0x06, 0x0b, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, - 0xe0, 0x04, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, - 0x00, 0x04, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x05, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x05, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x06, 0xc0, 0x00, - 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x06, 0x06, 0x0b, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x12, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x08, 0x02, 0x26, 0x00, 0x00, - 0x00, 0x00, 0x3e, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x50, 0x20, 0x0c, 0x23, 0x30, 0x30, 0x30, 0x30, 0xf3, 0xf0, 0xf0, 0xf8, - 0xf9, 0xf6, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x22, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x21, - 0x00, 0x00, 0x04, 0x21, 0x00, 0x00, 0x06, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x06, 0x2c, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x29, 0x20, 0x00, 0x08, 0x00, - 0x01, 0x00, 0x04, 0x06, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, - 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, - 0x40, 0x25, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x14, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x40, 0x26, 0x06, 0x0b, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, - 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, - 0x60, 0x27, 0x08, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, - 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, - 0x60, 0x28, 0x04, 0x30, 0x00, 0x00, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0xff, 0xff, - 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x30, 0x11, 0x04, 0x0c, 0x00, 0x01, - 0x04, 0x0e, 0x00, 0x02, 0x04, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0xe0, 0x00, - 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x03, 0x12, - 0x04, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0xff, 0xff, - 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x30, 0x13, 0x00, 0x00, 0x00, 0x00, - 0x16, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x03, 0x14, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0xe0, 0x00, - 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x15, - 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x60, 0x29, 0x08, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x2a, 0x00, 0x00, 0x02, 0x20, 0x80, 0x00, 0x00, 0x06, - 0x09, 0x00, 0x00, 0x00, 0x04, 0x03, 0x01, 0x80, 0x00, 0x00, 0x04, 0x02, 0x80, 0x00, 0x00, 0x08, - 0x0b, 0x00, 0x00, 0x00, 0x06, 0x02, 0x02, 0x80, 0x00, 0x00, 0x08, 0x0b, 0x00, 0x00, 0x00, 0x06, - 0x01, 0x26, 0x80, 0x00, 0x00, 0xff, 0x06, 0x03, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, - 0x06, 0x05, 0x00, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x04, - 0x09, 0x00, 0x00, 0x00, 0x04, 0x04, 0x03, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x06, - 0x05, 0x00, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0x00, 0x04, 0x03, 0x0c, 0x80, 0x00, 0x00, 0x04, - 0x0e, 0x80, 0x00, 0x00, 0x04, 0x21, 0x00, 0x00, 0x00, 0x04, 0x01, 0x0f, 0x80, 0x00, 0x00, 0x04, - 0x01, 0x0d, 0x80, 0x00, 0x00, 0x04, 0x04, 0x02, 0x80, 0x00, 0x00, 0x08, 0x22, 0x00, 0x00, 0x00, - 0xff, 0x23, 0x00, 0x00, 0x00, 0xff, 0x21, 0x00, 0x00, 0x00, 0x04, 0x01, 0x09, 0x00, 0x00, 0x00, - 0x04, 0x00, 0xa5, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - -#endif /* OLTR_NO_HAWKEYE_MAC */ diff --git a/sys/contrib/dev/oltr/trlldmac.c b/sys/contrib/dev/oltr/trlldmac.c deleted file mode 100644 index 158848854793..000000000000 --- a/sys/contrib/dev/oltr/trlldmac.c +++ /dev/null @@ -1,1990 +0,0 @@ -/* - ****************************** trlld.h *********************************** - * - * Copyright (c) 1997 - * OLICOM A/S - * Denmark - * - * All Rights Reserved - * - * This source file is subject to the terms and conditions of the - * OLICOM Software License Agreement which restricts the manner - * in which it may be used. - * - *--------------------------------------------------------------------------- - * - * Description: Olicom TMS-380 adapter microcode - * - *--------------------------------------------------------------------------- - */ - -#include "opt_oltr.h" - -#ifndef OLTR_NO_TMS_MAC - -unsigned char TRlldMacCode[] = { 0x52, 0x94, 0x02, 0x00, 0xba, 0x7a, 0x00, 0x00, 0xa0, 0x00, 0x01, 0xc8, 0xe2, 0x28, 0xd4, 0xdb, - 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, - 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, - 0xff, 0x00, 0x00, 0xff, 0xff, 0xf0, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0x7f, 0xff, 0x00, 0x03, - 0x00, 0x00, 0x00, 0xd4, 0xe7, 0xe7, 0xe7, 0xf2, 0xf2, 0xf8, 0x28, 0x43, 0x29, 0x20, 0x43, 0x4f, - 0x50, 0x59, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20, 0x49, 0x42, 0x4d, 0x20, 0x31, 0x39, 0x38, 0x33, - 0x2c, 0x34, 0x2c, 0x35, 0x2c, 0x36, 0x28, 0x43, 0x29, 0x20, 0x43, 0x4f, 0x50, 0x59, 0x52, 0x49, - 0x47, 0x48, 0x54, 0x20, 0x54, 0x49, 0x20, 0x31, 0x39, 0x38, 0x33, 0x2d, 0x38, 0x39, 0x2c, 0x39, - 0x30, 0x2d, 0x39, 0x34, 0x00, 0x00, 0x7b, 0x63, 0xf6, 0xde, 0xf1, 0xcc, 0xed, 0x9c, 0xf7, 0xe2, - 0x00, 0x00, 0x00, 0xc4, 0xbd, 0x24, 0x06, 0x4a, 0x06, 0x50, 0x06, 0x4c, 0xda, 0x00, 0x06, 0x4e, - 0x00, 0x0f, 0x06, 0x32, 0x00, 0x01, 0x07, 0x50, 0x07, 0x58, 0x07, 0x52, 0xc2, 0xce, 0x07, 0x54, - 0x00, 0x0f, 0x07, 0x38, 0x00, 0x01, 0x00, 0xba, 0x00, 0xa0, 0x00, 0xbc, 0xf7, 0xf0, 0x00, 0xbe, - 0x00, 0x0f, 0x07, 0x5e, 0x07, 0x3a, 0x07, 0x62, 0x80, 0x40, 0x07, 0x64, 0xc7, 0xb2, 0x07, 0x66, - 0xc7, 0x94, 0x07, 0x68, 0xc5, 0x9e, 0x07, 0x98, 0x80, 0x00, 0x07, 0x78, 0x80, 0x00, 0x08, 0xe2, - 0x00, 0x04, 0x08, 0xe4, 0x00, 0x01, 0x08, 0xec, 0x00, 0x08, 0x08, 0xf6, 0x00, 0x0a, 0x08, 0xf8, - 0x00, 0x06, 0x09, 0x00, 0x00, 0x0c, 0x09, 0x02, 0x00, 0x04, 0x01, 0xae, 0x00, 0x00, 0x09, 0x1e, - 0x00, 0x00, 0x09, 0x66, 0x00, 0x00, 0x06, 0x0c, 0x00, 0x13, 0x06, 0x0a, 0x00, 0x20, 0x00, 0x00, - 0x00, 0xe0, 0xb3, 0x86, 0x00, 0xe0, 0xb2, 0xe6, 0x00, 0xe0, 0xb3, 0x86, 0x00, 0xe0, 0xb5, 0x02, - 0x00, 0xe0, 0xb6, 0x5e, 0x00, 0xe0, 0xb9, 0x3c, 0x00, 0xe0, 0xb4, 0x12, 0x00, 0xc0, 0xb4, 0x22, - 0x00, 0xe0, 0xb3, 0x86, 0x00, 0xe0, 0xb3, 0x86, 0x00, 0xc0, 0xb4, 0x74, 0x00, 0xe0, 0xb3, 0x86, - 0x00, 0xe0, 0xb3, 0x86, 0x00, 0xe0, 0xb3, 0x86, 0x00, 0xe0, 0xb3, 0x86, 0x00, 0xe0, 0xb3, 0x86, - 0x00, 0xc0, 0xbd, 0x4a, 0x00, 0xc0, 0xbd, 0xb4, 0x00, 0xc0, 0xbd, 0xf0, 0x00, 0xc0, 0xbe, 0x60, - 0x00, 0xc0, 0xbe, 0xe2, 0x00, 0xe0, 0xc0, 0x50, 0x00, 0xe0, 0xbf, 0xf6, 0x00, 0xe0, 0xc1, 0x52, - 0x00, 0xe0, 0xc0, 0xe8, 0x00, 0xe0, 0xba, 0x90, 0x00, 0xc0, 0xbb, 0x00, 0x00, 0xc0, 0xbb, 0x5a, - 0x00, 0xc0, 0xbb, 0x8c, 0x00, 0xc0, 0xba, 0xb4, 0x00, 0xc0, 0xb3, 0x80, 0x00, 0xc0, 0xb3, 0x80, - 0x3f, 0x00, 0x7f, 0x00, 0x5e, 0x00, 0x00, 0x30, 0x00, 0x28, 0x00, 0x43, 0xb6, 0xb6, 0xb6, 0xb6, - 0xb5, 0x1c, 0xb5, 0x14, 0xb5, 0x46, 0xb5, 0x46, 0xb5, 0x62, 0xb6, 0xb6, 0x40, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x08, 0x00, 0x80, 0x00, 0x08, 0x00, 0x01, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x14, 0x10, 0x0e, 0x0c, 0x0c, - 0x0a, 0x0a, 0x0a, 0x0a, 0x00, 0x00, 0xa1, 0xc8, 0x00, 0x09, 0x08, 0x08, 0x00, 0x00, 0xa1, 0xd0, - 0x00, 0x11, 0x06, 0x06, 0x00, 0x00, 0xa1, 0xe0, 0x00, 0x21, 0x04, 0x04, 0x00, 0x00, 0xa2, 0x00, - 0x00, 0x41, 0x02, 0x02, 0x00, 0x00, 0xa2, 0x40, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0xa2, 0xc0, - 0x06, 0xd8, 0x07, 0x98, 0xd7, 0xa2, 0x07, 0x58, 0xc6, 0x56, 0x07, 0x58, 0xc5, 0x5c, 0x07, 0x58, - 0xc6, 0xc6, 0x07, 0x58, 0xc6, 0x2e, 0x07, 0x98, 0xd4, 0x7e, 0x07, 0x98, 0xd4, 0x76, 0x07, 0x78, - 0xce, 0xea, 0x07, 0x58, 0xc6, 0x8e, 0x07, 0x98, 0xd7, 0x5c, 0x07, 0x78, 0xcf, 0xbe, 0x07, 0x58, - 0xd4, 0x8e, 0x07, 0x58, 0xc6, 0x3e, 0x07, 0x58, 0xc6, 0x7c, 0x07, 0x58, 0xc7, 0x40, 0x07, 0x98, - 0xd8, 0xd2, 0x07, 0x98, 0xd4, 0xb2, 0x07, 0x78, 0xcf, 0x7e, 0x07, 0xb8, 0xd9, 0x38, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00, 0xce, 0x3e, 0xce, 0xf2, 0xd3, 0xfa, 0xca, 0xba, 0xca, 0xf2, - 0xcb, 0x10, 0xcb, 0x9a, 0xcb, 0xbe, 0xcb, 0xda, 0xcc, 0x52, 0xcc, 0x52, 0xcb, 0x86, 0xcc, 0xf0, - 0xcb, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x0c, 0x00, 0x0f, 0x01, 0xfe, 0xff, 0x58, 0x00, - 0x0e, 0x00, 0xfe, 0xff, 0x00, 0x0e, 0x70, 0x00, 0x80, 0x40, 0x5e, 0x00, 0xc0, 0xa0, 0xff, 0xdf, - 0x18, 0x00, 0xe0, 0x00, 0x78, 0x00, 0x50, 0x00, 0x60, 0x00, 0x70, 0x00, 0x0c, 0x00, 0x00, 0x06, - 0x00, 0x00, 0xe3, 0x84, 0x07, 0xe6, 0x07, 0xf4, 0x00, 0x08, 0x00, 0x00, 0xe3, 0x8a, 0x07, 0xea, - 0x07, 0xf4, 0x00, 0x06, 0x00, 0x40, 0x0a, 0x00, 0x07, 0xe6, 0x07, 0xee, 0x00, 0x08, 0x00, 0x40, - 0x0a, 0x06, 0x07, 0xea, 0x07, 0xee, 0x00, 0x00, 0xc1, 0xe2, 0xd4, 0x8b, 0xff, 0xff, 0xd1, 0xd7, - 0xc5, 0xd9, 0xc3, 0xd4, 0x59, 0x3b, 0x09, 0x34, 0x05, 0xfc, 0x09, 0x6c, 0x06, 0xd8, 0x04, 0x06, - 0xea, 0x7a, 0x09, 0x30, 0x04, 0x48, 0x08, 0x80, 0x00, 0x06, 0x06, 0x0a, 0x0c, 0x0e, 0xdb, 0xa8, - 0xe8, 0x7c, 0xe8, 0xa4, 0xe9, 0x8a, 0xea, 0x8c, 0xea, 0xe6, 0xeb, 0x40, 0xeb, 0xf2, 0xdb, 0xa8, - 0xec, 0x74, 0xec, 0x04, 0xe8, 0x62, 0xec, 0x10, 0xec, 0x10, 0xed, 0x3a, 0xed, 0x44, 0xed, 0x4e, - 0xe5, 0x62, 0xe7, 0xea, 0xdb, 0x9e, 0xe5, 0xb4, 0xe6, 0x82, 0xe6, 0xf2, 0xe7, 0x6e, 0xe7, 0x92, - 0xdb, 0xf6, 0xdb, 0x9e, 0xe4, 0xd2, 0xe4, 0xb4, 0xe4, 0x6e, 0xdb, 0x9e, 0xe7, 0xf6, 0xdb, 0x9e, - 0x06, 0x72, 0xdf, 0xa2, 0x07, 0x08, 0x06, 0x72, 0xdf, 0x00, 0x01, 0xf4, 0x06, 0x72, 0xde, 0xe0, - 0x07, 0x08, 0x06, 0x7c, 0xe6, 0x5a, 0x00, 0x04, 0x06, 0x7c, 0xdf, 0x24, 0x00, 0x00, 0x06, 0x7c, - 0xe7, 0xd8, 0x00, 0xfa, 0x06, 0x86, 0xde, 0x70, 0x00, 0x05, 0x06, 0x90, 0xe8, 0x28, 0x00, 0x28, - 0x06, 0x90, 0xdf, 0xfc, 0x01, 0x04, 0x06, 0x90, 0x00, 0x00, 0x00, 0x02, 0x06, 0x90, 0xdf, 0x2c, - 0x02, 0xbc, 0x06, 0x9a, 0xdf, 0xb2, 0x05, 0xdc, 0x06, 0x9a, 0xdf, 0x56, 0x00, 0x64, 0x06, 0x9a, - 0xdf, 0xb6, 0x00, 0x14, 0x06, 0x9a, 0xe9, 0x1c, 0x06, 0x40, 0x06, 0x9a, 0xdf, 0xbe, 0x00, 0x64, - 0x00, 0x00, 0x07, 0x0a, 0x07, 0x0e, 0x07, 0x04, 0x06, 0xd8, 0x07, 0x00, 0x06, 0xf0, 0x06, 0xee, - 0x06, 0xec, 0x07, 0x0c, 0x06, 0xe6, 0x07, 0x18, 0x50, 0x00, 0x00, 0xcc, 0x00, 0x03, 0x84, 0x00, - 0xa8, 0x00, 0xa0, 0x00, 0x20, 0x00, 0x80, 0x00, 0x40, 0x00, 0x08, 0x00, 0x40, 0x00, 0x80, 0x00, - 0x40, 0x00, 0x10, 0x00, 0xf4, 0x40, 0xf3, 0x06, 0xf3, 0x20, 0xf3, 0x3a, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0xf3, 0xa8, 0xf3, 0x10, 0xf3, 0x26, 0xf3, 0x40, 0x01, 0x40, - 0x01, 0x42, 0x01, 0x42, 0x01, 0x42, 0x00, 0x00, 0x00, 0x7f, 0x00, 0xa0, 0x00, 0xff, 0x02, 0x10, - 0x02, 0x1f, 0x02, 0x30, 0x02, 0x3f, 0x02, 0x50, 0x02, 0x5f, 0x02, 0x70, 0x02, 0x7f, 0x02, 0x90, - 0x02, 0x9f, 0x02, 0xb0, 0x02, 0xbf, 0x02, 0xd0, 0x02, 0xdf, 0x02, 0xe1, 0x02, 0xff, 0x03, 0x01, - 0x03, 0x7f, 0x03, 0x81, 0x03, 0x8f, 0x03, 0x91, 0x03, 0x9f, 0x03, 0xa1, 0x03, 0xaf, 0x03, 0xb1, - 0x03, 0xbf, 0x03, 0xc1, 0x03, 0xcf, 0x03, 0xe1, 0x03, 0xff, 0x07, 0xc0, 0x07, 0xff, 0x0c, 0x00, - 0x0f, 0xff, 0x30, 0x00, 0x37, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xbc, 0x00, 0x07, 0x02, 0x5e, - 0x01, 0x00, 0xba, 0xff, 0xba, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0c, 0x01, 0x0a, - 0x01, 0x0e, 0x01, 0x10, 0x01, 0x14, 0x00, 0x00, 0x01, 0x12, 0xf8, 0x00, 0x01, 0x16, 0xff, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x0a, 0x01, 0x1c, 0x01, 0x82, 0x96, 0x66, 0x96, 0x66, 0x55, 0x55, - 0x00, 0x00, 0x01, 0x82, 0x8a, 0x2a, 0x8a, 0x2a, 0xc9, 0x18, 0xc9, 0x18, 0x01, 0x86, 0xa2, 0xaa, - 0xa0, 0x1e, 0x55, 0x55, 0x54, 0x1e, 0x01, 0x8a, 0x50, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, - 0x01, 0x8c, 0x50, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x8e, 0x50, 0x00, 0x00, 0x00, - 0xa8, 0x00, 0x00, 0x00, 0x01, 0x90, 0x50, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x92, - 0x50, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x94, 0x50, 0x00, 0x00, 0x00, 0xa8, 0x00, - 0x00, 0x00, 0x01, 0x96, 0x50, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x98, 0x50, 0x00, - 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x9a, 0x50, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, - 0x01, 0x9c, 0x55, 0x55, 0x7f, 0xc0, 0xaa, 0xaa, 0x7f, 0xc0, 0x00, 0x00, 0x01, 0xa2, 0x01, 0xa4, - 0x01, 0xa8, 0x01, 0xaa, 0x01, 0xae, 0x01, 0xb0, 0x01, 0xb2, 0x01, 0x80, 0x00, 0x00, 0x01, 0x88, - 0xff, 0x00, 0x01, 0x9e, 0x00, 0xff, 0x01, 0xa0, 0x80, 0x00, 0x01, 0xac, 0x80, 0x00, 0x00, 0x00, - 0x01, 0xa6, 0x80, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0xbc, 0x88, 0x00, 0x06, 0x00, 0xc8, 0x00, - 0x00, 0x00, 0x80, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x44, 0xf2, 0x50, - 0x00, 0x48, 0xf2, 0x56, 0x00, 0x50, 0xf2, 0x5c, 0x00, 0x60, 0xf2, 0x62, 0x00, 0x78, 0xf2, 0x68, - 0xef, 0xc8, 0xee, 0xd6, 0xe9, 0xfc, 0xee, 0xe8, 0x55, 0x14, 0x01, 0xa0, 0xee, 0xaa, 0xe9, 0x90, - 0xef, 0x04, 0xef, 0x5e, 0xee, 0xbe, 0xf0, 0x16, 0x00, 0x00, 0x00, 0x1e, 0xef, 0x04, 0xef, 0x50, - 0x41, 0x00, 0x41, 0x01, 0xef, 0x74, 0xea, 0x33, 0xee, 0xd6, 0xea, 0x08, 0xee, 0xaa, 0xe9, 0xc4, - 0xef, 0x14, 0xef, 0x20, 0xef, 0x74, 0xea, 0x2e, 0xf0, 0x20, 0x00, 0x00, 0xef, 0xf4, 0xee, 0xaa, - 0xe9, 0xba, 0xef, 0x14, 0xef, 0x20, 0xef, 0xf4, 0xf0, 0x20, 0x00, 0x00, 0xee, 0xaa, 0xe9, 0xb0, - 0xee, 0xca, 0xef, 0x08, 0xef, 0x20, 0xef, 0xf4, 0xee, 0xaa, 0xe9, 0xba, 0xef, 0x14, 0xef, 0x20, - 0xef, 0xf4, 0xf0, 0x20, 0x20, 0x00, 0xee, 0xe8, 0x55, 0x14, 0x01, 0xa0, 0xee, 0xd6, 0xea, 0x10, - 0xee, 0xaa, 0xe9, 0x90, 0xf0, 0x16, 0x55, 0x50, 0x00, 0x0c, 0xef, 0x04, 0xef, 0x50, 0x01, 0x00, - 0x00, 0x00, 0xef, 0x74, 0xea, 0x35, 0xee, 0xbe, 0xf0, 0x16, 0x55, 0x55, 0x00, 0x0c, 0xef, 0x14, - 0xef, 0x5e, 0xee, 0xbe, 0xf0, 0x16, 0xff, 0xff, 0x00, 0x08, 0xf0, 0x16, 0x10, 0x02, 0x00, 0x06, - 0xef, 0x04, 0xef, 0x50, 0x01, 0x00, 0x01, 0x01, 0xef, 0x74, 0xea, 0x40, 0xee, 0xbe, 0xf0, 0x16, - 0xc0, 0x00, 0x00, 0x08, 0xf0, 0x16, 0xff, 0xff, 0x00, 0x0a, 0xf0, 0x16, 0xff, 0xff, 0x00, 0x0c, - 0xf0, 0x16, 0x10, 0x0d, 0x00, 0x06, 0xef, 0x04, 0xef, 0x50, 0x01, 0x00, 0x01, 0x01, 0xef, 0x74, - 0xea, 0x34, 0xf0, 0x20, 0x20, 0x08, 0xee, 0xbe, 0xf0, 0x10, 0x01, 0x82, 0xc9, 0x02, 0xef, 0x04, - 0xef, 0x74, 0xea, 0x40, 0xf0, 0x20, 0x20, 0x34, 0xee, 0xbe, 0xf0, 0x16, 0x10, 0x00, 0x00, 0x06, - 0xef, 0x04, 0xf0, 0x84, 0xef, 0x74, 0xea, 0x38, 0xf0, 0x10, 0x01, 0x9c, 0x00, 0x40, 0xee, 0xd6, - 0xea, 0x10, 0xee, 0xe8, 0x00, 0xff, 0x07, 0x80, 0xf0, 0xe4, 0x00, 0x03, 0xf1, 0x24, 0xf1, 0x32, - 0xe9, 0xd2, 0xf0, 0xf6, 0x00, 0x00, 0xf1, 0x32, 0xe9, 0xdc, 0xf0, 0xf6, 0x00, 0x04, 0xf1, 0x32, - 0xe9, 0xe4, 0xf0, 0xf6, 0x00, 0x07, 0xf1, 0x32, 0xe9, 0xec, 0xf0, 0xe4, 0x00, 0x01, 0xf1, 0x32, - 0xe9, 0xf4, 0xf0, 0xf6, 0x00, 0x02, 0xf1, 0x32, 0xe9, 0xf4, 0xf0, 0xf6, 0x00, 0x06, 0xf1, 0x32, - 0xe9, 0xf4, 0xf0, 0xf6, 0x00, 0x05, 0xf1, 0x32, 0xe9, 0xf4, 0xf0, 0xe4, 0x00, 0x01, 0xf1, 0x08, - 0xf0, 0xe4, 0x00, 0x03, 0xf1, 0x16, 0xef, 0x20, 0xf0, 0xa4, 0xe9, 0x98, 0x00, 0x01, 0xf0, 0xa4, - 0xe9, 0xe5, 0x00, 0x02, 0xf0, 0xa4, 0xe9, 0xef, 0x00, 0x06, 0xf0, 0xa4, 0xe9, 0xfa, 0x00, 0x05, - 0xef, 0x74, 0xea, 0x34, 0xef, 0xf4, 0xee, 0xaa, 0xe9, 0x90, 0xef, 0x14, 0xf0, 0x84, 0xee, 0xca, - 0xef, 0x50, 0x01, 0x00, 0x80, 0x00, 0xef, 0x74, 0xea, 0x38, 0xee, 0xbe, 0xf0, 0xbc, 0xf0, 0x10, - 0x01, 0x80, 0x8e, 0x41, 0xef, 0x08, 0xef, 0x50, 0x01, 0x00, 0x1b, 0x01, 0xf0, 0xc4, 0xff, 0xe4, - 0xef, 0x74, 0xea, 0x3c, 0xf0, 0x7c, 0xee, 0xd6, 0xea, 0x16, 0xee, 0xca, 0xf0, 0x28, 0xee, 0xfa, - 0xe0, 0x00, 0xf0, 0x84, 0xef, 0x74, 0xea, 0x46, 0xee, 0xfa, 0xe8, 0x00, 0xef, 0x20, 0xef, 0x74, - 0xea, 0x45, 0xee, 0xfa, 0x08, 0x00, 0xf0, 0x84, 0xef, 0x74, 0xea, 0x46, 0xee, 0xfa, 0xf8, 0x00, - 0xef, 0x20, 0xef, 0x74, 0xea, 0x45, 0xf0, 0x10, 0x01, 0x80, 0x02, 0x00, 0xee, 0xfa, 0xe0, 0x00, - 0xef, 0x20, 0xef, 0x74, 0xea, 0x45, 0xf0, 0x10, 0x01, 0x84, 0x00, 0x00, 0xf0, 0x20, 0x00, 0x34, - 0xee, 0xfa, 0x00, 0x00, 0xf0, 0x84, 0xf0, 0x20, 0x60, 0x34, 0xf0, 0xcc, 0xf0, 0x10, 0x01, 0x84, - 0x00, 0x00, 0xef, 0x74, 0xea, 0x46, 0xf0, 0x10, 0x01, 0x82, 0xc8, 0x00, 0xee, 0xfa, 0xe0, 0x00, - 0xf0, 0x84, 0xee, 0xfa, 0x10, 0x00, 0xf0, 0x84, 0xf0, 0x20, 0x60, 0x34, 0xf0, 0x10, 0x01, 0x80, - 0x06, 0x00, 0xee, 0xfa, 0x00, 0x10, 0xf0, 0x36, 0xef, 0xf4, 0xf0, 0x10, 0x01, 0x84, 0x00, 0x00, - 0xf0, 0x20, 0x00, 0x34, 0xee, 0xaa, 0xe9, 0x90, 0xee, 0xd6, 0xea, 0x1c, 0xf0, 0x8e, 0xe9, 0x52, - 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0xf0, 0x40, 0x00, 0x06, 0xc7, 0x00, 0xef, 0x5e, 0xf0, 0x9a, - 0xe0, 0x00, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0xd0, 0x40, 0x00, 0x06, 0xe0, 0x00, 0xef, 0x5e, - 0xf0, 0x9a, 0xc0, 0x00, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0x90, 0x40, 0x00, 0x06, 0xa0, 0x00, - 0xef, 0x5e, 0xf0, 0x9a, 0x80, 0x00, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0x50, 0x40, 0x00, 0x06, - 0x60, 0x00, 0xef, 0x5e, 0xf0, 0x9a, 0x40, 0x00, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0x10, 0x40, - 0x00, 0x06, 0x20, 0x00, 0xef, 0x5e, 0xf0, 0x9a, 0x00, 0x00, 0xf0, 0x8e, 0xe9, 0x52, 0xee, 0xbe, - 0xee, 0xca, 0xef, 0x2e, 0xd0, 0x40, 0x00, 0x06, 0xa6, 0x00, 0xef, 0x5e, 0xf0, 0x9a, 0xc0, 0x00, - 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0x90, 0x40, 0x00, 0x06, 0xc0, 0x00, 0xef, 0x5e, 0xf0, 0x9a, - 0x80, 0x00, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0x50, 0x40, 0x00, 0x06, 0x40, 0x00, 0xef, 0x5e, - 0xf0, 0x9a, 0x40, 0x00, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0x70, 0x40, 0x00, 0x06, 0x60, 0x00, - 0xef, 0x5e, 0xf0, 0x9a, 0x60, 0x00, 0xf1, 0x3c, 0xe9, 0x50, 0xee, 0xd6, 0xea, 0x22, 0xee, 0xaa, - 0xe9, 0x90, 0xf0, 0x62, 0x55, 0x55, 0x00, 0x16, 0xef, 0x04, 0xef, 0x50, 0x00, 0x00, 0x00, 0x00, - 0xef, 0x74, 0xea, 0x4b, 0xef, 0xc8, 0xee, 0xd6, 0xea, 0x22, 0xf0, 0x16, 0x55, 0x55, 0x00, 0x16, - 0xee, 0xbe, 0xef, 0x04, 0xef, 0x5e, 0xee, 0xe8, 0x00, 0xff, 0x08, 0x00, 0xee, 0xe8, 0x00, 0xff, - 0x0c, 0x00, 0xee, 0xe8, 0x00, 0xff, 0x10, 0x00, 0xee, 0xe8, 0x00, 0xff, 0x14, 0x00, 0xee, 0xe8, - 0x00, 0xff, 0x18, 0x00, 0xee, 0xe8, 0x00, 0xff, 0x1c, 0x00, 0xee, 0xe8, 0x00, 0xff, 0x20, 0x00, - 0xee, 0xe8, 0x00, 0xff, 0x24, 0x00, 0xee, 0xe8, 0x00, 0xff, 0x28, 0x00, 0xee, 0xe8, 0x00, 0xff, - 0x2c, 0x00, 0xef, 0x90, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0x30, 0x40, 0x00, 0x06, 0x01, 0x00, - 0xef, 0x5e, 0xf0, 0x9a, 0x20, 0x00, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0x70, 0x40, 0x00, 0x06, - 0x43, 0x00, 0xef, 0x5e, 0xf0, 0x9a, 0x60, 0x00, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0xb0, 0x40, - 0x00, 0x06, 0x85, 0x00, 0xef, 0x5e, 0xf0, 0x9a, 0xa0, 0x00, 0xf0, 0x96, 0x01, 0x00, 0x01, 0x03, - 0x01, 0x01, 0x00, 0x00, 0x81, 0x00, 0x00, 0x1a, 0x10, 0x40, 0x00, 0x00, 0xa9, 0x98, 0x00, 0x0d, - 0x55, 0x55, 0x00, 0x00, 0xa9, 0xa4, 0x00, 0xaa, 0x82, 0x72, 0xa9, 0x4a, 0x5a, 0xa5, 0xe7, 0xda, - 0x09, 0x03, 0x9d, 0x11, 0x00, 0x00, 0x81, 0x00, 0x00, 0x04, 0x90, 0xd8, 0x10, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x00, 0x04, 0x90, 0xd8, 0xb4, 0xd8, 0x00, 0x00, 0x81, 0x00, 0x00, 0x08, 0x90, 0xd8, - 0x16, 0x46, 0x40, 0x00, 0xb4, 0xd8, 0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x00, 0x13, 0x10, 0x40, - 0x00, 0x16, 0x00, 0x00, 0x80, 0x00, 0x00, 0x10, 0x00, 0x15, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, - 0x00, 0x15, 0x00, 0x00, 0x81, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, 0x00, 0x80, 0x00, 0x00, 0x12, - 0x80, 0x0a, 0x9e, 0x40, 0xc8, 0x00, 0x00, 0x00, 0x80, 0x5e, 0x00, 0x0f, 0x80, 0x06, 0xfe, 0x40, - 0xcc, 0x00, 0x00, 0x00, 0x80, 0x04, 0x8e, 0x40, 0xc9, 0x00, 0x80, 0x04, 0x06, 0x00, 0xcc, 0x00, - 0x80, 0x04, 0x0a, 0x40, 0xc8, 0x00, 0x80, 0x0a, 0x8a, 0x40, 0xc8, 0x00, 0x00, 0x00, 0x80, 0x5e, - 0x00, 0x0f, 0x08, 0x0a, 0x1c, 0x80, 0x00, 0x0a, 0x1a, 0x1c, 0x80, 0x00, 0x0c, 0x1c, 0x80, 0x00, - 0x1a, 0x1c, 0x80, 0x00, 0x0e, 0x1a, 0x1c, 0x80, 0x00, 0x04, 0x80, 0x00, 0x02, 0x80, 0x00, 0x02, - 0x80, 0x00, 0x00, 0x00, 0xaa, 0x4e, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x7a, 0x00, 0x4e, - 0x07, 0x58, 0xc5, 0x6a, 0xe0, 0x16, 0x08, 0xe2, 0x08, 0xec, 0x08, 0xf6, 0xe0, 0x16, 0x09, 0x00, - 0x09, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x08, 0xe2, 0x00, 0x00, 0x08, 0xec, 0x08, 0xf6, 0x09, 0x00, - 0x00, 0x00, 0x07, 0xb8, 0xd8, 0xee, 0x02, 0x80, 0x07, 0xb8, 0xd9, 0x0c, 0xff, 0x84, 0x07, 0xb8, - 0xd9, 0x2e, 0x07, 0xb8, 0xd9, 0xa8, 0xda, 0x88, 0xda, 0x7c, 0xda, 0xa2, 0xda, 0xa6, 0xda, 0x9e, - 0xdb, 0x86, 0xdb, 0x86, 0xdb, 0x86, 0xda, 0xa8, 0xda, 0xb2, 0xdb, 0x2e, 0xdb, 0x78, 0x00, 0x00, - 0xaa, 0xc8, 0x00, 0x09, 0xdb, 0x86, 0x00, 0x00, 0xaa, 0xd0, 0x02, 0xb0, 0x00, 0x07, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0x08, 0x08, 0x05, 0x08, 0x08, 0x08, 0x00, 0x00, 0x02, - 0x04, 0x04, 0x04, 0x04, 0x00, 0x08, 0x0a, 0x00, 0x00, 0x0c, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x41, 0x04, 0x0b, 0x06, 0xc2, 0x08, 0xe6, 0x00, 0xe7, 0x00, 0x06, 0x04, 0x07, 0x04, 0x03, 0x04, - 0x04, 0x06, 0x05, 0x04, 0x88, 0x04, 0x00, 0x03, 0x00, 0x1c, 0x0c, 0x00, 0x80, 0x00, 0xe3, 0xfc, - 0xe4, 0x04, 0xe4, 0x48, 0xe4, 0x08, 0xe4, 0x14, 0xe4, 0x1a, 0xe4, 0x3e, 0xe4, 0x0e, 0xe4, 0x5c, - 0x06, 0x00, 0x00, 0x00, 0x07, 0x06, 0x0e, 0x14, 0x14, 0x1e, 0x2a, 0x4c, 0x38, 0x7c, 0x3e, 0x78, - 0x43, 0x92, 0x58, 0x9c, 0x4d, 0xb2, 0x2f, 0x64, 0x1d, 0x34, 0x6c, 0xd0, 0x23, 0x3e, 0x1d, 0x2a, - 0x65, 0xc0, 0x72, 0xe0, 0x78, 0xee, 0x7f, 0xfc, 0x01, 0x32, 0x57, 0x01, 0x11, 0x32, 0x51, 0x81, - 0x56, 0x02, 0x55, 0x03, 0x11, 0x54, 0x81, 0x56, 0x02, 0x55, 0x02, 0x54, 0x81, 0x56, 0x76, 0x01, - 0x34, 0x02, 0x55, 0x02, 0x54, 0x81, 0x58, 0x02, 0x55, 0x02, 0x54, 0x81, 0x58, 0x02, 0x12, 0x11, - 0x52, 0x02, 0x83, 0x58, 0x05, 0x52, 0x04, 0x81, 0x58, 0x05, 0x52, 0x03, 0x15, 0x5c, 0x5b, 0x53, - 0x87, 0x52, 0x03, 0x11, 0x51, 0x41, 0x51, 0x78, 0x11, 0x34, 0x11, 0x81, 0x31, 0x20, 0x57, 0x54, - 0x53, 0x01, 0x12, 0x5a, 0x51, 0x81, 0x31, 0x20, 0x57, 0x5b, 0x5a, 0x01, 0x11, 0x01, 0x11, 0x51, - 0x81, 0x31, 0x20, 0x57, 0x01, 0x15, 0x01, 0x13, 0x01, 0x11, 0x11, 0x11, 0x51, 0x81, 0x58, 0x05, - 0x52, 0x02, 0x54, 0x5b, 0x81, 0x5d, 0x05, 0x52, 0x02, 0x54, 0x81, 0x58, 0x02, 0x50, 0x03, 0x13, - 0x81, 0x58, 0x02, 0x50, 0x03, 0x11, 0x54, 0x81, 0x5d, 0x72, 0x03, 0x50, 0x03, 0x13, 0x01, 0x13, - 0x54, 0x40, 0x00, 0x0e, 0x06, 0x20, 0x06, 0x56, 0xe5, 0x2a, 0x00, 0x24, 0x10, 0x02, 0x00, 0x16, - 0x00, 0x02, 0x04, 0x01, 0x07, 0x08, 0xe5, 0x2a, 0x00, 0x20, 0x10, 0x03, 0x00, 0x12, 0x00, 0x03, - 0xe4, 0x78, 0x8e, 0x14, 0x00, 0x20, 0x10, 0x04, 0x00, 0x12, 0x00, 0x04, 0xdb, 0xc0, 0x00, 0x20, - 0xe0, 0x05, 0x00, 0x12, 0x00, 0x05, 0xdb, 0xc0, 0x00, 0x20, 0xe0, 0x06, 0x00, 0x12, 0x00, 0x06, - 0xe7, 0x22, 0x00, 0x12, 0xe0, 0x01, 0x09, 0x6c, 0x06, 0xcc, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, - 0x06, 0x30, 0xe6, 0x42, 0x05, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xe2, - 0x00, 0x08, 0xff, 0x26, 0x05, 0xdc, 0xe7, 0xae, 0x00, 0x3e, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x30, 0x50, 0x20, 0x0c, 0x23, 0x05, 0xfc, 0x06, 0x52, 0x06, 0x56, 0x00, 0x00, - 0x81, 0x00, 0x00, 0x16, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x40, 0x2a, - 0x04, 0x2a, 0x06, 0x56, 0x00, 0x26, 0xec, 0x71, 0x06, 0x2b, 0x09, 0x72, 0x00, 0x22, 0x00, 0x24, - 0xec, 0x87, 0x0c, 0x23, 0x05, 0xfc, 0x08, 0x28, 0x09, 0x34, 0x08, 0x29, 0x07, 0x58, 0x07, 0x78, - 0x07, 0x98, 0x00, 0x23, 0x00, 0x2a, 0xec, 0x95, 0x04, 0x06, 0x06, 0xf0, 0x04, 0x07, 0x06, 0xee, - 0x00, 0x24, 0xdb, 0xc0, 0x00, 0x34, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x26, - 0x40, 0x25, 0xdb, 0xc0, 0x00, 0x20, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x12, - 0x40, 0x26, 0xdb, 0xc0, 0x00, 0x1a, 0xe0, 0x00, 0x00, 0x0c, 0x60, 0x27, 0x08, 0x0a, 0x06, 0xe6, - 0xdb, 0xc0, 0x00, 0x24, 0xe0, 0x00, 0x00, 0x16, 0x60, 0x28, 0x04, 0x30, 0x07, 0x06, 0xdc, 0x16, - 0x81, 0x00, 0x00, 0x30, 0xe0, 0x00, 0x00, 0x22, 0x60, 0x29, 0x08, 0x2d, 0x07, 0x1c, 0x08, 0x2e, - 0x07, 0x22, 0x00, 0x00, 0x02, 0x08, 0x01, 0x06, 0x06, 0x14, 0x08, 0x18, 0x0c, 0x20, 0x0e, 0x26, - 0x0f, 0x30, 0x11, 0x34, 0x12, 0x3e, 0x14, 0x42, 0x16, 0x46, 0x0a, 0x1c, 0x18, 0x4a, 0x03, 0x13, - 0x83, 0x11, 0x11, 0x01, 0x81, 0x11, 0x81, 0x12, 0x01, 0x13, 0x83, 0x52, 0x85, 0x81, 0x11, 0x85, - 0x81, 0x12, 0x81, 0x12, 0x81, 0x19, 0x85, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x09, 0x6c, - 0x00, 0x00, 0x06, 0x30, 0xec, 0xfc, 0x06, 0x54, 0x06, 0x50, 0x02, 0x38, 0x04, 0x21, 0x09, 0x1e, - 0x06, 0x0b, 0x06, 0xd8, 0x08, 0x02, 0x06, 0xdc, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x41, - 0x00, 0x41, 0xae, 0x14, 0x00, 0x00, 0x81, 0x00, 0x04, 0x09, 0x07, 0x0c, 0x00, 0x41, 0x00, 0x41, - 0x02, 0x14, 0x00, 0x00, 0x81, 0x00, 0x06, 0x0b, 0x06, 0xd8, 0x06, 0x2c, 0x09, 0x76, 0x14, 0x22, - 0x09, 0x3a, 0x00, 0x41, 0x00, 0x41, 0x02, 0x54, 0x00, 0x00, 0x81, 0x00, 0x06, 0xd8, 0x84, 0x00, - 0x48, 0x00, 0xff, 0xfc, 0x00, 0x09, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0xad, 0x80, - 0x02, 0x81, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x06, 0x44, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, - 0x6f, 0x64, 0x65, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x20, - 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x4f, 0x6e, - 0x6c, 0x79, 0x2c, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x20, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x01, 0x60, 0x01, 0x42, 0x08, 0x00, 0x16, 0x08, - 0x03, 0xb0, 0x04, 0xe0, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0xff, 0xff, 0x13, 0xfc, 0x03, 0x80, - 0x07, 0xa0, 0x01, 0x42, 0x08, 0x00, 0x07, 0x20, 0x00, 0x00, 0x04, 0xe0, 0x01, 0x00, 0x07, 0x8b, - 0x3d, 0x00, 0x01, 0x60, 0x01, 0x42, 0x00, 0x80, 0x13, 0x09, 0x07, 0x8b, 0x2d, 0x00, 0xc0, 0x20, - 0x01, 0x4e, 0x02, 0x80, 0x0f, 0x41, 0x11, 0x02, 0x07, 0x8b, 0x3d, 0x00, 0xc8, 0x0b, 0x01, 0x4a, - 0x02, 0x00, 0xa0, 0x00, 0x09, 0xa0, 0xc8, 0x00, 0x01, 0x66, 0x02, 0xe0, 0x00, 0xa0, 0x07, 0xa0, - 0x01, 0x04, 0x00, 0x20, 0x01, 0xa0, 0x01, 0x40, 0xfe, 0x00, 0x48, 0x20, 0xe0, 0x2a, 0x01, 0x42, - 0x04, 0xe0, 0x01, 0x02, 0x04, 0xe0, 0x09, 0x60, 0x04, 0xe0, 0x01, 0x82, 0x01, 0x60, 0x01, 0x1c, - 0x00, 0x04, 0x16, 0x03, 0x01, 0xe0, 0x01, 0x40, 0x0c, 0x00, 0x06, 0xa0, 0xb1, 0xbc, 0x07, 0xa0, - 0x01, 0x04, 0x00, 0x2d, 0xc2, 0x20, 0xe0, 0x00, 0x02, 0x88, 0xe2, 0x28, 0x16, 0x14, 0x07, 0xa0, - 0x01, 0x04, 0x00, 0x2e, 0x01, 0x60, 0x01, 0x42, 0x03, 0x00, 0x16, 0x0d, 0x07, 0xa0, 0x01, 0x04, - 0x00, 0x21, 0x07, 0x88, 0xb0, 0x00, 0x07, 0x89, 0xff, 0xfe, 0x09, 0xa8, 0x09, 0xa9, 0x07, 0x8a, - 0xe0, 0x02, 0x06, 0xa0, 0xf4, 0x42, 0x10, 0x56, 0x07, 0x88, 0xa0, 0x00, 0x07, 0x89, 0xaf, 0xfe, - 0x09, 0xa8, 0x09, 0xa9, 0x07, 0x8a, 0xe0, 0x78, 0x06, 0xa0, 0xf4, 0x42, 0x10, 0x4b, 0x05, 0xa0, - 0x01, 0x04, 0x07, 0x88, 0x00, 0x08, 0x07, 0x89, 0x00, 0x7a, 0x03, 0x00, 0x00, 0x01, 0x06, 0xa0, - 0xf4, 0x7c, 0x10, 0x40, 0x06, 0xa0, 0xb1, 0xbc, 0x02, 0xe0, 0x03, 0xf4, 0x07, 0x88, 0x00, 0xa0, - 0x07, 0x89, 0x00, 0xfe, 0x06, 0xa0, 0xf4, 0x7c, 0x10, 0x35, 0x02, 0xe0, 0x00, 0xa0, 0x04, 0xe0, - 0x01, 0x7e, 0x04, 0xc8, 0x02, 0x09, 0x03, 0xf2, 0x62, 0x48, 0xc1, 0xe0, 0x01, 0x40, 0x01, 0xa0, - 0x01, 0x40, 0x04, 0x00, 0xce, 0x18, 0x06, 0x09, 0x16, 0xfd, 0x01, 0xa0, 0x01, 0x40, 0x40, 0x00, - 0xc8, 0x07, 0x01, 0x40, 0x07, 0x88, 0x03, 0xf4, 0x07, 0x89, 0x3f, 0xfe, 0x06, 0xa0, 0xf4, 0x7c, - 0x10, 0x19, 0x02, 0xe0, 0x00, 0xa0, 0x06, 0xa0, 0xf5, 0xa4, 0x10, 0x14, 0xc8, 0x08, 0x04, 0x44, - 0xc8, 0x09, 0x04, 0x46, 0x06, 0xa0, 0xf4, 0xd2, 0x10, 0x0d, 0x07, 0x81, 0xe0, 0x7c, 0xc0, 0xb1, - 0x13, 0x26, 0xc8, 0x01, 0x00, 0xe0, 0x05, 0xa0, 0x01, 0x04, 0x06, 0x92, 0x10, 0x03, 0xc0, 0x60, - 0x00, 0xe0, 0x10, 0xf5, 0x01, 0xe0, 0x01, 0x04, 0x00, 0x10, 0x03, 0xb0, 0x10, 0xff, 0x01, 0xa0, - 0x01, 0x04, 0x80, 0x00, 0x03, 0x80, 0x07, 0x80, 0x00, 0xa0, 0x04, 0xc2, 0xcc, 0x80, 0x07, 0x81, - 0xb1, 0xaa, 0x02, 0x82, 0x00, 0x1e, 0x16, 0x02, 0x07, 0x81, 0xb1, 0xb4, 0xc4, 0x81, 0x8c, 0x81, - 0x16, 0xe9, 0x02, 0x82, 0x00, 0x7c, 0x16, 0xf2, 0x03, 0x00, 0x00, 0x0f, 0x04, 0x5b, 0x07, 0x81, - 0xe1, 0x08, 0x07, 0x82, 0x00, 0x04, 0x04, 0xe0, 0x01, 0x80, 0x04, 0xe0, 0x01, 0x82, 0xc4, 0x91, - 0x8c, 0xb1, 0x16, 0xd8, 0x02, 0x82, 0x00, 0x7c, 0x16, 0xfa, 0xc8, 0x20, 0xe0, 0x04, 0x01, 0x82, - 0xe8, 0x20, 0xe0, 0x0c, 0x01, 0x82, 0xc8, 0x20, 0xe0, 0x10, 0x01, 0x80, 0x07, 0x81, 0xe0, 0x86, - 0xc0, 0xb1, 0x13, 0x07, 0xc4, 0xb1, 0x10, 0xfc, 0x07, 0xa0, 0x01, 0x04, 0x00, 0x2e, 0x04, 0x60, - 0xb1, 0xaa, 0x07, 0x81, 0xe0, 0x34, 0x07, 0x82, 0x05, 0xfc, 0x07, 0x83, 0x00, 0x0a, 0xcc, 0xb1, - 0x06, 0x43, 0x16, 0xfd, 0x02, 0x02, 0x06, 0x00, 0xd0, 0x60, 0x01, 0x4e, 0x13, 0xed, 0x02, 0x21, - 0xf7, 0x00, 0x02, 0x21, 0xc0, 0x00, 0xdc, 0x81, 0xd0, 0x60, 0x01, 0x4f, 0xc0, 0xc1, 0x09, 0x41, - 0x02, 0x21, 0xf0, 0x00, 0xdc, 0x81, 0x02, 0x43, 0x0f, 0x00, 0x02, 0x23, 0xf0, 0x00, 0xdc, 0x83, - 0x02, 0x01, 0x0c, 0x32, 0xc0, 0xa0, 0x04, 0x44, 0xc0, 0xe0, 0x04, 0x46, 0xc1, 0x03, 0x61, 0x02, - 0x05, 0x84, 0xc8, 0x04, 0x04, 0x48, 0xc1, 0x03, 0x05, 0x84, 0xa1, 0x04, 0xa1, 0x01, 0xc8, 0x04, - 0x0c, 0x30, 0xc1, 0x03, 0x05, 0x84, 0x04, 0xf1, 0x06, 0x04, 0x16, 0xfd, 0x02, 0x08, 0xb0, 0x00, - 0x09, 0xa8, 0xc2, 0x60, 0x0c, 0x30, 0x02, 0x29, 0x03, 0xff, 0x09, 0xa9, 0x02, 0x29, 0x00, 0x40, - 0x07, 0x80, 0xa0, 0x00, 0x09, 0xa0, 0x07, 0x8a, 0xaf, 0xfe, 0x02, 0x2a, 0x03, 0xff, 0x09, 0xaa, - 0x02, 0x01, 0x0c, 0x32, 0x02, 0x05, 0x00, 0x00, 0xc1, 0x03, 0x05, 0x84, 0x07, 0x11, 0x05, 0xc1, - 0x05, 0x85, 0x06, 0x04, 0x13, 0x0b, 0x80, 0x85, 0x1a, 0xf9, 0x80, 0x05, 0x1a, 0xf8, 0x82, 0x85, - 0x1a, 0xf5, 0x82, 0x05, 0x1a, 0xf4, 0x82, 0x45, 0x1a, 0xf1, 0x10, 0xf1, 0x2d, 0x20, 0x00, 0x02, - 0x01, 0x60, 0x01, 0x40, 0x40, 0x00, 0x16, 0x06, 0x07, 0x8a, 0x08, 0x00, 0x01, 0xa0, 0x01, 0x40, - 0x40, 0x00, 0x10, 0x48, 0x01, 0x60, 0x01, 0x42, 0x80, 0x00, 0x16, 0x06, 0x07, 0x8a, 0x10, 0x00, - 0x01, 0xa0, 0x01, 0x42, 0x80, 0x00, 0x10, 0x3e, 0x01, 0x60, 0x01, 0x02, 0x10, 0x00, 0x16, 0x0a, - 0x01, 0x60, 0x01, 0x00, 0x04, 0x00, 0x16, 0x06, 0x07, 0x8a, 0x80, 0x00, 0x01, 0xa0, 0x01, 0x02, - 0x10, 0x00, 0x10, 0x30, 0x01, 0x60, 0x01, 0x02, 0x08, 0x00, 0x16, 0x0a, 0x01, 0x60, 0x01, 0x00, - 0x04, 0x00, 0x16, 0x06, 0x01, 0xa0, 0x01, 0x02, 0x08, 0x00, 0x02, 0x0d, 0x00, 0x01, 0x10, 0x0d, - 0x01, 0x60, 0x01, 0x02, 0x04, 0x00, 0x16, 0x16, 0x01, 0x60, 0x01, 0x00, 0x08, 0x00, 0x16, 0x12, - 0x01, 0xa0, 0x01, 0x02, 0x04, 0x00, 0x02, 0x0d, 0x00, 0x02, 0xc3, 0xa0, 0x01, 0x0e, 0xc3, 0xe0, - 0x01, 0x10, 0x07, 0x8a, 0x20, 0x00, 0x01, 0x60, 0x01, 0x00, 0x80, 0x00, 0x13, 0x0b, 0x07, 0x8a, - 0x40, 0x00, 0x10, 0x08, 0x07, 0x8a, 0x00, 0x04, 0x10, 0x05, 0x07, 0x8a, 0x00, 0x02, 0x10, 0x02, - 0x07, 0x8a, 0x00, 0x08, 0x03, 0x00, 0x00, 0x00, 0x04, 0xe0, 0x01, 0x82, 0x07, 0x8b, 0x05, 0xe0, - 0xce, 0xca, 0xce, 0xcd, 0xce, 0xce, 0xc6, 0xcf, 0xc3, 0x20, 0x07, 0x58, 0x23, 0x20, 0xe0, 0x04, - 0x13, 0x12, 0x07, 0x8b, 0xff, 0x18, 0x02, 0x8a, 0x80, 0x00, 0x13, 0x0a, 0x05, 0x8b, 0xa2, 0xcd, - 0x02, 0x8a, 0x40, 0x00, 0x13, 0x05, 0x02, 0x8a, 0x20, 0x00, 0x13, 0x02, 0x07, 0x8b, 0xff, 0x1d, - 0xc8, 0x0b, 0x01, 0x04, 0x10, 0x0d, 0xd3, 0x20, 0x01, 0x05, 0x11, 0xfd, 0xd8, 0x20, 0x07, 0xdf, - 0x01, 0x17, 0x07, 0x8b, 0xff, 0x80, 0xc8, 0x0b, 0x01, 0x04, 0xe8, 0x20, 0xe0, 0x0a, 0x01, 0x00, - 0xc2, 0xe0, 0x01, 0x04, 0x22, 0xe0, 0xe1, 0x86, 0x16, 0xfb, 0x02, 0xe0, 0x00, 0xa0, 0x04, 0xe0, - 0x01, 0x82, 0xe8, 0x20, 0xe0, 0x0a, 0x01, 0x00, 0xc2, 0xe0, 0x01, 0x00, 0x22, 0xe0, 0xe0, 0x06, - 0x13, 0xf8, 0x01, 0xa0, 0x01, 0x40, 0xf6, 0x00, 0x04, 0x60, 0xb0, 0x90, 0x03, 0x00, 0x00, 0x02, - 0x07, 0xa0, 0x01, 0x02, 0xdf, 0xff, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, - 0x07, 0x09, 0xc2, 0xa0, 0x01, 0x04, 0x01, 0x8a, 0x00, 0x80, 0x52, 0x4a, 0xd2, 0x89, 0xc8, 0x0a, - 0x01, 0x04, 0xd2, 0xa0, 0x01, 0x04, 0x16, 0xf9, 0x05, 0x49, 0x01, 0x89, 0x80, 0x00, 0x01, 0x49, - 0x40, 0x00, 0x13, 0x0e, 0xf8, 0x09, 0x07, 0x3a, 0xc2, 0x60, 0x07, 0x36, 0x16, 0x03, 0x03, 0x90, - 0xff, 0xff, 0x03, 0x80, 0x04, 0xe0, 0x07, 0x36, 0x04, 0x54, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, - 0x22, 0x60, 0xe1, 0x86, 0x13, 0xc2, 0x04, 0xe0, 0x01, 0x82, 0x04, 0x60, 0xb3, 0xe0, 0x03, 0x00, - 0x00, 0x02, 0x07, 0xa0, 0x09, 0x62, 0x03, 0xe8, 0x04, 0xc9, 0xc1, 0xa0, 0x06, 0x34, 0x16, 0x04, - 0x06, 0xa0, 0xc2, 0xae, 0x04, 0xe0, 0x09, 0x20, 0x07, 0x86, 0x05, 0xe8, 0x01, 0xa0, 0x01, 0x40, - 0x80, 0x00, 0xc2, 0x20, 0x01, 0x84, 0x48, 0x20, 0xe0, 0x08, 0x01, 0x84, 0x22, 0x20, 0xe0, 0x08, - 0x13, 0x08, 0x01, 0x60, 0x01, 0xae, 0x00, 0x01, 0x16, 0x04, 0x01, 0xe0, 0x06, 0x34, 0x80, 0x00, - 0x10, 0x06, 0xc2, 0x20, 0x09, 0x32, 0x13, 0x06, 0x01, 0xe0, 0x06, 0x34, 0x08, 0x00, 0x04, 0xe0, - 0x06, 0x30, 0x07, 0x09, 0x05, 0xa0, 0x05, 0xee, 0x06, 0x20, 0x05, 0xec, 0x16, 0x02, 0xc2, 0x16, - 0x16, 0x03, 0xc2, 0x49, 0x16, 0x12, 0x03, 0x80, 0xc5, 0x98, 0xc1, 0xe8, 0x00, 0x02, 0xe9, 0xe0, - 0xe0, 0x14, 0x00, 0x04, 0x04, 0xd7, 0x02, 0x27, 0x00, 0x08, 0x06, 0xa0, 0xc2, 0x44, 0xc2, 0x16, - 0x13, 0x04, 0xc8, 0x28, 0x00, 0x08, 0x05, 0xec, 0x13, 0xef, 0x04, 0x54, 0x03, 0x00, 0x00, 0x02, - 0xc1, 0xe0, 0x01, 0x86, 0x02, 0x47, 0x00, 0x0e, 0xc2, 0xa7, 0xe1, 0x90, 0x04, 0x5a, 0x07, 0x8a, - 0xa0, 0x00, 0xc8, 0x0a, 0x01, 0x86, 0xa1, 0xc7, 0x02, 0x27, 0xe1, 0x98, 0xe8, 0x37, 0x06, 0x34, - 0xe8, 0x17, 0x06, 0xd2, 0x04, 0xe0, 0x06, 0x30, 0x04, 0x60, 0xb9, 0xc0, 0xe8, 0x0a, 0x06, 0xd2, - 0x01, 0xe0, 0x06, 0x34, 0x08, 0x00, 0x04, 0xe0, 0x06, 0x30, 0xe0, 0x20, 0xe0, 0x18, 0x04, 0x5b, - 0x05, 0xa0, 0x09, 0x20, 0x88, 0x20, 0x09, 0x20, 0xe0, 0x16, 0x1a, 0xe5, 0x04, 0xe0, 0x09, 0x20, - 0x06, 0xa0, 0xe1, 0x18, 0x03, 0x80, 0x05, 0xa0, 0x09, 0x32, 0x03, 0x80, 0xc3, 0x01, 0x13, 0xfb, - 0x01, 0x60, 0x09, 0x6a, 0x00, 0x01, 0x13, 0x78, 0x05, 0xa0, 0x09, 0x32, 0x10, 0x75, 0xc0, 0x41, - 0x13, 0x06, 0xc8, 0x01, 0x01, 0x6c, 0xc2, 0xe0, 0xfc, 0x02, 0x11, 0x01, 0x10, 0x7b, 0x01, 0x60, - 0x01, 0x9c, 0x00, 0x40, 0x16, 0x79, 0xd8, 0x20, 0x09, 0x2f, 0x01, 0x83, 0xc0, 0x41, 0x13, 0x04, - 0xc8, 0x01, 0x01, 0x8a, 0xc8, 0x01, 0x09, 0x18, 0x07, 0x86, 0x00, 0x43, 0xc8, 0x06, 0x01, 0x6c, - 0x02, 0x07, 0xfc, 0x02, 0xc2, 0x17, 0x04, 0x60, 0xb6, 0xfa, 0x04, 0xe0, 0x09, 0x18, 0x61, 0xc7, - 0x07, 0x08, 0x01, 0x60, 0xfc, 0x06, 0x00, 0x40, 0x13, 0x02, 0x02, 0x08, 0x00, 0x01, 0x10, 0x09, - 0xc2, 0x4c, 0xc3, 0x20, 0xfc, 0x00, 0x13, 0x2a, 0xc8, 0x0c, 0x01, 0x6c, 0xc2, 0xe0, 0xfc, 0x02, - 0x11, 0x1b, 0x01, 0x4b, 0x01, 0x00, 0x16, 0xf4, 0x22, 0xc8, 0x13, 0x12, 0x01, 0xcb, 0x40, 0x00, - 0xc8, 0x0b, 0xfc, 0x02, 0x10, 0x0d, 0xc1, 0xe0, 0x09, 0x18, 0xc3, 0x01, 0x13, 0x21, 0xc2, 0x4c, - 0x13, 0x15, 0xc8, 0x0c, 0x01, 0x6c, 0xc2, 0xe0, 0xfc, 0x02, 0x11, 0x06, 0x81, 0xcc, 0x13, 0xd5, - 0xc2, 0x4c, 0xc3, 0x20, 0xfc, 0x00, 0x10, 0xf4, 0xc8, 0x09, 0x01, 0x6c, 0xc2, 0xe0, 0xfc, 0x02, - 0x16, 0x1e, 0x07, 0xa0, 0xfc, 0x02, 0x80, 0x00, 0xc3, 0x09, 0x10, 0x19, 0xc8, 0x09, 0x01, 0x6c, - 0xc2, 0xe0, 0xfc, 0x02, 0x16, 0x05, 0x07, 0xa0, 0xfc, 0x02, 0x80, 0x00, 0xc3, 0x09, 0x10, 0x0f, - 0xc2, 0xe0, 0x0c, 0x02, 0x11, 0x01, 0x10, 0x1e, 0xd8, 0x20, 0xe2, 0x00, 0x01, 0x83, 0x00, 0x00, - 0xb6, 0x44, 0x00, 0x09, 0x09, 0x8b, 0x00, 0x00, 0xb6, 0x4c, 0x0b, 0x36, 0x07, 0xa0, 0x01, 0x8a, - 0x00, 0x43, 0x10, 0x13, 0xc8, 0x0c, 0x01, 0x8a, 0xc8, 0x0c, 0x09, 0x18, 0x10, 0x0e, 0x03, 0x00, - 0x00, 0x02, 0xc0, 0xe0, 0x01, 0x6c, 0xc3, 0x20, 0x01, 0x8a, 0x98, 0x20, 0x01, 0x83, 0xe2, 0x00, - 0x13, 0x81, 0x01, 0x60, 0x01, 0x9c, 0x00, 0x40, 0x13, 0xb9, 0x83, 0x01, 0x16, 0x31, 0xc8, 0x03, - 0x01, 0x6c, 0x01, 0x40, 0x00, 0x10, 0x16, 0x14, 0xc2, 0xe0, 0x06, 0x2e, 0x13, 0x11, 0xc2, 0xe0, - 0x05, 0xf8, 0x13, 0x0e, 0x01, 0xe0, 0x07, 0x3a, 0x80, 0x00, 0x01, 0x80, 0x00, 0x10, 0xc2, 0xe0, - 0x07, 0x36, 0x13, 0x06, 0x04, 0xe0, 0x07, 0x36, 0x01, 0x80, 0x00, 0x20, 0x04, 0x60, 0xb9, 0xc0, - 0x01, 0x40, 0x00, 0x20, 0x13, 0xf9, 0x03, 0x90, 0x11, 0xff, 0x03, 0x80, 0x01, 0x08, 0x04, 0x00, - 0x16, 0x19, 0x01, 0x60, 0x09, 0x6a, 0x00, 0x01, 0x16, 0x15, 0x01, 0x88, 0x1a, 0x00, 0x01, 0xc8, - 0x01, 0x00, 0xc5, 0xc8, 0x10, 0x0f, 0x04, 0xe0, 0x09, 0x18, 0x01, 0xc0, 0x00, 0x04, 0x10, 0x15, - 0xc1, 0x81, 0xc8, 0x01, 0x01, 0x6c, 0x02, 0x07, 0xfc, 0x00, 0xc0, 0x77, 0xc2, 0x17, 0x01, 0x48, - 0x18, 0x00, 0x13, 0xe4, 0x01, 0x40, 0x00, 0x40, 0x16, 0x15, 0x01, 0x80, 0x00, 0x45, 0xc1, 0x46, - 0xd0, 0x20, 0xfc, 0x07, 0x81, 0x60, 0x09, 0x18, 0x13, 0xe6, 0xc2, 0xe0, 0xfc, 0x08, 0x11, 0x08, - 0xc2, 0xe0, 0xfc, 0x0e, 0x15, 0x07, 0x13, 0x06, 0xc2, 0xe0, 0xfc, 0x14, 0x15, 0x03, 0x13, 0x02, - 0x01, 0xc0, 0x00, 0x01, 0x01, 0x48, 0x01, 0x00, 0x13, 0x11, 0x01, 0x40, 0x40, 0x80, 0x13, 0x5b, - 0x04, 0x60, 0xb6, 0x66, 0x01, 0x48, 0x00, 0x01, 0x16, 0x03, 0x01, 0x40, 0x40, 0x00, 0x16, 0x0b, - 0x01, 0xc8, 0x40, 0x00, 0x05, 0xa0, 0x09, 0x32, 0xc5, 0xc8, 0x10, 0x05, 0x01, 0xc0, 0x00, 0x40, - 0x01, 0x40, 0x00, 0x04, 0x13, 0xef, 0x05, 0xc7, 0xc2, 0xd7, 0x62, 0xc4, 0x05, 0x0b, 0x02, 0x2b, - 0xff, 0xfc, 0xc5, 0xcb, 0x15, 0x02, 0x81, 0x46, 0x13, 0x5d, 0x01, 0x08, 0x5e, 0x00, 0x16, 0x5a, - 0x01, 0x08, 0x00, 0x88, 0x16, 0x13, 0x02, 0x86, 0x00, 0x43, 0x16, 0x1e, 0x01, 0x40, 0x40, 0x00, - 0x13, 0x0b, 0x01, 0x08, 0x00, 0x03, 0x13, 0x08, 0xc2, 0x84, 0x02, 0x2a, 0xff, 0xd8, 0xc8, 0x06, - 0x01, 0x6c, 0x68, 0x0a, 0xfc, 0x04, 0x10, 0x66, 0x04, 0x60, 0xb8, 0xa8, 0x01, 0x40, 0x00, 0x01, - 0x13, 0xea, 0x01, 0x08, 0x00, 0x02, 0x16, 0xe7, 0x01, 0x48, 0x00, 0x01, 0x16, 0xe4, 0x07, 0x8a, - 0x00, 0x80, 0x06, 0xa0, 0xb5, 0x32, 0x10, 0xdf, 0xc0, 0x00, 0x11, 0xee, 0xc2, 0x60, 0x09, 0x6a, - 0x01, 0x40, 0x40, 0x00, 0x13, 0x0a, 0x01, 0x48, 0x00, 0x01, 0x13, 0x2e, 0x01, 0x48, 0x00, 0x02, - 0x13, 0x04, 0x01, 0x49, 0x00, 0x04, 0x16, 0xe0, 0x10, 0x00, 0x01, 0x49, 0x00, 0x01, 0x13, 0x12, - 0x01, 0x40, 0x40, 0x80, 0x16, 0x01, 0xc1, 0x46, 0x04, 0xe0, 0xfc, 0x00, 0x07, 0x87, 0x05, 0xf8, - 0xc2, 0x17, 0x13, 0x14, 0x05, 0xc7, 0xc8, 0x17, 0x01, 0x6c, 0xc8, 0x05, 0xfc, 0x00, 0xc5, 0xc6, - 0x04, 0x60, 0xb6, 0x66, 0x02, 0x07, 0xfc, 0x02, 0xa1, 0xe0, 0x09, 0x2c, 0xcd, 0xe0, 0x05, 0xee, - 0xc5, 0xe0, 0xfc, 0x04, 0xc8, 0x20, 0x09, 0x2c, 0xfc, 0x04, 0x10, 0xe2, 0xcd, 0xc5, 0xc5, 0xc6, - 0x04, 0x60, 0xb6, 0x66, 0x04, 0x60, 0xb8, 0x8c, 0xc8, 0x06, 0x01, 0x6c, 0x81, 0x85, 0x13, 0x1a, - 0xc2, 0xe0, 0xfc, 0x04, 0x15, 0x17, 0xc2, 0x86, 0xa2, 0x8a, 0xc1, 0xaa, 0x0c, 0x32, 0xc8, 0x06, - 0x01, 0x6c, 0xa8, 0x0b, 0xfc, 0x04, 0x09, 0x1a, 0xc8, 0x0a, 0x01, 0x6c, 0xc2, 0xe0, 0xfc, 0x02, - 0x04, 0xe0, 0xfc, 0x00, 0xc8, 0x06, 0x01, 0x6c, 0xc8, 0x0b, 0xfc, 0x02, 0x06, 0xa0, 0xc1, 0x9c, - 0xc8, 0x06, 0x01, 0x6c, 0x04, 0xe0, 0xfc, 0x00, 0x01, 0xa0, 0xfc, 0x02, 0x00, 0x02, 0x07, 0x87, - 0x06, 0x30, 0x01, 0xe7, 0x00, 0x04, 0x00, 0x40, 0x04, 0xd7, 0x02, 0x27, 0x00, 0x0c, 0xc2, 0x05, - 0x06, 0xa0, 0xc2, 0x5a, 0x01, 0xc0, 0x00, 0x20, 0x04, 0x60, 0xb6, 0x66, 0x01, 0x48, 0x18, 0x00, - 0x13, 0x03, 0x01, 0x48, 0x10, 0x00, 0x16, 0x02, 0x05, 0xa0, 0x09, 0x32, 0x02, 0x86, 0x00, 0x43, - 0x13, 0x03, 0x01, 0x40, 0x40, 0x80, 0x13, 0x9f, 0xc8, 0x06, 0x01, 0x6c, 0x04, 0xe0, 0xfc, 0x00, - 0xc2, 0x85, 0x06, 0xa0, 0xc1, 0x9c, 0x06, 0x20, 0x09, 0x62, 0x16, 0xe6, 0x06, 0xa0, 0xe1, 0x18, - 0x10, 0xe3, 0xc2, 0xa0, 0x05, 0xf6, 0x16, 0x52, 0xc8, 0x19, 0x05, 0xf0, 0xc2, 0xa9, 0x00, 0x0a, - 0x11, 0x0d, 0xf2, 0xa0, 0x09, 0x2e, 0xd8, 0x0a, 0x01, 0x80, 0xc8, 0x29, 0x00, 0x06, 0x01, 0x8c, - 0x07, 0xa0, 0x09, 0x16, 0x00, 0x04, 0xc8, 0x09, 0x05, 0xf4, 0x10, 0x42, 0xc8, 0x29, 0x00, 0x06, - 0x01, 0x6c, 0xc8, 0x20, 0xfc, 0x0e, 0x01, 0xbc, 0xc8, 0x20, 0xfc, 0x10, 0x01, 0xb0, 0xc8, 0x20, - 0xfc, 0x12, 0x01, 0xb2, 0xf2, 0xa0, 0x09, 0x2e, 0x01, 0x8a, 0x10, 0x00, 0x01, 0xa0, 0x01, 0x80, - 0xc4, 0x00, 0x10, 0xe1, 0x01, 0x47, 0x00, 0x08, 0x16, 0x06, 0xc2, 0xa8, 0x00, 0x06, 0x06, 0xa0, - 0xc1, 0x9c, 0x04, 0xe8, 0x00, 0x06, 0x01, 0x07, 0x00, 0x20, 0x13, 0x2d, 0x04, 0xe8, 0x00, 0x02, - 0x10, 0x37, 0x04, 0xe0, 0xfc, 0x00, 0x06, 0xa0, 0xc1, 0x9c, 0x10, 0x25, 0x03, 0x00, 0x00, 0x02, - 0xc2, 0x20, 0x01, 0x8c, 0xc0, 0xe0, 0x01, 0x6c, 0xc2, 0x20, 0x05, 0xf4, 0xc8, 0x28, 0x00, 0x08, - 0x01, 0x6c, 0xc1, 0xe8, 0x00, 0x0a, 0xc3, 0x20, 0xfc, 0x02, 0x01, 0x0c, 0xfe, 0x00, 0x16, 0x3b, - 0x01, 0x47, 0x00, 0x40, 0x13, 0x50, 0xc2, 0x60, 0x05, 0xf0, 0x16, 0xab, 0x04, 0xe0, 0x05, 0xf4, - 0xca, 0x0c, 0x00, 0x08, 0x01, 0x47, 0x00, 0x80, 0x16, 0xcd, 0xc8, 0x28, 0x00, 0x06, 0x01, 0x6c, - 0xc2, 0xa0, 0xfc, 0x00, 0x16, 0xd6, 0xc1, 0xe8, 0x00, 0x02, 0xc2, 0xd7, 0x16, 0x0f, 0x02, 0x27, - 0x00, 0x10, 0x04, 0xd8, 0xc2, 0x57, 0x13, 0x0e, 0x05, 0xc7, 0xc2, 0x57, 0xc6, 0x48, 0xc5, 0xc8, - 0xc8, 0x03, 0x01, 0x6c, 0x11, 0x0d, 0x03, 0x90, 0x11, 0xff, 0x03, 0x80, 0x04, 0xd7, 0x01, 0xc3, - 0x80, 0x00, 0x10, 0xed, 0x01, 0xe7, 0xff, 0xf4, 0x00, 0x20, 0xcd, 0xc8, 0xc5, 0xc8, 0x10, 0xf0, - 0x03, 0x90, 0x11, 0xf8, 0x02, 0xe0, 0x00, 0xc0, 0xc3, 0x60, 0x00, 0xfa, 0xc3, 0xa0, 0x00, 0xfc, - 0xc3, 0xe0, 0x00, 0xfe, 0x04, 0x54, 0xc2, 0xe8, 0x00, 0x08, 0xc2, 0xa8, 0x00, 0x06, 0xc3, 0x0c, - 0x11, 0x33, 0x23, 0x20, 0xe0, 0x0a, 0x13, 0x45, 0x23, 0x20, 0xe0, 0x10, 0x13, 0x46, 0x23, 0x20, - 0xe0, 0x0e, 0x13, 0x13, 0x21, 0xe0, 0xe0, 0x16, 0x16, 0xb6, 0x23, 0x20, 0xe0, 0x06, 0x16, 0x03, - 0x27, 0x20, 0xe4, 0x68, 0x13, 0x0a, 0xc2, 0xe8, 0x00, 0x08, 0xc2, 0xa8, 0x00, 0x06, 0x01, 0x4c, - 0x00, 0x88, 0x16, 0xa9, 0x01, 0x0c, 0x00, 0x44, 0x16, 0xa6, 0x06, 0x20, 0x09, 0x16, 0x13, 0xa3, - 0xc8, 0x0a, 0x01, 0x6c, 0xc8, 0x20, 0xe0, 0x04, 0xfc, 0x02, 0xc8, 0x0b, 0x01, 0x6c, 0x07, 0xa0, - 0xfc, 0x02, 0x81, 0x00, 0xc3, 0x20, 0x01, 0x80, 0x01, 0xa0, 0x01, 0x80, 0xc4, 0x00, 0xc8, 0x0c, - 0x01, 0x80, 0xc8, 0x0a, 0x01, 0x8c, 0x10, 0xac, 0xc2, 0x0a, 0x13, 0x0f, 0xc8, 0x08, 0x01, 0x6c, - 0xc2, 0xa0, 0xfc, 0x00, 0xc3, 0x20, 0xfc, 0x02, 0x23, 0x20, 0xe0, 0x12, 0x16, 0xf5, 0xc8, 0x0b, - 0x01, 0x6c, 0xc8, 0x0c, 0xfc, 0x02, 0x04, 0x60, 0xb9, 0x48, 0x07, 0x8a, 0x04, 0x00, 0x04, 0x60, - 0xb3, 0x8a, 0x07, 0x8a, 0x00, 0x20, 0x04, 0x60, 0xb3, 0x8a, 0x07, 0x8a, 0x02, 0x00, 0x27, 0x20, - 0xe0, 0x0e, 0x16, 0x02, 0x06, 0xa0, 0xb5, 0x32, 0xc2, 0xa8, 0x00, 0x06, 0x04, 0x60, 0xb9, 0x66, - 0x03, 0x00, 0x00, 0x02, 0x01, 0xc0, 0x00, 0x10, 0xc2, 0xe0, 0x06, 0x2e, 0x13, 0x08, 0xc2, 0xe0, - 0x05, 0xf8, 0x13, 0x05, 0x01, 0xe0, 0x07, 0x3a, 0x80, 0x00, 0x01, 0x80, 0x00, 0x10, 0x03, 0x90, - 0x7f, 0xff, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, 0xc2, 0x20, 0x05, 0xf6, 0xe2, 0x20, 0x05, 0xf4, - 0x16, 0x0e, 0xd8, 0x20, 0x09, 0x2e, 0x01, 0x80, 0xc8, 0x2b, 0x00, 0x06, 0x01, 0x8c, 0x07, 0xa0, - 0x09, 0x16, 0x00, 0x04, 0xc8, 0x0b, 0x05, 0xf4, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0x07, 0x87, - 0x05, 0xf0, 0x04, 0xdb, 0xc2, 0x57, 0x16, 0x05, 0xcd, 0xcb, 0xc5, 0xcb, 0x03, 0x90, 0xff, 0xff, - 0x03, 0x80, 0x05, 0xc7, 0xc2, 0x57, 0xc6, 0x4b, 0xc5, 0xcb, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, - 0x03, 0x00, 0x00, 0x02, 0xc2, 0x0b, 0xc3, 0x20, 0x05, 0xf4, 0x13, 0x0f, 0xc2, 0xa8, 0x00, 0x0a, - 0x01, 0x4a, 0x00, 0x10, 0x16, 0x16, 0x22, 0xa0, 0xe0, 0x04, 0x16, 0x1a, 0xc3, 0x08, 0x06, 0xa0, - 0xbb, 0xfe, 0xc2, 0x0c, 0xc3, 0x20, 0x05, 0xf4, 0x16, 0x13, 0x01, 0x68, 0x00, 0x0a, 0x00, 0x10, - 0x13, 0x03, 0xc2, 0xe0, 0x05, 0xf6, 0x16, 0x05, 0x06, 0xa0, 0xbc, 0x40, 0x03, 0x90, 0xff, 0xff, - 0x03, 0x80, 0x07, 0x87, 0x05, 0xf0, 0x06, 0xa0, 0xc2, 0x44, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, - 0x07, 0x87, 0x05, 0xf0, 0x06, 0xa0, 0xc2, 0x8a, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, 0x07, 0x87, - 0x05, 0xf0, 0xc2, 0xcb, 0x16, 0x08, 0x06, 0xa0, 0xbb, 0xfe, 0x07, 0x20, 0x05, 0xf6, 0xcb, 0x60, - 0x05, 0xf4, 0x00, 0x02, 0x03, 0x80, 0x04, 0xe0, 0x05, 0xf6, 0xc2, 0x20, 0x05, 0xf4, 0x16, 0x05, - 0xc2, 0x17, 0x13, 0x03, 0xc5, 0xd8, 0x06, 0xa0, 0xbc, 0x40, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, - 0xc2, 0x8b, 0x06, 0xa0, 0xbb, 0xfe, 0xc1, 0xca, 0x02, 0x27, 0x00, 0x10, 0x07, 0x88, 0x05, 0xf0, - 0xc1, 0x88, 0xc2, 0x18, 0x13, 0x26, 0x82, 0xa8, 0x00, 0x02, 0x16, 0xfa, 0xc2, 0xe8, 0x00, 0x0a, - 0x22, 0xe0, 0xe0, 0x1e, 0x16, 0xf5, 0xc5, 0x98, 0x22, 0xe0, 0xe0, 0x1c, 0x16, 0x0b, 0xc8, 0x28, - 0x00, 0x06, 0x00, 0xf4, 0x02, 0xe0, 0x00, 0xe0, 0x06, 0xa0, 0xc1, 0x9c, 0x02, 0xe0, 0x00, 0xc0, - 0x04, 0xe8, 0x00, 0x06, 0x22, 0xe0, 0xe0, 0x18, 0x13, 0xe4, 0xea, 0x20, 0xe0, 0x22, 0x00, 0x0a, - 0xea, 0xa0, 0xe0, 0x18, 0x00, 0x04, 0x04, 0xda, 0x06, 0xa0, 0xc2, 0x44, 0x06, 0x47, 0xc2, 0x06, - 0x10, 0xd8, 0xc8, 0x06, 0x05, 0xf2, 0xcb, 0x60, 0x05, 0xf4, 0x00, 0x02, 0x04, 0x54, 0xc2, 0x20, - 0x05, 0xf4, 0x13, 0x13, 0x01, 0xe0, 0x01, 0x9c, 0x40, 0x00, 0x0b, 0x8b, 0x0b, 0x8b, 0x01, 0x60, - 0x01, 0x9c, 0x40, 0x00, 0x16, 0x0a, 0xc2, 0x60, 0x01, 0x6c, 0xc8, 0x28, 0x00, 0x06, 0x01, 0x6c, - 0xc2, 0xa0, 0xfc, 0x02, 0x11, 0x03, 0xc8, 0x09, 0x01, 0x6c, 0x04, 0x5b, 0xc8, 0x09, 0x01, 0x6c, - 0xc2, 0x4b, 0x07, 0x87, 0x05, 0xf0, 0x06, 0xa0, 0xc2, 0x8a, 0x04, 0xe0, 0x05, 0xf4, 0x04, 0x59, - 0xc2, 0xa8, 0x00, 0x0a, 0x11, 0x0d, 0xf2, 0xa0, 0x09, 0x2e, 0xd8, 0x0a, 0x01, 0x80, 0xc8, 0x28, - 0x00, 0x06, 0x01, 0x8c, 0x07, 0xa0, 0x09, 0x16, 0x00, 0x04, 0xc8, 0x08, 0x05, 0xf4, 0x04, 0x5b, - 0xc3, 0x20, 0x01, 0x6c, 0xc8, 0x28, 0x00, 0x06, 0x01, 0x6c, 0xc8, 0x20, 0xfc, 0x0e, 0x01, 0xbc, - 0xc8, 0x20, 0xfc, 0x10, 0x01, 0xb0, 0xc8, 0x20, 0xfc, 0x12, 0x01, 0xb2, 0xc8, 0x0c, 0x01, 0x6c, - 0xf2, 0xa0, 0x09, 0x2e, 0x01, 0x8a, 0x10, 0x00, 0x01, 0xa0, 0x01, 0x80, 0xc4, 0x00, 0x10, 0xdd, - 0x07, 0x33, 0x07, 0x33, 0x10, 0x0c, 0x07, 0x13, 0x07, 0x23, 0x00, 0x02, 0xc8, 0xcb, 0x00, 0x06, - 0x02, 0x23, 0x00, 0x18, 0xcc, 0xe0, 0x01, 0x6c, 0xcc, 0xcd, 0xcc, 0xce, 0xcc, 0xcf, 0x07, 0x83, - 0x06, 0x30, 0xc1, 0xd3, 0x13, 0x0a, 0x07, 0x83, 0x07, 0x36, 0xc1, 0xd3, 0x13, 0x06, 0x07, 0x83, - 0x00, 0xa0, 0x00, 0x93, 0xc8, 0x0c, 0x01, 0x6c, 0x03, 0x80, 0x07, 0x63, 0x00, 0x02, 0x15, 0x2a, - 0xc2, 0x63, 0x00, 0x04, 0x42, 0x63, 0x00, 0x06, 0x13, 0xdb, 0xc3, 0x63, 0x00, 0x1a, 0xd2, 0x49, - 0x13, 0x0c, 0x06, 0xc9, 0x72, 0x49, 0xd2, 0x69, 0xe1, 0xc0, 0x06, 0xc9, 0x72, 0x49, 0x48, 0xe9, - 0xe0, 0x04, 0x00, 0x04, 0xcb, 0x49, 0x00, 0x02, 0x04, 0x52, 0xc2, 0x69, 0xe1, 0xc0, 0x72, 0x49, - 0x02, 0x29, 0x00, 0x10, 0xc2, 0xc3, 0xa2, 0xe9, 0xe1, 0xa8, 0xc3, 0x1b, 0x02, 0x89, 0x00, 0x12, - 0x13, 0x0f, 0xc6, 0xdc, 0x16, 0x03, 0x48, 0xe9, 0xe0, 0x04, 0x00, 0x04, 0xcb, 0x49, 0x00, 0x02, - 0xcb, 0x4c, 0x00, 0x04, 0x03, 0x90, 0x01, 0xff, 0x00, 0x93, 0xc8, 0x0c, 0x01, 0x6c, 0x03, 0x80, - 0xc8, 0x0c, 0x01, 0x6c, 0xc6, 0xe0, 0xfc, 0x00, 0x16, 0xf1, 0x48, 0xe9, 0xe0, 0x04, 0x00, 0x04, - 0xcb, 0x49, 0x00, 0x02, 0xcb, 0x4c, 0x00, 0x04, 0x10, 0xed, 0x03, 0x00, 0x00, 0x02, 0xc2, 0xdb, - 0xc2, 0x63, 0x00, 0x04, 0x42, 0x4b, 0x13, 0x9f, 0xd2, 0x49, 0x13, 0x0e, 0x06, 0xc9, 0x72, 0x49, - 0xd2, 0x69, 0xe1, 0xc0, 0x06, 0xc9, 0x72, 0x49, 0x48, 0xe9, 0xe0, 0x04, 0x00, 0x04, 0xcb, 0x49, - 0x00, 0x02, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0xc2, 0x69, 0xe1, 0xc0, 0x72, 0x49, 0x02, 0x29, - 0x00, 0x10, 0xc2, 0xc3, 0xa2, 0xe9, 0xe1, 0xa8, 0xc3, 0x1b, 0x02, 0x89, 0x00, 0x12, 0x13, 0x0c, - 0xc6, 0xdc, 0x16, 0x03, 0x48, 0xe9, 0xe0, 0x04, 0x00, 0x04, 0xcb, 0x49, 0x00, 0x02, 0xcb, 0x4c, - 0x00, 0x04, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0xc8, 0x0c, 0x01, 0x6c, 0xc6, 0xe0, 0xfc, 0x00, - 0x16, 0xf4, 0x10, 0xf0, 0x03, 0x00, 0x00, 0x02, 0xc2, 0xbb, 0xc1, 0xbb, 0xd1, 0x86, 0x13, 0x03, - 0xea, 0x86, 0x00, 0x04, 0x10, 0x13, 0xd1, 0xa6, 0xe1, 0xc0, 0x06, 0xc6, 0x71, 0x86, 0xc1, 0xca, - 0xa1, 0xe6, 0xe1, 0xb8, 0xea, 0xa6, 0xe0, 0x14, 0x00, 0x04, 0xc2, 0x1b, 0x02, 0x86, 0x00, 0x02, - 0x16, 0x03, 0x06, 0xa0, 0xc2, 0x6a, 0x10, 0x02, 0x06, 0xa0, 0xc2, 0x44, 0x04, 0xda, 0x03, 0x80, - 0x03, 0x00, 0x00, 0x02, 0xc2, 0xab, 0x00, 0x06, 0x07, 0x8c, 0x05, 0xe8, 0xc2, 0x5c, 0x13, 0x16, - 0xc1, 0xa0, 0x05, 0xec, 0x81, 0x8a, 0x1a, 0x1a, 0xc1, 0xc6, 0xc2, 0x09, 0xc2, 0x59, 0x13, 0x20, - 0xa1, 0xe9, 0x00, 0x08, 0x82, 0x87, 0x12, 0xf9, 0xa2, 0xa9, 0x00, 0x08, 0x62, 0x87, 0xca, 0xca, - 0x00, 0x08, 0x6a, 0x4a, 0x00, 0x08, 0xc6, 0xc9, 0xc6, 0x0b, 0x03, 0x80, 0xca, 0xca, 0x00, 0x08, - 0xc8, 0x0a, 0x05, 0xec, 0x04, 0xdb, 0xcf, 0x0b, 0xc7, 0x0b, 0x03, 0x80, 0x61, 0x8a, 0xca, 0x46, - 0x00, 0x08, 0xca, 0xca, 0x00, 0x08, 0xc8, 0x0a, 0x05, 0xec, 0xc6, 0xc9, 0xc7, 0x0b, 0x03, 0x80, - 0x62, 0x87, 0xca, 0xca, 0x00, 0x08, 0x04, 0xdb, 0xc6, 0x0b, 0xcb, 0x0b, 0x00, 0x02, 0x03, 0x80, - 0x03, 0x00, 0x00, 0x02, 0xc1, 0xbb, 0xc2, 0xdb, 0x07, 0x8c, 0x05, 0xe8, 0xc2, 0x4c, 0x04, 0xed, - 0x00, 0x02, 0xc2, 0x09, 0xc2, 0x59, 0x13, 0x18, 0x81, 0xa9, 0x00, 0x02, 0x16, 0xfa, 0x82, 0xe9, - 0x00, 0x04, 0x16, 0xf7, 0xcb, 0x49, 0x00, 0x04, 0xc2, 0x99, 0xc6, 0x0a, 0x13, 0x0a, 0x83, 0x08, - 0x13, 0x04, 0xaa, 0xa9, 0x00, 0x08, 0x00, 0x08, 0x03, 0x80, 0xa8, 0x2a, 0x00, 0x08, 0x05, 0xec, - 0x03, 0x80, 0xcb, 0x08, 0x00, 0x02, 0x03, 0x80, 0x07, 0x2d, 0x00, 0x02, 0x07, 0x8c, 0x00, 0x08, - 0xa3, 0x06, 0xc2, 0x4c, 0xc2, 0x09, 0xc2, 0x59, 0x13, 0x13, 0x82, 0xe9, 0x00, 0x04, 0x16, 0xfa, - 0x07, 0xad, 0x00, 0x02, 0x00, 0x01, 0xcb, 0x49, 0x00, 0x04, 0xc6, 0x19, 0x13, 0x01, 0x03, 0x80, - 0x83, 0x08, 0x16, 0x04, 0x49, 0xa0, 0xe0, 0x14, 0x00, 0x04, 0x03, 0x80, 0xcb, 0x08, 0x00, 0x02, - 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, 0x06, 0x0b, 0x11, 0x1f, 0x13, 0x4d, 0x07, 0x8b, 0x4e, 0x00, - 0x01, 0x60, 0x01, 0x42, 0x00, 0x80, 0x13, 0x09, 0x07, 0x8b, 0x3a, 0x00, 0xc1, 0x20, 0x01, 0x4e, - 0x02, 0x84, 0x0f, 0x41, 0x11, 0x02, 0x07, 0x8b, 0x4e, 0x00, 0xc8, 0x0b, 0x01, 0x44, 0x07, 0xa0, - 0x09, 0x62, 0x03, 0xe8, 0x01, 0xe0, 0x01, 0x40, 0x02, 0x00, 0x01, 0xe0, 0x01, 0x40, 0x20, 0x00, - 0x07, 0x84, 0xbc, 0xa0, 0x04, 0x60, 0xbc, 0xae, 0xc8, 0x20, 0xe0, 0x16, 0x00, 0xe0, 0xc2, 0xe0, - 0x09, 0x6a, 0x22, 0xe0, 0xe0, 0x10, 0x13, 0x03, 0xe8, 0x20, 0xe0, 0x14, 0x00, 0xe0, 0xc8, 0x20, - 0xe0, 0x04, 0x01, 0x82, 0xc8, 0x20, 0x00, 0xe2, 0x01, 0x8a, 0x04, 0xe0, 0x09, 0x18, 0x04, 0xe0, - 0x05, 0xf4, 0x04, 0xe0, 0x05, 0xf8, 0x04, 0xe0, 0x05, 0xf0, 0x04, 0xe0, 0x07, 0x42, 0x07, 0xa0, - 0x01, 0x88, 0x00, 0x20, 0xc2, 0xe0, 0x09, 0x30, 0x13, 0x09, 0x07, 0xa0, 0x01, 0x88, 0x00, 0x80, - 0xe8, 0x20, 0xe0, 0x16, 0x01, 0x80, 0x01, 0xe0, 0x01, 0x82, 0x03, 0x00, 0x07, 0x8b, 0xa0, 0x00, - 0xe8, 0x0b, 0x01, 0x86, 0x03, 0x80, 0x04, 0xe0, 0x01, 0x86, 0x01, 0xe0, 0x01, 0x9c, 0x00, 0x40, - 0x01, 0xe0, 0x01, 0x9c, 0x40, 0x00, 0x04, 0xcb, 0x03, 0xb0, 0x06, 0x0b, 0x13, 0x04, 0x01, 0x60, - 0x01, 0x9c, 0x40, 0x00, 0x16, 0xf9, 0x04, 0xe0, 0x01, 0x82, 0xe8, 0x20, 0xe0, 0x08, 0x09, 0x6a, - 0x07, 0x8b, 0x80, 0x00, 0xc8, 0x0b, 0x07, 0x98, 0xc8, 0x0b, 0x07, 0x78, 0xc8, 0x20, 0xe0, 0x04, - 0x01, 0x82, 0x07, 0x8b, 0x87, 0x6f, 0x48, 0x0b, 0x07, 0x3a, 0xc2, 0xe0, 0x07, 0x50, 0x02, 0x8b, - 0x07, 0x58, 0x13, 0x10, 0xe8, 0x20, 0xe0, 0x0a, 0x01, 0x00, 0xc2, 0xe0, 0x01, 0x00, 0x22, 0xe0, - 0xe0, 0x06, 0x13, 0xf8, 0x07, 0x8b, 0x07, 0x58, 0xc8, 0x0b, 0x07, 0x50, 0x07, 0x8b, 0xc5, 0x6a, - 0xc8, 0x0b, 0x07, 0x52, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, 0xc2, 0xe0, 0x09, 0x1a, 0x13, 0x0c, - 0x06, 0x20, 0x09, 0x1c, 0xc8, 0x0b, 0x01, 0x6c, 0xc8, 0x20, 0xfc, 0x00, 0x09, 0x1a, 0xcb, 0x4b, - 0x00, 0x02, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0xc0, 0x41, 0x13, 0x0f, 0x80, 0x81, 0x13, 0x0d, - 0xa0, 0x82, 0xc2, 0xe2, 0x0c, 0x32, 0x09, 0x12, 0xc8, 0x0b, 0x01, 0x6c, 0x04, 0xe0, 0xfc, 0x00, - 0xc3, 0x20, 0xfc, 0x02, 0x11, 0x07, 0xc8, 0x02, 0xfc, 0x00, 0x04, 0xed, 0x00, 0x02, 0x04, 0xe0, - 0x01, 0x6c, 0x03, 0x80, 0xcb, 0x42, 0x00, 0x02, 0xc8, 0x02, 0x01, 0x6c, 0xc0, 0x8b, 0x03, 0x80, - 0x03, 0x00, 0x00, 0x02, 0x07, 0x83, 0x80, 0x00, 0xc2, 0x60, 0x09, 0x7e, 0xc1, 0x09, 0x02, 0x24, - 0xff, 0xf8, 0x08, 0xa9, 0x02, 0x01, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x02, 0x0b, 0x00, 0x00, - 0x02, 0x0c, 0x00, 0x00, 0x02, 0x07, 0x00, 0x00, 0xcb, 0x2c, 0x0c, 0x32, 0x0c, 0x32, 0x13, 0x06, - 0x05, 0x8b, 0x05, 0xcc, 0x88, 0x0b, 0x04, 0x46, 0x1b, 0x27, 0x10, 0xf6, 0xc2, 0x09, 0xc2, 0x8b, - 0x06, 0x08, 0x13, 0x0a, 0x05, 0x8b, 0x05, 0xcc, 0x88, 0x0b, 0x04, 0x46, 0x1b, 0x1d, 0xcb, 0x2c, - 0x0c, 0x32, 0x0c, 0x32, 0x16, 0xed, 0x10, 0xf4, 0xc0, 0x82, 0x13, 0x14, 0xc8, 0x02, 0x01, 0x6c, - 0xc8, 0x0a, 0xfc, 0x00, 0xc8, 0x0a, 0x01, 0x6c, 0x04, 0xe0, 0xfc, 0x00, 0x07, 0xa0, 0xfc, 0x02, - 0x80, 0x00, 0xc8, 0x04, 0xfc, 0x04, 0xc2, 0x0a, 0xa2, 0x08, 0xca, 0x02, 0x0c, 0x32, 0xc0, 0x8a, - 0x05, 0x87, 0x10, 0xd6, 0xc0, 0x4a, 0x10, 0xee, 0xcb, 0x47, 0x00, 0x02, 0x04, 0xe0, 0x01, 0x6c, - 0x07, 0x8b, 0x00, 0x43, 0x04, 0xe0, 0x0c, 0x00, 0x03, 0x00, 0x00, 0x02, 0xc8, 0x0b, 0x01, 0x6c, - 0xc2, 0x8b, 0x06, 0xa0, 0xc1, 0xa0, 0x03, 0x90, 0x00, 0x7f, 0x03, 0x80, 0x01, 0xa0, 0xfc, 0x02, - 0x00, 0x20, 0x01, 0x60, 0x09, 0x6a, 0x00, 0x01, 0x16, 0x0b, 0x02, 0x0a, 0xfc, 0x02, 0xa2, 0xa0, - 0x09, 0x2c, 0xce, 0xa0, 0x05, 0xee, 0xc6, 0xa0, 0xfc, 0x04, 0xc8, 0x20, 0x09, 0x2c, 0xfc, 0x04, - 0x07, 0x8a, 0x05, 0xf8, 0xc2, 0x5a, 0x13, 0x08, 0x05, 0xca, 0xc2, 0x5a, 0xc8, 0x09, 0x01, 0x6c, - 0xc8, 0x0b, 0xfc, 0x00, 0xc6, 0x8b, 0x10, 0x02, 0xce, 0x8b, 0xc6, 0x8b, 0x20, 0x20, 0xe0, 0x1a, - 0x16, 0x05, 0xe8, 0x20, 0xe0, 0x04, 0x07, 0x3a, 0x04, 0xe0, 0x07, 0x36, 0x03, 0x90, 0x00, 0x7f, - 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, 0xc8, 0x0b, 0x01, 0x6c, 0x04, 0xcc, 0x04, 0xe0, 0xfc, 0x00, - 0xc2, 0x8b, 0x06, 0xa0, 0xc1, 0xae, 0x03, 0x90, 0x00, 0x7f, 0x03, 0x80, 0x07, 0xa0, 0xfc, 0x02, - 0x80, 0x00, 0xc8, 0x20, 0xe1, 0x8c, 0xfc, 0x04, 0xc0, 0x41, 0x16, 0x0f, 0xd8, 0x20, 0xe2, 0x00, - 0x01, 0x83, 0x00, 0x00, 0xc1, 0x82, 0x00, 0x15, 0x0b, 0x8b, 0x00, 0x00, 0xc1, 0x96, 0x0c, 0xa8, - 0xc8, 0x0a, 0x01, 0x8a, 0x04, 0x5b, 0xc8, 0x0a, 0x01, 0x6c, 0xc3, 0x20, 0xfc, 0x00, 0x04, 0xe0, - 0xfc, 0x00, 0x02, 0x8a, 0x00, 0x43, 0x13, 0xdf, 0x07, 0xa0, 0xfc, 0x02, 0x80, 0x00, 0xc8, 0x04, - 0xfc, 0x04, 0x98, 0x20, 0x09, 0x84, 0x09, 0x1d, 0x13, 0x0a, 0xc8, 0x20, 0x09, 0x1a, 0xfc, 0x00, - 0xc8, 0x0a, 0x09, 0x1a, 0x05, 0xa0, 0x09, 0x1c, 0xc2, 0x8c, 0x16, 0xe5, 0x04, 0x5b, 0xc0, 0x41, - 0x13, 0x10, 0xa2, 0x8a, 0xca, 0x82, 0x0c, 0x32, 0x09, 0x1a, 0xc8, 0x02, 0x01, 0x6c, 0xc8, 0x0a, - 0xfc, 0x00, 0xc0, 0x8a, 0x98, 0x20, 0x01, 0x83, 0xe2, 0x00, 0x13, 0x09, 0xc2, 0x8c, 0x16, 0xd3, - 0x04, 0x5b, 0xc0, 0x4a, 0xc0, 0x8a, 0x98, 0x20, 0x01, 0x83, 0xe2, 0x00, 0x16, 0x1b, 0x01, 0xe0, - 0x01, 0x9c, 0x00, 0x40, 0x07, 0xa0, 0x09, 0x64, 0x70, 0x00, 0x01, 0x60, 0x01, 0x9c, 0x00, 0x40, - 0x13, 0x07, 0x06, 0x20, 0x09, 0x64, 0x16, 0xf9, 0x02, 0x0a, 0x01, 0x00, 0x04, 0x60, 0xb3, 0x8a, - 0x01, 0x60, 0x0c, 0x02, 0x01, 0x00, 0x13, 0xe2, 0xd8, 0x20, 0x09, 0x2f, 0x01, 0x83, 0x07, 0xa0, - 0x0c, 0x02, 0x80, 0x00, 0xc8, 0x0a, 0x01, 0x8a, 0xc8, 0x0a, 0x09, 0x18, 0x10, 0xd7, 0x04, 0xd8, - 0xc2, 0x57, 0x16, 0x03, 0xcd, 0xc8, 0xc5, 0xc8, 0x04, 0x5b, 0x05, 0xc7, 0xc2, 0x57, 0xc6, 0x48, - 0xc5, 0xc8, 0x04, 0x5b, 0xc8, 0x08, 0x01, 0x6c, 0xa2, 0x08, 0xca, 0x20, 0xfc, 0x00, 0x0c, 0x32, - 0x09, 0x18, 0x10, 0x02, 0xc8, 0x08, 0x01, 0x6c, 0x04, 0xe0, 0xfc, 0x00, 0xc2, 0x57, 0x16, 0x03, - 0xcd, 0xc8, 0xc5, 0xc8, 0x04, 0x5b, 0x05, 0xc7, 0xc8, 0x17, 0x01, 0x6c, 0xc8, 0x08, 0xfc, 0x00, - 0xc5, 0xc8, 0x04, 0x5b, 0xc6, 0x17, 0x16, 0x02, 0xc9, 0xc8, 0x00, 0x02, 0xc5, 0xc8, 0x04, 0x5b, - 0xc2, 0x17, 0xc8, 0x08, 0x01, 0x6c, 0x13, 0x07, 0xc5, 0xe0, 0xfc, 0x00, 0xa2, 0x08, 0xc8, 0x28, - 0x0c, 0x32, 0xfc, 0x00, 0x09, 0x18, 0x04, 0x5b, 0x01, 0x60, 0x01, 0x82, 0x20, 0x00, 0x16, 0x0a, - 0xc2, 0x60, 0x01, 0x84, 0x01, 0xa0, 0x01, 0x82, 0x20, 0x00, 0x01, 0xe0, 0x01, 0x82, 0x20, 0x00, - 0xc8, 0x09, 0x01, 0x84, 0x04, 0xc9, 0x04, 0x5b, 0x06, 0xa0, 0xc5, 0x1c, 0x04, 0xd3, 0x04, 0xe0, - 0x01, 0x02, 0xe8, 0x20, 0xe0, 0x14, 0x01, 0x00, 0xc8, 0x20, 0xe0, 0x16, 0x01, 0x04, 0x2c, 0x05, - 0x48, 0x20, 0xe0, 0x14, 0x01, 0x00, 0x07, 0x8c, 0x0a, 0x00, 0x07, 0x8d, 0x07, 0xd8, 0x07, 0x8e, - 0x00, 0x18, 0xcf, 0x7c, 0x06, 0x4e, 0x16, 0xfd, 0x02, 0xe0, 0x07, 0xd8, 0x07, 0x8f, 0xff, 0x11, - 0x02, 0x8b, 0x59, 0x3b, 0x16, 0x21, 0x02, 0x8a, 0x59, 0x3b, 0x13, 0x1e, 0x05, 0x8f, 0x20, 0x20, - 0xe0, 0x16, 0x16, 0x01, 0x10, 0x19, 0x20, 0x20, 0xe0, 0x04, 0x16, 0x16, 0x01, 0x00, 0x00, 0xbf, - 0x16, 0x13, 0x07, 0x8b, 0x40, 0xc0, 0x01, 0x00, 0x60, 0x00, 0x13, 0x10, 0x01, 0x40, 0x60, 0x00, - 0x16, 0x0b, 0x07, 0x8b, 0x44, 0xc4, 0xc3, 0xa0, 0x01, 0x02, 0x48, 0x0e, 0x01, 0x02, 0x01, 0x4e, - 0x10, 0x00, 0x16, 0x04, 0x07, 0x8f, 0xff, 0x18, 0x04, 0x60, 0xc4, 0xf2, 0xc3, 0x0b, 0xc3, 0x4b, - 0x20, 0x20, 0xe0, 0x0a, 0x16, 0x02, 0x02, 0x6b, 0x20, 0x20, 0x20, 0x20, 0xe0, 0x0c, 0x16, 0x02, - 0x02, 0x6c, 0x20, 0x00, 0x20, 0x20, 0xe0, 0x0e, 0x16, 0x02, 0x02, 0x6c, 0x00, 0x20, 0x05, 0x8f, - 0x20, 0x20, 0xe0, 0x10, 0x16, 0x07, 0x02, 0x6d, 0x00, 0x20, 0x21, 0x20, 0xe0, 0x22, 0x13, 0xe4, - 0xc1, 0x04, 0x16, 0x02, 0x07, 0x84, 0x7f, 0xfe, 0x05, 0x8f, 0x20, 0x20, 0xe0, 0x12, 0x16, 0x02, - 0x02, 0x6d, 0x20, 0x00, 0x21, 0x60, 0xe0, 0x22, 0x13, 0xd7, 0xc1, 0x45, 0x16, 0x02, 0x07, 0x85, - 0x7f, 0xfe, 0x05, 0x8f, 0xd1, 0x86, 0x13, 0x0b, 0x25, 0xa0, 0xe0, 0x26, 0x13, 0x08, 0x05, 0x8f, - 0x26, 0x20, 0xe0, 0x22, 0x16, 0x04, 0x05, 0x8f, 0x26, 0xa0, 0xe0, 0x22, 0x13, 0x02, 0x04, 0x60, - 0xc4, 0xf2, 0xd8, 0x01, 0x08, 0xec, 0xd8, 0x20, 0x07, 0xdb, 0x09, 0x00, 0xd8, 0x02, 0x08, 0xf6, - 0xd8, 0x20, 0x07, 0xdd, 0x08, 0xe2, 0x02, 0xe0, 0x07, 0x58, 0xd8, 0x20, 0x07, 0xef, 0x07, 0xf4, - 0xd8, 0x20, 0x07, 0xf1, 0x07, 0xf6, 0xd8, 0x20, 0x07, 0xf3, 0x07, 0xf8, 0x02, 0x09, 0x00, 0x06, - 0x04, 0xcb, 0x02, 0x0f, 0x07, 0xee, 0x05, 0x8f, 0xdf, 0xcb, 0x06, 0x09, 0x16, 0xfc, 0x06, 0xa0, - 0xc5, 0x1c, 0x07, 0x89, 0xe3, 0x5c, 0x04, 0xe0, 0x01, 0x1a, 0xc8, 0x20, 0x07, 0xe4, 0x01, 0x18, - 0xc8, 0x19, 0x01, 0x0c, 0xc8, 0x39, 0x01, 0x0a, 0xc8, 0x39, 0x01, 0x12, 0x16, 0x09, 0xc3, 0x79, - 0x02, 0x0f, 0xe0, 0x00, 0x63, 0x4f, 0x02, 0x2d, 0xa0, 0x00, 0xc8, 0x0d, 0x01, 0x14, 0x10, 0x02, - 0xc8, 0x39, 0x01, 0x14, 0xc3, 0xf9, 0xc8, 0x3f, 0x01, 0x0e, 0xc8, 0x1f, 0x01, 0x10, 0x04, 0xe0, - 0x09, 0x14, 0xc2, 0xb9, 0xc8, 0x1a, 0x01, 0x00, 0x06, 0x96, 0x02, 0x89, 0xe3, 0x84, 0x16, 0xe0, - 0x07, 0x8f, 0xff, 0x1c, 0x07, 0x8c, 0x0a, 0x00, 0x07, 0x8d, 0xe3, 0x84, 0x07, 0x8e, 0x00, 0x10, - 0x8f, 0x7c, 0x16, 0x44, 0x06, 0x4e, 0x16, 0xfc, 0xc3, 0xa0, 0x07, 0xe2, 0xc3, 0xe0, 0x07, 0xe0, - 0x83, 0xce, 0x14, 0x01, 0xc3, 0xce, 0xc8, 0x0f, 0x01, 0x1a, 0x07, 0x8c, 0xe3, 0x94, 0x07, 0x8d, - 0x0a, 0x00, 0x07, 0x8e, 0xe3, 0xa4, 0x63, 0x8c, 0xcf, 0x7c, 0x06, 0x4e, 0x16, 0xfd, 0x04, 0xe0, - 0x09, 0x30, 0x01, 0x20, 0x01, 0x42, 0x04, 0x00, 0x16, 0x02, 0x07, 0x20, 0x09, 0x30, 0xc2, 0x60, - 0x01, 0x62, 0x04, 0xe0, 0x01, 0x62, 0x07, 0x8e, 0x80, 0x00, 0x07, 0x8c, 0x09, 0x34, 0x07, 0x8d, - 0x00, 0x06, 0xdf, 0x3e, 0x05, 0x8e, 0x06, 0x0d, 0x16, 0xfc, 0xd3, 0xfe, 0x06, 0xcf, 0x05, 0x8e, - 0xd3, 0xfe, 0x06, 0xcf, 0x07, 0x8c, 0x09, 0x34, 0xc8, 0x09, 0x01, 0x62, 0x04, 0xc9, 0xa3, 0x5c, - 0xe2, 0x7c, 0xa3, 0x5c, 0xe2, 0x7c, 0xa3, 0x5c, 0xe2, 0x7c, 0x13, 0x02, 0x83, 0xcd, 0x13, 0x09, - 0x07, 0x20, 0x09, 0x34, 0x10, 0x06, 0x07, 0x8f, 0xff, 0x19, 0xa3, 0xcd, 0xc8, 0x0f, 0x01, 0x04, - 0x10, 0xff, 0x01, 0xa0, 0x01, 0x02, 0x10, 0x00, 0xc3, 0xe0, 0x07, 0xee, 0x43, 0xe0, 0xe0, 0x06, - 0xc8, 0x0f, 0x01, 0x00, 0xc0, 0x20, 0xe0, 0x04, 0x04, 0xe0, 0x06, 0xfe, 0x04, 0xd3, 0x04, 0xe0, - 0x01, 0x04, 0x04, 0x60, 0xc5, 0x6a, 0x07, 0x8c, 0x0a, 0x00, 0x07, 0x8d, 0x00, 0x18, 0x07, 0x8e, - 0x59, 0x3b, 0xcf, 0x0e, 0x06, 0x4d, 0x16, 0xfd, 0x04, 0x5b, 0x01, 0x93, 0x80, 0x00, 0x04, 0x20, - 0xe2, 0xc0, 0xd0, 0x60, 0x07, 0x98, 0x13, 0x1c, 0x03, 0x00, 0x00, 0x02, 0xc0, 0xa0, 0x07, 0x46, - 0xc8, 0x12, 0x07, 0x46, 0x16, 0x02, 0x01, 0x93, 0x00, 0x20, 0x03, 0x00, 0x00, 0x0f, 0x04, 0x20, - 0xe2, 0xe8, 0x01, 0x93, 0x20, 0x00, 0x01, 0x80, 0x40, 0x00, 0x01, 0x00, 0x00, 0xfe, 0x16, 0x49, - 0xc3, 0xc4, 0x16, 0x25, 0xc3, 0xd3, 0x43, 0xc5, 0x16, 0x0c, 0xc3, 0xe0, 0x07, 0x98, 0x11, 0x03, - 0x02, 0xe0, 0x07, 0x98, 0x04, 0x51, 0xc3, 0xe0, 0x07, 0x78, 0x11, 0x0a, 0x02, 0xe0, 0x07, 0x78, - 0x04, 0x51, 0x11, 0xd3, 0x01, 0x4f, 0x20, 0x00, 0x13, 0xe4, 0x01, 0x4f, 0x00, 0x20, 0x13, 0xd1, - 0x2c, 0x05, 0xa0, 0x41, 0x04, 0x21, 0xe2, 0xc0, 0x07, 0x8b, 0xc5, 0x6a, 0x01, 0x00, 0x40, 0x00, - 0x13, 0x0f, 0xc3, 0xdd, 0x02, 0x4f, 0x00, 0x0f, 0xe1, 0x2f, 0xe0, 0x14, 0x04, 0x5b, 0xc3, 0xe4, - 0xe1, 0xc0, 0x73, 0xcf, 0x41, 0x2f, 0xe0, 0x14, 0xc3, 0x6f, 0xea, 0x8c, 0x07, 0x8b, 0xc5, 0x6a, - 0xc2, 0x4b, 0xc2, 0xa0, 0x07, 0xf4, 0x07, 0x8c, 0x00, 0x08, 0xc0, 0xbd, 0xc3, 0xa0, 0x07, 0xea, - 0xc3, 0xe0, 0x07, 0xec, 0x06, 0xa0, 0xc7, 0x5e, 0x01, 0xc0, 0x40, 0x00, 0xd8, 0x02, 0x01, 0x17, - 0x02, 0x62, 0xff, 0x80, 0x06, 0xa0, 0xc7, 0xb2, 0xc8, 0x02, 0x01, 0x04, 0x03, 0x90, 0x60, 0x3f, - 0x04, 0x59, 0xc3, 0xc0, 0x73, 0xcf, 0xc3, 0xef, 0xe1, 0xc0, 0x73, 0xcf, 0xc3, 0xaf, 0xea, 0x7e, - 0xc3, 0x9e, 0x02, 0x4e, 0x00, 0x0f, 0x21, 0x2e, 0xe0, 0x14, 0x13, 0x08, 0x40, 0x2f, 0xe0, 0x14, - 0xa3, 0xcf, 0x04, 0x2f, 0xe2, 0xf0, 0x01, 0x40, 0x40, 0x00, 0x13, 0xa4, 0xc3, 0xc4, 0x16, 0xc7, - 0x01, 0x00, 0x00, 0xfe, 0x16, 0xe6, 0x10, 0x9e, 0x01, 0x40, 0x40, 0x00, 0x16, 0x05, 0xe0, 0x20, - 0xe0, 0x14, 0x02, 0x65, 0x58, 0x00, 0x10, 0x96, 0xd8, 0x20, 0x07, 0xde, 0x01, 0x17, 0x07, 0x8f, - 0xff, 0x86, 0xc8, 0x0f, 0x01, 0x04, 0x01, 0xc0, 0x40, 0x00, 0x02, 0x45, 0xa7, 0xff, 0x10, 0x8a, - 0xc3, 0x20, 0x06, 0xfe, 0x27, 0x20, 0xe3, 0x38, 0x13, 0x07, 0x23, 0x20, 0xe0, 0x22, 0x13, 0x1a, - 0x02, 0x65, 0xdf, 0xff, 0x40, 0x20, 0xe0, 0x14, 0xe0, 0x20, 0xe0, 0x16, 0xc8, 0x0c, 0x08, 0xe6, - 0x07, 0x8d, 0x08, 0xe2, 0x04, 0x58, 0x48, 0x20, 0xe0, 0x08, 0x06, 0xfe, 0xc3, 0x20, 0x08, 0xe6, - 0x27, 0x20, 0xe3, 0x38, 0x16, 0x19, 0x03, 0x80, 0xc3, 0x02, 0xc2, 0x6c, 0x00, 0x0a, 0x06, 0x99, - 0x04, 0x60, 0xc5, 0x6a, 0xc2, 0xa0, 0x07, 0xf4, 0x07, 0x8c, 0x00, 0x01, 0x07, 0x8d, 0x06, 0x06, - 0x04, 0xce, 0xc3, 0xe0, 0x06, 0x08, 0x13, 0x01, 0x06, 0x97, 0xd8, 0x20, 0x06, 0x07, 0x01, 0x17, - 0x07, 0x8b, 0xff, 0x82, 0xc8, 0x0b, 0x01, 0x04, 0x06, 0xa0, 0xcb, 0xe4, 0x04, 0x60, 0xc5, 0x6a, - 0xc2, 0xa0, 0x07, 0xee, 0x07, 0x8c, 0x00, 0x06, 0x07, 0x8d, 0x08, 0xee, 0xc3, 0xa0, 0x07, 0xe6, - 0xc3, 0xe0, 0x07, 0xe8, 0x06, 0x97, 0xc2, 0xa0, 0x07, 0xf4, 0x07, 0x8d, 0x08, 0xf4, 0x04, 0xdd, - 0x07, 0x8c, 0x00, 0x02, 0x06, 0x97, 0x07, 0x8d, 0x80, 0x00, 0xc2, 0xa0, 0x08, 0xee, 0x88, 0x0a, - 0x06, 0x0c, 0x1b, 0x14, 0x07, 0x82, 0xc7, 0x2e, 0xc3, 0xa0, 0x08, 0xf0, 0xc3, 0xe0, 0x08, 0xf2, - 0x07, 0x8b, 0xe3, 0x0c, 0x02, 0x8a, 0x00, 0x14, 0x1a, 0x04, 0x07, 0x8b, 0xea, 0x7a, 0x02, 0x2a, - 0xff, 0xec, 0xa2, 0x8a, 0xa2, 0xca, 0xc2, 0xdb, 0x13, 0x01, 0x06, 0x9b, 0xc8, 0x20, 0x08, 0xee, - 0x08, 0xf2, 0xc8, 0x20, 0xe0, 0x20, 0x08, 0xee, 0xc8, 0x0d, 0x08, 0xf0, 0x07, 0x8d, 0x08, 0xec, - 0xe0, 0x20, 0xe0, 0x18, 0x02, 0x65, 0x58, 0x00, 0x04, 0x58, 0x02, 0x45, 0xa7, 0xff, 0x03, 0x80, - 0xc0, 0x60, 0x05, 0xee, 0x02, 0x21, 0x03, 0xe8, 0x01, 0x20, 0x01, 0x02, 0x00, 0x06, 0x16, 0x07, - 0x88, 0x01, 0x05, 0xee, 0x16, 0xf9, 0x10, 0x39, 0xd0, 0x60, 0x01, 0x03, 0x13, 0xf1, 0x02, 0x01, - 0x01, 0x0a, 0xcc, 0x4c, 0xcc, 0x4c, 0xcc, 0x4e, 0xcc, 0x4f, 0x07, 0xb1, 0x00, 0x40, 0xcc, 0x4d, - 0xc8, 0x0a, 0x01, 0x00, 0x04, 0x5b, 0xc0, 0x60, 0x05, 0xee, 0x02, 0x21, 0x03, 0xe8, 0x01, 0x20, - 0x01, 0x02, 0x00, 0x06, 0x16, 0x07, 0x88, 0x01, 0x05, 0xee, 0x16, 0xf9, 0x10, 0x1e, 0xd0, 0x60, - 0x01, 0x03, 0x13, 0xf1, 0x02, 0x01, 0x01, 0x0a, 0xcc, 0x4c, 0xcc, 0x4c, 0xcc, 0x4e, 0xcc, 0x4f, - 0x07, 0xb1, 0x00, 0x40, 0xcc, 0x4d, 0xc8, 0x0a, 0x01, 0x00, 0x03, 0xa0, 0xd0, 0x60, 0x01, 0x03, - 0x13, 0x01, 0x04, 0x5b, 0xc0, 0x60, 0x05, 0xee, 0x02, 0x21, 0x03, 0xe8, 0x01, 0x20, 0x01, 0x02, - 0x00, 0x06, 0x16, 0xf7, 0x88, 0x01, 0x05, 0xee, 0x16, 0xf9, 0x04, 0xcd, 0x07, 0x8a, 0x40, 0x00, - 0xc3, 0x20, 0x01, 0x00, 0x01, 0x0c, 0x80, 0x00, 0x13, 0x02, 0x07, 0x8a, 0x20, 0x00, 0xc3, 0xa0, - 0x01, 0x0e, 0xc3, 0xe0, 0x01, 0x10, 0x03, 0xb0, 0xc3, 0x20, 0x07, 0x58, 0x23, 0x20, 0xe0, 0x04, - 0x13, 0x02, 0x04, 0x60, 0xc4, 0xec, 0x04, 0x60, 0xb3, 0x8a, 0x07, 0x8d, 0x20, 0x00, 0x20, 0x20, - 0xe0, 0x0a, 0x16, 0x01, 0x04, 0x5b, 0x02, 0x0d, 0x0c, 0x32, 0xc2, 0x5d, 0x11, 0x01, 0x04, 0xdd, - 0x05, 0xcd, 0x88, 0x0d, 0x0c, 0x30, 0x16, 0xf9, 0xc2, 0x60, 0x06, 0x0a, 0x07, 0x8d, 0x09, 0x6a, - 0x06, 0xa0, 0xcc, 0x24, 0x02, 0x09, 0x00, 0x6e, 0xc3, 0xe0, 0x09, 0x30, 0x16, 0x03, 0x01, 0xe0, - 0x09, 0x6a, 0x00, 0x10, 0xc2, 0xe0, 0x09, 0x6a, 0x02, 0x0f, 0x01, 0x00, 0x26, 0xc9, 0x13, 0x02, - 0x04, 0x60, 0xca, 0xb6, 0x02, 0x09, 0x12, 0x00, 0x01, 0x4b, 0x00, 0x10, 0x13, 0x02, 0x02, 0x09, - 0x13, 0x00, 0xd8, 0x09, 0x09, 0x2e, 0x07, 0x8f, 0x40, 0x00, 0x07, 0x89, 0x09, 0x6c, 0x04, 0xcb, - 0xe2, 0xf9, 0xe2, 0xf9, 0xe2, 0xf9, 0x16, 0x07, 0x07, 0x8b, 0x09, 0x34, 0x07, 0x8c, 0x09, 0x6c, - 0xcf, 0x3b, 0xcf, 0x3b, 0xc7, 0x1b, 0xc3, 0x20, 0x09, 0x6c, 0x11, 0x19, 0x07, 0x8f, 0x20, 0x00, - 0x07, 0x89, 0x09, 0x7a, 0x06, 0xa0, 0xc8, 0x98, 0x06, 0xa0, 0xc8, 0x98, 0x10, 0x12, 0xce, 0x4c, - 0x04, 0x5b, 0xc3, 0x19, 0x16, 0x02, 0x07, 0x8c, 0x00, 0x1a, 0xc3, 0x4c, 0x02, 0x2d, 0xff, 0xf8, - 0x02, 0x0a, 0x00, 0x09, 0x02, 0x2d, 0xff, 0xfa, 0x13, 0xf2, 0x06, 0x0a, 0x16, 0xfb, 0x04, 0x60, - 0xca, 0xb6, 0x07, 0x8f, 0x10, 0x00, 0xc2, 0xd9, 0x11, 0xfa, 0x16, 0x02, 0x07, 0x8b, 0x04, 0x00, - 0xc3, 0x4b, 0x02, 0x8d, 0x00, 0x20, 0x14, 0x02, 0x02, 0x0d, 0x00, 0x20, 0x02, 0x8d, 0x04, 0x00, - 0x12, 0x02, 0x02, 0x0d, 0x04, 0x00, 0x02, 0x2d, 0xff, 0xf8, 0xc8, 0x0d, 0x09, 0x2c, 0x02, 0x2b, - 0x03, 0xff, 0x01, 0x8b, 0x03, 0xff, 0xce, 0x4b, 0x04, 0xcb, 0x04, 0xe0, 0x05, 0xf8, 0x04, 0xe0, - 0x09, 0x66, 0xc8, 0x20, 0x0c, 0x30, 0x09, 0x80, 0x07, 0xa0, 0x09, 0x82, 0xdf, 0xfe, 0x07, 0x8d, - 0xdf, 0xfe, 0xc3, 0xe0, 0x07, 0xd8, 0x23, 0xe0, 0xe0, 0x16, 0x16, 0x24, 0xc3, 0xe0, 0x0c, 0x30, - 0x63, 0x4f, 0x04, 0xff, 0x04, 0xff, 0x06, 0x4d, 0x16, 0xfd, 0x07, 0x8d, 0xdf, 0xfe, 0x04, 0x20, - 0xea, 0x62, 0xc3, 0xa0, 0xea, 0x62, 0xc3, 0xee, 0x00, 0x12, 0x16, 0xc1, 0xc3, 0x6e, 0x00, 0x18, - 0x09, 0xad, 0x07, 0x8c, 0xe0, 0x00, 0x09, 0xac, 0x63, 0x0d, 0x13, 0x0c, 0xc3, 0x6e, 0x00, 0x18, - 0x09, 0xad, 0x02, 0x2d, 0x00, 0x40, 0x0a, 0x1d, 0x02, 0x2d, 0x0c, 0x32, 0x07, 0xbd, 0x7f, 0xff, - 0x06, 0x0c, 0x16, 0xfc, 0xc3, 0x20, 0x04, 0x46, 0x02, 0x8c, 0x00, 0x80, 0x1a, 0x13, 0x02, 0xac, - 0xc8, 0x0c, 0x00, 0x9a, 0x02, 0xe0, 0x00, 0x80, 0x07, 0x88, 0x00, 0x80, 0xc2, 0x60, 0x04, 0x46, - 0x06, 0xa0, 0xf4, 0xd2, 0x10, 0x02, 0x00, 0x9d, 0x10, 0x05, 0x00, 0x9d, 0x07, 0x8f, 0x08, 0x00, - 0x04, 0x60, 0xca, 0xb6, 0x2d, 0x4b, 0xc3, 0x81, 0x05, 0xc9, 0x07, 0x8f, 0x10, 0x00, 0x02, 0x8e, - 0x00, 0x02, 0x11, 0xf6, 0x07, 0x8f, 0x04, 0x00, 0x05, 0xc9, 0xc2, 0xd9, 0x26, 0xe0, 0xe0, 0x26, - 0x16, 0x02, 0x02, 0x2b, 0x00, 0x06, 0xc6, 0x4b, 0xc3, 0x4b, 0x72, 0xcb, 0x02, 0x2e, 0xff, 0xfe, - 0x83, 0x8b, 0x1b, 0xe6, 0x06, 0xcd, 0x73, 0x4d, 0x82, 0xcd, 0x1b, 0xe2, 0x04, 0xe0, 0x09, 0x1a, - 0x04, 0xe0, 0x09, 0x1c, 0xc3, 0x4d, 0x13, 0x02, 0x66, 0x60, 0xe0, 0x12, 0x05, 0xc9, 0x04, 0xcf, - 0x2d, 0x81, 0xc8, 0x01, 0x01, 0x6c, 0x13, 0xd4, 0xc8, 0x0f, 0xfc, 0x00, 0xc3, 0xc1, 0x06, 0x0d, - 0x15, 0xf7, 0x02, 0x0d, 0x07, 0x36, 0x02, 0x0e, 0x08, 0x98, 0x02, 0x0c, 0x00, 0x03, 0xcb, 0x8d, - 0x00, 0x02, 0x2d, 0x81, 0xcb, 0x81, 0x00, 0x06, 0x13, 0xc3, 0x04, 0xee, 0x00, 0x0c, 0x02, 0x2e, - 0x00, 0x18, 0x06, 0x0c, 0x16, 0xf4, 0x04, 0xe0, 0x08, 0x96, 0x2e, 0x1f, 0xc3, 0xb9, 0xc3, 0xd9, - 0x07, 0x89, 0x00, 0x12, 0x07, 0x8d, 0x09, 0x3a, 0x06, 0xa0, 0xcc, 0x24, 0xc3, 0x60, 0x07, 0xd8, - 0x23, 0x60, 0xe0, 0x16, 0x16, 0x09, 0xe8, 0x20, 0xe0, 0x10, 0x09, 0x6a, 0xe8, 0x20, 0xe0, 0x18, - 0x07, 0x98, 0xe8, 0x20, 0xe0, 0x12, 0x07, 0x78, 0xc3, 0x60, 0x09, 0x6a, 0x23, 0x60, 0xe0, 0x1e, - 0x16, 0x03, 0x48, 0x20, 0xe3, 0xa4, 0x09, 0x6a, 0x23, 0x60, 0xe0, 0x22, 0x13, 0x06, 0x27, 0x60, - 0xe3, 0xa6, 0x13, 0x03, 0xe8, 0x20, 0xe0, 0x10, 0x09, 0x6a, 0x2d, 0x20, 0x00, 0x00, 0x07, 0x8e, - 0x00, 0x00, 0x06, 0xa0, 0xcc, 0x04, 0x05, 0x4e, 0x2c, 0x0e, 0xc0, 0xa0, 0x08, 0x04, 0xc3, 0xef, - 0x00, 0x06, 0x16, 0x1b, 0xc3, 0xa0, 0x09, 0x72, 0xc3, 0xe0, 0x09, 0x74, 0x06, 0xa0, 0xca, 0xf2, - 0xc3, 0xa0, 0x09, 0x76, 0xc3, 0xe0, 0x09, 0x78, 0x06, 0xa0, 0xcb, 0x10, 0xe0, 0x20, 0xe0, 0x0a, - 0xc3, 0x60, 0x07, 0xd8, 0x23, 0x60, 0xe0, 0x16, 0x16, 0x05, 0x04, 0xe0, 0x06, 0x2e, 0x41, 0x60, - 0xe0, 0x04, 0x2e, 0x4d, 0x07, 0x8d, 0x80, 0x00, 0x04, 0x52, 0x73, 0xcf, 0x02, 0x2f, 0x02, 0x00, - 0xc3, 0x4f, 0x04, 0x52, 0x20, 0x20, 0xe0, 0x0a, 0x13, 0x03, 0x07, 0x8d, 0x10, 0x00, 0x04, 0x5b, - 0x40, 0x20, 0xe0, 0x0a, 0x02, 0x40, 0xf0, 0xff, 0x07, 0x8e, 0x00, 0x02, 0x06, 0xa0, 0xcc, 0x04, - 0x05, 0x4e, 0x2c, 0x0e, 0xc0, 0xa0, 0x08, 0x04, 0x06, 0xa0, 0xcb, 0xe4, 0xc3, 0x60, 0x07, 0xd8, - 0x23, 0x60, 0xe0, 0x16, 0x16, 0x66, 0x04, 0x20, 0xea, 0x76, 0x10, 0x63, 0x02, 0x6e, 0x80, 0x00, - 0x07, 0x8d, 0xc0, 0x00, 0xc8, 0x0d, 0x01, 0xa6, 0xc8, 0x0e, 0x09, 0x72, 0xc8, 0x0f, 0x09, 0x74, - 0xc8, 0x0e, 0x01, 0xa8, 0xc8, 0x0f, 0x01, 0xaa, 0x10, 0x12, 0x01, 0x8f, 0x00, 0x01, 0x07, 0x8a, - 0x09, 0x76, 0xe3, 0xa0, 0x09, 0x4e, 0xce, 0x8e, 0x01, 0x9a, 0xff, 0xfe, 0xe3, 0xe0, 0x09, 0x50, - 0xe6, 0x8f, 0x07, 0x8a, 0x01, 0xac, 0xce, 0x8e, 0x01, 0x9a, 0xff, 0xfe, 0xe6, 0x8f, 0x20, 0x20, - 0xe0, 0x0a, 0x13, 0x3f, 0x07, 0x8d, 0x10, 0x00, 0x04, 0x5b, 0x20, 0x20, 0xe0, 0x0a, 0x13, 0x03, - 0x02, 0x0d, 0x10, 0x00, 0x04, 0x5b, 0xc3, 0x8e, 0x13, 0x04, 0x01, 0xe0, 0x09, 0x50, 0x01, 0x00, - 0x10, 0x06, 0x01, 0xa0, 0x09, 0x50, 0x01, 0x00, 0x01, 0xa0, 0x09, 0x78, 0x01, 0x00, 0xc3, 0xa0, - 0x09, 0x76, 0xc3, 0xe0, 0x09, 0x78, 0xe3, 0xa0, 0x09, 0x4e, 0xe3, 0xe0, 0x09, 0x50, 0xc8, 0x0e, - 0x01, 0xac, 0xc8, 0x0f, 0x01, 0xae, 0xc8, 0x0e, 0x09, 0x76, 0xc8, 0x0f, 0x09, 0x78, 0x10, 0x19, - 0x02, 0x6e, 0x80, 0x00, 0xc8, 0x0e, 0x01, 0xa6, 0x20, 0x20, 0xe0, 0x0a, 0x13, 0x12, 0x02, 0x0d, - 0x10, 0x00, 0x04, 0x5b, 0x07, 0x8d, 0x07, 0x28, 0x07, 0x89, 0x00, 0x0e, 0x06, 0xa0, 0xcc, 0x2a, - 0x07, 0x8d, 0x07, 0x28, 0x04, 0xfd, 0x02, 0x8d, 0x07, 0x36, 0x16, 0xfc, 0x48, 0x20, 0xe0, 0x14, - 0x06, 0xfe, 0x07, 0x8d, 0x80, 0x00, 0x04, 0x52, 0xc2, 0xa0, 0x07, 0xee, 0x07, 0x8c, 0x00, 0x04, - 0x07, 0x8d, 0x08, 0xf0, 0x06, 0x97, 0xc2, 0x7d, 0xc3, 0x5d, 0x43, 0x60, 0xe0, 0x22, 0x06, 0xa0, - 0xcc, 0x2a, 0x10, 0xef, 0xc8, 0x0e, 0x06, 0x06, 0xc8, 0x0f, 0x06, 0x08, 0x10, 0xea, 0x03, 0xb0, - 0x01, 0xa0, 0x07, 0x60, 0x00, 0x26, 0x02, 0x40, 0xc0, 0x00, 0x04, 0xe0, 0x06, 0x06, 0x07, 0x8c, - 0x40, 0x10, 0x44, 0xcc, 0x04, 0xe0, 0x06, 0xfe, 0x07, 0x85, 0x80, 0x40, 0x04, 0x5b, 0xc8, 0x02, - 0x08, 0x04, 0x07, 0x8f, 0x07, 0xfa, 0xcb, 0xce, 0x00, 0x02, 0x07, 0x8e, 0x07, 0x36, 0xcb, 0xce, - 0x00, 0x04, 0x07, 0x8d, 0x06, 0x30, 0x07, 0x8e, 0x00, 0x10, 0x2c, 0x4d, 0x04, 0x5b, 0xc2, 0xa0, - 0x07, 0xf2, 0x10, 0x02, 0xc2, 0xa0, 0x07, 0xf8, 0xc8, 0x0b, 0x08, 0xea, 0xc3, 0x09, 0x13, 0x0a, - 0x06, 0xa0, 0xc7, 0x94, 0xc2, 0xa0, 0x01, 0x00, 0xe2, 0xa0, 0xe0, 0x06, 0xa3, 0x4c, 0xa3, 0xcc, - 0x17, 0x01, 0x05, 0x8e, 0x62, 0x4c, 0xc2, 0xe0, 0x08, 0xea, 0x04, 0x5b, 0x07, 0x8d, 0x10, 0x00, - 0x20, 0x20, 0xe0, 0x0a, 0x13, 0x01, 0x04, 0x5b, 0x02, 0x0d, 0x00, 0x6e, 0xc3, 0xe0, 0x09, 0x30, - 0x16, 0x02, 0x01, 0xce, 0x00, 0x10, 0x27, 0x8d, 0x13, 0x03, 0x02, 0x0d, 0x01, 0x00, 0x04, 0x52, - 0x03, 0x00, 0x00, 0x02, 0xc3, 0x60, 0x09, 0x6a, 0x02, 0x4d, 0x80, 0x08, 0x02, 0x4e, 0x7f, 0xf7, - 0xe3, 0x8d, 0xc3, 0xe0, 0x07, 0xd8, 0x23, 0xe0, 0xe0, 0x16, 0x13, 0x04, 0x07, 0x8d, 0x00, 0x06, - 0x27, 0x8d, 0x13, 0x02, 0xe3, 0xa0, 0xe0, 0x10, 0xc8, 0x0e, 0x09, 0x6a, 0x02, 0x0d, 0x12, 0x00, - 0x01, 0x4e, 0x00, 0x10, 0x13, 0x02, 0x02, 0x0d, 0x13, 0x00, 0xd8, 0x0d, 0x09, 0x2e, 0xc3, 0x60, - 0x01, 0x80, 0x02, 0x4e, 0x00, 0x01, 0x02, 0x4d, 0xff, 0xfe, 0xe3, 0x4e, 0xc8, 0x0d, 0x01, 0x80, - 0xd8, 0x20, 0xe2, 0x40, 0x09, 0x2f, 0x01, 0x20, 0x09, 0x6a, 0x00, 0x06, 0x13, 0x03, 0xd8, 0x20, - 0xe1, 0xd0, 0x09, 0x2f, 0x98, 0x20, 0x01, 0x83, 0xe2, 0x00, 0x13, 0x03, 0xd8, 0x20, 0x09, 0x2f, - 0x01, 0x83, 0x03, 0x00, 0x00, 0x0f, 0x04, 0x60, 0xcb, 0xb8, 0x20, 0x20, 0xe0, 0x0a, 0x13, 0x03, - 0x02, 0x0d, 0x10, 0x00, 0x04, 0x5b, 0x02, 0x09, 0x00, 0x08, 0x02, 0x0d, 0x09, 0x58, 0x06, 0xa0, - 0xcc, 0x24, 0x07, 0xa0, 0x02, 0x02, 0x00, 0x00, 0x02, 0x0d, 0x04, 0x00, 0xc3, 0xe0, 0x09, 0x58, - 0x01, 0x0f, 0x7c, 0x00, 0x13, 0x01, 0x04, 0x52, 0xc3, 0x8f, 0x02, 0x4e, 0x00, 0x0f, 0x13, 0xfb, - 0x02, 0x8e, 0x00, 0x0f, 0x13, 0xf8, 0x02, 0x0d, 0x40, 0x00, 0xc2, 0x4f, 0x09, 0x49, 0x02, 0x49, - 0x00, 0x3f, 0x01, 0x09, 0x00, 0x01, 0x16, 0xef, 0x02, 0x89, 0x00, 0x06, 0x1a, 0xec, 0x02, 0x89, - 0x00, 0x20, 0x14, 0xe9, 0x06, 0xc9, 0x09, 0x1f, 0x02, 0x4f, 0x40, 0x00, 0xe2, 0x4f, 0x02, 0x69, - 0x80, 0x00, 0xc8, 0x09, 0x09, 0x58, 0x02, 0x0f, 0xff, 0xff, 0xc2, 0x4e, 0x09, 0x1f, 0x06, 0x09, - 0x16, 0xfd, 0x05, 0x4f, 0x02, 0x0d, 0x20, 0x00, 0xc2, 0x60, 0x09, 0x5a, 0x13, 0xd4, 0x26, 0x4f, - 0x16, 0xd2, 0x02, 0x0d, 0x10, 0x00, 0xc2, 0x60, 0x09, 0x5c, 0x13, 0xcd, 0x26, 0x4f, 0x16, 0xcb, - 0x02, 0x0d, 0x30, 0x00, 0x88, 0x20, 0x09, 0x5a, 0x09, 0x5c, 0x13, 0xc5, 0xc3, 0xe0, 0x09, 0x5a, - 0xc2, 0x4e, 0x0a, 0x1f, 0x06, 0x09, 0x16, 0xfd, 0xe3, 0xe0, 0x09, 0x5e, 0xc8, 0x0f, 0x09, 0x5a, - 0xc3, 0xe0, 0x09, 0x5c, 0xc2, 0x4e, 0x0a, 0x1f, 0x06, 0x09, 0x16, 0xfd, 0xe3, 0xe0, 0x09, 0x5e, - 0xc8, 0x0f, 0x09, 0x5c, 0x02, 0x0f, 0xff, 0xff, 0xc2, 0x4e, 0x0a, 0x1f, 0x06, 0x09, 0x16, 0xfd, - 0x02, 0x0d, 0x08, 0x00, 0xc2, 0x60, 0x09, 0x5e, 0x26, 0x4f, 0x16, 0xa5, 0x05, 0x4f, 0xc8, 0x0f, - 0x09, 0x5e, 0x02, 0x0f, 0x02, 0x02, 0x02, 0x0e, 0x00, 0x03, 0xc3, 0x60, 0x01, 0x40, 0x02, 0x0c, - 0xce, 0x26, 0x01, 0xa0, 0x01, 0x40, 0x04, 0x00, 0x05, 0xcf, 0x02, 0x09, 0x55, 0x55, 0x06, 0x9c, - 0x05, 0x49, 0x06, 0x9c, 0x07, 0x09, 0x06, 0x9c, 0x05, 0x49, 0x06, 0x9c, 0x06, 0x0e, 0x16, 0xf4, - 0x01, 0xa0, 0x01, 0x40, 0x40, 0x00, 0xc8, 0x0d, 0x01, 0x40, 0x02, 0x09, 0x00, 0x08, 0x02, 0x0e, - 0x09, 0x58, 0x02, 0x0f, 0x02, 0x02, 0xcf, 0xfe, 0x06, 0x49, 0x16, 0xfd, 0x04, 0x60, 0xcb, 0xb8, - 0xc7, 0xc9, 0x82, 0x5f, 0x16, 0x01, 0x04, 0x5b, 0x01, 0xa0, 0x01, 0x40, 0x40, 0x00, 0xc8, 0x0d, - 0x01, 0x40, 0x02, 0x0d, 0x01, 0x00, 0x04, 0x52, 0x00, 0x00, 0xd8, 0xee, 0x00, 0x92, 0xc2, 0xad, - 0x00, 0x02, 0xc2, 0x6d, 0x00, 0x00, 0x16, 0x05, 0x07, 0xaa, 0x00, 0x02, 0x07, 0x36, 0x2c, 0x9a, - 0x03, 0x80, 0x2c, 0xea, 0x00, 0x02, 0xcb, 0x41, 0x00, 0x00, 0x03, 0x80, 0xc3, 0x2d, 0x00, 0x18, - 0x07, 0xac, 0x00, 0x02, 0x07, 0x36, 0x4b, 0x20, 0xea, 0xa6, 0x00, 0x0a, 0xeb, 0x20, 0xea, 0xa0, - 0x00, 0x0a, 0x2e, 0x9c, 0x03, 0x80, 0xc2, 0xa0, 0xe0, 0x22, 0x04, 0x60, 0xb3, 0x8a, 0xc0, 0xed, - 0x00, 0x18, 0x06, 0xa0, 0xd9, 0x5e, 0x03, 0x80, 0xc2, 0x44, 0xc0, 0xc3, 0x13, 0x02, 0x06, 0xa0, - 0xd9, 0x5e, 0xc3, 0x19, 0xcb, 0x09, 0x00, 0x18, 0x05, 0xc9, 0xcb, 0x19, 0x00, 0x16, 0xc2, 0x4c, - 0x02, 0x2c, 0x00, 0x1a, 0xcf, 0x0d, 0xcf, 0x0e, 0xc7, 0x0f, 0x00, 0x99, 0x04, 0x5b, 0x07, 0x8c, - 0x09, 0x0a, 0xc2, 0x9c, 0x22, 0xa0, 0xe0, 0x14, 0x13, 0x06, 0xc2, 0xa0, 0x07, 0x58, 0x22, 0xa0, - 0xe0, 0x20, 0x16, 0x01, 0x03, 0x80, 0xc1, 0x03, 0x04, 0xc3, 0x07, 0x8a, 0x00, 0x04, 0xa2, 0x84, - 0x00, 0x00, 0xd9, 0x80, 0x00, 0x0b, 0xcf, 0x3a, 0x00, 0x00, 0xd9, 0x8a, 0x00, 0xb2, 0x02, 0xe0, - 0x07, 0x58, 0x07, 0x8d, 0x09, 0x0a, 0xc8, 0x0b, 0x07, 0xc2, 0x06, 0xa0, 0xc5, 0xa2, 0xc2, 0xe0, - 0x07, 0xc2, 0xe0, 0x20, 0xe0, 0x20, 0x02, 0xe0, 0x07, 0xb8, 0x04, 0x5b, 0xc3, 0x2d, 0x00, 0x18, - 0xc2, 0x8c, 0xc2, 0x60, 0x01, 0x6c, 0xc8, 0x0a, 0x01, 0x6c, 0xc2, 0xe0, 0xfc, 0x00, 0x13, 0x02, - 0xc2, 0x8b, 0x10, 0xf9, 0xc8, 0x09, 0x01, 0x6c, 0x07, 0x8b, 0x05, 0xf8, 0xc2, 0x5b, 0x13, 0x0c, - 0x05, 0xcb, 0xc2, 0x5b, 0xc6, 0xca, 0xc2, 0xe0, 0x01, 0x6c, 0xc8, 0x09, 0x01, 0x6c, 0xc8, 0x0c, - 0xfc, 0x00, 0xc8, 0x0b, 0x01, 0x6c, 0x10, 0x02, 0xce, 0xcc, 0xc6, 0xca, 0xc2, 0xa0, 0x00, 0xe0, - 0x22, 0xa0, 0xe0, 0x1a, 0x16, 0x06, 0xe8, 0x20, 0xe0, 0x04, 0x07, 0x3a, 0x48, 0x20, 0xe0, 0x1a, - 0x00, 0xe0, 0x03, 0x80, 0xd3, 0xe0, 0xe3, 0xab, 0xc1, 0xe0, 0x06, 0xa8, 0x16, 0x05, 0x02, 0x07, - 0x06, 0xa2, 0x06, 0xa0, 0xc2, 0x96, 0x16, 0x0b, 0xc1, 0xe0, 0x06, 0xba, 0x16, 0x20, 0x02, 0x07, - 0x06, 0xb4, 0x06, 0xa0, 0xc2, 0x96, 0x13, 0x1b, 0x02, 0x07, 0x06, 0xb8, 0x10, 0x02, 0x02, 0x07, - 0x06, 0xa6, 0xc1, 0x60, 0xfc, 0x02, 0xc8, 0x25, 0x00, 0x0c, 0xfc, 0x02, 0xc9, 0xc5, 0x00, 0x0c, - 0x00, 0x00, 0xda, 0x3c, 0x00, 0x0b, 0xcd, 0xf5, 0x00, 0x00, 0xda, 0x46, 0x19, 0x3a, 0xc5, 0xf5, - 0x01, 0xb7, 0x00, 0x28, 0x02, 0x27, 0xff, 0xf4, 0x07, 0xa7, 0x00, 0x04, 0xdb, 0x48, 0x2e, 0x97, - 0x10, 0xd5, 0x03, 0x00, 0x00, 0x02, 0x06, 0xa0, 0xc2, 0xae, 0x03, 0x00, 0x00, 0x0f, 0x2c, 0x20, - 0xed, 0x48, 0x93, 0xe0, 0xe3, 0xab, 0x16, 0x03, 0x02, 0x81, 0x00, 0x16, 0x16, 0xc7, 0xc1, 0x21, - 0xea, 0xb0, 0x04, 0x54, 0x93, 0xe0, 0xe0, 0x10, 0x16, 0x03, 0xd2, 0xa0, 0xe3, 0xa8, 0x10, 0x0b, - 0xd3, 0xcf, 0x16, 0x09, 0x23, 0xa0, 0xe0, 0x08, 0x16, 0x06, 0x07, 0x84, 0x00, 0x20, 0xe8, 0x04, - 0x06, 0xd2, 0xd2, 0xa0, 0xe0, 0x0c, 0x04, 0x60, 0xdb, 0xc0, 0x04, 0x60, 0xde, 0x34, 0x10, 0x7b, - 0xc1, 0x22, 0x00, 0x04, 0x04, 0xe2, 0x00, 0x02, 0x04, 0x54, 0xc8, 0x02, 0x01, 0x6c, 0xa0, 0x82, - 0xc8, 0x22, 0x0c, 0x32, 0xfc, 0x00, 0x02, 0x02, 0xfc, 0x00, 0x93, 0xe0, 0xe3, 0xaa, 0x13, 0x70, - 0x06, 0xa0, 0xdc, 0xc6, 0x48, 0xa0, 0xe0, 0x04, 0x00, 0x0e, 0x02, 0x85, 0x00, 0x07, 0x13, 0x0e, - 0x01, 0x0e, 0x00, 0x03, 0x13, 0x0b, 0x23, 0xa0, 0xe0, 0x22, 0x16, 0x03, 0xd2, 0xa0, 0xe0, 0x0e, - 0x10, 0x02, 0xd2, 0xa0, 0xe3, 0xa8, 0x01, 0x8e, 0x00, 0x03, 0x10, 0x5a, 0xc8, 0x05, 0x06, 0xfc, - 0xc0, 0xc3, 0x16, 0x53, 0x43, 0xa0, 0xe0, 0x10, 0x88, 0x22, 0x00, 0x0e, 0x09, 0x6c, 0x16, 0x0a, - 0x88, 0x22, 0x00, 0x10, 0x09, 0x6e, 0x16, 0x06, 0x88, 0x22, 0x00, 0x12, 0x09, 0x70, 0x16, 0x02, - 0xe3, 0xa0, 0xe0, 0x10, 0x02, 0x85, 0x00, 0x09, 0x13, 0x02, 0x06, 0xa0, 0xe2, 0xe4, 0xa1, 0x45, - 0xc1, 0x65, 0xe3, 0xac, 0x04, 0x55, 0xc0, 0x62, 0x00, 0x04, 0xc8, 0x22, 0x00, 0x06, 0x01, 0x6c, - 0x02, 0x82, 0x04, 0x48, 0x1b, 0x02, 0x43, 0xa0, 0xe0, 0x0c, 0xc1, 0x22, 0x00, 0x0e, 0x04, 0x51, - 0xc0, 0x42, 0x04, 0xe1, 0x00, 0x02, 0xc0, 0xa2, 0x00, 0x0c, 0xc1, 0x22, 0x00, 0x0a, 0x21, 0x20, - 0xe0, 0x18, 0x13, 0x07, 0xc8, 0xa1, 0x00, 0x0a, 0x00, 0x0a, 0xc8, 0xa1, 0x00, 0x08, 0x00, 0x08, - 0x10, 0xe2, 0xc8, 0x22, 0x00, 0x06, 0x01, 0x6c, 0x06, 0xa0, 0xe1, 0xa2, 0x04, 0x60, 0xdb, 0x9e, - 0xc8, 0x02, 0x06, 0xd4, 0xc1, 0x62, 0x00, 0x02, 0xc1, 0x65, 0xe3, 0xce, 0x04, 0x55, 0x10, 0x0b, - 0x07, 0x85, 0x03, 0xf4, 0x04, 0xf5, 0xcd, 0x60, 0xed, 0x26, 0x06, 0xa0, 0xe3, 0xce, 0xe3, 0xa0, - 0xe0, 0x0c, 0x2e, 0xa0, 0x03, 0xf4, 0x04, 0x60, 0xda, 0x04, 0x06, 0xa0, 0xe0, 0x6e, 0x10, 0x0c, - 0x06, 0xa0, 0xe1, 0xa2, 0x10, 0x09, 0x06, 0xa0, 0xe3, 0x56, 0x10, 0x06, 0x06, 0xa0, 0xe1, 0xa2, - 0xc8, 0x03, 0x09, 0x2a, 0xd2, 0xa0, 0xe3, 0xaa, 0x06, 0xa0, 0xdc, 0x32, 0x92, 0xa0, 0xe0, 0x26, - 0x16, 0x0c, 0xd3, 0xe0, 0xe0, 0x26, 0x23, 0xe0, 0xe0, 0x14, 0x13, 0x0a, 0xc1, 0x0a, 0x83, 0xc4, - 0x13, 0x07, 0xc3, 0xc4, 0xc1, 0x24, 0xe3, 0xd2, 0x04, 0x54, 0x93, 0xca, 0x13, 0xdc, 0xd3, 0xca, - 0x03, 0xb0, 0xd8, 0x0f, 0x06, 0x59, 0x71, 0x04, 0xc1, 0x24, 0xe3, 0xde, 0x04, 0x54, 0x23, 0xa0, - 0xe0, 0x0c, 0x13, 0xd1, 0xc3, 0x4d, 0x13, 0xcf, 0x07, 0x86, 0x00, 0x02, 0x07, 0x84, 0x00, 0x26, - 0x23, 0x46, 0x13, 0x03, 0x06, 0x44, 0xa1, 0x86, 0x10, 0xfb, 0x43, 0x46, 0x10, 0xb9, 0x07, 0x85, - 0x07, 0x1c, 0x07, 0x86, 0x04, 0x1a, 0x6d, 0x76, 0x6d, 0x76, 0x6d, 0x76, 0x05, 0xc6, 0x6d, 0x76, - 0x6d, 0x76, 0x6d, 0x76, 0x07, 0x83, 0x90, 0x00, 0x10, 0xbe, 0xc3, 0x0b, 0x07, 0x86, 0x01, 0x00, - 0x07, 0x85, 0x80, 0x00, 0xc1, 0x20, 0x06, 0xd2, 0x13, 0x37, 0x04, 0xc4, 0xc0, 0x60, 0x06, 0xd2, - 0x20, 0x45, 0x13, 0x04, 0x05, 0x84, 0x09, 0x15, 0x16, 0xf9, 0x10, 0x2e, 0xd3, 0xcf, 0x16, 0x06, - 0x23, 0xe0, 0xe0, 0x14, 0x16, 0x03, 0x01, 0x0e, 0x00, 0x03, 0x13, 0x03, 0x04, 0xe0, 0x06, 0xd2, - 0x10, 0x23, 0xd0, 0x64, 0x07, 0x1c, 0xb0, 0x46, 0x18, 0x10, 0xd9, 0x01, 0x07, 0x1c, 0x23, 0x60, - 0xe0, 0x20, 0x13, 0x0b, 0x07, 0x81, 0x00, 0x18, 0xc0, 0x61, 0xe3, 0xee, 0x88, 0x11, 0xed, 0x26, - 0x13, 0x04, 0x02, 0x08, 0x80, 0x18, 0x06, 0xa0, 0xe0, 0x22, 0xd0, 0x64, 0x07, 0x28, 0xb0, 0x46, - 0x18, 0x08, 0xd9, 0x01, 0x07, 0x28, 0xb0, 0x46, 0x17, 0x04, 0x07, 0x83, 0x80, 0x40, 0x06, 0xa0, - 0xe3, 0x56, 0x48, 0x05, 0x06, 0xd2, 0x16, 0xca, 0xc1, 0x20, 0x09, 0x32, 0x16, 0x01, 0x04, 0x5c, - 0x02, 0x04, 0x00, 0x07, 0x06, 0x20, 0x09, 0x32, 0x02, 0x05, 0x01, 0x00, 0x10, 0xc7, 0xc3, 0x0b, - 0x04, 0xc5, 0xc0, 0x42, 0x04, 0xc7, 0xc2, 0x20, 0x01, 0x6c, 0xa1, 0xe1, 0x00, 0x04, 0xc8, 0x11, - 0x01, 0x6c, 0x16, 0xfb, 0xc8, 0x08, 0x01, 0x6c, 0x04, 0xc8, 0x43, 0xa0, 0xe0, 0x1a, 0xc1, 0x22, - 0x00, 0x0e, 0x15, 0x0d, 0x13, 0x0c, 0xe3, 0xa0, 0xe0, 0x1a, 0x06, 0xa0, 0xe3, 0x40, 0xc2, 0x08, - 0x13, 0x48, 0x02, 0x88, 0x00, 0x12, 0x1b, 0x45, 0x22, 0x20, 0xe0, 0x22, 0x13, 0x42, 0xc1, 0x02, - 0xa1, 0x08, 0x05, 0x08, 0x02, 0x28, 0xff, 0xf2, 0xa2, 0x07, 0x07, 0x83, 0x80, 0x01, 0x02, 0x88, - 0x00, 0x04, 0x11, 0x6e, 0xc2, 0x64, 0x00, 0x16, 0xd2, 0x49, 0x16, 0x02, 0x81, 0x02, 0x16, 0x31, - 0x01, 0x09, 0xf0, 0x00, 0x16, 0x28, 0xc1, 0x49, 0x71, 0x45, 0x04, 0xc3, 0x02, 0x85, 0x00, 0x09, - 0x13, 0x7c, 0x07, 0x83, 0x80, 0x02, 0xc1, 0xa4, 0x00, 0x14, 0x81, 0x88, 0x16, 0x76, 0x05, 0x83, - 0x02, 0x85, 0x00, 0x10, 0x1b, 0x13, 0x05, 0x83, 0x99, 0x49, 0xea, 0xd0, 0x13, 0x0a, 0x98, 0x09, - 0xe0, 0x0e, 0x16, 0x6b, 0x98, 0x25, 0xea, 0xd0, 0xe0, 0x0c, 0x16, 0x67, 0xc1, 0xe0, 0x06, 0xec, - 0x16, 0x64, 0x04, 0xc3, 0xc2, 0x52, 0x13, 0x0f, 0x07, 0x83, 0x80, 0x09, 0xc1, 0xe0, 0x09, 0x6a, - 0x01, 0x47, 0x10, 0x00, 0x16, 0x5a, 0xc0, 0xa0, 0x01, 0x6c, 0x06, 0xa0, 0xe1, 0xfa, 0x04, 0x60, - 0xdb, 0x9e, 0x04, 0x60, 0xdb, 0xa8, 0x07, 0x89, 0x07, 0x0e, 0x04, 0xc7, 0xd1, 0xe5, 0xea, 0xe1, - 0x13, 0x05, 0x06, 0xc7, 0x02, 0x27, 0xea, 0xf2, 0xce, 0x77, 0x15, 0xfe, 0xc0, 0x44, 0x02, 0x21, - 0x00, 0x18, 0x02, 0x28, 0xff, 0xfc, 0x13, 0x36, 0xc1, 0x91, 0xd1, 0x86, 0x13, 0x1f, 0x06, 0xc6, - 0x07, 0x87, 0x07, 0x0e, 0xc0, 0xf7, 0x02, 0x46, 0xbf, 0xff, 0x02, 0x43, 0x3f, 0xff, 0x91, 0xa0, - 0xed, 0x4d, 0x16, 0x09, 0x03, 0xb0, 0x98, 0x20, 0xe0, 0x0e, 0x06, 0x5d, 0x16, 0x0f, 0xc8, 0x21, - 0x00, 0x02, 0x07, 0x0c, 0x10, 0x17, 0x82, 0x47, 0x1b, 0x0c, 0x90, 0xc6, 0x16, 0xeb, 0x06, 0x47, - 0x04, 0xf7, 0x03, 0xb0, 0x98, 0x20, 0x06, 0x5d, 0x06, 0x57, 0x13, 0x0c, 0x07, 0x83, 0x80, 0x05, - 0x10, 0x1c, 0xc0, 0xd1, 0x20, 0xe0, 0xe0, 0x16, 0x16, 0x03, 0x07, 0x83, 0x80, 0x08, 0x10, 0x15, - 0x44, 0x60, 0xe0, 0x26, 0x71, 0x86, 0xa0, 0x46, 0x62, 0x06, 0x07, 0x83, 0x80, 0x05, 0xc2, 0x08, - 0x15, 0xcb, 0x16, 0x0b, 0x04, 0xc3, 0x07, 0x87, 0x07, 0x0e, 0xc0, 0x77, 0x82, 0x47, 0x1b, 0x05, - 0x20, 0x60, 0xe0, 0x06, 0x16, 0xfa, 0x07, 0x83, 0x80, 0x07, 0x04, 0x5c, 0x92, 0xa0, 0xe0, 0x0e, - 0x16, 0x11, 0xc8, 0x20, 0xe0, 0x20, 0x07, 0x08, 0x04, 0xe0, 0x01, 0x84, 0x05, 0x60, 0x07, 0x02, - 0x13, 0x3f, 0x48, 0x20, 0xe0, 0x06, 0x01, 0x82, 0x06, 0xa0, 0xe0, 0x18, 0x07, 0x83, 0xc0, 0x00, - 0x06, 0xa0, 0xe3, 0x56, 0xc8, 0x20, 0xe0, 0x1e, 0x07, 0x02, 0xe3, 0xa0, 0xe0, 0x04, 0x02, 0x08, - 0x80, 0x24, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x36, 0xc1, 0x20, 0x01, 0x84, 0x02, 0x44, 0x88, 0x00, - 0x13, 0x1e, 0x48, 0x04, 0x01, 0x84, 0x06, 0x20, 0x07, 0x02, 0x16, 0xf1, 0x23, 0xa0, 0xe0, 0x22, - 0x16, 0x05, 0x43, 0xa0, 0xe0, 0x22, 0xd2, 0xa0, 0xe0, 0x0e, 0x10, 0xd3, 0x23, 0xe0, 0xe0, 0x14, - 0x13, 0x04, 0x98, 0x20, 0xe3, 0xa9, 0x06, 0x65, 0x16, 0x06, 0x92, 0xa0, 0xe0, 0x0e, 0x13, 0xc9, - 0xd2, 0xa0, 0xe3, 0xa8, 0x10, 0xd7, 0x07, 0x83, 0x00, 0x02, 0x04, 0x60, 0xdb, 0xb8, 0xe8, 0x20, - 0xe0, 0x06, 0x01, 0x82, 0x06, 0xa0, 0xe0, 0x18, 0x07, 0x20, 0x07, 0x02, 0x43, 0xa0, 0xe0, 0x04, - 0xc8, 0x20, 0xe4, 0x6e, 0x01, 0x86, 0x88, 0x20, 0xe0, 0x20, 0x07, 0x08, 0x16, 0x03, 0xc8, 0x20, - 0xeb, 0x0a, 0x07, 0x08, 0x04, 0x60, 0xdb, 0xc0, 0x01, 0x0e, 0x00, 0x03, 0x13, 0x16, 0xd3, 0xcf, - 0x16, 0x08, 0x23, 0xa0, 0xe0, 0x20, 0x16, 0x03, 0xd2, 0xa0, 0xe3, 0xa8, 0x10, 0x02, 0xd2, 0xa0, - 0xe0, 0x0e, 0x01, 0x8e, 0x00, 0x03, 0x10, 0x09, 0xc1, 0x60, 0x01, 0x84, 0x21, 0x60, 0xe0, 0x0a, - 0x16, 0x04, 0x07, 0x83, 0x84, 0x00, 0x04, 0x60, 0xdb, 0xb8, 0xc8, 0x20, 0xe0, 0x2e, 0x01, 0x84, - 0x02, 0x08, 0x80, 0x06, 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x60, 0xdb, 0xc0, 0xe3, 0x60, 0xe0, 0x20, - 0x04, 0x60, 0xdb, 0xc0, 0x93, 0xe0, 0xe0, 0x26, 0x16, 0x10, 0x23, 0xa0, 0xe0, 0x08, 0x16, 0x0d, - 0x23, 0xa0, 0xe0, 0x06, 0x13, 0x02, 0xe3, 0x60, 0xe0, 0x1c, 0xe3, 0x60, 0xe0, 0x18, 0x43, 0xa0, - 0xe0, 0x06, 0x02, 0x08, 0x80, 0x3c, 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x60, 0xdb, 0xc0, 0x92, 0xa0, - 0xe3, 0xa8, 0x13, 0x03, 0x92, 0xa0, 0xe3, 0xa9, 0x16, 0x1e, 0x23, 0xe0, 0xe0, 0x14, 0x13, 0x08, - 0x98, 0x20, 0xe3, 0xa9, 0x06, 0x65, 0x13, 0x04, 0x07, 0x83, 0x00, 0x07, 0x04, 0x60, 0xdb, 0xb8, - 0xd2, 0xa0, 0xe0, 0x0e, 0xc8, 0x20, 0xe0, 0x20, 0x07, 0x08, 0x27, 0xa0, 0xe0, 0x04, 0x16, 0x0b, - 0xc8, 0x20, 0xe0, 0x1e, 0x07, 0x08, 0x93, 0xe0, 0xe3, 0xa8, 0x16, 0x05, 0x23, 0xa0, 0xe0, 0x12, - 0x13, 0x02, 0x06, 0x20, 0x07, 0x08, 0x04, 0x60, 0xdb, 0xc0, 0x23, 0xe0, 0xe0, 0x14, 0x13, 0x36, - 0x03, 0xb0, 0x98, 0x20, 0xe0, 0x0e, 0x06, 0x6f, 0x16, 0x0f, 0xd3, 0xcf, 0x16, 0x2f, 0xd2, 0xa0, - 0xe3, 0xa8, 0x04, 0x60, 0xdb, 0xc0, 0x92, 0xa0, 0xe0, 0x0c, 0x16, 0x28, 0x23, 0xe0, 0xe0, 0x14, - 0x13, 0xf6, 0x07, 0x83, 0x00, 0x06, 0x10, 0x07, 0x07, 0x83, 0x00, 0x05, 0x93, 0xe0, 0xe0, 0x0e, - 0x16, 0x02, 0x07, 0x83, 0x00, 0x07, 0x04, 0x60, 0xdb, 0xb8, 0xe3, 0x60, 0xe0, 0x12, 0x23, 0xe0, - 0xe0, 0x14, 0x13, 0x0d, 0x98, 0x20, 0xe0, 0x0c, 0x06, 0x65, 0x16, 0x03, 0xd8, 0x20, 0xe3, 0xa9, - 0x06, 0x65, 0x10, 0x0c, 0xc1, 0x20, 0x01, 0x84, 0x21, 0x20, 0xe0, 0x06, 0x16, 0xd6, 0x48, 0x20, - 0xe0, 0x06, 0x01, 0x84, 0x02, 0x08, 0x80, 0x30, 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x60, 0xdb, 0xc0, - 0x02, 0x04, 0x00, 0x64, 0x06, 0x04, 0x16, 0xfe, 0x04, 0x5b, 0xe3, 0xa0, 0xe0, 0x0a, 0xc2, 0x08, - 0x11, 0x02, 0x43, 0xa0, 0xe0, 0x0a, 0x42, 0x20, 0xe0, 0x04, 0x02, 0x28, 0xe3, 0xee, 0xc0, 0x58, - 0xc0, 0x02, 0x88, 0x11, 0xed, 0x26, 0x16, 0x03, 0x2c, 0xd1, 0xc0, 0x58, 0x04, 0xd1, 0xc0, 0x80, - 0x01, 0x0e, 0x10, 0x00, 0x13, 0x0f, 0xcc, 0x60, 0xed, 0x26, 0x05, 0xc8, 0xcc, 0x78, 0x16, 0x03, - 0x06, 0x41, 0xcc, 0x60, 0x06, 0xd6, 0xc4, 0x58, 0x16, 0x02, 0xc4, 0x60, 0x07, 0x00, 0x02, 0x21, - 0xff, 0xfa, 0x2c, 0x91, 0x04, 0x5b, 0xc3, 0x0b, 0x06, 0xa0, 0xe1, 0x0a, 0x06, 0xa0, 0xe0, 0xe4, - 0xc2, 0x08, 0x16, 0x05, 0xc2, 0x62, 0x00, 0x02, 0x26, 0x60, 0xe4, 0x68, 0x16, 0x0d, 0xc2, 0x42, - 0x05, 0xc9, 0xce, 0x60, 0xed, 0x4a, 0xc6, 0x60, 0xeb, 0x0c, 0x06, 0xa0, 0xe1, 0x4c, 0xca, 0x18, - 0x00, 0x0a, 0x46, 0x20, 0xe0, 0x26, 0x16, 0x04, 0xc0, 0xa0, 0x01, 0x6c, 0x2e, 0x12, 0x10, 0x1d, - 0xc1, 0x12, 0x13, 0x05, 0xc1, 0x60, 0x01, 0x6c, 0x2e, 0x14, 0xc8, 0x05, 0x01, 0x6c, 0x04, 0xd2, - 0x06, 0x48, 0x07, 0x84, 0x00, 0x02, 0xc1, 0x48, 0xc0, 0xa0, 0x01, 0x6c, 0xc0, 0x02, 0x06, 0xa0, - 0xe3, 0xce, 0xc5, 0x60, 0xfc, 0x02, 0x02, 0x07, 0x06, 0xa2, 0x02, 0x25, 0xff, 0xf4, 0xc8, 0x05, - 0xfc, 0x02, 0xc2, 0x20, 0x01, 0x6c, 0x06, 0xa0, 0xc2, 0x5a, 0x04, 0x5c, 0xc2, 0x42, 0x02, 0x29, - 0x00, 0x08, 0xc2, 0x39, 0x02, 0x48, 0xc0, 0x00, 0x02, 0x88, 0xc0, 0x00, 0x16, 0x08, 0x8e, 0x60, - 0xe0, 0x2e, 0x16, 0x05, 0x86, 0x60, 0xe0, 0x2e, 0x16, 0x02, 0x04, 0xc8, 0x04, 0x5b, 0x07, 0x08, - 0x04, 0x5b, 0x88, 0x20, 0xe1, 0x8e, 0x01, 0x6c, 0x16, 0x02, 0x04, 0x60, 0xdb, 0xa8, 0x04, 0x5b, - 0x07, 0x88, 0x01, 0xae, 0xe8, 0x20, 0xe0, 0x0e, 0x01, 0x80, 0x06, 0x08, 0x16, 0xfe, 0x48, 0x20, - 0xe0, 0x0e, 0x01, 0x80, 0x04, 0x5b, 0x04, 0xc2, 0x23, 0xa0, 0xe0, 0x0c, 0x16, 0x0a, 0x2f, 0x20, - 0x06, 0x30, 0x07, 0x82, 0xff, 0xdf, 0x2c, 0x02, 0x02, 0x82, 0x03, 0xf4, 0x16, 0xfa, 0x43, 0xa0, - 0xe0, 0x0c, 0x04, 0x5b, 0xc2, 0x42, 0x07, 0x88, 0x00, 0x0e, 0xa2, 0x09, 0x02, 0x29, 0x00, 0x08, - 0xce, 0x78, 0xce, 0x78, 0xce, 0x78, 0xce, 0x60, 0x09, 0x6c, 0xce, 0x60, 0x09, 0x6e, 0xce, 0x60, - 0x09, 0x70, 0x23, 0xa0, 0xe0, 0x1a, 0x16, 0x0f, 0xc2, 0x58, 0x02, 0x49, 0x1f, 0x80, 0x2a, 0x60, - 0xe0, 0x14, 0xe8, 0xa0, 0xe0, 0x04, 0x00, 0x0e, 0xc6, 0x09, 0x02, 0x49, 0x1f, 0x00, 0x06, 0xc9, - 0xa2, 0x09, 0xa8, 0x89, 0x00, 0x04, 0x02, 0x28, 0x00, 0x02, 0xc2, 0x58, 0x0a, 0x49, 0x02, 0x49, - 0xf0, 0x00, 0xd6, 0x09, 0x04, 0xe2, 0x00, 0x06, 0x04, 0x5b, 0x07, 0x00, 0xc0, 0x82, 0x13, 0x53, - 0xc0, 0xa0, 0x01, 0x6c, 0xc1, 0xa0, 0xfc, 0x06, 0x02, 0x46, 0x00, 0x0f, 0x02, 0x86, 0x00, 0x01, - 0x12, 0x3d, 0x88, 0x06, 0x06, 0xf2, 0x16, 0x12, 0x02, 0x01, 0xfc, 0x0e, 0x88, 0x31, 0x06, 0xf4, - 0x16, 0x0d, 0x88, 0x31, 0x06, 0xf6, 0x16, 0x0a, 0x88, 0x31, 0x06, 0xf8, 0x16, 0x07, 0x02, 0x86, - 0x00, 0x02, 0x16, 0x2c, 0x88, 0x20, 0x07, 0x0a, 0x06, 0xfa, 0x13, 0x28, 0xc1, 0x20, 0x09, 0x6a, - 0x01, 0x44, 0x08, 0x00, 0x13, 0x06, 0x02, 0x86, 0x00, 0x02, 0x16, 0x20, 0x01, 0x44, 0x00, 0x80, - 0x16, 0x1d, 0x07, 0x00, 0x23, 0xe0, 0xe0, 0x14, 0x16, 0x19, 0x02, 0x82, 0x00, 0x43, 0x13, 0x16, - 0x02, 0x00, 0xfc, 0x02, 0xc0, 0x40, 0x01, 0xb0, 0x00, 0x20, 0x01, 0x60, 0x09, 0x6a, 0x00, 0x01, - 0x16, 0x07, 0xa0, 0x60, 0x09, 0x2c, 0xcc, 0x60, 0x05, 0xee, 0xc4, 0x50, 0xc4, 0x20, 0x09, 0x2c, - 0x07, 0x80, 0x07, 0x36, 0x07, 0x81, 0x00, 0x40, 0x2c, 0x40, 0x04, 0xc0, 0x07, 0x84, 0x06, 0xf2, - 0xcd, 0x06, 0x02, 0x01, 0xfc, 0x0e, 0xcd, 0x31, 0xcd, 0x31, 0xcd, 0x31, 0xc5, 0x20, 0x07, 0x0a, - 0xc0, 0x00, 0x13, 0x01, 0x2e, 0x12, 0x04, 0xe0, 0x01, 0x6c, 0x04, 0x5b, 0xc8, 0x0b, 0x09, 0x22, - 0x06, 0xa0, 0xe2, 0x72, 0x02, 0x08, 0x80, 0x42, 0x06, 0xa0, 0xe0, 0x22, 0x02, 0x08, 0x80, 0x30, - 0x06, 0xa0, 0xe0, 0x22, 0xc2, 0xe0, 0x09, 0x22, 0x04, 0x5b, 0xc3, 0x0b, 0x48, 0x20, 0xeb, 0x0e, - 0x01, 0x82, 0x48, 0x20, 0xe4, 0x6c, 0x01, 0x80, 0x48, 0x20, 0xe0, 0x22, 0x01, 0xae, 0x48, 0x20, - 0xe0, 0x22, 0x09, 0x78, 0x43, 0x60, 0xe0, 0x18, 0x43, 0xa0, 0xe0, 0x08, 0x02, 0x08, 0x00, 0x42, - 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x5c, 0xc3, 0x0b, 0xe8, 0x20, 0xe0, 0x0e, 0x01, 0x82, 0xe8, 0x20, - 0xe0, 0x22, 0x01, 0xae, 0xe8, 0x20, 0xe0, 0x22, 0x09, 0x78, 0xe3, 0xa0, 0xe0, 0x08, 0xe3, 0x60, - 0xe0, 0x18, 0x43, 0xa0, 0xe0, 0x06, 0x02, 0x08, 0x80, 0x3c, 0x06, 0xa0, 0xe0, 0x22, 0x02, 0x08, - 0x80, 0x42, 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x5c, 0xc3, 0x0b, 0x07, 0x83, 0x68, 0x00, 0x06, 0xa0, - 0xe3, 0x56, 0x07, 0x83, 0x80, 0x10, 0x06, 0xa0, 0xe3, 0x56, 0x04, 0x5c, 0xc3, 0x0b, 0x06, 0xa0, - 0xe3, 0x40, 0xa2, 0x02, 0xc2, 0x68, 0x00, 0x14, 0x02, 0x29, 0xff, 0xfc, 0x13, 0x24, 0x02, 0x28, - 0x00, 0x18, 0x07, 0x87, 0x00, 0x0e, 0x07, 0x81, 0x07, 0x0e, 0x04, 0xf1, 0x06, 0x47, 0x15, 0xfd, - 0xc0, 0x58, 0x03, 0xb0, 0x78, 0x01, 0x06, 0x63, 0x02, 0x41, 0x00, 0x3f, 0x13, 0x0e, 0x02, 0x81, - 0x00, 0x1f, 0x1b, 0x0b, 0xa0, 0x41, 0xc0, 0x61, 0xe4, 0x4e, 0xc1, 0xf8, 0x06, 0xc7, 0x71, 0xc7, - 0x06, 0x47, 0xcc, 0x78, 0x06, 0x47, 0x15, 0xfd, 0x10, 0x04, 0xc0, 0x58, 0x06, 0xc1, 0x70, 0x41, - 0xa2, 0x01, 0xc2, 0x49, 0x15, 0xe5, 0x04, 0x5c, 0x23, 0xa0, 0xe0, 0x1a, 0x13, 0x02, 0x04, 0xc8, - 0x04, 0x5b, 0xc2, 0x22, 0x00, 0x14, 0x02, 0x48, 0x1f, 0x00, 0x06, 0xc8, 0x04, 0x5b, 0x02, 0x83, - 0x00, 0x0f, 0x1b, 0x17, 0xc1, 0xa0, 0x06, 0xd4, 0x13, 0x35, 0x02, 0x26, 0x00, 0x04, 0xcd, 0xa0, - 0xed, 0x26, 0xc5, 0x83, 0x13, 0x04, 0xc2, 0x4a, 0x0a, 0x39, 0xe0, 0xc9, 0xc5, 0x83, 0x07, 0x86, - 0x07, 0x36, 0x07, 0x87, 0x00, 0x10, 0xc2, 0x20, 0x06, 0xd4, 0x04, 0xe0, 0x06, 0xd4, 0x2c, 0x46, - 0x04, 0x5b, 0xc0, 0x60, 0x06, 0xfe, 0xc2, 0x20, 0x09, 0x6a, 0x02, 0x48, 0x60, 0x00, 0x22, 0x20, - 0xe0, 0x06, 0x16, 0x04, 0xe2, 0x20, 0xe0, 0x0a, 0xe2, 0x20, 0xe0, 0x18, 0x0a, 0x13, 0x18, 0x04, - 0x05, 0x41, 0x48, 0x03, 0x06, 0xfe, 0x10, 0x06, 0x02, 0x83, 0x00, 0x02, 0x16, 0x01, 0x09, 0x13, - 0xe8, 0x03, 0x06, 0xfe, 0x40, 0xc8, 0x40, 0xc1, 0x13, 0x05, 0x07, 0x88, 0x07, 0x36, 0x07, 0x89, - 0x40, 0x00, 0x2c, 0x48, 0x04, 0x5b, 0x04, 0xc9, 0xc1, 0x24, 0xeb, 0x24, 0xc1, 0x84, 0x71, 0x86, - 0x02, 0x26, 0xeb, 0xd6, 0x06, 0xc4, 0x71, 0x04, 0x02, 0x24, 0xeb, 0x4c, 0xd2, 0x14, 0x09, 0xc8, - 0xa2, 0x08, 0x03, 0xb0, 0xd8, 0x34, 0x06, 0x5f, 0x02, 0x47, 0x00, 0x0f, 0xa1, 0xc7, 0xc2, 0x28, - 0xeb, 0x12, 0x04, 0x58, 0xcd, 0x76, 0x06, 0x47, 0x16, 0xfd, 0x10, 0x32, 0xc2, 0x36, 0x10, 0x26, - 0x09, 0x17, 0xa1, 0x47, 0x10, 0x2d, 0x09, 0x17, 0x61, 0x47, 0x10, 0x2a, 0x43, 0xa0, 0xe0, 0x16, - 0x04, 0x5b, 0x43, 0xa0, 0xe0, 0x16, 0xc2, 0x49, 0x16, 0x03, 0xc2, 0x44, 0xc8, 0x06, 0x09, 0x22, - 0xc1, 0x27, 0xec, 0xe6, 0xc1, 0x84, 0x71, 0x86, 0x02, 0x26, 0xed, 0x1c, 0x06, 0xc4, 0x71, 0x04, - 0x02, 0x24, 0xed, 0x02, 0x10, 0xd3, 0xc1, 0x09, 0xc1, 0xa0, 0x09, 0x22, 0x04, 0xc9, 0x10, 0x10, - 0xc2, 0x36, 0xd5, 0x78, 0x41, 0x60, 0xe0, 0x22, 0x05, 0xc5, 0x10, 0x0a, 0xcd, 0x78, 0x06, 0x47, - 0x15, 0xfd, 0x10, 0x06, 0x23, 0xa0, 0xe0, 0x16, 0x16, 0xcd, 0xc2, 0x49, 0x16, 0xec, 0x10, 0xd6, - 0xe3, 0xa0, 0xe0, 0x16, 0x10, 0xbb, 0x02, 0x08, 0x80, 0x5a, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x3e, - 0x92, 0xa0, 0xe0, 0x0c, 0x16, 0x15, 0x02, 0x44, 0x5e, 0x00, 0x16, 0x14, 0x48, 0x20, 0xe4, 0x6c, - 0x01, 0x80, 0x06, 0xa0, 0xe2, 0x9e, 0xc8, 0x20, 0x01, 0x9e, 0x01, 0x9e, 0x2e, 0xe0, 0x00, 0x01, - 0x43, 0xa0, 0xe0, 0x18, 0xd2, 0xa0, 0xe0, 0x26, 0x07, 0x83, 0x00, 0x10, 0x06, 0xa0, 0xe3, 0x56, - 0x04, 0x60, 0xdb, 0xc0, 0x07, 0x84, 0x00, 0x08, 0x04, 0x60, 0xdb, 0x88, 0x07, 0x85, 0x02, 0x03, - 0xc8, 0x05, 0x06, 0xce, 0x43, 0xa0, 0xe0, 0x12, 0x04, 0xe0, 0x06, 0xfa, 0x06, 0xa0, 0xe2, 0xd0, - 0x02, 0x08, 0x80, 0x48, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x11, 0x27, 0xa0, 0xe0, 0x2c, 0x16, 0x04, - 0x02, 0x08, 0x80, 0x54, 0x06, 0xa0, 0xe0, 0x22, 0x07, 0x83, 0xa8, 0x00, 0x88, 0x20, 0x07, 0x08, - 0xe0, 0x20, 0x16, 0x02, 0x07, 0x83, 0xe8, 0x00, 0x06, 0xa0, 0xe3, 0x56, 0x02, 0x08, 0x00, 0x36, - 0x06, 0xa0, 0xe0, 0x22, 0xe8, 0x20, 0xe0, 0x0c, 0x01, 0x82, 0x23, 0xa0, 0xe0, 0x18, 0x13, 0x06, - 0xe3, 0xa0, 0xe0, 0x18, 0x2e, 0xe0, 0x00, 0x00, 0xc0, 0x41, 0x16, 0xfa, 0x06, 0xa0, 0xe1, 0x2e, - 0xc0, 0x82, 0x13, 0x02, 0x02, 0x4f, 0xff, 0x80, 0x04, 0xc4, 0xd1, 0x0f, 0x06, 0xc4, 0x04, 0x60, - 0xdb, 0x88, 0x06, 0xa0, 0xe5, 0x50, 0x02, 0x08, 0x80, 0x36, 0x07, 0xa0, 0x06, 0xd6, 0xe5, 0x3e, - 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x10, 0x06, 0xa0, 0xe5, 0x50, 0xd1, 0x20, 0x06, 0xce, 0x13, 0xe6, - 0x78, 0x20, 0xe0, 0x12, 0x06, 0xce, 0x10, 0xe2, 0xc1, 0x20, 0x04, 0x16, 0x0a, 0x14, 0x06, 0xc4, - 0x91, 0x0a, 0x16, 0x01, 0x04, 0x5b, 0x04, 0x60, 0xdb, 0xc0, 0x04, 0xca, 0x04, 0xcd, 0x04, 0xce, - 0x04, 0xcf, 0x04, 0xe0, 0x06, 0xa8, 0x04, 0xe0, 0x06, 0xba, 0x07, 0x84, 0x01, 0xa0, 0x07, 0x85, - 0x00, 0x10, 0x04, 0xf4, 0x06, 0x45, 0x15, 0xfd, 0x07, 0x84, 0x06, 0xd8, 0x07, 0x85, 0x07, 0x34, - 0x61, 0x44, 0x04, 0xf4, 0x06, 0x45, 0x15, 0xfd, 0x07, 0x84, 0x00, 0xc8, 0xc8, 0x04, 0x07, 0x00, - 0x07, 0x84, 0x7f, 0xff, 0xc8, 0x04, 0x06, 0xf0, 0x07, 0x84, 0x00, 0x06, 0xc8, 0x04, 0x06, 0xee, - 0x03, 0xb0, 0xd8, 0x20, 0xe0, 0x10, 0x06, 0x65, 0x04, 0x60, 0xdb, 0xc0, 0xf8, 0x20, 0xed, 0x71, - 0x01, 0x82, 0xc8, 0x20, 0xe0, 0x10, 0x06, 0xc6, 0xc8, 0x20, 0xe0, 0x20, 0x06, 0xc8, 0x2e, 0xe0, - 0x00, 0x00, 0x06, 0xa0, 0xe1, 0x2e, 0xc8, 0x20, 0x09, 0x6c, 0x01, 0xa0, 0xc8, 0x20, 0x09, 0x6e, - 0x01, 0xa2, 0xc8, 0x20, 0x09, 0x70, 0x01, 0xa4, 0xc8, 0x20, 0x09, 0x6e, 0x01, 0xb0, 0xc8, 0x20, - 0x09, 0x70, 0x01, 0xb2, 0xc8, 0x20, 0x09, 0x70, 0x06, 0xcc, 0xf8, 0x20, 0xed, 0x70, 0x01, 0x80, - 0x06, 0xa0, 0xe1, 0x18, 0x48, 0x20, 0xe0, 0x04, 0x01, 0x80, 0x04, 0xe0, 0x01, 0x9e, 0x02, 0x08, - 0x80, 0x12, 0x06, 0xa0, 0xe0, 0x22, 0x07, 0x84, 0x00, 0x0a, 0x07, 0x85, 0x03, 0xf4, 0x88, 0x20, - 0x06, 0xc6, 0xe0, 0x20, 0x1b, 0x04, 0x07, 0x84, 0x00, 0x1c, 0x07, 0x85, 0x03, 0xf8, 0x06, 0xa0, - 0xe3, 0xce, 0x07, 0x85, 0xe6, 0x42, 0xc8, 0x05, 0x03, 0xf8, 0x23, 0xa0, 0xe0, 0x0c, 0x13, 0x23, - 0xe3, 0xa0, 0xe0, 0x0c, 0x2e, 0xa0, 0x03, 0xf4, 0x10, 0x1e, 0x03, 0xb0, 0x98, 0x20, 0xe0, 0x10, - 0x06, 0x65, 0x16, 0x19, 0x02, 0x44, 0x5e, 0x00, 0x16, 0x04, 0x06, 0x20, 0x06, 0xc6, 0x16, 0xd7, - 0x10, 0x08, 0x03, 0xb0, 0x98, 0x20, 0xe0, 0x10, 0x06, 0x65, 0x16, 0x0d, 0x06, 0x20, 0x06, 0xc8, - 0x16, 0xc4, 0x01, 0x0e, 0x00, 0x03, 0x13, 0x03, 0x07, 0x83, 0x82, 0x00, 0x10, 0x02, 0x07, 0x83, - 0x00, 0x01, 0x04, 0x60, 0xdb, 0xb8, 0x04, 0x60, 0xdb, 0x9e, 0x01, 0x0e, 0x00, 0x03, 0x13, 0x0a, - 0x02, 0x08, 0x80, 0x0c, 0x06, 0xa0, 0xe0, 0x22, 0xe3, 0xe0, 0xe0, 0x14, 0xc8, 0x20, 0xe4, 0x6e, - 0x01, 0x86, 0x10, 0x26, 0x48, 0x20, 0xe0, 0x0c, 0x01, 0x82, 0x2e, 0xe0, 0x00, 0x01, 0xc1, 0x60, - 0x09, 0x1e, 0x0a, 0x35, 0xe8, 0x05, 0x01, 0x82, 0xc1, 0x20, 0x09, 0x6a, 0x01, 0x04, 0x00, 0x06, - 0x13, 0x06, 0xd8, 0x20, 0xe1, 0xd0, 0x09, 0x2f, 0xd8, 0x20, 0xe1, 0xd0, 0x01, 0x83, 0x21, 0x20, - 0xe0, 0x22, 0x16, 0x03, 0xe8, 0x20, 0xe0, 0x22, 0x01, 0x80, 0x21, 0x20, 0xe0, 0x04, 0x16, 0x04, - 0xe3, 0xa0, 0xe0, 0x14, 0x04, 0x60, 0xdf, 0xb6, 0x02, 0x08, 0x80, 0x00, 0x06, 0xa0, 0xe0, 0x22, - 0xe8, 0x20, 0xe0, 0x08, 0x01, 0x82, 0x04, 0x60, 0xdb, 0x9e, 0xc8, 0x20, 0xe4, 0x6e, 0x01, 0x86, - 0x02, 0x08, 0x80, 0x00, 0x06, 0xa0, 0xe0, 0x22, 0xc2, 0x20, 0x09, 0x1e, 0xa2, 0x08, 0x05, 0x08, - 0xc8, 0x28, 0xe0, 0x22, 0x06, 0xca, 0xc8, 0x20, 0xe0, 0x20, 0x06, 0xc6, 0xc8, 0x20, 0xe0, 0x20, - 0x06, 0xc8, 0xe3, 0x60, 0xe0, 0x16, 0x04, 0x60, 0xdb, 0xc0, 0xc1, 0x44, 0x02, 0x44, 0x5e, 0x00, - 0x16, 0xf8, 0x25, 0x60, 0xe4, 0x68, 0x16, 0x0f, 0x06, 0x20, 0x06, 0xc6, 0x16, 0xf2, 0x06, 0x20, - 0x06, 0xca, 0x13, 0x03, 0x05, 0xa0, 0x06, 0xcc, 0x10, 0xe6, 0x03, 0xb0, 0xd8, 0x20, 0xe0, 0x0c, - 0x06, 0x65, 0x04, 0x60, 0xdb, 0xc0, 0x06, 0x20, 0x06, 0xc8, 0x16, 0xe3, 0x88, 0x20, 0x09, 0x70, - 0x06, 0xcc, 0x16, 0x03, 0x07, 0x83, 0x00, 0x08, 0x10, 0x02, 0x07, 0x83, 0x00, 0x0c, 0x04, 0x60, - 0xdb, 0xb8, 0x04, 0x60, 0xdb, 0xc0, 0x23, 0xa0, 0xe0, 0x08, 0x13, 0x03, 0x23, 0x60, 0xe0, 0x12, - 0x16, 0x06, 0x03, 0xb0, 0xd8, 0x20, 0xe3, 0xa9, 0x06, 0x65, 0x04, 0x60, 0xdb, 0xc0, 0x02, 0x08, - 0x80, 0x00, 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x60, 0xdb, 0x9e, 0x02, 0x08, 0x80, 0x00, 0x06, 0xa0, - 0xe0, 0x22, 0xc8, 0x20, 0xe0, 0x1e, 0x06, 0xc6, 0xc8, 0x20, 0xe0, 0x1e, 0x06, 0xc8, 0xe3, 0x60, - 0xe0, 0x10, 0x04, 0x60, 0xdb, 0xc0, 0x23, 0xe0, 0xe0, 0x14, 0x13, 0x19, 0xc1, 0x44, 0x02, 0x44, - 0x1e, 0x00, 0x16, 0xf5, 0x25, 0x60, 0xe4, 0x68, 0x16, 0x06, 0x06, 0x20, 0x06, 0xc8, 0x16, 0xef, - 0x04, 0xc2, 0x04, 0x60, 0xec, 0x20, 0x02, 0x08, 0x80, 0x1e, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x07, - 0x06, 0x20, 0x06, 0xc6, 0x16, 0xe4, 0x07, 0x83, 0x00, 0x09, 0x06, 0xa0, 0xdb, 0xb8, 0x04, 0x60, - 0xdb, 0x9e, 0x04, 0xce, 0x04, 0xe0, 0x09, 0x2a, 0xd3, 0xe0, 0xe3, 0xaa, 0xc2, 0x8f, 0xc8, 0x20, - 0xe4, 0x70, 0x01, 0x86, 0x48, 0x20, 0xe0, 0x08, 0x01, 0x82, 0x07, 0x86, 0x00, 0x05, 0x07, 0x84, - 0x06, 0x72, 0xc1, 0x54, 0x13, 0x01, 0x2c, 0xd4, 0x02, 0x24, 0x00, 0x0a, 0x06, 0x06, 0x16, 0xf9, - 0x02, 0x08, 0x80, 0x2a, 0x06, 0xa0, 0xe0, 0x22, 0x2c, 0x20, 0xe0, 0x1a, 0x04, 0x60, 0xda, 0x6a, - 0x06, 0xa0, 0xe2, 0x72, 0x04, 0xcd, 0x23, 0xa0, 0xe0, 0x1c, 0x13, 0x0d, 0x01, 0x0e, 0x00, 0x03, - 0x13, 0x0a, 0xe3, 0xa0, 0xe0, 0x1c, 0x03, 0xb0, 0xd8, 0x20, 0xe0, 0x10, 0x06, 0x65, 0xd2, 0xa0, - 0xe0, 0x26, 0x04, 0xcf, 0x10, 0x08, 0x2d, 0x20, 0x00, 0x01, 0xc0, 0xe0, 0x09, 0x2a, 0x06, 0xa0, - 0xe3, 0x56, 0xd2, 0xa0, 0xe3, 0xab, 0x04, 0x60, 0xdb, 0xc0, 0x06, 0xa0, 0xe0, 0xe4, 0xc2, 0x08, - 0x13, 0x19, 0x07, 0x83, 0x80, 0x80, 0x23, 0xe0, 0xe0, 0x14, 0x13, 0x02, 0x07, 0x83, 0x00, 0x0a, - 0x04, 0x60, 0xdb, 0xb4, 0xc1, 0x20, 0x06, 0x06, 0x13, 0x0d, 0x06, 0xa0, 0xe0, 0xe4, 0xc2, 0x08, - 0x13, 0x09, 0x07, 0x83, 0x00, 0x0b, 0x23, 0xe0, 0xe0, 0x14, 0x16, 0x02, 0x07, 0x83, 0x80, 0x01, - 0x04, 0x60, 0xdb, 0xb4, 0x07, 0x83, 0x80, 0x0a, 0x04, 0x60, 0xdb, 0xa2, 0x93, 0xe0, 0xe0, 0x0e, - 0x13, 0x5e, 0x93, 0xe0, 0xe0, 0x10, 0x13, 0x17, 0x23, 0xe0, 0xe0, 0x14, 0x13, 0x04, 0x07, 0x83, - 0x00, 0x07, 0x04, 0x60, 0xdb, 0xb4, 0x07, 0x83, 0xa0, 0x00, 0x06, 0xa0, 0xe3, 0x56, 0x07, 0x83, - 0x48, 0x00, 0x06, 0xa0, 0xe3, 0x56, 0xd2, 0xa0, 0xe0, 0x10, 0xc8, 0x20, 0xe0, 0x1c, 0x06, 0xca, - 0xc8, 0x20, 0xe0, 0x20, 0x06, 0xcc, 0x06, 0xa0, 0xe2, 0x72, 0x02, 0x08, 0x80, 0x4e, 0x06, 0xa0, - 0xe0, 0x22, 0x23, 0xa0, 0xe0, 0x1c, 0x13, 0x20, 0x88, 0x20, 0x09, 0x6c, 0x07, 0x0e, 0x16, 0x1c, - 0x88, 0x20, 0x09, 0x6e, 0x07, 0x10, 0x16, 0x18, 0x88, 0x20, 0x09, 0x70, 0x07, 0x12, 0x16, 0x14, - 0x88, 0x20, 0x07, 0x0a, 0xe0, 0x22, 0x13, 0x10, 0x06, 0x20, 0x06, 0xca, 0x16, 0x38, 0xe3, 0xa0, - 0xe0, 0x20, 0x10, 0x06, 0x23, 0xe0, 0xe0, 0x14, 0x16, 0xca, 0xe3, 0xa0, 0xe0, 0x22, 0x04, 0xc2, - 0xd2, 0xa0, 0xe3, 0xaa, 0x04, 0x60, 0xdb, 0xa8, 0xc8, 0x20, 0xe0, 0x1c, 0x06, 0xca, 0x88, 0xa0, - 0x06, 0xdc, 0x00, 0x0e, 0x16, 0x10, 0x88, 0xa0, 0x06, 0xde, 0x00, 0x10, 0x16, 0x0c, 0x88, 0xa0, - 0x06, 0xe0, 0x00, 0x12, 0x16, 0x08, 0x06, 0x20, 0x06, 0xcc, 0x16, 0x19, 0xe8, 0x20, 0xe0, 0x0e, - 0x01, 0x82, 0xe3, 0xa0, 0xe0, 0x1e, 0xc8, 0x20, 0xe0, 0x20, 0x06, 0xcc, 0x10, 0x10, 0x23, 0xa0, - 0xe0, 0x10, 0x16, 0x08, 0xc1, 0x64, 0x00, 0x06, 0x21, 0x60, 0xe0, 0x0c, 0x13, 0x08, 0xd2, 0xa0, - 0xe3, 0xa8, 0x10, 0x05, 0x88, 0x20, 0x07, 0x0a, 0x07, 0x08, 0x12, 0x96, 0x10, 0x00, 0x04, 0x60, - 0xdb, 0xa8, 0x93, 0xe0, 0xe0, 0x0e, 0x13, 0x50, 0x93, 0xe0, 0xe3, 0xa9, 0x13, 0x4d, 0x93, 0xe0, - 0xe3, 0xa8, 0x13, 0x1c, 0x06, 0xa0, 0xe2, 0xd0, 0x23, 0xa0, 0xe0, 0x10, 0x13, 0x45, 0x23, 0xa0, - 0xe0, 0x08, 0x16, 0x06, 0xe3, 0x60, 0xe0, 0x1e, 0xc8, 0x20, 0xe0, 0x22, 0x07, 0x06, 0x10, 0x34, - 0x23, 0xe0, 0xe0, 0x14, 0x16, 0x31, 0xc1, 0x60, 0x09, 0x6a, 0x21, 0x60, 0xe0, 0x12, 0x16, 0x2c, - 0x06, 0xa0, 0xea, 0x34, 0x10, 0x31, 0xd2, 0xa0, 0xe3, 0xa8, 0x10, 0x2e, 0xe3, 0xa0, 0xe0, 0x12, - 0x06, 0xa0, 0xea, 0x34, 0xc1, 0x64, 0x00, 0x06, 0x21, 0x60, 0xe0, 0x0c, 0x13, 0x25, 0x88, 0x20, - 0x07, 0x0e, 0x06, 0xdc, 0x16, 0x14, 0x88, 0x20, 0x07, 0x10, 0x06, 0xde, 0x16, 0x10, 0x88, 0x20, - 0x07, 0x12, 0x06, 0xe0, 0x16, 0x0c, 0x98, 0x20, 0x06, 0xce, 0x06, 0xcf, 0x13, 0x15, 0x06, 0x20, - 0x06, 0xce, 0x16, 0x12, 0xe3, 0x60, 0xe0, 0x1a, 0xd2, 0xa0, 0xe0, 0x0c, 0x10, 0x0d, 0xe3, 0x60, - 0xe0, 0x1e, 0xc8, 0x20, 0xe0, 0x32, 0x07, 0x06, 0x06, 0xa0, 0xe2, 0x72, 0x02, 0x08, 0x80, 0x48, - 0x06, 0xa0, 0xe0, 0x22, 0xd2, 0xa0, 0xe3, 0xa9, 0x04, 0x60, 0xdb, 0xa8, 0x88, 0x22, 0x00, 0x0e, - 0x09, 0x6c, 0x1a, 0xc9, 0x1b, 0x0b, 0x88, 0x22, 0x00, 0x10, 0x09, 0x6e, 0x1a, 0xc4, 0x1b, 0x06, - 0x88, 0x22, 0x00, 0x12, 0x09, 0x70, 0x1a, 0xbf, 0x1b, 0x01, 0x04, 0x5b, 0xc1, 0x60, 0x01, 0x6c, - 0x02, 0x85, 0x00, 0x43, 0x13, 0xe1, 0x93, 0xe0, 0xe3, 0xa8, 0x16, 0xde, 0xc8, 0xa0, 0xed, 0x58, - 0x00, 0x02, 0x07, 0x84, 0x00, 0x0e, 0xc1, 0x42, 0xc0, 0xa0, 0x01, 0x6c, 0xc0, 0x02, 0x02, 0x25, - 0x00, 0x48, 0x07, 0x81, 0xea, 0x86, 0x07, 0x83, 0xae, 0x14, 0x04, 0x60, 0xed, 0x92, 0x02, 0x02, - 0xfc, 0x00, 0x10, 0xca, 0x98, 0x20, 0xe0, 0x0e, 0x06, 0x65, 0x16, 0x03, 0xd8, 0x20, 0xe3, 0xa8, - 0x06, 0x65, 0x93, 0xe0, 0xe3, 0xa9, 0x13, 0x0d, 0x23, 0xa0, 0xe0, 0x08, 0x16, 0x19, 0x23, 0xa0, - 0xe0, 0x10, 0x13, 0x16, 0xe3, 0x60, 0xe0, 0x1e, 0xc8, 0x20, 0xe0, 0x20, 0x07, 0x06, 0x06, 0xa0, - 0xe2, 0x72, 0x43, 0xa0, 0xe0, 0x18, 0x2e, 0xe0, 0x00, 0x01, 0xd2, 0xa0, 0xe0, 0x26, 0x07, 0x83, - 0x00, 0x10, 0x06, 0xa0, 0xe3, 0x56, 0x23, 0xe0, 0xe0, 0x14, 0x16, 0x02, 0x06, 0xa0, 0xe2, 0x54, - 0x43, 0xa0, 0xe0, 0x2c, 0xc8, 0x20, 0xe0, 0x20, 0x09, 0x24, 0x04, 0x60, 0xdb, 0xa8, 0x43, 0xa0, - 0xe0, 0x0e, 0xc1, 0xa0, 0x09, 0x24, 0x13, 0x02, 0x06, 0x20, 0x09, 0x24, 0x23, 0xe0, 0xe0, 0x14, - 0x13, 0x03, 0x23, 0xa0, 0xe0, 0x08, 0x16, 0x26, 0x02, 0x08, 0x80, 0x42, 0x06, 0xa0, 0xe0, 0x22, - 0x23, 0xa0, 0xe0, 0x08, 0x16, 0x1f, 0x23, 0xa0, 0xe0, 0x10, 0x16, 0x0a, 0xc1, 0x22, 0x00, 0x02, - 0x25, 0x20, 0xe4, 0x68, 0x16, 0x23, 0x07, 0x83, 0x80, 0x20, 0x06, 0xa0, 0xe3, 0x56, 0x10, 0x12, - 0x06, 0xa0, 0xe2, 0x72, 0x23, 0xe0, 0xe0, 0x14, 0x16, 0x02, 0x06, 0xa0, 0xe2, 0x54, 0xe3, 0x60, - 0xe0, 0x1e, 0xc8, 0x20, 0xe0, 0x20, 0x07, 0x06, 0x23, 0xa0, 0xe0, 0x08, 0x16, 0x03, 0x23, 0xa0, - 0xe0, 0x06, 0x13, 0x51, 0x98, 0x20, 0xe0, 0x0e, 0x06, 0x65, 0x16, 0x03, 0xd8, 0x20, 0xe3, 0xa8, - 0x06, 0x65, 0xc1, 0x22, 0x00, 0x02, 0x25, 0x20, 0xe4, 0x68, 0x13, 0x0e, 0x07, 0x83, 0x00, 0x20, - 0x06, 0xa0, 0xe3, 0x56, 0xc8, 0x22, 0x00, 0x0e, 0x06, 0xe6, 0xc8, 0x22, 0x00, 0x10, 0x06, 0xe8, - 0xc8, 0x22, 0x00, 0x12, 0x06, 0xea, 0x10, 0x37, 0x88, 0x22, 0x00, 0x0e, 0x06, 0xdc, 0x16, 0x08, - 0x88, 0x22, 0x00, 0x10, 0x06, 0xde, 0x16, 0x04, 0x88, 0x22, 0x00, 0x12, 0x06, 0xe0, 0x13, 0x0b, - 0xc8, 0x22, 0x00, 0x0e, 0x06, 0xdc, 0xc8, 0x22, 0x00, 0x10, 0x06, 0xde, 0xc8, 0x22, 0x00, 0x12, - 0x06, 0xe0, 0xe3, 0x60, 0xe0, 0x14, 0x23, 0xa0, 0xe0, 0x0e, 0x16, 0x08, 0xc1, 0xa0, 0x09, 0x24, - 0x16, 0x1a, 0x07, 0x86, 0x10, 0x00, 0xe8, 0x06, 0x06, 0xd2, 0x10, 0x15, 0xe3, 0xa0, 0xe0, 0x0e, - 0x23, 0xa0, 0xe0, 0x08, 0x16, 0x09, 0xe3, 0xa0, 0xe0, 0x06, 0x04, 0xe0, 0x06, 0xe6, 0x04, 0xe0, - 0x06, 0xe8, 0x04, 0xe0, 0x06, 0xea, 0x10, 0x07, 0x02, 0x08, 0x80, 0x36, 0x07, 0xa0, 0x06, 0xd6, - 0xdf, 0xe2, 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x60, 0xdb, 0xa8, 0x98, 0x20, 0x06, 0x65, 0xe0, 0x10, - 0x16, 0x03, 0xd8, 0x20, 0xe0, 0x0e, 0x06, 0x65, 0x04, 0x60, 0xdb, 0xa8, 0x23, 0xe0, 0xe0, 0x14, - 0x13, 0x02, 0x04, 0x60, 0xdb, 0xa8, 0x10, 0x2e, 0x03, 0xb0, 0x98, 0x20, 0xe3, 0xa9, 0x06, 0x6f, - 0x16, 0x19, 0xc2, 0x24, 0x00, 0x08, 0x11, 0x16, 0xe3, 0xe0, 0xe0, 0x14, 0x07, 0x83, 0x00, 0x00, - 0x06, 0xa0, 0xe3, 0x56, 0x23, 0xa0, 0xe0, 0x14, 0x13, 0x04, 0x02, 0x08, 0x80, 0x06, 0x06, 0xa0, - 0xe0, 0x22, 0x02, 0x08, 0x00, 0x1e, 0x06, 0xa0, 0xe0, 0x22, 0x23, 0xa0, 0xe0, 0x08, 0x13, 0x02, - 0x06, 0xa0, 0xe2, 0x54, 0xc0, 0x82, 0x16, 0x02, 0x04, 0x60, 0xdb, 0xc0, 0xe8, 0x20, 0xed, 0x74, - 0x06, 0xf0, 0x99, 0x20, 0xe0, 0x0e, 0x00, 0x16, 0x16, 0x05, 0x04, 0xe0, 0x06, 0xec, 0x48, 0x20, - 0xe0, 0x14, 0x06, 0xf0, 0x07, 0x83, 0x00, 0x01, 0x04, 0x60, 0xdb, 0xa2, 0xc2, 0x64, 0x00, 0x14, - 0x02, 0x24, 0x00, 0x18, 0xc1, 0xc4, 0x61, 0xc2, 0x02, 0x27, 0xff, 0xfc, 0xc1, 0x74, 0xc1, 0x85, - 0x71, 0x45, 0x02, 0x85, 0x00, 0x27, 0x16, 0x46, 0xc1, 0x54, 0x02, 0x45, 0xff, 0xcf, 0x16, 0x42, - 0x04, 0xc8, 0xc1, 0x64, 0x00, 0x08, 0x15, 0x06, 0x13, 0x05, 0xc2, 0x24, 0x00, 0x0e, 0x02, 0x48, - 0x1f, 0x00, 0x06, 0xc8, 0x02, 0x28, 0x00, 0x11, 0xa2, 0x04, 0x98, 0x18, 0xed, 0x79, 0x16, 0x32, - 0xc1, 0x42, 0x02, 0x25, 0x00, 0x04, 0x65, 0x47, 0xc2, 0x35, 0xcd, 0x74, 0x06, 0x48, 0x15, 0xfd, - 0xc0, 0xa0, 0x01, 0x6c, 0xc1, 0x02, 0xc8, 0x04, 0x01, 0x6c, 0xc1, 0xa0, 0xfc, 0x00, 0x13, 0x05, - 0xc8, 0x20, 0xeb, 0x10, 0xfc, 0x02, 0xc1, 0x06, 0x10, 0xf6, 0xc8, 0x02, 0x01, 0x6c, 0xc8, 0x20, - 0xed, 0x58, 0xfc, 0x02, 0x07, 0x81, 0xec, 0xfc, 0xc0, 0x04, 0x07, 0x83, 0x02, 0x10, 0x07, 0x84, - 0x00, 0x0e, 0x10, 0x3b, 0x07, 0x84, 0x00, 0x0c, 0xc0, 0xe2, 0x00, 0x08, 0x02, 0x05, 0xfc, 0x00, - 0xc0, 0xa0, 0x01, 0x6c, 0xc0, 0x02, 0xc1, 0xa0, 0xfc, 0x00, 0x13, 0x2f, 0x04, 0xe0, 0xfc, 0x00, - 0x2e, 0x16, 0x10, 0x2b, 0xc8, 0xa0, 0xed, 0x7a, 0x00, 0x0e, 0xc8, 0xa0, 0xed, 0x7c, 0x00, 0x10, - 0xc8, 0xa0, 0xed, 0x7e, 0x00, 0x12, 0x07, 0x83, 0x80, 0x06, 0x04, 0x60, 0xdb, 0xa2, 0x04, 0x60, - 0xdb, 0xc0, 0x07, 0x84, 0x00, 0x10, 0x07, 0x85, 0x00, 0x34, 0x10, 0x09, 0x07, 0x84, 0x00, 0x12, - 0x07, 0x85, 0x00, 0x32, 0x10, 0x04, 0x07, 0x84, 0x00, 0x14, 0x07, 0x85, 0x00, 0x38, 0x06, 0xa0, - 0xe1, 0x0a, 0xc8, 0x85, 0x00, 0x04, 0x06, 0xa0, 0xe1, 0x4c, 0xc8, 0xa0, 0xed, 0x58, 0x00, 0x02, - 0xc0, 0xa0, 0x01, 0x6c, 0xc0, 0x02, 0x06, 0x48, 0xc1, 0x48, 0x06, 0xa0, 0xe3, 0xce, 0x02, 0x07, - 0x06, 0xa2, 0xc5, 0x60, 0xfc, 0x02, 0x02, 0x25, 0xff, 0xf4, 0xc8, 0x05, 0xfc, 0x02, 0xc2, 0x20, - 0x01, 0x6c, 0x06, 0xa0, 0xc2, 0x5a, 0x04, 0x60, 0xdb, 0x9e, 0x06, 0xa0, 0xe3, 0xce, 0x02, 0x07, - 0x06, 0xb4, 0x10, 0xef, 0xc3, 0x0b, 0x03, 0x00, 0x00, 0x02, 0x07, 0x82, 0x00, 0xc0, 0xc8, 0x20, - 0x00, 0x0c, 0x00, 0xc0, 0xc8, 0x20, 0x00, 0x0e, 0x00, 0xc2, 0xc8, 0x20, 0x00, 0x10, 0x00, 0xc4, - 0xc8, 0x20, 0x00, 0x12, 0x00, 0xc6, 0xc8, 0x20, 0x00, 0x14, 0x00, 0xc8, 0xc8, 0x20, 0x00, 0x16, - 0x00, 0xca, 0xc8, 0x20, 0x00, 0x04, 0x00, 0xcc, 0xc8, 0x20, 0x00, 0x06, 0x00, 0xce, 0xc8, 0x02, - 0x00, 0x0c, 0x07, 0xa0, 0x00, 0x0e, 0xee, 0x3c, 0xc8, 0x02, 0x00, 0x10, 0x07, 0xa0, 0x00, 0x12, - 0xee, 0x46, 0xc8, 0x02, 0x00, 0x14, 0x07, 0xa0, 0x00, 0x16, 0xee, 0x76, 0xc8, 0x02, 0x00, 0x04, - 0x07, 0xa0, 0x00, 0x06, 0xee, 0x8c, 0x01, 0x60, 0x01, 0x1c, 0x00, 0x04, 0x16, 0x09, 0x01, 0xe0, - 0x01, 0x40, 0x08, 0x00, 0x01, 0xa0, 0x01, 0x40, 0x40, 0x00, 0x01, 0xe0, 0x01, 0x40, 0x04, 0x00, - 0x06, 0xa0, 0xf1, 0x4c, 0x02, 0x05, 0x80, 0x00, 0xd8, 0x05, 0x04, 0x80, 0x04, 0xc7, 0x03, 0x00, - 0x00, 0x0f, 0x07, 0x88, 0x10, 0x00, 0x02, 0x09, 0x20, 0x00, 0x07, 0x8a, 0xee, 0xa4, 0x02, 0x03, - 0xe5, 0xfe, 0x04, 0x5a, 0x03, 0x00, 0x00, 0x00, 0xd2, 0x20, 0x01, 0x87, 0x10, 0x06, 0x03, 0x00, - 0x00, 0x00, 0xc2, 0x20, 0x01, 0x8a, 0x02, 0x08, 0x1a, 0x00, 0xc2, 0x60, 0x00, 0xae, 0xda, 0x48, - 0x04, 0x80, 0x05, 0x89, 0x02, 0x89, 0x00, 0x06, 0x15, 0x07, 0x07, 0x88, 0x80, 0x00, 0xda, 0x48, - 0x04, 0x80, 0xc8, 0x09, 0x00, 0xae, 0x03, 0x80, 0x02, 0xe0, 0x00, 0xa0, 0x04, 0x5c, 0x03, 0x00, - 0x00, 0x00, 0x01, 0x60, 0x01, 0x9c, 0x00, 0x20, 0x13, 0xe2, 0xc2, 0x20, 0x01, 0x8c, 0x02, 0x08, - 0x1c, 0x00, 0x10, 0xe3, 0x03, 0x00, 0x00, 0x00, 0x01, 0x60, 0x01, 0x40, 0x40, 0x00, 0x16, 0xec, - 0x01, 0xa0, 0x01, 0x40, 0x40, 0x00, 0x02, 0x08, 0x02, 0x00, 0x10, 0xd7, 0xc0, 0xb3, 0x06, 0x92, - 0x10, 0xfd, 0xc0, 0xb3, 0xc0, 0x48, 0xcc, 0x72, 0xcc, 0x72, 0xc1, 0x32, 0xcc, 0x44, 0xdc, 0x72, - 0x06, 0x04, 0x16, 0xfd, 0x04, 0x5b, 0xc0, 0x48, 0x02, 0x02, 0xe9, 0x90, 0x07, 0x84, 0x00, 0x06, - 0x10, 0xf6, 0x02, 0x02, 0xe5, 0xde, 0xc0, 0x49, 0x07, 0x84, 0x00, 0x06, 0x10, 0xf0, 0xc0, 0xb3, - 0xc1, 0x32, 0x02, 0x01, 0x00, 0x01, 0xd0, 0x44, 0x06, 0xc1, 0x02, 0x44, 0x00, 0xff, 0x10, 0xe7, - 0xc1, 0x33, 0xc0, 0x73, 0xd1, 0x44, 0x02, 0x44, 0x00, 0xff, 0xdc, 0x45, 0x06, 0x04, 0x16, 0xfd, - 0x04, 0x5a, 0x06, 0xa0, 0xf0, 0xcc, 0xc8, 0x33, 0x01, 0x9e, 0x04, 0x5a, 0x06, 0xa0, 0xee, 0xca, - 0xc1, 0x89, 0x09, 0xa6, 0x02, 0x66, 0x00, 0x40, 0xc8, 0x06, 0x01, 0x8a, 0xc1, 0x88, 0x09, 0xa6, - 0x02, 0x66, 0x00, 0x40, 0xc8, 0x06, 0x01, 0x8c, 0x04, 0xc2, 0xc1, 0xc7, 0x16, 0x03, 0x06, 0x02, - 0x16, 0xfc, 0x10, 0x4d, 0x04, 0x5a, 0x06, 0xa0, 0xf0, 0x16, 0xc1, 0x89, 0x09, 0xa6, 0x02, 0x66, - 0x00, 0x40, 0xc8, 0x06, 0x01, 0x8a, 0xc1, 0x88, 0x09, 0xa6, 0x02, 0x66, 0x00, 0x40, 0xc8, 0x06, - 0x01, 0x8c, 0xc8, 0x33, 0x01, 0x9e, 0x10, 0xe8, 0x8a, 0x33, 0x00, 0x02, 0x16, 0x38, 0x8a, 0x73, - 0x00, 0x02, 0x16, 0x35, 0x04, 0x5a, 0x8a, 0x20, 0xe9, 0x8a, 0x00, 0x02, 0x16, 0x30, 0x8a, 0x60, - 0xe9, 0x8e, 0x00, 0x02, 0x16, 0x2c, 0x07, 0x82, 0xea, 0x34, 0x10, 0x01, 0xc0, 0xb3, 0x02, 0x04, - 0x04, 0x80, 0xd1, 0x52, 0x13, 0x03, 0x9d, 0x32, 0x16, 0x22, 0x10, 0xfb, 0x07, 0x85, 0x80, 0x00, - 0xd8, 0x05, 0x04, 0x80, 0x04, 0xc7, 0x04, 0x5a, 0xc8, 0x20, 0x00, 0xc0, 0x00, 0x0c, 0xc8, 0x20, - 0x00, 0xc2, 0x00, 0x0e, 0xc8, 0x20, 0x00, 0xc4, 0x00, 0x10, 0xc8, 0x20, 0x00, 0xc6, 0x00, 0x12, - 0xc8, 0x20, 0x00, 0xc8, 0x00, 0x14, 0xc8, 0x20, 0x00, 0xca, 0x00, 0x16, 0xc8, 0x20, 0x00, 0xcc, - 0x00, 0x04, 0xc8, 0x20, 0x00, 0xce, 0x00, 0x06, 0x03, 0x00, 0x00, 0x0f, 0x05, 0xcc, 0x04, 0x5c, - 0x04, 0xe0, 0x01, 0x82, 0x02, 0x02, 0xe5, 0xd8, 0xc8, 0x32, 0x01, 0x82, 0xc8, 0x32, 0x01, 0x80, - 0x06, 0xa0, 0xef, 0xe2, 0xc8, 0x12, 0x01, 0x82, 0xc2, 0xca, 0x07, 0x84, 0x07, 0xd0, 0x04, 0xe0, - 0x01, 0x84, 0x06, 0x04, 0x16, 0xfc, 0xc1, 0x20, 0x01, 0x84, 0x16, 0xe9, 0x02, 0x04, 0x00, 0x32, - 0x07, 0x85, 0x80, 0x00, 0xd8, 0x05, 0x04, 0x80, 0x04, 0xc7, 0xc1, 0x60, 0x01, 0x86, 0x06, 0x04, - 0x16, 0xfc, 0xc1, 0x20, 0x01, 0x84, 0x04, 0x5b, 0xc0, 0xb3, 0xc4, 0xb3, 0x04, 0x5b, 0xc0, 0x48, - 0xc0, 0xb3, 0xa0, 0x73, 0xc4, 0x42, 0x04, 0x5b, 0x88, 0x33, 0x01, 0x84, 0x16, 0xe6, 0x04, 0x5a, - 0xc1, 0x89, 0x09, 0xa6, 0x02, 0x66, 0x00, 0x40, 0xc8, 0x06, 0x01, 0x8a, 0x04, 0x5b, 0x04, 0xc5, - 0x07, 0xa0, 0x01, 0x9c, 0x00, 0x40, 0x01, 0x60, 0x01, 0x9c, 0x00, 0x40, 0x13, 0x03, 0x06, 0x05, - 0x16, 0xf7, 0x04, 0x5c, 0x04, 0x5b, 0x06, 0xa0, 0xf0, 0x6a, 0xc0, 0x60, 0x01, 0x40, 0xc8, 0x05, - 0x01, 0x40, 0xc5, 0x02, 0xc8, 0x01, 0x01, 0x40, 0x04, 0x5a, 0x06, 0xa0, 0xf0, 0x6a, 0xa1, 0x08, - 0x10, 0xf4, 0xc0, 0xb3, 0xc1, 0x33, 0xc1, 0x60, 0x01, 0x40, 0x01, 0x85, 0x04, 0x00, 0x01, 0xc5, - 0x10, 0x00, 0x04, 0x5b, 0xc1, 0x08, 0xc2, 0x09, 0xc2, 0x44, 0x04, 0x5b, 0x02, 0x05, 0x00, 0xc8, - 0x06, 0x05, 0x16, 0xfe, 0x04, 0x5b, 0xc1, 0x33, 0xc0, 0x03, 0xc0, 0xc4, 0x04, 0x5b, 0xc0, 0xc0, - 0x04, 0x5b, 0x94, 0xe0, 0x01, 0x9e, 0x16, 0xc2, 0x05, 0xc3, 0x04, 0x5b, 0xc0, 0x73, 0x06, 0xa0, - 0xf0, 0xe4, 0x02, 0x2d, 0x00, 0x08, 0x07, 0x85, 0x00, 0x08, 0x9f, 0x71, 0x16, 0xb7, 0x06, 0x05, - 0x16, 0xfc, 0x04, 0x5a, 0x02, 0x02, 0xe5, 0xe4, 0x04, 0x60, 0xee, 0xce, 0x8c, 0xe9, 0x00, 0x04, - 0x16, 0xad, 0x04, 0x5b, 0xc1, 0x20, 0x01, 0x80, 0x07, 0x85, 0x07, 0xd0, 0x01, 0xe0, 0x01, 0x80, - 0x04, 0x00, 0x06, 0x45, 0x16, 0xfe, 0xc8, 0x04, 0x01, 0x80, 0x04, 0x5b, 0xc1, 0x33, 0xc3, 0x48, - 0xc1, 0x04, 0x13, 0x04, 0x02, 0x2d, 0x04, 0x00, 0x06, 0x04, 0x16, 0xfc, 0x04, 0x5b, 0xc3, 0x8d, - 0x06, 0xa0, 0xf0, 0xe4, 0xc1, 0x8d, 0x09, 0xa6, 0x02, 0x66, 0x00, 0x40, 0xc7, 0x86, 0x04, 0x5a, - 0xc1, 0x8d, 0x09, 0xa6, 0x02, 0x66, 0x00, 0x40, 0xc8, 0x06, 0x01, 0x8a, 0x04, 0x5b, 0xc1, 0x8d, - 0x09, 0xa6, 0x02, 0x66, 0x00, 0x40, 0xc8, 0x06, 0x01, 0x8c, 0x04, 0x5b, 0xc0, 0x4d, 0x02, 0x04, - 0x00, 0x28, 0x07, 0x85, 0x55, 0x00, 0x04, 0x60, 0xee, 0xf2, 0xc0, 0x4d, 0xc0, 0xb3, 0xc1, 0x32, - 0x04, 0x60, 0xee, 0xb6, 0xc1, 0x33, 0x01, 0x60, 0x01, 0x1c, 0x00, 0x04, 0x16, 0x01, 0x04, 0x5b, - 0xc0, 0xc4, 0x04, 0x5b, 0x07, 0x89, 0xe5, 0x26, 0xc2, 0x39, 0x13, 0x07, 0xc6, 0x39, 0x86, 0x39, - 0x16, 0x25, 0xc6, 0x39, 0x86, 0x39, 0x16, 0x22, 0x10, 0xf7, 0x02, 0x02, 0xf1, 0x6a, 0x04, 0xc4, - 0x04, 0xc5, 0xc2, 0x39, 0x13, 0x02, 0x04, 0x60, 0xf1, 0xa6, 0x02, 0x02, 0xf1, 0x78, 0x04, 0xc4, - 0xc2, 0x39, 0x13, 0x03, 0xc1, 0x79, 0x04, 0x60, 0xf1, 0xa6, 0x02, 0x02, 0xf1, 0x88, 0x04, 0xc5, - 0xc2, 0x39, 0x13, 0x03, 0xc1, 0x39, 0x04, 0x60, 0xf1, 0xa6, 0xc0, 0x79, 0xc0, 0xb9, 0x60, 0x81, - 0x05, 0xc2, 0x09, 0x12, 0x04, 0xf1, 0x06, 0x02, 0x16, 0xfd, 0x04, 0x5b, 0x04, 0x5c, 0x02, 0x01, - 0xaa, 0xaa, 0xc6, 0x01, 0xe0, 0x44, 0x40, 0x45, 0x80, 0x58, 0x16, 0xf8, 0x02, 0x01, 0x00, 0x14, - 0x06, 0x01, 0x16, 0xfe, 0x02, 0x01, 0x55, 0x55, 0xc6, 0x01, 0xe0, 0x44, 0x40, 0x45, 0x80, 0x58, - 0x16, 0xed, 0x04, 0x52, 0x02, 0xe0, 0x00, 0xa0, 0x07, 0x88, 0x00, 0xc0, 0x02, 0x09, 0xf2, 0x20, - 0x07, 0x84, 0xe5, 0xea, 0x02, 0x05, 0x00, 0x01, 0xc2, 0x8b, 0x04, 0xcc, 0x06, 0xa0, 0xf2, 0x2a, - 0x2c, 0x60, 0x00, 0x01, 0x06, 0x99, 0x2c, 0xa0, 0x00, 0x02, 0x06, 0x99, 0x2d, 0x20, 0x00, 0x04, - 0x06, 0x99, 0x2e, 0x20, 0x00, 0x08, 0x06, 0x99, 0x2f, 0xa0, 0x00, 0x10, 0x05, 0x8c, 0x16, 0x09, - 0xcc, 0x80, 0xc4, 0x81, 0x07, 0x83, 0xf2, 0x6e, 0xc0, 0x88, 0x04, 0x02, 0x05, 0x8c, 0x16, 0x01, - 0x10, 0x33, 0x02, 0xe0, 0x00, 0xa0, 0x04, 0x5a, 0x05, 0x8c, 0x16, 0xfb, 0xcc, 0x80, 0xc4, 0x81, - 0x0a, 0x15, 0xc0, 0xb4, 0xc0, 0x12, 0xcc, 0x88, 0xc0, 0x52, 0xc4, 0xb4, 0x06, 0x42, 0x04, 0x5b, - 0x07, 0x2d, 0x00, 0x18, 0x8b, 0x41, 0x00, 0x0a, 0x16, 0xec, 0x82, 0xc1, 0x16, 0xea, 0x02, 0xc2, - 0x02, 0x42, 0x02, 0x00, 0x16, 0xe6, 0x03, 0x80, 0x07, 0x81, 0x00, 0x01, 0x10, 0xf1, 0x02, 0x01, - 0x00, 0x02, 0x10, 0xee, 0x02, 0x01, 0x00, 0x04, 0x10, 0xeb, 0x02, 0x01, 0x00, 0x08, 0x10, 0xe8, - 0x02, 0x01, 0x00, 0x10, 0x10, 0xe5, 0x02, 0xa1, 0x8b, 0x41, 0x00, 0x10, 0x13, 0x02, 0x04, 0x60, - 0xf2, 0x1a, 0x07, 0x2d, 0x00, 0x18, 0x03, 0x80, 0x02, 0x09, 0x08, 0x00, 0x02, 0x03, 0x00, 0x04, - 0x04, 0xc7, 0x06, 0xa0, 0xf3, 0x9a, 0x01, 0x60, 0x01, 0x1c, 0x00, 0x04, 0x16, 0x1c, 0x01, 0xa0, - 0x01, 0x40, 0x08, 0x00, 0x01, 0xe0, 0x01, 0x40, 0x10, 0x00, 0x02, 0x04, 0x00, 0x01, 0xce, 0x44, - 0x06, 0xc4, 0xc6, 0x44, 0x01, 0xa0, 0x01, 0x40, 0x10, 0x00, 0x06, 0x49, 0x01, 0xa0, 0x01, 0x40, - 0x40, 0x00, 0x01, 0xe0, 0x01, 0x40, 0x04, 0x00, 0x01, 0xe0, 0x01, 0x40, 0x08, 0x00, 0x06, 0xa0, - 0xf4, 0x38, 0x06, 0xa0, 0xf4, 0x38, 0x05, 0xc7, 0x02, 0x04, 0xe4, 0xa4, 0x04, 0xe0, 0x03, 0xd0, - 0xc1, 0x74, 0xc1, 0xb4, 0x05, 0x86, 0x13, 0x1c, 0x02, 0xe0, 0x00, 0xc0, 0x02, 0x00, 0x00, 0x00, - 0xc0, 0x40, 0xc0, 0x80, 0xc0, 0xc0, 0xc1, 0x00, 0xc1, 0x40, 0xc1, 0x80, 0xc1, 0xc0, 0xc2, 0x00, - 0xc2, 0x40, 0xc2, 0x80, 0xc2, 0xc0, 0xc3, 0x00, 0xc3, 0x40, 0xc3, 0x80, 0xc3, 0xc0, 0x04, 0xa0, - 0x00, 0xaa, 0x03, 0xd0, 0x03, 0xd0, 0x10, 0x3f, 0x05, 0x85, 0x81, 0x85, 0x13, 0xe1, 0x10, 0xe4, - 0x05, 0xc7, 0x02, 0x05, 0x7f, 0xff, 0xa1, 0x45, 0x03, 0xd0, 0x03, 0xd0, 0x10, 0x34, 0xcc, 0xc0, - 0xc4, 0xc1, 0x02, 0x03, 0x00, 0x28, 0x06, 0xa0, 0xf3, 0x9a, 0x01, 0xe0, 0x01, 0x42, 0x10, 0x00, - 0x05, 0xc7, 0x03, 0xd0, 0x03, 0xd0, 0x10, 0x27, 0x05, 0xc7, 0xc1, 0xa0, 0x01, 0x4a, 0x07, 0xa0, - 0x01, 0x4a, 0x0e, 0x00, 0x01, 0xa0, 0x01, 0x40, 0x02, 0x00, 0x07, 0x20, 0x01, 0x44, 0xc1, 0x60, - 0x01, 0x44, 0x02, 0x85, 0xff, 0x00, 0x16, 0x17, 0x01, 0xe0, 0x01, 0x40, 0x22, 0x00, 0x02, 0x05, - 0x00, 0xc0, 0x06, 0x05, 0x03, 0xd0, 0x16, 0xfd, 0xc1, 0x60, 0x01, 0x46, 0x02, 0x85, 0xff, 0x00, - 0x13, 0x0a, 0x02, 0x05, 0x33, 0x93, 0x06, 0x05, 0x00, 0x00, 0xf3, 0x80, 0x00, 0x0b, 0x10, 0x00, - 0x00, 0x00, 0xf3, 0x8a, 0x04, 0x9c, 0x03, 0xd0, 0x16, 0xf8, 0x10, 0x51, 0xc8, 0x06, 0x01, 0x4a, - 0xcc, 0xc0, 0xc4, 0xc1, 0x10, 0x4b, 0xc0, 0x13, 0xcc, 0xc8, 0xc0, 0x53, 0x02, 0x02, 0xf3, 0xaa, - 0xc4, 0xc2, 0x06, 0x43, 0x04, 0x5b, 0xc0, 0x60, 0x00, 0xae, 0x02, 0xc4, 0x02, 0x44, 0x00, 0x0f, - 0x88, 0x44, 0xe4, 0x8a, 0x16, 0x3c, 0x02, 0x81, 0x00, 0x08, 0x13, 0x27, 0xc1, 0x21, 0xe4, 0x9c, - 0xc1, 0x14, 0x21, 0x21, 0xe4, 0x7a, 0x16, 0x33, 0xc1, 0x21, 0xe4, 0x82, 0x02, 0x81, 0x00, 0x00, - 0x13, 0x0b, 0x02, 0x0d, 0x00, 0xa0, 0x83, 0x84, 0x13, 0x09, 0x05, 0xc4, 0x83, 0x84, 0x13, 0x06, - 0x05, 0xc4, 0x83, 0x84, 0x13, 0x03, 0x10, 0x23, 0x81, 0x0e, 0x16, 0x21, 0xc1, 0x21, 0xe4, 0x9c, - 0x45, 0x21, 0xe4, 0x7a, 0x01, 0xe0, 0x01, 0x42, 0x10, 0x00, 0x01, 0xa0, 0x01, 0x42, 0x10, 0x00, - 0xc3, 0xa1, 0xe4, 0x94, 0x02, 0x0f, 0x00, 0x2f, 0x03, 0x80, 0x01, 0xa0, 0x01, 0x40, 0x02, 0x00, - 0x01, 0xa0, 0x01, 0x40, 0x80, 0x00, 0xc0, 0x6d, 0x00, 0x0a, 0x13, 0x09, 0x02, 0x81, 0x12, 0x5c, - 0x1b, 0x06, 0x02, 0x0e, 0xf3, 0x90, 0x02, 0x0f, 0x00, 0x0f, 0x03, 0x80, 0x05, 0xca, 0x02, 0xe0, - 0x00, 0xa0, 0x04, 0x5a, 0xce, 0x59, 0x88, 0x20, 0xe4, 0xa4, 0xe4, 0xa4, 0x10, 0xf8, 0x04, 0xc1, - 0x62, 0x48, 0x05, 0x89, 0xc0, 0xa0, 0x01, 0x6c, 0xc8, 0x08, 0x01, 0x6c, 0x02, 0x03, 0xfc, 0x00, - 0x02, 0x04, 0x02, 0x00, 0xa0, 0x73, 0x06, 0x04, 0x16, 0xfd, 0x05, 0x88, 0x06, 0x09, 0x16, 0xf4, - 0xc8, 0x02, 0x01, 0x6c, 0x86, 0x81, 0x16, 0x02, 0x03, 0xd0, 0x05, 0xcb, 0x04, 0x5b, 0xc0, 0x48, - 0xc0, 0x89, 0x60, 0x81, 0x05, 0xc2, 0x04, 0x5b, 0xc3, 0x0b, 0x06, 0xa0, 0xf4, 0x72, 0xcc, 0x41, - 0x06, 0x42, 0x16, 0xfd, 0x06, 0xa0, 0xf4, 0x72, 0xc1, 0x01, 0x8c, 0x44, 0x16, 0x12, 0x05, 0xc4, - 0x06, 0x42, 0x16, 0xfb, 0x02, 0x04, 0xf4, 0xb8, 0x02, 0x03, 0x01, 0x01, 0x06, 0x94, 0x02, 0x03, - 0x5a, 0x5a, 0x06, 0x94, 0x05, 0x43, 0x06, 0x94, 0x07, 0x03, 0x06, 0x94, 0x04, 0xc3, 0x06, 0x94, - 0x05, 0xcc, 0x04, 0x5c, 0xc1, 0xcb, 0x06, 0xa0, 0xf4, 0x72, 0xcc, 0x43, 0x06, 0x42, 0x16, 0xfd, - 0x06, 0xa0, 0xf4, 0x72, 0x8c, 0x43, 0x16, 0xf5, 0x06, 0x42, 0x16, 0xfc, 0x04, 0x57, 0xc2, 0x8b, - 0xc0, 0x08, 0xc1, 0x49, 0x05, 0x85, 0x02, 0x80, 0x00, 0x40, 0x11, 0x03, 0x02, 0x80, 0x00, 0x4f, - 0x12, 0x45, 0x02, 0x01, 0xf4, 0x72, 0x09, 0xa1, 0x80, 0x01, 0x13, 0x40, 0x02, 0x01, 0xf5, 0xa2, - 0x09, 0xa1, 0x80, 0x01, 0x13, 0x3b, 0xc0, 0x60, 0x00, 0x06, 0x09, 0xa1, 0x80, 0x01, 0x13, 0x36, - 0x05, 0x81, 0x80, 0x01, 0x13, 0x33, 0xc0, 0x4a, 0x09, 0xa1, 0x80, 0x01, 0x13, 0x2f, 0xc8, 0x00, - 0x01, 0x6a, 0x02, 0x80, 0x00, 0x80, 0x14, 0x17, 0x02, 0x01, 0xf8, 0x00, 0xc1, 0xa0, 0x01, 0x40, - 0x01, 0xa0, 0x01, 0x40, 0x04, 0x00, 0x02, 0x02, 0x10, 0x00, 0x02, 0x03, 0x04, 0x00, 0xcc, 0xb1, - 0x06, 0x43, 0x16, 0xfd, 0x01, 0xa0, 0x01, 0x40, 0x40, 0x00, 0x02, 0x08, 0xf8, 0x10, 0xc8, 0x06, - 0x01, 0x40, 0xc0, 0x00, 0x13, 0x02, 0x02, 0x08, 0xf8, 0x00, 0x02, 0x09, 0xfb, 0xfe, 0x06, 0xa0, - 0xf4, 0x7c, 0x10, 0x25, 0x02, 0x80, 0x00, 0x80, 0x14, 0x09, 0x02, 0x01, 0xf8, 0x00, 0x02, 0x02, - 0x10, 0x00, 0x02, 0x03, 0x04, 0x00, 0xcc, 0x72, 0x06, 0x43, 0x16, 0xfd, 0x05, 0x80, 0x02, 0x80, - 0x00, 0x80, 0x12, 0x04, 0x01, 0x60, 0x01, 0x04, 0x00, 0x20, 0x13, 0x05, 0x81, 0x40, 0x16, 0xab, - 0x02, 0x80, 0x00, 0x80, 0x14, 0x0b, 0x07, 0xa0, 0x01, 0x6a, 0x00, 0x7e, 0x02, 0x02, 0x10, 0x00, - 0x02, 0x03, 0x04, 0x00, 0x04, 0xc1, 0xcc, 0x81, 0x06, 0x43, 0x16, 0xfd, 0x05, 0xca, 0x04, 0x5a, - 0x02, 0x00, 0xf5, 0x94, 0x02, 0x01, 0xf6, 0xc4, 0x02, 0x40, 0xfc, 0x00, 0x02, 0x41, 0xfc, 0x00, - 0x80, 0x40, 0x13, 0x04, 0x07, 0xa0, 0x01, 0x04, 0x00, 0x3c, 0x04, 0x5b, 0x04, 0xc0, 0x02, 0x01, - 0x00, 0x08, 0x02, 0x02, 0x12, 0x00, 0xc1, 0xe0, 0x01, 0x40, 0x01, 0xa0, 0x01, 0x40, 0x04, 0x00, - 0x02, 0x03, 0x01, 0x00, 0xc8, 0x00, 0x01, 0x6a, 0xcc, 0xa0, 0xf8, 0x10, 0x05, 0x80, 0x06, 0x03, - 0x16, 0xf9, 0x02, 0x22, 0x02, 0x00, 0x06, 0x01, 0x16, 0xf3, 0x01, 0xa0, 0x01, 0x40, 0x40, 0x00, - 0xc8, 0x07, 0x01, 0x40, 0x02, 0x00, 0x08, 0x00, 0xc0, 0x40, 0x06, 0x01, 0xc8, 0x01, 0x01, 0x6a, - 0x02, 0x61, 0x80, 0x00, 0xc8, 0x01, 0xf8, 0x10, 0x06, 0x00, 0x16, 0xf6, 0x04, 0xc0, 0x04, 0xc8, - 0x04, 0xc9, 0x02, 0x03, 0x08, 0x00, 0xc8, 0x00, 0x01, 0x6a, 0xc1, 0x80, 0x02, 0x66, 0x80, 0x00, - 0xc1, 0x20, 0xf8, 0x10, 0x81, 0x06, 0x16, 0x15, 0xc2, 0x08, 0x13, 0x06, 0x05, 0x80, 0x06, 0x03, - 0x16, 0xf2, 0xc2, 0x08, 0x13, 0x0d, 0x10, 0x19, 0x07, 0xa0, 0xf8, 0x10, 0x55, 0x55, 0xc1, 0x20, - 0xf8, 0x10, 0x02, 0x84, 0x55, 0x55, 0x16, 0x02, 0xc2, 0x06, 0x10, 0xf0, 0x81, 0x06, 0x13, 0xee, - 0x04, 0x5b, 0x07, 0xa0, 0xf8, 0x10, 0x55, 0x55, 0xc1, 0x60, 0xf8, 0x10, 0x81, 0x05, 0x13, 0x03, - 0x02, 0x85, 0x55, 0x55, 0x16, 0xf5, 0xc2, 0x08, 0x13, 0xe1, 0xc2, 0x40, 0x06, 0x09, 0x02, 0x48, - 0x07, 0xff, 0x04, 0xc0, 0x02, 0x01, 0x00, 0x08, 0x02, 0x02, 0x12, 0x00, 0x02, 0x03, 0x01, 0x00, - 0xc8, 0x00, 0x01, 0x6a, 0xc8, 0x32, 0xf8, 0x10, 0x05, 0x80, 0x06, 0x03, 0x16, 0xf9, 0x02, 0x22, - 0x02, 0x00, 0x06, 0x01, 0x16, 0xf3, 0x02, 0x88, 0x00, 0x40, 0x15, 0x13, 0x02, 0x89, 0x00, 0x4f, - 0x11, 0x10, 0x04, 0xc0, 0x02, 0x02, 0x12, 0x00, 0x02, 0x01, 0x00, 0x08, 0x02, 0x03, 0x01, 0x00, - 0xcc, 0x80, 0x06, 0x03, 0x16, 0xfd, 0x02, 0x22, 0x02, 0x00, 0x06, 0x01, 0x16, 0xf7, 0x05, 0xcb, - 0x04, 0x5b, 0x07, 0xa0, 0x01, 0x04, 0x00, 0x37, 0x04, 0x5b, 0x28, 0x43, 0x29, 0x31, 0x39, 0x38, - 0x33, 0x2d, 0x38, 0x38, 0x20, 0x42, 0x59, 0x20, 0x54, 0x49, 0xc2, 0x4b, 0x02, 0xa8, 0x00, 0x98, - 0x07, 0x83, 0x00, 0x02, 0x02, 0x28, 0x00, 0x08, 0xc6, 0x23, 0xe4, 0xf6, 0x06, 0x48, 0xc0, 0xc4, - 0x0a, 0x73, 0x17, 0x65, 0x06, 0xa0, 0xf7, 0xc4, 0xc1, 0xc8, 0x05, 0xc7, 0x02, 0x03, 0x00, 0xa5, - 0x03, 0xb0, 0xcd, 0xf8, 0xcd, 0xf8, 0x02, 0xa6, 0x62, 0x06, 0x02, 0x88, 0x00, 0x0a, 0x16, 0x57, - 0x29, 0x03, 0x16, 0x55, 0x29, 0x05, 0x80, 0xc4, 0x16, 0x52, 0x09, 0x15, 0x17, 0x50, 0x09, 0x15, - 0x18, 0x4e, 0x02, 0x85, 0x00, 0x29, 0x16, 0x4b, 0x05, 0xc6, 0x00, 0x96, 0x07, 0x03, 0x04, 0xc4, - 0x06, 0x45, 0x00, 0x95, 0x05, 0x44, 0x16, 0x43, 0x81, 0x44, 0x16, 0x41, 0x03, 0x00, 0x00, 0x05, - 0x02, 0xc4, 0x03, 0x00, 0x00, 0x0a, 0x02, 0x44, 0x00, 0x0f, 0x02, 0x84, 0x00, 0x05, 0x16, 0x37, - 0x02, 0xc4, 0x03, 0x00, 0x00, 0x0f, 0x02, 0x44, 0x00, 0x0f, 0x02, 0x84, 0x00, 0x0a, 0x16, 0x2f, - 0x02, 0x04, 0xff, 0xfe, 0x13, 0x2c, 0x15, 0x2b, 0x1a, 0x2a, 0x05, 0x84, 0x12, 0x28, 0x15, 0x27, - 0x1a, 0x26, 0x18, 0x25, 0x05, 0x84, 0x16, 0x23, 0x1b, 0x22, 0x17, 0x21, 0x05, 0x84, 0x13, 0x1f, - 0x1a, 0x1e, 0x11, 0x1d, 0x06, 0x04, 0x16, 0x1b, 0x02, 0xa5, 0xc1, 0xc5, 0x02, 0x25, 0x00, 0x06, - 0x02, 0x03, 0xa5, 0xa5, 0xc1, 0x83, 0x00, 0x95, 0x38, 0x03, 0x00, 0x94, 0x02, 0x83, 0x6b, 0x2e, - 0x16, 0x0e, 0x02, 0x84, 0x1c, 0x59, 0x16, 0x0b, 0x02, 0x24, 0x00, 0x69, 0x00, 0x95, 0x3c, 0x03, - 0x00, 0x94, 0x81, 0x83, 0x16, 0x04, 0x02, 0x84, 0x00, 0x69, 0x16, 0x01, 0x05, 0xc9, 0x04, 0x59, - 0xd0, 0xc3, 0x13, 0xfd, 0x1c, 0x01, 0x10, 0xfb, 0x90, 0xe0, 0xe4, 0xfd, 0x16, 0xf8, 0x06, 0xc3, - 0xd0, 0xc3, 0x1c, 0xf5, 0x16, 0xf4, 0x90, 0xe0, 0xe4, 0xfa, 0x16, 0xf1, 0x04, 0x5b, 0xc3, 0x0b, - 0x02, 0x09, 0xe4, 0xfe, 0x06, 0xa0, 0xf1, 0x50, 0x05, 0xcc, 0x04, 0x5c, 0x07, 0x88, 0xb0, 0x00, - 0x07, 0x89, 0xff, 0xfe, 0x09, 0xa8, 0x09, 0xa9, 0x07, 0x8a, 0xe0, 0x02, 0x06, 0xa0, 0xf4, 0x42, - 0x00, 0x00, 0x07, 0x88, 0xa0, 0x00, 0x07, 0x89, 0xaf, 0xfe, 0x09, 0xa8, 0x09, 0xa9, 0x07, 0x8a, - 0xe0, 0x78, 0x06, 0xa0, 0xf4, 0x42, 0x00, 0x00, 0x06, 0xa0, 0xf6, 0xde, 0x00, 0x00, 0x10, 0xe6, - 0x10, 0xe5, 0x00, 0x00, 0xf8, 0x26, 0x07, 0x93, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb8, 0x00, 0x48, - 0x28, 0x43, 0x29, 0x31, 0x39, 0x38, 0x33, 0x2d, 0x38, 0x39, 0x2c, 0x39, 0x30, 0x2d, 0x39, 0x34, - 0x20, 0x54, 0x65, 0x78, 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x28, 0x43, 0x29, 0x31, 0x39, 0x38, 0x33, 0x2c, 0x34, 0x2c, 0x35, 0x2c, 0x36, - 0x20, 0x49, 0x42, 0x4d, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xa0, 0x34, 0xff, 0xb8, 0x00, 0x80, 0xb0, 0x3e, 0x20, 0x00, 0x90, 0x00, 0x0d, 0xd2, 0x45, 0x4f, - 0x20, 0x56, 0x32, 0x32, 0x38, 0x2e, 0x31, 0x30, 0x2e, 0x31, 0x38, 0x20, 0x20, 0x28, 0x43, 0x29, - 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x4f, 0x6c, 0x69, 0x63, 0x6f, - 0x6d, 0x20, 0x31, 0x39, 0x39, 0x38, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x02, 0xc0, 0xa0, 0x01, 0x6a, - 0xc3, 0x0e, 0x09, 0xac, 0xc8, 0x0c, 0x01, 0x6a, 0xc3, 0x0e, 0x02, 0x4c, 0x03, 0xff, 0xd8, 0xec, - 0xf8, 0x00, 0x13, 0xc0, 0x05, 0x83, 0x02, 0x43, 0x00, 0x3f, 0xd8, 0xec, 0xf8, 0x01, 0x13, 0xc0, - 0xc8, 0x02, 0x01, 0x6a, 0x05, 0xce, 0x03, 0x90, 0xef, 0xff, 0x03, 0x80, 0x11, 0x08, 0xc3, 0xbc, - 0xdf, 0xbc, 0x06, 0x0d, 0x16, 0xfd, 0x05, 0x8c, 0x01, 0x8c, 0x00, 0x01, 0x10, 0x12, 0xc3, 0xbc, - 0xc3, 0xfc, 0x01, 0x8d, 0x80, 0x00, 0x13, 0x0d, 0x01, 0x0d, 0x40, 0x00, 0x16, 0x04, 0xdf, 0x8f, - 0x06, 0x0d, 0x16, 0xfd, 0x10, 0x06, 0x01, 0x8d, 0x40, 0x01, 0x13, 0x03, 0xcf, 0x8f, 0x06, 0x4d, - 0x16, 0xfd, 0xc3, 0x7c, 0x16, 0xe3, 0x04, 0x5b, 0xc1, 0x60, 0x01, 0x6c, 0x02, 0xe0, 0x07, 0x78, - 0x04, 0xcd, 0x06, 0x9b, 0x02, 0xe0, 0x08, 0x5c, 0x01, 0x60, 0x13, 0x0c, 0x10, 0x00, 0x16, 0x0e, - 0xc8, 0x0d, 0x01, 0x6c, 0x07, 0x0f, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, - 0x88, 0x0f, 0xfc, 0x06, 0x13, 0xf8, 0xd8, 0x20, 0xe0, 0x0a, 0xfc, 0x06, 0xc8, 0x05, 0x01, 0x6c, - 0x07, 0x8f, 0xfc, 0x00, 0xc1, 0x5f, 0x13, 0xe0, 0x04, 0xff, 0x07, 0xbf, 0x81, 0x00, 0x07, 0x20, - 0xff, 0xfe, 0xc7, 0xc2, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, - 0x01, 0x03, 0x13, 0xf8, 0xc2, 0x8a, 0x16, 0x23, 0xc8, 0x0d, 0x01, 0x8c, 0xc2, 0xcd, 0xc3, 0x20, - 0x01, 0x6c, 0x07, 0x8a, 0x00, 0x01, 0xd2, 0x8e, 0x15, 0x2d, 0x05, 0xa0, 0x10, 0x84, 0x07, 0x8d, - 0x01, 0x04, 0x01, 0x5d, 0x21, 0x00, 0x16, 0x03, 0x07, 0x9d, 0xde, 0x8c, 0x10, 0x25, 0x01, 0x5d, - 0x01, 0x00, 0x16, 0x22, 0xc3, 0xdd, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, 0xc7, 0x4f, - 0x01, 0x5d, 0x20, 0x00, 0x13, 0xf1, 0x01, 0xe0, 0x07, 0x78, 0x80, 0x00, 0x10, 0x15, 0xc3, 0xe0, - 0x01, 0x6c, 0xc8, 0x09, 0x01, 0x6c, 0x13, 0x08, 0xc8, 0x0d, 0xfc, 0x00, 0xc2, 0x4f, 0x05, 0x87, - 0xf1, 0xce, 0xc3, 0x8e, 0x11, 0xda, 0x10, 0x06, 0xc2, 0x0d, 0xc2, 0x4f, 0x07, 0x87, 0x00, 0x01, - 0xd1, 0xce, 0x11, 0xd3, 0x05, 0xa0, 0x10, 0x84, 0xc8, 0x06, 0x07, 0x92, 0x07, 0x81, 0x01, 0x0a, - 0x01, 0x60, 0x13, 0x0c, 0x10, 0x00, 0x16, 0x04, 0xc8, 0x05, 0x01, 0x6c, 0x07, 0x20, 0xfc, 0x06, - 0x03, 0x90, 0xa0, 0x07, 0x02, 0xe0, 0x07, 0x78, 0x06, 0x9b, 0x02, 0xe0, 0x08, 0x5c, 0xcc, 0x66, - 0x00, 0x04, 0xcc, 0x43, 0xcc, 0x76, 0xcc, 0x76, 0xc8, 0x44, 0x00, 0x02, 0xc4, 0x45, 0x07, 0xa1, - 0xff, 0xee, 0x60, 0x81, 0xc3, 0x45, 0xc0, 0xb6, 0x80, 0xc2, 0x1b, 0x63, 0xc3, 0x96, 0x04, 0xf6, - 0x02, 0x46, 0xfe, 0xf8, 0x01, 0x4e, 0x40, 0x00, 0x16, 0x02, 0x04, 0x60, 0x90, 0xaa, 0x07, 0x81, - 0x01, 0x0a, 0xa1, 0x02, 0xc0, 0x83, 0x02, 0x22, 0x00, 0x06, 0x60, 0x84, 0x15, 0x25, 0x07, 0x84, - 0x00, 0x06, 0xc0, 0x83, 0xc8, 0x05, 0x01, 0x6c, 0xc8, 0x02, 0xfc, 0x04, 0x07, 0xa0, 0xfc, 0x02, - 0x80, 0x00, 0x04, 0xe0, 0xff, 0xfe, 0xc1, 0x60, 0x01, 0x6c, 0xc8, 0x06, 0x07, 0x92, 0x02, 0xe0, - 0x07, 0x78, 0x06, 0x9b, 0x02, 0xe0, 0x08, 0x5c, 0xc8, 0x05, 0x01, 0x6c, 0xc1, 0x60, 0xfc, 0x00, - 0x16, 0x16, 0x10, 0xf1, 0xc8, 0x06, 0x07, 0x92, 0x03, 0x90, 0x80, 0x03, 0x02, 0xe0, 0x07, 0x78, - 0x06, 0x9b, 0x02, 0xe0, 0x08, 0x5c, 0x10, 0x0b, 0xc3, 0xe6, 0x00, 0x06, 0x13, 0xf3, 0x03, 0x00, - 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0xcc, 0x66, - 0x00, 0x04, 0xcc, 0x42, 0xcc, 0x76, 0xcc, 0x76, 0xc8, 0x44, 0x00, 0x02, 0xc4, 0x45, 0x07, 0xa1, - 0xff, 0xee, 0x60, 0x81, 0x05, 0xa0, 0x10, 0x84, 0x65, 0x82, 0x15, 0x0e, 0xa0, 0xb6, 0xc3, 0x96, - 0x04, 0xf6, 0x02, 0x46, 0xfe, 0xf8, 0x01, 0x4e, 0x40, 0x00, 0x16, 0xb1, 0xa0, 0x84, 0x07, 0x84, - 0x00, 0x06, 0x60, 0x84, 0x04, 0x60, 0x90, 0xaa, 0x02, 0x26, 0xff, 0xfc, 0xc0, 0x36, 0xc0, 0x76, - 0x10, 0x06, 0x02, 0x26, 0xff, 0xfa, 0xc0, 0x36, 0xc0, 0x76, 0xc0, 0x83, 0x65, 0x82, 0x07, 0x84, - 0x00, 0x06, 0xa0, 0x42, 0x17, 0x01, 0x05, 0x80, 0xc8, 0x05, 0x01, 0x6c, 0x07, 0x8f, 0xfc, 0x00, - 0xc1, 0x7f, 0x16, 0x09, 0xc1, 0x60, 0x01, 0x6c, 0x02, 0xe0, 0x07, 0x78, 0x04, 0xcd, 0x06, 0x9b, - 0x02, 0xe0, 0x08, 0x5c, 0x10, 0xf1, 0x07, 0xbf, 0x80, 0x00, 0x04, 0xe0, 0xff, 0xfe, 0xc7, 0xc3, - 0xc0, 0xb6, 0xc3, 0x96, 0x04, 0xf6, 0x02, 0x46, 0xfe, 0xf8, 0x27, 0xa0, 0x08, 0x98, 0x13, 0x0d, - 0xc3, 0xc5, 0xc8, 0x0e, 0x08, 0x8e, 0xc3, 0xa0, 0x08, 0x90, 0xc0, 0xee, 0xff, 0xfe, 0x05, 0xa0, - 0x08, 0xa0, 0x16, 0x32, 0x05, 0xa0, 0x08, 0x9e, 0x10, 0x2f, 0x07, 0x83, 0x03, 0xf8, 0x06, 0x20, - 0x08, 0x9c, 0x13, 0x02, 0x04, 0x60, 0x95, 0x0c, 0xc3, 0xe0, 0x08, 0x9a, 0x83, 0xe0, 0x08, 0x98, - 0x13, 0x08, 0xc8, 0x0f, 0x08, 0x98, 0x04, 0xe0, 0x08, 0x9e, 0x04, 0xe0, 0x08, 0xa0, 0x27, 0x8f, - 0x16, 0xdf, 0x04, 0x60, 0x95, 0x0c, 0xc8, 0x0f, 0x01, 0x6c, 0x07, 0xa0, 0xfc, 0x02, 0x80, 0x00, - 0x04, 0xe0, 0xff, 0xfe, 0x04, 0xe0, 0xfc, 0x04, 0xc8, 0x3e, 0xfc, 0x06, 0xc3, 0xe0, 0xfc, 0x00, - 0x16, 0x0b, 0xc3, 0xe0, 0x01, 0x6c, 0x02, 0xe0, 0x07, 0x78, 0x04, 0xcd, 0x06, 0x9b, 0x02, 0xe0, - 0x08, 0x5c, 0xc8, 0x0f, 0x01, 0x6c, 0x10, 0xf2, 0x60, 0x9e, 0x87, 0x82, 0x15, 0xe4, 0xa0, 0x9e, - 0x02, 0x82, 0x00, 0xe0, 0x15, 0x1b, 0x02, 0x82, 0x00, 0x70, 0x15, 0x35, 0xc3, 0xa0, 0x08, 0x8e, - 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, - 0x07, 0x8f, 0x01, 0x0a, 0xcf, 0xc2, 0x07, 0x3f, 0xcf, 0xc0, 0xcf, 0xc1, 0xcb, 0xc4, 0x00, 0x02, - 0xc7, 0xc5, 0x07, 0xaf, 0xff, 0xee, 0x60, 0x81, 0x04, 0x60, 0x90, 0xaa, 0xc8, 0x0f, 0x01, 0x6c, - 0x07, 0xa0, 0xfc, 0x02, 0x80, 0x00, 0x04, 0xe0, 0xff, 0xfe, 0x04, 0xe0, 0xfc, 0x04, 0xc3, 0xc2, - 0x09, 0x2f, 0xa3, 0xcf, 0xc8, 0x0f, 0xfc, 0x06, 0x60, 0x8f, 0xc3, 0xe0, 0xfc, 0x00, 0x16, 0x0b, - 0xc3, 0xe0, 0x01, 0x6c, 0x02, 0xe0, 0x07, 0x78, 0x04, 0xcd, 0x06, 0x9b, 0x02, 0xe0, 0x08, 0x5c, - 0xc8, 0x0f, 0x01, 0x6c, 0x10, 0xf2, 0xc8, 0x0f, 0x01, 0x6c, 0x07, 0xa0, 0xfc, 0x02, 0x80, 0x00, - 0x04, 0xe0, 0xff, 0xfe, 0x04, 0xe0, 0xfc, 0x04, 0x01, 0xc2, 0x80, 0x00, 0xc8, 0x02, 0xfc, 0x06, - 0xc3, 0xe0, 0xfc, 0x00, 0x16, 0x0b, 0xc3, 0xe0, 0x01, 0x6c, 0x02, 0xe0, 0x07, 0x78, 0x04, 0xcd, - 0x06, 0x9b, 0x02, 0xe0, 0x08, 0x5c, 0xc8, 0x0f, 0x01, 0x6c, 0x10, 0xf2, 0xc8, 0x0f, 0x01, 0x6c, - 0x07, 0xa0, 0xfc, 0x02, 0x80, 0x00, 0x04, 0xe0, 0xff, 0xfe, 0x04, 0xe0, 0xfc, 0x04, 0xc3, 0x8f, - 0xc3, 0xe0, 0xfc, 0x00, 0x16, 0x0b, 0xc3, 0xe0, 0x01, 0x6c, 0x02, 0xe0, 0x07, 0x78, 0x04, 0xcd, - 0x06, 0x9b, 0x02, 0xe0, 0x08, 0x5c, 0xc8, 0x0f, 0x01, 0x6c, 0x10, 0xf2, 0xc8, 0x05, 0x01, 0x6c, - 0xc0, 0xa0, 0xfc, 0x06, 0x15, 0x0f, 0x01, 0x82, 0x80, 0x00, 0xc3, 0xc2, 0x06, 0x0f, 0x01, 0x8f, - 0x00, 0x01, 0xc8, 0x0f, 0x08, 0x5a, 0xc8, 0x0f, 0xfc, 0x04, 0x63, 0xc2, 0x05, 0x0f, 0xc8, 0x0f, - 0x08, 0x58, 0x10, 0x05, 0x07, 0xa0, 0x00, 0x1a, 0x95, 0x3e, 0xc8, 0x02, 0xfc, 0x04, 0x03, 0x00, - 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x04, 0xe0, - 0x01, 0x02, 0x07, 0x8f, 0x01, 0x0a, 0x07, 0x3f, 0xcf, 0xc2, 0xcf, 0xc0, 0xcf, 0xc1, 0xcb, 0xc4, - 0x00, 0x02, 0xc7, 0xc5, 0x07, 0xaf, 0xff, 0xee, 0x68, 0x81, 0x01, 0x60, 0x13, 0x0c, 0x10, 0x00, - 0x16, 0x05, 0xc8, 0x0d, 0x01, 0x6c, 0xd8, 0x20, 0xe0, 0x0a, 0xfc, 0x06, 0xc2, 0x8a, 0x16, 0x13, - 0xc8, 0x0d, 0x01, 0x8c, 0xc2, 0xcd, 0xc3, 0x0e, 0x07, 0x8a, 0x00, 0x01, 0xc3, 0xa0, 0x08, 0x8e, - 0xd2, 0x8e, 0x03, 0x00, 0x00, 0x0f, 0x01, 0x60, 0x01, 0x00, 0x08, 0x00, 0x13, 0xfc, 0x03, 0x00, - 0x00, 0x02, 0x04, 0x60, 0x91, 0x54, 0xc8, 0x09, 0x01, 0x6c, 0x13, 0x08, 0xc8, 0x0d, 0xfc, 0x00, - 0xc2, 0x4e, 0x05, 0x87, 0xc3, 0xa0, 0x08, 0x8e, 0xf1, 0xce, 0x10, 0xeb, 0xc2, 0x0d, 0xc2, 0x4e, - 0x07, 0x87, 0x00, 0x01, 0xc3, 0xa0, 0x08, 0x8e, 0xd1, 0xce, 0x10, 0xe3, 0xa0, 0x43, 0x17, 0x01, - 0x05, 0x80, 0xc8, 0x05, 0x01, 0x6c, 0x07, 0x8f, 0xfc, 0x00, 0xc1, 0x7f, 0x16, 0x09, 0xc1, 0x60, - 0x01, 0x6c, 0x02, 0xe0, 0x07, 0x78, 0x04, 0xcd, 0x06, 0x9b, 0x02, 0xe0, 0x08, 0x5c, 0x10, 0xf1, - 0x07, 0xbf, 0x80, 0x00, 0x04, 0xe0, 0xff, 0xfe, 0xc7, 0xc3, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, - 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x07, 0x8f, 0x01, 0x0a, 0xcf, 0xc2, - 0xcf, 0xc3, 0xcf, 0xc0, 0xcf, 0xc1, 0xcb, 0xc4, 0x00, 0x02, 0xc7, 0xc5, 0x07, 0xaf, 0xff, 0xee, - 0x60, 0x81, 0x60, 0x83, 0x15, 0xd3, 0xa0, 0x83, 0x04, 0x60, 0x91, 0xb6, 0x03, 0x00, 0x00, 0x02, - 0xc8, 0x0c, 0x01, 0x6a, 0xc3, 0x20, 0xf8, 0x00, 0xc8, 0x0c, 0x01, 0x6a, 0xc1, 0xa0, 0xf8, 0x06, - 0x11, 0x10, 0xc8, 0x06, 0xf8, 0x04, 0x04, 0xe4, 0xff, 0xf6, 0xcd, 0x06, 0x02, 0x24, 0x00, 0x04, - 0xc9, 0x0b, 0x00, 0x02, 0xc5, 0x0c, 0x07, 0xa4, 0xff, 0xee, 0x68, 0x81, 0x03, 0x90, 0x0a, 0x07, - 0x03, 0x80, 0x01, 0x86, 0x80, 0x00, 0xc1, 0x46, 0x06, 0x06, 0x01, 0x86, 0x00, 0x01, 0xc8, 0x06, - 0xf8, 0x04, 0x04, 0xe4, 0xff, 0xf6, 0xcd, 0x05, 0x02, 0x24, 0x00, 0x04, 0xc9, 0x0b, 0x00, 0x02, - 0xc5, 0x0c, 0x07, 0xa4, 0xff, 0xee, 0x68, 0x81, 0x61, 0x46, 0x07, 0xa0, 0x00, 0x1a, 0x95, 0xa8, - 0x03, 0x90, 0x08, 0x07, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, 0xc8, 0x0c, 0x01, 0x6a, 0xc1, 0xa6, - 0xf8, 0x06, 0xc3, 0x20, 0xf8, 0x00, 0xc8, 0x0c, 0x01, 0x6a, 0xc8, 0x06, 0xf8, 0x06, 0xc8, 0x05, - 0xf8, 0x04, 0xc3, 0x20, 0xf8, 0x00, 0x04, 0xe0, 0xf8, 0x00, 0x07, 0xa0, 0xf8, 0x02, 0x81, 0x00, - 0x07, 0x20, 0xfb, 0xfe, 0x07, 0xa0, 0x01, 0x00, 0x20, 0x81, 0x03, 0x90, 0x02, 0x07, 0x03, 0x80, - 0xc2, 0x84, 0xc3, 0x0a, 0xc8, 0x0a, 0x01, 0x6a, 0x01, 0x20, 0xf8, 0x02, 0x81, 0x00, 0x13, 0x09, - 0x01, 0x20, 0xf8, 0x02, 0xfe, 0x00, 0x16, 0x0a, 0xc2, 0xa0, 0xf8, 0x00, 0x16, 0xf2, 0x06, 0xa0, - 0x97, 0xb6, 0xc2, 0xa0, 0xf8, 0x00, 0x16, 0xee, 0x06, 0xa0, 0x97, 0xb6, 0xc2, 0xa0, 0xf8, 0x02, - 0x11, 0x09, 0x01, 0x0a, 0x02, 0x00, 0x16, 0x55, 0x01, 0x0a, 0x14, 0x00, 0x13, 0x5f, 0x01, 0x4a, - 0x10, 0x00, 0x16, 0x33, 0x07, 0x0a, 0x26, 0xa0, 0x08, 0x9e, 0x16, 0x02, 0xc2, 0xa0, 0x08, 0xa0, - 0x09, 0x5a, 0x05, 0x0a, 0x02, 0x2a, 0x08, 0x10, 0xc8, 0x0a, 0x08, 0x9c, 0x04, 0xe0, 0x08, 0x98, - 0x07, 0x8a, 0x7f, 0xfe, 0x98, 0x0a, 0x07, 0x2c, 0x13, 0x0a, 0x98, 0x0a, 0x07, 0x20, 0x13, 0x07, - 0x06, 0xca, 0x98, 0x0a, 0x07, 0x2c, 0x13, 0x03, 0x98, 0x0a, 0x07, 0x20, 0x16, 0x0a, 0x01, 0xe0, - 0x06, 0xd2, 0x08, 0x00, 0x01, 0xe0, 0x06, 0x34, 0x08, 0x00, 0x04, 0xe0, 0x06, 0x30, 0x04, 0xcb, - 0x10, 0x0c, 0x07, 0x8a, 0x01, 0x00, 0xb8, 0x0a, 0x07, 0x2c, 0x17, 0x02, 0x78, 0x0a, 0x07, 0x2c, - 0xb8, 0x0a, 0x07, 0x20, 0x17, 0x02, 0x78, 0x0a, 0x07, 0x20, 0xc2, 0xa0, 0xfb, 0xfe, 0x02, 0x4a, - 0x01, 0x00, 0x01, 0xca, 0x80, 0x00, 0xc8, 0x0a, 0xf8, 0x02, 0xc8, 0x0c, 0x01, 0x6a, 0xc2, 0xa0, - 0xf8, 0x02, 0x11, 0x07, 0x07, 0xa0, 0xf8, 0x02, 0x80, 0x00, 0xc8, 0x20, 0xf8, 0x00, 0x01, 0x6a, - 0x10, 0xf6, 0x07, 0x8a, 0x01, 0x8c, 0xc6, 0x8c, 0xc2, 0xcb, 0x03, 0x90, 0xff, 0xdf, 0x13, 0x32, - 0x03, 0x80, 0x01, 0x4a, 0x06, 0x00, 0x13, 0x0a, 0x01, 0xe0, 0x06, 0xd2, 0x02, 0x00, 0x01, 0xe0, - 0x06, 0x34, 0x08, 0x00, 0x04, 0xe0, 0x06, 0x30, 0x01, 0xcb, 0x00, 0x01, 0x88, 0x05, 0x01, 0x6a, - 0x13, 0x1a, 0xc3, 0x20, 0xfb, 0xfe, 0x16, 0x08, 0x04, 0xe0, 0xf8, 0x02, 0xc8, 0x20, 0xf8, 0x00, - 0x01, 0x6a, 0x16, 0xf4, 0x06, 0xa0, 0x97, 0xb6, 0xd2, 0xa0, 0xe0, 0x12, 0xc8, 0x0a, 0xf8, 0x02, - 0xc3, 0x20, 0xf8, 0x00, 0x13, 0x06, 0xc2, 0xa0, 0xf8, 0x02, 0x11, 0xd3, 0xc2, 0x8c, 0x04, 0x60, - 0x95, 0xe6, 0x06, 0xa0, 0x97, 0xb6, 0xc8, 0x0a, 0xf8, 0x02, 0x07, 0x8a, 0x01, 0x8c, 0x01, 0x4b, - 0x00, 0x01, 0x04, 0x5b, 0x07, 0x8b, 0x00, 0xda, 0xce, 0xcd, 0xce, 0xce, 0xc6, 0xcf, 0x02, 0xe0, - 0x00, 0xc0, 0x04, 0x54, 0x06, 0xa0, 0x95, 0xe2, 0x16, 0x25, 0xc0, 0x82, 0x13, 0x0b, 0xc6, 0x81, - 0xc8, 0x09, 0x01, 0x6a, 0xc8, 0x04, 0xf8, 0x00, 0xc2, 0x45, 0xc1, 0x01, 0xc1, 0x42, 0x04, 0xc2, - 0xc0, 0xc0, 0x10, 0xe8, 0xc8, 0x09, 0x01, 0x6a, 0xc8, 0x04, 0xf8, 0x00, 0xc2, 0x45, 0x04, 0xc3, - 0x10, 0xe1, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, 0x86, 0x8a, 0x01, 0x60, - 0x01, 0x9c, 0x40, 0x00, 0x16, 0xf6, 0x86, 0x8a, 0xc8, 0x05, 0x01, 0x6a, 0x01, 0x20, 0xf8, 0x02, - 0xfe, 0x00, 0x16, 0xd8, 0xc0, 0x82, 0x13, 0x0d, 0xc6, 0x81, 0xc8, 0x09, 0x01, 0x6a, 0xc8, 0x04, - 0xf8, 0x00, 0xc2, 0x45, 0xc1, 0x01, 0xc1, 0x42, 0x04, 0xc2, 0xc0, 0xc0, 0x03, 0x90, 0x00, 0x1f, - 0x03, 0x80, 0xc8, 0x09, 0x01, 0x6a, 0xc8, 0x04, 0xf8, 0x00, 0xc2, 0x45, 0x04, 0xc3, 0x03, 0x90, - 0x00, 0x1f, 0x03, 0x80, 0x02, 0xe0, 0x08, 0x6a, 0xc2, 0x8b, 0x02, 0x2a, 0xff, 0xfc, 0x04, 0x60, - 0xb3, 0x8a, 0xc0, 0x82, 0x13, 0x07, 0xc6, 0x81, 0xc8, 0x09, 0x01, 0x6a, 0xc8, 0x04, 0xf8, 0x00, - 0xc2, 0x45, 0x10, 0x06, 0xc8, 0x09, 0x01, 0x6a, 0xc8, 0x04, 0xf8, 0x00, 0xc2, 0x45, 0x04, 0xc0, - 0x06, 0xa0, 0x99, 0x16, 0xc0, 0xc0, 0xc1, 0x01, 0xc1, 0x42, 0x04, 0xc2, 0x10, 0x9b, 0x03, 0x90, - 0xff, 0xff, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, 0x86, 0x8a, 0x01, 0x60, 0x01, 0x9c, 0x40, 0x00, - 0x16, 0xf6, 0x86, 0x8a, 0xc8, 0x05, 0x01, 0x6a, 0x01, 0x20, 0xf8, 0x02, 0xfe, 0x00, 0x13, 0x03, - 0x06, 0xa0, 0x95, 0xe2, 0x13, 0xd6, 0xc0, 0x82, 0x13, 0x07, 0xc6, 0x81, 0xc8, 0x09, 0x01, 0x6a, - 0xc8, 0x04, 0xf8, 0x00, 0xc2, 0x45, 0x10, 0x06, 0xc8, 0x09, 0x01, 0x6a, 0xc8, 0x04, 0xf8, 0x00, - 0xc2, 0x45, 0x04, 0xc0, 0x06, 0xa0, 0x99, 0x16, 0xc0, 0xc0, 0xc1, 0x01, 0xc1, 0x42, 0x04, 0xc2, - 0x03, 0x90, 0x00, 0x1f, 0x03, 0x80, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, - 0x88, 0x08, 0x01, 0x8c, 0x01, 0x60, 0x01, 0x9c, 0x40, 0x00, 0x16, 0xf5, 0x88, 0x08, 0x01, 0x8c, - 0xc0, 0xe0, 0x01, 0x6c, 0xc2, 0x20, 0x05, 0xf4, 0x13, 0x02, 0x04, 0x60, 0xb9, 0x4c, 0x02, 0xe0, - 0x08, 0x6a, 0x01, 0x03, 0x00, 0xff, 0x13, 0x11, 0x01, 0x43, 0x04, 0x00, 0x13, 0x0e, 0xc8, 0x09, - 0x01, 0x6a, 0xc8, 0x04, 0xf8, 0x00, 0xc2, 0x45, 0xc1, 0x60, 0x08, 0x96, 0x02, 0x85, 0x97, 0xf6, - 0x16, 0x02, 0x06, 0xa0, 0x99, 0x16, 0x02, 0x43, 0x03, 0x00, 0x02, 0xe0, 0x00, 0xe0, 0x01, 0x20, - 0x08, 0x70, 0x01, 0x00, 0x16, 0x2f, 0xc2, 0x20, 0x05, 0xf4, 0x16, 0x2c, 0xc2, 0x60, 0x05, 0xf0, - 0x13, 0x12, 0xc8, 0x19, 0x05, 0xf0, 0xc2, 0xa9, 0x00, 0x0a, 0x11, 0x02, 0xf2, 0xa0, 0x09, 0x2e, - 0xd8, 0x0a, 0x01, 0x80, 0xc8, 0x29, 0x00, 0x06, 0x01, 0x8c, 0x07, 0xa0, 0x09, 0x16, 0x00, 0x04, - 0xc8, 0x09, 0x05, 0xf4, 0x10, 0x17, 0x02, 0xe0, 0x08, 0x6a, 0x01, 0x83, 0x06, 0x00, 0x16, 0x05, - 0xc1, 0x42, 0x13, 0x08, 0xc0, 0xc0, 0xc1, 0x01, 0x04, 0xc2, 0xd8, 0x20, 0x09, 0x2e, 0x01, 0x80, - 0xc8, 0x04, 0x01, 0x8c, 0x02, 0xe0, 0x00, 0xe0, 0x07, 0xa0, 0x00, 0x14, 0x08, 0x6a, 0xc8, 0x20, - 0x08, 0x96, 0x00, 0x16, 0xc8, 0x03, 0x01, 0x6c, 0x11, 0x03, 0x03, 0x90, 0x11, 0xff, 0x03, 0x80, - 0x04, 0x60, 0xb9, 0xc0, 0xc8, 0x04, 0x01, 0x6a, 0x10, 0x03, 0xc8, 0x20, 0xf8, 0x00, 0x01, 0x6a, - 0xc3, 0x20, 0xf8, 0x02, 0x01, 0x4c, 0x01, 0x00, 0x16, 0xf8, 0xc1, 0x60, 0x10, 0x86, 0x02, 0x45, - 0x00, 0x1f, 0x06, 0xcc, 0xd9, 0x4c, 0x10, 0x88, 0x13, 0x0d, 0x05, 0xa0, 0x10, 0x86, 0x06, 0x03, - 0x01, 0x03, 0x00, 0xff, 0x13, 0x52, 0xc1, 0x20, 0xf8, 0x00, 0xc8, 0x04, 0x01, 0x6a, 0x16, 0xe8, - 0x06, 0xa0, 0x97, 0xb6, 0x01, 0x0c, 0x00, 0xfe, 0x16, 0xf0, 0xc3, 0x20, 0x01, 0x6a, 0xc8, 0x04, - 0x01, 0x6a, 0x01, 0x20, 0xf8, 0x0e, 0x80, 0x00, 0x13, 0x07, 0xc1, 0x20, 0xf8, 0x14, 0x01, 0x84, - 0x60, 0xff, 0x02, 0x84, 0x02, 0x00, 0x1b, 0x33, 0xc1, 0x20, 0xf8, 0x08, 0x11, 0x0c, 0x88, 0x20, - 0xf8, 0x0c, 0x01, 0xa4, 0x16, 0x2f, 0x88, 0x20, 0xf8, 0x0a, 0x01, 0xa2, 0x16, 0x2b, 0x88, 0x04, - 0x01, 0xa0, 0x13, 0x25, 0x10, 0x27, 0xc1, 0x20, 0xf8, 0x0a, 0x11, 0x09, 0x25, 0x20, 0x01, 0xac, - 0x16, 0x1e, 0xc1, 0x20, 0xf8, 0x0c, 0x25, 0x20, 0x01, 0xae, 0x16, 0x19, 0x10, 0x1b, 0x02, 0x84, - 0xff, 0xff, 0x16, 0x0a, 0x88, 0x04, 0xf8, 0x0c, 0x16, 0x07, 0x41, 0x20, 0xf8, 0x08, 0x13, 0x0f, - 0x02, 0x84, 0x3f, 0xff, 0x13, 0x0c, 0x10, 0x0e, 0x88, 0x04, 0x01, 0xa8, 0x16, 0x0b, 0x88, 0x20, - 0xf8, 0x0c, 0x01, 0xaa, 0x16, 0x07, 0x88, 0x20, 0xf8, 0x08, 0x01, 0xa6, 0x16, 0x03, 0xd9, 0x60, - 0xee, 0xa8, 0x10, 0x88, 0xc8, 0x0c, 0x01, 0x6a, 0x10, 0xa8, 0x01, 0x43, 0x20, 0x00, 0x16, 0x07, - 0x07, 0x85, 0x01, 0x04, 0x01, 0x55, 0x21, 0x00, 0x16, 0x03, 0x07, 0x95, 0xde, 0x8c, 0x04, 0x5b, - 0x01, 0x55, 0x01, 0x00, 0x16, 0xfc, 0xc1, 0x15, 0x01, 0xc4, 0xff, 0x00, 0x01, 0x84, 0x04, 0x80, - 0xc5, 0x44, 0x01, 0x55, 0x20, 0x00, 0x13, 0xf1, 0x01, 0xe0, 0x07, 0x78, 0x80, 0x00, 0x04, 0x5b, - 0x03, 0x00, 0x00, 0x02, 0xc2, 0x0b, 0xc3, 0x20, 0x05, 0xf4, 0x16, 0x08, 0xc3, 0x20, 0x08, 0x70, - 0x01, 0x0c, 0x00, 0xff, 0x13, 0x1a, 0x01, 0x4c, 0x04, 0x00, 0x13, 0x17, 0xc2, 0xa8, 0x00, 0x0a, - 0x01, 0x4a, 0x00, 0x10, 0x16, 0x46, 0x01, 0x4a, 0x80, 0x00, 0x16, 0x19, 0xc3, 0x08, 0x06, 0xa0, - 0x9a, 0xf4, 0xc2, 0x0c, 0xc3, 0x20, 0x05, 0xf4, 0x16, 0x12, 0xc3, 0x20, 0x08, 0x70, 0x01, 0x0c, - 0x00, 0xff, 0x13, 0x03, 0x01, 0x4c, 0x04, 0x00, 0x16, 0x0a, 0x01, 0x68, 0x00, 0x0a, 0x00, 0x10, - 0x13, 0x03, 0x01, 0x0c, 0x01, 0x00, 0x16, 0x2d, 0x06, 0xa0, 0xbc, 0x40, 0x10, 0x04, 0x07, 0x87, - 0x05, 0xf0, 0x06, 0xa0, 0xc2, 0x8a, 0x01, 0xe0, 0x08, 0x70, 0x02, 0x00, 0x07, 0xa0, 0x00, 0x14, - 0x00, 0xe0, 0x07, 0xa0, 0x00, 0x16, 0x98, 0x4e, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0xa8, 0xc3, - 0xa9, 0xa0, 0xcf, 0xec, 0xe9, 0xe3, 0xef, 0xed, 0xa0, 0xb1, 0xb9, 0xb9, 0xb6, 0x00, 0x03, 0x00, - 0x00, 0x02, 0xc2, 0x20, 0x08, 0x70, 0x16, 0x0c, 0xd8, 0x20, 0x09, 0x2e, 0x01, 0x80, 0xc8, 0x2b, - 0x00, 0x06, 0x01, 0x8c, 0x07, 0xa0, 0x09, 0x16, 0x00, 0x04, 0xc8, 0x0b, 0x05, 0xf4, 0x10, 0x05, - 0xc2, 0x0b, 0x07, 0x87, 0x05, 0xf0, 0x06, 0xa0, 0xc2, 0x44, 0x01, 0xe0, 0x08, 0x70, 0x02, 0x00, - 0x07, 0xa0, 0x00, 0x14, 0x00, 0xe0, 0x07, 0xa0, 0x00, 0x16, 0x98, 0x4e, 0x03, 0x90, 0xff, 0xff, - 0x03, 0x80, 0xc2, 0x20, 0x05, 0xf4, 0x13, 0x02, 0x04, 0x60, 0xbc, 0x04, 0x02, 0xa8, 0xc8, 0x08, - 0x08, 0x84, 0x02, 0xe0, 0x08, 0x6a, 0x01, 0x03, 0x00, 0xff, 0x13, 0x22, 0x01, 0x43, 0x04, 0x00, - 0x13, 0x1f, 0x01, 0xe0, 0x01, 0x9c, 0x40, 0x00, 0x0b, 0xab, 0x0b, 0xab, 0x01, 0x60, 0x01, 0x9c, - 0x40, 0x00, 0x16, 0x16, 0xc8, 0x04, 0x01, 0x6a, 0xc2, 0xe0, 0xf8, 0x02, 0x11, 0x0f, 0xc8, 0x09, - 0x01, 0x6a, 0xc8, 0x04, 0xf8, 0x00, 0xc2, 0x45, 0xc1, 0x60, 0x08, 0x96, 0x02, 0x85, 0x97, 0xf6, - 0x16, 0x02, 0x06, 0xa0, 0x99, 0x16, 0x02, 0x43, 0x03, 0x00, 0x10, 0x02, 0x01, 0xc3, 0x04, 0x00, - 0x00, 0x9d, 0x04, 0x5b, 0x03, 0x00, 0x00, 0x02, 0x07, 0x87, 0x05, 0xf0, 0xc2, 0xcb, 0x16, 0x0f, - 0x06, 0xa0, 0x9a, 0xf4, 0x01, 0xe0, 0x08, 0x70, 0x01, 0x00, 0x07, 0xa0, 0x00, 0x14, 0x00, 0xe0, - 0x07, 0xa0, 0x00, 0x16, 0x98, 0x4e, 0xcb, 0x60, 0x05, 0xf4, 0x00, 0x02, 0x03, 0x80, 0xc2, 0x20, - 0x08, 0x70, 0x01, 0x88, 0x01, 0x00, 0xc8, 0x08, 0x08, 0x70, 0x01, 0x08, 0x04, 0x00, 0x16, 0x03, - 0x01, 0x08, 0x00, 0xff, 0x16, 0x08, 0xc2, 0x20, 0x05, 0xf4, 0x16, 0x05, 0xc2, 0x17, 0x13, 0x04, - 0xc5, 0xd8, 0x06, 0xa0, 0xbc, 0x40, 0x03, 0x80, 0x02, 0xe0, 0x08, 0x6a, 0x01, 0x83, 0x06, 0x00, - 0x16, 0x05, 0xc1, 0x42, 0x13, 0x08, 0xc0, 0xc0, 0xc1, 0x01, 0x04, 0xc2, 0xd8, 0x20, 0x09, 0x2e, - 0x01, 0x80, 0xc8, 0x04, 0x01, 0x8c, 0x02, 0xe0, 0x00, 0xc0, 0x07, 0xa0, 0x00, 0x14, 0x08, 0x6a, - 0xc8, 0x20, 0x08, 0x96, 0x00, 0x16, 0x03, 0x80, 0xc8, 0x01, 0x01, 0x6a, 0x13, 0x05, 0xc2, 0xe0, - 0xf8, 0x02, 0x11, 0x02, 0x06, 0xa0, 0x97, 0xb6, 0x01, 0x60, 0x01, 0x9c, 0x00, 0x40, 0x13, 0x01, - 0x03, 0x80, 0xd8, 0x20, 0x09, 0x2f, 0x01, 0x83, 0xc0, 0x41, 0x13, 0x04, 0xc8, 0x01, 0x01, 0x8a, - 0xc8, 0x01, 0x09, 0x18, 0x07, 0x85, 0x00, 0x43, 0x01, 0x20, 0x0c, 0x06, 0x00, 0xc0, 0x16, 0x20, - 0xc2, 0x20, 0x0c, 0x02, 0x06, 0x08, 0x01, 0x08, 0xfe, 0x03, 0x16, 0x1a, 0x07, 0x8a, 0x00, 0x24, - 0x62, 0xa0, 0x0c, 0x04, 0xc8, 0x0a, 0x0c, 0x04, 0x07, 0x87, 0x06, 0x30, 0x01, 0xe7, 0x00, 0x04, - 0x00, 0x40, 0x04, 0xd7, 0x02, 0x27, 0x00, 0x0c, 0xc2, 0x57, 0x16, 0x04, 0xcd, 0xc5, 0xc5, 0xc5, - 0x04, 0x60, 0xb9, 0xc0, 0x05, 0xc7, 0xc8, 0x17, 0x01, 0x6a, 0xc8, 0x05, 0xf8, 0x00, 0x10, 0xf7, - 0x04, 0x60, 0xf8, 0xfe, 0x03, 0x00, 0x00, 0x02, 0xc3, 0x20, 0x01, 0x8a, 0x98, 0x20, 0xe0, 0x10, - 0x01, 0x83, 0x13, 0xba, 0x01, 0x20, 0x01, 0x9c, 0x00, 0x40, 0x13, 0x02, 0x06, 0xa0, 0xd7, 0xd8, - 0xc1, 0x41, 0x83, 0x05, 0x16, 0x01, 0x03, 0x80, 0xc8, 0x05, 0x01, 0x6a, 0xc2, 0x20, 0xf8, 0x02, - 0x01, 0x40, 0x00, 0x40, 0x16, 0x12, 0x88, 0x01, 0x09, 0x18, 0x16, 0x07, 0xc8, 0x20, 0x09, 0x1a, - 0x09, 0x18, 0x04, 0xe0, 0x09, 0x1a, 0x01, 0xc0, 0x00, 0x04, 0x01, 0x80, 0x40, 0x40, 0x01, 0x20, - 0xf8, 0x06, 0x00, 0xc0, 0x16, 0x02, 0x01, 0xc0, 0x40, 0x00, 0x01, 0x48, 0x01, 0x00, 0x16, 0x55, - 0x01, 0xc0, 0x00, 0x40, 0x01, 0x00, 0x40, 0x04, 0x13, 0x50, 0x01, 0x40, 0x40, 0x00, 0x16, 0x48, - 0x01, 0xa0, 0x07, 0x78, 0x40, 0x00, 0x01, 0x80, 0x40, 0x00, 0x01, 0x48, 0x00, 0x01, 0x16, 0x3d, - 0x01, 0x80, 0x00, 0x04, 0xc1, 0x41, 0xc0, 0x60, 0xf8, 0x00, 0x04, 0xe0, 0xf8, 0x00, 0x07, 0x8b, - 0x03, 0xea, 0x62, 0xe0, 0xf8, 0x04, 0xc8, 0x0b, 0xf8, 0x04, 0x85, 0x05, 0x16, 0x02, 0xc5, 0x01, - 0x10, 0x10, 0xc8, 0x14, 0x01, 0x6a, 0x88, 0x05, 0xf8, 0x00, 0x13, 0x06, 0xc8, 0x20, 0xf8, 0x00, - 0x01, 0x6a, 0x88, 0x05, 0xf8, 0x00, 0x16, 0xfa, 0xc8, 0x01, 0xf8, 0x00, 0x16, 0x02, 0xc0, 0xa0, - 0x01, 0x6a, 0x01, 0x08, 0xfe, 0x00, 0x16, 0x4a, 0xc8, 0x05, 0x01, 0x6a, 0x07, 0x87, 0x06, 0x30, - 0x01, 0xe7, 0x00, 0x04, 0x00, 0x40, 0x04, 0xd7, 0x02, 0x27, 0x00, 0x0c, 0xa1, 0x45, 0xc9, 0x60, - 0xf8, 0x00, 0x0c, 0x32, 0x04, 0xe0, 0xf8, 0x00, 0x09, 0x15, 0xc2, 0x57, 0x16, 0x31, 0xcd, 0xc5, - 0xc5, 0xc5, 0x01, 0xc0, 0x00, 0x20, 0xc1, 0x41, 0x10, 0x0e, 0x01, 0x40, 0x00, 0x04, 0x16, 0x05, - 0x01, 0x80, 0x00, 0x04, 0x01, 0xe0, 0xf8, 0x02, 0x40, 0x00, 0xc1, 0x60, 0xf8, 0x00, 0x01, 0x00, - 0x40, 0x00, 0x16, 0x01, 0xc0, 0x45, 0x83, 0x05, 0x16, 0x87, 0xc2, 0xe0, 0x09, 0x18, 0x16, 0x10, - 0x01, 0x00, 0x00, 0x04, 0x16, 0x0d, 0x98, 0x20, 0xe0, 0x10, 0x01, 0x83, 0x13, 0x09, 0x07, 0x8b, - 0xd7, 0x5e, 0x01, 0x40, 0x00, 0x40, 0x13, 0x02, 0x07, 0x8b, 0xd7, 0xa4, 0xc8, 0x0b, 0x00, 0x12, - 0x01, 0x00, 0x00, 0x20, 0x16, 0x01, 0x03, 0x80, 0x01, 0x80, 0x00, 0x20, 0x04, 0x60, 0xb9, 0xc0, - 0x05, 0xc7, 0xc8, 0x17, 0x01, 0x6a, 0xc8, 0x05, 0xf8, 0x00, 0x10, 0xca, 0xc1, 0x81, 0x06, 0xa0, - 0xf9, 0x32, 0xc1, 0x46, 0x10, 0xd8, 0x05, 0xa0, 0x09, 0x32, 0xc0, 0x41, 0x16, 0x01, 0x03, 0x80, - 0xc3, 0x20, 0x00, 0x12, 0x04, 0x5c, 0x03, 0x00, 0x00, 0x00, 0x03, 0xb0, 0x10, 0xff, 0x03, 0x80, - 0x20, 0x00, 0x9d, 0xd2, 0x02, 0x2f, 0x00, 0x00, 0x20, 0x00, 0xc7, 0x46, 0x00, 0x88, 0xc0, 0x60, - 0x05, 0xee, 0x02, 0x21, 0x03, 0xe8, 0x01, 0x20, 0x01, 0x02, 0x00, 0x06, 0x13, 0x04, 0x01, 0x20, - 0x01, 0x00, 0x08, 0x00, 0x13, 0x04, 0x88, 0x01, 0x05, 0xee, 0x16, 0xf5, 0x10, 0x35, 0x07, 0x81, - 0x01, 0x0a, 0xcc, 0x4c, 0xcc, 0x4c, 0xcc, 0x4e, 0xcc, 0x4f, 0x07, 0xb1, 0x00, 0x40, 0xc4, 0x4d, - 0xc8, 0x0a, 0x01, 0x00, 0x04, 0x5b, 0xc0, 0x60, 0x05, 0xee, 0x02, 0x21, 0x03, 0xe8, 0x01, 0x20, - 0x01, 0x02, 0x00, 0x06, 0x13, 0x04, 0x01, 0x20, 0x01, 0x00, 0x08, 0x00, 0x13, 0x04, 0x88, 0x01, - 0x05, 0xee, 0x16, 0xf5, 0x10, 0x19, 0x07, 0x81, 0x01, 0x0a, 0xcc, 0x4c, 0xcc, 0x4c, 0xcc, 0x4e, - 0xcc, 0x4f, 0x07, 0xb1, 0x00, 0x40, 0xc4, 0x4d, 0xc8, 0x0a, 0x01, 0x00, 0xc0, 0x60, 0x05, 0xee, - 0x02, 0x21, 0x03, 0xe8, 0x01, 0x20, 0x01, 0x02, 0x00, 0x06, 0x13, 0x01, 0x04, 0x5b, 0x88, 0x01, - 0x05, 0xee, 0x16, 0xf8, 0x10, 0x01, 0x20, 0x00, 0xce, 0x3e, 0x0a, 0x32, 0x07, 0x8d, 0x10, 0x00, - 0x20, 0x0d, 0x16, 0x28, 0x07, 0x8d, 0x08, 0x00, 0x01, 0x40, 0x02, 0x00, 0x13, 0x23, 0x01, 0xc0, - 0x02, 0x00, 0x07, 0x8f, 0x97, 0xf6, 0xc3, 0x8e, 0x11, 0x02, 0x07, 0x8f, 0x97, 0x6a, 0xc8, 0x0f, - 0x08, 0x96, 0xc3, 0x60, 0x00, 0x16, 0x02, 0x8d, 0x98, 0x4e, 0x13, 0x02, 0xc8, 0x0f, 0x00, 0x16, - 0x07, 0x8f, 0x03, 0xf8, 0x02, 0x4e, 0x40, 0x00, 0xc8, 0x0e, 0x08, 0x98, 0xc8, 0x0e, 0x08, 0x9a, - 0x13, 0x05, 0x07, 0x8e, 0xee, 0x60, 0xc3, 0xfe, 0xc8, 0x0e, 0x08, 0x90, 0xc8, 0x0f, 0x08, 0x62, - 0x04, 0x20, 0xea, 0x7a, 0x04, 0x5b, 0x07, 0x8d, 0x10, 0x00, 0x20, 0x0d, 0x16, 0xfb, 0x07, 0x8d, - 0x08, 0x00, 0x01, 0x40, 0x04, 0x00, 0x13, 0xf6, 0x07, 0x8d, 0x40, 0x00, 0x01, 0x0e, 0x00, 0x01, - 0x16, 0xf1, 0x01, 0xc0, 0x04, 0x00, 0x06, 0x0f, 0x01, 0x8f, 0x80, 0x00, 0xc8, 0x0f, 0x08, 0x8c, - 0xc3, 0xce, 0x01, 0x8e, 0xe0, 0x00, 0x05, 0x0e, 0xc8, 0x0e, 0x08, 0x4c, 0xa8, 0x0e, 0x08, 0x8c, - 0x09, 0xdf, 0x02, 0x4f, 0x00, 0x04, 0x02, 0x2f, 0x03, 0xf0, 0xc8, 0x0f, 0x08, 0x8a, 0x01, 0x85, - 0x00, 0x40, 0x04, 0x20, 0xea, 0x7a, 0xc0, 0x41, 0x13, 0xfe, 0x03, 0x00, 0x00, 0x02, 0x88, 0x01, - 0x00, 0xe2, 0x13, 0x36, 0xc8, 0x01, 0x01, 0x6c, 0x01, 0x20, 0xfc, 0x06, 0x00, 0xc0, 0x13, 0x30, - 0xc0, 0xe0, 0xfc, 0x02, 0xc1, 0x81, 0x07, 0x20, 0xfc, 0x02, 0x07, 0xa0, 0xfc, 0x04, 0x03, 0xee, - 0xc8, 0x04, 0xfc, 0x76, 0xc8, 0x04, 0xfc, 0xe6, 0xc8, 0x04, 0xfd, 0x56, 0xc8, 0x04, 0xfd, 0xc6, - 0xc8, 0x04, 0xfe, 0x36, 0xc8, 0x04, 0xfe, 0xa6, 0xc8, 0x04, 0xff, 0x16, 0xc8, 0x04, 0xff, 0x86, - 0x07, 0x8e, 0xfc, 0x00, 0xc0, 0x5e, 0x04, 0xde, 0xc8, 0x20, 0x00, 0xe4, 0x01, 0x6c, 0xc8, 0x06, - 0xfc, 0x00, 0xc8, 0x06, 0x00, 0xe4, 0x01, 0x43, 0x01, 0x00, 0x13, 0x0a, 0x03, 0x00, 0x00, 0x0f, - 0x03, 0x00, 0x00, 0x02, 0x88, 0x01, 0x00, 0xe2, 0x13, 0xf9, 0xc8, 0x01, 0x01, 0x6c, 0x10, 0xd0, - 0x03, 0x00, 0x00, 0x0f, 0x01, 0x60, 0x07, 0x58, 0x14, 0x00, 0x16, 0xbf, 0x07, 0x83, 0xfc, 0x76, - 0x02, 0xe0, 0x08, 0x5c, 0x04, 0x60, 0x91, 0x6a, 0x02, 0x2d, 0x00, 0x06, 0xc0, 0xa0, 0x08, 0x4c, - 0x04, 0x60, 0xd3, 0x36, 0x01, 0x00, 0x07, 0xff, 0x16, 0x11, 0x01, 0xc0, 0x07, 0xff, 0x01, 0x00, - 0x20, 0x00, 0x16, 0x29, 0x01, 0xc0, 0x20, 0x00, 0x07, 0x8f, 0x08, 0x92, 0xc7, 0xc1, 0xc8, 0x0f, - 0x00, 0xe8, 0xc0, 0x60, 0x05, 0xf8, 0x04, 0xe0, 0x05, 0xf8, 0x10, 0x1f, 0x01, 0x40, 0x20, 0x00, - 0x16, 0x0b, 0xc0, 0x60, 0x05, 0xf8, 0x16, 0xf7, 0x01, 0x80, 0x20, 0x00, 0x07, 0xa0, 0x00, 0xe8, - 0x07, 0x7a, 0xc0, 0x60, 0x08, 0x92, 0x10, 0x0f, 0xc3, 0xdd, 0x13, 0x05, 0x03, 0x90, 0x00, 0x17, - 0x06, 0x9b, 0x02, 0x2d, 0x00, 0x06, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, - 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x24, 0x40, 0x13, 0xcd, 0xc8, 0x01, 0x01, 0x6c, 0x88, 0x01, - 0x00, 0xe2, 0x16, 0x24, 0xc3, 0xdd, 0x16, 0xea, 0x84, 0xc4, 0x13, 0xed, 0x01, 0x20, 0xfc, 0x06, - 0x00, 0xc0, 0x16, 0x53, 0x01, 0xc0, 0x40, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, - 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x01, 0x40, 0x40, 0x00, 0x16, 0xe4, 0xc3, 0xdd, - 0x13, 0xf3, 0x03, 0x90, 0x00, 0x17, 0x06, 0x9b, 0x02, 0x2d, 0x00, 0x06, 0xc8, 0x01, 0x01, 0x6c, - 0x10, 0xeb, 0x07, 0x86, 0x03, 0xf4, 0x61, 0x89, 0x04, 0x60, 0xd4, 0x28, 0xc0, 0xe0, 0xfc, 0x02, - 0x13, 0xf8, 0xc1, 0xa0, 0x08, 0x8a, 0x61, 0x89, 0x61, 0xa0, 0xfc, 0x04, 0x15, 0x0a, 0x04, 0x60, - 0xd2, 0x78, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, - 0x13, 0xf8, 0xcd, 0x4a, 0xcd, 0x46, 0xcd, 0x47, 0xcd, 0x48, 0xc9, 0x49, 0x00, 0x02, 0xc5, 0x41, - 0x07, 0xa5, 0xff, 0xee, 0xe0, 0x81, 0x02, 0x25, 0xff, 0xf8, 0x04, 0x60, 0xd2, 0x74, 0x03, 0x90, - 0x00, 0x17, 0x06, 0x9b, 0x02, 0x2d, 0x00, 0x06, 0xc8, 0x01, 0x01, 0x6c, 0x03, 0x00, 0x00, 0x0f, - 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x88, 0x01, 0x00, 0xe2, - 0x16, 0xcd, 0xc3, 0xdd, 0x16, 0xec, 0x84, 0xc4, 0x13, 0xf1, 0x61, 0x83, 0x02, 0x23, 0x00, 0x70, - 0x84, 0xc4, 0x16, 0xfc, 0xa1, 0x83, 0xcd, 0x4a, 0xcd, 0x46, 0xcd, 0x47, 0xcd, 0x48, 0xc9, 0x49, - 0x00, 0x02, 0xc5, 0x41, 0x07, 0xa5, 0xff, 0xee, 0xe0, 0x81, 0x02, 0x25, 0xff, 0xf8, 0x62, 0x86, - 0x15, 0x43, 0xa1, 0x8a, 0xa2, 0x46, 0xa0, 0x86, 0x17, 0x21, 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, - 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x05, 0xa0, - 0x10, 0x80, 0x01, 0x5e, 0x21, 0x00, 0x16, 0x03, 0x07, 0x9e, 0xde, 0x8c, 0x10, 0x11, 0x01, 0x5e, - 0x01, 0x00, 0x16, 0x0e, 0xc3, 0xde, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, 0xc7, 0x8f, - 0x01, 0x5e, 0x20, 0x00, 0x13, 0xf1, 0x01, 0xc0, 0x80, 0x00, 0x10, 0x02, 0x05, 0xa0, 0x10, 0x80, - 0xc1, 0x8a, 0x88, 0x02, 0x08, 0x8c, 0x15, 0x3f, 0xc2, 0xac, 0x00, 0x04, 0x13, 0x3e, 0x01, 0x8a, - 0x80, 0x00, 0xc1, 0xfc, 0xc2, 0x3c, 0x04, 0xfc, 0x02, 0x8c, 0x11, 0xe8, 0x16, 0x02, 0x07, 0x8c, - 0x11, 0x28, 0x05, 0x06, 0x13, 0xa3, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, - 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x10, 0xaf, 0xa2, 0x46, 0xa2, 0x06, 0x17, 0x01, 0x05, 0x87, - 0xa0, 0x86, 0x04, 0xc6, 0x17, 0x93, 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, - 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x01, 0x5e, 0x21, 0x00, 0x16, 0x03, - 0x07, 0x9e, 0xde, 0x8c, 0x10, 0x8b, 0x01, 0x5e, 0x01, 0x00, 0x16, 0x88, 0xc3, 0xde, 0x01, 0xcf, - 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, 0xc7, 0x8f, 0x01, 0x5e, 0x20, 0x00, 0x13, 0xf1, 0x01, 0xc0, - 0x80, 0x00, 0x04, 0x60, 0xd0, 0x9e, 0x04, 0x60, 0xd5, 0xa0, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, - 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0xc2, 0xac, 0x00, 0x04, 0x16, 0xb7, - 0xc3, 0xdd, 0x13, 0xf3, 0x03, 0x90, 0x01, 0xb7, 0x06, 0x9b, 0x02, 0x2d, 0x00, 0x06, 0xc8, 0x01, - 0x01, 0x6c, 0x10, 0xeb, 0xa1, 0x8a, 0xa2, 0x46, 0xa0, 0x86, 0x17, 0x21, 0x07, 0x8e, 0x01, 0x04, - 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, - 0x05, 0xa0, 0x10, 0x80, 0x01, 0x5e, 0x21, 0x00, 0x16, 0x03, 0x07, 0x9e, 0xde, 0x8c, 0x10, 0x11, - 0x01, 0x5e, 0x01, 0x00, 0x16, 0x0e, 0xc3, 0xde, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, - 0xc7, 0x8f, 0x01, 0x5e, 0x20, 0x00, 0x13, 0xf1, 0x01, 0xc0, 0x80, 0x00, 0x10, 0x02, 0x05, 0xa0, - 0x10, 0x80, 0xc1, 0x8a, 0x88, 0x02, 0x08, 0x8c, 0x15, 0x15, 0xc2, 0xac, 0x00, 0x04, 0x16, 0x14, - 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, - 0xc3, 0xdd, 0x13, 0xf3, 0x03, 0x90, 0x01, 0xb7, 0x06, 0x9b, 0x02, 0x2d, 0x00, 0x06, 0xc8, 0x01, - 0x01, 0x6c, 0x10, 0xeb, 0x04, 0x60, 0xd5, 0xa0, 0x01, 0x8a, 0x80, 0x00, 0xc1, 0xfc, 0xc2, 0x3c, - 0x04, 0xfc, 0x02, 0x8c, 0x11, 0xe8, 0x16, 0x02, 0x07, 0x8c, 0x11, 0x28, 0x05, 0x06, 0x04, 0x60, - 0xd0, 0x54, 0x62, 0x86, 0x17, 0xaf, 0xa1, 0x82, 0xc0, 0xa0, 0x08, 0x4c, 0x61, 0x82, 0xc3, 0xe0, - 0x10, 0x82, 0x02, 0x4f, 0x00, 0x1f, 0x0a, 0x2f, 0xcb, 0xc6, 0x10, 0xa8, 0xcb, 0xc3, 0x10, 0xaa, - 0xc1, 0x81, 0x07, 0x20, 0xfc, 0x02, 0x07, 0xa0, 0xfc, 0x04, 0x03, 0xee, 0x07, 0x83, 0xfc, 0x76, - 0x07, 0x89, 0x00, 0x06, 0xc2, 0xac, 0x00, 0x04, 0x13, 0x08, 0xc1, 0xfc, 0xc2, 0x3c, 0x04, 0xfc, - 0x02, 0x8c, 0x11, 0xe8, 0x16, 0x02, 0x07, 0x8c, 0x11, 0x28, 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, - 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x05, 0xa0, - 0x10, 0x82, 0x01, 0x5e, 0x21, 0x00, 0x16, 0x3b, 0x07, 0x9e, 0xde, 0x8c, 0x05, 0xa0, 0x10, 0x80, - 0xc4, 0xc4, 0xc8, 0x04, 0xfc, 0xe6, 0xc8, 0x04, 0xfd, 0x56, 0xc8, 0x04, 0xfd, 0xc6, 0xc8, 0x04, - 0xfe, 0x36, 0xc8, 0x04, 0xfe, 0xa6, 0xc8, 0x04, 0xff, 0x16, 0xc8, 0x04, 0xff, 0x86, 0x07, 0x8e, - 0xfc, 0x00, 0xc0, 0x5e, 0x04, 0xde, 0xc8, 0x20, 0x00, 0xe4, 0x01, 0x6c, 0xc3, 0xe0, 0x00, 0xe2, - 0x13, 0x40, 0xc7, 0x86, 0xc8, 0x06, 0x00, 0xe4, 0x04, 0xc6, 0xc2, 0x8a, 0x15, 0x31, 0x13, 0x0a, - 0x05, 0xa0, 0x10, 0x80, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, - 0x01, 0x03, 0x13, 0xf8, 0xc2, 0xac, 0x00, 0x04, 0x16, 0x19, 0xc3, 0xdd, 0x13, 0xf3, 0x03, 0x90, - 0x01, 0xb7, 0x06, 0x9b, 0x02, 0x2d, 0x00, 0x06, 0xc8, 0x01, 0x01, 0x6c, 0x10, 0xeb, 0x01, 0x5e, - 0x01, 0x00, 0x16, 0xc4, 0xc3, 0xde, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, 0xc7, 0x8f, - 0x01, 0x5e, 0x20, 0x00, 0x13, 0xb9, 0x01, 0xc0, 0x80, 0x00, 0x10, 0xb8, 0xc1, 0xfc, 0xc2, 0x3c, - 0x04, 0xfc, 0x02, 0x8c, 0x11, 0xe8, 0x16, 0x02, 0x07, 0x8c, 0x11, 0x28, 0xc2, 0x8a, 0x11, 0xd0, - 0xc3, 0xdd, 0x16, 0x02, 0x04, 0x60, 0xcf, 0xe8, 0x03, 0x90, 0x00, 0x17, 0x06, 0x9b, 0x04, 0x60, - 0xcf, 0xd4, 0x07, 0x8e, 0xd3, 0x1a, 0xc8, 0x20, 0x08, 0x94, 0x01, 0x6a, 0x16, 0x03, 0xc8, 0x06, - 0x08, 0x94, 0x04, 0x5e, 0xc8, 0x06, 0xf8, 0x00, 0xc8, 0x06, 0x00, 0xe4, 0xc1, 0xa0, 0x08, 0x94, - 0x98, 0x20, 0xe0, 0x10, 0x01, 0x83, 0x16, 0x19, 0x01, 0xe0, 0x01, 0x9c, 0x00, 0x40, 0x07, 0x8f, - 0x03, 0xe8, 0x0b, 0x8f, 0x0b, 0x8f, 0x06, 0x0f, 0x13, 0x1a, 0x01, 0x60, 0x01, 0x9c, 0x00, 0x40, - 0x16, 0xf8, 0x01, 0x60, 0x0c, 0x02, 0x01, 0x00, 0x13, 0x12, 0xd8, 0x20, 0x09, 0x2f, 0x01, 0x83, - 0x07, 0xa0, 0x0c, 0x02, 0x80, 0x00, 0x0b, 0x8f, 0x0b, 0x8f, 0xc8, 0x06, 0x01, 0x8a, 0xc8, 0x06, - 0x09, 0x18, 0x07, 0xa0, 0x00, 0x12, 0x9c, 0x56, 0x01, 0xe0, 0x00, 0xe0, 0x00, 0x40, 0x04, 0xe0, - 0x08, 0x94, 0xc8, 0x06, 0x00, 0xe2, 0x01, 0x40, 0x20, 0x00, 0x13, 0x07, 0xc0, 0x41, 0x13, 0x03, - 0xc8, 0x06, 0xfc, 0x00, 0x04, 0x5e, 0xc0, 0x46, 0x04, 0x5e, 0xc3, 0xe0, 0x08, 0x92, 0x16, 0xf8, - 0xc8, 0x06, 0x08, 0x92, 0x04, 0x5e, 0xcd, 0x4a, 0xcd, 0x46, 0xcd, 0x47, 0xcd, 0x48, 0xc9, 0x49, - 0x00, 0x02, 0xc5, 0x41, 0x07, 0xa5, 0xff, 0xee, 0xe0, 0x81, 0x02, 0x25, 0xff, 0xf8, 0x62, 0x86, - 0x15, 0x57, 0xa1, 0x8a, 0xa2, 0x46, 0xa0, 0x86, 0x17, 0x21, 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, - 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x05, 0xa0, - 0x10, 0x80, 0x01, 0x5e, 0x21, 0x00, 0x16, 0x03, 0x07, 0x9e, 0xde, 0x8c, 0x10, 0x11, 0x01, 0x5e, - 0x01, 0x00, 0x16, 0x0e, 0xc3, 0xde, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, 0xc7, 0x8f, - 0x01, 0x5e, 0x20, 0x00, 0x13, 0xf1, 0x01, 0xc0, 0x80, 0x00, 0x10, 0x02, 0x05, 0xa0, 0x10, 0x80, - 0xc1, 0x8a, 0x88, 0x02, 0x08, 0x8c, 0x15, 0x15, 0xc2, 0xac, 0x00, 0x04, 0x16, 0x14, 0x03, 0x00, - 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0xc3, 0xdd, - 0x13, 0xf3, 0x03, 0x90, 0x01, 0xb7, 0x06, 0x9b, 0x02, 0x2d, 0x00, 0x06, 0xc8, 0x01, 0x01, 0x6c, - 0x10, 0xeb, 0x04, 0x60, 0xd5, 0xa0, 0x01, 0x8a, 0x80, 0x00, 0xc1, 0xfc, 0xc2, 0x3c, 0x04, 0xfc, - 0x02, 0x8c, 0x11, 0xe8, 0x16, 0x02, 0x07, 0x8c, 0x11, 0x28, 0x05, 0x06, 0x13, 0x09, 0x03, 0x00, - 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xa0, 0x01, 0x03, 0x13, 0xf8, 0x10, 0x9b, - 0xa2, 0x06, 0x17, 0x01, 0x05, 0x87, 0xa0, 0x86, 0x17, 0x1e, 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, - 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x01, 0x5e, - 0x21, 0x00, 0x16, 0x03, 0x07, 0x9e, 0xde, 0x8c, 0x10, 0x0e, 0x01, 0x5e, 0x01, 0x00, 0x16, 0x0b, - 0xc3, 0xde, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, 0xc7, 0x8f, 0x01, 0x5e, 0x20, 0x00, - 0x13, 0xf1, 0x01, 0xc0, 0x80, 0x00, 0xc1, 0x81, 0x07, 0x20, 0xfc, 0x02, 0x07, 0x83, 0xfc, 0x76, - 0x07, 0x89, 0x00, 0x06, 0x07, 0x8e, 0xfc, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, - 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0xc4, 0xc4, 0xc8, 0x04, 0xfc, 0xe6, 0xc8, 0x04, - 0xfd, 0x56, 0xc8, 0x04, 0xfd, 0xc6, 0xc8, 0x04, 0xfe, 0x36, 0xc8, 0x04, 0xfe, 0xa6, 0xc8, 0x04, - 0xff, 0x16, 0xc8, 0x04, 0xff, 0x86, 0xc0, 0x5e, 0x04, 0xde, 0xc8, 0x20, 0x00, 0xe4, 0x01, 0x6c, - 0xc3, 0xe0, 0x00, 0xe2, 0x13, 0x08, 0xc7, 0x86, 0xc8, 0x06, 0x00, 0xe4, 0x04, 0xc6, 0xc8, 0x01, - 0x01, 0x6c, 0x04, 0x60, 0xd0, 0x9e, 0x07, 0x8e, 0xd5, 0x8e, 0x04, 0x60, 0xd3, 0x98, 0x62, 0x46, - 0x60, 0x86, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, - 0x13, 0xf8, 0x88, 0x01, 0x00, 0xe2, 0x16, 0x0a, 0xc3, 0xdd, 0x13, 0xf3, 0x03, 0x90, 0x00, 0x17, - 0x06, 0x9b, 0x02, 0x2d, 0x00, 0x06, 0xc8, 0x01, 0x01, 0x6c, 0x10, 0xeb, 0xc0, 0xe0, 0xfc, 0x02, - 0x13, 0x09, 0xc1, 0xa0, 0x08, 0x8a, 0x61, 0x89, 0x61, 0xa0, 0xfc, 0x04, 0x06, 0x20, 0x10, 0x80, - 0x04, 0x60, 0xd2, 0x78, 0x07, 0x86, 0x03, 0xf4, 0x61, 0x89, 0xa0, 0x86, 0x15, 0x02, 0x07, 0x82, - 0x7f, 0xff, 0xc1, 0x81, 0x07, 0x20, 0xfc, 0x02, 0x07, 0xa0, 0xfc, 0x04, 0x03, 0xee, 0x07, 0x83, - 0xfc, 0x76, 0x07, 0x89, 0x00, 0x06, 0x07, 0x8e, 0xfc, 0x00, 0xc4, 0xc4, 0xc8, 0x04, 0xfc, 0xe6, - 0xc8, 0x04, 0xfd, 0x56, 0xc8, 0x04, 0xfd, 0xc6, 0xc8, 0x04, 0xfe, 0x36, 0xc8, 0x04, 0xfe, 0xa6, - 0xc8, 0x04, 0xff, 0x16, 0xc8, 0x04, 0xff, 0x86, 0xc0, 0x5e, 0x04, 0xde, 0xc8, 0x20, 0x00, 0xe4, - 0x01, 0x6c, 0xc3, 0xe0, 0x00, 0xe2, 0x13, 0x07, 0xc7, 0x86, 0xc8, 0x06, 0x00, 0xe4, 0x04, 0xc6, - 0xc8, 0x01, 0x01, 0x6c, 0x10, 0xae, 0x07, 0x8e, 0xd6, 0x40, 0x04, 0x60, 0xd3, 0x98, 0xc1, 0x60, - 0xf8, 0x00, 0x83, 0x05, 0x13, 0x0c, 0xc8, 0x05, 0x01, 0x6a, 0xc2, 0x20, 0xf8, 0x02, 0x13, 0xf7, - 0x15, 0x14, 0x06, 0xa0, 0x97, 0xb6, 0xc0, 0x60, 0xf8, 0x00, 0x83, 0x01, 0x16, 0x6d, 0x04, 0x60, - 0xb9, 0xc0, 0x06, 0xa0, 0xf9, 0x32, 0x80, 0x45, 0x16, 0x4f, 0x04, 0x60, 0xb9, 0xc0, 0x06, 0xa0, - 0x97, 0xb6, 0xc2, 0x20, 0xf8, 0x02, 0x11, 0xfb, 0x13, 0xe2, 0x01, 0xa0, 0x07, 0x78, 0x40, 0x00, - 0xc1, 0x41, 0xc0, 0x60, 0xf8, 0x00, 0x01, 0x48, 0x00, 0x01, 0x16, 0x3e, 0x04, 0xe0, 0xf8, 0x00, - 0x07, 0x8b, 0x03, 0xea, 0x62, 0xe0, 0xf8, 0x04, 0xc8, 0x0b, 0xf8, 0x04, 0x85, 0x05, 0x16, 0x02, - 0xc5, 0x01, 0x10, 0x10, 0xc8, 0x14, 0x01, 0x6a, 0x88, 0x05, 0xf8, 0x00, 0x13, 0x06, 0xc8, 0x20, - 0xf8, 0x00, 0x01, 0x6a, 0x88, 0x05, 0xf8, 0x00, 0x16, 0xfa, 0xc8, 0x01, 0xf8, 0x00, 0x16, 0x02, - 0xc0, 0xa0, 0x01, 0x6a, 0x01, 0x08, 0xfe, 0x00, 0x16, 0xcc, 0xc8, 0x05, 0x01, 0x6a, 0x01, 0xe0, - 0xf8, 0x02, 0x00, 0x20, 0x07, 0x87, 0x06, 0x30, 0x01, 0xe7, 0x00, 0x04, 0x00, 0x40, 0x04, 0xd7, - 0x02, 0x27, 0x00, 0x0c, 0xa1, 0x45, 0xc9, 0x60, 0xf8, 0x00, 0x0c, 0x32, 0x04, 0xe0, 0xf8, 0x00, - 0x09, 0x15, 0xc2, 0x57, 0x16, 0x03, 0xcd, 0xc5, 0xc5, 0xc5, 0x10, 0x06, 0x05, 0xc7, 0xc8, 0x17, - 0x01, 0x6a, 0xc8, 0x05, 0xf8, 0x00, 0xc5, 0xc5, 0x83, 0x01, 0x13, 0xa9, 0xc8, 0x01, 0x01, 0x6a, - 0x01, 0x20, 0xf8, 0x06, 0x00, 0xc0, 0x13, 0xad, 0x01, 0x60, 0xf8, 0x02, 0x01, 0x00, 0x16, 0x05, - 0xc0, 0x60, 0xf8, 0x00, 0x83, 0x01, 0x16, 0xf2, 0x10, 0x9a, 0x07, 0xa0, 0x00, 0x12, 0xd7, 0xa4, - 0xc0, 0x60, 0xf8, 0x00, 0x83, 0x01, 0x13, 0x93, 0xc8, 0x01, 0x01, 0x6a, 0x01, 0x60, 0xf8, 0x02, - 0x01, 0x00, 0x16, 0x89, 0x07, 0xa0, 0x00, 0x12, 0xd7, 0x5e, 0x10, 0xea, 0x03, 0x00, 0x00, 0x02, - 0xc3, 0x20, 0x01, 0x8a, 0x13, 0x1d, 0x83, 0x01, 0x13, 0x0e, 0xc8, 0x01, 0x01, 0x6a, 0x01, 0x20, - 0xf8, 0x06, 0x00, 0xc0, 0x13, 0x86, 0x01, 0x60, 0xf8, 0x02, 0x01, 0x00, 0x16, 0x07, 0xc0, 0x60, - 0xf8, 0x00, 0x83, 0x01, 0x16, 0xf2, 0x03, 0x90, 0xbf, 0xff, 0x03, 0x80, 0x07, 0xa0, 0x00, 0x12, - 0xd7, 0xa4, 0xc0, 0x60, 0xf8, 0x00, 0x83, 0x01, 0x16, 0x0b, 0x03, 0x90, 0xbf, 0xff, 0x03, 0x80, - 0x10, 0x18, 0x03, 0x00, 0x00, 0x02, 0xc3, 0x20, 0x01, 0x8a, 0x13, 0x13, 0x83, 0x01, 0x13, 0x0e, - 0xc8, 0x01, 0x01, 0x6a, 0x01, 0x60, 0xf8, 0x02, 0x01, 0x00, 0x16, 0x04, 0x07, 0xa0, 0x00, 0x12, - 0xd7, 0x5e, 0x10, 0xdd, 0xc0, 0x60, 0xf8, 0x00, 0x83, 0x01, 0x16, 0xf2, 0x03, 0x90, 0xbf, 0xff, - 0x03, 0x80, 0x07, 0x8b, 0x9c, 0x72, 0xc3, 0x01, 0x13, 0x39, 0xc2, 0x4c, 0xc8, 0x0c, 0x01, 0x6a, - 0xc2, 0x20, 0xf8, 0x02, 0x11, 0x2d, 0xc2, 0x4c, 0xc3, 0x20, 0xf8, 0x00, 0x16, 0xf7, 0xc8, 0x09, - 0x01, 0x6a, 0xc2, 0x20, 0xf8, 0x02, 0x16, 0x2a, 0x01, 0xe0, 0xf8, 0x02, 0x19, 0x00, 0x05, 0xa0, - 0x13, 0x80, 0x10, 0x24, 0x01, 0xe0, 0xf8, 0x02, 0x19, 0x00, 0x05, 0xa0, 0x13, 0x80, 0xc8, 0x0c, - 0x01, 0x8a, 0x07, 0x89, 0x09, 0x18, 0xc2, 0x19, 0x13, 0x01, 0x05, 0xc9, 0xc6, 0x4c, 0xc2, 0x20, - 0x00, 0x12, 0x02, 0x88, 0xd7, 0x5e, 0x16, 0x03, 0x01, 0xc0, 0x00, 0x40, 0x10, 0x05, 0x02, 0x88, - 0xd7, 0xa4, 0x16, 0x05, 0x01, 0x80, 0x40, 0x40, 0x07, 0xa0, 0x00, 0x12, 0x9c, 0x56, 0x04, 0x5b, - 0xc8, 0x09, 0x01, 0x6a, 0xc2, 0x20, 0xf8, 0x02, 0x16, 0xe2, 0x10, 0xdc, 0xc2, 0x20, 0x0c, 0x02, - 0x11, 0x01, 0x10, 0xe5, 0xd8, 0x20, 0xe0, 0x10, 0x01, 0x83, 0x07, 0x88, 0x00, 0x05, 0x0b, 0x88, - 0x0b, 0x88, 0x06, 0x08, 0x16, 0xfc, 0x07, 0xa0, 0x01, 0x8a, 0x00, 0x43, 0x10, 0xd8, 0x20, 0x00, - 0xd8, 0x70, 0x00, 0x7f, 0x00, 0x00, 0x20, 0x00, 0xf8, 0x30, 0x05, 0xec, 0x68, 0x04, 0x09, 0x32, - 0xd3, 0xcf, 0x16, 0x30, 0x01, 0x4f, 0x00, 0x80, 0x16, 0x2d, 0x01, 0x0e, 0x00, 0x03, 0x16, 0x2a, - 0xd1, 0x04, 0x13, 0x01, 0x07, 0x04, 0x06, 0xc4, 0x07, 0x03, 0x07, 0x88, 0x07, 0x23, 0xb6, 0x04, - 0x18, 0x0d, 0x01, 0x4d, 0x00, 0x02, 0x13, 0x0f, 0xc0, 0x60, 0x06, 0x7c, 0x02, 0x81, 0x06, 0x30, - 0x13, 0x0a, 0x07, 0x88, 0x80, 0x18, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x05, 0x76, 0x04, 0x96, 0x03, - 0x13, 0x02, 0xd6, 0x01, 0x10, 0xee, 0x07, 0x88, 0x07, 0x2f, 0xb6, 0x04, 0x18, 0x03, 0x96, 0x03, - 0x13, 0x05, 0x04, 0x5c, 0x76, 0x04, 0x96, 0x03, 0x13, 0x05, 0xd6, 0x03, 0x07, 0x83, 0x80, 0x40, - 0x06, 0xa0, 0xe3, 0x56, 0x04, 0x5c, 0x03, 0x00, 0x00, 0x02, 0xc1, 0x4b, 0x02, 0x85, 0x00, 0x43, - 0x13, 0x2c, 0x01, 0x60, 0x09, 0x6a, 0x00, 0x04, 0x16, 0x06, 0xc8, 0x05, 0x01, 0x6c, 0x01, 0x60, - 0xfc, 0x02, 0x00, 0x20, 0x13, 0x07, 0x06, 0xa0, 0xf9, 0x32, 0x03, 0x90, 0x04, 0x77, 0x03, 0x80, - 0xc8, 0x0a, 0x01, 0x6c, 0xc2, 0xa0, 0xfc, 0x00, 0x16, 0xfb, 0xc2, 0xa0, 0x01, 0x6c, 0x07, 0x89, - 0x03, 0xea, 0x62, 0x60, 0xfc, 0x04, 0xc8, 0x09, 0xfc, 0x04, 0x07, 0x89, 0x05, 0xf8, 0xc2, 0xd9, - 0x16, 0x02, 0xce, 0x45, 0x10, 0x05, 0x05, 0xc9, 0xc8, 0x19, 0x01, 0x6c, 0xc8, 0x05, 0xfc, 0x00, - 0xc6, 0x4a, 0x01, 0xa0, 0x07, 0x78, 0x07, 0xff, 0x10, 0xe0, 0x07, 0xa0, 0x0c, 0x02, 0x80, 0x00, - 0x07, 0xa0, 0x0c, 0x04, 0x00, 0x28, 0xc0, 0x41, 0x16, 0xd8, 0xd8, 0x20, 0xe0, 0x10, 0x01, 0x83, - 0x07, 0x89, 0x00, 0x05, 0x0b, 0x89, 0x0b, 0x89, 0x06, 0x09, 0x16, 0xfc, 0xc8, 0x05, 0x01, 0x8a, - 0x07, 0xa0, 0x00, 0x12, 0x9c, 0x56, 0x01, 0xe0, 0x00, 0xe0, 0x00, 0x40, 0x10, 0xc6, 0xc2, 0x85, - 0xc2, 0x60, 0x07, 0x80, 0xc8, 0x0a, 0x01, 0x6a, 0x07, 0x20, 0xf8, 0x02, 0x07, 0xa0, 0xf8, 0x04, - 0x03, 0xee, 0xc8, 0x09, 0xf8, 0x76, 0xc8, 0x09, 0xf8, 0xe6, 0xc8, 0x09, 0xf9, 0x56, 0xc8, 0x09, - 0xf9, 0xc6, 0xc8, 0x09, 0xfa, 0x36, 0xc8, 0x09, 0xfa, 0xa6, 0xc8, 0x09, 0xfb, 0x16, 0xc8, 0x09, - 0xfb, 0x86, 0xc8, 0x09, 0xfb, 0xf6, 0xc2, 0xa0, 0xf8, 0x00, 0x16, 0xe4, 0xc2, 0xa0, 0x01, 0x6a, - 0xc0, 0x41, 0x13, 0x06, 0xc8, 0x02, 0x01, 0x6a, 0xc8, 0x05, 0xf8, 0x00, 0xc0, 0x8a, 0x04, 0x5b, - 0xc8, 0x20, 0x08, 0x94, 0x01, 0x6a, 0x16, 0x05, 0x82, 0x85, 0x16, 0x07, 0xc8, 0x05, 0x08, 0x94, - 0x04, 0x5b, 0xc8, 0x05, 0xf8, 0x00, 0xc1, 0x60, 0x08, 0x94, 0x98, 0x20, 0xe0, 0x10, 0x01, 0x83, - 0x16, 0x19, 0x01, 0xe0, 0x01, 0x9c, 0x00, 0x40, 0x07, 0x89, 0x03, 0xe8, 0x0b, 0x89, 0x0b, 0x89, - 0x06, 0x09, 0x13, 0x14, 0x01, 0x60, 0x01, 0x9c, 0x00, 0x40, 0x16, 0xf8, 0x01, 0x60, 0x0c, 0x02, - 0x01, 0x00, 0x13, 0x0c, 0xd8, 0x20, 0x09, 0x2f, 0x01, 0x83, 0x07, 0xa0, 0x0c, 0x02, 0x80, 0x00, - 0x0b, 0x89, 0x0b, 0x89, 0xc8, 0x05, 0x01, 0x8a, 0xc8, 0x05, 0x09, 0x18, 0x04, 0xe0, 0x08, 0x94, - 0xc0, 0x54, 0x16, 0x02, 0xc5, 0x05, 0x10, 0x04, 0xc8, 0x02, 0x01, 0x6a, 0xc8, 0x05, 0xf8, 0x00, - 0xc0, 0x45, 0xc0, 0x8a, 0x07, 0xa0, 0x00, 0x12, 0x9c, 0x56, 0x01, 0xe0, 0x00, 0xe0, 0x00, 0x40, - 0x04, 0x5b, 0x07, 0x20, 0x0c, 0xb8, 0x07, 0x83, 0x80, 0x00, 0x04, 0x5b, 0x07, 0xa0, 0xfc, 0x04, - 0x03, 0xee, 0xc2, 0x20, 0x07, 0x80, 0xc8, 0x08, 0xfc, 0x76, 0xc8, 0x08, 0xfc, 0xe6, 0xc8, 0x08, - 0xfd, 0x56, 0xc8, 0x08, 0xfd, 0xc6, 0xc8, 0x08, 0xfe, 0x36, 0xc8, 0x08, 0xfe, 0xa6, 0xc8, 0x08, - 0xff, 0x16, 0xc8, 0x08, 0xff, 0x86, 0xc8, 0x08, 0xff, 0xf6, 0x04, 0x60, 0xc0, 0xc6, 0xc3, 0xa0, - 0x00, 0xe2, 0xc8, 0x0e, 0x08, 0x66, 0xc8, 0x0e, 0x01, 0x6c, 0xc3, 0xa0, 0xfc, 0x00, 0x06, 0x0d, - 0x16, 0xfa, 0x04, 0xe0, 0xfc, 0x00, 0xc8, 0x20, 0x01, 0x6c, 0x08, 0x7c, 0xc8, 0x0e, 0x00, 0xe2, - 0xc8, 0x0e, 0x07, 0x7a, 0x04, 0xe0, 0x08, 0x94, 0x04, 0xe0, 0x0c, 0xb8, 0x07, 0x8d, 0x00, 0x10, - 0x04, 0x5b, 0x03, 0x00, 0x00, 0x02, 0x07, 0x09, 0xc2, 0xa0, 0x01, 0x04, 0x01, 0x8a, 0x00, 0x80, - 0x52, 0x4a, 0xd2, 0x89, 0x01, 0xca, 0x25, 0x00, 0xc8, 0x0a, 0x01, 0x04, 0xd2, 0xa0, 0x01, 0x04, - 0x01, 0x0a, 0xda, 0x00, 0x16, 0xf5, 0x52, 0x4a, 0x01, 0xa0, 0x08, 0xa0, 0xff, 0x00, 0x07, 0xa0, - 0x08, 0xa8, 0x10, 0x00, 0x01, 0xc9, 0x05, 0x00, 0x07, 0x8a, 0x07, 0x78, 0x02, 0x89, 0x5f, 0xff, - 0x16, 0x19, 0x01, 0x5a, 0x80, 0x00, 0x16, 0x0f, 0x07, 0x89, 0xde, 0x8c, 0x01, 0x20, 0x07, 0x58, - 0x20, 0xfe, 0x13, 0x02, 0x01, 0x89, 0x04, 0x00, 0xc8, 0x09, 0x01, 0x04, 0x01, 0x9a, 0x80, 0x00, - 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0x01, 0x20, 0x07, 0x58, 0x20, 0xfe, 0x16, 0x22, 0x03, 0x90, - 0xff, 0xff, 0x03, 0x80, 0x05, 0x49, 0x01, 0x89, 0x80, 0x00, 0x01, 0x49, 0x40, 0x00, 0x13, 0x23, - 0x01, 0x49, 0x20, 0x00, 0x16, 0x2f, 0x01, 0x5a, 0x80, 0x00, 0x16, 0x0e, 0x01, 0x9a, 0x80, 0x00, - 0x07, 0x8a, 0xde, 0x8c, 0x01, 0x20, 0x07, 0x58, 0x20, 0xfe, 0x13, 0x02, 0x01, 0x8a, 0x04, 0x00, - 0xc8, 0x0a, 0x01, 0x04, 0x01, 0x89, 0x20, 0x00, 0xd2, 0x49, 0x16, 0x05, 0x03, 0x90, 0xff, 0xff, - 0x03, 0x80, 0x07, 0x89, 0x20, 0x00, 0xf8, 0x09, 0x07, 0x3a, 0xc2, 0x60, 0x07, 0x36, 0x13, 0xf6, - 0x04, 0xe0, 0x07, 0x36, 0x04, 0x54, 0x04, 0xca, 0x87, 0x4a, 0x87, 0x4a, 0x87, 0x4a, 0x87, 0x4a, - 0x87, 0x4a, 0x87, 0x4a, 0x87, 0x4a, 0x87, 0x4a, 0x87, 0x4a, 0x87, 0x4a, 0x06, 0x0a, 0x16, 0xf4, - 0x04, 0x60, 0xb3, 0xf0, 0x01, 0x5a, 0x80, 0x00, 0x13, 0x04, 0x01, 0x20, 0x07, 0x58, 0x20, 0xfe, - 0x13, 0xdb, 0xc2, 0xa0, 0x01, 0x04, 0x01, 0xca, 0xff, 0x00, 0x01, 0x8a, 0x04, 0x80, 0xc8, 0x0a, - 0x01, 0x04, 0x01, 0x60, 0x01, 0x04, 0x20, 0x00, 0x16, 0xcf, 0x01, 0xc9, 0x20, 0x00, 0x07, 0x8a, - 0x07, 0x78, 0x10, 0xb9, 0x01, 0x60, 0x07, 0x58, 0x10, 0x00, 0x16, 0x13, 0x01, 0x20, 0x05, 0xee, - 0x00, 0x07, 0x16, 0x0f, 0xc1, 0xa0, 0x08, 0xa0, 0x06, 0xc6, 0xd1, 0xe0, 0x01, 0x03, 0x13, 0x14, - 0x71, 0x86, 0x06, 0xc6, 0x01, 0x20, 0x01, 0x04, 0x20, 0x00, 0x13, 0x22, 0x71, 0x86, 0xc8, 0x06, - 0x08, 0xa0, 0x01, 0x60, 0x01, 0x82, 0x20, 0x00, 0x16, 0x06, 0x01, 0xa0, 0x01, 0x82, 0x20, 0x00, - 0x01, 0xe0, 0x01, 0x82, 0x20, 0x00, 0x04, 0x5b, 0x07, 0x87, 0x01, 0x0c, 0x07, 0x88, 0x08, 0xa2, - 0x02, 0x26, 0xff, 0x00, 0x18, 0x04, 0xce, 0x37, 0xce, 0x37, 0xc6, 0x17, 0x10, 0xe2, 0x8e, 0x37, - 0x16, 0xdf, 0x8e, 0x37, 0x16, 0xdd, 0x86, 0x17, 0x16, 0xdb, 0xd1, 0x86, 0x16, 0xda, 0x10, 0x11, - 0x02, 0x26, 0x01, 0x00, 0x18, 0x0e, 0x19, 0xdb, 0xc1, 0xe0, 0x01, 0x04, 0x01, 0xc7, 0xff, 0x00, - 0x01, 0x87, 0x04, 0x80, 0xc8, 0x07, 0x01, 0x04, 0x01, 0x20, 0x01, 0x04, 0x20, 0x00, 0x16, 0xce, - 0x10, 0xce, 0x04, 0xe0, 0x08, 0xa8, 0x04, 0x5b, 0xc0, 0xe0, 0x07, 0x5c, 0xc8, 0x03, 0x01, 0x6c, - 0xc3, 0x43, 0xc2, 0xc3, 0xa2, 0xcb, 0xc2, 0xeb, 0x0c, 0x32, 0xc8, 0x0b, 0xfc, 0x00, 0x13, 0x07, - 0xc8, 0x0b, 0x01, 0x6c, 0xc2, 0xe0, 0xfc, 0x00, 0x16, 0xfb, 0xc3, 0x60, 0x01, 0x6c, 0x07, 0x8b, - 0x03, 0xea, 0x62, 0xe0, 0xfc, 0x04, 0xc8, 0x0b, 0xfc, 0x04, 0x07, 0x8b, 0x05, 0xf8, 0x03, 0x00, - 0x00, 0x02, 0xc3, 0x9b, 0x16, 0x02, 0xce, 0xc3, 0x10, 0x05, 0x05, 0xcb, 0xc8, 0x1b, 0x01, 0x6c, - 0xc8, 0x03, 0xfc, 0x00, 0xc6, 0xcd, 0x01, 0xa0, 0x07, 0x78, 0x07, 0xff, 0x03, 0x00, 0x00, 0x0f, - 0x04, 0x20, 0xea, 0x7a, 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, 0x00, 0x02, 0xc3, 0xde, 0x01, 0x4f, - 0x20, 0x00, 0x16, 0x08, 0x01, 0x20, 0x07, 0x78, 0x80, 0x00, 0x16, 0x04, 0x03, 0x00, 0x00, 0x0f, - 0x04, 0x60, 0xc5, 0xc6, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, 0xc7, 0x8f, 0x01, 0x5e, - 0x20, 0x00, 0x16, 0x04, 0x01, 0x60, 0x07, 0x78, 0x80, 0x00, 0x16, 0xf0, 0xc3, 0xdd, 0x02, 0x4f, - 0x00, 0x0f, 0xe1, 0x2f, 0xe0, 0x14, 0x03, 0x00, 0x00, 0x0f, 0x04, 0x5b, 0x03, 0x00, 0x00, 0x0f, - 0x10, 0x08, 0x06, 0xa0, 0xc7, 0x7e, 0x01, 0xc2, 0xff, 0x80, 0x01, 0x82, 0x24, 0x00, 0x07, 0x8e, - 0x01, 0x04, 0x03, 0x00, 0x00, 0x02, 0x01, 0x5e, 0x20, 0x00, 0x16, 0xf0, 0xc7, 0x82, 0x03, 0x00, - 0x00, 0x0f, 0x03, 0x90, 0x60, 0x3f, 0x04, 0x59, 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, 0x00, 0x02, - 0x01, 0x5e, 0x20, 0x00, 0x13, 0x06, 0xc3, 0xde, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, - 0xc7, 0x8f, 0x03, 0x00, 0x00, 0x0f, 0x04, 0x60, 0xc5, 0x60, 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, - 0x00, 0x02, 0x01, 0x5e, 0x20, 0x00, 0x16, 0x10, 0x03, 0x00, 0x00, 0x0f, 0x04, 0x60, 0xc6, 0x22, - 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, 0x00, 0x02, 0x01, 0x5e, 0x20, 0x00, 0x16, 0x09, 0x07, 0xa0, - 0x01, 0x04, 0xdb, 0x86, 0x01, 0x85, 0x58, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x04, 0x60, 0xc5, 0x6a, - 0xc3, 0xde, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, 0xc7, 0x8f, 0x01, 0x5e, 0x20, 0x00, - 0x13, 0xee, 0x01, 0xc0, 0x00, 0x80, 0x01, 0xc5, 0x58, 0x00, 0x10, 0xee, 0x07, 0x8e, 0x80, 0x20, - 0xc2, 0x60, 0x01, 0x62, 0x04, 0xe0, 0x01, 0x62, 0x07, 0x8c, 0x09, 0x34, 0xcf, 0x1e, 0x11, 0x16, - 0xc3, 0x5e, 0xc3, 0xfe, 0xcf, 0x1e, 0xe3, 0x5e, 0xa3, 0xfe, 0xcf, 0x1e, 0xe3, 0x5e, 0x13, 0x0e, - 0xa3, 0xfe, 0x83, 0xfe, 0x16, 0x0b, 0xc3, 0x7e, 0x05, 0x4d, 0x83, 0x6e, 0xff, 0xf6, 0x16, 0x06, - 0x02, 0x8e, 0x80, 0x30, 0x16, 0xf8, 0xc8, 0x09, 0x01, 0x62, 0x04, 0x5b, 0xc8, 0x09, 0x01, 0x62, - 0x07, 0x20, 0x09, 0x34, 0x04, 0x5b, 0x04, 0xe0, 0x01, 0x68, 0xc8, 0x20, 0x07, 0xe4, 0x01, 0x18, - 0xc3, 0x60, 0x07, 0xe2, 0x07, 0x8f, 0x00, 0x81, 0xd3, 0xe0, 0x07, 0xf4, 0x01, 0x4d, 0x40, 0x00, - 0x16, 0x01, 0x05, 0x8f, 0xc8, 0x0f, 0x07, 0xf8, 0x07, 0x8f, 0x00, 0x81, 0xd3, 0xe0, 0x07, 0xee, - 0x01, 0x4d, 0x80, 0x00, 0x16, 0x01, 0x05, 0x8f, 0xc8, 0x0f, 0x07, 0xee, 0x01, 0x8d, 0xc0, 0x00, - 0xc8, 0x0d, 0x01, 0x1a, 0x04, 0x60, 0xc4, 0x16, 0x07, 0x8c, 0xee, 0x00, 0x06, 0xa0, 0x90, 0x94, - 0x07, 0x8c, 0xed, 0x90, 0x06, 0xa0, 0x90, 0x94, 0x04, 0xe0, 0x01, 0x04, 0x04, 0x60, 0xc5, 0x6a, - 0x02, 0x85, 0x00, 0x0e, 0x1a, 0x05, 0x01, 0x09, 0x0f, 0x00, 0x13, 0x02, 0x04, 0x60, 0xdd, 0x6a, - 0x99, 0x49, 0xea, 0xd0, 0x04, 0x60, 0xdd, 0x54, 0x20, 0x00, 0xb3, 0xcc, 0x00, 0x14, 0x07, 0x8b, - 0x01, 0x04, 0x01, 0x5b, 0x20, 0x00, 0x16, 0xfd, 0xd8, 0x20, 0x07, 0xdf, 0x01, 0x17, 0x07, 0x9b, - 0xdf, 0x80, 0x20, 0x00, 0xff, 0xc0, 0x00, 0x2a, 0x03, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x01, 0x00, - 0x00, 0x80, 0x06, 0x4e, 0x02, 0x01, 0xef, 0xfa, 0xcc, 0x4d, 0xcc, 0x4e, 0xc4, 0x4f, 0x02, 0x00, - 0x00, 0x01, 0xc8, 0x00, 0xef, 0xe0, 0x88, 0x00, 0xef, 0xe0, 0x13, 0xfd, 0x02, 0xe0, 0xef, 0xe0, - 0x03, 0x80, 0x20, 0x00, 0xae, 0x00, 0x00, 0xaa, 0xc3, 0xce, 0x10, 0x32, 0x00, 0x00, 0xc0, 0x3c, - 0x08, 0x4e, 0x00, 0x00, 0xc0, 0x20, 0x07, 0x78, 0x00, 0x00, 0x00, 0x02, 0x08, 0x56, 0x01, 0x0c, - 0x00, 0x08, 0x08, 0x62, 0x03, 0xf8, 0x00, 0x06, 0x00, 0x00, 0x12, 0x00, 0x00, 0x02, 0x08, 0x7e, - 0x01, 0x8c, 0x00, 0x02, 0x07, 0x78, 0x07, 0xff, 0x00, 0x06, 0x07, 0x7e, 0xfc, 0x76, 0xbe, 0xad, - 0x01, 0x0a, 0x00, 0x08, 0x07, 0x8a, 0x00, 0x06, 0x00, 0x00, 0xcf, 0x7a, 0x11, 0x28, 0x00, 0x04, - 0x13, 0xa0, 0x13, 0xa0, 0x90, 0x2a, 0x00, 0x02, 0x08, 0x96, 0x97, 0x6a, 0xc0, 0x04, 0x08, 0x9e, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9d, 0xc8, 0x01, 0x80, 0x01, 0x00, 0x01, 0x38, 0x01, 0x7c, - 0x01, 0xce, 0x02, 0x32, 0x02, 0xae, 0x03, 0x42, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, - 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, - 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, - 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, - 0xcc, 0x00, 0x20, 0x00, 0xb2, 0x98, 0x00, 0x04, 0x02, 0x09, 0x14, 0x00, 0x20, 0x00, 0xb2, 0xa8, - 0x00, 0x02, 0x90, 0x00, 0x20, 0x00, 0xb1, 0x00, 0x00, 0x02, 0x90, 0x00, 0x20, 0x00, 0xf8, 0x08, - 0x00, 0x02, 0x90, 0x00, 0x20, 0x00, 0xc8, 0xbe, 0x00, 0x04, 0xc2, 0xcb, 0xc2, 0xcb, 0x20, 0x00, - 0xbf, 0xb4, 0x00, 0x08, 0x88, 0x0b, 0x07, 0x98, 0x88, 0x0b, 0x07, 0x78, 0x20, 0x00, 0xc0, 0x54, - 0x00, 0x04, 0x06, 0xa0, 0xfa, 0x06, 0x20, 0x00, 0xc0, 0x5e, 0x00, 0x04, 0x07, 0x84, 0x07, 0x7a, - 0x20, 0x00, 0xc0, 0xc2, 0x00, 0x04, 0x04, 0x60, 0xfa, 0x10, 0x20, 0x00, 0xc9, 0xc0, 0x00, 0x02, - 0x16, 0xe2, 0x20, 0x00, 0xc9, 0xc2, 0x00, 0x04, 0x06, 0xa0, 0xfa, 0x42, 0x20, 0x00, 0xc9, 0xe8, - 0x00, 0x04, 0x04, 0x60, 0xca, 0x0c, 0x20, 0x00, 0xb9, 0xa0, 0x00, 0x04, 0x04, 0x60, 0x98, 0xa0, - 0x20, 0x00, 0xbb, 0x92, 0x00, 0x04, 0x06, 0xa0, 0x9a, 0xf4, 0x20, 0x00, 0xbc, 0x20, 0x00, 0x04, - 0xc1, 0xe0, 0xfc, 0x02, 0x20, 0x00, 0xc5, 0x5c, 0x00, 0x04, 0x04, 0x60, 0xfc, 0xec, 0x20, 0x00, - 0xc5, 0xa2, 0x00, 0x04, 0x04, 0x60, 0xfc, 0x78, 0x20, 0x00, 0xc5, 0xda, 0x00, 0x04, 0x04, 0x60, - 0xfc, 0xc6, 0x20, 0x00, 0xc6, 0x1c, 0x00, 0x04, 0x04, 0x60, 0xfd, 0x0e, 0x20, 0x00, 0xc2, 0xe6, - 0x00, 0x06, 0x01, 0x20, 0x01, 0x00, 0x00, 0x80, 0x20, 0x00, 0xc3, 0xd4, 0x00, 0x02, 0x01, 0x17, - 0x20, 0x00, 0xa2, 0xca, 0x00, 0x02, 0xc5, 0x60, 0x20, 0x00, 0xa2, 0xd2, 0x00, 0x02, 0xfd, 0x24, - 0x20, 0x00, 0xa2, 0xf2, 0x00, 0x02, 0xfd, 0x24, 0x20, 0x00, 0xa3, 0x18, 0x00, 0x02, 0xce, 0x98, - 0x20, 0x00, 0xc5, 0x6e, 0x00, 0x02, 0x10, 0x0c, 0x20, 0x00, 0xc4, 0x0c, 0x00, 0x04, 0x06, 0xa0, - 0xfd, 0xaa, 0x20, 0x00, 0xcc, 0x38, 0x00, 0x02, 0xc7, 0x7e, 0x20, 0x00, 0xa0, 0xc4, 0x00, 0x02, - 0xc7, 0x7e, 0x20, 0x00, 0xc5, 0xec, 0x00, 0x02, 0xc7, 0xb4, 0x20, 0x00, 0xa0, 0xc0, 0x00, 0x02, - 0xc7, 0xb4, 0x20, 0x00, 0xc5, 0x14, 0x00, 0x04, 0x04, 0x60, 0xfd, 0xec, 0x20, 0x00, 0xc4, 0xe6, - 0x00, 0x04, 0x06, 0xa0, 0xfd, 0x60, 0x20, 0x00, 0xc8, 0x2c, 0x00, 0x02, 0x06, 0x69, 0x20, 0x00, - 0xcc, 0x60, 0x00, 0x02, 0x06, 0x69, 0x20, 0x00, 0xdc, 0x68, 0x00, 0x02, 0x04, 0x5c, 0x20, 0x00, - 0xdc, 0xb8, 0x00, 0x04, 0x04, 0x60, 0xf8, 0x30, 0x20, 0x00, 0xdd, 0x50, 0x00, 0x04, 0x04, 0x60, - 0xfe, 0x04, 0x20, 0x80, 0xb4, 0x88, 0x00, 0x02, 0xfb, 0x88, 0x20, 0x80, 0xdf, 0x06, 0x00, 0x02, - 0x08, 0xa8, 0x20, 0x00, 0xa0, 0x34, 0x00, 0x0a, 0x00, 0x02, 0x28, 0xf1, 0xf0, 0xf1, 0xf8, 0xe7, - 0xe7, 0xe7, 0x20, 0x00, 0xb2, 0x3c, 0x00, 0x02, 0x06, 0x03, 0x20, 0x00, 0xa1, 0x16, 0x00, 0x02, - 0x9c, 0x56, 0x20, 0x00, 0xa1, 0x1a, 0x00, 0x02, 0x98, 0x4e, 0x20, 0x00, 0xa1, 0x1c, 0x00, 0x04, - 0x08, 0x4e, 0x95, 0xa8, 0x20, 0x00, 0xa1, 0x22, 0x00, 0x02, 0xfa, 0x76, 0x20, 0x00, 0xa1, 0x66, - 0x00, 0x02, 0xf8, 0x9a, 0x20, 0x00, 0xa1, 0x6e, 0x00, 0x02, 0x9a, 0x22, 0x20, 0x00, 0xa1, 0x72, - 0x00, 0x02, 0x9b, 0x56, 0x20, 0x00, 0xa1, 0x7a, 0x00, 0x02, 0x9a, 0xb0, 0x20, 0x00, 0xa1, 0x80, - 0x00, 0x04, 0xef, 0xc0, 0xff, 0xc0, 0x20, 0x00, 0xa1, 0x9c, 0x00, 0x02, 0x9d, 0xb8, 0x20, 0x00, - 0xa0, 0xb0, 0x00, 0x02, 0xce, 0xe8, 0x20, 0x00, 0xa0, 0xac, 0x00, 0x02, 0x07, 0x78, 0x20, 0x00, - 0xa2, 0xe6, 0x00, 0x02, 0xfc, 0x1c, 0x20, 0x00, 0xf5, 0xc4, 0x00, 0x02, 0x00, 0x02, 0x20, 0x00, - 0xf6, 0x7a, 0x00, 0x02, 0x00, 0x02, 0x20, 0x00, 0xf6, 0xae, 0x00, 0x02, 0x00, 0x02, 0x20, 0x00, - 0xf5, 0xfa, 0x00, 0x02, 0x02, 0x00, 0x20, 0x00, 0xf6, 0x18, 0x00, 0x02, 0x02, 0x00, 0x20, 0x00, - 0xc5, 0xc8, 0x00, 0x04, 0xc2, 0xa0, 0x07, 0xf8, 0x20, 0x00, 0xc6, 0x9a, 0x00, 0x04, 0xc2, 0xa0, - 0x07, 0xf8, 0x20, 0x00, 0xc6, 0xdc, 0x00, 0x04, 0xc2, 0xa0, 0x07, 0xf8, 0x20, 0x00, 0xcc, 0x24, - 0x00, 0x04, 0xc2, 0xa0, 0x07, 0xee, 0x20, 0x00, 0xa3, 0x64, 0x00, 0x02, 0x07, 0xf8, 0x20, 0x00, - 0xa3, 0x6e, 0x00, 0x02, 0x07, 0xf8, 0x20, 0x00, 0xc3, 0xa6, 0x00, 0x02, 0x3f, 0xfe, 0x20, 0x00, - 0xa4, 0x46, 0x00, 0x02, 0x07, 0x08, 0x30, 0x00, 0x90, 0xf0, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, - 0x11, 0xf8, 0x30, 0x00, 0x92, 0x2a, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, - 0x93, 0x5c, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0x94, 0x5a, 0x00, 0x06, - 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0x95, 0x16, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, - 0x11, 0xf8, 0x30, 0x00, 0xcf, 0xe2, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, - 0xd0, 0x14, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xd0, 0x5e, 0x00, 0x06, - 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xd0, 0x98, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, - 0x11, 0xf8, 0x30, 0x00, 0xd0, 0xea, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, - 0xd1, 0x52, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xd1, 0x76, 0x00, 0x06, - 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xd1, 0xb6, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, - 0x11, 0xf8, 0x30, 0x00, 0xd1, 0xec, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, - 0xd2, 0x3c, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xd2, 0xca, 0x00, 0x06, - 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xd3, 0x30, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, - 0x11, 0xf8, 0x30, 0x00, 0xd4, 0x5a, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, - 0xd4, 0xaa, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xd4, 0xea, 0x00, 0x06, - 0xc3, 0xa0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xd5, 0x0a, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, - 0x11, 0xf8, 0x30, 0x00, 0xd5, 0x54, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, - 0xd5, 0xae, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xfb, 0x9e, 0x00, 0x06, - 0xc1, 0xe0, 0xf0, 0x00, 0x11, 0x14, 0x30, 0x00, 0xc7, 0x4e, 0x00, 0x06, 0x01, 0x60, 0xf0, 0x00, - 0x80, 0x00, 0x30, 0x00, 0xc7, 0x86, 0x00, 0x06, 0x01, 0x60, 0xf0, 0x00, 0x80, 0x00, 0x30, 0x00, - 0xc7, 0xbc, 0x00, 0x06, 0x01, 0x60, 0xf0, 0x00, 0x80, 0x00, 0x30, 0x00, 0x95, 0x5e, 0x00, 0x04, - 0xed, 0x03, 0xed, 0x03, 0x30, 0x00, 0x95, 0x8a, 0x00, 0x04, 0xed, 0x03, 0xed, 0x03, 0x34, 0x00, - 0x91, 0xa4, 0x00, 0x02, 0x60, 0x82, 0x34, 0x00, 0x92, 0x44, 0x00, 0x02, 0x60, 0x82, 0x34, 0x00, - 0x93, 0x78, 0x00, 0x02, 0x60, 0x82, 0x34, 0x00, 0x94, 0x7a, 0x00, 0x02, 0x68, 0x82, 0x34, 0x00, - 0x95, 0x32, 0x00, 0x02, 0x60, 0x82, 0x34, 0x00, 0x95, 0x6c, 0x00, 0x02, 0x68, 0x82, 0x34, 0x00, - 0x95, 0x98, 0x00, 0x02, 0x68, 0x82, 0x34, 0x00, 0x95, 0xda, 0x00, 0x02, 0x20, 0x82, 0x38, 0x00, - 0xd0, 0x76, 0x00, 0x02, 0xe0, 0x82, 0x38, 0x00, 0xd0, 0xca, 0x00, 0x02, 0xe0, 0x82, 0x38, 0x00, - 0xd4, 0x3a, 0x00, 0x02, 0xe0, 0x82, 0x20, 0x00, 0xa0, 0x02, 0x00, 0x02, 0xf9, 0xe0, 0x20, 0x00, - 0xa0, 0x7a, 0x00, 0x02, 0xe5, 0x18, 0x20, 0x80, 0xa0, 0x02, 0x00, 0x02, 0x5b, 0x58, 0x20, 0x80, - 0xa0, 0x7a, 0x00, 0x02, 0x83, 0xa0, 0x30, 0x00, 0xa0, 0x02, 0x00, 0x02, 0xae, 0x4f, 0x30, 0x00, - 0xa0, 0x7a, 0x00, 0x02, 0x2f, 0xfc, 0x30, 0x80, 0xa0, 0x02, 0x00, 0x02, 0x0f, 0xc7, 0x30, 0x80, - 0xa0, 0x7a, 0x00, 0x02, 0xce, 0x84, 0x34, 0x00, 0xa0, 0x02, 0x00, 0x02, 0xae, 0x4f, 0x34, 0x00, - 0xa0, 0x7a, 0x00, 0x02, 0x2f, 0xf4, 0x34, 0x80, 0xa0, 0x02, 0x00, 0x02, 0x0f, 0xc7, 0x34, 0x80, - 0xa0, 0x7a, 0x00, 0x02, 0xce, 0x7c, 0x38, 0x00, 0xa0, 0x02, 0x00, 0x02, 0xae, 0x52, 0x38, 0x00, - 0xa0, 0x7a, 0x00, 0x02, 0x2f, 0xf1, 0x38, 0x80, 0xa0, 0x02, 0x00, 0x02, 0x0f, 0xca, 0x38, 0x80, - 0xa0, 0x7a, 0x00, 0x02, 0xce, 0x79, 0x00, 0x00, 0x80, 0x00, 0x09, 0xfc, 0x53, 0x4d, 0x41, 0x43, - 0x2e, 0x30, 0x30, 0x2e, 0x33, 0x38, 0x20, 0x20, 0x28, 0x43, 0x29, 0x20, 0x43, 0x6f, 0x70, 0x79, - 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x4f, 0x6c, 0x69, 0x63, 0x6f, 0x6d, 0x20, 0x31, 0x39, 0x39, - 0x38, 0x2e, 0x00, 0x00, 0x07, 0xa0, 0x13, 0x04, 0xc4, 0x00, 0x01, 0x60, 0x09, 0x6a, 0x80, 0x00, - 0x16, 0x03, 0x01, 0xa0, 0x09, 0x6a, 0x00, 0x60, 0x01, 0x60, 0x09, 0x6a, 0x00, 0x40, 0x16, 0x34, - 0x01, 0x20, 0x13, 0x0c, 0x10, 0x00, 0x16, 0x30, 0xd8, 0x20, 0x09, 0x2e, 0x13, 0x06, 0xd8, 0x20, - 0x01, 0x80, 0x13, 0x08, 0xd8, 0x20, 0x01, 0x82, 0x13, 0x0a, 0x07, 0xa0, 0x13, 0x00, 0x87, 0xe0, - 0x07, 0xa0, 0x13, 0x02, 0xed, 0xb6, 0x07, 0xa0, 0x13, 0x14, 0x00, 0x04, 0x06, 0xa0, 0x84, 0xd0, - 0x07, 0xa0, 0x13, 0x0c, 0x04, 0x00, 0xd8, 0x20, 0xef, 0x54, 0x09, 0x2e, 0x01, 0xe0, 0x13, 0x0c, - 0x10, 0x00, 0x01, 0xa0, 0x13, 0x0c, 0x28, 0x00, 0x01, 0x60, 0x09, 0x6a, 0x00, 0x20, 0x16, 0x03, - 0x01, 0xe0, 0x13, 0x0c, 0x28, 0x00, 0x07, 0xa0, 0x13, 0x4c, 0x00, 0x02, 0x02, 0x0a, 0x00, 0x02, - 0x01, 0xe0, 0x13, 0x0e, 0x01, 0x80, 0x10, 0x09, 0x07, 0xa0, 0x13, 0x00, 0xdb, 0xc4, 0x07, 0xa0, - 0x13, 0x02, 0xea, 0xb0, 0x01, 0xa0, 0x13, 0x0c, 0x38, 0x00, 0x06, 0xa0, 0xdc, 0x32, 0xc2, 0xe0, - 0x13, 0x00, 0x04, 0x5b, 0x01, 0x4e, 0x00, 0x40, 0x16, 0x02, 0x04, 0x60, 0xcc, 0xb4, 0x02, 0x0d, - 0x12, 0x00, 0x04, 0x60, 0xcc, 0xa6, 0x01, 0x60, 0x13, 0x0c, 0x10, 0x00, 0x13, 0x02, 0x04, 0x60, - 0xe3, 0xce, 0xc8, 0x0b, 0x13, 0x52, 0x06, 0xa0, 0xe3, 0xce, 0xd8, 0x20, 0xe0, 0x0a, 0xfc, 0x06, - 0xc2, 0xe0, 0x13, 0x52, 0x04, 0x5b, 0x01, 0x60, 0x13, 0x0c, 0x10, 0x00, 0x16, 0x06, 0x02, 0x84, - 0x00, 0x12, 0x13, 0x15, 0x02, 0x84, 0x00, 0x14, 0x13, 0x2d, 0x06, 0xa0, 0xe3, 0xce, 0x01, 0x60, - 0x13, 0x0c, 0x10, 0x00, 0x16, 0x0a, 0xd8, 0x20, 0xe0, 0x0a, 0x04, 0x06, 0x88, 0x20, 0x13, 0x54, - 0x03, 0xf8, 0x13, 0x03, 0x07, 0xa0, 0x03, 0xf8, 0x81, 0x8c, 0x04, 0x60, 0xdb, 0x96, 0x02, 0x04, - 0x00, 0x08, 0x06, 0xa0, 0xe3, 0xce, 0x07, 0xa0, 0x03, 0xf8, 0x81, 0x8c, 0x02, 0x05, 0x04, 0x04, - 0x02, 0x06, 0xef, 0x5c, 0xcd, 0x76, 0xcd, 0x76, 0x02, 0x25, 0x00, 0x0c, 0xcd, 0x76, 0xcd, 0x76, - 0xcd, 0x76, 0xcd, 0x60, 0x13, 0x12, 0xcd, 0x76, 0xcd, 0x60, 0x13, 0x4c, 0xcd, 0x76, 0xc5, 0x60, - 0x09, 0x1e, 0x10, 0xe3, 0x02, 0x04, 0x00, 0x08, 0x06, 0xa0, 0xe3, 0xce, 0x07, 0xa0, 0x03, 0xf8, - 0x81, 0x8c, 0x02, 0x05, 0x04, 0x04, 0x02, 0x06, 0xef, 0x6a, 0xcd, 0x76, 0xcd, 0x76, 0x02, 0x25, - 0x00, 0x0c, 0xcd, 0x76, 0xcd, 0x76, 0x10, 0xd1, 0x04, 0x60, 0x87, 0xe0, 0x01, 0x4f, 0x00, 0x0a, - 0x16, 0x03, 0x01, 0x4f, 0x00, 0x80, 0x04, 0x5b, 0x04, 0x60, 0xda, 0x04, 0xc0, 0xc3, 0x13, 0x06, - 0x01, 0x60, 0x13, 0x0c, 0x10, 0x00, 0x16, 0x02, 0x01, 0xd6, 0x00, 0x80, 0x07, 0x86, 0x07, 0x36, - 0x04, 0x60, 0xe3, 0x7a, 0xa0, 0x60, 0x13, 0x02, 0xc1, 0x11, 0x04, 0x54, 0x01, 0x48, 0x40, 0x00, - 0x16, 0x06, 0x01, 0x88, 0x40, 0x00, 0x02, 0x28, 0xef, 0x00, 0x04, 0x60, 0xe0, 0x36, 0x02, 0x28, - 0xe3, 0xee, 0x04, 0x60, 0xe0, 0x36, 0x01, 0x60, 0x13, 0x0c, 0x10, 0x00, 0x16, 0x06, 0x02, 0x85, - 0x00, 0x12, 0x13, 0x0a, 0x02, 0x85, 0x00, 0x14, 0x13, 0x07, 0x02, 0x85, 0x00, 0x15, 0x13, 0x24, - 0x02, 0x85, 0x00, 0x10, 0x04, 0x60, 0xdd, 0x4c, 0x02, 0x03, 0x80, 0x02, 0x88, 0x24, 0x00, 0x14, - 0xe0, 0x1c, 0x16, 0x19, 0x05, 0x83, 0x05, 0x83, 0x92, 0x60, 0xef, 0x9e, 0x16, 0x14, 0x05, 0x83, - 0x99, 0x20, 0xe0, 0x0e, 0x00, 0x18, 0x16, 0x0f, 0x05, 0x83, 0x05, 0x83, 0x02, 0x85, 0x00, 0x12, - 0x16, 0x05, 0x99, 0x20, 0xef, 0xa0, 0x00, 0x19, 0x16, 0x06, 0x10, 0x04, 0x99, 0x20, 0xef, 0xa1, - 0x00, 0x19, 0x16, 0x01, 0x04, 0xc3, 0x04, 0x5c, 0x02, 0x03, 0x80, 0x02, 0x88, 0x24, 0x00, 0x14, - 0xe0, 0x1e, 0x16, 0xf9, 0x05, 0x83, 0x05, 0x83, 0x92, 0x60, 0xef, 0x9e, 0x16, 0xf4, 0x04, 0xc3, - 0x10, 0xf2, 0x02, 0x85, 0x00, 0x15, 0x13, 0x09, 0x02, 0x85, 0x00, 0x09, 0x13, 0x02, 0x06, 0xa0, - 0xe2, 0xe4, 0xa1, 0x45, 0xc1, 0x65, 0xe3, 0xac, 0x04, 0x55, 0x06, 0xa0, 0xe1, 0xa2, 0x01, 0x60, - 0x13, 0x0c, 0x04, 0x00, 0x16, 0x19, 0x01, 0x4f, 0x00, 0x80, 0x16, 0x09, 0x01, 0xe0, 0x13, 0x0e, - 0x20, 0x00, 0x02, 0x03, 0x80, 0x10, 0x06, 0xa0, 0xe3, 0x56, 0x06, 0xa0, 0xe2, 0x72, 0x01, 0xe0, - 0x13, 0x0e, 0x00, 0x10, 0x07, 0xa0, 0x13, 0x00, 0x87, 0xe0, 0x07, 0xa0, 0x13, 0x02, 0xed, 0xb6, - 0x01, 0x8f, 0x00, 0x80, 0x02, 0x0a, 0x00, 0x08, 0x04, 0x60, 0x80, 0xbe, 0x02, 0x0d, 0x80, 0x00, - 0x01, 0x60, 0x13, 0x0c, 0x10, 0x00, 0x16, 0x02, 0x02, 0x0d, 0x80, 0x80, 0x04, 0x52, 0x01, 0x60, - 0x13, 0x0e, 0x20, 0x00, 0x16, 0x02, 0x02, 0x03, 0x82, 0x00, 0x04, 0x60, 0xdb, 0xb8, 0x02, 0x8f, - 0x00, 0x06, 0x16, 0x56, 0x01, 0xe0, 0x13, 0x0e, 0x00, 0xa0, 0x05, 0xa0, 0x13, 0x16, 0x06, 0xa0, - 0x85, 0x30, 0x02, 0x08, 0xc0, 0x00, 0x06, 0xa0, 0xe0, 0x22, 0x01, 0xcd, 0x04, 0x00, 0x10, 0x48, - 0x02, 0x8f, 0x00, 0x02, 0x16, 0x45, 0x02, 0x08, 0xc0, 0x42, 0x06, 0xa0, 0xe0, 0x22, 0x01, 0xcd, - 0x08, 0x00, 0x10, 0x3e, 0x93, 0xe0, 0xef, 0xa3, 0x13, 0x03, 0x93, 0xe0, 0xef, 0xa4, 0x16, 0x38, - 0xd2, 0xa0, 0xef, 0xa5, 0x10, 0x35, 0x02, 0x8f, 0x00, 0x06, 0x16, 0x32, 0x02, 0x03, 0x00, 0x03, - 0x04, 0x60, 0x82, 0xc2, 0x93, 0xe0, 0xef, 0xa5, 0x16, 0x2b, 0x01, 0xe0, 0x13, 0x0e, 0x00, 0x80, - 0x06, 0xa0, 0x85, 0x30, 0x04, 0xcf, 0x02, 0x0a, 0x00, 0x04, 0x02, 0x08, 0xc0, 0x1e, 0x06, 0xa0, - 0xe0, 0x22, 0x02, 0x03, 0x68, 0x00, 0x06, 0xa0, 0xe3, 0x56, 0x02, 0x03, 0x80, 0x10, 0x06, 0xa0, - 0xe3, 0x56, 0x10, 0x16, 0x02, 0x8f, 0x00, 0x04, 0x16, 0x13, 0x02, 0x03, 0x00, 0x03, 0x04, 0x60, - 0x82, 0xc2, 0x02, 0x8f, 0x00, 0x02, 0x16, 0x7a, 0x01, 0x60, 0x13, 0x0e, 0x00, 0x08, 0x16, 0x02, - 0x04, 0x60, 0x85, 0x56, 0x02, 0x0a, 0x00, 0x04, 0x02, 0x08, 0xc0, 0x1e, 0x06, 0xa0, 0xe0, 0x22, - 0x10, 0x6d, 0x01, 0x60, 0x13, 0x0e, 0x40, 0x00, 0x16, 0x69, 0x02, 0x8f, 0x00, 0x06, 0x16, 0x07, - 0x01, 0xe0, 0x13, 0x0e, 0x00, 0xa0, 0x05, 0xa0, 0x13, 0x16, 0x06, 0xa0, 0x85, 0x30, 0x02, 0x08, - 0xc0, 0x30, 0x06, 0xa0, 0xe0, 0x22, 0x01, 0xcd, 0x01, 0x00, 0x10, 0x58, 0x93, 0xe0, 0xef, 0xa3, - 0x16, 0x55, 0x02, 0x08, 0xc0, 0x36, 0x06, 0xa0, 0xe0, 0x22, 0x07, 0xa0, 0x07, 0x08, 0x00, 0x05, - 0x01, 0x60, 0x13, 0x0e, 0x04, 0x00, 0x16, 0x03, 0x07, 0xa0, 0x07, 0x08, 0x00, 0x02, 0x02, 0x05, - 0x03, 0xf8, 0x02, 0x04, 0x00, 0x04, 0x04, 0x60, 0x80, 0xfa, 0xc1, 0x20, 0x01, 0x84, 0x02, 0x44, - 0x88, 0x00, 0x13, 0x12, 0x48, 0x04, 0x01, 0x84, 0x06, 0x20, 0x07, 0x02, 0x16, 0x08, 0x01, 0xe0, - 0x13, 0x0e, 0x04, 0x00, 0x07, 0x83, 0xc0, 0x00, 0x06, 0xa0, 0xe3, 0x56, 0x10, 0x2f, 0x02, 0x08, - 0xc0, 0x3c, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x2a, 0x01, 0xe0, 0x01, 0x82, 0x40, 0x00, 0x06, 0xa0, - 0xe0, 0x18, 0x07, 0x20, 0x07, 0x02, 0x01, 0x8e, 0x80, 0x00, 0x01, 0xa0, 0x13, 0x0e, 0x06, 0x00, - 0x10, 0x1d, 0x02, 0x8f, 0x00, 0x02, 0x16, 0x1a, 0x01, 0x20, 0x13, 0x0e, 0x00, 0x40, 0x16, 0x16, - 0xc2, 0x20, 0x13, 0x14, 0x13, 0x09, 0x06, 0x20, 0x13, 0x14, 0x02, 0x08, 0xc0, 0x42, 0x06, 0xa0, - 0xe0, 0x22, 0x01, 0xcd, 0x08, 0x00, 0x10, 0x0a, 0x01, 0x60, 0x13, 0x0c, 0x20, 0x00, 0x13, 0x02, - 0x04, 0x60, 0x85, 0x56, 0x02, 0x03, 0x00, 0x05, 0x04, 0x60, 0x82, 0xc2, 0x04, 0x60, 0x87, 0xe0, - 0x02, 0x8f, 0x00, 0x06, 0x16, 0x04, 0x02, 0x03, 0x00, 0x05, 0x04, 0x60, 0x82, 0xc2, 0x01, 0x60, - 0x13, 0x0e, 0x20, 0x00, 0x16, 0xf3, 0x93, 0xe0, 0xef, 0xa2, 0x16, 0xf0, 0x01, 0xa0, 0x13, 0x0e, - 0x50, 0x80, 0x06, 0xa0, 0x85, 0x30, 0x01, 0xce, 0x00, 0x01, 0xd2, 0xa0, 0xef, 0xa3, 0x07, 0xa0, - 0x07, 0x08, 0x00, 0x05, 0x01, 0x60, 0x13, 0x0e, 0x04, 0x00, 0x16, 0x03, 0x07, 0xa0, 0x07, 0x08, - 0x00, 0x02, 0x02, 0x08, 0xc0, 0x36, 0x06, 0xa0, 0xe0, 0x22, 0x02, 0x08, 0xc0, 0x0c, 0x06, 0xa0, - 0xe0, 0x22, 0x02, 0x08, 0xc0, 0x18, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0xd0, 0x02, 0x8f, 0x00, 0x08, - 0x16, 0xcd, 0x07, 0xa0, 0x13, 0x14, 0x00, 0x0c, 0x04, 0x60, 0x80, 0x74, 0xc3, 0x0b, 0x06, 0xa0, - 0x85, 0x48, 0x06, 0xa0, 0x84, 0xf2, 0xc2, 0xcc, 0x04, 0xe0, 0x13, 0x0e, 0x04, 0xe0, 0x13, 0x16, - 0x04, 0xe0, 0x06, 0xdc, 0x04, 0xe0, 0x06, 0xde, 0x04, 0xe0, 0x06, 0xe0, 0x04, 0x5b, 0x02, 0x06, - 0x00, 0x05, 0x02, 0x04, 0x13, 0x1a, 0xc1, 0x54, 0x13, 0x01, 0x2c, 0xd4, 0x02, 0x24, 0x00, 0x0a, - 0x06, 0x06, 0x16, 0xf9, 0x04, 0x5b, 0x02, 0x06, 0x00, 0x05, 0x02, 0x04, 0x06, 0x72, 0xc1, 0x54, - 0x13, 0x01, 0x2c, 0xd4, 0x02, 0x24, 0x00, 0x0a, 0x06, 0x06, 0x16, 0xf9, 0x04, 0x5b, 0x01, 0x60, - 0x13, 0x0e, 0x08, 0x00, 0x16, 0x03, 0x01, 0xe0, 0x01, 0x82, 0x20, 0x00, 0x01, 0x60, 0x13, 0x0e, - 0x00, 0x80, 0x16, 0x04, 0x01, 0xe0, 0x01, 0x82, 0x0a, 0x00, 0x10, 0x03, 0x01, 0xa0, 0x01, 0x82, - 0x0a, 0x00, 0x04, 0x5b, 0x01, 0xa0, 0x01, 0x82, 0x28, 0x00, 0x01, 0xe0, 0x01, 0x82, 0x10, 0x00, - 0x04, 0x5b, 0x06, 0xa0, 0x84, 0xf2, 0x04, 0xe0, 0x13, 0x0e, 0xd8, 0x20, 0x13, 0x06, 0x09, 0x2e, - 0xd8, 0x20, 0x13, 0x08, 0x01, 0x80, 0xd8, 0x20, 0x13, 0x0a, 0x01, 0x82, 0x06, 0xa0, 0xe0, 0x18, - 0x04, 0x60, 0xe5, 0x62, 0xc0, 0x62, 0x00, 0x04, 0xc8, 0x22, 0x00, 0x06, 0x01, 0x6c, 0x02, 0x82, - 0x04, 0x00, 0x1b, 0x0d, 0x01, 0x8e, 0x08, 0x00, 0x02, 0x8f, 0x00, 0x06, 0x16, 0x08, 0x06, 0x20, - 0x13, 0x16, 0x16, 0x05, 0x01, 0xa0, 0x13, 0x0e, 0x00, 0xa0, 0x06, 0xa0, 0x85, 0x30, 0xc1, 0x22, - 0x00, 0x0e, 0x04, 0x51, 0xc8, 0x02, 0x01, 0x6c, 0xa0, 0x82, 0xc8, 0x22, 0x0c, 0x32, 0xfc, 0x00, - 0x02, 0x02, 0xfc, 0x00, 0x93, 0xe0, 0xe3, 0xaa, 0x13, 0x71, 0x06, 0xa0, 0xdc, 0xc6, 0x01, 0xa2, - 0x00, 0x0e, 0x80, 0x00, 0xc8, 0x05, 0x06, 0xfc, 0xc0, 0xc3, 0x16, 0x43, 0x01, 0x22, 0x00, 0x16, - 0x0f, 0x00, 0x16, 0x10, 0x88, 0x22, 0x00, 0x0e, 0x09, 0x6c, 0x16, 0x0c, 0x88, 0x22, 0x00, 0x10, - 0x09, 0x6e, 0x16, 0x08, 0x88, 0x22, 0x00, 0x12, 0x09, 0x70, 0x16, 0x04, 0x06, 0xa0, 0xe1, 0xa2, - 0x04, 0x60, 0x87, 0xe0, 0x98, 0xa0, 0xef, 0xa6, 0x00, 0x16, 0x13, 0x04, 0x98, 0xa0, 0xef, 0xa7, - 0x00, 0x16, 0x16, 0x15, 0xc2, 0xe0, 0x06, 0xdc, 0x16, 0x06, 0xc2, 0xe0, 0x06, 0xde, 0x16, 0x03, - 0xc2, 0xe0, 0x06, 0xe0, 0x13, 0x0c, 0x88, 0x22, 0x00, 0x0e, 0x06, 0xdc, 0x16, 0x71, 0x88, 0x22, - 0x00, 0x10, 0x06, 0xde, 0x16, 0x6d, 0x88, 0x22, 0x00, 0x12, 0x06, 0xe0, 0x16, 0x69, 0x02, 0x85, - 0x00, 0x09, 0x13, 0x0b, 0x02, 0x85, 0x00, 0x15, 0x13, 0x08, 0x02, 0x85, 0x00, 0x12, 0x13, 0x0d, - 0x02, 0x85, 0x00, 0x14, 0x13, 0x0e, 0x06, 0xa0, 0xe2, 0xe4, 0xa1, 0x45, 0xc1, 0x65, 0xef, 0x72, - 0x04, 0x55, 0x06, 0xa0, 0xe0, 0x6e, 0x04, 0x60, 0x87, 0xe0, 0xc8, 0x24, 0x00, 0x1a, 0x13, 0x4e, - 0x10, 0xf4, 0xc8, 0x24, 0x00, 0x1a, 0x13, 0x50, 0x10, 0xf0, 0x01, 0x20, 0x13, 0x0e, 0x02, 0x00, - 0x16, 0x07, 0x04, 0xe0, 0x01, 0x84, 0x01, 0xa0, 0x01, 0x82, 0x40, 0x00, 0x06, 0xa0, 0xe0, 0x18, - 0x07, 0xa0, 0x07, 0x02, 0x00, 0x04, 0x01, 0xe0, 0x13, 0x0e, 0x02, 0x00, 0x01, 0xce, 0x80, 0x00, - 0x02, 0x08, 0xc0, 0x3c, 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x60, 0x87, 0xe0, 0x06, 0xa0, 0xe1, 0xa2, - 0x04, 0x60, 0x87, 0xe0, 0x06, 0xa0, 0xe1, 0xa2, 0x02, 0x03, 0x00, 0x05, 0x01, 0x4f, 0x00, 0x80, - 0x16, 0x02, 0x02, 0x03, 0x82, 0x00, 0x04, 0x60, 0x82, 0xc2, 0x01, 0x60, 0x13, 0x0e, 0x20, 0x00, - 0x16, 0x24, 0x93, 0xe0, 0xef, 0xa2, 0x16, 0x0c, 0x01, 0x60, 0x13, 0x0e, 0x20, 0x00, 0x16, 0x28, - 0x02, 0x03, 0xa0, 0x00, 0x06, 0xa0, 0xe3, 0x56, 0x01, 0xa0, 0x13, 0x0e, 0x50, 0x00, 0x10, 0x03, - 0x93, 0xe0, 0xef, 0xa3, 0x16, 0x1d, 0x01, 0xce, 0x00, 0x02, 0xd2, 0xa0, 0xef, 0xa4, 0x02, 0x08, - 0xc0, 0x0c, 0x06, 0xa0, 0xe0, 0x22, 0x02, 0x08, 0xc0, 0x18, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x10, - 0x06, 0xa0, 0xe1, 0xa2, 0x02, 0x03, 0x00, 0x0b, 0x10, 0x04, 0x06, 0xa0, 0xe1, 0xa2, 0x02, 0x03, - 0x00, 0x05, 0x01, 0x4f, 0x00, 0x80, 0x16, 0x02, 0x02, 0x03, 0x82, 0x00, 0x04, 0x60, 0x82, 0xc2, - 0x10, 0xbd, 0x02, 0x8f, 0x00, 0x02, 0x13, 0xf1, 0x02, 0x8f, 0x00, 0x04, 0x13, 0xee, 0x01, 0x60, - 0x13, 0x0e, 0x40, 0x00, 0x16, 0xf5, 0x02, 0x08, 0xc0, 0x48, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0xf0, - 0x02, 0x8f, 0x00, 0x02, 0x16, 0xab, 0xc0, 0xe0, 0x13, 0x4e, 0x16, 0x0e, 0x01, 0x60, 0x13, 0x0c, - 0x08, 0x00, 0x13, 0xa8, 0x01, 0xe0, 0x13, 0x0e, 0x00, 0x48, 0x06, 0xa0, 0xe1, 0xa2, 0x02, 0x08, - 0xc0, 0x24, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x22, 0x02, 0x83, 0x00, 0x02, 0x16, 0xd9, 0xc8, 0x24, - 0x00, 0x0e, 0x06, 0xdc, 0xc8, 0x24, 0x00, 0x10, 0x06, 0xde, 0xc8, 0x24, 0x00, 0x12, 0x06, 0xe0, - 0x06, 0xa0, 0xe1, 0xa2, 0x02, 0x08, 0xc0, 0x24, 0x06, 0xa0, 0xe0, 0x22, 0x01, 0xe0, 0x13, 0x0e, - 0x00, 0x40, 0xc0, 0xe0, 0x13, 0x12, 0x16, 0x04, 0x01, 0xa0, 0x13, 0x0e, 0x08, 0x01, 0x10, 0x06, - 0x02, 0x83, 0x00, 0x01, 0x16, 0x03, 0x01, 0xe0, 0x13, 0x0e, 0x08, 0x01, 0x10, 0x17, 0x02, 0x8f, - 0x00, 0x06, 0x16, 0xb6, 0xc0, 0xe0, 0x13, 0x50, 0x02, 0x83, 0x00, 0x00, 0x16, 0x05, 0x06, 0xa0, - 0xe1, 0xa2, 0x02, 0x0a, 0x00, 0x0a, 0x10, 0x0a, 0x02, 0x83, 0x80, 0x20, 0x16, 0x04, 0x02, 0x03, - 0x00, 0x08, 0x04, 0x60, 0x82, 0xc2, 0x16, 0xa4, 0x04, 0x60, 0xda, 0x04, 0x92, 0xa0, 0xe0, 0x26, - 0x16, 0x0d, 0xd3, 0xe0, 0xe0, 0x26, 0x01, 0x4f, 0x00, 0x80, 0x13, 0x07, 0xc1, 0x0a, 0x83, 0xc4, - 0x13, 0x08, 0xc3, 0xc4, 0xc1, 0x24, 0xed, 0xd6, 0x04, 0x54, 0x10, 0x03, 0x93, 0xca, 0x13, 0xec, - 0xd3, 0xca, 0x03, 0xb0, 0xd8, 0x0f, 0x06, 0x59, 0x71, 0x04, 0xc1, 0x24, 0xed, 0xe2, 0x04, 0x54, - 0xf8, 0x20, 0xef, 0x54, 0x01, 0x80, 0xf8, 0x20, 0xef, 0x56, 0x01, 0x82, 0x06, 0xa0, 0xe0, 0x18, - 0x2e, 0xe0, 0x00, 0x00, 0xc8, 0x20, 0x09, 0x6c, 0x01, 0xa0, 0xc8, 0x20, 0x09, 0x6e, 0x01, 0xa2, - 0xc8, 0x20, 0x09, 0x70, 0x01, 0xa4, 0x02, 0x08, 0xc0, 0x06, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0xcc, - 0x07, 0xa0, 0x06, 0xc6, 0x02, 0x00, 0x07, 0xa0, 0x06, 0xc8, 0x00, 0x02, 0xd8, 0x20, 0xef, 0x58, - 0x09, 0x2e, 0xd8, 0x20, 0xef, 0x58, 0x01, 0x80, 0xd8, 0x20, 0xef, 0x5a, 0x01, 0x82, 0x06, 0xa0, - 0xe0, 0x18, 0x04, 0xe0, 0x01, 0x9e, 0x02, 0x08, 0xc0, 0x2a, 0x06, 0xa0, 0xe0, 0x22, 0x02, 0x04, - 0x00, 0x0a, 0x02, 0x05, 0x03, 0xf4, 0x06, 0xa0, 0xe3, 0xce, 0x07, 0xa0, 0x03, 0xf8, 0x88, 0x94, - 0x01, 0x4e, 0x08, 0x00, 0x13, 0xa9, 0x01, 0xce, 0x08, 0x00, 0x2e, 0xa0, 0x03, 0xf4, 0x10, 0xa4, - 0x03, 0xb0, 0x98, 0x20, 0xe0, 0x0e, 0x06, 0x65, 0x16, 0x9f, 0x92, 0xa0, 0xe0, 0x26, 0x16, 0x9c, - 0x02, 0x44, 0x5e, 0x00, 0x16, 0x0b, 0x06, 0x20, 0x06, 0xc6, 0x16, 0xdd, 0x02, 0x0a, 0x00, 0x06, - 0x10, 0x95, 0x03, 0xb0, 0x98, 0x20, 0xe0, 0x0e, 0x06, 0x65, 0x16, 0x8e, 0x06, 0x20, 0x06, 0xc8, - 0x16, 0xc5, 0x04, 0x60, 0xe6, 0x6a, 0xd8, 0x20, 0xef, 0x54, 0x09, 0x2e, 0xd8, 0x20, 0xef, 0x54, - 0x01, 0x80, 0xd8, 0x20, 0xef, 0x56, 0x01, 0x82, 0x06, 0xa0, 0xe0, 0x18, 0x01, 0xe0, 0x13, 0x0e, - 0x40, 0x20, 0x07, 0xa0, 0x13, 0x16, 0x00, 0x01, 0x02, 0x08, 0xc0, 0x30, 0x06, 0xa0, 0xe0, 0x22, - 0x02, 0x08, 0xc0, 0x48, 0x06, 0xa0, 0xe0, 0x22, 0x02, 0x08, 0xc0, 0x12, 0x06, 0xa0, 0xe0, 0x22, - 0x02, 0x08, 0xc0, 0x00, 0x06, 0xa0, 0xe0, 0x22, 0x01, 0xcd, 0x04, 0x00, 0x04, 0x60, 0x87, 0xe0, - 0x06, 0xa0, 0x85, 0x48, 0x01, 0xce, 0x00, 0x20, 0x2e, 0xe0, 0x00, 0x00, 0x04, 0xcd, 0x06, 0xa0, - 0x85, 0x0a, 0x02, 0x08, 0xc0, 0x4e, 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x60, 0x87, 0xe0, 0x01, 0xa0, - 0x13, 0x0e, 0x00, 0x80, 0x06, 0xa0, 0x85, 0x22, 0x01, 0xcf, 0x00, 0x80, 0x01, 0xe0, 0x13, 0x0e, - 0x10, 0x00, 0x01, 0x60, 0x13, 0x0e, 0x00, 0x01, 0x16, 0x04, 0x07, 0x88, 0x80, 0x06, 0x06, 0xa0, - 0xe0, 0x22, 0x01, 0x20, 0x13, 0x0e, 0x20, 0x00, 0x16, 0x07, 0x01, 0xe0, 0x13, 0x0e, 0x20, 0x00, - 0x04, 0xc3, 0x06, 0xa0, 0xe3, 0x56, 0x10, 0x0e, 0x01, 0x8e, 0x00, 0x03, 0x02, 0x03, 0x00, 0x10, - 0x06, 0xa0, 0xe3, 0x56, 0x01, 0x60, 0x13, 0x0e, 0x00, 0x10, 0x16, 0x04, 0x02, 0x03, 0x80, 0x08, - 0x06, 0xa0, 0xe3, 0x56, 0xc8, 0x20, 0xe4, 0x6e, 0x01, 0x86, 0x2e, 0xe0, 0x00, 0x01, 0x01, 0x8e, - 0x00, 0x20, 0x04, 0x60, 0x87, 0xdc, 0x02, 0x03, 0xa8, 0x00, 0x01, 0x60, 0x07, 0x08, 0x00, 0x02, - 0x16, 0x02, 0x02, 0x03, 0xe8, 0x00, 0x06, 0xa0, 0xe3, 0x56, 0x01, 0x4e, 0x00, 0x20, 0x13, 0x06, - 0x01, 0xce, 0x00, 0x20, 0x2e, 0xe0, 0x00, 0x00, 0xc0, 0x41, 0x16, 0xfa, 0x06, 0xa0, 0xe1, 0x2e, - 0x02, 0x4a, 0xff, 0x00, 0x02, 0x4f, 0xff, 0x80, 0x02, 0x05, 0x03, 0xf8, 0x02, 0x04, 0x00, 0x04, - 0x04, 0x60, 0x80, 0xfa, 0x02, 0x4a, 0xff, 0x00, 0x02, 0x4f, 0xff, 0x80, 0x04, 0x60, 0x87, 0xdc, - 0x06, 0xa0, 0x85, 0x48, 0x04, 0x60, 0x87, 0xdc, 0x06, 0xa0, 0x84, 0xf2, 0x04, 0xe0, 0x13, 0x0e, - 0x01, 0xce, 0x00, 0x08, 0x04, 0x60, 0xe7, 0xf6, 0x00, 0x00, 0x89, 0xfc, 0x06, 0x05, 0x00, 0x00, - 0x00, 0x00, 0xad, 0x90, 0x00, 0x62, 0xc0, 0x80, 0x13, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x00, - 0xdb, 0xc4, 0x00, 0x02, 0x13, 0x02, 0xea, 0xb0, 0x00, 0x02, 0x13, 0x54, 0xdc, 0x16, 0x00, 0x02, - 0x09, 0x1e, 0x00, 0x00, 0x00, 0x02, 0x13, 0x12, 0x00, 0x01, 0x00, 0x00, 0xda, 0x88, 0xda, 0x7c, - 0x86, 0x6e, 0xda, 0xa6, 0xda, 0x9e, 0xdb, 0x86, 0xdb, 0x86, 0xdb, 0x86, 0xda, 0xa8, 0x85, 0xa8, - 0x85, 0x78, 0xdb, 0x78, 0xdb, 0x86, 0xdb, 0x86, 0xdb, 0x86, 0xdb, 0x86, 0xdb, 0x9e, 0x88, 0x14, - 0x88, 0x44, 0x88, 0xca, 0x89, 0x14, 0x89, 0x32, 0xdb, 0xf6, 0x89, 0x9a, 0x89, 0xd8, 0x89, 0xe4, - 0xe4, 0x6e, 0xdb, 0x9e, 0x89, 0xec, 0xdb, 0x9e, 0x00, 0x00, 0xaf, 0x00, 0x00, 0xa8, 0x13, 0x24, - 0x82, 0xd2, 0x00, 0x14, 0x13, 0x1a, 0x82, 0xf4, 0x00, 0x04, 0x13, 0x38, 0x83, 0x08, 0x02, 0xbc, - 0x13, 0x1a, 0x83, 0x1a, 0x07, 0x08, 0x13, 0x1a, 0x83, 0x28, 0x03, 0xe8, 0x13, 0x1a, 0x83, 0x58, - 0x00, 0xf0, 0x13, 0x1a, 0x83, 0x66, 0x00, 0x14, 0x13, 0x24, 0x88, 0xb6, 0x00, 0x04, 0x13, 0x2e, - 0x83, 0x86, 0x00, 0x64, 0x13, 0x2e, 0x83, 0xb0, 0x00, 0x02, 0x13, 0x42, 0x83, 0xde, 0x00, 0x05, - 0x13, 0x1a, 0x84, 0x26, 0x00, 0x04, 0x13, 0x38, 0x84, 0x64, 0x01, 0xf4, 0x13, 0x1a, 0x84, 0xc0, - 0x00, 0x14, 0xae, 0x00, 0xd9, 0x00, 0x02, 0x00, 0xd9, 0x00, 0x00, 0x1e, 0x10, 0x00, 0x00, 0x10, - 0x30, 0x11, 0x04, 0x0c, 0x04, 0x0e, 0x04, 0x21, 0x00, 0x12, 0x10, 0x00, 0x00, 0x04, 0x30, 0x13, - 0xdb, 0xa8, 0xe8, 0x7c, 0x86, 0xbe, 0x86, 0xa8, 0x86, 0xa8, 0x87, 0x26, 0x86, 0xa8, 0xeb, 0xf2, - 0xdb, 0xa8, 0x86, 0xa0, 0xec, 0x04, 0xe8, 0x62, 0xec, 0x10, 0xec, 0x10, 0xed, 0x3a, 0xed, 0x44, - 0xed, 0x4e, 0x86, 0xa0, 0x87, 0x44, 0x86, 0xa0, 0x87, 0xb2, 0x86, 0xa0, 0x03, 0x00, 0x0f, 0x0d, - 0x00, 0x02, 0x04, 0x06, 0x00, 0x03, 0x00, 0x00, 0xb2, 0xa8, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, - 0xb9, 0x0c, 0x00, 0x06, 0x48, 0x20, 0x13, 0x04, 0x01, 0x80, 0x00, 0x00, 0xba, 0x38, 0x00, 0x06, - 0x48, 0x20, 0x13, 0x04, 0x01, 0x80, 0x00, 0x00, 0xbc, 0x88, 0x00, 0x06, 0x48, 0x20, 0x13, 0x04, - 0x01, 0x80, 0x00, 0x00, 0xca, 0xaa, 0x00, 0x04, 0x04, 0x60, 0x82, 0xb0, 0x00, 0x00, 0xc8, 0x2c, - 0x00, 0x02, 0x06, 0x09, 0x00, 0x00, 0xcc, 0x60, 0x00, 0x02, 0x06, 0x09, 0x00, 0x00, 0xdb, 0x1c, - 0x00, 0x04, 0x04, 0x60, 0x82, 0x56, 0x00, 0x00, 0xe0, 0xc8, 0x00, 0x02, 0x80, 0xda, 0x00, 0x00, - 0xed, 0x74, 0x00, 0x02, 0x80, 0xda, 0x00, 0x00, 0xed, 0x94, 0x00, 0x02, 0x80, 0xda, 0x00, 0x00, - 0xe7, 0xae, 0x00, 0x04, 0x06, 0xa0, 0x81, 0x90, 0x00, 0x00, 0xe5, 0xb0, 0x00, 0x04, 0x04, 0x60, - 0x80, 0x28, 0x00, 0x00, 0xdb, 0xc0, 0x00, 0x04, 0x04, 0x60, 0x80, 0xbe, 0x00, 0x00, 0xda, 0x76, - 0x00, 0x04, 0x04, 0x60, 0x81, 0xb8, 0x00, 0x00, 0xe0, 0x32, 0x00, 0x04, 0x04, 0x60, 0x81, 0xc0, - 0x00, 0x00, 0xdb, 0x92, 0x00, 0x04, 0x04, 0x60, 0x80, 0xfa, 0x00, 0x00, 0xe3, 0x76, 0x00, 0x04, - 0x04, 0x60, 0x81, 0xa0, 0x00, 0x00, 0xdd, 0x48, 0x00, 0x04, 0x04, 0x60, 0x81, 0xda, 0x00, 0x00, - 0xcc, 0xa2, 0x00, 0x04, 0x04, 0x60, 0x80, 0xc8, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 }; - -#endif /* OLTR_NO_TMS_MAC */ diff --git a/sys/contrib/softupdates/README b/sys/contrib/softupdates/README deleted file mode 100644 index 8a7433b61e9e..000000000000 --- a/sys/contrib/softupdates/README +++ /dev/null @@ -1,320 +0,0 @@ -Introduction - -This package constitutes the alpha distribution of the soft update -code updates for the fast filesystem. - -For More information on what Soft Updates is, see: -http://www.ece.cmu.edu/~ganger/papers/CSE-TR-254-95/ - -Status - -My `filesystem torture tests' (described below) run for days without -a hitch (no panic's, hangs, filesystem corruption, or memory leaks). -However, I have had several panic's reported to me by folks that -are field testing the code which I have not yet been able to -reproduce or fix. Although these panic's are rare and do not cause -filesystem corruption, the code should only be put into production -on systems where the system administrator is aware that it is being -run, and knows how to turn it off if problems arise. Thus, you may -hand out this code to others, but please ensure that this status -message is included with any distributions. Please also include -the file ffs_softdep.stub.c in any distributions so that folks that -cannot abide by the need to redistribute source will not be left -with a kernel that will not link. It will resolve all the calls -into the soft update code and simply ignores the request to enable -them. Thus you will be able to ensure that your other hooks have -not broken anything and that your kernel is softdep-ready for those -that wish to use them. Please report problems back to me with -kernel backtraces of panics if possible. This is massively complex -code, and people only have to have their filesystems hosed once or -twice to avoid future changes like the plague. I want to find and -fix as many bugs as soon as possible so as to get the code rock -solid before it gets widely released. Please report any bugs that -you uncover to mckusick@mckusick.com. - -Performance - -Running the Andrew Benchmarks yields the following raw data: - - Phase Normal Softdep What it does - 1 3s <1s Creating directories - 2 8s 4s Copying files - 3 6s 6s Recursive directory stats - 4 8s 9s Scanning each file - 5 25s 25s Compilation - - Normal: 19.9u 29.2s 0:52.8 135+630io - Softdep: 20.3u 28.5s 0:47.8 103+363io - -Another interesting datapoint are my `filesystem torture tests'. -They consist of 1000 runs of the andrew benchmarks, 1000 copy and -removes of /etc with randomly selected pauses of 0-60 seconds -between each copy and remove, and 500 find from / with randomly -selected pauses of 100 seconds between each run). The run of the -torture test compares as follows: - -With soft updates: writes: 6 sync, 1,113,686 async; run time 19hr, 50min -Normal filesystem: writes: 1,459,147 sync, 487,031 async; run time 27hr, 15min - -The upshot is 42% less I/O and 28% shorter running time. - -Another interesting test point is a full MAKEDEV. Because it runs -as a shell script, it becomes mostly limited by the execution speed -of the machine on which it runs. Here are the numbers: - -With soft updates: - - labrat# time ./MAKEDEV std - 2.2u 32.6s 0:34.82 100.0% 0+0k 11+36io 0pf+0w - - labrat# ls | wc - 522 522 3317 - -Without soft updates: - - labrat# time ./MAKEDEV std - 2.0u 40.5s 0:42.53 100.0% 0+0k 11+1221io 0pf+0w - - labrat# ls | wc - 522 522 3317 - -Of course, some of the system time is being pushed -to the syncer process, but that is a different story. - -To show a benchmark designed to highlight the soft update code -consider a tar of zero-sized files and an rm -rf of a directory tree -that has at least 50 files or so at each level. Running a test with -a directory tree containing 28 directories holding 202 empty files -produces the following numbers: - -With soft updates: -tar: 0.0u 0.5s 0:00.65 76.9% 0+0k 0+44io 0pf+0w (0 sync, 33 async writes) -rm: 0.0u 0.2s 0:00.20 100.0% 0+0k 0+37io 0pf+0w (0 sync, 72 async writes) - -Normal filesystem: -tar: 0.0u 1.1s 0:07.27 16.5% 0+0k 60+586io 0pf+0w (523 sync, 0 async writes) -rm: 0.0u 0.5s 0:01.84 29.3% 0+0k 0+318io 0pf+0w (258 sync, 65 async writes) - -The large reduction in writes is because inodes are clustered, so -most of a block gets allocated, then the whole block is written -out once rather than having the same block written once for each -inode allocated from it. Similarly each directory block is written -once rather than once for each new directory entry. Effectively -what the update code is doing is allocating a bunch of inodes -and directory entries without writing anything, then ensuring that -the block containing the inodes is written first followed by the -directory block that references them. If there were data in the -files it would further ensure that the data blocks were written -before their inodes claimed them. - -Copyright Restrictions - -Please familiarize yourself with the copyright restrictions -contained at the top of either the sys/ufs/ffs/softdep.h or -sys/ufs/ffs/ffs_softdep.c file. The key provision is similar -to the one used by the DB 2.0 package and goes as follows: - - Redistributions in any form must be accompanied by information - on how to obtain complete source code for any accompanying - software that uses the this software. This source code must - either be included in the distribution or be available for - no more than the cost of distribution plus a nominal fee, - and must be freely redistributable under reasonable - conditions. For an executable file, complete source code - means the source code for all modules it contains. It does - not mean source code for modules or files that typically - accompany the operating system on which the executable file - runs, e.g., standard library modules or system header files. - -The idea is to allow those of you freely redistributing your source -to use it while retaining for myself the right to peddle it for -money to the commercial UNIX vendors. Note that I have included a -stub file ffs_softdep.c.stub that is freely redistributable so that -you can put in all the necessary hooks to run the full soft updates -code, but still allow vendors that want to maintain proprietary -source to have a working system. I do plan to release the code with -a `Berkeley style' copyright once I have peddled it around to the -commercial vendors. If you have concerns about this copyright, -feel free to contact me with them and we can try to resolve any -difficulties. - -Soft Dependency Operation - -The soft update implementation does NOT require ANY changes -to the on-disk format of your filesystems. Furthermore it is -not used by default for any filesystems. It must be enabled on -a filesystem by filesystem basis by running tunefs to set a -bit in the superblock indicating that the filesystem should be -managed using soft updates. If you wish to stop using -soft updates due to performance or reliability reasons, -you can simply run tunefs on it again to turn off the bit and -revert to normal operation. The additional dynamic memory load -placed on the kernel malloc arena is approximately equal to -the amount of memory used by vnodes plus inodes (for a system -with 1000 vnodes, the additional peak memory load is about 300K). - -Kernel Changes - -There are two new changes to the kernel functionality that are not -contained in in the soft update files. The first is a `trickle -sync' facility running in the kernel as process 3. This trickle -sync process replaces the traditional `update' program (which should -be commented out of the /etc/rc startup script). When a vnode is -first written it is placed 30 seconds down on the trickle sync -queue. If it still exists and has dirty data when it reaches the -top of the queue, it is sync'ed. This approach evens out the load -on the underlying I/O system and avoids writing short-lived files. -The papers on trickle-sync tend to favor aging based on buffers -rather than files. However, I sync on file age rather than buffer -age because the data structures are much smaller as there are -typically far fewer files than buffers. Although this can make the -I/O spikey when a big file times out, it is still much better than -the wholesale sync's that were happening before. It also adapts -much better to the soft update code where I want to control -aging to improve performance (inodes age in 10 seconds, directories -in 15 seconds, files in 30 seconds). This ensures that most -dependencies are gone (e.g., inodes are written when directory -entries want to go to disk) reducing the amount of rollback that -is needed. - -The other main kernel change is to split the vnode freelist into -two separate lists. One for vnodes that are still being used to -identify buffers and the other for those vnodes no longer identifying -any buffers. The latter list is used by getnewvnode in preference -to the former. - -Packaging of Kernel Changes - -The sys subdirectory contains the changes and additions to the -kernel. My goal in writing this code was to minimize the changes -that need to be made to the kernel. Thus, most of the new code -is contained in the two new files softdep.h and ffs_softdep.c. -The rest of the kernel changes are simply inserting hooks to -call into these two new files. Although there has been some -structural reorganization of the filesystem code to accommodate -gathering the information required by the soft update code, -the actual ordering of filesystem operations when soft updates -are disabled is unchanged. - -The kernel changes are packaged as a set of diffs. As I am -doing my development in BSD/OS, the diffs are relative to the -BSD/OS versions of the files. Because BSD/OS recently had -4.4BSD-Lite2 merged into it, the Lite2 files are a good starting -point for figuring out the changes. There are 40 files that -require change plus the two new files. Most of these files have -only a few lines of changes in them. However, four files have -fairly extensive changes: kern/vfs_subr.c, ufs/ufs/ufs_lookup.c, -ufs/ufs/ufs_vnops.c, and ufs/ffs/ffs_alloc.c. For these four -files, I have provided the original Lite2 version, the Lite2 -version with the diffs merged in, and the diffs between the -BSD/OS and merged version. Even so, I expect that there will -be some difficulty in doing the merge; I am certainly willing -to assist in helping get the code merged into your system. - -Packaging of Utility Changes - -The utilities subdirectory contains the changes and additions -to the utilities. There are diffs to three utilities enclosed: - - tunefs - add a flag to enable and disable soft updates - - mount - print out whether soft updates are enabled and - also statistics on number of sync and async writes - - fsck - tighter checks on acceptable errors and a slightly - different policy for what to put in lost+found on - filesystems using soft updates - -In addition you should recompile vmstat so as to get reports -on the 13 new memory types used by the soft update code. -It is not necessary to use the new version of fsck, however it -would aid in my debugging if you do. Also, because of the time -lag between deleting a directory entry and the inode it -references, you will find a lot more files showing up in your -lost+found if you do not use the new version. Note that the -new version checks for the soft update flag in the superblock -and only uses the new algorithms if it is set. So, it will run -unchanged on the filesystems that are not using soft updates. - -Operation - -Once you have booted a kernel that incorporates the soft update -code and installed the updated utilities, do the following: - -1) Comment out the update program in /etc/rc. - -2) Run `tunefs -n enable' on one or more test filesystems. - -3) Mount these filesystems and then type `mount' to ensure that - they have been enabled for soft updates. - -4) Copy the test directory to a softdep filesystem, chdir into - it and run `./doit'. You may want to check out each of the - three subtests individually first: doit1 - andrew benchmarks, - doit2 - copy and removal of /etc, doit3 - find from /. - -==== -Additional notes from Feb 13 - -hen removing huge directories of files, it is possible to get -the incore state arbitrarily far ahead of the disk. Maintaining -all the associated depedency information can exhaust the kernel -malloc arena. To avoid this senario, I have put some limits on -the soft update code so that it will not be allowed to rampage -through all of the kernel memory. I enclose below the relevant -patches to vnode.h and vfs_subr.c (which allow the soft update -code to speed up the filesystem syncer process). I have also -included the diffs for ffs_softdep.c. I hope to make a pass over -ffs_softdep.c to isolate the differences with my standard version -so that these diffs are less painful to incorporate. - -Since I know you like to play with tuning, I have put the relevant -knobs on sysctl debug variables. The tuning knobs can be viewed -with `sysctl debug' and set with `sysctl -w debug.<name>=value'. -The knobs are as follows: - - debug.max_softdeps - limit on any given resource - debug.tickdelay - ticks to delay before allocating - debug.max_limit_hit - number of times tickdelay imposed - debug.rush_requests - number of rush requests to filesystem syncer - -The max_softdeps limit is derived from vnodesdesired which in -turn is sized based on the amount of memory on the machine. -When the limit is hit, a process requesting a resource first -tries to speed up the filesystem syncer process. Such a -request is recorded as a rush_request. After syncdelay / 2 -unserviced rush requests (typically 15) are in the filesystem -syncers queue (i.e., it is more than 15 seconds behind in its -work), the process requesting the memory is put to sleep for -tickdelay seconds. Such a delay is recorded in max_limit_hit. -Following this delay it is granted its memory without further -delay. I have tried the following experiments in which I -delete an MH directory containing 16,703 files: - -Run # 1 2 3 - -max_softdeps 4496 4496 4496 -tickdelay 100 == 1 sec 20 == 0.2 sec 2 == 0.02 sec -max_limit_hit 16 == 16 sec 27 == 5.4 sec 203 == 4.1 sec -rush_requests 147 102 93 -run time 57 sec 46 sec 45 sec -I/O's 781 859 936 - -When run with no limits, it completes in 40 seconds. So, the -time spent in delay is directly added to the bottom line. -Shortening the tick delay does cut down the total running time, -but at the expense of generating more total I/O operations -due to the rush orders being sent to the filesystem syncer. -Although the number of rush orders decreases with a shorter -tick delay, there are more requests in each order, hence the -increase in I/O count. Also, although the I/O count does rise -with a shorter delay, it is still at least an order of magnitude -less than without soft updates. Anyway, you may want to play -around with these value to see what works best and to see if -you can get an insight into how best to tune them. If you get -out of memory panic's, then you have max_softdeps set too high. -The max_limit_hit and rush_requests show be reset to zero -before each run. The minimum legal value for tickdelay is 2 -(if you set it below that, the code will use 2). - - diff --git a/sys/contrib/softupdates/softdep.h b/sys/contrib/softupdates/softdep.h deleted file mode 100644 index 5d5ce5ec5cda..000000000000 --- a/sys/contrib/softupdates/softdep.h +++ /dev/null @@ -1,548 +0,0 @@ -/* - * Copyright 1998 Marshall Kirk McKusick. All Rights Reserved. - * - * The soft updates code is derived from the appendix of a University - * of Michigan technical report (Gregory R. Ganger and Yale N. Patt, - * "Soft Updates: A Solution to the Metadata Update Problem in File - * Systems", CSE-TR-254-95, August 1995). - * - * The following are the copyrights and redistribution conditions that - * apply to this copy of the soft update software. For a license - * to use, redistribute or sell the soft update software under - * conditions other than those described here, please contact the - * author at one of the following addresses: - * - * Marshall Kirk McKusick mckusick@mckusick.com - * 1614 Oxford Street +1-510-843-9542 - * Berkeley, CA 94709-1608 - * USA - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. None of the names of McKusick, Ganger, Patt, or the University of - * Michigan may be used to endorse or promote products derived from - * this software without specific prior written permission. - * 4. Redistributions in any form must be accompanied by information on - * how to obtain complete source code for any accompanying software - * that uses this software. This source code must either be included - * in the distribution or be available for no more than the cost of - * distribution plus a nominal fee, and must be freely redistributable - * under reasonable conditions. For an executable file, complete - * source code means the source code for all modules it contains. - * It does not mean source code for modules or files that typically - * accompany the operating system on which the executable file runs, - * e.g., standard library modules or system header files. - * - * THIS SOFTWARE IS PROVIDED BY MARSHALL KIRK MCKUSICK ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL MARSHALL KIRK MCKUSICK BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)softdep.h 9.6 (McKusick) 2/25/99 - * $Id: softdep.h,v 1.5 1999/03/02 00:19:47 mckusick Exp $ - */ - -#include <sys/queue.h> - -/* - * Allocation dependencies are handled with undo/redo on the in-memory - * copy of the data. A particular data dependency is eliminated when - * it is ALLCOMPLETE: that is ATTACHED, DEPCOMPLETE, and COMPLETE. - * - * ATTACHED means that the data is not currently being written to - * disk. UNDONE means that the data has been rolled back to a safe - * state for writing to the disk. When the I/O completes, the data is - * restored to its current form and the state reverts to ATTACHED. - * The data must be locked throughout the rollback, I/O, and roll - * forward so that the rolled back information is never visible to - * user processes. The COMPLETE flag indicates that the item has been - * written. For example, a dependency that requires that an inode be - * written will be marked COMPLETE after the inode has been written - * to disk. The DEPCOMPLETE flag indicates the completion of any other - * dependencies such as the writing of a cylinder group map has been - * completed. A dependency structure may be freed only when both it - * and its dependencies have completed and any rollbacks that are in - * progress have finished as indicated by the set of ALLCOMPLETE flags - * all being set. The two MKDIR flags indicate additional dependencies - * that must be done when creating a new directory. MKDIR_BODY is - * cleared when the directory data block containing the "." and ".." - * entries has been written. MKDIR_PARENT is cleared when the parent - * inode with the increased link count for ".." has been written. When - * both MKDIR flags have been cleared, the DEPCOMPLETE flag is set to - * indicate that the directory dependencies have been completed. The - * writing of the directory inode itself sets the COMPLETE flag which - * then allows the directory entry for the new directory to be written - * to disk. The RMDIR flag marks a dirrem structure as representing - * the removal of a directory rather than a file. When the removal - * dependencies are completed, additional work needs to be done - * (truncation of the "." and ".." entries, an additional decrement - * of the associated inode, and a decrement of the parent inode). The - * DIRCHG flag marks a diradd structure as representing the changing - * of an existing entry rather than the addition of a new one. When - * the update is complete the dirrem associated with the inode for - * the old name must be added to the worklist to do the necessary - * reference count decrement. The GOINGAWAY flag indicates that the - * data structure is frozen from further change until its dependencies - * have been completed and its resources freed after which it will be - * discarded. The IOSTARTED flag prevents multiple calls to the I/O - * start routine from doing multiple rollbacks. The ONWORKLIST flag - * shows whether the structure is currently linked onto a worklist. - */ -#define ATTACHED 0x0001 -#define UNDONE 0x0002 -#define COMPLETE 0x0004 -#define DEPCOMPLETE 0x0008 -#define MKDIR_PARENT 0x0010 -#define MKDIR_BODY 0x0020 -#define RMDIR 0x0040 -#define DIRCHG 0x0080 -#define GOINGAWAY 0x0100 -#define IOSTARTED 0x0200 -#define ONWORKLIST 0x8000 - -#define ALLCOMPLETE (ATTACHED | COMPLETE | DEPCOMPLETE) - -/* - * The workitem queue. - * - * It is sometimes useful and/or necessary to clean up certain dependencies - * in the background rather than during execution of an application process - * or interrupt service routine. To realize this, we append dependency - * structures corresponding to such tasks to a "workitem" queue. In a soft - * updates implementation, most pending workitems should not wait for more - * than a couple of seconds, so the filesystem syncer process awakens once - * per second to process the items on the queue. - */ - -/* LIST_HEAD(workhead, worklist); -- declared in buf.h */ - -/* - * Each request can be linked onto a work queue through its worklist structure. - * To avoid the need for a pointer to the structure itself, this structure - * MUST be declared FIRST in each type in which it appears! If more than one - * worklist is needed in the structure, then a wk_data field must be added - * and the macros below changed to use it. - */ -struct worklist { - LIST_ENTRY(worklist) wk_list; /* list of work requests */ - unsigned short wk_type; /* type of request */ - unsigned short wk_state; /* state flags */ -}; -#define WK_DATA(wk) ((void *)(wk)) -#define WK_PAGEDEP(wk) ((struct pagedep *)(wk)) -#define WK_INODEDEP(wk) ((struct inodedep *)(wk)) -#define WK_NEWBLK(wk) ((struct newblk *)(wk)) -#define WK_BMSAFEMAP(wk) ((struct bmsafemap *)(wk)) -#define WK_ALLOCDIRECT(wk) ((struct allocdirect *)(wk)) -#define WK_INDIRDEP(wk) ((struct indirdep *)(wk)) -#define WK_ALLOCINDIR(wk) ((struct allocindir *)(wk)) -#define WK_FREEFRAG(wk) ((struct freefrag *)(wk)) -#define WK_FREEBLKS(wk) ((struct freeblks *)(wk)) -#define WK_FREEFILE(wk) ((struct freefile *)(wk)) -#define WK_DIRADD(wk) ((struct diradd *)(wk)) -#define WK_MKDIR(wk) ((struct mkdir *)(wk)) -#define WK_DIRREM(wk) ((struct dirrem *)(wk)) - -/* - * Various types of lists - */ -LIST_HEAD(dirremhd, dirrem); -LIST_HEAD(diraddhd, diradd); -LIST_HEAD(newblkhd, newblk); -LIST_HEAD(inodedephd, inodedep); -LIST_HEAD(allocindirhd, allocindir); -LIST_HEAD(allocdirecthd, allocdirect); -TAILQ_HEAD(allocdirectlst, allocdirect); - -/* - * The "pagedep" structure tracks the various dependencies related to - * a particular directory page. If a directory page has any dependencies, - * it will have a pagedep linked to its associated buffer. The - * pd_dirremhd list holds the list of dirrem requests which decrement - * inode reference counts. These requests are processed after the - * directory page with the corresponding zero'ed entries has been - * written. The pd_diraddhd list maintains the list of diradd requests - * which cannot be committed until their corresponding inode has been - * written to disk. Because a directory may have many new entries - * being created, several lists are maintained hashed on bits of the - * offset of the entry into the directory page to keep the lists from - * getting too long. Once a new directory entry has been cleared to - * be written, it is moved to the pd_pendinghd list. After the new - * entry has been written to disk it is removed from the pd_pendinghd - * list, any removed operations are done, and the dependency structure - * is freed. - */ -#define DAHASHSZ 6 -#define DIRADDHASH(offset) (((offset) >> 2) % DAHASHSZ) -struct pagedep { - struct worklist pd_list; /* page buffer */ -# define pd_state pd_list.wk_state /* check for multiple I/O starts */ - LIST_ENTRY(pagedep) pd_hash; /* hashed lookup */ - struct mount *pd_mnt; /* associated mount point */ - ino_t pd_ino; /* associated file */ - ufs_lbn_t pd_lbn; /* block within file */ - struct dirremhd pd_dirremhd; /* dirrem's waiting for page */ - struct diraddhd pd_diraddhd[DAHASHSZ]; /* diradd dir entry updates */ - struct diraddhd pd_pendinghd; /* directory entries awaiting write */ -}; - -/* - * The "inodedep" structure tracks the set of dependencies associated - * with an inode. One task that it must manage is delayed operations - * (i.e., work requests that must be held until the inodedep's associated - * inode has been written to disk). Getting an inode from its incore - * state to the disk requires two steps to be taken by the filesystem - * in this order: first the inode must be copied to its disk buffer by - * the VOP_UPDATE operation; second the inode's buffer must be written - * to disk. To ensure that both operations have happened in the required - * order, the inodedep maintains two lists. Delayed operations are - * placed on the id_inowait list. When the VOP_UPDATE is done, all - * operations on the id_inowait list are moved to the id_bufwait list. - * When the buffer is written, the items on the id_bufwait list can be - * safely moved to the work queue to be processed. A second task of the - * inodedep structure is to track the status of block allocation within - * the inode. Each block that is allocated is represented by an - * "allocdirect" structure (see below). It is linked onto the id_newinoupdt - * list until both its contents and its allocation in the cylinder - * group map have been written to disk. Once these dependencies have been - * satisfied, it is removed from the id_newinoupdt list and any followup - * actions such as releasing the previous block or fragment are placed - * on the id_inowait list. When an inode is updated (a VOP_UPDATE is - * done), the "inodedep" structure is linked onto the buffer through - * its worklist. Thus, it will be notified when the buffer is about - * to be written and when it is done. At the update time, all the - * elements on the id_newinoupdt list are moved to the id_inoupdt list - * since those changes are now relevant to the copy of the inode in the - * buffer. Also at update time, the tasks on the id_inowait list are - * moved to the id_bufwait list so that they will be executed when - * the updated inode has been written to disk. When the buffer containing - * the inode is written to disk, any updates listed on the id_inoupdt - * list are rolled back as they are not yet safe. Following the write, - * the changes are once again rolled forward and any actions on the - * id_bufwait list are processed (since those actions are now safe). - * The entries on the id_inoupdt and id_newinoupdt lists must be kept - * sorted by logical block number to speed the calculation of the size - * of the rolled back inode (see explanation in initiate_write_inodeblock). - * When a directory entry is created, it is represented by a diradd. - * The diradd is added to the id_inowait list as it cannot be safely - * written to disk until the inode that it represents is on disk. After - * the inode is written, the id_bufwait list is processed and the diradd - * entries are moved to the id_pendinghd list where they remain until - * the directory block containing the name has been written to disk. - * The purpose of keeping the entries on the id_pendinghd list is so that - * the softdep_fsync function can find and push the inode's directory - * name(s) as part of the fsync operation for that file. - */ -struct inodedep { - struct worklist id_list; /* buffer holding inode block */ -# define id_state id_list.wk_state /* inode dependency state */ - LIST_ENTRY(inodedep) id_hash; /* hashed lookup */ - struct fs *id_fs; /* associated filesystem */ - ino_t id_ino; /* dependent inode */ - nlink_t id_nlinkdelta; /* saved effective link count */ - struct dinode *id_savedino; /* saved dinode contents */ - LIST_ENTRY(inodedep) id_deps; /* bmsafemap's list of inodedep's */ - struct buf *id_buf; /* related bmsafemap (if pending) */ - off_t id_savedsize; /* file size saved during rollback */ - struct workhead id_pendinghd; /* entries awaiting directory write */ - struct workhead id_bufwait; /* operations after inode written */ - struct workhead id_inowait; /* operations waiting inode update */ - struct allocdirectlst id_inoupdt; /* updates before inode written */ - struct allocdirectlst id_newinoupdt; /* updates when inode written */ -}; - -/* - * A "newblk" structure is attached to a bmsafemap structure when a block - * or fragment is allocated from a cylinder group. Its state is set to - * DEPCOMPLETE when its cylinder group map is written. It is consumed by - * an associated allocdirect or allocindir allocation which will attach - * themselves to the bmsafemap structure if the newblk's DEPCOMPLETE flag - * is not set (i.e., its cylinder group map has not been written). - */ -struct newblk { - LIST_ENTRY(newblk) nb_hash; /* hashed lookup */ - struct fs *nb_fs; /* associated filesystem */ - ufs_daddr_t nb_newblkno; /* allocated block number */ - int nb_state; /* state of bitmap dependency */ - LIST_ENTRY(newblk) nb_deps; /* bmsafemap's list of newblk's */ - struct bmsafemap *nb_bmsafemap; /* associated bmsafemap */ -}; - -/* - * A "bmsafemap" structure maintains a list of dependency structures - * that depend on the update of a particular cylinder group map. - * It has lists for newblks, allocdirects, allocindirs, and inodedeps. - * It is attached to the buffer of a cylinder group block when any of - * these things are allocated from the cylinder group. It is freed - * after the cylinder group map is written and the state of its - * dependencies are updated with DEPCOMPLETE to indicate that it has - * been processed. - */ -struct bmsafemap { - struct worklist sm_list; /* cylgrp buffer */ - struct buf *sm_buf; /* associated buffer */ - struct allocdirecthd sm_allocdirecthd; /* allocdirect deps */ - struct allocindirhd sm_allocindirhd; /* allocindir deps */ - struct inodedephd sm_inodedephd; /* inodedep deps */ - struct newblkhd sm_newblkhd; /* newblk deps */ -}; - -/* - * An "allocdirect" structure is attached to an "inodedep" when a new block - * or fragment is allocated and pointed to by the inode described by - * "inodedep". The worklist is linked to the buffer that holds the block. - * When the block is first allocated, it is linked to the bmsafemap - * structure associated with the buffer holding the cylinder group map - * from which it was allocated. When the cylinder group map is written - * to disk, ad_state has the DEPCOMPLETE flag set. When the block itself - * is written, the COMPLETE flag is set. Once both the cylinder group map - * and the data itself have been written, it is safe to write the inode - * that claims the block. If there was a previous fragment that had been - * allocated before the file was increased in size, the old fragment may - * be freed once the inode claiming the new block is written to disk. - * This ad_fragfree request is attached to the id_inowait list of the - * associated inodedep (pointed to by ad_inodedep) for processing after - * the inode is written. - */ -struct allocdirect { - struct worklist ad_list; /* buffer holding block */ -# define ad_state ad_list.wk_state /* block pointer state */ - TAILQ_ENTRY(allocdirect) ad_next; /* inodedep's list of allocdirect's */ - ufs_lbn_t ad_lbn; /* block within file */ - ufs_daddr_t ad_newblkno; /* new value of block pointer */ - ufs_daddr_t ad_oldblkno; /* old value of block pointer */ - long ad_newsize; /* size of new block */ - long ad_oldsize; /* size of old block */ - LIST_ENTRY(allocdirect) ad_deps; /* bmsafemap's list of allocdirect's */ - struct buf *ad_buf; /* cylgrp buffer (if pending) */ - struct inodedep *ad_inodedep; /* associated inodedep */ - struct freefrag *ad_freefrag; /* fragment to be freed (if any) */ -}; - -/* - * A single "indirdep" structure manages all allocation dependencies for - * pointers in an indirect block. The up-to-date state of the indirect - * block is stored in ir_savedata. The set of pointers that may be safely - * written to the disk is stored in ir_safecopy. The state field is used - * only to track whether the buffer is currently being written (in which - * case it is not safe to update ir_safecopy). Ir_deplisthd contains the - * list of allocindir structures, one for each block that needs to be - * written to disk. Once the block and its bitmap allocation have been - * written the safecopy can be updated to reflect the allocation and the - * allocindir structure freed. If ir_state indicates that an I/O on the - * indirect block is in progress when ir_safecopy is to be updated, the - * update is deferred by placing the allocindir on the ir_donehd list. - * When the I/O on the indirect block completes, the entries on the - * ir_donehd list are processed by updating their corresponding ir_safecopy - * pointers and then freeing the allocindir structure. - */ -struct indirdep { - struct worklist ir_list; /* buffer holding indirect block */ -# define ir_state ir_list.wk_state /* indirect block pointer state */ - caddr_t ir_saveddata; /* buffer cache contents */ - struct buf *ir_savebp; /* buffer holding safe copy */ - struct allocindirhd ir_donehd; /* done waiting to update safecopy */ - struct allocindirhd ir_deplisthd; /* allocindir deps for this block */ -}; - -/* - * An "allocindir" structure is attached to an "indirdep" when a new block - * is allocated and pointed to by the indirect block described by the - * "indirdep". The worklist is linked to the buffer that holds the new block. - * When the block is first allocated, it is linked to the bmsafemap - * structure associated with the buffer holding the cylinder group map - * from which it was allocated. When the cylinder group map is written - * to disk, ai_state has the DEPCOMPLETE flag set. When the block itself - * is written, the COMPLETE flag is set. Once both the cylinder group map - * and the data itself have been written, it is safe to write the entry in - * the indirect block that claims the block; the "allocindir" dependency - * can then be freed as it is no longer applicable. - */ -struct allocindir { - struct worklist ai_list; /* buffer holding indirect block */ -# define ai_state ai_list.wk_state /* indirect block pointer state */ - LIST_ENTRY(allocindir) ai_next; /* indirdep's list of allocindir's */ - int ai_offset; /* pointer offset in indirect block */ - ufs_daddr_t ai_newblkno; /* new block pointer value */ - ufs_daddr_t ai_oldblkno; /* old block pointer value */ - struct freefrag *ai_freefrag; /* block to be freed when complete */ - struct indirdep *ai_indirdep; /* address of associated indirdep */ - LIST_ENTRY(allocindir) ai_deps; /* bmsafemap's list of allocindir's */ - struct buf *ai_buf; /* cylgrp buffer (if pending) */ -}; - -/* - * A "freefrag" structure is attached to an "inodedep" when a previously - * allocated fragment is replaced with a larger fragment, rather than extended. - * The "freefrag" structure is constructed and attached when the replacement - * block is first allocated. It is processed after the inode claiming the - * bigger block that replaces it has been written to disk. Note that the - * ff_state field is is used to store the uid, so may lose data. However, - * the uid is used only in printing an error message, so is not critical. - * Keeping it in a short keeps the data structure down to 32 bytes. - */ -struct freefrag { - struct worklist ff_list; /* id_inowait or delayed worklist */ -# define ff_state ff_list.wk_state /* owning user; should be uid_t */ - struct vnode *ff_devvp; /* filesystem device vnode */ - struct fs *ff_fs; /* addr of superblock */ - ufs_daddr_t ff_blkno; /* fragment physical block number */ - long ff_fragsize; /* size of fragment being deleted */ - ino_t ff_inum; /* owning inode number */ -}; - -/* - * A "freeblks" structure is attached to an "inodedep" when the - * corresponding file's length is reduced to zero. It records all - * the information needed to free the blocks of a file after its - * zero'ed inode has been written to disk. - */ -struct freeblks { - struct worklist fb_list; /* id_inowait or delayed worklist */ - ino_t fb_previousinum; /* inode of previous owner of blocks */ - struct vnode *fb_devvp; /* filesystem device vnode */ - struct fs *fb_fs; /* addr of superblock */ - off_t fb_oldsize; /* previous file size */ - off_t fb_newsize; /* new file size */ - int fb_chkcnt; /* used to check cnt of blks released */ - uid_t fb_uid; /* uid of previous owner of blocks */ - ufs_daddr_t fb_dblks[NDADDR]; /* direct blk ptrs to deallocate */ - ufs_daddr_t fb_iblks[NIADDR]; /* indirect blk ptrs to deallocate */ -}; - -/* - * A "freefile" structure is attached to an inode when its - * link count is reduced to zero. It marks the inode as free in - * the cylinder group map after the zero'ed inode has been written - * to disk and any associated blocks and fragments have been freed. - */ -struct freefile { - struct worklist fx_list; /* id_inowait or delayed worklist */ - mode_t fx_mode; /* mode of inode */ - ino_t fx_oldinum; /* inum of the unlinked file */ - struct vnode *fx_devvp; /* filesystem device vnode */ - struct fs *fx_fs; /* addr of superblock */ -}; - -/* - * A "diradd" structure is linked to an "inodedep" id_inowait list when a - * new directory entry is allocated that references the inode described - * by "inodedep". When the inode itself is written (either the initial - * allocation for new inodes or with the increased link count for - * existing inodes), the COMPLETE flag is set in da_state. If the entry - * is for a newly allocated inode, the "inodedep" structure is associated - * with a bmsafemap which prevents the inode from being written to disk - * until the cylinder group has been updated. Thus the da_state COMPLETE - * flag cannot be set until the inode bitmap dependency has been removed. - * When creating a new file, it is safe to write the directory entry that - * claims the inode once the referenced inode has been written. Since - * writing the inode clears the bitmap dependencies, the DEPCOMPLETE flag - * in the diradd can be set unconditionally when creating a file. When - * creating a directory, there are two additional dependencies described by - * mkdir structures (see their description below). When these dependencies - * are resolved the DEPCOMPLETE flag is set in the diradd structure. - * If there are multiple links created to the same inode, there will be - * a separate diradd structure created for each link. The diradd is - * linked onto the pg_diraddhd list of the pagedep for the directory - * page that contains the entry. When a directory page is written, - * the pg_diraddhd list is traversed to rollback any entries that are - * not yet ready to be written to disk. If a directory entry is being - * changed (by rename) rather than added, the DIRCHG flag is set and - * the da_previous entry points to the entry that will be "removed" - * once the new entry has been committed. During rollback, entries - * with da_previous are replaced with the previous inode number rather - * than zero. - * - * The overlaying of da_pagedep and da_previous is done to keep the - * structure down to 32 bytes in size on a 32-bit machine. If a - * da_previous entry is present, the pointer to its pagedep is available - * in the associated dirrem entry. If the DIRCHG flag is set, the - * da_previous entry is valid; if not set the da_pagedep entry is valid. - * The DIRCHG flag never changes; it is set when the structure is created - * if appropriate and is never cleared. - */ -struct diradd { - struct worklist da_list; /* id_inowait or id_pendinghd list */ -# define da_state da_list.wk_state /* state of the new directory entry */ - LIST_ENTRY(diradd) da_pdlist; /* pagedep holding directory block */ - doff_t da_offset; /* offset of new dir entry in dir blk */ - ino_t da_newinum; /* inode number for the new dir entry */ - union { - struct dirrem *dau_previous; /* entry being replaced in dir change */ - struct pagedep *dau_pagedep; /* pagedep dependency for addition */ - } da_un; -}; -#define da_previous da_un.dau_previous -#define da_pagedep da_un.dau_pagedep - -/* - * Two "mkdir" structures are needed to track the additional dependencies - * associated with creating a new directory entry. Normally a directory - * addition can be committed as soon as the newly referenced inode has been - * written to disk with its increased link count. When a directory is - * created there are two additional dependencies: writing the directory - * data block containing the "." and ".." entries (MKDIR_BODY) and writing - * the parent inode with the increased link count for ".." (MKDIR_PARENT). - * These additional dependencies are tracked by two mkdir structures that - * reference the associated "diradd" structure. When they have completed, - * they set the DEPCOMPLETE flag on the diradd so that it knows that its - * extra dependencies have been completed. The md_state field is used only - * to identify which type of dependency the mkdir structure is tracking. - * It is not used in the mainline code for any purpose other than consistency - * checking. All the mkdir structures in the system are linked together on - * a list. This list is needed so that a diradd can find its associated - * mkdir structures and deallocate them if it is prematurely freed (as for - * example if a mkdir is immediately followed by a rmdir of the same directory). - * Here, the free of the diradd must traverse the list to find the associated - * mkdir structures that reference it. The deletion would be faster if the - * diradd structure were simply augmented to have two pointers that referenced - * the associated mkdir's. However, this would increase the size of the diradd - * structure from 32 to 64-bits to speed a very infrequent operation. - */ -struct mkdir { - struct worklist md_list; /* id_inowait or buffer holding dir */ -# define md_state md_list.wk_state /* type: MKDIR_PARENT or MKDIR_BODY */ - struct diradd *md_diradd; /* associated diradd */ - struct buf *md_buf; /* MKDIR_BODY: buffer holding dir */ - LIST_ENTRY(mkdir) md_mkdirs; /* list of all mkdirs */ -}; -LIST_HEAD(mkdirlist, mkdir) mkdirlisthd; - -/* - * A "dirrem" structure describes an operation to decrement the link - * count on an inode. The dirrem structure is attached to the pg_dirremhd - * list of the pagedep for the directory page that contains the entry. - * It is processed after the directory page with the deleted entry has - * been written to disk. - * - * The overlaying of dm_pagedep and dm_dirinum is done to keep the - * structure down to 32 bytes in size on a 32-bit machine. It works - * because they are never used concurrently. - */ -struct dirrem { - struct worklist dm_list; /* delayed worklist */ -# define dm_state dm_list.wk_state /* state of the old directory entry */ - LIST_ENTRY(dirrem) dm_next; /* pagedep's list of dirrem's */ - struct mount *dm_mnt; /* associated mount point */ - ino_t dm_oldinum; /* inum of the removed dir entry */ - union { - struct pagedep *dmu_pagedep; /* pagedep dependency for remove */ - ino_t dmu_dirinum; /* parent inode number (for rmdir) */ - } dm_un; -}; -#define dm_pagedep dm_un.dmu_pagedep -#define dm_dirinum dm_un.dmu_dirinum diff --git a/sys/dev/aic7xxx/aic7xxx.c b/sys/dev/aic7xxx/aic7xxx.c index b0dbf367c293..8da50f326580 100644 --- a/sys/dev/aic7xxx/aic7xxx.c +++ b/sys/dev/aic7xxx/aic7xxx.c @@ -36,7 +36,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: aic7xxx.c,v 1.16.2.6 1999/04/19 21:37:50 gibbs Exp $ + * $Id: aic7xxx.c,v 1.16.2.7 1999/05/07 00:43:26 ken Exp $ */ /* * A few notes on features of the driver. @@ -192,7 +192,7 @@ typedef enum { SEARCH_REMOVE } ahc_search_action; -u_long ahc_unit = 0; +u_long ahc_unit; #ifdef AHC_DEBUG static int ahc_debug = AHC_DEBUG; @@ -202,6 +202,11 @@ static int ahc_debug = AHC_DEBUG; void ahc_pci_intr(struct ahc_softc *ahc); #endif +static int ahcinitscbdata(struct ahc_softc *ahc); +static void ahcfiniscbdata(struct ahc_softc *ahc); + +static bus_dmamap_callback_t ahcdmamapcb; + #if UNUSED static void ahc_dump_targcmd(struct target_cmd *cmd); #endif @@ -221,11 +226,7 @@ static void ahc_poll(struct cam_sim *sim); static void ahc_setup_data(struct ahc_softc *ahc, struct ccb_scsiio *csio, struct scb *scb); static void ahc_freeze_devq(struct ahc_softc *ahc, struct cam_path *path); -static struct scb * - ahc_get_scb(struct ahc_softc *ahc); -static void ahc_free_scb(struct ahc_softc *ahc, struct scb *scb); -static struct scb * - ahc_alloc_scb(struct ahc_softc *ahc); +static void ahcallocscbs(struct ahc_softc *ahc); static void ahc_scb_devinfo(struct ahc_softc *ahc, struct ahc_devinfo *devinfo, struct scb *scb); @@ -350,8 +351,8 @@ static __inline void ahc_busy_tcl(struct ahc_softc *ahc, struct scb *scb); static __inline void ahc_freeze_ccb(union ccb* ccb); static __inline cam_status ahc_ccb_status(union ccb* ccb); -static __inline void ahc_set_ccb_status(union ccb* ccb, - cam_status status); +static __inline void ahcsetccbstatus(union ccb* ccb, + cam_status status); static __inline void ahc_run_tqinfifo(struct ahc_softc *ahc); static __inline struct ahc_initiator_tinfo * @@ -359,11 +360,16 @@ static __inline struct ahc_initiator_tinfo * char channel, u_int our_id, u_int target, struct tmode_tstate **tstate); +static __inline void + ahcfreescb(struct ahc_softc *ahc, struct scb *scb); +static __inline struct scb * + ahcgetscb(struct ahc_softc *ahc); static __inline u_int32_t ahc_hscb_busaddr(struct ahc_softc *ahc, u_int index) { - return (ahc->hscb_busaddr + (sizeof(struct hardware_scb) * index)); + return (ahc->scb_data->hscb_busaddr + + (sizeof(struct hardware_scb) * index)); } #define AHC_BUSRESET_DELAY 25 /* Reset delay in us */ @@ -440,7 +446,7 @@ ahc_ccb_status(union ccb* ccb) } static __inline void -ahc_set_ccb_status(union ccb* ccb, cam_status status) +ahcsetccbstatus(union ccb* ccb, cam_status status) { ccb->ccb_h.status &= ~CAM_STATUS_MASK; ccb->ccb_h.status |= status; @@ -491,6 +497,62 @@ ahc_run_tqinfifo(struct ahc_softc *ahc) } } +/* + * An scb (and hence an scb entry on the board) is put onto the + * free list. + */ +static __inline void +ahcfreescb(struct ahc_softc *ahc, struct scb *scb) +{ + struct hardware_scb *hscb; + int opri; + + hscb = scb->hscb; + + opri = splcam(); + + if ((ahc->flags & AHC_RESOURCE_SHORTAGE) != 0 + && (scb->ccb->ccb_h.status & CAM_RELEASE_SIMQ) == 0) { + scb->ccb->ccb_h.status |= CAM_RELEASE_SIMQ; + ahc->flags &= ~AHC_RESOURCE_SHORTAGE; + } + + /* Clean up for the next user */ + scb->flags = SCB_FREE; + hscb->control = 0; + hscb->status = 0; + + SLIST_INSERT_HEAD(&ahc->scb_data->free_scbs, scb, links); + splx(opri); +} + +/* + * Get a free scb, either one already assigned to a hardware slot + * on the adapter or one that will require an SCB to be paged out before + * use. If there are none, see if we can allocate a new SCB. Otherwise + * either return an error or sleep. + */ +static __inline struct scb * +ahcgetscb(struct ahc_softc *ahc) +{ + struct scb *scbp; + int opri; + + opri = splcam(); + if ((scbp = SLIST_FIRST(&ahc->scb_data->free_scbs))) { + SLIST_REMOVE_HEAD(&ahc->scb_data->free_scbs, links); + } else { + ahcallocscbs(ahc); + scbp = SLIST_FIRST(&ahc->scb_data->free_scbs); + if (scbp != NULL) + SLIST_REMOVE_HEAD(&ahc->scb_data->free_scbs, links); + } + + splx(opri); + + return (scbp); +} + char * ahc_name(struct ahc_softc *ahc) { @@ -518,8 +580,8 @@ ahc_print_scb(struct scb *scb) hscb->SG_count, hscb->SG_pointer); printf(" sg_addr:%lx sg_len:%ld\n", - scb->ahc_dma[0].addr, - scb->ahc_dma[0].len); + scb->sg_list[0].addr, + scb->sg_list[0].len); printf(" cdb:%x %x %x %x %x %x %x %x %x %x %x %x\n", hscb->cmdstore[0], hscb->cmdstore[1], hscb->cmdstore[2], hscb->cmdstore[3], hscb->cmdstore[4], hscb->cmdstore[5], @@ -573,8 +635,9 @@ static struct ahc_syncrate ahc_syncrates[] = { * Allocate a controller structure for a new device and initialize it. */ struct ahc_softc * -ahc_alloc(int unit, u_int32_t iobase, vm_offset_t maddr, ahc_chip chip, - ahc_feature features, ahc_flag flags, struct scb_data *scb_data) +ahc_alloc(int unit, u_int32_t io_base, vm_offset_t maddr, + bus_dma_tag_t parent_dmat, ahc_chip chip, ahc_feature features, + ahc_flag flags, struct scb_data *scb_data) { /* * find unit and check we have that many defined @@ -595,19 +658,12 @@ ahc_alloc(int unit, u_int32_t iobase, vm_offset_t maddr, ahc_chip chip, alloc_size = sizeof(struct ahc_softc); ahc = malloc(alloc_size, M_DEVBUF, M_NOWAIT); if (!ahc) { - printf("ahc%d: cannot malloc!\n", unit); + printf("ahc%d: cannot malloc softc!\n", ahc->unit); return NULL; } bzero(ahc, alloc_size); - if (scb_data == NULL) { - struct full_ahc_softc* full_softc = (struct full_ahc_softc*)ahc; - ahc->scb_data = &full_softc->scb_data_storage; - STAILQ_INIT(&ahc->scb_data->free_scbs); - } else - ahc->scb_data = scb_data; LIST_INIT(&ahc->pending_ccbs); ahc->unit = unit; - /* * XXX This should be done by the bus specific probe stubs with * the bus layer providing the bsh and tag. Unfortunately, @@ -619,17 +675,23 @@ ahc_alloc(int unit, u_int32_t iobase, vm_offset_t maddr, ahc_chip chip, ahc->bsh = (bus_space_handle_t)maddr; } else { ahc->tag = I386_BUS_SPACE_IO; - ahc->bsh = (bus_space_handle_t)iobase; + ahc->bsh = (bus_space_handle_t)io_base; } ahc->chip = chip; ahc->features = features; - ahc->flags = flags; + ahc->flags = flags; + ahc->parent_dmat = parent_dmat; + if (scb_data == NULL) { + struct full_ahc_softc* full_softc = (struct full_ahc_softc*)ahc; + ahc->scb_data = &full_softc->scb_data_storage; + } else + ahc->scb_data = scb_data; + ahc->unpause = (ahc_inb(ahc, HCNTRL) & IRQMS) | INTEN; /* The IRQMS bit is only valid on VL and EISA chips */ if ((ahc->chip & AHC_PCI) != 0) ahc->unpause &= ~IRQMS; ahc->pause = ahc->unpause | PAUSE; - return (ahc); } @@ -637,10 +699,239 @@ void ahc_free(ahc) struct ahc_softc *ahc; { + ahcfiniscbdata(ahc); + switch (ahc->init_level) { + case 3: + bus_dmamap_unload(ahc->shared_data_dmat, + ahc->shared_data_dmamap); + case 2: + bus_dmamem_free(ahc->shared_data_dmat, ahc->qoutfifo, + ahc->shared_data_dmamap); + bus_dmamap_destroy(ahc->shared_data_dmat, + ahc->shared_data_dmamap); + case 1: + bus_dma_tag_destroy(ahc->buffer_dmat); + break; + } + + /* + * XXX We punt on releasing our register space and interrupt. + * This is addressed in -current. + */ + free(ahc, M_DEVBUF); return; } +static int +ahcinitscbdata(struct ahc_softc *ahc) +{ + struct scb_data *scb_data; + int i; + + scb_data = ahc->scb_data; + SLIST_INIT(&scb_data->free_scbs); + SLIST_INIT(&scb_data->sg_maps); + + /* Allocate SCB resources */ + scb_data->scbarray = + (struct scb *)malloc(sizeof(struct scb) * AHC_SCB_MAX, + M_DEVBUF, M_NOWAIT); + if (scb_data->scbarray == NULL) + return (ENOMEM); + bzero(scb_data->scbarray, sizeof(struct scb) * AHC_SCB_MAX); + + /* Determine the number of hardware SCBs and initialize them */ + + scb_data->maxhscbs = ahc_probe_scbs(ahc); + /* SCB 0 heads the free list */ + ahc_outb(ahc, FREE_SCBH, 0); + for (i = 0; i < ahc->scb_data->maxhscbs; i++) { + ahc_outb(ahc, SCBPTR, i); + + /* Clear the control byte. */ + ahc_outb(ahc, SCB_CONTROL, 0); + + /* Set the next pointer */ + ahc_outb(ahc, SCB_NEXT, i+1); + + /* Make the tag number invalid */ + ahc_outb(ahc, SCB_TAG, SCB_LIST_NULL); + } + + /* Make sure that the last SCB terminates the free list */ + ahc_outb(ahc, SCBPTR, i-1); + ahc_outb(ahc, SCB_NEXT, SCB_LIST_NULL); + + /* Ensure we clear the 0 SCB's control byte. */ + ahc_outb(ahc, SCBPTR, 0); + ahc_outb(ahc, SCB_CONTROL, 0); + + scb_data->maxhscbs = i; + + if (ahc->scb_data->maxhscbs == 0) + panic("%s: No SCB space found", ahc_name(ahc)); + + /* + * Create our DMA tags. These tags define the kinds of device + * accessable memory allocations and memory mappings we will + * need to perform during normal operation. + * + * Unless we need to further restrict the allocation, we rely + * on the restrictions of the parent dmat, hence the common + * use of MAXADDR and MAXSIZE. + */ + + /* DMA tag for our hardware scb structures */ + if (bus_dma_tag_create(ahc->parent_dmat, /*alignment*/0, /*boundary*/0, + /*lowaddr*/BUS_SPACE_MAXADDR, + /*highaddr*/BUS_SPACE_MAXADDR, + /*filter*/NULL, /*filterarg*/NULL, + AHC_SCB_MAX * sizeof(struct hardware_scb), + /*nsegments*/1, + /*maxsegsz*/BUS_SPACE_MAXSIZE_32BIT, + /*flags*/0, &scb_data->hscb_dmat) != 0) { + goto error_exit; + } + + scb_data->init_level++; + + /* Allocation for our ccbs */ + if (bus_dmamem_alloc(scb_data->hscb_dmat, (void **)&scb_data->hscbs, + BUS_DMA_NOWAIT, &scb_data->hscb_dmamap) != 0) { + goto error_exit; + } + + scb_data->init_level++; + + /* And permanently map them */ + bus_dmamap_load(scb_data->hscb_dmat, scb_data->hscb_dmamap, + scb_data->hscbs, + AHC_SCB_MAX * sizeof(struct hardware_scb), + ahcdmamapcb, &scb_data->hscb_busaddr, /*flags*/0); + + scb_data->init_level++; + + /* DMA tag for our sense buffers */ + if (bus_dma_tag_create(ahc->parent_dmat, /*alignment*/0, /*boundary*/0, + /*lowaddr*/BUS_SPACE_MAXADDR, + /*highaddr*/BUS_SPACE_MAXADDR, + /*filter*/NULL, /*filterarg*/NULL, + AHC_SCB_MAX * sizeof(struct scsi_sense_data), + /*nsegments*/1, + /*maxsegsz*/BUS_SPACE_MAXSIZE_32BIT, + /*flags*/0, &scb_data->sense_dmat) != 0) { + goto error_exit; + } + + scb_data->init_level++; + + /* Allocate them */ + if (bus_dmamem_alloc(scb_data->sense_dmat, (void **)&scb_data->sense, + BUS_DMA_NOWAIT, &scb_data->sense_dmamap) != 0) { + goto error_exit; + } + + scb_data->init_level++; + + /* And permanently map them */ + bus_dmamap_load(scb_data->sense_dmat, scb_data->sense_dmamap, + scb_data->sense, + AHC_SCB_MAX * sizeof(struct scsi_sense_data), + ahcdmamapcb, &scb_data->sense_busaddr, /*flags*/0); + + scb_data->init_level++; + + /* DMA tag for our S/G structures. We allocate in page sized chunks */ + if (bus_dma_tag_create(ahc->parent_dmat, /*alignment*/0, /*boundary*/0, + /*lowaddr*/BUS_SPACE_MAXADDR, + /*highaddr*/BUS_SPACE_MAXADDR, + /*filter*/NULL, /*filterarg*/NULL, + PAGE_SIZE, /*nsegments*/1, + /*maxsegsz*/BUS_SPACE_MAXSIZE_32BIT, + /*flags*/0, &scb_data->sg_dmat) != 0) { + goto error_exit; + } + + scb_data->init_level++; + + /* Perform initial CCB allocation */ + bzero(scb_data->hscbs, AHC_SCB_MAX * sizeof(struct hardware_scb)); + ahcallocscbs(ahc); + + if (scb_data->numscbs == 0) { + printf("%s: ahc_init_scb_data - " + "Unable to allocate initial scbs\n", + ahc_name(ahc)); + goto error_exit; + } + + /* + * Note that we were successfull + */ + return 0; + +error_exit: + + return ENOMEM; +} + +static void +ahcfiniscbdata(struct ahc_softc *ahc) +{ + struct scb_data *scb_data; + + scb_data = ahc->scb_data; + + switch (scb_data->init_level) { + default: + case 7: + { + struct sg_map_node *sg_map; + + while ((sg_map = SLIST_FIRST(&scb_data->sg_maps))!= NULL) { + SLIST_REMOVE_HEAD(&scb_data->sg_maps, links); + bus_dmamap_unload(scb_data->sg_dmat, + sg_map->sg_dmamap); + bus_dmamem_free(scb_data->sg_dmat, sg_map->sg_vaddr, + sg_map->sg_dmamap); + free(sg_map, M_DEVBUF); + } + bus_dma_tag_destroy(scb_data->sg_dmat); + } + case 6: + bus_dmamap_unload(scb_data->sense_dmat, + scb_data->sense_dmamap); + case 5: + bus_dmamem_free(scb_data->sense_dmat, scb_data->sense, + scb_data->sense_dmamap); + bus_dmamap_destroy(scb_data->sense_dmat, + scb_data->sense_dmamap); + case 4: + bus_dma_tag_destroy(scb_data->sense_dmat); + case 3: + bus_dmamap_unload(scb_data->hscb_dmat, scb_data->hscb_dmamap); + case 2: + bus_dmamem_free(scb_data->hscb_dmat, scb_data->hscbs, + scb_data->hscb_dmamap); + bus_dmamap_destroy(scb_data->hscb_dmat, scb_data->hscb_dmamap); + case 1: + bus_dma_tag_destroy(scb_data->hscb_dmat); + break; + } + if (scb_data->scbarray != NULL) + free(scb_data->scbarray, M_DEVBUF); +} + +static void +ahcdmamapcb(void *arg, bus_dma_segment_t *segs, int nseg, int error) +{ + bus_addr_t *baddr; + + baddr = (bus_addr_t *)arg; + *baddr = segs->ds_addr; +} + int ahc_reset(struct ahc_softc *ahc) { @@ -822,18 +1113,27 @@ ahc_update_target_msg_request(struct ahc_softc *ahc, if (ahc->targ_msg_req != targ_msg_req_orig) { /* Update the message request bit for this target */ - if (!paused) { - pause_sequencer(ahc); - DELAY(1000); - } + if ((ahc->features & AHC_HS_MAILBOX) != 0) { + if (paused) { + ahc_outb(ahc, TARGET_MSG_REQUEST, + ahc->targ_msg_req & 0xFF); + ahc_outb(ahc, TARGET_MSG_REQUEST + 1, + (ahc->targ_msg_req >> 8) & 0xFF); + } else { + ahc_outb(ahc, HS_MAILBOX, + 0x01 << HOST_MAILBOX_SHIFT); + } + } else { + if (!paused) + pause_sequencer(ahc); - ahc_outb(ahc, TARGET_MSG_REQUEST, ahc->targ_msg_req & 0xFF); - ahc_outb(ahc, TARGET_MSG_REQUEST + 1, - (ahc->targ_msg_req >> 8) & 0xFF); + ahc_outb(ahc, TARGET_MSG_REQUEST, + ahc->targ_msg_req & 0xFF); + ahc_outb(ahc, TARGET_MSG_REQUEST + 1, + (ahc->targ_msg_req >> 8) & 0xFF); - if (!paused) { - unpause_sequencer(ahc, /*unpause always*/FALSE); - DELAY(1000); + if (!paused) + unpause_sequencer(ahc, /*unpause always*/FALSE); } } } @@ -1083,11 +1383,13 @@ ahc_attach(struct ahc_softc *ahc) struct cam_path *path; struct cam_path *path2; int count; + int s; count = 0; sim = NULL; sim2 = NULL; + s = splcam(); /* * Attach secondary channel first if the user has * declared it the primary channel. @@ -1103,7 +1405,7 @@ ahc_attach(struct ahc_softc *ahc) /* * Create the device queue for our SIM(s). */ - devq = cam_simq_alloc(ahc->scb_data->maxscbs); + devq = cam_simq_alloc(AHC_SCB_MAX); if (devq == NULL) goto fail; @@ -1111,7 +1413,7 @@ ahc_attach(struct ahc_softc *ahc) * Construct our first channel SIM entry */ sim = cam_sim_alloc(ahc_action, ahc_poll, "ahc", ahc, ahc->unit, - 1, ahc->scb_data->maxscbs, devq); + 1, AHC_SCB_MAX, devq); if (sim == NULL) { cam_simq_free(devq); goto fail; @@ -1143,7 +1445,7 @@ ahc_attach(struct ahc_softc *ahc) if (ahc->features & AHC_TWIN) { sim2 = cam_sim_alloc(ahc_action, ahc_poll, "ahc", ahc, ahc->unit, 1, - ahc->scb_data->maxscbs, devq); + AHC_SCB_MAX, devq); if (sim2 == NULL) { printf("ahc_attach: Unable to attach second " @@ -1179,6 +1481,7 @@ ahc_attach(struct ahc_softc *ahc) xpt_action((union ccb *)&csa); count++; } + fail: if ((ahc->flags & AHC_CHANNEL_B_PRIMARY) != 0) { ahc->sim_b = sim; @@ -1191,6 +1494,7 @@ fail: ahc->sim_b = sim2; ahc->path_b = path2; } + splx(s); return (count); } @@ -1299,8 +1603,9 @@ ahc_intr(void *arg) scb_index = ahc->qoutfifo[ahc->qoutfifonext]; ahc->qoutfifo[ahc->qoutfifonext++] = SCB_LIST_NULL; - scb = ahc->scb_data->scbarray[scb_index]; - if (!scb || !(scb->flags & SCB_ACTIVE)) { + scb = &ahc->scb_data->scbarray[scb_index]; + if (scb_index >= ahc->scb_data->numscbs + || (scb->flags & SCB_ACTIVE) == 0) { printf("%s: WARNING no command for scb %d " "(cmdcmplt)\nQOUTPOS = %d\n", ahc_name(ahc), scb_index, @@ -1787,6 +2092,12 @@ ahc_handle_seqint(struct ahc_softc *ahc, u_int intstat) ahc_outb(ahc, SCSISIGO, ahc_inb(ahc, LASTPHASE) | ATNO); break; } + case UPDATE_TMSG_REQ: + ahc_outb(ahc, TARGET_MSG_REQUEST, ahc->targ_msg_req & 0xFF); + ahc_outb(ahc, TARGET_MSG_REQUEST + 1, + (ahc->targ_msg_req >> 8) & 0xFF); + ahc_outb(ahc, HS_MAILBOX, 0); + break; case SEND_REJECT: { u_int rejbyte = ahc_inb(ahc, ACCUM); @@ -1844,7 +2155,7 @@ ahc_handle_seqint(struct ahc_softc *ahc, u_int intstat) * the in kernel copy directly. */ scb_index = ahc_inb(ahc, SCB_TAG); - scb = ahc->scb_data->scbarray[scb_index]; + scb = &ahc->scb_data->scbarray[scb_index]; hscb = scb->hscb; /* @@ -1853,7 +2164,8 @@ ahc_handle_seqint(struct ahc_softc *ahc, u_int intstat) * this if needed. */ ahc_outb(ahc, RETURN_1, 0); - if (!(scb && (scb->flags & SCB_ACTIVE))) { + if (!(scb_index < ahc->scb_data->numscbs + && (scb->flags & SCB_ACTIVE) != 0)) { printf("%s:%c:%d: ahc_intr - referenced scb " "not valid during seqint 0x%x scb(%d)\n", ahc_name(ahc), devinfo.channel, @@ -1869,10 +2181,10 @@ ahc_handle_seqint(struct ahc_softc *ahc, u_int intstat) * complete. */ scb->flags &= ~SCB_SENSE; - ahc_set_ccb_status(scb->ccb, CAM_AUTOSENSE_FAIL); + ahcsetccbstatus(scb->ccb, CAM_AUTOSENSE_FAIL); break; } - ahc_set_ccb_status(scb->ccb, CAM_SCSI_STATUS_ERROR); + ahcsetccbstatus(scb->ccb, CAM_SCSI_STATUS_ERROR); /* Freeze the queue unit the client sees the error. */ ahc_freeze_devq(ahc, scb->ccb->ccb_h.path); ahc_freeze_ccb(scb->ccb); @@ -1894,12 +2206,13 @@ ahc_handle_seqint(struct ahc_softc *ahc, u_int intstat) #endif if ((csio->ccb_h.flags & CAM_DIS_AUTOSENSE) == 0) { - struct ahc_dma_seg *sg = scb->ahc_dma; - struct scsi_sense *sc = - (struct scsi_sense *)(&hscb->cmdstore); + struct ahc_dma_seg *sg; + struct scsi_sense *sc; struct ahc_initiator_tinfo *tinfo; struct tmode_tstate *tstate; + sg = scb->sg_list; + sc = (struct scsi_sense *)(&hscb->cmdstore); /* * Save off the residual if there is one. */ @@ -1912,24 +2225,18 @@ ahc_handle_seqint(struct ahc_softc *ahc, u_int intstat) printf("Sending Sense\n"); } #endif - /* - * bzero from the sense data before having - * the drive fill it. The SCSI spec mandates - * that any untransfered data should be - * assumed to be zero. - */ - bzero(&csio->sense_data, - sizeof(csio->sense_data)); + sg->addr = ahc->scb_data->sense_busaddr + + (hscb->tag*sizeof(struct scsi_sense_data)); + sg->len = MIN(sizeof(struct scsi_sense_data), + csio->sense_len); + sc->opcode = REQUEST_SENSE; sc->byte2 = SCB_LUN(scb) << 5; sc->unused[0] = 0; sc->unused[1] = 0; - sc->length = csio->sense_len; + sc->length = sg->len; sc->control = 0; - sg->addr = vtophys(&csio->sense_data); - sg->len = csio->sense_len; - /* * Would be nice to preserve DISCENB here, * but due to the way we page SCBs, we can't. @@ -1953,7 +2260,7 @@ ahc_handle_seqint(struct ahc_softc *ahc, u_int intstat) /*paused*/TRUE); hscb->status = 0; hscb->SG_count = 1; - hscb->SG_pointer = scb->ahc_dmaphys; + hscb->SG_pointer = scb->sg_list_phys; hscb->data = sg->addr; hscb->datalen = sg->len; hscb->cmdpointer = hscb->cmdstore_busaddr; @@ -2033,7 +2340,7 @@ ahc_handle_seqint(struct ahc_softc *ahc, u_int intstat) u_int scb_index; scb_index = ahc_inb(ahc, SCB_TAG); - scb = ahc->scb_data->scbarray[scb_index]; + scb = &ahc->scb_data->scbarray[scb_index]; if (bus_phase == P_MESGOUT) ahc_setup_initiator_msgout(ahc, @@ -2073,7 +2380,7 @@ ahc_handle_seqint(struct ahc_softc *ahc, u_int intstat) u_int lastphase = ahc_inb(ahc, LASTPHASE); int i; - scb = ahc->scb_data->scbarray[scbindex]; + scb = &ahc->scb_data->scbarray[scbindex]; xpt_print_path(scb->ccb->ccb_h.path); printf("data overrun detected in %s phase." " Tag == 0x%x.\n", @@ -2087,8 +2394,8 @@ ahc_handle_seqint(struct ahc_softc *ahc, u_int intstat) for (i = 0; i < scb->sg_count - 1; i++) { printf("sg[%d] - Addr 0x%x : Length %d\n", i, - scb->ahc_dma[i].addr, - scb->ahc_dma[i].len); + scb->sg_list[i].addr, + scb->sg_list[i].len); } } /* @@ -2096,7 +2403,7 @@ ahc_handle_seqint(struct ahc_softc *ahc, u_int intstat) * target does a command complete. */ ahc_freeze_devq(ahc, scb->ccb->ccb_h.path); - ahc_set_ccb_status(scb->ccb, CAM_DATA_RUN_ERR); + ahcsetccbstatus(scb->ccb, CAM_DATA_RUN_ERR); ahc_freeze_ccb(scb->ccb); break; } @@ -2180,7 +2487,7 @@ ahc_handle_scsiint(struct ahc_softc *ahc, u_int intstat) scb_index = ahc_inb(ahc, SCB_TAG); if (scb_index < ahc->scb_data->numscbs) { - scb = ahc->scb_data->scbarray[scb_index]; + scb = &ahc->scb_data->scbarray[scb_index]; if ((scb->flags & SCB_ACTIVE) == 0) scb = NULL; } else @@ -2222,8 +2529,8 @@ ahc_handle_scsiint(struct ahc_softc *ahc, u_int intstat) scb->hscb->tag, tag == SCB_LIST_NULL ? "" : "Tag"); if ((scb->flags & SCB_RECOVERY_SCB) != 0) { - ahc_set_ccb_status(scb->ccb, - CAM_REQ_ABORTED); + ahcsetccbstatus(scb->ccb, + CAM_REQ_ABORTED); ahc_done(ahc, scb); } printerror = 0; @@ -2284,7 +2591,7 @@ ahc_handle_scsiint(struct ahc_softc *ahc, u_int intstat) scb_index = ahc_inb(ahc, SCB_TAG); if (scb_index < ahc->scb_data->numscbs) { - scb = ahc->scb_data->scbarray[scb_index]; + scb = &ahc->scb_data->scbarray[scb_index]; if ((scb->flags & SCB_ACTIVE) == 0) scb = NULL; } else @@ -2532,7 +2839,7 @@ ahc_handle_msg_reject(struct ahc_softc *ahc, struct ahc_devinfo *devinfo) int response = 0; scb_index = ahc_inb(ahc, SCB_TAG); - scb = ahc->scb_data->scbarray[scb_index]; + scb = &ahc->scb_data->scbarray[scb_index]; /* Might be necessary */ last_msg = ahc_inb(ahc, LAST_MSG); @@ -3182,7 +3489,7 @@ ahc_handle_ign_wide_residue(struct ahc_softc *ahc, struct ahc_devinfo *devinfo) struct scb *scb; scb_index = ahc_inb(ahc, SCB_TAG); - scb = ahc->scb_data->scbarray[scb_index]; + scb = &ahc->scb_data->scbarray[scb_index]; if ((ahc_inb(ahc, SEQ_FLAGS) & DPHASE) == 0 || (scb->ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_IN) { /* @@ -3228,18 +3535,18 @@ ahc_handle_ign_wide_residue(struct ahc_softc *ahc, struct ahc_devinfo *devinfo) sg_index = scb->sg_count - resid_sgcnt; /* - * scb->ahc_dma starts with the second S/G entry. + * scb->sg_list starts with the second S/G entry. */ if (sg_index-- != 0 - && (scb->ahc_dma[sg_index].len < data_cnt)) { + && (scb->sg_list[sg_index].len < data_cnt)) { u_int sg_addr; data_cnt = 1; - data_addr = scb->ahc_dma[sg_index - 1].addr - + scb->ahc_dma[sg_index - 1].len - 1; + data_addr = scb->sg_list[sg_index - 1].addr + + scb->sg_list[sg_index - 1].len - 1; - sg_addr = scb->ahc_dmaphys - + (sg_index * sizeof(*scb->ahc_dma)); + sg_addr = scb->sg_list_phys + + (sg_index * sizeof(*scb->sg_list)); ahc_outb(ahc, SG_NEXT + 3, sg_addr >> 24); ahc_outb(ahc, SG_NEXT + 2, sg_addr >> 16); ahc_outb(ahc, SG_NEXT + 1, sg_addr >> 8); @@ -3318,8 +3625,8 @@ ahc_done(struct ahc_softc *ahc, struct scb *scb) op = BUS_DMASYNC_POSTREAD; else op = BUS_DMASYNC_POSTWRITE; - bus_dmamap_sync(ahc->dmat, scb->dmamap, op); - bus_dmamap_unload(ahc->dmat, scb->dmamap); + bus_dmamap_sync(ahc->buffer_dmat, scb->dmamap, op); + bus_dmamap_unload(ahc->buffer_dmat, scb->dmamap); } /* @@ -3331,7 +3638,7 @@ ahc_done(struct ahc_softc *ahc, struct scb *scb) if (ccb->ccb_h.func_code == XPT_CONT_TARGET_IO) { ccb->ccb_h.status = CAM_REQ_CMP; - ahc_free_scb(ahc, scb); + ahcfreescb(ahc, scb); xpt_done(ccb); return; } @@ -3368,7 +3675,7 @@ ahc_done(struct ahc_softc *ahc, struct scb *scb) SCB_LUN(scb), scb->hscb->tag, /*status*/0, SEARCH_REMOVE); if (ahc_ccb_status(ccb) == CAM_BDR_SENT) - ahc_set_ccb_status(ccb, CAM_CMD_TIMEOUT); + ahcsetccbstatus(ccb, CAM_CMD_TIMEOUT); xpt_print_path(ccb->ccb_h.path); printf("no longer in timeout, status = %x\n", ccb->ccb_h.status); @@ -3378,11 +3685,24 @@ ahc_done(struct ahc_softc *ahc, struct scb *scb) if (ahc_ccb_status(ccb) == CAM_REQ_INPROG) { ccb->ccb_h.status |= CAM_REQ_CMP; } else if ((scb->flags & SCB_SENSE) != 0) { - /* We performed autosense retrieval */ + /* + * We performed autosense retrieval. + * + * bzero the sense data before having + * the drive fill it. The SCSI spec mandates + * that any untransfered data should be + * assumed to be zero. Complete the 'bounce' + * of sense information through buffers accessible + * via bus-space by copying it into the clients + * csio. + */ + bzero(&ccb->csio.sense_data, sizeof(ccb->csio.sense_data)); + bcopy(&ahc->scb_data->sense[scb->hscb->tag], + &ccb->csio.sense_data, scb->sg_list->len); scb->ccb->ccb_h.status |= CAM_AUTOSNS_VALID; } ccb->ccb_h.status &= ~CAM_SIM_QUEUED; - ahc_free_scb(ahc, scb); + ahcfreescb(ahc, scb); xpt_done(ccb); } @@ -3412,14 +3732,16 @@ ahc_probe_scbs(struct ahc_softc *ahc) { int ahc_init(struct ahc_softc *ahc) { - int max_targ = 15; - int i; - int term; - u_int scsi_conf; - u_int scsiseq_template; - u_int ultraenb; - u_int discenable; - u_int tagenable; + int max_targ = 15; + int i; + int term; + u_int scsi_conf; + u_int scsiseq_template; + u_int ultraenb; + u_int discenable; + u_int tagenable; + size_t driver_data_size; + u_int32_t physaddr; #ifdef AHC_PRINT_SRAM printf("Scratch Ram:"); @@ -3470,6 +3792,85 @@ ahc_init(struct ahc_softc *ahc) ahc->flags &= ~AHC_INITIATORMODE; } + /* DMA tag for mapping buffers into device visible space. */ + if (bus_dma_tag_create(ahc->parent_dmat, /*alignment*/0, /*boundary*/0, + /*lowaddr*/BUS_SPACE_MAXADDR, + /*highaddr*/BUS_SPACE_MAXADDR, + /*filter*/NULL, /*filterarg*/NULL, + /*maxsize*/MAXBSIZE, /*nsegments*/AHC_NSEG, + /*maxsegsz*/AHC_MAXTRANSFER_SIZE, + /*flags*/BUS_DMA_ALLOCNOW, + &ahc->buffer_dmat) != 0) { + return (ENOMEM); + } + + ahc->init_level++; + + /* + * DMA tag for our command fifos and other data in system memory + * the card's sequencer must be able to access. For initiator + * roles, we need to allocate space for the qinfifo, qoutfifo, + * and untagged_scb arrays each of which are composed of 256 + * 1 byte elements. When providing for the target mode role, + * we additionally must provide space for the incoming target + * command fifo. + */ + driver_data_size = 3 * 256 * sizeof(u_int8_t); + if ((ahc->flags & AHC_TARGETMODE) != 0) + driver_data_size += AHC_TMODE_CMDS * sizeof(struct target_cmd); + if (bus_dma_tag_create(ahc->parent_dmat, /*alignment*/0, /*boundary*/0, + /*lowaddr*/BUS_SPACE_MAXADDR, + /*highaddr*/BUS_SPACE_MAXADDR, + /*filter*/NULL, /*filterarg*/NULL, + driver_data_size, + /*nsegments*/1, + /*maxsegsz*/BUS_SPACE_MAXSIZE_32BIT, + /*flags*/0, &ahc->shared_data_dmat) != 0) { + return (ENOMEM); + } + + ahc->init_level++; + + /* Allocation of driver data */ + if (bus_dmamem_alloc(ahc->shared_data_dmat, (void **)&ahc->qoutfifo, + BUS_DMA_NOWAIT, &ahc->shared_data_dmamap) != 0) { + return (ENOMEM); + } + + ahc->init_level++; + + /* And permanently map it in */ + bus_dmamap_load(ahc->shared_data_dmat, ahc->shared_data_dmamap, + ahc->qoutfifo, driver_data_size, + ahcdmamapcb, &ahc->shared_data_busaddr, /*flags*/0); + + ahc->init_level++; + + /* Allocate SCB data now that buffer_dmat is initialized) */ + if (ahc->scb_data->maxhscbs == 0) + if (ahcinitscbdata(ahc) != 0) + return (ENOMEM); + + ahc->qinfifo = &ahc->qoutfifo[256]; + ahc->untagged_scbs = &ahc->qinfifo[256]; + /* There are no untagged SCBs active yet. */ + for (i = 0; i < 256; i++) + ahc->untagged_scbs[i] = SCB_LIST_NULL; + + /* All of our queues are empty */ + for (i = 0; i < 256; i++) + ahc->qoutfifo[i] = SCB_LIST_NULL; + + if ((ahc->flags & AHC_TARGETMODE) != 0) { + ahc->targetcmds = (struct target_cmd *)&ahc->untagged_scbs[256]; + + /* All target command blocks start out invalid. */ + for (i = 0; i < AHC_TMODE_CMDS; i++) + ahc->targetcmds[i].cmd_valid = 0; + ahc_outb(ahc, KERNEL_TQINPOS, ahc->tqinfifonext - 1); + ahc_outb(ahc, TQINPOS, 0); + } + /* * Allocate a tstate to house information for our * initiator presence on the bus as well as the user @@ -3501,46 +3902,10 @@ ahc_init(struct ahc_softc *ahc) ahc_outb(ahc, SEQ_FLAGS, 0); - /* Determine the number of SCBs and initialize them */ - - if (ahc->scb_data->maxhscbs == 0) { - ahc->scb_data->maxhscbs = ahc_probe_scbs(ahc); - /* SCB 0 heads the free list */ - ahc_outb(ahc, FREE_SCBH, 0); - for (i = 0; i < ahc->scb_data->maxhscbs; i++) { - ahc_outb(ahc, SCBPTR, i); - - /* Clear the control byte. */ - ahc_outb(ahc, SCB_CONTROL, 0); - - /* Set the next pointer */ - ahc_outb(ahc, SCB_NEXT, i+1); - - /* Make the tag number invalid */ - ahc_outb(ahc, SCB_TAG, SCB_LIST_NULL); - } - - /* Make that the last SCB terminates the free list */ - ahc_outb(ahc, SCBPTR, i-1); - ahc_outb(ahc, SCB_NEXT, SCB_LIST_NULL); - - /* Ensure we clear the 0 SCB's control byte. */ - ahc_outb(ahc, SCBPTR, 0); - ahc_outb(ahc, SCB_CONTROL, 0); - - ahc->scb_data->maxhscbs = i; - } - - if (ahc->scb_data->maxhscbs == 0) - panic("%s: No SCB space found", ahc_name(ahc)); - if (ahc->scb_data->maxhscbs < AHC_SCB_MAX) { ahc->flags |= AHC_PAGESCBS; - ahc->scb_data->maxscbs = AHC_SCB_MAX; - printf("%d/%d SCBs\n", ahc->scb_data->maxhscbs, - ahc->scb_data->maxscbs); + printf("%d/%d SCBs\n", ahc->scb_data->maxhscbs, AHC_SCB_MAX); } else { - ahc->scb_data->maxscbs = ahc->scb_data->maxhscbs; ahc->flags &= ~AHC_PAGESCBS; printf("%d SCBs\n", ahc->scb_data->maxhscbs); } @@ -3702,10 +4067,8 @@ ahc_init(struct ahc_softc *ahc) (ultraenb & mask) ? AHC_SYNCRATE_ULTRA : AHC_SYNCRATE_FAST); - if ((scsirate & SOFS) != 0 - && tinfo->user.period != 0) { + if (tinfo->user.period != 0) tinfo->user.offset = ~0; - } } if ((scsirate & WIDEXFER) != 0 && (ahc->features & AHC_WIDE) != 0) @@ -3716,119 +4079,55 @@ ahc_init(struct ahc_softc *ahc) tstate->tagenable = tagenable; } -#ifdef AHC_DEBUG - if (ahc_debug & AHC_SHOWMISC) - printf("NEEDSDTR == 0x%x\nNEEDWDTR == 0x%x\n" - "DISCENABLE == 0x%x\nULTRAENB == 0x%x\n", - ahc->needsdtr_orig, ahc->needwdtr_orig, - discenable, ultraenb); -#endif /* - * Allocate enough "hardware scbs" to handle - * the maximum number of concurrent transactions - * we can have active. We have to use contigmalloc - * if this array crosses a page boundary since the - * sequencer depends on this array being physically - * contiguous. + * Tell the sequencer where it can find the our arrays in memory. */ - if (ahc->scb_data->hscbs == NULL) { - size_t array_size; + physaddr = ahc->scb_data->hscb_busaddr; + ahc_outb(ahc, HSCB_ADDR, physaddr & 0xFF); + ahc_outb(ahc, HSCB_ADDR + 1, (physaddr >> 8) & 0xFF); + ahc_outb(ahc, HSCB_ADDR + 2, (physaddr >> 16) & 0xFF); + ahc_outb(ahc, HSCB_ADDR + 3, (physaddr >> 24) & 0xFF); - array_size = ahc->scb_data->maxscbs*sizeof(struct hardware_scb); - if (array_size > PAGE_SIZE) { - ahc->scb_data->hscbs = (struct hardware_scb *) - contigmalloc(array_size, M_DEVBUF, - M_NOWAIT, 0ul, 0xffffffff, - PAGE_SIZE, 0x10000); - } else { - ahc->scb_data->hscbs = (struct hardware_scb *) - malloc(array_size, M_DEVBUF, M_NOWAIT); - } - - if (ahc->scb_data->hscbs == NULL) { - printf("%s: unable to allocate hardware SCB array. " - "Failing attach\n", ahc_name(ahc)); - return (-1); - } - /* At least the control byte of each hscb needs to be zeroed */ - bzero(ahc->scb_data->hscbs, array_size); - } - - if ((ahc->flags & AHC_TARGETMODE) != 0) { - size_t array_size; - - array_size = AHC_TMODE_CMDS * sizeof(struct target_cmd); - ahc->targetcmds = contigmalloc(array_size, M_DEVBUF, - M_NOWAIT, 0ul, 0xffffffff, - PAGE_SIZE, 0x10000); - - if (ahc->targetcmds == NULL) { - printf("%s: unable to allocate targetcmd array. " - "Failing attach\n", ahc_name(ahc)); - return (-1); - } + physaddr = ahc->shared_data_busaddr; + ahc_outb(ahc, SCBID_ADDR, physaddr & 0xFF); + ahc_outb(ahc, SCBID_ADDR + 1, (physaddr >> 8) & 0xFF); + ahc_outb(ahc, SCBID_ADDR + 2, (physaddr >> 16) & 0xFF); + ahc_outb(ahc, SCBID_ADDR + 3, (physaddr >> 24) & 0xFF); - /* All target command blocks start out invalid. */ - for (i = 0; i < AHC_TMODE_CMDS; i++) - ahc->targetcmds[i].cmd_valid = 0; - ahc_outb(ahc, KERNEL_TQINPOS, ahc->tqinfifonext - 1); - ahc_outb(ahc, TQINPOS, 0); - } + /* Target mode incomding command fifo */ + physaddr += 3 * 256 * sizeof(u_int8_t); + ahc_outb(ahc, TMODE_CMDADDR, physaddr & 0xFF); + ahc_outb(ahc, TMODE_CMDADDR + 1, (physaddr >> 8) & 0xFF); + ahc_outb(ahc, TMODE_CMDADDR + 2, (physaddr >> 16) & 0xFF); + ahc_outb(ahc, TMODE_CMDADDR + 3, (physaddr >> 24) & 0xFF); /* - * Tell the sequencer where it can find the our arrays in memory. + * Initialize the group code to command length table. + * This overrides the values in TARG_SCSIRATE, so only + * setup the table after we have processed that information. */ - { - u_int32_t physaddr; - - /* Tell the sequencer where it can find the hscb array. */ - physaddr = vtophys(ahc->scb_data->hscbs); - ahc_outb(ahc, HSCB_ADDR, physaddr & 0xFF); - ahc_outb(ahc, HSCB_ADDR + 1, (physaddr >> 8) & 0xFF); - ahc_outb(ahc, HSCB_ADDR + 2, (physaddr >> 16) & 0xFF); - ahc_outb(ahc, HSCB_ADDR + 3, (physaddr >> 24) & 0xFF); - ahc->hscb_busaddr = physaddr; - - physaddr = vtophys(ahc->qoutfifo); - ahc_outb(ahc, SCBID_ADDR, physaddr & 0xFF); - ahc_outb(ahc, SCBID_ADDR + 1, (physaddr >> 8) & 0xFF); - ahc_outb(ahc, SCBID_ADDR + 2, (physaddr >> 16) & 0xFF); - ahc_outb(ahc, SCBID_ADDR + 3, (physaddr >> 24) & 0xFF); - - if ((ahc->flags & AHC_TARGETMODE) != 0) { - physaddr = vtophys(ahc->targetcmds); - ahc_outb(ahc, TMODE_CMDADDR, physaddr & 0xFF); - ahc_outb(ahc, TMODE_CMDADDR + 1, - (physaddr >> 8) & 0xFF); - ahc_outb(ahc, TMODE_CMDADDR + 2, - (physaddr >> 16) & 0xFF); - ahc_outb(ahc, TMODE_CMDADDR + 3, - (physaddr >> 24) & 0xFF); - - ahc_outb(ahc, CMDSIZE_TABLE, 5); - ahc_outb(ahc, CMDSIZE_TABLE + 1, 9); - ahc_outb(ahc, CMDSIZE_TABLE + 2, 9); - ahc_outb(ahc, CMDSIZE_TABLE + 3, 0); - ahc_outb(ahc, CMDSIZE_TABLE + 4, 15); - ahc_outb(ahc, CMDSIZE_TABLE + 5, 11); - ahc_outb(ahc, CMDSIZE_TABLE + 6, 0); - ahc_outb(ahc, CMDSIZE_TABLE + 7, 0); - } + ahc_outb(ahc, CMDSIZE_TABLE, 5); + ahc_outb(ahc, CMDSIZE_TABLE + 1, 9); + ahc_outb(ahc, CMDSIZE_TABLE + 2, 9); + ahc_outb(ahc, CMDSIZE_TABLE + 3, 0); + ahc_outb(ahc, CMDSIZE_TABLE + 4, 15); + ahc_outb(ahc, CMDSIZE_TABLE + 5, 11); + ahc_outb(ahc, CMDSIZE_TABLE + 6, 0); + ahc_outb(ahc, CMDSIZE_TABLE + 7, 0); - /* There are no untagged SCBs active yet. */ - for (i = 0; i < sizeof(ahc->untagged_scbs); i++) { - ahc->untagged_scbs[i] = SCB_LIST_NULL; - } - for (i = 0; i < sizeof(ahc->qoutfifo); i++) { - ahc->qoutfifo[i] = SCB_LIST_NULL; - } - } - - /* Our Q FIFOs are empty. */ + /* Tell the sequencer of our initial queue positions */ ahc_outb(ahc, KERNEL_QINPOS, 0); ahc_outb(ahc, QINPOS, 0); ahc_outb(ahc, QOUTPOS, 0); +#ifdef AHC_DEBUG + if (ahc_debug & AHC_SHOWMISC) + printf("NEEDSDTR == 0x%x\nNEEDWDTR == 0x%x\n" + "DISCENABLE == 0x%x\nULTRAENB == 0x%x\n", + ahc->needsdtr_orig, ahc->needwdtr_orig, + discenable, ultraenb); +#endif + /* Don't have any special messages to send to targets */ ahc_outb(ahc, TARGET_MSG_REQUEST, 0); ahc_outb(ahc, TARGET_MSG_REQUEST + 1, 0); @@ -4029,14 +4328,14 @@ ahc_action(struct cam_sim *sim, union ccb *ccb) /* * get an scb to use. */ - if ((scb = ahc_get_scb(ahc)) == NULL) { + if ((scb = ahcgetscb(ahc)) == NULL) { int s; s = splcam(); ahc->flags |= AHC_RESOURCE_SHORTAGE; splx(s); xpt_freeze_simq(ahc->sim, /*count*/1); - ahc_set_ccb_status(ccb, CAM_REQUEUE_REQ); + ahcsetccbstatus(ccb, CAM_REQUEUE_REQ); xpt_done(ccb); return; } @@ -4444,13 +4743,13 @@ ahc_execute_scb(void *arg, bus_dma_segment_t *dm_segs, int nsegments, end_seg = dm_segs + nsegments; /* Copy the first SG into the data pointer area */ - scb->hscb->SG_pointer = scb->ahc_dmaphys; + scb->hscb->SG_pointer = scb->sg_list_phys; scb->hscb->data = dm_segs->ds_addr; scb->hscb->datalen = dm_segs->ds_len; dm_segs++; /* Copy the remaining segments into our SG list */ - sg = scb->ahc_dma; + sg = scb->sg_list; while (dm_segs < end_seg) { sg->addr = dm_segs->ds_addr; sg->len = dm_segs->ds_len; @@ -4463,7 +4762,7 @@ ahc_execute_scb(void *arg, bus_dma_segment_t *dm_segs, int nsegments, else op = BUS_DMASYNC_PREWRITE; - bus_dmamap_sync(ahc->dmat, scb->dmamap, op); + bus_dmamap_sync(ahc->buffer_dmat, scb->dmamap, op); if (ccb->ccb_h.func_code == XPT_CONT_TARGET_IO) { scb->hscb->cmdpointer |= DPHASE_PENDING; @@ -4486,8 +4785,8 @@ ahc_execute_scb(void *arg, bus_dma_segment_t *dm_segs, int nsegments, */ if (ahc_ccb_status(ccb) != CAM_REQ_INPROG) { if (nsegments != 0) - bus_dmamap_unload(ahc->dmat, scb->dmamap); - ahc_free_scb(ahc, scb); + bus_dmamap_unload(ahc->buffer_dmat, scb->dmamap); + ahcfreescb(ahc, scb); xpt_done(ccb); splx(s); return; @@ -4560,12 +4859,16 @@ ahc_setup_data(struct ahc_softc *ahc, struct ccb_scsiio *csio, hscb->cmdlen); hscb->cmdpointer = hscb->cmdstore_busaddr; - } else - hscb->cmdpointer = - vtophys(csio->cdb_io.cdb_ptr); + } else { + ahcsetccbstatus(scb->ccb, + CAM_REQ_INVALID); + xpt_done(scb->ccb); + ahcfreescb(ahc, scb); + return; + } else hscb->cmdpointer = - (u_int32_t)csio->cdb_io.cdb_ptr; + ((intptr_t)csio->cdb_io.cdb_ptr) & 0xffffffff; } else { /* * CCB CDB Data Storage area is only 16 bytes @@ -4586,7 +4889,7 @@ ahc_setup_data(struct ahc_softc *ahc, struct ccb_scsiio *csio, int error; s = splsoftvm(); - error = bus_dmamap_load(ahc->dmat, + error = bus_dmamap_load(ahc->buffer_dmat, scb->dmamap, csio->data_ptr, csio->dxfer_len, @@ -4653,124 +4956,67 @@ ahc_freeze_devq(struct ahc_softc *ahc, struct cam_path *path) SEARCH_COMPLETE); } -/* - * An scb (and hence an scb entry on the board) is put onto the - * free list. - */ static void -ahc_free_scb(struct ahc_softc *ahc, struct scb *scb) -{ - struct hardware_scb *hscb; - int opri; - - hscb = scb->hscb; - - opri = splcam(); +ahcallocscbs(struct ahc_softc *ahc) +{ + struct scb_data *scb_data; + struct scb *next_scb; + struct sg_map_node *sg_map; + bus_addr_t physaddr; + struct ahc_dma_seg *segs; + int newcount; + int i; - if ((ahc->flags & AHC_RESOURCE_SHORTAGE) != 0 - && (scb->ccb->ccb_h.status & CAM_RELEASE_SIMQ) == 0) { - scb->ccb->ccb_h.status |= CAM_RELEASE_SIMQ; - ahc->flags &= ~AHC_RESOURCE_SHORTAGE; - } + scb_data = ahc->scb_data; + if (scb_data->numscbs >= AHC_SCB_MAX) + /* Can't allocate any more */ + return; - /* Clean up for the next user */ - scb->flags = SCB_FREE; - hscb->control = 0; - hscb->status = 0; + next_scb = &scb_data->scbarray[scb_data->numscbs]; - STAILQ_INSERT_HEAD(&ahc->scb_data->free_scbs, scb, links); - splx(opri); -} + sg_map = malloc(sizeof(*sg_map), M_DEVBUF, M_NOWAIT); -/* - * Get a free scb, either one already assigned to a hardware slot - * on the adapter or one that will require an SCB to be paged out before - * use. If there are none, see if we can allocate a new SCB. Otherwise - * either return an error or sleep. - */ -static struct scb * -ahc_get_scb(struct ahc_softc *ahc) -{ - struct scb *scbp; - int opri; + if (sg_map == NULL) + return; - opri = splcam(); - if ((scbp = STAILQ_FIRST(&ahc->scb_data->free_scbs))) { - STAILQ_REMOVE_HEAD(&ahc->scb_data->free_scbs, links); - } else if (ahc->scb_data->numscbs < ahc->scb_data->maxscbs) { - scbp = ahc_alloc_scb(ahc); - if (scbp == NULL) - printf("%s: Can't malloc SCB\n", ahc_name(ahc)); + /* Allocate S/G space for the next batch of SCBS */ + if (bus_dmamem_alloc(scb_data->sg_dmat, (void **)&sg_map->sg_vaddr, + BUS_DMA_NOWAIT, &sg_map->sg_dmamap) != 0) { + free(sg_map, M_DEVBUF); + return; } - splx(opri); + SLIST_INSERT_HEAD(&scb_data->sg_maps, sg_map, links); - return (scbp); -} + bus_dmamap_load(scb_data->sg_dmat, sg_map->sg_dmamap, sg_map->sg_vaddr, + PAGE_SIZE, ahcdmamapcb, &sg_map->sg_physaddr, + /*flags*/0); + segs = sg_map->sg_vaddr; + physaddr = sg_map->sg_physaddr; -static struct scb * -ahc_alloc_scb(struct ahc_softc *ahc) -{ - static struct ahc_dma_seg *next_sg_array = NULL; - static int sg_arrays_free = 0; - struct scb *newscb; - int error; + newcount = (PAGE_SIZE / (AHC_NSEG * sizeof(struct ahc_dma_seg))); + for (i = 0; scb_data->numscbs < AHC_SCB_MAX && i < newcount; i++) { + int error; - newscb = (struct scb *) malloc(sizeof(struct scb), M_DEVBUF, M_NOWAIT); - if (newscb != NULL) { - bzero(newscb, sizeof(struct scb)); - error = bus_dmamap_create(ahc->dmat, /*flags*/0, - &newscb->dmamap); + next_scb->sg_list = segs; + next_scb->sg_list_phys = physaddr; + next_scb->flags = SCB_FREE; + error = bus_dmamap_create(ahc->buffer_dmat, /*flags*/0, + &next_scb->dmamap); if (error != 0) - printf("%s: Unable to allocate SCB dmamap - error %d\n", - ahc_name(ahc), error); - - if (error == 0 && next_sg_array == NULL) { - size_t alloc_size = sizeof(struct ahc_dma_seg) - * AHC_NSEG; - sg_arrays_free = PAGE_SIZE / alloc_size; - alloc_size *= sg_arrays_free; - if (alloc_size == 0) - panic("%s: SG list doesn't fit in a page", - ahc_name(ahc)); - next_sg_array = (struct ahc_dma_seg *) - malloc(alloc_size, M_DEVBUF, M_NOWAIT); - } - if (error == 0 && next_sg_array != NULL) { - struct hardware_scb *hscb; - - newscb->ahc_dma = next_sg_array; - newscb->ahc_dmaphys = vtophys(next_sg_array); - sg_arrays_free--; - if (sg_arrays_free == 0) - next_sg_array = NULL; - else - next_sg_array = &next_sg_array[AHC_NSEG]; - hscb = &ahc->scb_data->hscbs[ahc->scb_data->numscbs]; - newscb->hscb = hscb; - hscb->control = 0; - hscb->status = 0; - hscb->tag = ahc->scb_data->numscbs; - hscb->residual_data_count[2] = 0; - hscb->residual_data_count[1] = 0; - hscb->residual_data_count[0] = 0; - hscb->residual_SG_count = 0; - hscb->cmdstore_busaddr = - ahc_hscb_busaddr(ahc, hscb->tag) - + offsetof(struct hardware_scb, cmdstore); - /* - * Place in the scbarray - * Never is removed. - */ - ahc->scb_data->scbarray[hscb->tag] = newscb; - ahc->scb_data->numscbs++; - } else { - free(newscb, M_DEVBUF); - newscb = NULL; - } + break; + next_scb->hscb = &scb_data->hscbs[scb_data->numscbs]; + next_scb->hscb->tag = ahc->scb_data->numscbs; + next_scb->hscb->cmdstore_busaddr = + ahc_hscb_busaddr(ahc, next_scb->hscb->tag) + + offsetof(struct hardware_scb, cmdstore); + SLIST_INSERT_HEAD(&ahc->scb_data->free_scbs, next_scb, links); + segs += AHC_NSEG; + physaddr += (AHC_NSEG * sizeof(struct ahc_dma_seg)); + next_scb++; + ahc->scb_data->numscbs++; } - return newscb; } static void @@ -5092,7 +5338,7 @@ ahc_timeout(void *arg) * Do a full bus reset. */ bus_reset: - ahc_set_ccb_status(scb->ccb, CAM_CMD_TIMEOUT); + ahcsetccbstatus(scb->ccb, CAM_CMD_TIMEOUT); found = ahc_reset_channel(ahc, channel, /*Initiate Reset*/TRUE); printf("%s: Issued Channel %c Bus Reset. " "%d SCBs aborted\n", ahc_name(ahc), channel, found); @@ -5133,7 +5379,7 @@ bus_reset: * and wait for it's timeout to expire before * taking additional action. */ - active_scb = ahc->scb_data->scbarray[active_scb_index]; + active_scb = &ahc->scb_data->scbarray[active_scb_index]; if (active_scb->hscb->tcl != scb->hscb->tcl && (scb->flags & SCB_OTHERTCL_TIMEOUT) == 0) { struct ccb_hdr *ccbh; @@ -5160,7 +5406,7 @@ bus_reset: * and properly record the error condition. */ ahc_freeze_devq(ahc, scb->ccb->ccb_h.path); - ahc_set_ccb_status(scb->ccb, CAM_CMD_TIMEOUT); + ahcsetccbstatus(scb->ccb, CAM_CMD_TIMEOUT); ahc_freeze_ccb(scb->ccb); ahc_done(ahc, scb); @@ -5283,7 +5529,7 @@ ahc_search_qinfifo(struct ahc_softc *ahc, int target, char channel, ahc->qinfifonext = qinpos; while (qinpos != qintail) { - scbp = ahc->scb_data->scbarray[ahc->qinfifo[qinpos]]; + scbp = &ahc->scb_data->scbarray[ahc->qinfifo[qinpos]]; if (ahc_match_scb(scbp, target, channel, lun, tag)) { /* * We found an scb that needs to be removed. @@ -5291,7 +5537,7 @@ ahc_search_qinfifo(struct ahc_softc *ahc, int target, char channel, switch (action) { case SEARCH_COMPLETE: if (ahc_ccb_status(scbp->ccb) == CAM_REQ_INPROG) - ahc_set_ccb_status(scbp->ccb, status); + ahcsetccbstatus(scbp->ccb, status); ahc_freeze_ccb(scbp->ccb); ahc_done(ahc, scbp); break; @@ -5441,7 +5687,7 @@ ahc_abort_scbs(struct ahc_softc *ahc, int target, char channel, "SCB index == %d, yet numscbs == %d.", scb_index, ahc->scb_data->numscbs); } - scbp = ahc->scb_data->scbarray[scb_index]; + scbp = &ahc->scb_data->scbarray[scb_index]; if (ahc_match_scb(scbp, target, channel, lun, tag)) { next = ahc_abort_wscb(ahc, next, prev); @@ -5468,7 +5714,7 @@ ahc_abort_scbs(struct ahc_softc *ahc, int target, char channel, ahc_outb(ahc, SCBPTR, i); scbid = ahc_inb(ahc, SCB_TAG); if (scbid < ahc->scb_data->numscbs) { - scbp = ahc->scb_data->scbarray[scbid]; + scbp = &ahc->scb_data->scbarray[scbid]; if (ahc_match_scb(scbp, target, channel, lun, tag)) { ahc_add_curscb_to_free_list(ahc); } @@ -5491,7 +5737,7 @@ ahc_abort_scbs(struct ahc_softc *ahc, int target, char channel, ccb_h = ccb_h->sim_links.le.le_next; if (ahc_match_scb(scbp, target, channel, lun, tag)) { if (ahc_ccb_status(scbp->ccb) == CAM_REQ_INPROG) - ahc_set_ccb_status(scbp->ccb, status); + ahcsetccbstatus(scbp->ccb, status); ahc_freeze_ccb(scbp->ccb); ahc_done(ahc, scbp); found++; @@ -5529,7 +5775,7 @@ ahc_search_disc_list(struct ahc_softc *ahc, int target, char channel, "SCB index == %d, yet numscbs == %d.", scb_index, ahc->scb_data->numscbs); } - scbp = ahc->scb_data->scbarray[scb_index]; + scbp = &ahc->scb_data->scbarray[scb_index]; if (ahc_match_scb(scbp, target, channel, lun, tag)) { next = ahc_rem_scb_from_disc_list(ahc, prev, next); @@ -5816,7 +6062,7 @@ ahc_calc_residual(struct scb *scb) sg = scb->sg_count - resid_sgs - 1/*first SG*/; while (resid_sgs > 0) { - resid += scb->ahc_dma[sg].len; + resid += scb->sg_list[sg].len; sg++; resid_sgs--; } @@ -5915,7 +6161,7 @@ ahc_update_pending_syncrates(struct ahc_softc *ahc) u_int our_id, remote_id; u_int control; - pending_scb = ahc->scb_data->scbarray[scb_tag]; + pending_scb = &ahc->scb_data->scbarray[scb_tag]; if (pending_scb->flags == SCB_FREE) continue; pending_hscb = pending_scb->hscb; diff --git a/sys/dev/aic7xxx/aic7xxx.h b/sys/dev/aic7xxx/aic7xxx.h index cf3037aaa07d..4cc4c8802bf1 100644 --- a/sys/dev/aic7xxx/aic7xxx.h +++ b/sys/dev/aic7xxx/aic7xxx.h @@ -3,7 +3,7 @@ * SCSI controllers. This is used to implement product specific * probe and attach routines. * - * Copyright (c) 1994, 1995, 1996, 1997, 1998 Justin T. Gibbs. + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999 Justin T. Gibbs. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -34,7 +34,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: aic7xxx.h,v 1.5 1999/01/14 06:14:15 gibbs Exp $ + * $Id: aic7xxx.h,v 1.5.2.1 1999/03/07 00:40:47 gibbs Exp $ */ #ifndef _AIC7XXX_H_ @@ -45,20 +45,29 @@ #include <pci/pcivar.h> /* for pcici_t */ +#ifndef MAX +#define MAX(a,b) (((a) > (b)) ? (a) : (b)) +#endif + +#ifndef MIN +#define MIN(a,b) (((a) < (b)) ? (a) : (b)) +#endif + +/* + * The maximum transfer per S/G segment. + */ #define AHC_MAXTRANSFER_SIZE 0x00ffffff /* limited by 24bit counter */ -#define AHC_NSEG 32 /* The number of dma segments supported. - * AHC_NSEG can be maxed out at 256 entries, - * but the kernel will never need to transfer - * such a large (1MB) request. To reduce the - * driver's memory consumption, we reduce the - * max to 32. 16 would work if all transfers - * are paged alined since the kernel will only - * generate at most a 64k transfer, but to - * handle non-page aligned transfers, you need - * 17, so we round to the next power of two - * to make allocating SG space easy and - * efficient. - */ + +/* + * The number of dma segments supported. The current implementation limits + * us to 255 S/G entries (this may change to be unlimited at some point). + * To reduce the driver's memory consumption, we further limit the number + * supported to be sufficient to handle the largest mapping supported by + * the kernel, MAXPHYS. Assuming the transfer is as fragmented as possible + * and unaligned, this turns out to be the number of paged sized transfers + * in MAXPHYS plus an extra element to handle any unaligned residual. + */ +#define AHC_NSEG (MIN(btoc(MAXPHYS) + 1, 255)) #define AHC_SCB_MAX 255 /* * Up to 255 SCBs on some types of aic7xxx @@ -75,9 +84,7 @@ * wrap point of an 8bit counter. */ -#if defined(__FreeBSD__) extern u_long ahc_unit; -#endif struct ahc_dma_seg { u_int32_t addr; @@ -112,16 +119,17 @@ typedef enum { AHC_SG_PRELOAD = 0x0080, /* Can perform auto-SG preload */ AHC_SPIOCAP = 0x0100, /* Has a Serial Port I/O Cap Register */ AHC_MULTI_TID = 0x0200, /* Has bitmask of TIDs for select-in */ + AHC_HS_MAILBOX = 0x0400, /* Has HS_MAILBOX register */ AHC_AIC7770_FE = AHC_FENONE, AHC_AIC7850_FE = AHC_FENONE|AHC_SPIOCAP, AHC_AIC7860_FE = AHC_ULTRA|AHC_SPIOCAP, AHC_AIC7870_FE = AHC_FENONE, AHC_AIC7880_FE = AHC_ULTRA, AHC_AIC7890_FE = AHC_MORE_SRAM|AHC_CMD_CHAN|AHC_ULTRA2|AHC_QUEUE_REGS - |AHC_SG_PRELOAD|AHC_MULTI_TID, + |AHC_SG_PRELOAD|AHC_MULTI_TID|AHC_HS_MAILBOX, AHC_AIC7895_FE = AHC_MORE_SRAM|AHC_CMD_CHAN|AHC_ULTRA, AHC_AIC7896_FE = AHC_MORE_SRAM|AHC_CMD_CHAN|AHC_ULTRA2|AHC_QUEUE_REGS - |AHC_SG_PRELOAD|AHC_MULTI_TID, + |AHC_SG_PRELOAD|AHC_MULTI_TID|AHC_HS_MAILBOX, } ahc_feature; typedef enum { @@ -138,7 +146,6 @@ typedef enum { * SRAM, we use the default target * settings. */ - AHC_INDIRECT_PAGING = 0x008, AHC_SHARED_SRAM = 0x010, AHC_LARGE_SEEPROM = 0x020,/* Uses C56_66 not C46 */ AHC_RESET_BUS_A = 0x040, @@ -228,28 +235,13 @@ struct hardware_scb { struct scb { struct hardware_scb *hscb; - STAILQ_ENTRY(scb) links; /* for chaining */ + SLIST_ENTRY(scb) links; /* for chaining */ union ccb *ccb; /* the ccb for this cmd */ - scb_flag flags; - bus_dmamap_t dmamap; - struct ahc_dma_seg *ahc_dma;/* Pointer to SG segments */ - u_int32_t ahc_dmaphys;/* Phsical address of SG list */ - u_int sg_count;/* How full ahc_dma_seg is */ -}; - -struct scb_data { - struct hardware_scb *hscbs; /* Array of hardware SCBs */ - struct scb *scbarray[AHC_SCB_MAX]; /* Array of kernel SCBs */ - STAILQ_HEAD(, scb) free_scbs; /* - * Pool of SCBs ready to be assigned - * commands to execute. - */ - u_int8_t numscbs; - u_int8_t maxhscbs; /* Number of SCBs on the card */ - u_int8_t maxscbs; /* - * Max SCBs we allocate total including - * any that will force us to page SCBs - */ + scb_flag flags; + bus_dmamap_t dmamap; + struct ahc_dma_seg *sg_list; + bus_addr_t sg_list_phys; + u_int sg_count;/* How full ahc_dma_seg is */ }; /* @@ -402,10 +394,45 @@ typedef enum { MSG_TYPE_TARGET_MSGIN = 0x04 } ahc_msg_type; +struct sg_map_node { + bus_dmamap_t sg_dmamap; + bus_addr_t sg_physaddr; + struct ahc_dma_seg* sg_vaddr; + SLIST_ENTRY(sg_map_node) links; +}; + +struct scb_data { + struct hardware_scb *hscbs; /* Array of hardware SCBs */ + struct scb *scbarray; /* Array of kernel SCBs */ + SLIST_HEAD(, scb) free_scbs; /* + * Pool of SCBs ready to be assigned + * commands to execute. + */ + struct scsi_sense_data *sense; /* Per SCB sense data */ + + /* + * "Bus" addresses of our data structures. + */ + bus_dma_tag_t hscb_dmat; /* dmat for our hardware SCB array */ + bus_dmamap_t hscb_dmamap; + bus_addr_t hscb_busaddr; + bus_dma_tag_t sense_dmat; + bus_dmamap_t sense_dmamap; + bus_addr_t sense_busaddr; + bus_dma_tag_t sg_dmat; /* dmat for our sg segments */ + SLIST_HEAD(, sg_map_node) sg_maps; + u_int8_t numscbs; + u_int8_t maxhscbs; /* Number of SCBs on the card */ + u_int8_t init_level; /* + * How far we've initialized + * this structure. + */ +}; + struct ahc_softc { bus_space_tag_t tag; bus_space_handle_t bsh; - bus_dma_tag_t dmat; + bus_dma_tag_t buffer_dmat; /* dmat for buffer I/O */ struct scb_data *scb_data; /* @@ -447,14 +474,14 @@ struct ahc_softc { /* Command Queues */ u_int8_t qoutfifonext; u_int8_t qinfifonext; - u_int8_t qoutfifo[256]; - u_int8_t qinfifo[256]; + u_int8_t *qoutfifo; + u_int8_t *qinfifo; /* * 256 byte array storing the SCBID of outstanding * untagged SCBs indexed by TCL. */ - u_int8_t untagged_scbs[256]; + u_int8_t *untagged_scbs; /* * Hooks into the XPT. @@ -501,13 +528,16 @@ struct ahc_softc { u_int msgout_index; /* Current index in msgout */ u_int msgin_index; /* Current index in msgin */ + bus_dma_tag_t parent_dmat; + bus_dma_tag_t shared_data_dmat; + bus_dmamap_t shared_data_dmamap; + bus_addr_t shared_data_busaddr; + /* Number of enabled target mode device on this card */ u_int enabled_luns; - /* - * "Bus" addresses of our data structures. - */ - u_int32_t hscb_busaddr; + /* Initialization level of this data structure */ + u_int init_level; }; struct full_ahc_softc { @@ -530,10 +560,11 @@ extern int ahc_debug; /* Initialized in i386/scsi/aic7xxx.c */ char *ahc_name(struct ahc_softc *ahc); -struct ahc_softc *ahc_alloc(int unit, u_int32_t io_base, - vm_offset_t maddr, ahc_chip chip, - ahc_feature features, ahc_flag flags, - struct scb_data *scb_data); +struct ahc_softc* + ahc_alloc(int unit, u_int32_t io_base, vm_offset_t maddr, + bus_dma_tag_t parent_dmat, ahc_chip chip, + ahc_feature features, ahc_flag flags, + struct scb_data *scb_data); int ahc_reset(struct ahc_softc *ahc); void ahc_free(struct ahc_softc *); int ahc_probe_scbs(struct ahc_softc *); diff --git a/sys/dev/aic7xxx/aic7xxx.reg b/sys/dev/aic7xxx/aic7xxx.reg index 1edd241456e1..1922b15a39d6 100644 --- a/sys/dev/aic7xxx/aic7xxx.reg +++ b/sys/dev/aic7xxx/aic7xxx.reg @@ -32,7 +32,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: aic7xxx.reg,v 1.12.2.1 1999/03/07 00:40:47 gibbs Exp $ + * $Id: aic7xxx.reg,v 1.12.2.2 1999/03/08 22:44:36 gibbs Exp $ */ /* @@ -669,6 +669,16 @@ register DSPCISTATUS { mask DFTHRSH_100 0xc0 } +/* aic7890/91/96/97 only */ +register HS_MAILBOX { + address 0x086 + mask HOST_MAILBOX 0xF0 + mask SEQ_MAILBOX 0x0F +} + +const HOST_MAILBOX_SHIFT 4 +const SEQ_MAILBOX_SHIFT 0 + /* * Host Control (p. 3-47) R/W * Overall host control of the device. @@ -727,6 +737,7 @@ register INTSTAT { mask NO_IDENT 0x20|SEQINT /* no IDENTIFY after reconnect*/ mask NO_MATCH 0x30|SEQINT /* no cmd match for reconnect */ mask ABORT_REQUESTED 0x50|SEQINT /* Reconect of aborted SCB */ + mask UPDATE_TMSG_REQ 0x60|SEQINT /* Update TMSG_REQ values */ mask BAD_STATUS 0x70|SEQINT /* Bad status from target */ mask RESIDUAL 0x80|SEQINT /* Residual byte count != 0 */ mask TRACE_POINT 0x90|SEQINT diff --git a/sys/dev/aic7xxx/aic7xxx.seq b/sys/dev/aic7xxx/aic7xxx.seq index e0753ea6050a..7dad1d293bb2 100644 --- a/sys/dev/aic7xxx/aic7xxx.seq +++ b/sys/dev/aic7xxx/aic7xxx.seq @@ -32,7 +32,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: aic7xxx.seq,v 1.84.2.2 1999/03/07 00:40:47 gibbs Exp $ + * $Id: aic7xxx.seq,v 1.84.2.3 1999/03/23 07:41:27 gibbs Exp $ */ #include <dev/aic7xxx/aic7xxx.reg> @@ -1025,6 +1025,18 @@ p_mesgout: mov FUNCTION1, SCB_TCL; mov A, FUNCTION1; mov SINDEX, TARGET_MSG_REQUEST[0]; + if ((ahc->features & AHC_HS_MAILBOX) != 0) { + /* + * Work around a pausing bug in at least the aic7890. + * If the host needs to update the TARGET_MSG_REQUEST + * bit field, it will set the HS_MAILBOX to 1. In + * response, we pause with a specific interrupt code + * asking for the mask to be updated before we continue. + * Ugh. + */ + test HS_MAILBOX, 0xF0 jz . + 2; + mvi INTSTAT, UPDATE_TMSG_REQ; + } if ((ahc->features & AHC_TWIN) != 0) { /* Second Channel uses high byte bits */ test SCB_TCL, SELBUSB jz . + 2; diff --git a/sys/dev/aic7xxx/aicasm_symbol.c b/sys/dev/aic7xxx/aicasm_symbol.c index f808e8900d31..0704baa0942e 100644 --- a/sys/dev/aic7xxx/aicasm_symbol.c +++ b/sys/dev/aic7xxx/aicasm_symbol.c @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: aicasm_symbol.c,v 1.4 1997/09/27 19:37:30 gibbs Exp $ + * $Id: aicasm_symbol.c,v 1.5 1998/09/15 07:24:17 gibbs Exp $ */ @@ -128,10 +128,10 @@ symtable_close() DBT data; while (symtable->seq(symtable, &key, &data, R_FIRST) == 0) { - symbol_t *cursym; + symbol_t *stored_ptr; - cursym = *(symbol_t **)data.data; - symbol_delete(cursym); + memcpy(&stored_ptr, data.data, sizeof(stored_ptr)); + symbol_delete(stored_ptr); } symtable->close(symtable); } @@ -145,9 +145,10 @@ symbol_t * symtable_get(name) char *name; { - DBT key; - DBT data; - int retval; + symbol_t *stored_ptr; + DBT key; + DBT data; + int retval; key.data = (void *)name; key.size = strlen(name); @@ -176,7 +177,8 @@ symtable_get(name) /* NOTREACHED */ } } - return (*(symbol_t **)data.data); + memcpy(&stored_ptr, data.data, sizeof(stored_ptr)); + return (stored_ptr); } symbol_node_t * @@ -327,7 +329,7 @@ symtable_dump(ofile) while (symtable->seq(symtable, &key, &data, flag) == 0) { symbol_t *cursym; - cursym = *(symbol_t **)data.data; + memcpy(&cursym, data.data, sizeof(cursym)); switch(cursym->type) { case REGISTER: case SCBLOC: diff --git a/sys/dev/pccard/if_xe.c b/sys/dev/pccard/if_xe.c deleted file mode 100644 index 1836f89332d5..000000000000 --- a/sys/dev/pccard/if_xe.c +++ /dev/null @@ -1,2404 +0,0 @@ -/*- - * Copyright (c) 1998, 1999 Scott Mitchell - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Author_Id: if_xe.c,v 1.19 1999/04/15 22:15:53 scott Exp $ - * $Id: if_xe.c,v 1.19 1999/04/15 22:15:53 scott Exp $ - */ - -/* - * Portions of this software were derived from Werner Koch's xirc2ps driver - * for Linux under the terms of the following license (from v1.30 of the - * xirc2ps driver): - * - * Copyright (c) 1997 by Werner Koch (dd9jn) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, and the entire permission notice in its entirety, - * including the disclaimer of warranties. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * FreeBSD device driver for Xircom CreditCard PCMCIA Ethernet adapters. The - * following cards are currently known to work with the driver: - * Xircom CreditCard 10/100 (CE3) - * Xircom CreditCard Ethernet 10/100 + Modem 56 (CEM56) - * Xircom RealPort Ethernet 10/100 - * Xircom RealPort Ethernet 10/100 + Modem 56 (REM56, REM56G) - * Intel EtherExpress Pro/100 PC Card Mobile Adapter 16 (Pro/100 M16A) - * Compaq Netelligent 10/100 PC Card (CPQ-10/100) - * - * Some other cards *should* work, but support for them is either broken or in - * an unknown state at the moment. I'm always interested in hearing from - * people who own any of these cards: - * Xircom CreditCard 10Base-T (PS-CE2-10) - * Xircom CreditCard Ethernet + ModemII (CEM2) - * Xircom CEM28 and CEM33 Ethernet/Modem cards (may be variants of CEM2?) - * - * Thanks to all who assisted with the development and testing of the driver, - * especially: Werner Koch, Duke Kamstra, Duncan Barclay, Jason George, Dru - * Nelson, Mike Kephart, Bill Rainey and Douglas Rand. Apologies if I've left - * out anyone who deserves a mention here. - * - * Special thanks to Ade Lovett for both hosting the mailing list and doing - * the CEM56/REM56 support code; and the FreeBSD UK Users' Group for hosting - * the web pages. - * - * Contact points: - * - * Driver web page: http://ukug.uk.freebsd.org/~scott/xe_drv/ - * - * Mailing list: http://www.lovett.com/lists/freebsd-xircom/ - * or send "subscribe freebsd-xircom" to <majordomo@lovett.com> - * - * Author email: <scott@uk.freebsd.org> - */ - - -#define XE_DEBUG 1 - -#include "xe.h" -#include "card.h" -#include "apm.h" -#include "bpfilter.h" - -#if NXE > 0 - -#if NCARD > 0 - -#include <sys/param.h> -#include <sys/cdefs.h> -#include <sys/conf.h> -#include <sys/errno.h> -#include <sys/kernel.h> -#include <sys/malloc.h> -#include <sys/mbuf.h> -#include <sys/select.h> -#include <sys/socket.h> -#include <sys/sockio.h> -#include <sys/systm.h> -#include <sys/uio.h> - -#include <net/ethernet.h> -#include <net/if.h> -#include <net/if_arp.h> -#include <net/if_dl.h> -#include <net/if_media.h> -#include <net/if_mib.h> -#if NBPFILTER > 0 -#include <net/bpf.h> -#endif /* NBPFILTER > 0 */ - -#include <i386/isa/isa.h> -#include <i386/isa/isa_device.h> -#include <dev/pccard/if_xereg.h> -#include <machine/clock.h> -#if NAPM > 0 -#include <machine/apm_bios.h> -#endif /* NAPM > 0 */ - -#include <pccard/cardinfo.h> -#include <pccard/cis.h> -#include <pccard/driver.h> -#include <pccard/slot.h> - - - -/* - * One of these structures per allocated device - */ -struct xe_softc { - struct arpcom arpcom; - struct ifmedia ifmedia; - struct callout_handle chand; - struct ifmib_iso_8802_3 mibdata; - struct isa_device *dev; - struct pccard_devinfo *crd; - struct ifnet *ifp; - struct ifmedia *ifm; - char *card_type; /* Card model name */ - char *vendor; /* Card manufacturer */ - int unit; /* Unit number, from dev->id_unit */ - int srev; /* Silicon revision */ - int tx_queued; /* Packets currently waiting to transmit */ - int tx_ptr; /* Last value of PTR reg on card */ - int tx_collisions; /* Collisions since last successful send */ - int tx_timeouts; /* Count of transmit timeouts */ - int autoneg_status; /* Autonegotiation progress state */ - int media; /* Private media word */ - u_char modem; /* 1 = Multifunction card with modem */ - u_char ce3; /* 1 = CE3 class (100Mbit) adapter */ - u_char cem56; /* 1 = CEM56 class (CE3 + 56Kbps modem) adapter */ - u_char phy_ok; /* 1 = MII-compliant PHY found and initialised */ - u_char gone; /* 1 = Card bailed out */ -#if NAPM > 0 - struct apmhook suspend_hook; - struct apmhook resume_hook; -#endif /* NAPM > 0 */ -}; - -static struct xe_softc *sca[MAXSLOT]; -static int iob[MAXSLOT]; /* XXX - very gross */ - - -/* - * MII command structure - */ -struct xe_mii_frame { - u_int8_t mii_stdelim; - u_int8_t mii_opcode; - u_int8_t mii_phyaddr; - u_int8_t mii_regaddr; - u_int8_t mii_turnaround; - u_int16_t mii_data; -}; - -/* - * For accessing card registers - */ -#define XE_INB(r) inb(scp->dev->id_iobase+(r)) -#define XE_INW(r) inw(scp->dev->id_iobase+(r)) -#define XE_OUTB(r, b) outb(scp->dev->id_iobase+(r), (b)) -#define XE_OUTW(r, w) outw(scp->dev->id_iobase+(r), (w)) -#define XE_SELECT_PAGE(p) XE_OUTB(XE_PSR, (p)) - -/* - * Horrid stuff for accessing CIS tuples - */ -#define CARD_MAJOR 50 -#define CISTPL_BUFSIZE 512 -#define CISTPL_TYPE(tpl) tpl[0] -#define CISTPL_LEN(tpl) tpl[2] -#define CISTPL_DATA(tpl,pos) tpl[4 + ((pos)<<1)] - -/* - * Media autonegotiation progress constants - */ -#define XE_AUTONEG_NONE 0 /* No autonegotiation in progress */ -#define XE_AUTONEG_WAITING 1 /* Waiting for transmitter to go idle */ -#define XE_AUTONEG_STARTED 2 /* Waiting for autonegotiation to complete */ -#define XE_AUTONEG_100TX 3 /* Trying to force 100baseTX link */ -#define XE_AUTONEG_FAIL 4 /* Autonegotiation failed */ - - -/* - * Prototypes start here - */ -static int xe_probe (struct isa_device *dev); -static int xe_card_init (struct pccard_devinfo *devi); -static int xe_attach (struct isa_device *dev); -static void xe_init (void *xscp); -static void xe_start (struct ifnet *ifp); -static int xe_ioctl (struct ifnet *ifp, u_long command, caddr_t data); -static int xe_card_intr (struct pccard_devinfo *devi); -static void xe_watchdog (struct ifnet *ifp); -static int xe_media_change (struct ifnet *ifp); -static void xe_media_status (struct ifnet *ifp, struct ifmediareq *mrp); -static timeout_t xe_setmedia; -static void xe_hard_reset (struct xe_softc *scp); -static void xe_soft_reset (struct xe_softc *scp); -static void xe_stop (struct xe_softc *scp); -static void xe_enable_intr (struct xe_softc *scp); -static void xe_disable_intr (struct xe_softc *scp); -static void xe_setmulti (struct xe_softc *scp); -static void xe_setaddrs (struct xe_softc *scp); -static int xe_pio_write_packet (struct xe_softc *scp, struct mbuf *mbp); -static void xe_card_unload (struct pccard_devinfo *devi); - -/* - * MII functions - */ -static void xe_mii_sync (struct xe_softc *scp); -static int xe_mii_init (struct xe_softc *scp); -static void xe_mii_send (struct xe_softc *scp, u_int32_t bits, int cnt); -static int xe_mii_readreg (struct xe_softc *scp, struct xe_mii_frame *frame); -static int xe_mii_writereg (struct xe_softc *scp, struct xe_mii_frame *frame); -static u_int16_t xe_phy_readreg (struct xe_softc *scp, u_int16_t reg); -static void xe_phy_writereg (struct xe_softc *scp, u_int16_t reg, u_int16_t data); - -/* - * Debug functions - */ -#ifdef XE_DEBUG -#define XE_REG_DUMP(scp) xe_reg_dump((scp)) -#define XE_MII_DUMP(scp) xe_mii_dump((scp)) -static void xe_reg_dump (struct xe_softc *scp); -static void xe_mii_dump (struct xe_softc *scp); -#else -#define XE_REG_DUMP(scp) -#define XE_MII_DUMP(scp) -#endif - -#if NAPM > 0 -/* - * APM hook functions - */ -static int xe_suspend (void *xunit); -static int xe_resume (void *xunit); -#endif /* NAPM > 0 */ - - -/* - * PCMCIA driver hooks - */ -#ifdef PCCARD_MODULE -PCCARD_MODULE(xe, xe_card_init, xe_card_unload, xe_card_intr, 0, net_imask); -#else -static struct pccard_device xe_info = { /* For pre 3.1-STABLE code */ - "xe", - xe_card_init, - xe_card_unload, - xe_card_intr, - 0, - &net_imask -}; -DATA_SET(pccarddrv_set, xe_info); -#endif /* PCCARD_MODULE */ - - -/* - * ISA driver hooks. I'd like to do without these but the kernel config stuff - * seems to require them. - */ -struct isa_driver xedriver = { - xe_probe, - xe_attach, - "xe" -}; - - - -/* - * ISA probe routine. - * All of the supported devices are PCMCIA cards. I have no idea if it's even - * possible to successfully probe/attach these at boot time (pccardd normally - * does a lot of setup work) so I don't even bother trying. - */ -static int -xe_probe (struct isa_device *dev) { -#ifdef XE_DEBUG - printf("xe%d: probe, iobase = %#x\n", dev->id_unit, dev->id_iobase); -#endif - bzero(sca, MAXSLOT * sizeof(sca[0])); - iob[dev->id_unit] = dev->id_iobase; - return 0; -} - - -/* - * Two routines to read from/write to the attribute memory - * the write portion is used only for fixing up the RealPort cards, - * the reader portion was needed for debugging info, and duplicated some - * code in xe_card_init(), so it appears here instead with suitable - * modifications to xe_card_init() - * -aDe Lovett - */ -static int -xe_memwrite(struct pccard_devinfo *devi, off_t offset, u_char byte) -{ - struct iovec iov; - struct uio uios; - - iov.iov_base = &byte; - iov.iov_len = sizeof(byte); - - uios.uio_iov = &iov; - uios.uio_iovcnt = 1; - uios.uio_offset = offset; - uios.uio_resid = sizeof(byte); - uios.uio_segflg = UIO_SYSSPACE; - uios.uio_rw = UIO_WRITE; - uios.uio_procp = 0; - - return cdevsw[CARD_MAJOR]->d_write(makedev(CARD_MAJOR, devi->slt->slotnum), &uios, 0); -} - - -static int -xe_memread(struct pccard_devinfo *devi, off_t offset, u_char *buf, int size) -{ - struct iovec iov; - struct uio uios; - - iov.iov_base = buf; - iov.iov_len = size; - - uios.uio_iov = &iov; - uios.uio_iovcnt = 1; - uios.uio_offset = offset; - uios.uio_resid = size; - uios.uio_segflg = UIO_SYSSPACE; - uios.uio_rw = UIO_READ; - uios.uio_procp = 0; - - return cdevsw[CARD_MAJOR]->d_read(makedev(CARD_MAJOR, devi->slt->slotnum), &uios, 0); -} - - -/* - * Hacking for RealPort cards - */ -static int -xe_cem56fix(struct xe_softc *scp) -{ - struct pccard_devinfo *devi; - struct slot *slt; - struct slot_ctrl *ctrl; - int ioport, fail; - - /* initialise a few variables */ - devi = scp->crd; - slt = devi->slt; - ctrl = slt->ctrl; - - /* allocate a new I/O slot for the ethernet */ - /* XXX: ctrl->mapio() always appears to return 0 (success), so - * this may cause problems if another device is listening - * on 0x300 already - */ - slt->io[1].window = 1; - slt->io[1].flags = IODF_WS|IODF_16BIT|IODF_ZEROWS|IODF_ACTIVE; - slt->io[1].size = 0x10; - if (iob[scp->unit] == -1) { - for (ioport = 0x300; ioport < 0x400; ioport += 0x10) { - slt->io[1].start = ioport; - if ((fail = ctrl->mapio( slt, 1 )) == 0) - break; - } - } - else { - ioport = iob[scp->unit]; - slt->io[1].start = ioport; - fail = ctrl->mapio(slt, 1); - } - - /* did we find one? */ - if (fail) { - printf( "xe%d: xe_cem56fix: no free address space\n", scp->unit ); - return -1; - } - - - /* munge the id_iobase entry for use by the rest of the driver */ -#ifdef XE_DEBUG - printf( "xe%d: using 0x%x for RealPort ethernet\n", scp->unit, ioport ); -#endif - scp->dev->id_iobase = ioport; - scp->dev->id_alive = 0x10; - - /* magic to set up the ethernet */ - xe_memwrite( devi, 0x800, 0x47 ); - xe_memwrite( devi, 0x80a, ioport & 0xff ); - xe_memwrite( devi, 0x80c, (ioport >> 8) & 0xff ); - - xe_memwrite( devi, 0x820, 0x01 ); - xe_memwrite( devi, 0x822, 0x0c ); - xe_memwrite( devi, 0x824, 0x00 ); - xe_memwrite( devi, 0x826, 0x00 ); - xe_memwrite( devi, 0x828, 0x00 ); - - /* success! */ - return 0; -} - - -/* - * PCMCIA probe routine. - * Probe and identify the device. Called by the slot manager when the card is - * inserted or the machine wakes up from suspend mode. Assmes that the slot - * structure has been initialised already. - */ -static int -xe_card_init(struct pccard_devinfo *devi) -{ - struct xe_softc *scp; - struct isa_device *dev; - u_char buf[CISTPL_BUFSIZE]; - u_char ver_str[CISTPL_BUFSIZE>>1]; - off_t offs; - int unit, success, rc, i; - - unit = devi->isahd.id_unit; - scp = sca[unit]; - dev = &devi->isahd; - success = 0; - -#ifdef XE_DEBUG - printf("xe: Probing for unit %d\n", unit); -#endif - - /* Check that unit number is OK */ - if (unit > MAXSLOT) { - printf("xe: bad unit (%d)\n", unit); - return (ENODEV); - } - - /* Don't attach an active device */ - if (scp && !scp->gone) { - printf("xe: unit already attached (%d)\n", unit); - return (EBUSY); - } - - /* Allocate per-instance storage */ - if (!scp) { - if ((scp = malloc(sizeof(*scp), M_DEVBUF, M_NOWAIT)) == NULL) { - printf("xe%d: failed to allocage driver storage\n", unit); - return (ENOMEM); - } - bzero(scp, sizeof(*scp)); - } - - /* Re-attach an existing device */ - if (scp->gone) { - scp->gone = 0; - return 0; - } - - /* Grep through CIS looking for relevant tuples */ - offs = 0; - do { - u_int16_t vendor; - u_int8_t rev, media, prod; - - /* - * Read tuples one at a time into buf. Sucks, but it only happens once. - * XXX - If the stuff we need isn't in attribute memory, or (worse yet) - * XXX - attribute memory isn't mapped, we're FUBAR. Maybe need to do an - * XXX - ioctl on the card device and follow links? - * XXX - Not really the driver's problem, PCCARD should handle all this! - */ - if ((rc = xe_memread( devi, offs, buf, CISTPL_BUFSIZE )) == 0) { - - switch (CISTPL_TYPE(buf)) { - - case 0x15: /* Grab version string (needed to ID some weird CE2's) */ -#ifdef XE_DEBUG - printf("xe%d: Got version string (0x15)\n", unit); -#endif - for (i = 0; i < CISTPL_LEN(buf); ver_str[i] = CISTPL_DATA(buf, i++)); - ver_str[i] = '\0'; - ver_str[(CISTPL_BUFSIZE>>1) - 1] = CISTPL_LEN(buf); - success++; - break; - - case 0x20: /* Figure out what type of card we have */ -#ifdef XE_DEBUG - printf("xe%d: Got card ID (0x20)\n", unit); -#endif - vendor = CISTPL_DATA(buf, 0) + (CISTPL_DATA(buf, 1) << 8); - rev = CISTPL_DATA(buf, 2); - media = CISTPL_DATA(buf, 3); - prod = CISTPL_DATA(buf, 4); - - switch (vendor) { /* Get vendor ID */ - case 0x0105: - scp->vendor = "Xircom"; break; - case 0x0138: - case 0x0183: - scp->vendor = "Compaq"; break; - case 0x0089: - scp->vendor = "Intel"; break; - default: - scp->vendor = "Unknown"; - } - - if (!((prod & 0x40) && (media & 0x01))) { -#ifdef XE_DEBUG - printf("xe%d: Not a PCMCIA Ethernet card!\n", unit); -#endif - rc = ENODEV; /* Not a PCMCIA Ethernet device */ - } - else { - if (media & 0x10) { /* Ethernet/modem cards */ -#ifdef XE_DEBUG - printf("xe%d: Card is Ethernet/modem combo\n", unit); -#endif - scp->modem = 1; - switch (prod & 0x0f) { - case 1: - scp->card_type = "CEM"; break; - case 2: - scp->card_type = "CEM2"; break; - case 3: - scp->card_type = "CEM3"; break; - case 4: - scp->card_type = "CEM33"; break; - case 5: - scp->ce3 = 1; - scp->card_type = "CEM56M"; break; - case 6: - case 7: /* Some kind of RealPort card */ - scp->ce3 = 1; - scp->cem56 = 1; - scp->card_type = "CEM56"; break; - default: - rc = ENODEV; - } - } - else { /* Ethernet-only cards */ -#ifdef XE_DEBUG - printf("xe%d: Card is Ethernet only\n", unit); -#endif - switch (prod & 0x0f) { - case 1: - scp->card_type = "CE"; break; - case 2: - scp->card_type = "CE2"; break; - case 3: - scp->ce3 = 1; - scp->card_type = "CE3"; break; - default: - rc = ENODEV; - } - } - } - success++; - break; - - case 0x22: /* Get MAC address */ -#ifdef XE_DEBUG - printf("xe%d: Got MAC address (0x22)\n", unit); -#endif - if ((CISTPL_LEN(buf) == 8) && - (CISTPL_DATA(buf, 0) == 0x04) && - (CISTPL_DATA(buf, 1) == ETHER_ADDR_LEN)) { - for (i = 0; i < ETHER_ADDR_LEN; scp->arpcom.ac_enaddr[i] = CISTPL_DATA(buf, i+2), i++); - } - success++; - break; - default: - } - } - - /* Skip to next tuple */ - offs += ((CISTPL_LEN(buf) + 2) << 1); - - } while ((CISTPL_TYPE(buf) != 0xff) && (CISTPL_LEN(buf) != 0xff) && (rc == 0)); - - - /* Die now if something went wrong above */ - if ((rc != 0) || (success < 3)) { - free(scp, M_DEVBUF); - return rc; - } - - /* Check for certain strange CE2's that look like CE's */ - if (strcmp(scp->card_type, "CE") == 0) { - u_char *str = ver_str; -#ifdef XE_DEBUG - printf("xe%d: Checking for weird CE2 string\n", unit); -#endif - str += strlen(str) + 1; /* Skip forward to 3rd version string */ - str += strlen(str) + 1; - str += strlen(str) + 1; - for (i = 0; i < strlen(str) - 2; i++) { - if (bcmp(&str[i], "CE2", 3) ==0) { /* Look for "CE2" string */ - scp->card_type = "CE2"; - } - } - } - - /* Reject unsupported cards */ - if (strcmp(scp->card_type, "CE") == 0 || strcmp(scp->card_type, "CEM") == 0) { - printf("xe%d: Sorry, your %s card is not supported :(\n", unit, scp->card_type); - free(scp, M_DEVBUF); - return ENODEV; - } - - /* Fill in some private data */ - sca[unit] = scp; - scp->dev = &devi->isahd; - scp->crd = devi; - scp->ifp = &scp->arpcom.ac_if; - scp->ifm = &scp->ifmedia; - scp->unit = unit; - scp->autoneg_status = 0; - - /* Hack RealPorts into submission */ - if (scp->cem56 && xe_cem56fix(scp) < 0) { - printf( "xe%d: Unable to fix your RealPort\n", unit ); - sca[unit] = 0; - free(scp, M_DEVBUF); - return ENODEV; - } - - /* Attempt to attach the device */ - if (!xe_attach(scp->dev)) { - sca[unit] = 0; - free(scp, M_DEVBUF); - return ENXIO; - } - -#if NAPM > 0 - /* Establish APM hooks once device attached */ - scp->suspend_hook.ah_name = "xe_suspend"; - scp->suspend_hook.ah_fun = xe_suspend; - scp->suspend_hook.ah_arg = (void *)unit; - scp->suspend_hook.ah_order = APM_MIN_ORDER; - apm_hook_establish(APM_HOOK_SUSPEND, &scp->suspend_hook); - scp->resume_hook.ah_name = "xe_resume"; - scp->resume_hook.ah_fun = xe_resume; - scp->resume_hook.ah_arg = (void *)unit; - scp->resume_hook.ah_order = APM_MIN_ORDER; - apm_hook_establish(APM_HOOK_RESUME, &scp->resume_hook); -#endif /* NAPM > 0 */ - - /* Success */ - return 0; -} - - -/* - * Attach a device (called when xe_card_init succeeds). Assume that the probe - * routine has set up the softc structure correctly and that we can trust the - * unit number. - */ -static int -xe_attach (struct isa_device *dev) { - struct xe_softc *scp = sca[dev->id_unit]; - int i; - -#ifdef XE_DEBUG - printf("xe%d: attach\n", scp->unit); -#endif - - /* Initialise the ifnet structure */ - if (!scp->ifp->if_name) { - scp->ifp->if_softc = scp; - scp->ifp->if_name = "xe"; - scp->ifp->if_unit = scp->unit; - scp->ifp->if_timer = 0; - scp->ifp->if_flags = (IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST); - scp->ifp->if_linkmib = &scp->mibdata; - scp->ifp->if_linkmiblen = sizeof scp->mibdata; - scp->ifp->if_output = ether_output; - scp->ifp->if_start = xe_start; - scp->ifp->if_ioctl = xe_ioctl; - scp->ifp->if_watchdog = xe_watchdog; - scp->ifp->if_init = xe_init; - scp->ifp->if_snd.ifq_maxlen = IFQ_MAXLEN; - } - - /* Initialise the ifmedia structure */ - ifmedia_init(scp->ifm, 0, xe_media_change, xe_media_status); - callout_handle_init(&scp->chand); - - /* - * Fill in supported media types. Some cards _do_ support full duplex - * operation, but this driver doesn't, yet. Therefore we leave those modes - * out of the list. We support some form of autoselection in all cases. - */ - if (scp->ce3) { - ifmedia_add(scp->ifm, IFM_ETHER|IFM_100_TX, 0, NULL); - ifmedia_add(scp->ifm, IFM_ETHER|IFM_10_T, 0, NULL); - } - else { - ifmedia_add(scp->ifm, IFM_ETHER|IFM_10_T, 0, NULL); - ifmedia_add(scp->ifm, IFM_ETHER|IFM_10_2, 0, NULL); - } - ifmedia_add(scp->ifm, IFM_ETHER|IFM_AUTO, 0, NULL); - - /* Default is to autoselect best supported media type */ - ifmedia_set(scp->ifm, IFM_ETHER|IFM_AUTO); - - /* Print some useful information */ - printf("\nxe%d: %s %s%s%s\n", - scp->unit, - scp->vendor, - scp->card_type, - scp->ce3 ? ", 100Mbps capable" : "", - scp->cem56 ? ", with modem" : ""); - printf("xe%d: Ethernet address %02x", scp->unit, scp->arpcom.ac_enaddr[0]); - for (i = 1; i < ETHER_ADDR_LEN; i++) { - printf(":%02x", scp->arpcom.ac_enaddr[i]); - } - printf("\n"); - - /* Attach the interface */ - if_attach(scp->ifp); - ether_ifattach(scp->ifp); - -#if NBPFILTER > 0 - /* If BPF is in the kernel, call the attach for it */ -#ifdef XE_DEBUG - printf("xe%d: BPF listener attached\n", scp->unit); -#endif - bpfattach(scp->ifp, DLT_EN10MB, sizeof(struct ether_header)); -#endif - - /* Done */ - return 1; -} - - -/* - * Initialize device. Completes the reset procedure on the card and starts - * output. If there's an autonegotiation in progress we DON'T do anything; - * the media selection code will call us again when it's done. - */ -static void -xe_init(void *xscp) { - struct xe_softc *scp = xscp; - int s; - -#ifdef XE_DEBUG - printf("xe%d: init\n", scp->unit); -#endif - - if (scp->gone) return; - - if (TAILQ_EMPTY(&scp->ifp->if_addrhead)) return; - - /* Reset transmitter flags */ - scp->tx_queued = 0; - scp->tx_ptr = 0; - scp->tx_collisions = 0; - scp->ifp->if_timer = 0; - - s = splimp(); - - XE_SELECT_PAGE(0x42); - XE_OUTB(XE_SWC0, 0x20); /* Disable source insertion (WTF is that?) */ - - /* - * Set the 'local memory dividing line' -- splits the 32K card memory into - * 8K for transmit buffers and 24K for receive. This is done automatically - * on newer revision cards. - */ - if (scp->srev != 1) { - XE_SELECT_PAGE(2); - XE_OUTW(XE_RBS, 0x2000); - } - - /* Set up multicast addresses */ - xe_setmulti(scp); - - /* Fix the data offset register -- reset leaves it off-by-one */ - XE_SELECT_PAGE(0); - XE_OUTW(XE_DOR, 0x2000); - - /* - * Set MAC interrupt masks and clear status regs. The bit names are direct - * from the Linux code; I have no idea what most of them do. - */ - XE_SELECT_PAGE(0x40); /* Bit 7..0 */ - XE_OUTB(XE_RXM0, 0xff); /* ROK, RAB, rsv, RO, CRC, AE, PTL, MP */ - XE_OUTB(XE_TXM0, 0xff); /* TOK, TAB, SQE, LL, TU, JAB, EXC, CRS */ - XE_OUTB(XE_TXM1, 0xb0); /* rsv, rsv, PTD, EXT, rsv, rsv, rsv, rsv */ - XE_OUTB(XE_RXS0, 0x00); /* ROK, RAB, REN, RO, CRC, AE, PTL, MP */ - XE_OUTB(XE_TXS0, 0x00); /* TOK, TAB, SQE, LL, TU, JAB, EXC, CRS */ - XE_OUTB(XE_TXS1, 0x00); /* TEN, rsv, PTD, EXT, retry_counter:4 */ - - /* - * Check for an in-progress autonegotiation. If one is active, just set - * IFF_RUNNING and return. The media selection code will call us again when - * it's done. - */ - if (scp->autoneg_status) { - scp->ifp->if_flags |= IFF_RUNNING; - } - else { - /* Enable receiver, put MAC online */ - XE_SELECT_PAGE(0x40); - XE_OUTB(XE_OCR, XE_OCR_RX_ENABLE|XE_OCR_ONLINE); - - /* Set up IMR, enable interrupts */ - xe_enable_intr(scp); - - /* Attempt to start output */ - scp->ifp->if_flags |= IFF_RUNNING; - scp->ifp->if_flags &= ~IFF_OACTIVE; - xe_start(scp->ifp); - } - - (void)splx(s); -} - - -/* - * Start output on interface. We make two assumptions here: - * 1) that the current priority is set to splimp _before_ this code - * is called *and* is returned to the appropriate priority after - * return - * 2) that the IFF_OACTIVE flag is checked before this code is called - * (i.e. that the output part of the interface is idle) - */ -static void -xe_start(struct ifnet *ifp) { - struct xe_softc *scp = ifp->if_softc; - struct mbuf *mbp; - - if (scp->gone) return; - - /* - * Loop while there are packets to be sent, and space to send them. - */ - while (1) { - IF_DEQUEUE(&ifp->if_snd, mbp); /* Suck a packet off the send queue */ - - if (mbp == NULL) { - /* - * We are using the !OACTIVE flag to indicate to the outside world that - * we can accept an additional packet rather than that the transmitter - * is _actually_ active. Indeed, the transmitter may be active, but if - * we haven't filled all the buffers with data then we still want to - * accept more. - */ - ifp->if_flags &= ~IFF_OACTIVE; - return; - } - - if (xe_pio_write_packet(scp, mbp) != 0) { - IF_PREPEND(&ifp->if_snd, mbp); /* Push the packet back onto the queue */ - ifp->if_flags |= IFF_OACTIVE; - return; - } - -#if NBPFILTER > 0 - /* Tap off here if there is a bpf listener */ - if (ifp->if_bpf) { -#if XE_DEBUG > 1 - printf("xe%d: sending output packet to BPF\n", scp->unit); -#endif - bpf_mtap(ifp, mbp); - } -#endif /* NBPFILTER > 0 */ - - ifp->if_timer = 5; /* In case we don't hear from the card again */ - scp->tx_queued++; - - m_freem(mbp); - } -} - - -/* - * Process an ioctl request. Adapted from the ed driver. - */ -static int -xe_ioctl (register struct ifnet *ifp, u_long command, caddr_t data) { - struct xe_softc *scp; - int s, error; - - scp = ifp->if_softc; - error = 0; - - if (scp->gone) { - return ENXIO; - } - - s = splimp(); - - switch (command) { - - case SIOCSIFADDR: - case SIOCGIFADDR: - case SIOCSIFMTU: - error = ether_ioctl(ifp, command, data); - break; - - case SIOCSIFFLAGS: - /* - * If the interface is marked up and stopped, then start it. If it is - * marked down and running, then stop it. - */ - if (ifp->if_flags & IFF_UP) { - if (!(ifp->if_flags & IFF_RUNNING)) { - xe_hard_reset(scp); - xe_setmedia(scp); - xe_init(scp); - } - } - else { - if (ifp->if_flags & IFF_RUNNING) - xe_stop(scp); - } - - case SIOCADDMULTI: - case SIOCDELMULTI: - /* - * Multicast list has (maybe) changed; set the hardware filter - * accordingly. This also serves to deal with promiscuous mode if we have - * a BPF listener active. - */ - xe_setmulti(scp); - error = 0; - break; - - case SIOCSIFMEDIA: - case SIOCGIFMEDIA: - /* - * Someone wants to get/set media options. - */ - error = ifmedia_ioctl(ifp, (struct ifreq *)data, &scp->ifmedia, command); - break; - - default: - error = EINVAL; - } - - (void)splx(s); - - return error; -} - - -/* - * Card interrupt handler: should return true if the interrupt was for us, in - * case we are sharing our IRQ line with other devices (this will probably be - * the case for multifunction cards). - * - * This function is probably more complicated than it needs to be, as it - * attempts to deal with the case where multiple packets get sent between - * interrupts. This is especially annoying when working out the collision - * stats. Not sure whether this case ever really happens or not (maybe on a - * slow/heavily loaded machine?) so it's probably best to leave this like it - * is. - * - * Note that the crappy PIO used to get packets on and off the card means that - * you will spend a lot of time in this routine -- I can get my P150 to spend - * 90% of its time servicing interrupts if I really hammer the network. Could - * fix this, but then you'd start dropping/losing packets. The moral of this - * story? If you want good network performance _and_ some cycles left over to - * get your work done, don't buy a Xircom card. Or convince them to tell me - * how to do memory-mapped I/O :) - */ -static int -xe_card_intr(struct pccard_devinfo *devi) { - struct xe_softc *scp; - struct ifnet *ifp; - int unit, result; - u_int16_t rx_bytes, rxs, txs; - u_int8_t psr, isr, esr, rsr; - - unit = devi->isahd.id_unit; - scp = sca[unit]; - ifp = &scp->arpcom.ac_if; - rx_bytes = 0; /* Bytes received on this interrupt */ - result = 0; /* Set true if the interrupt is for us */ - - if (scp->gone) - return 0; - - if (scp->ce3) { - XE_OUTB(XE_CR, 0); /* Disable interrupts */ - } - - psr = XE_INB(XE_PSR); /* Stash the current register page */ - - /* - * Read ISR to see what caused this interrupt. Note that this clears the - * ISR on CE2 type cards. - */ - if ((isr = XE_INB(XE_ISR)) && isr != 0xff) { - - result = 1; /* This device did generate an int */ - esr = XE_INB(XE_ESR); /* Read the other status registers */ - XE_SELECT_PAGE(0x40); - rxs = XE_INB(XE_RXS0); - XE_OUTB(XE_RXS0, ~rxs & 0xff); - txs = XE_INB(XE_TXS0); - txs |= XE_INB(XE_TXS1) << 8; - XE_OUTB(XE_TXS0, 0); - XE_OUTB(XE_TXS1, 0); - XE_SELECT_PAGE(0); - -#if XE_DEBUG > 3 - printf("xe%d: ISR=%#2.2x ESR=%#2.2x RXS=%#2.2x TXS=%#4.4x\n", unit, isr, esr, rxs, txs); -#endif - - /* - * Handle transmit interrupts - */ - if (isr & XE_ISR_TX_PACKET) { - u_int8_t new_ptr, sent; - - if ((new_ptr = XE_INB(XE_PTR)) < scp->tx_ptr) /* Update packet count */ - sent = (0xff - scp->tx_ptr) + new_ptr; /* PTR rolled over */ - else - sent = new_ptr - scp->tx_ptr; - - if (sent > 0) { /* Packets sent since last interrupt */ - scp->tx_ptr = new_ptr; - scp->tx_queued -= sent; - ifp->if_opackets += sent; - ifp->if_collisions += scp->tx_collisions; - - /* - * Collision stats are a PITA. If multiples frames have been sent, we - * distribute any outstanding collision count equally amongst them. - * However, if we're missing interrupts we're quite likely to also - * miss some collisions; thus the total count will be off anyway. - * Likewise, if we miss a frame dropped due to excessive collisions - * any outstanding collisions count will be held against the next - * frame to be successfully sent. Hopefully it averages out in the - * end! - * XXX - This will screw up if tx_collisions/sent > 14. FIX IT! - */ - switch (scp->tx_collisions) { - case 0: - break; - case 1: - scp->mibdata.dot3StatsSingleCollisionFrames++; - scp->mibdata.dot3StatsCollFrequencies[0]++; - break; - default: - if (sent == 1) { - scp->mibdata.dot3StatsMultipleCollisionFrames++; - scp->mibdata.dot3StatsCollFrequencies[scp->tx_collisions-1]++; - } - else { /* Distribute across multiple frames */ - scp->mibdata.dot3StatsMultipleCollisionFrames += sent; - scp->mibdata. - dot3StatsCollFrequencies[scp->tx_collisions/sent] += sent - scp->tx_collisions%sent; - scp->mibdata. - dot3StatsCollFrequencies[scp->tx_collisions/sent + 1] += scp->tx_collisions%sent; - } - } - scp->tx_collisions = 0; - } - ifp->if_timer = 0; - ifp->if_flags &= ~IFF_OACTIVE; - } - if (txs & 0x0002) { /* Excessive collisions (packet dropped) */ - ifp->if_collisions += 16; - ifp->if_oerrors++; - scp->tx_collisions = 0; - scp->mibdata.dot3StatsExcessiveCollisions++; - scp->mibdata.dot3StatsMultipleCollisionFrames++; - scp->mibdata.dot3StatsCollFrequencies[15]++; - XE_OUTB(XE_CR, XE_CR_RESTART_TX); - } - if (txs & 0x0040) /* Transmit aborted -- probably collisions */ - scp->tx_collisions++; - - - /* - * Handle receive interrupts - */ - while ((esr = XE_INB(XE_ESR)) & XE_ESR_FULL_PKT_RX) { - - if ((rsr = XE_INB(XE_RSR)) & XE_RSR_RX_OK) { - struct ether_header *ehp; - struct mbuf *mbp; - u_int16_t len; - - len = XE_INW(XE_RBC); - - if (len == 0) - continue; - -#if 0 - /* - * Limit the amount of time we spend in this loop, dropping packets if - * necessary. The Linux code does this with considerably more - * finesse, adjusting the threshold dynamically. - */ - if ((rx_bytes += len) > 22000) { - ifp->if_iqdrops++; - scp->mibData.dot3StatsMissedFrames++; - XE_OUTW(XE_DOR, 0x8000); - continue; - } -#endif - - if (len & 0x01) - len++; - - MGETHDR(mbp, M_DONTWAIT, MT_DATA); /* Allocate a header mbuf */ - if (mbp != NULL) { - mbp->m_pkthdr.rcvif = ifp; - mbp->m_pkthdr.len = mbp->m_len = len; - - /* - * If the mbuf header isn't big enough for the packet, attach an - * mbuf cluster to hold it. The +2 is to allow for the nasty little - * alignment hack below. - */ - if (len + 2 > MHLEN) { - MCLGET(mbp, M_DONTWAIT); - if ((mbp->m_flags & M_EXT) == 0) { - m_freem(mbp); - mbp = NULL; - } - } - } - - if (mbp != NULL) { - /* - * The Ethernet header is 14 bytes long; thus the actual packet data - * won't be 32-bit aligned when it's dumped into the mbuf. We - * offset everything by 2 bytes to fix this. Apparently the - * alignment is important for NFS, damn its eyes. - */ - mbp->m_data += 2; - ehp = mtod(mbp, struct ether_header *); - - /* - * Now get the packet, including the Ethernet header and trailer (?) - * We use programmed I/O, because we don't know how to do shared - * memory with these cards. So yes, it's real slow, and heavy on - * the interrupts (CPU on my P150 maxed out at ~950KBps incoming). - */ - if (scp->srev == 0) { /* Workaround a bug in old cards */ - u_short rhs; - - XE_SELECT_PAGE(5); - rhs = XE_INW(XE_RHS); - XE_SELECT_PAGE(0); - - rhs += 3; /* Skip control info */ - - if (rhs >= 0x8000) - rhs = 0; - - if (rhs + len > 0x8000) { - int i; - - /* - * XXX - This i-- seems very wrong, but it's what the Linux guys - * XXX - do. Need someone with an old CE2 to test this for me. - * XXX - 99/3/28: Changed the first i-- to an i++, maybe that'll - * XXX - fix it? It seems as though the previous version would - * XXX - have caused an infinite loop (what, another one?). - */ - for (i = 0; i < len; i++, rhs++) { - ((char *)ehp)[i] = XE_INB(XE_EDP); - if (rhs == 0x8000) { - rhs = 0; - i--; - } - } - } - else - insw(scp->dev->id_iobase+XE_EDP, ehp, len >> 1); - } - else - insw(scp->dev->id_iobase+XE_EDP, ehp, len >> 1); - -#if NBPFILTER > 0 - /* - * Check if there's a BPF listener on this interface. If so, hand - * off the raw packet to bpf. - */ - if (ifp->if_bpf) { -#if XE_DEBUG > 1 - printf("xe%d: passing input packet to BPF\n", scp->unit); -#endif - bpf_mtap(ifp, mbp); - - /* - * Note that the interface cannot be in promiscuous mode if there - * are no BPF listeners. And if we are in promiscuous mode, we - * have to check if this packet is really ours. - */ - if ((ifp->if_flags & IFF_PROMISC) && - bcmp(ehp->ether_dhost, scp->arpcom.ac_enaddr, sizeof(ehp->ether_dhost)) != 0 && - (rsr & XE_RSR_PHYS_PKT)) { - m_freem(mbp); - mbp = NULL; - } - } -#endif /* NBPFILTER > 0 */ - - if (mbp != NULL) { - mbp->m_pkthdr.len = mbp->m_len = len - ETHER_HDR_LEN; - mbp->m_data += ETHER_HDR_LEN; /* Strip off Ethernet header */ - ether_input(ifp, ehp, mbp); /* Send the packet on its way */ - ifp->if_ipackets++; /* Success! */ - } - XE_OUTW(XE_DOR, 0x8000); /* skip_rx_packet command */ - } - } - else if (rsr & XE_RSR_LONG_PKT) { /* Packet length >1518 bytes */ - scp->mibdata.dot3StatsFrameTooLongs++; - ifp->if_ierrors++; - } - else if (rsr & XE_RSR_CRC_ERR) { /* Bad checksum on packet */ - scp->mibdata.dot3StatsFCSErrors++; - ifp->if_ierrors++; - } - else if (rsr & XE_RSR_ALIGN_ERR) { /* Packet alignment error */ - scp->mibdata.dot3StatsAlignmentErrors++; - ifp->if_ierrors++; - } - } - if (rxs & 0x10) { /* Receiver overrun */ - scp->mibdata.dot3StatsInternalMacReceiveErrors++; - ifp->if_ierrors++; - XE_OUTB(XE_CR, XE_CR_CLEAR_OVERRUN); - } - } - - XE_SELECT_PAGE(psr); /* Restore saved page */ - XE_OUTB(XE_CR, XE_CR_ENABLE_INTR); /* Re-enable interrupts */ - - /* XXX - Could force an int here, instead of dropping packets? */ - /* XXX - XE_OUTB(XE_CR, XE_CR_ENABLE_INTR|XE_CE_FORCE_INTR); */ - - return result; -} - - -/* - * Device timeout/watchdog routine. Called automatically if we queue a packet - * for transmission but don't get an interrupt within a specified timeout - * (usually 5 seconds). When this happens we assume the worst and reset the - * card. - */ -static void -xe_watchdog(struct ifnet *ifp) { - struct xe_softc *scp = ifp->if_softc; - - if (scp->gone) return; - - printf("xe%d: watchdog timeout; resetting card\n", scp->unit); - scp->tx_timeouts++; - ifp->if_oerrors += scp->tx_queued; - xe_stop(scp); - xe_hard_reset(scp); - xe_setmedia(scp); - xe_init(scp); -} - - -/* - * Change media selection. - */ -static int -xe_media_change(struct ifnet *ifp) { - struct xe_softc *scp = ifp->if_softc; - -#ifdef XE_DEBUG - printf("xe%d: media_change\n", ifp->if_unit); -#endif - - if (IFM_TYPE(scp->ifm->ifm_media) != IFM_ETHER) - return(EINVAL); - - /* - * Some card/media combos aren't always possible -- filter those out here. - */ - if ((IFM_SUBTYPE(scp->ifm->ifm_media) == IFM_AUTO || - IFM_SUBTYPE(scp->ifm->ifm_media) == IFM_100_TX) && !scp->phy_ok) - return (EINVAL); - - xe_setmedia(scp); - - return 0; -} - - -/* - * Return current media selection. - */ -static void -xe_media_status(struct ifnet *ifp, struct ifmediareq *mrp) { - -#ifdef XE_DEBUG - printf("xe%d: media_status\n", ifp->if_unit); -#endif - - mrp->ifm_active = ((struct xe_softc *)ifp->if_softc)->media; - - return; -} - - -/* - * Select active media. - */ -static void xe_setmedia(void *xscp) { - struct xe_softc *scp = xscp; - u_int16_t bmcr, bmsr, anar, lpar; - -#ifdef XE_DEBUG - printf("xe%d: setmedia\n", scp->unit); -#endif - - /* Cancel any pending timeout */ - untimeout(xe_setmedia, scp, scp->chand); - xe_disable_intr(scp); - - /* Select media */ - scp->media = IFM_ETHER; - switch (IFM_SUBTYPE(scp->ifm->ifm_media)) { - - case IFM_AUTO: /* Autoselect media */ - scp->media = IFM_ETHER|IFM_AUTO; - - /* - * Autoselection is really awful. It goes something like this: - * - * Wait until the transmitter goes idle (2sec timeout). - * Reset card - * IF a 100Mbit PHY exists - * Start NWAY autonegotiation (3.5sec timeout) - * IF that succeeds - * Select 100baseTX or 10baseT, whichever was detected - * ELSE - * Reset card - * IF a 100Mbit PHY exists - * Try to force a 100baseTX link (3sec timeout) - * IF that succeeds - * Select 100baseTX - * ELSE - * Disable the PHY - * ENDIF - * ENDIF - * ENDIF - * ENDIF - * IF nothing selected so far - * IF a 100Mbit PHY exists - * Select 10baseT - * ELSE - * Select 10baseT or 10base2, whichever is connected - * ENDIF - * ENDIF - */ - switch (scp->autoneg_status) { - - case XE_AUTONEG_NONE: -#ifdef XE_DEBUG - printf("xe%d: Waiting for idle transmitter\n", scp->unit); -#endif - scp->arpcom.ac_if.if_flags |= IFF_OACTIVE; - scp->autoneg_status = XE_AUTONEG_WAITING; - scp->chand = timeout(xe_setmedia, scp, hz * 2); - return; - - case XE_AUTONEG_WAITING: - xe_soft_reset(scp); - if (scp->phy_ok) { -#ifdef XE_DEBUG - printf("xe%d: Starting autonegotiation\n", scp->unit); -#endif - bmcr = xe_phy_readreg(scp, PHY_BMCR); - bmcr &= ~(PHY_BMCR_AUTONEGENBL); - xe_phy_writereg(scp, PHY_BMCR, bmcr); - anar = xe_phy_readreg(scp, PHY_ANAR); - anar &= ~(PHY_ANAR_100BT4|PHY_ANAR_100BTXFULL|PHY_ANAR_10BTFULL); - anar |= PHY_ANAR_100BTXHALF|PHY_ANAR_10BTHALF; - xe_phy_writereg(scp, PHY_ANAR, anar); - bmcr |= PHY_BMCR_AUTONEGENBL|PHY_BMCR_AUTONEGRSTR; - xe_phy_writereg(scp, PHY_BMCR, bmcr); - scp->autoneg_status = XE_AUTONEG_STARTED; - scp->chand = timeout(xe_setmedia, scp, hz * 7/2); - return; - } - else { - scp->autoneg_status = XE_AUTONEG_FAIL; - } - break; - - case XE_AUTONEG_STARTED: - bmsr = xe_phy_readreg(scp, PHY_BMSR); - lpar = xe_phy_readreg(scp, PHY_LPAR); - if (bmsr & (PHY_BMSR_AUTONEGCOMP|PHY_BMSR_LINKSTAT)) { -#ifdef XE_DEBUG - printf("xe%d: Autonegotiation complete!\n", scp->unit); -#endif - /* - * XXX - Shouldn't have to do this, but (on my hub at least) the - * XXX - transmitter won't work after a successful autoneg. So we see - * XXX - what the negotiation result was and force that mode. I'm - * XXX - sure there is an easy fix for this. - */ - if (lpar & PHY_LPAR_100BTXHALF) { - xe_phy_writereg(scp, PHY_BMCR, PHY_BMCR_SPEEDSEL); - XE_MII_DUMP(scp); - XE_SELECT_PAGE(2); - XE_OUTB(XE_MSR, XE_INB(XE_MSR) | 0x08); - scp->media = IFM_ETHER|IFM_100_TX; - scp->autoneg_status = XE_AUTONEG_NONE; - } - else { - /* - * XXX - Bit of a hack going on in here. - * XXX - This is derived from Ken Hughes patch to the Linux driver - * XXX - to make it work with 10Mbit _autonegotiated_ links on CE3B - * XXX - cards. What's a CE3B and how's it differ from a plain CE3? - * XXX - these are the things we need to find out. - */ - xe_phy_writereg(scp, PHY_BMCR, 0x0000); - XE_SELECT_PAGE(2); - /* BEGIN HACK */ - XE_OUTB(XE_MSR, XE_INB(XE_MSR) | 0x08); - XE_SELECT_PAGE(0x42); - XE_OUTB(XE_SWC1, 0x80); - scp->media = IFM_ETHER|IFM_10_T; - scp->autoneg_status = XE_AUTONEG_NONE; - /* END HACK */ - /*XE_OUTB(XE_MSR, XE_INB(XE_MSR) & ~0x08);*/ /* Disable PHY? */ - /*scp->autoneg_status = XE_AUTONEG_FAIL;*/ - } - } - else { -#ifdef XE_DEBUG - printf("xe%d: Autonegotiation failed; trying 100baseTX\n", scp->unit); -#endif - XE_MII_DUMP(scp); - xe_soft_reset(scp); - if (scp->phy_ok) { - xe_phy_writereg(scp, PHY_BMCR, PHY_BMCR_SPEEDSEL); - scp->autoneg_status = XE_AUTONEG_100TX; - scp->chand = timeout(xe_setmedia, scp, hz * 3); - return; - } - else { - scp->autoneg_status = XE_AUTONEG_FAIL; - } - } - break; - - case XE_AUTONEG_100TX: - (void)xe_phy_readreg(scp, PHY_BMSR); - bmsr = xe_phy_readreg(scp, PHY_BMSR); - if (bmsr & PHY_BMSR_LINKSTAT) { -#ifdef XE_DEBUG - printf("xe%d: Got 100baseTX link!\n", scp->unit); -#endif - XE_MII_DUMP(scp); - XE_SELECT_PAGE(2); - XE_OUTB(XE_MSR, XE_INB(XE_MSR) | 0x08); - scp->media = IFM_ETHER|IFM_100_TX; - scp->autoneg_status = XE_AUTONEG_NONE; - } - else { -#ifdef XE_DEBUG - printf("xe%d: Autonegotiation failed; disabling PHY\n", scp->unit); -#endif - XE_MII_DUMP(scp); - xe_phy_writereg(scp, PHY_BMCR, 0x0000); - XE_SELECT_PAGE(2); - XE_OUTB(XE_MSR, XE_INB(XE_MSR) & ~0x08); /* Disable PHY? */ - scp->autoneg_status = XE_AUTONEG_FAIL; - } - break; - } - - /* - * If we got down here _and_ autoneg_status is XE_AUTONEG_FAIL, then - * either autonegotiation failed, or never got started to begin with. In - * either case, select a suitable 10Mbit media and hope it works. We - * don't need to reset the card again, since it will have been done - * already by the big switch above. - */ - if (scp->autoneg_status == XE_AUTONEG_FAIL) { -#ifdef XE_DEBUG - printf("xe%d: Selecting 10baseX\n", scp->unit); -#endif - if (scp->ce3) { - XE_SELECT_PAGE(0x42); - XE_OUTB(XE_SWC1, 0x80); - scp->media = IFM_ETHER|IFM_10_T; - scp->autoneg_status = XE_AUTONEG_NONE; - } - else { - XE_SELECT_PAGE(4); - XE_OUTB(XE_GPR0, 4); - DELAY(50000); - XE_SELECT_PAGE(0x42); - XE_OUTB(XE_SWC1, (XE_INB(XE_ESR) & XE_ESR_MEDIA_SELECT) ? 0x80 : 0xc0); - scp->media = IFM_ETHER|((XE_INB(XE_ESR) & XE_ESR_MEDIA_SELECT) ? IFM_10_T : IFM_10_2); - scp->autoneg_status = XE_AUTONEG_NONE; - } - } - break; - - - /* - * If a specific media has been requested, we just reset the card and - * select it (one small exception -- if 100baseTX is requested by there is - * no PHY, we fall back to 10baseT operation). - */ - case IFM_100_TX: /* Force 100baseTX */ - xe_soft_reset(scp); - if (scp->phy_ok) { -#ifdef XE_DEBUG - printf("xe%d: Selecting 100baseTX\n", scp->unit); -#endif - XE_SELECT_PAGE(0x42); - XE_OUTB(XE_SWC1, 0); - xe_phy_writereg(scp, PHY_BMCR, PHY_BMCR_SPEEDSEL); - XE_SELECT_PAGE(2); - XE_OUTB(XE_MSR, XE_INB(XE_MSR) | 0x08); - scp->media |= IFM_100_TX; - break; - } - /* FALLTHROUGH */ - - case IFM_10_T: /* Force 10baseT */ - xe_soft_reset(scp); -#ifdef XE_DEBUG - printf("xe%d: Selecting 10baseT\n", scp->unit); -#endif - if (scp->phy_ok) { - xe_phy_writereg(scp, PHY_BMCR, 0x0000); - XE_SELECT_PAGE(2); - XE_OUTB(XE_MSR, XE_INB(XE_MSR) & ~0x08); /* Disable PHY */ - } - XE_SELECT_PAGE(0x42); - XE_OUTB(XE_SWC1, 0x80); - scp->media |= IFM_10_T; - break; - - case IFM_10_2: - xe_soft_reset(scp); -#ifdef XE_DEBUG - printf("xe%d: Selecting 10base2\n", scp->unit); -#endif - XE_SELECT_PAGE(0x42); - XE_OUTB(XE_SWC1, 0xc0); - scp->media |= IFM_10_2; - break; - } - - - /* - * Finally, the LEDs are set to match whatever media was chosen and the - * transmitter is unblocked. - */ -#ifdef XE_DEBUG - printf("xe%d: Setting LEDs\n", scp->unit); -#endif - XE_SELECT_PAGE(2); - switch (IFM_SUBTYPE(scp->media)) { - case IFM_100_TX: - case IFM_10_T: - XE_OUTB(XE_LED, 0x3b); - if (scp->cem56) - XE_OUTB(0x0b, 0x04); /* 100Mbit LED */ - break; - - case IFM_10_2: - XE_OUTB(XE_LED, 0x3a); - break; - } - - /* Restart output? */ - scp->ifp->if_flags &= ~IFF_OACTIVE; - xe_init(scp); -} - - -/* - * Hard reset (power cycle) the card. - */ -static void -xe_hard_reset(struct xe_softc *scp) { - int s; - -#ifdef XE_DEBUG - printf("xe%d: hard_reset\n", scp->unit); -#endif - - if (scp->gone) return; - - s = splimp(); - - /* - * Power cycle the card. - */ - XE_SELECT_PAGE(4); - XE_OUTB(XE_GPR1, 0); /* Power off */ - DELAY(40000); - - if (scp->ce3) - XE_OUTB(XE_GPR1, 1); /* And back on again */ - else - XE_OUTB(XE_GPR1, 5); /* Also set AIC bit, whatever that is */ - DELAY(40000); - XE_SELECT_PAGE(0); - - (void)splx(s); -} - - -/* - * Soft reset the card. Also makes sure that the ML6692 and 10Mbit controller - * are powered up, sets the silicon revision number in softc, disables - * interrupts and checks for the prescence of a 100Mbit PHY. This should - * leave us in a position where we can access the PHY and do media - * selection. The function imposes a 0.5s delay while the hardware powers up. - */ -static void -xe_soft_reset(struct xe_softc *scp) { - int s; - -#ifdef XE_DEBUG - printf("xe%d: soft_reset\n", scp->unit); -#endif - - if (scp->gone) return; - - s = splimp(); - - /* - * Reset the card, (again). - */ - XE_SELECT_PAGE(0); - XE_OUTB(XE_CR, XE_CR_SOFT_RESET); - DELAY(40000); - XE_OUTB(XE_CR, 0); - DELAY(40000); - - if (scp->ce3) { - /* - * set GP1 and GP2 as outputs (bits 2 & 3) - * set GP1 low to power on the ML6692 (bit 0) - * set GP2 high to power on the 10Mhz chip (bit 1) - */ - XE_SELECT_PAGE(4); - XE_OUTB(XE_GPR0, 0x0e); - } - - /* - * Wait for everything to wake up. - */ - DELAY(500000); - - /* - * Get silicon revision number. - */ - XE_SELECT_PAGE(4); - if (scp->ce3) - scp->srev = (XE_INB(XE_BOV) & 0x70) >> 4; - else - scp->srev = (XE_INB(XE_BOV) & 0x30) >> 4; -#ifdef XE_DEBUG - printf("xe%d: silicon revision = %d\n", scp->unit, scp->srev); -#endif - - /* - * Shut off interrupts. - */ - xe_disable_intr(scp); - - /* - * Check for PHY. - */ - if (scp->ce3) { - scp->phy_ok = xe_mii_init(scp); - } - - XE_SELECT_PAGE(0); - - (void)splx(s); -} - - -/* - * Take interface offline. This is done by powering down the device, which I - * assume means just shutting down the transceiver and Ethernet logic. This - * requires a _hard_ reset to recover from, as we need to power up again. - */ -static void -xe_stop(struct xe_softc *scp) { - int s; - -#ifdef XE_DEBUG - printf("xe%d: stop\n", scp->unit); -#endif - - if (scp->gone) return; - - s = splimp(); - - /* - * Shut off interrupts. - */ - xe_disable_intr(scp); - - /* - * Power down. - */ - XE_SELECT_PAGE(4); - XE_OUTB(XE_GPR1, 0); - XE_SELECT_PAGE(0); - - /* - * ~IFF_RUNNING == interface down. - */ - scp->ifp->if_flags &= ~IFF_RUNNING; - scp->ifp->if_flags &= ~IFF_OACTIVE; - scp->ifp->if_timer = 0; - - (void)splx(s); -} - - -/* - * Enable Ethernet interrupts from the card. - */ -static void -xe_enable_intr(struct xe_softc *scp) { -#ifdef XE_DEBUG - printf("xe%d: enable_intr\n", scp->unit); -#endif - - XE_SELECT_PAGE(1); - XE_OUTB(XE_IMR0, 0xff); /* Unmask everything */ - XE_OUTB(XE_IMR1, 0x01); /* Unmask TX underrun detection */ - DELAY(1); - - XE_SELECT_PAGE(0); - XE_OUTB(XE_CR, XE_CR_ENABLE_INTR); /* Enable interrupts */ - if (scp->modem && !scp->cem56) { /* This bit is just magic */ - if (!(XE_INB(0x10) & 0x01)) { - XE_OUTB(0x10, 0x11); /* Unmask master int enable bit */ - } - } -} - - -/* - * Disable all Ethernet interrupts from the card. - */ -static void -xe_disable_intr(struct xe_softc *scp) { -#ifdef XE_DEBUG - printf("xe%d: disable_intr\n", scp->unit); -#endif - - XE_SELECT_PAGE(0); - XE_OUTB(XE_CR, 0); /* Disable interrupts */ - if (scp->modem && !scp->cem56) { /* More magic (does this work?) */ - XE_OUTB(0x10, 0x10); /* Mask the master int enable bit */ - } - - XE_SELECT_PAGE(1); - XE_OUTB(XE_IMR0, 0); /* Forbid all interrupts */ - XE_OUTB(XE_IMR1, 0); - XE_SELECT_PAGE(0); -} - - -/* - * Set up multicast filter and promiscuous mode - */ -static void -xe_setmulti(struct xe_softc *scp) { - struct ifnet *ifp; - struct ifmultiaddr *maddr; - int count; - - ifp = &scp->arpcom.ac_if; - maddr = ifp->if_multiaddrs.lh_first; - - /* Get length of multicast list */ - for (count = 0; maddr != NULL; maddr = maddr->ifma_link.le_next, count++); - - if ((ifp->if_flags & IFF_PROMISC) || (ifp->if_flags & IFF_ALLMULTI) || (count > 9)) { - /* - * Go into promiscuous mode if either of the PROMISC or ALLMULTI flags are - * set, or if we have been asked to deal with more than 9 multicast - * addresses. To do this: set MPE and PME in SWC1 - */ - XE_SELECT_PAGE(0x42); - XE_OUTB(XE_SWC1, 0x06); - } - else if ((ifp->if_flags & IFF_MULTICAST) && (count > 0)) { - /* - * Program the filters for up to 9 addresses - */ - XE_SELECT_PAGE(0x42); - XE_OUTB(XE_SWC1, 0x01); - XE_SELECT_PAGE(0x40); - XE_OUTB(XE_OCR, XE_OCR_OFFLINE); - /*xe_reg_dump(scp);*/ - xe_setaddrs(scp); - /*xe_reg_dump(scp);*/ - XE_SELECT_PAGE(0x40); - XE_OUTB(XE_OCR, XE_OCR_RX_ENABLE|XE_OCR_ONLINE); - } - else { - /* - * No multicast operation (default) - */ - XE_SELECT_PAGE(0x42); - XE_OUTB(XE_SWC1, 0); - } - XE_SELECT_PAGE(0); -} - - -/* - * Set up all on-chip addresses (for multicast). AFAICS, there are 10 - * of these things; the first is our MAC address, the other 9 are mcast - * addresses, padded with the MAC address if there aren't enough. - * XXX - This doesn't work right, but I'm not sure why yet. We seem to be - * XXX - doing much the same as the Linux code, which is weird enough that - * XXX - it's probably right (despite my earlier comments to the contrary). - * XXX - I wonder if this thing has a multicast hash filter like most other - * XXX - Ethernet hardware seems to? - */ -static void -xe_setaddrs(struct xe_softc *scp) { - struct ifmultiaddr *maddr; - u_int8_t *addr; - u_int8_t page, slot, byte, i; - - maddr = scp->arpcom.ac_if.if_multiaddrs.lh_first; - - XE_SELECT_PAGE(page = 0x50); - - for (slot = 0, byte = 8; slot < 10; slot++) { - - if (slot == 0) - addr = (u_int8_t *)(&scp->arpcom.ac_enaddr); - else { - while (maddr != NULL && maddr->ifma_addr->sa_family != AF_LINK) - maddr = maddr->ifma_link.le_next; - if (maddr != NULL) - addr = LLADDR((struct sockaddr_dl *)maddr->ifma_addr); - else - addr = (u_int8_t *)(&scp->arpcom.ac_enaddr); - } - - for (i = 0; i < 6; i++, byte++) { -#if XE_DEBUG > 1 - if (i) - printf(":%x", addr[i]); - else - printf("xe%d: individual addresses %d: %x", scp->unit, slot, addr[0]); -#endif - - if (byte > 15) { - page++; - byte = 8; - XE_SELECT_PAGE(page); - } - - if (scp->ce3) - XE_OUTB(byte, addr[5 - i]); - else - XE_OUTB(byte, addr[i]); - } -#if XE_DEBUG > 1 - printf("\n"); -#endif - } - - XE_SELECT_PAGE(0); -} - - -/* - * Write an outgoing packet to the card using programmed I/O. - */ -static int -xe_pio_write_packet(struct xe_softc *scp, struct mbuf *mbp) { - struct mbuf *mbp2; - u_int16_t len, pad, free, ok; - u_int8_t *data; - u_int8_t savebyte[2], wantbyte; - - /* Get total packet length */ - for (len = 0, mbp2 = mbp; mbp2 != NULL; len += mbp2->m_len, mbp2 = mbp2->m_next); - - /* Packets < minimum length may need to be padded out */ - pad = 0; - if (len < ETHER_MIN_LEN - ETHER_CRC_LEN) { - pad = (ETHER_MIN_LEN - ETHER_CRC_LEN - len + 1) >> 1; - len = ETHER_MIN_LEN - ETHER_CRC_LEN; - } - - /* Check transmit buffer space */ - XE_SELECT_PAGE(0); - XE_OUTW(XE_TRS, len+2); - free = XE_INW(XE_TSO); - ok = free & 0x8000; - free &= 0x7fff; - if (free <= len + 2) - return 1; - - /* Send packet length to card */ - XE_OUTW(XE_EDP, len); - - /* - * Write packet to card using PIO (code stolen from the ed driver) - */ - wantbyte = 0; - while (mbp != NULL) { - len = mbp->m_len; - if (len > 0) { - data = mtod(mbp, caddr_t); - if (wantbyte) { /* Finish the last word */ - savebyte[1] = *data; - XE_OUTW(XE_EDP, *(u_short *)savebyte); - data++; - len--; - wantbyte = 0; - } - if (len > 1) { /* Output contiguous words */ - outsw(scp->dev->id_iobase+XE_EDP, data, len >> 1); - data += len & ~1; - len &= 1; - } - if (len == 1) { /* Save last byte, if necessary */ - savebyte[0] = *data; - wantbyte = 1; - } - } - mbp = mbp->m_next; - } - if (wantbyte) /* Last byte for odd-length packets */ - XE_OUTW(XE_EDP, *(u_short *)savebyte); - - /* - * For CE3 cards, just tell 'em to send -- apparently the card will pad out - * short packets with random cruft. Otherwise, write nonsense words to fill - * out the packet. I guess it is then sent automatically (?) - */ - if (scp->ce3) - XE_OUTB(XE_CR, XE_CR_TX_PACKET|XE_CR_ENABLE_INTR); - else - while (pad > 0) { - XE_OUTW(XE_EDP, 0xdead); - pad--; - } - - return 0; -} - - -/* - * The device entry is being removed, probably because someone ejected the - * card. The interface should have been brought down manually before calling - * this function; if not you may well lose packets. In any case, I shut down - * the card and the interface, and hope for the best. The 'gone' flag is set, - * so hopefully no-one else will try to access the missing card. - */ -static void -xe_card_unload(struct pccard_devinfo *devi) { - struct xe_softc *scp; - struct ifnet *ifp; - int unit; - - unit = devi->isahd.id_unit; - scp = sca[unit]; - ifp = &scp->arpcom.ac_if; - - if (scp->gone) { - printf("xe%d: already unloaded\n", unit); - return; - } - - if_down(ifp); - ifp->if_flags &= ~(IFF_RUNNING|IFF_OACTIVE); - xe_stop(scp); - scp->gone = 1; -} - - - -/************************************************************** - * * - * M I I F U N C T I O N S * - * * - **************************************************************/ - -/* - * Alternative MII/PHY handling code adapted from the xl driver. It doesn't - * seem to work any better than the xirc2_ps stuff, but it's cleaner code. - */ -#define XE_MII_SET(x) XE_OUTB(XE_GPR2, (XE_INB(XE_GPR2) | 0x04) | (x)) -#define XE_MII_CLR(x) XE_OUTB(XE_GPR2, (XE_INB(XE_GPR2) | 0x04) & ~(x)) - - -/* - * Sync the PHYs by setting data bit and strobing the clock 32 times. - */ -static void -xe_mii_sync(struct xe_softc *scp) { - register int i; - - XE_SELECT_PAGE(2); - XE_MII_SET(XE_MII_DIR|XE_MII_WRD); - - for (i = 0; i < 32; i++) { - XE_MII_SET(XE_MII_CLK); - DELAY(1); - XE_MII_CLR(XE_MII_CLK); - DELAY(1); - } -} - - -/* - * Look for a MII-compliant PHY. If we find one, reset it. - */ -static int -xe_mii_init(struct xe_softc *scp) { - u_int16_t status; - - status = xe_phy_readreg(scp, PHY_BMSR); - if ((status & 0xff00) != 0x7800) { -#ifdef XE_DEBUG - printf("xe%d: no PHY found, %0x\n", scp->unit, status); -#endif - return 0; - } - else { -#ifdef XE_DEBUG - printf("xe%d: PHY OK!\n", scp->unit); -#endif - - /* Reset the PHY */ - xe_phy_writereg(scp, PHY_BMCR, PHY_BMCR_RESET); - DELAY(500); - while(xe_phy_readreg(scp, PHY_BMCR) & PHY_BMCR_RESET); - XE_MII_DUMP(scp); - return 1; - } -} - - -/* - * Clock a series of bits through the MII. - */ -static void -xe_mii_send(struct xe_softc *scp, u_int32_t bits, int cnt) { - int i; - - XE_SELECT_PAGE(2); - XE_MII_CLR(XE_MII_CLK); - - for (i = (0x1 << (cnt - 1)); i; i >>= 1) { - if (bits & i) { - XE_MII_SET(XE_MII_WRD); - } else { - XE_MII_CLR(XE_MII_WRD); - } - DELAY(1); - XE_MII_CLR(XE_MII_CLK); - DELAY(1); - XE_MII_SET(XE_MII_CLK); - } -} - - -/* - * Read an PHY register through the MII. - */ -static int -xe_mii_readreg(struct xe_softc *scp, struct xe_mii_frame *frame) { - int i, ack, s; - - s = splimp(); - - /* - * Set up frame for RX. - */ - frame->mii_stdelim = XE_MII_STARTDELIM; - frame->mii_opcode = XE_MII_READOP; - frame->mii_turnaround = 0; - frame->mii_data = 0; - - XE_SELECT_PAGE(2); - XE_OUTB(XE_GPR2, 0); - - /* - * Turn on data xmit. - */ - XE_MII_SET(XE_MII_DIR); - - xe_mii_sync(scp); - - /* - * Send command/address info. - */ - xe_mii_send(scp, frame->mii_stdelim, 2); - xe_mii_send(scp, frame->mii_opcode, 2); - xe_mii_send(scp, frame->mii_phyaddr, 5); - xe_mii_send(scp, frame->mii_regaddr, 5); - - /* Idle bit */ - XE_MII_CLR((XE_MII_CLK|XE_MII_WRD)); - DELAY(1); - XE_MII_SET(XE_MII_CLK); - DELAY(1); - - /* Turn off xmit. */ - XE_MII_CLR(XE_MII_DIR); - - /* Check for ack */ - XE_MII_CLR(XE_MII_CLK); - DELAY(1); - XE_MII_SET(XE_MII_CLK); - DELAY(1); - ack = XE_INB(XE_GPR2) & XE_MII_RDD; - - /* - * Now try reading data bits. If the ack failed, we still - * need to clock through 16 cycles to keep the PHY(s) in sync. - */ - if (ack) { - for(i = 0; i < 16; i++) { - XE_MII_CLR(XE_MII_CLK); - DELAY(1); - XE_MII_SET(XE_MII_CLK); - DELAY(1); - } - goto fail; - } - - for (i = 0x8000; i; i >>= 1) { - XE_MII_CLR(XE_MII_CLK); - DELAY(1); - if (!ack) { - if (XE_INB(XE_GPR2) & XE_MII_RDD) - frame->mii_data |= i; - DELAY(1); - } - XE_MII_SET(XE_MII_CLK); - DELAY(1); - } - -fail: - - XE_MII_CLR(XE_MII_CLK); - DELAY(1); - XE_MII_SET(XE_MII_CLK); - DELAY(1); - - splx(s); - - if (ack) - return(1); - return(0); -} - - -/* - * Write to a PHY register through the MII. - */ -static int -xe_mii_writereg(struct xe_softc *scp, struct xe_mii_frame *frame) { - int s; - - s = splimp(); - - /* - * Set up frame for TX. - */ - frame->mii_stdelim = XE_MII_STARTDELIM; - frame->mii_opcode = XE_MII_WRITEOP; - frame->mii_turnaround = XE_MII_TURNAROUND; - - XE_SELECT_PAGE(2); - - /* - * Turn on data output. - */ - XE_MII_SET(XE_MII_DIR); - - xe_mii_sync(scp); - - xe_mii_send(scp, frame->mii_stdelim, 2); - xe_mii_send(scp, frame->mii_opcode, 2); - xe_mii_send(scp, frame->mii_phyaddr, 5); - xe_mii_send(scp, frame->mii_regaddr, 5); - xe_mii_send(scp, frame->mii_turnaround, 2); - xe_mii_send(scp, frame->mii_data, 16); - - /* Idle bit. */ - XE_MII_SET(XE_MII_CLK); - DELAY(1); - XE_MII_CLR(XE_MII_CLK); - DELAY(1); - - /* - * Turn off xmit. - */ - XE_MII_CLR(XE_MII_DIR); - - splx(s); - - return(0); -} - - -/* - * Read a register from the PHY. - */ -static u_int16_t -xe_phy_readreg(struct xe_softc *scp, u_int16_t reg) { - struct xe_mii_frame frame; - - bzero((char *)&frame, sizeof(frame)); - - frame.mii_phyaddr = 0; - frame.mii_regaddr = reg; - xe_mii_readreg(scp, &frame); - - return(frame.mii_data); -} - - -/* - * Write to a PHY register. - */ -static void -xe_phy_writereg(struct xe_softc *scp, u_int16_t reg, u_int16_t data) { - struct xe_mii_frame frame; - - bzero((char *)&frame, sizeof(frame)); - - frame.mii_phyaddr = 0; - frame.mii_regaddr = reg; - frame.mii_data = data; - xe_mii_writereg(scp, &frame); - - return; -} - - -#ifdef XE_DEBUG -/* - * A bit of debugging code. - */ -static void -xe_mii_dump(struct xe_softc *scp) { - int i, s; - - s = splimp(); - - printf("xe%d: MII registers: ", scp->unit); - for (i = 0; i < 2; i++) { - printf(" %d:%04x", i, xe_phy_readreg(scp, i)); - } - for (i = 4; i < 7; i++) { - printf(" %d:%04x", i, xe_phy_readreg(scp, i)); - } - printf("\n"); - - (void)splx(s); -} - -static void -xe_reg_dump(struct xe_softc *scp) { - int page, i, s; - - s = splimp(); - - printf("xe%d: Common registers: ", scp->unit); - for (i = 0; i < 8; i++) { - printf(" %2.2x", XE_INB(i)); - } - printf("\n"); - - for (page = 0; page <= 8; page++) { - printf("xe%d: Register page %2.2x: ", scp->unit, page); - XE_SELECT_PAGE(page); - for (i = 8; i < 16; i++) { - printf(" %2.2x", XE_INB(i)); - } - printf("\n"); - } - - for (page = 0x10; page < 0x5f; page++) { - if ((page >= 0x11 && page <= 0x3f) || - (page == 0x41) || - (page >= 0x43 && page <= 0x4f) || - (page >= 0x59)) - continue; - printf("xe%d: Register page %2.2x: ", scp->unit, page); - XE_SELECT_PAGE(page); - for (i = 8; i < 16; i++) { - printf(" %2.2x", XE_INB(i)); - } - printf("\n"); - } - - (void)splx(s); -} -#endif - - - -#if NAPM > 0 -/************************************************************** - * * - * A P M F U N C T I O N S * - * * - **************************************************************/ - -/* - * This is called when we go into suspend/standby mode - */ -static int -xe_suspend(void *xunit) { - -#ifdef XE_DEBUG - struct xe_softc *scp = sca[(int)xunit]; - - printf("xe%d: APM suspend\n", scp->unit); -#endif - - return 0; -} - -/* - * This is called when we wake up again - */ -static int -xe_resume(void *xunit) { - -#ifdef XE_DEBUG - struct xe_softc *scp = sca[(int)xunit]; - - printf("xe%d: APM resume\n", scp->unit); -#endif - - return 0; -} - -#endif /* NAPM > 0 */ - -#endif /* NCARD > 0 */ - -#endif /* NXE > 0 */ diff --git a/sys/dev/pccard/if_xereg.h b/sys/dev/pccard/if_xereg.h deleted file mode 100644 index 07cb0b1bbb59..000000000000 --- a/sys/dev/pccard/if_xereg.h +++ /dev/null @@ -1,296 +0,0 @@ -/*- - * Copyright (c) 1998, 1999 Scott Mitchell - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id: if_xereg.h,v 1.3 1999/02/22 14:00:53 root Exp $ - */ - -/* - * Register definitions for Xircom CreditCard Ethernet adapters. See if_xe.c - * for details of supported hardware. Adapted from Werner Koch's 'xirc2ps' - * driver for Linux and the FreeBSD 'xl' driver (for the MII support). - */ - -#include "xe.h" -#if NXE > 0 - - -/* - * Common registers - */ -#define XE_CR 0 /* Command register (write) */ -#define XE_ESR 0 /* Ethernet status register (read) */ -#define XE_PSR 1 /* Page select register */ -#define XE_EDP 4 /* Ethernet data port */ -#define XE_ISR 6 /* Interrupt status register */ - -/* - * Command register values - */ -#define XE_CR_TX_PACKET 0x01 -#define XE_CR_SOFT_RESET 0x02 -#define XE_CR_ENABLE_INTR 0x04 -#define XE_CR_FORCE_INTR 0x08 -#define XE_CR_CLEAR_FIFO 0x10 -#define XE_CR_CLEAR_OVERRUN 0x20 -#define XE_CR_RESTART_TX 0x40 - -/* - * Status register values - */ -#define XE_ESR_FULL_PKT_RX 0x01 -#define XE_ESR_PKT_REJECT 0x04 -#define XE_ESR_TX_PENDING 0x08 -#define XE_ESR_BAD_POLARITY 0x10 -#define XE_ESR_MEDIA_SELECT 0x20 - -/* - * Interrupt register values - */ -#define XE_ISR_TX_OVERFLOW 0x01 -#define XE_ISR_TX_PACKET 0x02 -#define XE_ISR_MAC_INTR 0x04 -#define XE_ISR_TX_RES 0x08 -#define XE_ISR_RX_PACKET 0x20 -#define XE_ISR_RX_REJECT 0x40 -#define XE_ISR_FORCE_INTR 0x80 - - -/* - * Page 0 registers - */ -#define XE_TSO 8 /* Transmit space open */ -#define XE_TRS 10 /* Transmit reservation size */ -#define XE_DOR 12 /* Data offset register (write) */ -#define XE_RSR 12 /* Receive status register (read) */ -#define XE_PTR 13 /* Packets transmitted register (read) */ -#define XE_RBC 14 /* Received byte count (read) */ - -/* - * RSR values - */ -#define XE_RSR_PHYS_PKT 0x01 -#define XE_RSR_BCAST_PKT 0x02 -#define XE_RSR_LONG_PKT 0x04 -#define XE_RSR_ALIGN_ERR 0x10 -#define XE_RSR_CRC_ERR 0x20 -#define XE_RSR_RX_OK 0x80 - - -/* - * Page 1 registers - */ -#define XE_IMR0 12 /* Interrupt mask register, part 1 */ -#define XE_IMR1 13 /* Interrupt mask register, part 2 */ -#define XE_ECR 14 /* Ethernet configuration register */ - -/* - * ECR values - */ -#define XE_ECR_FULL_DUPLEX 0x04 -#define XE_ECR_LONG_TPCABLE 0x08 -#define XE_ECR_NO_POLCOL 0x10 -#define XE_ECR_NO_LINKPULSE 0x20 -#define XE_ECR_NO_AUTOTX 0x40 - - -/* - * Page 2 registers - */ -#define XE_RBS 8 /* Receive buffer start */ -#define XE_LED 10 /* LED configuration register */ -#define XE_MSR 12 /* Mohawk specfic register (Mohawk = CE3) */ -#define XE_GPR2 13 /* General purpose register 2 */ - - -/* - * Page 4 registers - */ -#define XE_GPR0 8 /* General purpose register 0 */ -#define XE_GPR1 9 /* General purpose register 1 */ -#define XE_BOV 10 /* Bonding version register */ -#define XE_LMA 12 /* Local memory address */ -#define XE_LMD 14 /* Local memory data */ - - -/* - * Page 5 registers - */ -#define XE_RHS 10 /* Receive host start address */ - - -/* - * Page 0x40 registers - */ -#define XE_OCR 8 /* The Other command register */ -#define XE_RXS0 9 /* Receive status 0 */ -#define XE_TXS0 11 /* Transmit status 0 */ -#define XE_TXS1 12 /* Transmit status 1 */ -#define XE_RXM0 13 /* Receive mask register 0 */ -#define XE_TXM0 14 /* Transmit mask register 0 */ -#define XE_TXM1 15 /* Transmit mask register 1 */ - -/* - * OCR values - */ -#define XE_OCR_TX 0x01 -#define XE_OCR_RX_ENABLE 0x04 -#define XE_OCR_RX_DISABLE 0x08 -#define XE_OCR_ABORT 0x10 -#define XE_OCR_ONLINE 0x20 -#define XE_OCR_ACK_INTR 0x40 -#define XE_OCR_OFFLINE 0x80 - - -/* - * Page 0x42 registers - */ -#define XE_SWC0 8 /* Software configuration register 0 */ -#define XE_SWC1 9 /* Software configuration register 1 */ -#define XE_BOC 10 /* Back-off configuration */ - - -/* - * Page 0x44 registers - */ -#define XE_TDR0 8 /* Time domain reflectometry register 0 */ -#define XE_TDR1 9 /* Time domain reflectometry register 1 */ -#define XE_RXC0 10 /* Receive byte count low */ -#define XE_RXC1 11 /* Receive byte count high */ - - -/* - * Page 0x45 registers - */ -#define XE_REV 15 /* Revision (read) */ - - -/* - * Page 0x50 registers - */ -#define XE_IAR 8 /* Individual address register */ - - -/* - * Pages 0x43, 0x46-0x4f and 0x51-0x5e apparently don't exist. - * The remainder of 0x0-0x8 and 0x40-0x5f exist, but I have no - * idea what's on most of them. - */ - - - -/* - * Definitions for the Micro Linear ML6692 100Base-TX PHY, which handles the - * 100Mbit functionality of CE3 type cards, including media autonegotiation. - * It appears to be mostly compatible with the National Semiconductor - * DP83840A, but with a much smaller register set. Please refer to the data - * sheets for these devices for the definitive word on what all this stuff - * means :) - * - * Note that the ML6692 has no 10Mbit capability -- that is handled by another - * chip that we don't know anything about. - * - * Most of these definitions were adapted from the xl driver. - */ - -/* - * Masks for the MII-related bits in GPR2. For some reason read and write - * data are on separate bits. - */ -#define XE_MII_CLK 0x01 -#define XE_MII_DIR 0x08 -#define XE_MII_WRD 0x02 -#define XE_MII_RDD 0x20 - -/* - * MII command (etc) bit strings. - */ -#define XE_MII_STARTDELIM 0x01 -#define XE_MII_READOP 0x02 -#define XE_MII_WRITEOP 0x01 -#define XE_MII_TURNAROUND 0x02 - -/* - * PHY registers. - */ -#define PHY_BMCR 0x00 /* Basic Mode Control Register */ -#define PHY_BMSR 0x01 /* Basic Mode Status Register */ -#define PHY_ANAR 0x04 /* Auto-Negotiation Advertisment Register */ -#define PHY_LPAR 0x05 /* Auto-Negotiation Link Partner Ability Register */ -#define PHY_ANER 0x06 /* Auto-Negotiation Expansion Register */ - -#define PHY_BMCR_RESET 0x8000 /* Soft reset PHY. Self-clearing */ -#define PHY_BMCR_LOOPBK 0x4000 /* Enable loopback */ -#define PHY_BMCR_SPEEDSEL 0x2000 /* 1=100Mbps, 0=10Mbps */ -#define PHY_BMCR_AUTONEGENBL 0x1000 /* Auto-negotiation enabled */ -#define PHY_BMCR_ISOLATE 0x0400 /* Isolate ML6692 from MII */ -#define PHY_BMCR_AUTONEGRSTR 0x0200 /* Restart auto-negotiation. Self-clearing */ -#define PHY_BMCR_DUPLEX 0x0100 /* Full duplex operation */ -#define PHY_BMCR_COLLTEST 0x0080 /* Enable collision test */ - -#define PHY_BMSR_100BT4 0x8000 /* 100Base-T4 capable */ -#define PHY_BMSR_100BTXFULL 0x4000 /* 100Base-TX full duplex capable */ -#define PHY_BMSR_100BTXHALF 0x2000 /* 100Base-TX half duplex capable */ -#define PHY_BMSR_10BTFULL 0x1000 /* 10Base-T full duplex capable */ -#define PHY_BMSR_10BTHALF 0x0800 /* 10Base-T half duplex capable */ -#define PHY_BMSR_AUTONEGCOMP 0x0020 /* Auto-negotiation complete */ -#define PHY_BMSR_CANAUTONEG 0x0008 /* Auto-negotiation supported */ -#define PHY_BMSR_LINKSTAT 0x0004 /* Link is up */ -#define PHY_BMSR_EXTENDED 0x0001 /* Extended register capabilities */ - -#define PHY_ANAR_NEXTPAGE 0x8000 /* Additional link code word pages */ -#define PHY_ANAR_TLRFLT 0x2000 /* Remote wire fault detected */ -#define PHY_ANAR_100BT4 0x0200 /* 100Base-T4 capable */ -#define PHY_ANAR_100BTXFULL 0x0100 /* 100Base-TX full duplex capable */ -#define PHY_ANAR_100BTXHALF 0x0080 /* 100Base-TX half duplex capable */ -#define PHY_ANAR_10BTFULL 0x0040 /* 10Base-T full duplex capable */ -#define PHY_ANAR_10BTHALF 0x0020 /* 10Base-T half duplex capable */ -#define PHY_ANAR_PROTO4 0x0010 /* Protocol selection (00001 = 802.3) */ -#define PHY_ANAR_PROTO3 0x0008 -#define PHY_ANAR_PROTO2 0x0004 -#define PHY_ANAR_PROTO1 0x0002 -#define PHY_ANAR_PROTO0 0x0001 - -#define PHY_LPAR_NEXTPAGE 0x8000 /* Additional link code word pages */ -#define PHY_LPAR_LPACK 0x4000 /* Link partner acknowledged receipt */ -#define PHY_LPAR_TLRFLT 0x2000 /* Remote wire fault detected */ -#define PHY_LPAR_100BT4 0x0200 /* 100Base-T4 capable */ -#define PHY_LPAR_100BTXFULL 0x0100 /* 100Base-TX full duplex capable */ -#define PHY_LPAR_100BTXHALF 0x0080 /* 100Base-TX half duplex capable */ -#define PHY_LPAR_10BTFULL 0x0040 /* 10Base-T full duplex capable */ -#define PHY_LPAR_10BTHALF 0x0020 /* 10Base-T half duplex capable */ -#define PHY_LPAR_PROTO4 0x0010 /* Protocol selection (00001 = 802.3) */ -#define PHY_LPAR_PROTO3 0x0008 -#define PHY_LPAR_PROTO2 0x0004 -#define PHY_LPAR_PROTO1 0x0002 -#define PHY_LPAR_PROTO0 0x0001 - -#define PHY_ANER_MLFAULT 0x0010 /* More than one link is up! */ -#define PHY_ANER_LPNPABLE 0x0008 /* Link partner supports next page */ -#define PHY_ANER_NPABLE 0x0004 /* Local port supports next page */ -#define PHY_ANER_PAGERX 0x0002 /* Page received */ -#define PHY_ANER_LPAUTONEG 0x0001 /* Link partner can auto-negotiate */ - - -#endif /* NXE > 0 */ diff --git a/sys/i386/eisa/ahc_eisa.c b/sys/i386/eisa/ahc_eisa.c index cdfd7b9704f6..419330d6386b 100644 --- a/sys/i386/eisa/ahc_eisa.c +++ b/sys/i386/eisa/ahc_eisa.c @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: ahc_eisa.c,v 1.4 1998/12/15 08:24:45 gibbs Exp $ + * $Id: ahc_eisa.c,v 1.4.2.1 1999/03/07 00:41:38 gibbs Exp $ */ #include "eisa.h" @@ -61,14 +61,14 @@ #define AHC_EISA_IOSIZE 0x100 #define INTDEF 0x5cul /* Interrupt Definition Register */ -static int aic7770probe(void); -static int aic7770_attach(struct eisa_device *e_dev); +static int aic7770_probe(void); +static int aic7770_attach(struct eisa_device *e_dev); static void aha2840_load_seeprom(struct ahc_softc *ahc); static struct eisa_driver ahc_eisa_driver = { "ahc", - aic7770probe, + aic7770_probe, aic7770_attach, /*shutdown*/NULL, &ahc_unit @@ -79,8 +79,7 @@ DATA_SET (eisadriver_set, ahc_eisa_driver); static const char *aic7770_match(eisa_id_t type); static const char* -aic7770_match(type) - eisa_id_t type; +aic7770_match(eisa_id_t type) { switch (type) { case EISA_DEVICE_ID_ADAPTEC_AIC7770: @@ -100,20 +99,20 @@ aic7770_match(type) } static int -aic7770probe(void) +aic7770_probe() { u_int32_t iobase; u_int32_t irq; u_int8_t intdef; u_int8_t hcntrl; struct eisa_device *e_dev; - int count; + int count; e_dev = NULL; count = 0; while ((e_dev = eisa_match_dev(e_dev, aic7770_match))) { iobase = (e_dev->ioconf.slot * EISA_SLOT_SIZE) - + AHC_EISA_SLOT_OFFSET; + + AHC_EISA_SLOT_OFFSET; /* Pause the card preseving the IRQ type */ hcntrl = inb(iobase + HCNTRL) & IRQMS; @@ -124,7 +123,7 @@ aic7770probe(void) intdef = inb(INTDEF + iobase); irq = intdef & 0xf; switch (irq) { - case 9: + case 9: case 10: case 11: case 12: @@ -134,7 +133,7 @@ aic7770probe(void) default: printf("aic7770 at slot %d: illegal " "irq setting %d\n", e_dev->ioconf.slot, - intdef); + intdef); irq = 0; break; } @@ -151,7 +150,7 @@ static int aic7770_attach(struct eisa_device *e_dev) { ahc_chip chip; - + bus_dma_tag_t parent_dmat; struct ahc_softc *ahc; resvaddr_t *iospace; int unit = e_dev->unit; @@ -180,15 +179,8 @@ aic7770_attach(struct eisa_device *e_dev) default: printf("aic7770_attach: Unknown device type!\n"); return -1; - break; } - if (!(ahc = ahc_alloc(unit, iospace->addr, NULL, - chip, AHC_AIC7770_FE, AHC_FNONE, NULL))) - return -1; - - ahc->channel = 'A'; - ahc->channel_b = 'B'; /* XXX Should be a child of the EISA bus dma tag */ error = bus_dma_tag_create(/*parent*/NULL, /*alignment*/0, /*boundary*/0, @@ -198,15 +190,20 @@ aic7770_attach(struct eisa_device *e_dev) /*maxsize*/MAXBSIZE, /*nsegments*/AHC_NSEG, /*maxsegsz*/AHC_MAXTRANSFER_SIZE, - /*flags*/BUS_DMA_ALLOCNOW, &ahc->dmat); + /*flags*/BUS_DMA_ALLOCNOW, &parent_dmat); if (error != 0) { - printf("%s: Could not allocate DMA tag - error %d\n", - ahc_name(ahc), error); - ahc_free(ahc); + printf("ahc_eisa_attach: Could not allocate DMA tag " + "- error %d\n", error); return -1; } + if (!(ahc = ahc_alloc(unit, iospace->addr, NULL, parent_dmat, + chip, AHC_AIC7770_FE, AHC_FNONE, NULL))) + return -1; + + ahc->channel = 'A'; + ahc->channel_b = 'B'; eisa_reg_start(e_dev); if (eisa_reg_iospace(e_dev, iospace)) { @@ -224,7 +221,7 @@ aic7770_attach(struct eisa_device *e_dev) * IRQ sharing if it's set. */ if (eisa_reg_intr(e_dev, irq, ahc_intr, (void *)ahc, &cam_imask, - /*shared ==*/ahc->pause & IRQMS)) { + /*shared ==*/ahc->pause & IRQMS)) { ahc_free(ahc); return -1; } @@ -473,5 +470,4 @@ aha2840_load_seeprom(struct ahc_softc *ahc) ahc->flags |= AHC_TERM_ENB_A; } } - #endif /* NEISA > 0 */ diff --git a/sys/i386/include/if_wavelan_ieee.h b/sys/i386/include/if_wavelan_ieee.h deleted file mode 100644 index f002933a9bdc..000000000000 --- a/sys/i386/include/if_wavelan_ieee.h +++ /dev/null @@ -1,281 +0,0 @@ -/* - * Copyright (c) 1997, 1998, 1999 - * Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Bill Paul. - * 4. Neither the name of the author nor the names of any co-contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - * THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id: if_wavelan_ieee.h,v 1.4 1999/04/27 02:02:41 wpaul Exp $ - */ - -#ifndef _IF_WAVELAN_IEEE_H -#define _IF_WAVELAN_IEEE_H - -/* - * This header defines a simple command interface to the FreeBSD - * WaveLAN/IEEE driver (wi) driver, which is used to set certain - * device-specific parameters which can't be easily managed through - * ifconfig(8). No, sysctl(2) is not the answer. I said a _simple_ - * interface, didn't I. - */ - -#ifndef SIOCSWAVELAN -#define SIOCSWAVELAN SIOCSIFGENERIC -#endif - -#ifndef SIOCGWAVELAN -#define SIOCGWAVELAN SIOCGIFGENERIC -#endif - -/* - * Technically I don't think there's a limit to a record - * length. The largest record is the one that contains the CIS - * data, which is 240 words long, so 256 should be a safe - * value. - */ -#define WI_MAX_DATALEN 512 - -struct wi_req { - u_int16_t wi_len; - u_int16_t wi_type; - u_int16_t wi_val[WI_MAX_DATALEN]; -}; - -/* - * Private LTV records (interpreted only by the driver). This is - * a minor kludge to allow reading the interface statistics from - * the driver. - */ -#define WI_RID_IFACE_STATS 0x0100 -#define WI_RID_MGMT_XMIT 0x0200 - -struct wi_80211_hdr { - u_int16_t frame_ctl; - u_int16_t dur_id; - u_int8_t addr1[6]; - u_int8_t addr2[6]; - u_int8_t addr3[6]; - u_int16_t seq_ctl; - u_int8_t addr4[6]; -}; - -#define WI_FCTL_VERS 0x0002 -#define WI_FCTL_FTYPE 0x000C -#define WI_FCTL_STYPE 0x00F0 -#define WI_FCTL_TODS 0x0100 -#define WI_FCTL_FROMDS 0x0200 -#define WI_FCTL_MOREFRAGS 0x0400 -#define WI_FCTL_RETRY 0x0800 -#define WI_FCTL_PM 0x1000 -#define WI_FCTL_MOREDATA 0x2000 -#define WI_FCTL_WEP 0x4000 -#define WI_FCTL_ORDER 0x8000 - -#define WI_FTYPE_MGMT 0x0000 -#define WI_FTYPE_CTL 0x0004 -#define WI_FTYPE_DATA 0x0008 - -#define WI_STYPE_MGMT_ASREQ 0x0000 /* association request */ -#define WI_STYPE_MGMT_ASRESP 0x0010 /* association response */ -#define WI_STYPE_MGMT_REASREQ 0x0020 /* reassociation request */ -#define WI_STYPE_MGMT_REASRESP 0x0030 /* reassociation response */ -#define WI_STYPE_MGMT_PROBEREQ 0x0040 /* probe request */ -#define WI_STYPE_MGMT_PROBERESP 0x0050 /* probe response */ -#define WI_STYPE_MGMT_BEACON 0x0080 /* beacon */ -#define WI_STYPE_MGMT_ATIM 0x0090 /* announcement traffic ind msg */ -#define WI_STYPE_MGMT_DISAS 0x00A0 /* disassociation */ -#define WI_STYPE_MGMT_AUTH 0x00B0 /* authentication */ -#define WI_STYPE_MGMT_DEAUTH 0x00C0 /* deauthentication */ - -struct wi_mgmt_hdr { - u_int16_t frame_ctl; - u_int16_t duration; - u_int8_t dst_addr[6]; - u_int8_t src_addr[6]; - u_int8_t bssid[6]; - u_int16_t seq_ctl; -}; - -#ifndef KERNEL -struct wi_counters { - u_int32_t wi_tx_unicast_frames; - u_int32_t wi_tx_multicast_frames; - u_int32_t wi_tx_fragments; - u_int32_t wi_tx_unicast_octets; - u_int32_t wi_tx_multicast_octets; - u_int32_t wi_tx_deferred_xmits; - u_int32_t wi_tx_single_retries; - u_int32_t wi_tx_multi_retries; - u_int32_t wi_tx_retry_limit; - u_int32_t wi_tx_discards; - u_int32_t wi_rx_unicast_frames; - u_int32_t wi_rx_multicast_frames; - u_int32_t wi_rx_fragments; - u_int32_t wi_rx_unicast_octets; - u_int32_t wi_rx_multicast_octets; - u_int32_t wi_rx_fcs_errors; - u_int32_t wi_rx_discards_nobuf; - u_int32_t wi_tx_discards_wrong_sa; - u_int32_t wi_rx_WEP_cant_decrypt; - u_int32_t wi_rx_msg_in_msg_frags; - u_int32_t wi_rx_msg_in_bad_msg_frags; -}; - -/* - * These are all the LTV record types that we can read or write - * from the WaveLAN. Not all of them are temendously useful, but I - * list as many as I know about here for completeness. - */ - -#define WI_RID_DNLD_BUF 0xFD01 -#define WI_RID_MEMSZ 0xFD02 -#define WI_RID_DOMAINS 0xFD11 -#define WI_RID_CIS 0xFD13 -#define WI_RID_COMMQUAL 0xFD43 -#define WI_RID_SCALETHRESH 0xFD46 -#define WI_RID_PCF 0xFD87 - -/* - * Network parameters, static configuration entities. - */ -#define WI_RID_PORTTYPE 0xFC00 /* Connection control characteristics */ -#define WI_RID_MAC_NODE 0xFC01 /* MAC address of this station */ -#define WI_RID_DESIRED_SSID 0xFC02 /* Service Set ID for connection */ -#define WI_RID_OWN_CHNL 0xFC03 /* Comm channel for BSS creation */ -#define WI_RID_OWN_SSID 0xFC04 /* IBSS creation ID */ -#define WI_RID_OWN_ATIM_WIN 0xFC05 /* ATIM window time for IBSS creation */ -#define WI_RID_SYSTEM_SCALE 0xFC06 /* scale that specifies AP density */ -#define WI_RID_MAX_DATALEN 0xFC07 /* Max len of MAC frame body data */ -#define WI_RID_MAC_WDS 0xFC08 /* MAC addr of corresponding WDS node */ -#define WI_RID_PM_ENABLED 0xFC09 /* ESS power management enable */ -#define WI_RID_PM_EPS 0xFC0A /* PM EPS/PS mode */ -#define WI_RID_MCAST_RX 0xFC0B /* ESS PM mcast reception */ -#define WI_RID_MAX_SLEEP 0xFC0C /* max sleep time for ESS PM */ -#define WI_RID_HOLDOVER 0xFC0D /* holdover time for ESS PM */ -#define WI_RID_NODENAME 0xFC0E /* ID name of this node for diag */ -#define WI_RID_DTIM_PERIOD 0xFC10 /* beacon interval between DTIMs */ -#define WI_RID_WDS_ADDR1 0xFC11 /* port 1 MAC of WDS link node */ -#define WI_RID_WDS_ADDR2 0xFC12 /* port 1 MAC of WDS link node */ -#define WI_RID_WDS_ADDR3 0xFC13 /* port 1 MAC of WDS link node */ -#define WI_RID_WDS_ADDR4 0xFC14 /* port 1 MAC of WDS link node */ -#define WI_RID_WDS_ADDR5 0xFC15 /* port 1 MAC of WDS link node */ -#define WI_RID_WDS_ADDR6 0xFC16 /* port 1 MAC of WDS link node */ -#define WI_RID_MCAST_PM_BUF 0xFC17 /* PM buffering of mcast */ - -/* - * Network parameters, dynamic configuration entities - */ -#define WI_RID_MCAST_LIST 0xFC80 /* list of multicast addrs */ -#define WI_RID_CREATE_IBSS 0xFC81 /* create IBSS */ -#define WI_RID_FRAG_THRESH 0xFC82 /* frag len, unicast msg xmit */ -#define WI_RID_RTS_THRESH 0xFC83 /* frame len for RTS/CTS handshake */ -#define WI_RID_TX_RATE 0xFC84 /* data rate for message xmit */ -#define WI_RID_PROMISC 0xFC85 /* enable promisc mode */ -#define WI_RID_FRAG_THRESH0 0xFC90 -#define WI_RID_FRAG_THRESH1 0xFC91 -#define WI_RID_FRAG_THRESH2 0xFC92 -#define WI_RID_FRAG_THRESH3 0xFC93 -#define WI_RID_FRAG_THRESH4 0xFC94 -#define WI_RID_FRAG_THRESH5 0xFC95 -#define WI_RID_FRAG_THRESH6 0xFC96 -#define WI_RID_RTS_THRESH0 0xFC97 -#define WI_RID_RTS_THRESH1 0xFC98 -#define WI_RID_RTS_THRESH2 0xFC99 -#define WI_RID_RTS_THRESH3 0xFC9A -#define WI_RID_RTS_THRESH4 0xFC9B -#define WI_RID_RTS_THRESH5 0xFC9C -#define WI_RID_RTS_THRESH6 0xFC9D -#define WI_RID_TX_RATE0 0xFC9E -#define WI_RID_TX_RATE1 0xFC9F -#define WI_RID_TX_RATE2 0xFCA0 -#define WI_RID_TX_RATE3 0xFCA1 -#define WI_RID_TX_RATE4 0xFCA2 -#define WI_RID_TX_RATE5 0xFCA3 -#define WI_RID_TX_RATE6 0xFCA4 -#define WI_RID_TICK_TIME 0xFCE0 - -/* - * NIC information - */ -#define WI_RID_FIRM_ID 0xFD02 /* Primary func firmware ID. */ -#define WI_RID_PRI_SUP_RANGE 0xFD03 /* primary supplier compatibility */ -#define WI_RID_CIF_ACT_RANGE 0xFD04 /* controller sup. compatibility */ -#define WI_RID_SERIALNO 0xFD0A /* card serial number */ -#define WI_RID_CARD_ID 0xFD0B /* card identification */ -#define WI_RID_MFI_SUP_RANGE 0xFD0C /* modem supplier compatibility */ -#define WI_RID_CFI_SUP_RANGE 0xFD0D /* controller sup. compatibility */ -#define WI_RID_CHANNEL_LIST 0xFD10 /* allowd comm. frequencies. */ -#define WI_RID_REG_DOMAINS 0xFD11 /* list of intendted regulatory doms */ -#define WI_RID_TEMP_TYPE 0xFD12 /* hw temp range code */ -#define WI_RID_CIS 0xFD13 /* PC card info struct */ -#define WI_RID_STA_IDENEITY 0xFD20 /* station funcs firmware ident */ -#define WI_RID_STA_SUP_RANGE 0xFD21 /* station supplier compat */ -#define WI_RID_MFI_ACT_RANGE 0xFD22 -#define WI_RID_CFI_ACT_RANGE 0xFD33 - -/* - * MAC information - */ -#define WI_RID_PORT_STAT 0xFD40 /* actual MAC port con control stat */ -#define WI_RID_CURRENT_SSID 0xFD41 /* ID of actually connected SS */ -#define WI_RID_CURRENT_BSSID 0xFD42 /* ID of actually connected BSS */ -#define WI_RID_COMMS_QUALITY 0xFD43 /* quality of BSS connection */ -#define WI_RID_CUR_TX_RATE 0xFD44 /* current TX rate */ -#define WI_RID_OWN_BEACON_INT 0xFD45 /* beacon xmit time for BSS creation */ -#define WI_RID_CUR_SCALE_THRESH 0xFD46 /* actual system scane thresh setting */ -#define WI_RID_PROT_RESP_TIME 0xFD47 /* time to wait for resp to req msg */ -#define WI_RID_SHORT_RTR_LIM 0xFD48 /* max tx attempts for short frames */ -#define WI_RID_LONG_RTS_LIM 0xFD49 /* max tx attempts for long frames */ -#define WI_RID_MAX_TX_LIFE 0xFD4A /* max tx frame handling duration */ -#define WI_RID_MAX_RX_LIFE 0xFD4B /* max rx frame handling duration */ -#define WI_RID_CF_POLL 0xFD4C /* contention free pollable ind */ -#define WI_RID_AUTH_ALGS 0xFD4D /* auth algorithms available */ -#define WI_RID_AUTH_TYPE 0xFD4E /* availanle auth types */ -#define WI_RID_WEP_AVAIL 0xFD4F /* WEP privacy option available */ -#define WI_RID_CUR_TX_RATE1 0xFD80 -#define WI_RID_CUR_TX_RATE2 0xFD81 -#define WI_RID_CUR_TX_RATE3 0xFD82 -#define WI_RID_CUR_TX_RATE4 0xFD83 -#define WI_RID_CUR_TX_RATE5 0xFD84 -#define WI_RID_CUR_TX_RATE6 0xFD85 -#define WI_RID_OWN_MAC 0xFD86 /* unique local MAC addr */ -#define WI_RID_PCI_INFO 0xFD87 /* point coordination func cap */ - -/* - * Modem information - */ -#define WI_RID_PHY_TYPE 0xFDC0 /* phys layer type indication */ -#define WI_RID_CURRENT_CHAN 0xFDC1 /* current frequency */ -#define WI_RID_PWR_STATE 0xFDC2 /* pwr consumption status */ -#define WI_RID_CCA_MODE 0xFDC3 /* clear chan assess mode indication */ -#define WI_RID_CCA_TIME 0xFDC4 /* clear chan assess time */ -#define WI_RID_MAC_PROC_DELAY 0xFDC5 /* MAC processing delay time */ -#define WI_RID_DATA_RATES 0xFDC6 /* supported data rates */ -#endif - - -#endif diff --git a/sys/i386/isa/if_wireg.h b/sys/i386/isa/if_wireg.h deleted file mode 100644 index 8c9c6e6797c5..000000000000 --- a/sys/i386/isa/if_wireg.h +++ /dev/null @@ -1,599 +0,0 @@ -/* - * Copyright (c) 1997, 1998, 1999 - * Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Bill Paul. - * 4. Neither the name of the author nor the names of any co-contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - * THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id: if_wireg.h,v 1.31 1999/05/07 03:14:21 wpaul Exp $ - */ - -struct wi_counters { - u_int32_t wi_tx_unicast_frames; - u_int32_t wi_tx_multicast_frames; - u_int32_t wi_tx_fragments; - u_int32_t wi_tx_unicast_octets; - u_int32_t wi_tx_multicast_octets; - u_int32_t wi_tx_deferred_xmits; - u_int32_t wi_tx_single_retries; - u_int32_t wi_tx_multi_retries; - u_int32_t wi_tx_retry_limit; - u_int32_t wi_tx_discards; - u_int32_t wi_rx_unicast_frames; - u_int32_t wi_rx_multicast_frames; - u_int32_t wi_rx_fragments; - u_int32_t wi_rx_unicast_octets; - u_int32_t wi_rx_multicast_octets; - u_int32_t wi_rx_fcs_errors; - u_int32_t wi_rx_discards_nobuf; - u_int32_t wi_tx_discards_wrong_sa; - u_int32_t wi_rx_WEP_cant_decrypt; - u_int32_t wi_rx_msg_in_msg_frags; - u_int32_t wi_rx_msg_in_bad_msg_frags; -}; - -struct wi_softc { - struct arpcom arpcom; - struct ifmedia ifmedia; - int wi_unit; - bus_space_handle_t wi_bhandle; - bus_space_tag_t wi_btag; - int wi_tx_data_id; - int wi_tx_mgmt_id; - int wi_gone; - int wi_if_flags; - u_int16_t wi_ptype; - u_int16_t wi_portnum; - u_int16_t wi_max_data_len; - u_int16_t wi_rts_thresh; - u_int16_t wi_ap_density; - u_int16_t wi_tx_rate; - u_int16_t wi_create_ibss; - u_int16_t wi_channel; - u_int16_t wi_pm_enabled; - u_int16_t wi_max_sleep; - char wi_node_name[32]; - char wi_net_name[32]; - char wi_ibss_name[32]; - u_int8_t wi_txbuf[1536]; - struct wi_counters wi_stats; - struct callout_handle wi_stat_ch; -}; - -#define WI_TIMEOUT 65536 - -#define WI_PORT0 0 -#define WI_PORT1 1 -#define WI_PORT2 2 -#define WI_PORT3 3 -#define WI_PORT4 4 -#define WI_PORT5 5 - -/* Default port: 0 (only 0 exists on stations) */ -#define WI_DEFAULT_PORT (WI_PORT0 << 8) - -/* Default TX rate: 2Mbps, auto fallback */ -#define WI_DEFAULT_TX_RATE 3 - -/* Default network name: ANY */ -#define WI_DEFAULT_NETNAME "ANY" - -#define WI_DEFAULT_AP_DENSITY 1 - -#define WI_DEFAULT_RTS_THRESH 2347 - -#define WI_DEFAULT_DATALEN 2304 - -#define WI_DEFAULT_CREATE_IBSS 0 - -#define WI_DEFAULT_PM_ENABLED 0 - -#define WI_DEFAULT_MAX_SLEEP 100 - -#define WI_DEFAULT_NODENAME "FreeBSD WaveLAN/IEEE node" - -#define WI_DEFAULT_IBSS "FreeBSD IBSS" - -#define WI_DEFAULT_CHAN 3 - -/* - * register space access macros - */ -#define CSR_WRITE_4(sc, reg, val) \ - bus_space_write_4(sc->wi_btag, sc->wi_bhandle, reg, val) -#define CSR_WRITE_2(sc, reg, val) \ - bus_space_write_2(sc->wi_btag, sc->wi_bhandle, reg, val) -#define CSR_WRITE_1(sc, reg, val) \ - bus_space_write_1(sc->wi_btag, sc->wi_bhandle, reg, val) - -#define CSR_READ_4(sc, reg) \ - bus_space_read_4(sc->wi_btag, sc->wi_bhandle, reg) -#define CSR_READ_2(sc, reg) \ - bus_space_read_2(sc->wi_btag, sc->wi_bhandle, reg) -#define CSR_READ_1(sc, reg) \ - bus_space_read_1(sc->wi_btag, sc->wi_bhandle, reg) - -/* - * The WaveLAN/IEEE cards contain an 802.11 MAC controller which Lucent - * calls 'Hermes.' In typical fashion, getting documentation about this - * controller is about as easy as squeezing blood from a stone. Here - * is more or less what I know: - * - * - The Hermes controller is firmware driven, and the host interacts - * with the Hermes via a firmware interface, which can change. - * - * - The Hermes is described in a document called: "Hermes Firmware - * WaveLAN/IEEE Station Functions," document #010245, which of course - * Lucent will not release without an NDA. - * - * - Lucent has created a library called HCF (Hardware Control Functions) - * though which it wants developers to interact with the card. The HCF - * is needlessly complex, ill conceived and badly documented. Actually, - * the comments in the HCP code itself aren't bad, but the publically - * available manual that comes with it is awful, probably due largely to - * the fact that it has been emasculated in order to hide information - * that Lucent wants to keep proprietary. The purpose of the HCF seems - * to be to insulate the driver programmer from the Hermes itself so that - * Lucent has an excuse not to release programming in for it. - * - * - Lucent only makes available documentation and code for 'HCF Light' - * which is a stripped down version of HCF with certain features not - * implemented, most notably support for 802.11 frames. - * - * - The HCF code which I have seen blows goats. Whoever decided to - * use a 132 column format should be shot. - * - * Rather than actually use the Lucent HCF library, I have stripped all - * the useful information from it and used it to create a driver in the - * usual BSD form. Note: I don't want to hear anybody whining about the - * fact that the Lucent code is GPLed and mine isn't. I did not actually - * put any of Lucent's code in this driver: I only used it as a reference - * to obtain information about the underlying hardware. The Hermes - * programming interface is not GPLed, so bite me. - */ - -/* - * Size of Hermes I/O space. - */ -#define WI_IOSIZ 0x40 - -/* - * Hermes register definitions and what little I know about them. - */ - -/* Hermes command/status registers. */ -#define WI_COMMAND 0x00 -#define WI_PARAM0 0x02 -#define WI_PARAM1 0x04 -#define WI_PARAM2 0x06 -#define WI_STATUS 0x08 -#define WI_RESP0 0x0A -#define WI_RESP1 0x0C -#define WI_RESP2 0x0E - -/* Command register values. */ -#define WI_CMD_BUSY 0x8000 /* busy bit */ -#define WI_CMD_INI 0x0000 /* initialize */ -#define WI_CMD_ENABLE 0x0001 /* enable */ -#define WI_CMD_DISABLE 0x0002 /* disable */ -#define WI_CMD_DIAG 0x0003 -#define WI_CMD_ALLOC_MEM 0x000A /* allocate NIC memory */ -#define WI_CMD_TX 0x000B /* transmit */ -#define WI_CMD_NOTIFY 0x0010 -#define WI_CMD_INQUIRE 0x0011 -#define WI_CMD_ACCESS 0x0021 -#define WI_CMD_PROGRAM 0x0022 - -#define WI_CMD_CODE_MASK 0x003F - -/* - * Reclaim qualifier bit, applicable to the - * TX and INQUIRE commands. - */ -#define WI_RECLAIM 0x0100 /* reclaim NIC memory */ - -/* - * ACCESS command qualifier bits. - */ -#define WI_ACCESS_READ 0x0000 -#define WI_ACCESS_WRITE 0x0100 - -/* - * PROGRAM command qualifier bits. - */ -#define WI_PROGRAM_DISABLE 0x0000 -#define WI_PROGRAM_ENABLE_RAM 0x0100 -#define WI_PROGRAM_ENABLE_NVRAM 0x0200 -#define WI_PROGRAM_NVRAM 0x0300 - -/* Status register values */ -#define WI_STAT_CMD_CODE 0x003F -#define WI_STAT_DIAG_ERR 0x0100 -#define WI_STAT_INQ_ERR 0x0500 -#define WI_STAT_CMD_RESULT 0x7F00 - -/* memory handle management registers */ -#define WI_INFO_FID 0x10 -#define WI_RX_FID 0x20 -#define WI_ALLOC_FID 0x22 -#define WI_TX_CMP_FID 0x24 - -/* - * Buffer Access Path (BAP) registers. - * These are I/O channels. I believe you can use each one for - * any desired purpose independently of the other. In general - * though, we use BAP1 for reading and writing LTV records and - * reading received data frames, and BAP0 for writing transmit - * frames. This is a convention though, not a rule. - */ -#define WI_SEL0 0x18 -#define WI_SEL1 0x1A -#define WI_OFF0 0x1C -#define WI_OFF1 0x1E -#define WI_DATA0 0x36 -#define WI_DATA1 0x38 -#define WI_BAP0 WI_DATA0 -#define WI_BAP1 WI_DATA1 - -#define WI_OFF_BUSY 0x8000 -#define WI_OFF_ERR 0x4000 -#define WI_OFF_DATAOFF 0x0FFF - -/* Event registers */ -#define WI_EVENT_STAT 0x30 /* Event status */ -#define WI_INT_EN 0x32 /* Interrupt enable/disable */ -#define WI_EVENT_ACK 0x34 /* Ack event */ - -/* Events */ -#define WI_EV_TICK 0x8000 /* aux timer tick */ -#define WI_EV_RES 0x4000 /* controller h/w error (time out) */ -#define WI_EV_INFO_DROP 0x2000 /* no RAM to build unsolicited frame */ -#define WI_EV_NO_CARD 0x0800 /* card removed (hunh?) */ -#define WI_EV_DUIF_RX 0x0400 /* wavelan management packet received */ -#define WI_EV_INFO 0x0080 /* async info frame */ -#define WI_EV_CMD 0x0010 /* command completed */ -#define WI_EV_ALLOC 0x0008 /* async alloc/reclaim completed */ -#define WI_EV_TX_EXC 0x0004 /* async xmit completed with failure */ -#define WI_EV_TX 0x0002 /* async xmit completed succesfully */ -#define WI_EV_RX 0x0001 /* async rx completed */ - -#define WI_INTRS \ - (WI_EV_RX|WI_EV_TX|WI_EV_TX_EXC|WI_EV_ALLOC|WI_EV_INFO|WI_EV_INFO_DROP) - -/* Host software registers */ -#define WI_SW0 0x28 -#define WI_SW1 0x2A -#define WI_SW2 0x2C -#define WI_SW3 0x2E - -#define WI_CNTL 0x14 - -#define WI_CNTL_AUX_ENA 0xC000 -#define WI_CNTL_AUX_ENA_STAT 0xC000 -#define WI_CNTL_AUX_DIS_STAT 0x0000 -#define WI_CNTL_AUX_ENA_CNTL 0x8000 -#define WI_CNTL_AUX_DIS_CNTL 0x4000 - -#define WI_AUX_PAGE 0x3A -#define WI_AUX_OFFSET 0x3C -#define WI_AUX_DATA 0x3E - -/* - * One form of communication with the Hermes is with what Lucent calls - * LTV records, where LTV stands for Length, Type and Value. The length - * and type are 16 bits and are in native byte order. The value is in - * multiples of 16 bits and is in little endian byte order. - */ -struct wi_ltv_gen { - u_int16_t wi_len; - u_int16_t wi_type; - u_int16_t wi_val; -}; - -struct wi_ltv_str { - u_int16_t wi_len; - u_int16_t wi_type; - u_int16_t wi_str[17]; -}; - -#define WI_SETVAL(recno, val) \ - do { \ - struct wi_ltv_gen g; \ - \ - g.wi_len = 2; \ - g.wi_type = recno; \ - g.wi_val = val; \ - wi_write_record(sc, &g); \ - } while (0) - -#define WI_SETSTR(recno, str) \ - do { \ - struct wi_ltv_str s; \ - int l; \ - \ - l = (strlen(str) + 1) & ~0x1; \ - bzero((char *)&s, sizeof(s)); \ - s.wi_len = (l / 2) + 2; \ - s.wi_type = recno; \ - s.wi_str[0] = strlen(str); \ - bcopy(str, (char *)&s.wi_str[1], strlen(str)); \ - wi_write_record(sc, (struct wi_ltv_gen *)&s); \ - } while (0) - -/* - * Download buffer location and length (0xFD01). - */ -#define WI_RID_DNLD_BUF 0xFD01 -struct wi_ltv_dnld_buf { - u_int16_t wi_len; - u_int16_t wi_type; - u_int16_t wi_buf_pg; /* page addr of intermediate dl buf*/ - u_int16_t wi_buf_off; /* offset of idb */ - u_int16_t wi_buf_len; /* len of idb */ -}; - -/* - * Mem sizes (0xFD02). - */ -#define WI_RID_MEMSZ 0xFD02 -struct wi_ltv_memsz { - u_int16_t wi_len; - u_int16_t wi_type; - u_int16_t wi_mem_ram; - u_int16_t wi_mem_nvram; -}; - -/* - * List of intended regulatory domains (0xFD11). - */ -#define WI_RID_DOMAINS 0xFD11 -struct wi_ltv_domains { - u_int16_t wi_len; - u_int16_t wi_type; - u_int16_t wi_domains[6]; -}; - -/* - * CIS struct (0xFD13). - */ -#define WI_RID_CIS 0xFD13 -struct wi_ltv_cis { - u_int16_t wi_len; - u_int16_t wi_type; - u_int16_t wi_cis[240]; -}; - -/* - * Communications quality (0xFD43). - */ -#define WI_RID_COMMQUAL 0xFD43 -struct wi_ltv_commqual { - u_int16_t wi_len; - u_int16_t wi_type; - u_int16_t wi_coms_qual; - u_int16_t wi_sig_lvl; - u_int16_t wi_noise_lvl; -}; - -/* - * Actual system scale thresholds (0xFD46). - */ -#define WI_RID_SYSTEM_SCALE 0xFC06 -#define WI_RID_SCALETHRESH 0xFD46 -struct wi_ltv_scalethresh { - u_int16_t wi_len; - u_int16_t wi_type; - u_int16_t wi_energy_detect; - u_int16_t wi_carrier_detect; - u_int16_t wi_defer; - u_int16_t wi_cell_search; - u_int16_t wi_out_of_range; - u_int16_t wi_delta_snr; -}; - -/* - * PCF info struct (0xFD87). - */ -#define WI_RID_PCF 0xFD87 -struct wi_ltv_pcf { - u_int16_t wi_len; - u_int16_t wi_type; - u_int16_t wi_energy_detect; - u_int16_t wi_carrier_detect; - u_int16_t wi_defer; - u_int16_t wi_cell_search; - u_int16_t wi_range; -}; - -/* - * Connection control characteristics. - * 1 == Basic Service Set (BSS) - * 2 == Wireless Distribudion System (WDS) - * 3 == Pseudo IBSS - */ -#define WI_RID_PORTTYPE 0xFC00 -#define WI_PORTTYPE_BSS 0x1 -#define WI_PORTTYPE_WDS 0x2 -#define WI_PORTTYPE_ADHOC 0x3 - -/* - * Mac addresses. - */ -#define WI_RID_MAC_NODE 0xFC01 -#define WI_RID_MAC_WDS 0xFC08 -struct wi_ltv_macaddr { - u_int16_t wi_len; - u_int16_t wi_type; - u_int16_t wi_mac_addr[3]; -}; - -/* - * Station set identification (SSID). - */ -#define WI_RID_DESIRED_SSID 0xFC02 -#define WI_RID_OWN_SSID 0xFC04 -struct wi_ltv_ssid { - u_int16_t wi_len; - u_int16_t wi_type; - u_int16_t wi_id[17]; -}; - -/* - * Set communications channel (radio frequency). - */ -#define WI_RID_OWN_CHNL 0xFC03 - -/* - * Frame data size. - */ -#define WI_RID_MAX_DATALEN 0xFC07 - -/* - * ESS power management enable - */ -#define WI_RID_PM_ENABLED 0xFC09 - -/* - * ESS max PM sleep internal - */ -#define WI_RID_MAX_SLEEP 0xFC0C - -/* - * Set our station name. - */ -#define WI_RID_NODENAME 0xFC0E -struct wi_ltv_nodename { - u_int16_t wi_len; - u_int16_t wi_type; - u_int16_t wi_nodename[17]; -}; - -/* - * Multicast addresses to be put in filter. We're - * allowed up to 16 addresses in the filter. - */ -#define WI_RID_MCAST 0xFC80 -struct wi_ltv_mcast { - u_int16_t wi_len; - u_int16_t wi_type; - struct ether_addr wi_mcast[16]; -}; - -/* - * Create IBSS. - */ -#define WI_RID_CREATE_IBSS 0xFC81 - -#define WI_RID_FRAG_THRESH 0xFC82 -#define WI_RID_RTS_THRESH 0xFC83 - -/* - * TX rate control - * 0 == Fixed 1mbps - * 1 == Fixed 2mbps - * 2 == auto fallback - */ -#define WI_RID_TX_RATE 0xFC84 - -/* - * promiscuous mode. - */ -#define WI_RID_PROMISC 0xFC85 - -/* - * Auxiliary Timer tick interval - */ -#define WI_RID_TICK_TIME 0xFCE0 - -/* - * Information frame types. - */ -#define WI_INFO_NOTIFY 0xF000 /* Handover address */ -#define WI_INFO_COUNTERS 0xF100 /* Statistics counters */ -#define WI_INFO_SCAN_RESULTS 0xF101 /* Scan results */ -#define WI_INFO_LINK_STAT 0xF200 /* Link status */ -#define WI_INFO_ASSOC_STAT 0xF201 /* Association status */ - -/* - * Hermes transmit/receive frame structure - */ -struct wi_frame { - u_int16_t wi_status; /* 0x00 */ - u_int32_t wi_rsvd0; /* 0x02 */ - u_int16_t wi_q_info; /* 0x06 */ - u_int16_t wi_rsvd1; /* 0x08 */ - u_int16_t wi_tx_ctl; /* 0x0C */ - u_int16_t wi_frame_ctl; /* 0x0E */ - u_int16_t wi_id; /* 0x10 */ - u_int8_t wi_addr1[6]; /* 0x12 */ - u_int8_t wi_addr2[6]; /* 0x18 */ - u_int8_t wi_addr3[6]; /* 0x1E */ - u_int16_t wi_seq_ctl; /* 0x24 */ - u_int8_t wi_addr4[6]; /* 0x26 */ - u_int16_t wi_dat_len; /* 0x2C */ - u_int8_t wi_dst_addr[6]; /* 0x2E */ - u_int8_t wi_src_addr[6]; /* 0x34 */ - u_int16_t wi_len; /* 0x3A */ - u_int16_t wi_dat[3]; /* 0x3C */ /* SNAP header */ - u_int16_t wi_type; /* 0x42 */ -}; - -#define WI_802_3_OFFSET 0x2E -#define WI_802_11_OFFSET 0x44 -#define WI_802_11_OFFSET_RAW 0x3C - -#define WI_STAT_BADCRC 0x0001 -#define WI_STAT_UNDECRYPTABLE 0x0002 -#define WI_STAT_ERRSTAT 0x0003 -#define WI_STAT_MAC_PORT 0x0700 -#define WI_STAT_1042 0x2000 /* RFC1042 encoded */ -#define WI_STAT_TUNNEL 0x4000 /* Bridge-tunnel encoded */ -#define WI_STAT_WMP_MSG 0x6000 /* WaveLAN-II management protocol */ -#define WI_RXSTAT_MSG_TYPE 0xE000 - -#define WI_ENC_TX_802_3 0x00 -#define WI_ENC_TX_802_11 0x11 -#define WI_ENC_TX_E_II 0x0E - -#define WI_ENC_TX_1042 0x00 -#define WI_ENC_TX_TUNNEL 0xF8 - -#define WI_TXCNTL_MACPORT 0x00FF -#define WI_TXCNTL_STRUCTTYPE 0xFF00 - -/* - * SNAP (sub-network access protocol) constants for transmission - * of IP datagrams over IEEE 802 networks, taken from RFC1042. - * We need these for the LLC/SNAP header fields in the TX/RX frame - * structure. - */ -#define WI_SNAP_K1 0xaa /* assigned global SAP for SNAP */ -#define WI_SNAP_K2 0x00 -#define WI_SNAP_CONTROL 0x03 /* unnumbered information format */ -#define WI_SNAP_WORD0 (WI_SNAP_K1 | (WI_SNAP_K1 << 8)) -#define WI_SNAP_WORD1 (WI_SNAP_K2 | (WI_SNAP_CONTROL << 8)) -#define WI_SNAPHDR_LEN 0x6 diff --git a/sys/modules/vinum/.gdbinit.crash b/sys/modules/vinum/.gdbinit.crash deleted file mode 100644 index f3e643671cb8..000000000000 --- a/sys/modules/vinum/.gdbinit.crash +++ /dev/null @@ -1,4 +0,0 @@ -source .gdbinit.kernel -source .gdbinit.vinum.paths -source .gdbinit.vinum -asf diff --git a/sys/modules/vinum/.gdbinit.serial b/sys/modules/vinum/.gdbinit.serial deleted file mode 100644 index d302f8aff479..000000000000 --- a/sys/modules/vinum/.gdbinit.serial +++ /dev/null @@ -1,5 +0,0 @@ -source .gdbinit.kernel -source .gdbinit.vinum.paths -source .gdbinit.vinum -tr -asf diff --git a/sys/net/if_iso88025subr.c b/sys/net/if_iso88025subr.c deleted file mode 100644 index 1999a3f0490f..000000000000 --- a/sys/net/if_iso88025subr.c +++ /dev/null @@ -1,410 +0,0 @@ -/* - * Copyright (c) 1998, Larry Lile - * All rights reserved. - * - * For latest sources and information on this driver, please - * go to http://anarchy.stdio.com. - * - * Questions, comments or suggestions should be directed to - * Larry Lile <lile@stdio.com>. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice unmodified, this list of conditions, and the following - * disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id: if_iso88025subr.c,v 1.5 1999/01/09 22:45:58 lile Exp $ - * - */ - -/* - * - * General ISO 802.5 (Token Ring) support routines - * - */ - -#include "opt_inet.h" - -#include <sys/param.h> -#include <sys/systm.h> -#include <sys/kernel.h> -#include <sys/malloc.h> -#include <sys/mbuf.h> -#include <sys/socket.h> -#include <sys/sockio.h> -#include <sys/sysctl.h> - -#include <net/if.h> -#include <net/netisr.h> -#include <net/route.h> -#include <net/if_llc.h> -#include <net/if_dl.h> -#include <net/if_types.h> - -#include <net/if_arp.h> - -#include <net/iso88025.h> - -#ifdef INET -#include <netinet/in.h> -#include <netinet/in_var.h> -#include <netinet/if_ether.h> -#endif - -#if NBPFILTER > 0 -#include <net/bpf.h> -#include <net/bpfdesc.h> -#endif - -#include <machine/clock.h> -#include <machine/md_var.h> - -#include <i386/isa/isa_device.h> - -#include <vm/vm.h> -#include <vm/vm_param.h> -#include <vm/pmap.h> - -#include <sys/kernel.h> -#include <net/iso88025.h> - -void -iso88025_ifattach(ifp) - register struct ifnet *ifp; -{ - register struct ifaddr *ifa = NULL; - register struct sockaddr_dl *sdl; - - ifp->if_type = IFT_ISO88025; - ifp->if_addrlen = 6; - ifp->if_hdrlen=18; - if (ifp->if_baudrate == 0) - ifp->if_baudrate = 16000000; /* 1, 4, or 16Mbit default? */ - if (ifp->if_mtu == 0) - ifp->if_mtu = ISO88025_DEFAULT_MTU; - - ifa = ifnet_addrs[ifp->if_index - 1]; - if (ifa == 0) { - printf("iso88025_ifattach: no lladdr!\n"); - return; - } - sdl = (struct sockaddr_dl *)ifa->ifa_addr; - sdl->sdl_type = IFT_ISO88025; - sdl->sdl_alen = ifp->if_addrlen; - bcopy(((struct arpcom *)ifp)->ac_enaddr, LLADDR(sdl), ifp->if_addrlen); -} - -int -iso88025_ioctl(struct ifnet *ifp, int command, caddr_t data) -{ - struct ifaddr *ifa = (struct ifaddr *) data; - struct ifreq *ifr = (struct ifreq *) data; - int error = 0; - - switch (command) { - case SIOCSIFADDR: - ifp->if_flags |= IFF_UP; - - switch (ifa->ifa_addr->sa_family) { -#ifdef INET - case AF_INET: - ifp->if_init(ifp->if_softc); /* before arpwhohas */ - arp_ifinit((struct arpcom *)ifp, ifa); - break; -#endif - default: - ifp->if_init(ifp->if_softc); - break; - } - break; - - case SIOCGIFADDR: - { - struct sockaddr *sa; - - sa = (struct sockaddr *) & ifr->ifr_data; - bcopy(((struct arpcom *)ifp->if_softc)->ac_enaddr, - (caddr_t) sa->sa_data, ISO88025_ADDR_LEN); - } - break; - - case SIOCSIFMTU: - /* - * Set the interface MTU. - */ - if (ifr->ifr_mtu > ISO88025MTU) { - error = EINVAL; - } else { - ifp->if_mtu = ifr->ifr_mtu; - } - break; - } - return (error); -} - -/* - * ISO88025 encapsulation - */ -int -iso88025_output(ifp, m0, dst, rt0) - register struct ifnet *ifp; - struct mbuf *m0; - struct sockaddr *dst; - struct rtentry *rt0; -{ - register struct iso88025_header *th; - struct iso88025_header gen_th; - register struct iso88025_sockaddr_data *sd = (struct iso88025_sockaddr_data *)dst->sa_data; - register struct llc *l; - register struct sockaddr_dl *sdl = NULL; - int s, error = 0, rif_len = 0; - u_char edst[6]; - register struct mbuf *m = m0; - register struct rtentry *rt; - int len = m->m_pkthdr.len, loop_copy = 0; - struct arpcom *ac = (struct arpcom *)ifp; - - if ((ifp->if_flags & (IFF_UP|IFF_RUNNING)) != (IFF_UP|IFF_RUNNING)) - senderr(ENETDOWN); - rt = rt0; - if (rt) { - if ((rt->rt_flags & RTF_UP) == 0) { - rt0 = rt = rtalloc1(dst, 1, 0UL); - if (rt0) - rt->rt_refcnt--; - else - senderr(EHOSTUNREACH); - } - if (rt->rt_flags & RTF_GATEWAY) { - if (rt->rt_gwroute == 0) - goto lookup; - if (((rt = rt->rt_gwroute)->rt_flags & RTF_UP) == 0) { - rtfree(rt); rt = rt0; - lookup: rt->rt_gwroute = rtalloc1(rt->rt_gateway, 1, - 0UL); - if ((rt = rt->rt_gwroute) == 0) - senderr(EHOSTUNREACH); - } - } - if (rt->rt_flags & RTF_REJECT) - if (rt->rt_rmx.rmx_expire == 0 || - time_second < rt->rt_rmx.rmx_expire) - senderr(rt == rt0 ? EHOSTDOWN : EHOSTUNREACH); - } - - /* Calculate routing info length based on arp table entry */ - if (rt && (sdl = (struct sockaddr_dl *)rt->rt_gateway)) - if (sdl->sdl_rcf != NULL) - rif_len = (ntohs(sdl->sdl_rcf) & 0x1f00) >> 8; - - /* Generate a generic 802.5 header for the packet */ - gen_th.ac = 0x10; - gen_th.fc = 0x40; - memcpy(gen_th.iso88025_shost, ac->ac_enaddr, sizeof(ac->ac_enaddr)); - if (rif_len) { - gen_th.iso88025_shost[0] |= 0x80; - if (rif_len > 2) { - gen_th.rcf = sdl->sdl_rcf; - memcpy(gen_th.rseg, sdl->sdl_route, rif_len - 2); - } - } - - - switch (dst->sa_family) { -#ifdef INET - case AF_INET: - if (!arpresolve(ac, rt, m, dst, edst, rt0)) - return (0); /* if not yet resolved */ - /* Add LLC and SNAP headers */ - M_PREPEND(m, 8, M_DONTWAIT) - if (m == 0) - senderr(ENOBUFS); - l = mtod(m, struct llc *); - l->llc_un.type_snap.ether_type = htons(ETHERTYPE_IP); - l->llc_dsap = 0xaa; - l->llc_ssap = 0xaa; - l->llc_un.type_snap.control = 0x3; - l->llc_un.type_snap.org_code[0] = 0x0; - l->llc_un.type_snap.org_code[1] = 0x0; - l->llc_un.type_snap.org_code[2] = 0x0; - memcpy(gen_th.iso88025_dhost, edst, sizeof(edst)); - break; -#endif - - case AF_UNSPEC: - /* - * For AF_UNSPEC sockaddr.sa_data must contain all of the - * mac information needed to send the packet. This allows - * full mac, llc, and source routing function to be controlled. - * llc and source routing information must already be in the - * mbuf provided, ac/fc are set in sa_data. sockaddr.sa_data - * should be a iso88025_sockaddr_data structure see iso88025.h - */ - loop_copy = -1; - sd = (struct iso88025_sockaddr_data *)dst->sa_data; - gen_th.ac = sd->ac; - gen_th.fc = sd->fc; - memcpy(gen_th.iso88025_dhost, sd->ether_dhost, sizeof(sd->ether_dhost)); - memcpy(gen_th.iso88025_shost, sd->ether_shost, sizeof(sd->ether_shost)); - rif_len = 0; - break; - - default: - printf("%s%d: can't handle af%d\n", ifp->if_name, ifp->if_unit, - dst->sa_family); - senderr(EAFNOSUPPORT); - } - - /* - * Add local net header. If no space in first mbuf, - * allocate another. - */ - - M_PREPEND(m, ISO88025_HDR_LEN + rif_len, M_DONTWAIT); - if (m == 0) - senderr(ENOBUFS); - - /* Copy as much of the generic header as is needed into the mbuf */ - th = mtod(m, struct iso88025_header *); - memcpy(th, &gen_th, ISO88025_HDR_LEN + rif_len); - - /* - * If a simplex interface, and the packet is being sent to our - * Ethernet address or a broadcast address, loopback a copy. - * XXX To make a simplex device behave exactly like a duplex - * device, we should copy in the case of sending to our own - * ethernet address (thus letting the original actually appear - * on the wire). However, we don't do that here for security - * reasons and compatibility with the original behavior. - */ - if ((ifp->if_flags & IFF_SIMPLEX) && - (loop_copy != -1)) { - if ((m->m_flags & M_BCAST) || (loop_copy > 0)) { - struct mbuf *n = m_copy(m, 0, (int)M_COPYALL); - /*printf("iso88025_output: if_simloop broadcast.\n");*/ - (void) if_simloop(ifp, n, dst, ISO88025_HDR_LEN); - } else if (bcmp(th->iso88025_dhost, - th->iso88025_shost, ETHER_ADDR_LEN) == 0) { - /*printf("iso88025_output: if_simloop to ourselves.\n");*/ - (void) if_simloop(ifp, m, dst, ISO88025_HDR_LEN); - return(0); /* XXX */ - } - } - - s = splimp(); - /* - * Queue message on interface, and start output if interface - * not yet active. - */ - if (IF_QFULL(&ifp->if_snd)) { - printf("iso88025_output: packet dropped QFULL.\n"); - IF_DROP(&ifp->if_snd); - splx(s); - senderr(ENOBUFS); - } - IF_ENQUEUE(&ifp->if_snd, m); - /*printf("iso88025_output: packet queued.\n");*/ - if ((ifp->if_flags & IFF_OACTIVE) == 0) - (*ifp->if_start)(ifp); - splx(s); - ifp->if_obytes += len + ISO88025_HDR_LEN + 8; - if (m->m_flags & M_MCAST) - ifp->if_omcasts++; - return (error); - -bad: - if (m) - m_freem(m); - /*printf("iso88025_output: something went wrong, bailing to bad.\n");*/ - return (error); -} - -/* - * ISO 88025 de-encapsulation - */ -void -iso88025_input(ifp, th, m) - struct ifnet *ifp; - register struct iso88025_header *th; - struct mbuf *m; -{ - register struct ifqueue *inq; - u_short ether_type; - int s; - register struct llc *l = mtod(m, struct llc *); - - /*printf("iso88025_input: entered.\n");*/ - - /*m->m_pkthdr.len = m->m_len = m->m_len - 8;*/ /* Length of LLC header in our case */ - m->m_pkthdr.len -= 8; - m->m_len -= 8; - m->m_data += 8; /* Length of LLC header in our case */ - - if ((ifp->if_flags & IFF_UP) == 0) { - m_freem(m); - return; - } - ifp->if_ibytes += m->m_pkthdr.len + sizeof (*th); - if (th->iso88025_dhost[0] & 1) { - if (bcmp((caddr_t)etherbroadcastaddr, (caddr_t)th->iso88025_dhost, - sizeof(etherbroadcastaddr)) == 0) - m->m_flags |= M_BCAST; - else - m->m_flags |= M_MCAST; - } - if (m->m_flags & (M_BCAST|M_MCAST)) - ifp->if_imcasts++; - - ether_type = ntohs(l->llc_un.type_snap.ether_type); - - /*printf("iso88025_input: source %6D dest %6D ethertype %x\n", th->iso88025_shost, ":", th->iso88025_dhost, ":", ether_type);*/ - - switch (ether_type) { -#ifdef INET - case ETHERTYPE_IP: - /*printf("iso88025_input: IP Packet\n");*/ - th->iso88025_shost[0] &= ~(0x80); /* Turn off source route bit XXX */ - if (ipflow_fastforward(m)) - return; - schednetisr(NETISR_IP); - inq = &ipintrq; - break; - - case ETHERTYPE_ARP: - /*printf("iso88025_input: ARP Packet\n");*/ - schednetisr(NETISR_ARP); - inq = &arpintrq; - break; -#endif - default: - m_freem(m); - return; - } - - s = splimp(); - if (IF_QFULL(inq)) { - IF_DROP(inq); - m_freem(m); - printf("iso88025_input: Packet dropped (Queue full).\n"); - } else - IF_ENQUEUE(inq, m); - /*printf("iso88025_input: Packet queued.\n");*/ - splx(s); -} diff --git a/sys/net/iso88025.h b/sys/net/iso88025.h deleted file mode 100644 index 70ecdc0c016f..000000000000 --- a/sys/net/iso88025.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (c) 1998, Larry Lile - * All rights reserved. - * - * For latest sources and information on this driver, please - * go to http://anarchy.stdio.com. - * - * Questions, comments or suggestions should be directed to - * Larry Lile <lile@stdio.com>. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice unmodified, this list of conditions, and the following - * disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id: iso88025.h,v 1.10 1999/01/09 19:01:58 lile Exp $ - * - * Information gathered from tokenring@freebsd, /sys/net/ethernet.h and - * the Mach token ring driver. - */ - -/* - * Fundamental constants relating to iso 802.5 - */ - -#ifndef _NET_ISO88025_H_ -#define _NET_ISO88025_H_ - -/* - * The number of bytes in an iso 802.5 (MAC) address. - */ -#define ISO88025_ADDR_LEN 6 - -/* - */ -#define ISO88025_HDR_LEN (ISO88025_CF_LEN + ISO88025_ADDR_LEN*2) -#define ISO88025_CF_LEN 2 -#define RCF_LEN 2 -#define RIF_LEN 16 - - -/* - * The minimum packet length. - */ -#define ISO88025_MIN_LEN 0 /* This offends my morality */ - -/* - * The maximum packet length. - */ -#define ISO88025_MAX_LEN 17960 - -/* - * A macro to validate a length with - */ -#define ISO88025_IS_VALID_LEN(foo) \ - ((foo) >= ISO88025_MIN_LEN && (foo) <= ISO88025_MAX_LEN) - -/* - * ISO 802.5 physical header - */ -struct iso88025_header { - u_char ac; /* access control field */ - u_char fc; /* frame control field */ - u_char iso88025_dhost[ISO88025_ADDR_LEN]; /* destination address */ - u_char iso88025_shost[ISO88025_ADDR_LEN]; /* source address */ - u_short rcf; /* route control field */ - u_short rseg[RIF_LEN]; /* routing registers */ -}; - -struct iso88025_sockaddr_data { - u_char ether_dhost[ISO88025_ADDR_LEN]; - u_char ether_shost[ISO88025_ADDR_LEN]; - u_char ac; - u_char fc; -}; - -/* - * Structure of a 48-bit iso 802.5 address. - * ( We could also add the 16 bit addresses as a union) - */ -struct iso88025_addr { - u_char octet[ISO88025_ADDR_LEN]; -}; - -#define ISO88025MTU 18000 -#define ISO88025_DEFAULT_MTU 1500 -#define senderr(e) { error = (e); goto bad;} - -void iso88025_ifattach __P((struct ifnet *)); -int iso88025_ioctl __P((struct ifnet *, int , caddr_t )); -int iso88025_output __P((struct ifnet *, struct mbuf *, struct sockaddr *, struct rtentry *)); -void iso88025_input __P((struct ifnet *, struct iso88025_header *, struct mbuf *)); - - -#endif diff --git a/sys/pci/ahc_pci.c b/sys/pci/ahc_pci.c index eb892a053703..aa7d168cc462 100644 --- a/sys/pci/ahc_pci.c +++ b/sys/pci/ahc_pci.c @@ -34,7 +34,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: ahc_pci.c,v 1.5.2.2 1999/03/07 00:42:43 gibbs Exp $ + * $Id: ahc_pci.c,v 1.5.2.4 1999/05/16 00:07:45 gibbs Exp $ */ #include <pci.h> @@ -42,7 +42,6 @@ #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> -#include <sys/queue.h> #include <pci/pcireg.h> #include <pci/pcivar.h> @@ -64,33 +63,369 @@ #include <aic7xxx_reg.h> -#define PCI_BASEADR0 PCI_MAP_REG_START /* I/O Address */ -#define PCI_BASEADR1 PCI_MAP_REG_START + 4 /* Mem I/O Address */ +#define AHC_PCI_IOADDR PCIR_MAPS /* I/O Address */ +#define AHC_PCI_MEMADDR (PCIR_MAPS + 4) /* Mem I/O Address */ -#define PCI_DEVICE_ID_ADAPTEC_398XU 0x83789004ul -#define PCI_DEVICE_ID_ADAPTEC_3940U 0x82789004ul -#define PCI_DEVICE_ID_ADAPTEC_3950U2 0x00509005ul -#define PCI_DEVICE_ID_ADAPTEC_2944U 0x84789004ul -#define PCI_DEVICE_ID_ADAPTEC_2940U 0x81789004ul -#define PCI_DEVICE_ID_ADAPTEC_2940AU 0x61789004ul -#define PCI_DEVICE_ID_ADAPTEC_2940U2 0x00109005ul -#define PCI_DEVICE_ID_ADAPTEC_2930U2 0x00119005ul -#define PCI_DEVICE_ID_ADAPTEC_398X 0x73789004ul -#define PCI_DEVICE_ID_ADAPTEC_3940 0x72789004ul -#define PCI_DEVICE_ID_ADAPTEC_2944 0x74789004ul -#define PCI_DEVICE_ID_ADAPTEC_2940 0x71789004ul -#define PCI_DEVICE_ID_ADAPTEC_AIC7890 0x001F9005ul -#define PCI_DEVICE_ID_ADAPTEC_AIC7895C 0x78939004ul /* RAID Port */ -#define PCI_DEVICE_ID_ADAPTEC_AIC7895 0x78959004ul -#define PCI_DEVICE_ID_ADAPTEC_AIC7896 0x005F9005ul -#define PCI_DEVICE_ID_ADAPTEC_AIC7880 0x80789004ul -#define PCI_DEVICE_ID_ADAPTEC_AIC7870 0x70789004ul -#define PCI_DEVICE_ID_ADAPTEC_AIC7860 0x60789004ul -#define PCI_DEVICE_ID_ADAPTEC_AIC7855 0x55789004ul -#define PCI_DEVICE_ID_ADAPTEC_AIC7850 0x50789004ul -#define PCI_DEVICE_ID_ADAPTEC_AIC7810 0x10789004ul -#define PCI_DEVICE_ID_ADAPTEC_AIC7815 0x15789004ul +static __inline u_int64_t +ahc_compose_id(u_int device, u_int vendor, u_int subdevice, u_int subvendor) +{ + u_int64_t id; + + id = subvendor + | (subdevice << 16) + | ((u_int64_t)vendor << 32) + | ((u_int64_t)device << 48); + + return (id); +} + +#define ID_ALL_MASK 0xFFFFFFFFFFFFFFFFull +#define ID_DEV_VENDOR_MASK 0xFFFFFFFF00000000ull +#define ID_AIC7850 0x5078900400000000ull +#define ID_AHA_2910_15_20_30C 0x5078900478509004ull +#define ID_AIC7855 0x5578900400000000ull +#define ID_AIC7860 0x6078900400000000ull +#define ID_AIC7860C 0x6078900478609004ull +#define ID_AHA_2940AU_0 0x6178900400000000ull +#define ID_AHA_2940AU_1 0x6178900478619004ull +#define ID_AHA_2930C_VAR 0x6038900438689004ull + +#define ID_AIC7870 0x7078900400000000ull +#define ID_AHA_2940 0x7178900400000000ull +#define ID_AHA_3940 0x7278900400000000ull +#define ID_AHA_398X 0x7378900400000000ull +#define ID_AHA_2944 0x7478900400000000ull +#define ID_AHA_3944 0x7578900400000000ull + +#define ID_AIC7880 0x8078900400000000ull +#define ID_AIC7880_B 0x8078900478809004ull +#define ID_AHA_2940AU_CN 0x2178900478219004ull +#define ID_AHA_2940U 0x8178900400000000ull +#define ID_AHA_3940U 0x8278900400000000ull +#define ID_AHA_2944U 0x8478900400000000ull +#define ID_AHA_3944U 0x8578900400000000ull +#define ID_AHA_398XU 0x8378900400000000ull +#define ID_AHA_4944U 0x8678900400000000ull +#define ID_AHA_2940UB 0x8178900478819004ull +#define ID_AHA_2930U 0x8878900478889004ull +#define ID_AHA_2940U_PRO 0x8778900478879004ull +#define ID_AHA_2940U_CN 0x0078900478009004ull + +#define ID_AIC7895 0x7895900478959004ull +#define ID_AIC7895_RAID_PORT 0x7893900478939004ull +#define ID_AHA_2940U_DUAL 0x7895900478919004ull +#define ID_AHA_3940AU 0x7895900478929004ull +#define ID_AHA_3944AU 0x7895900478949004ull + +#define ID_AIC7890 0x001F9005000F9005ull +#define ID_AHA_2930U2 0x0011900501819005ull +#define ID_AHA_2940U2B 0x00109005A1009005ull +#define ID_AHA_2940U2_OEM 0x0010900521809005ull +#define ID_AHA_2940U2 0x00109005A1809005ull +#define ID_AHA_2950U2B 0x00109005E1009005ull + +#define ID_AIC7896 0x005F9005FFFF9005ull +#define ID_AHA_3950U2B_0 0x00509005FFFF9005ull +#define ID_AHA_3950U2B_1 0x00509005F5009005ull +#define ID_AHA_3950U2D_0 0x00519005FFFF9005ull +#define ID_AHA_3950U2D_1 0x00519005B5009005ull + +#define ID_AIC7810 0x1078900400000000ull +#define ID_AIC7815 0x1578900400000000ull + +typedef int (ahc_device_setup_t)(pcici_t, char *, ahc_chip *, + ahc_feature *, ahc_flag *); + +static ahc_device_setup_t ahc_aic7850_setup; +static ahc_device_setup_t ahc_aic7860_setup; +static ahc_device_setup_t ahc_aic7870_setup; +static ahc_device_setup_t ahc_aha394X_setup; +static ahc_device_setup_t ahc_aha398X_setup; +static ahc_device_setup_t ahc_aic7880_setup; +static ahc_device_setup_t ahc_aha394XU_setup; +static ahc_device_setup_t ahc_aha398XU_setup; +static ahc_device_setup_t ahc_aic7890_setup; +static ahc_device_setup_t ahc_aic7895_setup; +static ahc_device_setup_t ahc_aic7896_setup; +static ahc_device_setup_t ahc_raid_setup; +static ahc_device_setup_t ahc_aha394XX_setup; +static ahc_device_setup_t ahc_aha398XX_setup; + +struct ahc_pci_identity { + u_int64_t full_id; + u_int64_t id_mask; + char *name; + ahc_device_setup_t *setup; +}; +struct ahc_pci_identity ahc_pci_ident_table [] = +{ + /* aic7850 based controllers */ + { + ID_AHA_2910_15_20_30C, + ID_ALL_MASK, + "Adaptec 2910/15/20/30C SCSI adapter", + ahc_aic7850_setup + }, + /* aic7860 based controllers */ + { + ID_AHA_2940AU_0 & ID_DEV_VENDOR_MASK, + ID_DEV_VENDOR_MASK, + "Adaptec 2940A Ultra SCSI adapter", + ahc_aic7860_setup + }, + { + ID_AHA_2930C_VAR, + ID_ALL_MASK, + "Adaptec 2930C SCSI adapter (VAR)", + ahc_aic7860_setup + }, + /* aic7870 based controllers */ + { + ID_AHA_2940, + ID_ALL_MASK, + "Adaptec 2940 SCSI adapter", + ahc_aic7870_setup + }, + { + ID_AHA_3940, + ID_ALL_MASK, + "Adaptec 3940 SCSI adapter", + ahc_aha394X_setup + }, + { + ID_AHA_398X, + ID_ALL_MASK, + "Adaptec 398X SCSI RAID adapter", + ahc_aha398X_setup + }, + { + ID_AHA_2944, + ID_ALL_MASK, + "Adaptec 2944 SCSI adapter", + ahc_aic7870_setup + }, + { + ID_AHA_3944, + ID_ALL_MASK, + "Adaptec 3944 SCSI adapter", + ahc_aha394X_setup + }, + /* aic7880 based controllers */ + { + ID_AHA_2940AU_CN, + ID_ALL_MASK, + "Adaptec 2940A/CN Ultra SCSI adapter", + ahc_aic7880_setup + }, + { + ID_AHA_2940U, + ID_ALL_MASK, + "Adaptec 2940 Ultra SCSI adapter", + ahc_aic7880_setup + }, + { + ID_AHA_3940U, + ID_ALL_MASK, + "Adaptec 3940 Ultra SCSI adapter", + ahc_aha394XU_setup + }, + { + ID_AHA_2944U, + ID_ALL_MASK, + "Adaptec 2944 Ultra SCSI adapter", + ahc_aic7880_setup + }, + { + ID_AHA_3944U, + ID_ALL_MASK, + "Adaptec 3944 Ultra SCSI adapter", + ahc_aha394XU_setup + }, + { + ID_AHA_398XU, + ID_ALL_MASK, + "Adaptec 398X Ultra SCSI RAID adapter", + ahc_aha398XU_setup + }, + { + /* XXX Don't know the slot numbers so can't identify channels */ + ID_AHA_4944U, + ID_ALL_MASK, + "Adaptec 4944 Ultra SCSI adapter", + ahc_aic7880_setup + }, + { + ID_AHA_2940UB, + ID_ALL_MASK, + "Adaptec 2940B Ultra SCSI adapter", + ahc_aic7880_setup + }, + { + ID_AHA_2930U, + ID_ALL_MASK, + "Adaptec 2930 Ultra SCSI adapter", + ahc_aic7880_setup + }, + { + ID_AHA_2940U_PRO, + ID_ALL_MASK, + "Adaptec 2940 Pro Ultra SCSI adapter", + ahc_aic7880_setup + }, + { + ID_AHA_2940U_CN, + ID_ALL_MASK, + "Adaptec 2940/CN Ultra SCSI adapter", + ahc_aic7880_setup + }, + /* aic7890 based controllers */ + { + ID_AHA_2930U2, + ID_ALL_MASK, + "Adaptec 2930 Ultra2 SCSI adapter", + ahc_aic7890_setup + }, + { + ID_AHA_2940U2B, + ID_ALL_MASK, + "Adaptec 2940B Ultra2 SCSI adapter", + ahc_aic7890_setup + }, + { + ID_AHA_2940U2_OEM, + ID_ALL_MASK, + "Adaptec 2940 Ultra2 SCSI adapter (OEM)", + ahc_aic7890_setup + }, + { + ID_AHA_2940U2, + ID_ALL_MASK, + "Adaptec 2940 Ultra2 SCSI adapter", + ahc_aic7890_setup + }, + { + ID_AHA_2950U2B, + ID_ALL_MASK, + "Adaptec 2950 Ultra2 SCSI adapter", + ahc_aic7890_setup + }, + /* aic7895 based controllers */ + { + ID_AHA_2940U_DUAL, + ID_ALL_MASK, + "Adaptec 2940/DUAL Ultra SCSI adapter", + ahc_aic7895_setup + }, + { + ID_AHA_3940AU, + ID_ALL_MASK, + "Adaptec 3940A Ultra SCSI adapter", + ahc_aic7895_setup + }, + { + ID_AHA_3944AU, + ID_ALL_MASK, + "Adaptec 3944A Ultra SCSI adapter", + ahc_aic7895_setup + }, + /* aic7896/97 based controllers */ + { + ID_AHA_3950U2B_0, + ID_ALL_MASK, + "Adaptec 3950B Ultra2 SCSI adapter", + ahc_aic7896_setup + }, + { + ID_AHA_3950U2B_1, + ID_ALL_MASK, + "Adaptec 3950B Ultra2 SCSI adapter", + ahc_aic7896_setup + }, + { + ID_AHA_3950U2D_0, + ID_ALL_MASK, + "Adaptec 3950D Ultra2 SCSI adapter", + ahc_aic7896_setup + }, + { + ID_AHA_3950U2D_1, + ID_ALL_MASK, + "Adaptec 3950D Ultra2 SCSI adapter", + ahc_aic7896_setup + }, + /* Generic chip probes for devices we don't know 'exactly' */ + { + ID_AIC7850 & ID_DEV_VENDOR_MASK, + ID_DEV_VENDOR_MASK, + "Adaptec aic7850 SCSI adapter", + ahc_aic7850_setup + }, + { + ID_AIC7855 & ID_DEV_VENDOR_MASK, + ID_DEV_VENDOR_MASK, + "Adaptec aic7855 SCSI adapter", + ahc_aic7850_setup + }, + { + ID_AIC7860 & ID_DEV_VENDOR_MASK, + ID_DEV_VENDOR_MASK, + "Adaptec aic7860 SCSI adapter", + ahc_aic7860_setup + }, + { + ID_AIC7870 & ID_DEV_VENDOR_MASK, + ID_DEV_VENDOR_MASK, + "Adaptec aic7870 SCSI adapter", + ahc_aic7870_setup + }, + { + ID_AIC7880 & ID_DEV_VENDOR_MASK, + ID_DEV_VENDOR_MASK, + "Adaptec aic7880 Ultra SCSI adapter", + ahc_aic7880_setup + }, + { + ID_AIC7890 & ID_DEV_VENDOR_MASK, + ID_DEV_VENDOR_MASK, + "Adaptec aic7890/91 Ultra2 SCSI adapter", + ahc_aic7890_setup + }, + { + ID_AIC7895 & ID_DEV_VENDOR_MASK, + ID_DEV_VENDOR_MASK, + "Adaptec aic7895 Ultra SCSI adapter", + ahc_aic7895_setup + }, + { + ID_AIC7895_RAID_PORT & ID_DEV_VENDOR_MASK, + ID_DEV_VENDOR_MASK, + "Adaptec aic7895 Ultra SCSI adapter (RAID PORT)", + ahc_aic7895_setup + }, + { + ID_AIC7896 & ID_DEV_VENDOR_MASK, + ID_DEV_VENDOR_MASK, + "Adaptec aic7896/97 Ultra2 SCSI adapter", + ahc_aic7896_setup + }, + { + ID_AIC7810 & ID_DEV_VENDOR_MASK, + ID_DEV_VENDOR_MASK, + "Adaptec aic7810 RAID memory controller", + ahc_raid_setup + }, + { + ID_AIC7815 & ID_DEV_VENDOR_MASK, + ID_DEV_VENDOR_MASK, + "Adaptec aic7815 RAID memory controller", + ahc_raid_setup + } +}; + +static const int ahc_num_pci_devs = + sizeof(ahc_pci_ident_table) / sizeof(*ahc_pci_ident_table); + #define AHC_394X_SLOT_CHANNEL_A 4 #define AHC_394X_SLOT_CHANNEL_B 5 @@ -116,6 +451,7 @@ #define CACHESIZE 0x0000003ful /* only 5 bits */ #define LATTIME 0x0000ff00ul +static struct ahc_pci_identity *ahc_find_pci_device(pcici_t tag); static void check_extport(struct ahc_softc *ahc, u_int *sxfrctl1); static void configure_termination(struct ahc_softc *ahc, struct seeprom_config *sc, @@ -149,246 +485,100 @@ static void ahc_pci_attach(pcici_t config_id, int unit); /* Exported for use in the ahc_intr routine */ void ahc_pci_intr(struct ahc_softc *ahc); -static struct pci_device ahc_pci_driver = { +static struct pci_device ahc_pci_driver = { "ahc", - ahc_pci_probe, - ahc_pci_attach, - &ahc_unit, + ahc_pci_probe, + ahc_pci_attach, + &ahc_unit, NULL -}; +}; DATA_SET (pcidevice_set, ahc_pci_driver); -static const char* -ahc_pci_probe (pcici_t tag, pcidi_t type) +static struct ahc_pci_identity * +ahc_find_pci_device(pcici_t tag) { - switch (type) { - case PCI_DEVICE_ID_ADAPTEC_398XU: - return ("Adaptec 398X Ultra SCSI RAID adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_3940U: - return ("Adaptec 3940 Ultra SCSI host adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_398X: - return ("Adaptec 398X SCSI RAID adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_3940: - return ("Adaptec 3940 SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_3950U2: - return ("Adaptec 3950 Ultra2 SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_2930U2: - return ("Adaptec 2930 Ultra2 SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_2944U: - return ("Adaptec 2944 Ultra SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_2940U: - return ("Adaptec 2940 Ultra SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_2940U2: - return ("Adaptec 2940 Ultra2 SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_2944: - return ("Adaptec 2944 SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_2940: - return ("Adaptec 2940 SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_2940AU: - return ("Adaptec 2940A Ultra SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_AIC7895: - return ("Adaptec aic7895 Ultra SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_AIC7895C: - return ("Adaptec aic7895 `Raid Port' Ultra SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_AIC7890: - return ("Adaptec aic7890/91 Ultra2 SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_AIC7896: - return ("Adaptec aic7896/97 Ultra2 SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_AIC7880: - return ("Adaptec aic7880 Ultra SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_AIC7870: - return ("Adaptec aic7870 SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_AIC7860: - return ("Adaptec aic7860 SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_AIC7855: - return ("Adaptec aic7855 SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_AIC7850: - return ("Adaptec aic7850 SCSI adapter"); - break; - case PCI_DEVICE_ID_ADAPTEC_AIC7810: - return ("Adaptec aic7810 RAID memory controller"); - break; - case PCI_DEVICE_ID_ADAPTEC_AIC7815: - return ("Adaptec aic7815 RAID memory controller"); - break; - default: - break; + u_int64_t full_id; + struct ahc_pci_identity *entry; + u_int deviceid; + u_int vendorid; + u_int subdeviceid; + u_int subvendorid; + u_int i; + + deviceid = pci_cfgread(tag, PCIR_DEVICE, /*bytes*/2); + vendorid = pci_cfgread(tag, PCIR_VENDOR, /*bytes*/2); + subdeviceid = pci_cfgread(tag, PCIR_SUBDEV_0, /*bytes*/2); + subvendorid = pci_cfgread(tag, PCIR_SUBVEND_0, /*bytes*/2); + full_id = ahc_compose_id(deviceid, + vendorid, + subdeviceid, + subvendorid); + + for (i = 0; i < ahc_num_pci_devs; i++) { + entry = &ahc_pci_ident_table[i]; + if (entry->full_id == (full_id & entry->id_mask)) + return (entry); } - return (0); + return (NULL); +} + +static const char* +ahc_pci_probe(pcici_t tag, pcidi_t type) +{ + struct ahc_pci_identity *entry; + entry = ahc_find_pci_device(tag); + if (entry != NULL) + return (entry->name); + return (NULL); } static void ahc_pci_attach(pcici_t config_id, int unit) { - pci_port_t io_port; - struct ahc_softc *ahc; - u_int32_t id; - u_int32_t command; - struct scb_data *shared_scb_data; - int opri; - ahc_chip ahc_t = AHC_NONE; - ahc_feature ahc_fe = AHC_FENONE; - ahc_flag ahc_f = AHC_FNONE; - vm_offset_t vaddr; - vm_offset_t paddr; - u_int our_id = 0; - u_int sxfrctl1; - u_int scsiseq; - int error; - char channel; + pci_port_t io_port; + bus_dma_tag_t parent_dmat; + struct ahc_softc *ahc; + struct ahc_pci_identity *entry; + vm_offset_t vaddr; +#ifdef AHC_ALLOW_MEMIO + vm_offset_t paddr; +#endif + u_int command; + struct scb_data *shared_scb_data; + ahc_chip ahc_t = AHC_NONE; + ahc_feature ahc_fe = AHC_FENONE; + ahc_flag ahc_f = AHC_FNONE; + u_int our_id = 0; + u_int sxfrctl1; + u_int scsiseq; + int error; + int opri; + char channel; - if (config_id->func == 1) - channel = 'B'; - else - channel = 'A'; shared_scb_data = NULL; + command = pci_cfgread(config_id, PCIR_COMMAND, /*bytes*/1); + entry = ahc_find_pci_device(config_id); + if (entry == NULL) + return; + + error = entry->setup(config_id, &channel, &ahc_t, &ahc_fe, &ahc_f); + if (error != 0) + return; + vaddr = NULL; - paddr = NULL; - io_port = 0; - command = pci_conf_read(config_id, PCI_COMMAND_STATUS_REG); #ifdef AHC_ALLOW_MEMIO if ((command & PCI_COMMAND_MEM_ENABLE) == 0 - || (pci_map_mem(config_id, PCI_BASEADR1, &vaddr, &paddr)) == 0) + || (pci_map_mem(config_id, AHC_PCI_MEMADDR, &vaddr, &paddr)) == 0) #endif if ((command & PCI_COMMAND_IO_ENABLE) == 0 - || (pci_map_port(config_id, PCI_BASEADR0, &io_port)) == 0) + || (pci_map_port(config_id, AHC_PCI_IOADDR, &io_port)) == 0) return; - switch ((id = pci_conf_read(config_id, PCI_ID_REG))) { - case PCI_DEVICE_ID_ADAPTEC_398XU: - case PCI_DEVICE_ID_ADAPTEC_398X: - if (id == PCI_DEVICE_ID_ADAPTEC_398XU) { - ahc_t = AHC_AIC7880; - ahc_fe = AHC_AIC7880_FE; - } else { - ahc_t = AHC_AIC7870; - ahc_fe = AHC_AIC7870_FE; - } - - switch (config_id->slot) { - case AHC_398X_SLOT_CHANNEL_A: - break; - case AHC_398X_SLOT_CHANNEL_B: - channel = 'B'; - break; - case AHC_398X_SLOT_CHANNEL_C: - channel = 'C'; - break; - default: - printf("adapter at unexpected slot %d\n" - "unable to map to a channel\n", - config_id->slot); - } - ahc_f |= AHC_LARGE_SEEPROM; - break; - case PCI_DEVICE_ID_ADAPTEC_3940U: - case PCI_DEVICE_ID_ADAPTEC_3940: - if (id == PCI_DEVICE_ID_ADAPTEC_3940U) { - ahc_t = AHC_AIC7880; - ahc_fe = AHC_AIC7880_FE; - } else { - ahc_t = AHC_AIC7870; - ahc_fe = AHC_AIC7870_FE; - } - - switch (config_id->slot) { - case AHC_394X_SLOT_CHANNEL_A: - break; - case AHC_394X_SLOT_CHANNEL_B: - channel = 'B'; - break; - default: - printf("adapter at unexpected slot %d\n" - "unable to map to a channel\n", - config_id->slot); - } - break; - case PCI_DEVICE_ID_ADAPTEC_AIC7890: - case PCI_DEVICE_ID_ADAPTEC_2940U2: - case PCI_DEVICE_ID_ADAPTEC_2930U2: - { - ahc_t = AHC_AIC7890; - ahc_fe = AHC_AIC7890_FE; - break; - } - case PCI_DEVICE_ID_ADAPTEC_AIC7896: - case PCI_DEVICE_ID_ADAPTEC_3950U2: - { - ahc_t = AHC_AIC7896; - ahc_fe = AHC_AIC7896_FE; - break; - } - case PCI_DEVICE_ID_ADAPTEC_2944U: - case PCI_DEVICE_ID_ADAPTEC_2940U: - case PCI_DEVICE_ID_ADAPTEC_AIC7880: - ahc_t = AHC_AIC7880; - ahc_fe = AHC_AIC7880_FE; - break; - case PCI_DEVICE_ID_ADAPTEC_2944: - case PCI_DEVICE_ID_ADAPTEC_2940: - case PCI_DEVICE_ID_ADAPTEC_AIC7870: - ahc_t = AHC_AIC7870; - ahc_fe = AHC_AIC7870_FE; - break; - case PCI_DEVICE_ID_ADAPTEC_2940AU: - case PCI_DEVICE_ID_ADAPTEC_AIC7860: - ahc_fe = AHC_AIC7860_FE; - ahc_t = AHC_AIC7860; - break; - case PCI_DEVICE_ID_ADAPTEC_AIC7895: - case PCI_DEVICE_ID_ADAPTEC_AIC7895C: - { - u_int32_t devconfig; - - ahc_t = AHC_AIC7895; - ahc_fe = AHC_AIC7895_FE; - devconfig = pci_conf_read(config_id, DEVCONFIG); - devconfig &= ~SCBSIZE32; - pci_conf_write(config_id, DEVCONFIG, devconfig); - break; - } - case PCI_DEVICE_ID_ADAPTEC_AIC7855: - case PCI_DEVICE_ID_ADAPTEC_AIC7850: - ahc_t = AHC_AIC7850; - ahc_fe = AHC_AIC7850_FE; - break; - case PCI_DEVICE_ID_ADAPTEC_AIC7810: - case PCI_DEVICE_ID_ADAPTEC_AIC7815: - printf("RAID functionality unsupported\n"); - return; - default: - break; - } - - /* On all PCI adapters, we allow SCB paging */ - ahc_f |= AHC_PAGESCBS; - if ((ahc = ahc_alloc(unit, io_port, vaddr, ahc_t|AHC_PCI, ahc_fe, ahc_f, - shared_scb_data)) == NULL) - return; /* XXX PCI code should take return status */ - - ahc->channel = channel; + /* Ensure busmastering is enabled */ + command |= PCIM_CMD_BUSMASTEREN; + pci_cfgwrite(config_id, PCIR_COMMAND, command, /*bytes*/1); /* Allocate a dmatag for our SCB DMA maps */ /* XXX Should be a child of the PCI bus dma tag */ @@ -399,15 +589,22 @@ ahc_pci_attach(pcici_t config_id, int unit) /*filter*/NULL, /*filterarg*/NULL, /*maxsize*/MAXBSIZE, /*nsegments*/AHC_NSEG, /*maxsegsz*/AHC_MAXTRANSFER_SIZE, - /*flags*/BUS_DMA_ALLOCNOW, &ahc->dmat); + /*flags*/BUS_DMA_ALLOCNOW, &parent_dmat); if (error != 0) { - printf("%s: Could not allocate DMA tag - error %d\n", - ahc_name(ahc), error); - ahc_free(ahc); + printf("ahc_pci_attach: Could not allocate DMA tag " + "- error %d\n", error); return; } + /* On all PCI adapters, we allow SCB paging */ + ahc_f |= AHC_PAGESCBS; + if ((ahc = ahc_alloc(unit, io_port, vaddr, parent_dmat, + ahc_t|AHC_PCI, ahc_fe, ahc_f, + shared_scb_data)) == NULL) + return; + + ahc->channel = channel; /* Store our PCI bus information for use in our PCI error handler */ ahc->pci_config_id = config_id; @@ -439,7 +636,8 @@ ahc_pci_attach(pcici_t config_id, int unit) if ((dscommand0 & RAMPS) != 0) { u_int32_t devconfig; - devconfig = pci_conf_read(config_id, DEVCONFIG); + devconfig = pci_cfgread(config_id, DEVCONFIG, + /*bytes*/4); if ((devconfig & MPORTMODE) != 0) { /* Single user mode */ @@ -448,7 +646,8 @@ ahc_pci_attach(pcici_t config_id, int unit) * parity checking */ devconfig |= EXTSCBPEN; - pci_conf_write(config_id, DEVCONFIG, devconfig); + pci_cfgwrite(config_id, DEVCONFIG, + devconfig, /*bytes*/4); /* * Set the bank select apropriately. @@ -474,7 +673,9 @@ ahc_pci_attach(pcici_t config_id, int unit) } } else if ((ahc->chip & AHC_CHIPID_MASK) >= AHC_AIC7870) { - u_int32_t devconfig = pci_conf_read(config_id, DEVCONFIG); + u_int32_t devconfig; + + devconfig = pci_cfgread(config_id, DEVCONFIG, /*bytes*/4); if ((devconfig & RAMPSM) != 0 && (devconfig & MPORTMODE) != 0) { @@ -496,12 +697,14 @@ ahc_pci_attach(pcici_t config_id, int unit) /* Select external SRAM */ devconfig &= ~SCBRAMSEL; - pci_conf_write(config_id, DEVCONFIG, devconfig); + pci_cfgwrite(config_id, DEVCONFIG, + devconfig, /*bytes*/4); if (ahc_probe_scbs(ahc) == 0) { /* External ram isn't really there */ devconfig |= SCBRAMSEL; - pci_conf_write(config_id, DEVCONFIG, devconfig); + pci_cfgwrite(config_id, DEVCONFIG, + devconfig, /*bytes*/4); } else if (bootverbose) printf("%s: External SRAM bank%d\n", ahc_name(ahc), @@ -513,6 +716,7 @@ ahc_pci_attach(pcici_t config_id, int unit) ahc_free(ahc); return; } + /* * Protect ourself from spurrious interrupts during * intialization. @@ -637,7 +841,7 @@ ahc_pci_attach(pcici_t config_id, int unit) if (ahc_init(ahc)) { ahc_free(ahc); splx(opri); - return; /* XXX PCI code should take return status */ + return; } /* XXX Crude hack - fix sometime */ @@ -1103,7 +1307,7 @@ acquire_seeprom(struct ahc_softc *ahc, struct seeprom_descriptor *sd) if ((ahc->features & AHC_SPIOCAP) != 0 && (ahc_inb(ahc, SPIOCAP) & SEEPROM) == 0) - return (0); + return (0); /* * Request access of the memory port. When access is @@ -1230,4 +1434,177 @@ ahc_pci_intr(struct ahc_softc *ahc) } } +static int +ahc_aic7850_setup(pcici_t dev, char *channel, ahc_chip *chip, + ahc_feature *features, ahc_flag *flags) +{ + *channel = 'A'; + *chip = AHC_AIC7850; + *features = AHC_AIC7850_FE; + return (0); +} + +static int +ahc_aic7860_setup(pcici_t dev, char *channel, ahc_chip *chip, + ahc_feature *features, ahc_flag *flags) +{ + *channel = 'A'; + *chip = AHC_AIC7860; + *features = AHC_AIC7860_FE; + return (0); +} + +static int +ahc_aic7870_setup(pcici_t dev, char *channel, ahc_chip *chip, + ahc_feature *features, ahc_flag *flags) +{ + *channel = 'A'; + *chip = AHC_AIC7870; + *features = AHC_AIC7870_FE; + return (0); +} + +static int +ahc_aha394X_setup(pcici_t dev, char *channel, ahc_chip *chip, + ahc_feature *features, ahc_flag *flags) +{ + int error; + + error = ahc_aic7870_setup(dev, channel, chip, features, flags); + if (error == 0) + error = ahc_aha394XX_setup(dev, channel, chip, features, flags); + return (error); +} + +static int +ahc_aha398X_setup(pcici_t dev, char *channel, ahc_chip *chip, + ahc_feature *features, ahc_flag *flags) +{ + int error; + + error = ahc_aic7870_setup(dev, channel, chip, features, flags); + if (error == 0) + error = ahc_aha398XX_setup(dev, channel, chip, features, flags); + return (error); +} + +static int +ahc_aic7880_setup(pcici_t dev, char *channel, ahc_chip *chip, + ahc_feature *features, ahc_flag *flags) +{ + *channel = 'A'; + *chip = AHC_AIC7880; + *features = AHC_AIC7880_FE; + return (0); +} + +static int +ahc_aha394XU_setup(pcici_t dev, char *channel, ahc_chip *chip, + ahc_feature *features, ahc_flag *flags) +{ + int error; + + error = ahc_aic7880_setup(dev, channel, chip, features, flags); + if (error == 0) + error = ahc_aha394XX_setup(dev, channel, chip, features, flags); + return (error); +} + +static int +ahc_aha398XU_setup(pcici_t dev, char *channel, ahc_chip *chip, + ahc_feature *features, ahc_flag *flags) +{ + int error; + + error = ahc_aic7880_setup(dev, channel, chip, features, flags); + if (error == 0) + error = ahc_aha398XX_setup(dev, channel, chip, features, flags); + return (error); +} + +static int +ahc_aic7890_setup(pcici_t dev, char *channel, ahc_chip *chip, + ahc_feature *features, ahc_flag *flags) +{ + *channel = 'A'; + *chip = AHC_AIC7890; + *features = AHC_AIC7890_FE; + return (0); +} + +static int +ahc_aic7895_setup(pcici_t dev, char *channel, ahc_chip *chip, + ahc_feature *features, ahc_flag *flags) +{ + u_int32_t devconfig; + + *channel = dev->func == 1 ? 'B' : 'A'; + *chip = AHC_AIC7895; + *features = AHC_AIC7895_FE; + devconfig = pci_cfgread(dev, DEVCONFIG, /*bytes*/4); + devconfig &= ~SCBSIZE32; + pci_cfgwrite(dev, DEVCONFIG, devconfig, /*bytes*/4); + return (0); +} + +static int +ahc_aic7896_setup(pcici_t dev, char *channel, ahc_chip *chip, + ahc_feature *features, ahc_flag *flags) +{ + *channel = dev->func == 1 ? 'B' : 'A'; + *chip = AHC_AIC7896; + *features = AHC_AIC7896_FE; + return (0); +} + +static int +ahc_raid_setup(pcici_t dev, char *channel, ahc_chip *chip, + ahc_feature *features, ahc_flag *flags) +{ + printf("RAID functionality unsupported\n"); + return (ENXIO); +} + +static int +ahc_aha394XX_setup(pcici_t dev, char *channel, ahc_chip *chip, + ahc_feature *features, ahc_flag *flags) +{ + switch (dev->slot) { + case AHC_394X_SLOT_CHANNEL_A: + *channel = 'A'; + break; + case AHC_394X_SLOT_CHANNEL_B: + *channel = 'B'; + break; + default: + printf("adapter at unexpected slot %d\n" + "unable to map to a channel\n", + dev->slot); + } + return (0); +} + +static int +ahc_aha398XX_setup(pcici_t dev, char *channel, ahc_chip *chip, + ahc_feature *features, ahc_flag *flags) +{ + switch (dev->slot) { + case AHC_398X_SLOT_CHANNEL_A: + *channel = 'A'; + break; + case AHC_398X_SLOT_CHANNEL_B: + *channel = 'B'; + break; + case AHC_398X_SLOT_CHANNEL_C: + *channel = 'C'; + break; + default: + printf("adapter at unexpected slot %d\n" + "unable to map to a channel\n", + dev->slot); + } + *flags |= AHC_LARGE_SEEPROM; + return (0); +} + #endif /* NPCI > 0 */ diff --git a/sys/pci/bt848_i2c.c b/sys/pci/bt848_i2c.c index 47cc1d25f091..176d069a837f 100644 --- a/sys/pci/bt848_i2c.c +++ b/sys/pci/bt848_i2c.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: bt848_i2c.c,v 1.2.2.1 1999/05/15 12:25:33 roger Exp $ + * $Id: bt848_i2c.c,v 1.1 1998/10/31 11:26:38 nsouch Exp $ * */ @@ -33,12 +33,6 @@ * From brooktree848.c <fsmp@freefall.org> */ -#include "pci.h" -#include "bktr.h" -#include "smbus.h" - -#if (NBKTR > 0 && NPCI > 0 && NSMBUS > 0) - #include <sys/param.h> #include <sys/kernel.h> #include <sys/systm.h> @@ -67,7 +61,10 @@ #include "iicbb_if.h" #include "smbus_if.h" +#include "pci.h" +#include "bktr.h" +#if (NBKTR > 0 && NPCI > 0) #define I2C_DELAY 40 diff --git a/sys/ufs/ffs/README b/sys/ufs/ffs/README deleted file mode 100644 index 8a7433b61e9e..000000000000 --- a/sys/ufs/ffs/README +++ /dev/null @@ -1,320 +0,0 @@ -Introduction - -This package constitutes the alpha distribution of the soft update -code updates for the fast filesystem. - -For More information on what Soft Updates is, see: -http://www.ece.cmu.edu/~ganger/papers/CSE-TR-254-95/ - -Status - -My `filesystem torture tests' (described below) run for days without -a hitch (no panic's, hangs, filesystem corruption, or memory leaks). -However, I have had several panic's reported to me by folks that -are field testing the code which I have not yet been able to -reproduce or fix. Although these panic's are rare and do not cause -filesystem corruption, the code should only be put into production -on systems where the system administrator is aware that it is being -run, and knows how to turn it off if problems arise. Thus, you may -hand out this code to others, but please ensure that this status -message is included with any distributions. Please also include -the file ffs_softdep.stub.c in any distributions so that folks that -cannot abide by the need to redistribute source will not be left -with a kernel that will not link. It will resolve all the calls -into the soft update code and simply ignores the request to enable -them. Thus you will be able to ensure that your other hooks have -not broken anything and that your kernel is softdep-ready for those -that wish to use them. Please report problems back to me with -kernel backtraces of panics if possible. This is massively complex -code, and people only have to have their filesystems hosed once or -twice to avoid future changes like the plague. I want to find and -fix as many bugs as soon as possible so as to get the code rock -solid before it gets widely released. Please report any bugs that -you uncover to mckusick@mckusick.com. - -Performance - -Running the Andrew Benchmarks yields the following raw data: - - Phase Normal Softdep What it does - 1 3s <1s Creating directories - 2 8s 4s Copying files - 3 6s 6s Recursive directory stats - 4 8s 9s Scanning each file - 5 25s 25s Compilation - - Normal: 19.9u 29.2s 0:52.8 135+630io - Softdep: 20.3u 28.5s 0:47.8 103+363io - -Another interesting datapoint are my `filesystem torture tests'. -They consist of 1000 runs of the andrew benchmarks, 1000 copy and -removes of /etc with randomly selected pauses of 0-60 seconds -between each copy and remove, and 500 find from / with randomly -selected pauses of 100 seconds between each run). The run of the -torture test compares as follows: - -With soft updates: writes: 6 sync, 1,113,686 async; run time 19hr, 50min -Normal filesystem: writes: 1,459,147 sync, 487,031 async; run time 27hr, 15min - -The upshot is 42% less I/O and 28% shorter running time. - -Another interesting test point is a full MAKEDEV. Because it runs -as a shell script, it becomes mostly limited by the execution speed -of the machine on which it runs. Here are the numbers: - -With soft updates: - - labrat# time ./MAKEDEV std - 2.2u 32.6s 0:34.82 100.0% 0+0k 11+36io 0pf+0w - - labrat# ls | wc - 522 522 3317 - -Without soft updates: - - labrat# time ./MAKEDEV std - 2.0u 40.5s 0:42.53 100.0% 0+0k 11+1221io 0pf+0w - - labrat# ls | wc - 522 522 3317 - -Of course, some of the system time is being pushed -to the syncer process, but that is a different story. - -To show a benchmark designed to highlight the soft update code -consider a tar of zero-sized files and an rm -rf of a directory tree -that has at least 50 files or so at each level. Running a test with -a directory tree containing 28 directories holding 202 empty files -produces the following numbers: - -With soft updates: -tar: 0.0u 0.5s 0:00.65 76.9% 0+0k 0+44io 0pf+0w (0 sync, 33 async writes) -rm: 0.0u 0.2s 0:00.20 100.0% 0+0k 0+37io 0pf+0w (0 sync, 72 async writes) - -Normal filesystem: -tar: 0.0u 1.1s 0:07.27 16.5% 0+0k 60+586io 0pf+0w (523 sync, 0 async writes) -rm: 0.0u 0.5s 0:01.84 29.3% 0+0k 0+318io 0pf+0w (258 sync, 65 async writes) - -The large reduction in writes is because inodes are clustered, so -most of a block gets allocated, then the whole block is written -out once rather than having the same block written once for each -inode allocated from it. Similarly each directory block is written -once rather than once for each new directory entry. Effectively -what the update code is doing is allocating a bunch of inodes -and directory entries without writing anything, then ensuring that -the block containing the inodes is written first followed by the -directory block that references them. If there were data in the -files it would further ensure that the data blocks were written -before their inodes claimed them. - -Copyright Restrictions - -Please familiarize yourself with the copyright restrictions -contained at the top of either the sys/ufs/ffs/softdep.h or -sys/ufs/ffs/ffs_softdep.c file. The key provision is similar -to the one used by the DB 2.0 package and goes as follows: - - Redistributions in any form must be accompanied by information - on how to obtain complete source code for any accompanying - software that uses the this software. This source code must - either be included in the distribution or be available for - no more than the cost of distribution plus a nominal fee, - and must be freely redistributable under reasonable - conditions. For an executable file, complete source code - means the source code for all modules it contains. It does - not mean source code for modules or files that typically - accompany the operating system on which the executable file - runs, e.g., standard library modules or system header files. - -The idea is to allow those of you freely redistributing your source -to use it while retaining for myself the right to peddle it for -money to the commercial UNIX vendors. Note that I have included a -stub file ffs_softdep.c.stub that is freely redistributable so that -you can put in all the necessary hooks to run the full soft updates -code, but still allow vendors that want to maintain proprietary -source to have a working system. I do plan to release the code with -a `Berkeley style' copyright once I have peddled it around to the -commercial vendors. If you have concerns about this copyright, -feel free to contact me with them and we can try to resolve any -difficulties. - -Soft Dependency Operation - -The soft update implementation does NOT require ANY changes -to the on-disk format of your filesystems. Furthermore it is -not used by default for any filesystems. It must be enabled on -a filesystem by filesystem basis by running tunefs to set a -bit in the superblock indicating that the filesystem should be -managed using soft updates. If you wish to stop using -soft updates due to performance or reliability reasons, -you can simply run tunefs on it again to turn off the bit and -revert to normal operation. The additional dynamic memory load -placed on the kernel malloc arena is approximately equal to -the amount of memory used by vnodes plus inodes (for a system -with 1000 vnodes, the additional peak memory load is about 300K). - -Kernel Changes - -There are two new changes to the kernel functionality that are not -contained in in the soft update files. The first is a `trickle -sync' facility running in the kernel as process 3. This trickle -sync process replaces the traditional `update' program (which should -be commented out of the /etc/rc startup script). When a vnode is -first written it is placed 30 seconds down on the trickle sync -queue. If it still exists and has dirty data when it reaches the -top of the queue, it is sync'ed. This approach evens out the load -on the underlying I/O system and avoids writing short-lived files. -The papers on trickle-sync tend to favor aging based on buffers -rather than files. However, I sync on file age rather than buffer -age because the data structures are much smaller as there are -typically far fewer files than buffers. Although this can make the -I/O spikey when a big file times out, it is still much better than -the wholesale sync's that were happening before. It also adapts -much better to the soft update code where I want to control -aging to improve performance (inodes age in 10 seconds, directories -in 15 seconds, files in 30 seconds). This ensures that most -dependencies are gone (e.g., inodes are written when directory -entries want to go to disk) reducing the amount of rollback that -is needed. - -The other main kernel change is to split the vnode freelist into -two separate lists. One for vnodes that are still being used to -identify buffers and the other for those vnodes no longer identifying -any buffers. The latter list is used by getnewvnode in preference -to the former. - -Packaging of Kernel Changes - -The sys subdirectory contains the changes and additions to the -kernel. My goal in writing this code was to minimize the changes -that need to be made to the kernel. Thus, most of the new code -is contained in the two new files softdep.h and ffs_softdep.c. -The rest of the kernel changes are simply inserting hooks to -call into these two new files. Although there has been some -structural reorganization of the filesystem code to accommodate -gathering the information required by the soft update code, -the actual ordering of filesystem operations when soft updates -are disabled is unchanged. - -The kernel changes are packaged as a set of diffs. As I am -doing my development in BSD/OS, the diffs are relative to the -BSD/OS versions of the files. Because BSD/OS recently had -4.4BSD-Lite2 merged into it, the Lite2 files are a good starting -point for figuring out the changes. There are 40 files that -require change plus the two new files. Most of these files have -only a few lines of changes in them. However, four files have -fairly extensive changes: kern/vfs_subr.c, ufs/ufs/ufs_lookup.c, -ufs/ufs/ufs_vnops.c, and ufs/ffs/ffs_alloc.c. For these four -files, I have provided the original Lite2 version, the Lite2 -version with the diffs merged in, and the diffs between the -BSD/OS and merged version. Even so, I expect that there will -be some difficulty in doing the merge; I am certainly willing -to assist in helping get the code merged into your system. - -Packaging of Utility Changes - -The utilities subdirectory contains the changes and additions -to the utilities. There are diffs to three utilities enclosed: - - tunefs - add a flag to enable and disable soft updates - - mount - print out whether soft updates are enabled and - also statistics on number of sync and async writes - - fsck - tighter checks on acceptable errors and a slightly - different policy for what to put in lost+found on - filesystems using soft updates - -In addition you should recompile vmstat so as to get reports -on the 13 new memory types used by the soft update code. -It is not necessary to use the new version of fsck, however it -would aid in my debugging if you do. Also, because of the time -lag between deleting a directory entry and the inode it -references, you will find a lot more files showing up in your -lost+found if you do not use the new version. Note that the -new version checks for the soft update flag in the superblock -and only uses the new algorithms if it is set. So, it will run -unchanged on the filesystems that are not using soft updates. - -Operation - -Once you have booted a kernel that incorporates the soft update -code and installed the updated utilities, do the following: - -1) Comment out the update program in /etc/rc. - -2) Run `tunefs -n enable' on one or more test filesystems. - -3) Mount these filesystems and then type `mount' to ensure that - they have been enabled for soft updates. - -4) Copy the test directory to a softdep filesystem, chdir into - it and run `./doit'. You may want to check out each of the - three subtests individually first: doit1 - andrew benchmarks, - doit2 - copy and removal of /etc, doit3 - find from /. - -==== -Additional notes from Feb 13 - -hen removing huge directories of files, it is possible to get -the incore state arbitrarily far ahead of the disk. Maintaining -all the associated depedency information can exhaust the kernel -malloc arena. To avoid this senario, I have put some limits on -the soft update code so that it will not be allowed to rampage -through all of the kernel memory. I enclose below the relevant -patches to vnode.h and vfs_subr.c (which allow the soft update -code to speed up the filesystem syncer process). I have also -included the diffs for ffs_softdep.c. I hope to make a pass over -ffs_softdep.c to isolate the differences with my standard version -so that these diffs are less painful to incorporate. - -Since I know you like to play with tuning, I have put the relevant -knobs on sysctl debug variables. The tuning knobs can be viewed -with `sysctl debug' and set with `sysctl -w debug.<name>=value'. -The knobs are as follows: - - debug.max_softdeps - limit on any given resource - debug.tickdelay - ticks to delay before allocating - debug.max_limit_hit - number of times tickdelay imposed - debug.rush_requests - number of rush requests to filesystem syncer - -The max_softdeps limit is derived from vnodesdesired which in -turn is sized based on the amount of memory on the machine. -When the limit is hit, a process requesting a resource first -tries to speed up the filesystem syncer process. Such a -request is recorded as a rush_request. After syncdelay / 2 -unserviced rush requests (typically 15) are in the filesystem -syncers queue (i.e., it is more than 15 seconds behind in its -work), the process requesting the memory is put to sleep for -tickdelay seconds. Such a delay is recorded in max_limit_hit. -Following this delay it is granted its memory without further -delay. I have tried the following experiments in which I -delete an MH directory containing 16,703 files: - -Run # 1 2 3 - -max_softdeps 4496 4496 4496 -tickdelay 100 == 1 sec 20 == 0.2 sec 2 == 0.02 sec -max_limit_hit 16 == 16 sec 27 == 5.4 sec 203 == 4.1 sec -rush_requests 147 102 93 -run time 57 sec 46 sec 45 sec -I/O's 781 859 936 - -When run with no limits, it completes in 40 seconds. So, the -time spent in delay is directly added to the bottom line. -Shortening the tick delay does cut down the total running time, -but at the expense of generating more total I/O operations -due to the rush orders being sent to the filesystem syncer. -Although the number of rush orders decreases with a shorter -tick delay, there are more requests in each order, hence the -increase in I/O count. Also, although the I/O count does rise -with a shorter delay, it is still at least an order of magnitude -less than without soft updates. Anyway, you may want to play -around with these value to see what works best and to see if -you can get an insight into how best to tune them. If you get -out of memory panic's, then you have max_softdeps set too high. -The max_limit_hit and rush_requests show be reset to zero -before each run. The minimum legal value for tickdelay is 2 -(if you set it below that, the code will use 2). - - diff --git a/sys/ufs/ffs/softdep.h b/sys/ufs/ffs/softdep.h deleted file mode 100644 index 5d5ce5ec5cda..000000000000 --- a/sys/ufs/ffs/softdep.h +++ /dev/null @@ -1,548 +0,0 @@ -/* - * Copyright 1998 Marshall Kirk McKusick. All Rights Reserved. - * - * The soft updates code is derived from the appendix of a University - * of Michigan technical report (Gregory R. Ganger and Yale N. Patt, - * "Soft Updates: A Solution to the Metadata Update Problem in File - * Systems", CSE-TR-254-95, August 1995). - * - * The following are the copyrights and redistribution conditions that - * apply to this copy of the soft update software. For a license - * to use, redistribute or sell the soft update software under - * conditions other than those described here, please contact the - * author at one of the following addresses: - * - * Marshall Kirk McKusick mckusick@mckusick.com - * 1614 Oxford Street +1-510-843-9542 - * Berkeley, CA 94709-1608 - * USA - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. None of the names of McKusick, Ganger, Patt, or the University of - * Michigan may be used to endorse or promote products derived from - * this software without specific prior written permission. - * 4. Redistributions in any form must be accompanied by information on - * how to obtain complete source code for any accompanying software - * that uses this software. This source code must either be included - * in the distribution or be available for no more than the cost of - * distribution plus a nominal fee, and must be freely redistributable - * under reasonable conditions. For an executable file, complete - * source code means the source code for all modules it contains. - * It does not mean source code for modules or files that typically - * accompany the operating system on which the executable file runs, - * e.g., standard library modules or system header files. - * - * THIS SOFTWARE IS PROVIDED BY MARSHALL KIRK MCKUSICK ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL MARSHALL KIRK MCKUSICK BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)softdep.h 9.6 (McKusick) 2/25/99 - * $Id: softdep.h,v 1.5 1999/03/02 00:19:47 mckusick Exp $ - */ - -#include <sys/queue.h> - -/* - * Allocation dependencies are handled with undo/redo on the in-memory - * copy of the data. A particular data dependency is eliminated when - * it is ALLCOMPLETE: that is ATTACHED, DEPCOMPLETE, and COMPLETE. - * - * ATTACHED means that the data is not currently being written to - * disk. UNDONE means that the data has been rolled back to a safe - * state for writing to the disk. When the I/O completes, the data is - * restored to its current form and the state reverts to ATTACHED. - * The data must be locked throughout the rollback, I/O, and roll - * forward so that the rolled back information is never visible to - * user processes. The COMPLETE flag indicates that the item has been - * written. For example, a dependency that requires that an inode be - * written will be marked COMPLETE after the inode has been written - * to disk. The DEPCOMPLETE flag indicates the completion of any other - * dependencies such as the writing of a cylinder group map has been - * completed. A dependency structure may be freed only when both it - * and its dependencies have completed and any rollbacks that are in - * progress have finished as indicated by the set of ALLCOMPLETE flags - * all being set. The two MKDIR flags indicate additional dependencies - * that must be done when creating a new directory. MKDIR_BODY is - * cleared when the directory data block containing the "." and ".." - * entries has been written. MKDIR_PARENT is cleared when the parent - * inode with the increased link count for ".." has been written. When - * both MKDIR flags have been cleared, the DEPCOMPLETE flag is set to - * indicate that the directory dependencies have been completed. The - * writing of the directory inode itself sets the COMPLETE flag which - * then allows the directory entry for the new directory to be written - * to disk. The RMDIR flag marks a dirrem structure as representing - * the removal of a directory rather than a file. When the removal - * dependencies are completed, additional work needs to be done - * (truncation of the "." and ".." entries, an additional decrement - * of the associated inode, and a decrement of the parent inode). The - * DIRCHG flag marks a diradd structure as representing the changing - * of an existing entry rather than the addition of a new one. When - * the update is complete the dirrem associated with the inode for - * the old name must be added to the worklist to do the necessary - * reference count decrement. The GOINGAWAY flag indicates that the - * data structure is frozen from further change until its dependencies - * have been completed and its resources freed after which it will be - * discarded. The IOSTARTED flag prevents multiple calls to the I/O - * start routine from doing multiple rollbacks. The ONWORKLIST flag - * shows whether the structure is currently linked onto a worklist. - */ -#define ATTACHED 0x0001 -#define UNDONE 0x0002 -#define COMPLETE 0x0004 -#define DEPCOMPLETE 0x0008 -#define MKDIR_PARENT 0x0010 -#define MKDIR_BODY 0x0020 -#define RMDIR 0x0040 -#define DIRCHG 0x0080 -#define GOINGAWAY 0x0100 -#define IOSTARTED 0x0200 -#define ONWORKLIST 0x8000 - -#define ALLCOMPLETE (ATTACHED | COMPLETE | DEPCOMPLETE) - -/* - * The workitem queue. - * - * It is sometimes useful and/or necessary to clean up certain dependencies - * in the background rather than during execution of an application process - * or interrupt service routine. To realize this, we append dependency - * structures corresponding to such tasks to a "workitem" queue. In a soft - * updates implementation, most pending workitems should not wait for more - * than a couple of seconds, so the filesystem syncer process awakens once - * per second to process the items on the queue. - */ - -/* LIST_HEAD(workhead, worklist); -- declared in buf.h */ - -/* - * Each request can be linked onto a work queue through its worklist structure. - * To avoid the need for a pointer to the structure itself, this structure - * MUST be declared FIRST in each type in which it appears! If more than one - * worklist is needed in the structure, then a wk_data field must be added - * and the macros below changed to use it. - */ -struct worklist { - LIST_ENTRY(worklist) wk_list; /* list of work requests */ - unsigned short wk_type; /* type of request */ - unsigned short wk_state; /* state flags */ -}; -#define WK_DATA(wk) ((void *)(wk)) -#define WK_PAGEDEP(wk) ((struct pagedep *)(wk)) -#define WK_INODEDEP(wk) ((struct inodedep *)(wk)) -#define WK_NEWBLK(wk) ((struct newblk *)(wk)) -#define WK_BMSAFEMAP(wk) ((struct bmsafemap *)(wk)) -#define WK_ALLOCDIRECT(wk) ((struct allocdirect *)(wk)) -#define WK_INDIRDEP(wk) ((struct indirdep *)(wk)) -#define WK_ALLOCINDIR(wk) ((struct allocindir *)(wk)) -#define WK_FREEFRAG(wk) ((struct freefrag *)(wk)) -#define WK_FREEBLKS(wk) ((struct freeblks *)(wk)) -#define WK_FREEFILE(wk) ((struct freefile *)(wk)) -#define WK_DIRADD(wk) ((struct diradd *)(wk)) -#define WK_MKDIR(wk) ((struct mkdir *)(wk)) -#define WK_DIRREM(wk) ((struct dirrem *)(wk)) - -/* - * Various types of lists - */ -LIST_HEAD(dirremhd, dirrem); -LIST_HEAD(diraddhd, diradd); -LIST_HEAD(newblkhd, newblk); -LIST_HEAD(inodedephd, inodedep); -LIST_HEAD(allocindirhd, allocindir); -LIST_HEAD(allocdirecthd, allocdirect); -TAILQ_HEAD(allocdirectlst, allocdirect); - -/* - * The "pagedep" structure tracks the various dependencies related to - * a particular directory page. If a directory page has any dependencies, - * it will have a pagedep linked to its associated buffer. The - * pd_dirremhd list holds the list of dirrem requests which decrement - * inode reference counts. These requests are processed after the - * directory page with the corresponding zero'ed entries has been - * written. The pd_diraddhd list maintains the list of diradd requests - * which cannot be committed until their corresponding inode has been - * written to disk. Because a directory may have many new entries - * being created, several lists are maintained hashed on bits of the - * offset of the entry into the directory page to keep the lists from - * getting too long. Once a new directory entry has been cleared to - * be written, it is moved to the pd_pendinghd list. After the new - * entry has been written to disk it is removed from the pd_pendinghd - * list, any removed operations are done, and the dependency structure - * is freed. - */ -#define DAHASHSZ 6 -#define DIRADDHASH(offset) (((offset) >> 2) % DAHASHSZ) -struct pagedep { - struct worklist pd_list; /* page buffer */ -# define pd_state pd_list.wk_state /* check for multiple I/O starts */ - LIST_ENTRY(pagedep) pd_hash; /* hashed lookup */ - struct mount *pd_mnt; /* associated mount point */ - ino_t pd_ino; /* associated file */ - ufs_lbn_t pd_lbn; /* block within file */ - struct dirremhd pd_dirremhd; /* dirrem's waiting for page */ - struct diraddhd pd_diraddhd[DAHASHSZ]; /* diradd dir entry updates */ - struct diraddhd pd_pendinghd; /* directory entries awaiting write */ -}; - -/* - * The "inodedep" structure tracks the set of dependencies associated - * with an inode. One task that it must manage is delayed operations - * (i.e., work requests that must be held until the inodedep's associated - * inode has been written to disk). Getting an inode from its incore - * state to the disk requires two steps to be taken by the filesystem - * in this order: first the inode must be copied to its disk buffer by - * the VOP_UPDATE operation; second the inode's buffer must be written - * to disk. To ensure that both operations have happened in the required - * order, the inodedep maintains two lists. Delayed operations are - * placed on the id_inowait list. When the VOP_UPDATE is done, all - * operations on the id_inowait list are moved to the id_bufwait list. - * When the buffer is written, the items on the id_bufwait list can be - * safely moved to the work queue to be processed. A second task of the - * inodedep structure is to track the status of block allocation within - * the inode. Each block that is allocated is represented by an - * "allocdirect" structure (see below). It is linked onto the id_newinoupdt - * list until both its contents and its allocation in the cylinder - * group map have been written to disk. Once these dependencies have been - * satisfied, it is removed from the id_newinoupdt list and any followup - * actions such as releasing the previous block or fragment are placed - * on the id_inowait list. When an inode is updated (a VOP_UPDATE is - * done), the "inodedep" structure is linked onto the buffer through - * its worklist. Thus, it will be notified when the buffer is about - * to be written and when it is done. At the update time, all the - * elements on the id_newinoupdt list are moved to the id_inoupdt list - * since those changes are now relevant to the copy of the inode in the - * buffer. Also at update time, the tasks on the id_inowait list are - * moved to the id_bufwait list so that they will be executed when - * the updated inode has been written to disk. When the buffer containing - * the inode is written to disk, any updates listed on the id_inoupdt - * list are rolled back as they are not yet safe. Following the write, - * the changes are once again rolled forward and any actions on the - * id_bufwait list are processed (since those actions are now safe). - * The entries on the id_inoupdt and id_newinoupdt lists must be kept - * sorted by logical block number to speed the calculation of the size - * of the rolled back inode (see explanation in initiate_write_inodeblock). - * When a directory entry is created, it is represented by a diradd. - * The diradd is added to the id_inowait list as it cannot be safely - * written to disk until the inode that it represents is on disk. After - * the inode is written, the id_bufwait list is processed and the diradd - * entries are moved to the id_pendinghd list where they remain until - * the directory block containing the name has been written to disk. - * The purpose of keeping the entries on the id_pendinghd list is so that - * the softdep_fsync function can find and push the inode's directory - * name(s) as part of the fsync operation for that file. - */ -struct inodedep { - struct worklist id_list; /* buffer holding inode block */ -# define id_state id_list.wk_state /* inode dependency state */ - LIST_ENTRY(inodedep) id_hash; /* hashed lookup */ - struct fs *id_fs; /* associated filesystem */ - ino_t id_ino; /* dependent inode */ - nlink_t id_nlinkdelta; /* saved effective link count */ - struct dinode *id_savedino; /* saved dinode contents */ - LIST_ENTRY(inodedep) id_deps; /* bmsafemap's list of inodedep's */ - struct buf *id_buf; /* related bmsafemap (if pending) */ - off_t id_savedsize; /* file size saved during rollback */ - struct workhead id_pendinghd; /* entries awaiting directory write */ - struct workhead id_bufwait; /* operations after inode written */ - struct workhead id_inowait; /* operations waiting inode update */ - struct allocdirectlst id_inoupdt; /* updates before inode written */ - struct allocdirectlst id_newinoupdt; /* updates when inode written */ -}; - -/* - * A "newblk" structure is attached to a bmsafemap structure when a block - * or fragment is allocated from a cylinder group. Its state is set to - * DEPCOMPLETE when its cylinder group map is written. It is consumed by - * an associated allocdirect or allocindir allocation which will attach - * themselves to the bmsafemap structure if the newblk's DEPCOMPLETE flag - * is not set (i.e., its cylinder group map has not been written). - */ -struct newblk { - LIST_ENTRY(newblk) nb_hash; /* hashed lookup */ - struct fs *nb_fs; /* associated filesystem */ - ufs_daddr_t nb_newblkno; /* allocated block number */ - int nb_state; /* state of bitmap dependency */ - LIST_ENTRY(newblk) nb_deps; /* bmsafemap's list of newblk's */ - struct bmsafemap *nb_bmsafemap; /* associated bmsafemap */ -}; - -/* - * A "bmsafemap" structure maintains a list of dependency structures - * that depend on the update of a particular cylinder group map. - * It has lists for newblks, allocdirects, allocindirs, and inodedeps. - * It is attached to the buffer of a cylinder group block when any of - * these things are allocated from the cylinder group. It is freed - * after the cylinder group map is written and the state of its - * dependencies are updated with DEPCOMPLETE to indicate that it has - * been processed. - */ -struct bmsafemap { - struct worklist sm_list; /* cylgrp buffer */ - struct buf *sm_buf; /* associated buffer */ - struct allocdirecthd sm_allocdirecthd; /* allocdirect deps */ - struct allocindirhd sm_allocindirhd; /* allocindir deps */ - struct inodedephd sm_inodedephd; /* inodedep deps */ - struct newblkhd sm_newblkhd; /* newblk deps */ -}; - -/* - * An "allocdirect" structure is attached to an "inodedep" when a new block - * or fragment is allocated and pointed to by the inode described by - * "inodedep". The worklist is linked to the buffer that holds the block. - * When the block is first allocated, it is linked to the bmsafemap - * structure associated with the buffer holding the cylinder group map - * from which it was allocated. When the cylinder group map is written - * to disk, ad_state has the DEPCOMPLETE flag set. When the block itself - * is written, the COMPLETE flag is set. Once both the cylinder group map - * and the data itself have been written, it is safe to write the inode - * that claims the block. If there was a previous fragment that had been - * allocated before the file was increased in size, the old fragment may - * be freed once the inode claiming the new block is written to disk. - * This ad_fragfree request is attached to the id_inowait list of the - * associated inodedep (pointed to by ad_inodedep) for processing after - * the inode is written. - */ -struct allocdirect { - struct worklist ad_list; /* buffer holding block */ -# define ad_state ad_list.wk_state /* block pointer state */ - TAILQ_ENTRY(allocdirect) ad_next; /* inodedep's list of allocdirect's */ - ufs_lbn_t ad_lbn; /* block within file */ - ufs_daddr_t ad_newblkno; /* new value of block pointer */ - ufs_daddr_t ad_oldblkno; /* old value of block pointer */ - long ad_newsize; /* size of new block */ - long ad_oldsize; /* size of old block */ - LIST_ENTRY(allocdirect) ad_deps; /* bmsafemap's list of allocdirect's */ - struct buf *ad_buf; /* cylgrp buffer (if pending) */ - struct inodedep *ad_inodedep; /* associated inodedep */ - struct freefrag *ad_freefrag; /* fragment to be freed (if any) */ -}; - -/* - * A single "indirdep" structure manages all allocation dependencies for - * pointers in an indirect block. The up-to-date state of the indirect - * block is stored in ir_savedata. The set of pointers that may be safely - * written to the disk is stored in ir_safecopy. The state field is used - * only to track whether the buffer is currently being written (in which - * case it is not safe to update ir_safecopy). Ir_deplisthd contains the - * list of allocindir structures, one for each block that needs to be - * written to disk. Once the block and its bitmap allocation have been - * written the safecopy can be updated to reflect the allocation and the - * allocindir structure freed. If ir_state indicates that an I/O on the - * indirect block is in progress when ir_safecopy is to be updated, the - * update is deferred by placing the allocindir on the ir_donehd list. - * When the I/O on the indirect block completes, the entries on the - * ir_donehd list are processed by updating their corresponding ir_safecopy - * pointers and then freeing the allocindir structure. - */ -struct indirdep { - struct worklist ir_list; /* buffer holding indirect block */ -# define ir_state ir_list.wk_state /* indirect block pointer state */ - caddr_t ir_saveddata; /* buffer cache contents */ - struct buf *ir_savebp; /* buffer holding safe copy */ - struct allocindirhd ir_donehd; /* done waiting to update safecopy */ - struct allocindirhd ir_deplisthd; /* allocindir deps for this block */ -}; - -/* - * An "allocindir" structure is attached to an "indirdep" when a new block - * is allocated and pointed to by the indirect block described by the - * "indirdep". The worklist is linked to the buffer that holds the new block. - * When the block is first allocated, it is linked to the bmsafemap - * structure associated with the buffer holding the cylinder group map - * from which it was allocated. When the cylinder group map is written - * to disk, ai_state has the DEPCOMPLETE flag set. When the block itself - * is written, the COMPLETE flag is set. Once both the cylinder group map - * and the data itself have been written, it is safe to write the entry in - * the indirect block that claims the block; the "allocindir" dependency - * can then be freed as it is no longer applicable. - */ -struct allocindir { - struct worklist ai_list; /* buffer holding indirect block */ -# define ai_state ai_list.wk_state /* indirect block pointer state */ - LIST_ENTRY(allocindir) ai_next; /* indirdep's list of allocindir's */ - int ai_offset; /* pointer offset in indirect block */ - ufs_daddr_t ai_newblkno; /* new block pointer value */ - ufs_daddr_t ai_oldblkno; /* old block pointer value */ - struct freefrag *ai_freefrag; /* block to be freed when complete */ - struct indirdep *ai_indirdep; /* address of associated indirdep */ - LIST_ENTRY(allocindir) ai_deps; /* bmsafemap's list of allocindir's */ - struct buf *ai_buf; /* cylgrp buffer (if pending) */ -}; - -/* - * A "freefrag" structure is attached to an "inodedep" when a previously - * allocated fragment is replaced with a larger fragment, rather than extended. - * The "freefrag" structure is constructed and attached when the replacement - * block is first allocated. It is processed after the inode claiming the - * bigger block that replaces it has been written to disk. Note that the - * ff_state field is is used to store the uid, so may lose data. However, - * the uid is used only in printing an error message, so is not critical. - * Keeping it in a short keeps the data structure down to 32 bytes. - */ -struct freefrag { - struct worklist ff_list; /* id_inowait or delayed worklist */ -# define ff_state ff_list.wk_state /* owning user; should be uid_t */ - struct vnode *ff_devvp; /* filesystem device vnode */ - struct fs *ff_fs; /* addr of superblock */ - ufs_daddr_t ff_blkno; /* fragment physical block number */ - long ff_fragsize; /* size of fragment being deleted */ - ino_t ff_inum; /* owning inode number */ -}; - -/* - * A "freeblks" structure is attached to an "inodedep" when the - * corresponding file's length is reduced to zero. It records all - * the information needed to free the blocks of a file after its - * zero'ed inode has been written to disk. - */ -struct freeblks { - struct worklist fb_list; /* id_inowait or delayed worklist */ - ino_t fb_previousinum; /* inode of previous owner of blocks */ - struct vnode *fb_devvp; /* filesystem device vnode */ - struct fs *fb_fs; /* addr of superblock */ - off_t fb_oldsize; /* previous file size */ - off_t fb_newsize; /* new file size */ - int fb_chkcnt; /* used to check cnt of blks released */ - uid_t fb_uid; /* uid of previous owner of blocks */ - ufs_daddr_t fb_dblks[NDADDR]; /* direct blk ptrs to deallocate */ - ufs_daddr_t fb_iblks[NIADDR]; /* indirect blk ptrs to deallocate */ -}; - -/* - * A "freefile" structure is attached to an inode when its - * link count is reduced to zero. It marks the inode as free in - * the cylinder group map after the zero'ed inode has been written - * to disk and any associated blocks and fragments have been freed. - */ -struct freefile { - struct worklist fx_list; /* id_inowait or delayed worklist */ - mode_t fx_mode; /* mode of inode */ - ino_t fx_oldinum; /* inum of the unlinked file */ - struct vnode *fx_devvp; /* filesystem device vnode */ - struct fs *fx_fs; /* addr of superblock */ -}; - -/* - * A "diradd" structure is linked to an "inodedep" id_inowait list when a - * new directory entry is allocated that references the inode described - * by "inodedep". When the inode itself is written (either the initial - * allocation for new inodes or with the increased link count for - * existing inodes), the COMPLETE flag is set in da_state. If the entry - * is for a newly allocated inode, the "inodedep" structure is associated - * with a bmsafemap which prevents the inode from being written to disk - * until the cylinder group has been updated. Thus the da_state COMPLETE - * flag cannot be set until the inode bitmap dependency has been removed. - * When creating a new file, it is safe to write the directory entry that - * claims the inode once the referenced inode has been written. Since - * writing the inode clears the bitmap dependencies, the DEPCOMPLETE flag - * in the diradd can be set unconditionally when creating a file. When - * creating a directory, there are two additional dependencies described by - * mkdir structures (see their description below). When these dependencies - * are resolved the DEPCOMPLETE flag is set in the diradd structure. - * If there are multiple links created to the same inode, there will be - * a separate diradd structure created for each link. The diradd is - * linked onto the pg_diraddhd list of the pagedep for the directory - * page that contains the entry. When a directory page is written, - * the pg_diraddhd list is traversed to rollback any entries that are - * not yet ready to be written to disk. If a directory entry is being - * changed (by rename) rather than added, the DIRCHG flag is set and - * the da_previous entry points to the entry that will be "removed" - * once the new entry has been committed. During rollback, entries - * with da_previous are replaced with the previous inode number rather - * than zero. - * - * The overlaying of da_pagedep and da_previous is done to keep the - * structure down to 32 bytes in size on a 32-bit machine. If a - * da_previous entry is present, the pointer to its pagedep is available - * in the associated dirrem entry. If the DIRCHG flag is set, the - * da_previous entry is valid; if not set the da_pagedep entry is valid. - * The DIRCHG flag never changes; it is set when the structure is created - * if appropriate and is never cleared. - */ -struct diradd { - struct worklist da_list; /* id_inowait or id_pendinghd list */ -# define da_state da_list.wk_state /* state of the new directory entry */ - LIST_ENTRY(diradd) da_pdlist; /* pagedep holding directory block */ - doff_t da_offset; /* offset of new dir entry in dir blk */ - ino_t da_newinum; /* inode number for the new dir entry */ - union { - struct dirrem *dau_previous; /* entry being replaced in dir change */ - struct pagedep *dau_pagedep; /* pagedep dependency for addition */ - } da_un; -}; -#define da_previous da_un.dau_previous -#define da_pagedep da_un.dau_pagedep - -/* - * Two "mkdir" structures are needed to track the additional dependencies - * associated with creating a new directory entry. Normally a directory - * addition can be committed as soon as the newly referenced inode has been - * written to disk with its increased link count. When a directory is - * created there are two additional dependencies: writing the directory - * data block containing the "." and ".." entries (MKDIR_BODY) and writing - * the parent inode with the increased link count for ".." (MKDIR_PARENT). - * These additional dependencies are tracked by two mkdir structures that - * reference the associated "diradd" structure. When they have completed, - * they set the DEPCOMPLETE flag on the diradd so that it knows that its - * extra dependencies have been completed. The md_state field is used only - * to identify which type of dependency the mkdir structure is tracking. - * It is not used in the mainline code for any purpose other than consistency - * checking. All the mkdir structures in the system are linked together on - * a list. This list is needed so that a diradd can find its associated - * mkdir structures and deallocate them if it is prematurely freed (as for - * example if a mkdir is immediately followed by a rmdir of the same directory). - * Here, the free of the diradd must traverse the list to find the associated - * mkdir structures that reference it. The deletion would be faster if the - * diradd structure were simply augmented to have two pointers that referenced - * the associated mkdir's. However, this would increase the size of the diradd - * structure from 32 to 64-bits to speed a very infrequent operation. - */ -struct mkdir { - struct worklist md_list; /* id_inowait or buffer holding dir */ -# define md_state md_list.wk_state /* type: MKDIR_PARENT or MKDIR_BODY */ - struct diradd *md_diradd; /* associated diradd */ - struct buf *md_buf; /* MKDIR_BODY: buffer holding dir */ - LIST_ENTRY(mkdir) md_mkdirs; /* list of all mkdirs */ -}; -LIST_HEAD(mkdirlist, mkdir) mkdirlisthd; - -/* - * A "dirrem" structure describes an operation to decrement the link - * count on an inode. The dirrem structure is attached to the pg_dirremhd - * list of the pagedep for the directory page that contains the entry. - * It is processed after the directory page with the deleted entry has - * been written to disk. - * - * The overlaying of dm_pagedep and dm_dirinum is done to keep the - * structure down to 32 bytes in size on a 32-bit machine. It works - * because they are never used concurrently. - */ -struct dirrem { - struct worklist dm_list; /* delayed worklist */ -# define dm_state dm_list.wk_state /* state of the old directory entry */ - LIST_ENTRY(dirrem) dm_next; /* pagedep's list of dirrem's */ - struct mount *dm_mnt; /* associated mount point */ - ino_t dm_oldinum; /* inum of the removed dir entry */ - union { - struct pagedep *dmu_pagedep; /* pagedep dependency for remove */ - ino_t dmu_dirinum; /* parent inode number (for rmdir) */ - } dm_un; -}; -#define dm_pagedep dm_un.dmu_pagedep -#define dm_dirinum dm_un.dmu_dirinum |
