summaryrefslogtreecommitdiffstats
path: root/package/hotplug/diethotplug-0.5.tar
blob: 80886707097c1a5bd334c90966e5e4f2f3854c56 (plain)
ofshex dumpascii
0000 64 69 65 74 68 6f 74 70 6c 75 67 2d 30 2e 35 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diethotplug-0.5/................
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0060 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 31 37 35 30 00 30 30 30 31 37 35 30 00 30 30 30 30 ....0000755.0001750.0001750.0000
0080 30 30 30 30 30 30 30 00 31 30 34 36 36 37 31 30 34 33 34 00 30 31 34 30 37 33 00 20 35 00 00 00 0000000.10466710434.014073..5...
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 75 73 74 61 72 20 20 00 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...andersen...............
0120 00 00 00 00 00 00 00 00 00 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........andersen...............
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 64 69 65 74 68 6f 74 70 6c 75 67 2d 30 2e 35 2f 4d 61 6b 65 66 69 6c 65 00 00 00 00 00 00 00 00 diethotplug-0.5/Makefile........
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 31 37 35 30 00 30 30 30 31 37 35 30 00 30 30 30 30 ....0000644.0001750.0001750.0000
0280 30 30 30 32 33 31 37 00 31 30 34 36 36 37 31 30 34 33 34 00 30 31 35 35 33 36 00 20 30 00 00 00 0002317.10466710434.015536..0...
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 75 73 74 61 72 20 20 00 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...andersen...............
0320 00 00 00 00 00 00 00 00 00 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........andersen...............
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0400 23 20 4d 61 6b 65 66 69 6c 65 20 66 6f 72 20 64 69 65 74 68 6f 74 70 6c 75 67 0a 0a 23 20 53 65 #.Makefile.for.diethotplug..#.Se
0420 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 60 74 72 75 65 27 20 74 6f 20 6d 61 6b t.the.following.to.`true'.to.mak
0440 65 20 61 20 64 65 62 75 67 67 61 62 6c 65 20 62 75 69 6c 64 2e 0a 23 20 4c 65 61 76 65 20 74 68 e.a.debuggable.build..#.Leave.th
0460 69 73 20 73 65 74 20 74 6f 20 60 66 61 6c 73 65 27 20 66 6f 72 20 70 72 6f 64 75 63 74 69 6f 6e is.set.to.`false'.for.production
0480 20 75 73 65 2e 0a 44 45 42 55 47 20 3d 20 66 61 6c 73 65 0a 0a 23 20 49 66 20 79 6f 75 20 61 72 .use..DEBUG.=.false..#.If.you.ar
04a0 65 20 72 75 6e 6e 69 6e 67 20 61 20 63 72 6f 73 73 20 63 6f 6d 70 69 6c 65 72 2c 20 79 6f 75 20 e.running.a.cross.compiler,.you.
04c0 6d 61 79 20 77 61 6e 74 20 74 6f 20 73 65 74 20 74 68 69 73 0a 23 20 74 6f 20 73 6f 6d 65 74 68 may.want.to.set.this.#.to.someth
04e0 69 6e 67 20 6d 6f 72 65 20 69 6e 74 65 72 65 73 74 69 6e 67 2c 20 6c 69 6b 65 20 22 61 72 6d 2d ing.more.interesting,.like."arm-
0500 6c 69 6e 75 78 2d 22 2e 20 20 49 20 79 6f 75 20 77 61 6e 74 0a 23 20 74 6f 20 63 6f 6d 70 69 6c linux-"...I.you.want.#.to.compil
0520 65 20 76 73 20 75 43 6c 69 62 63 2c 20 74 68 61 74 20 63 61 6e 20 62 65 20 64 6f 6e 65 20 68 65 e.vs.uClibc,.that.can.be.done.he
0540 72 65 20 61 73 20 77 65 6c 6c 2e 0a 43 52 4f 53 53 20 3d 20 23 2f 75 73 72 2f 69 33 38 36 2d 6c re.as.well..CROSS.=.#/usr/i386-l
0560 69 6e 75 78 2d 75 63 6c 69 62 63 2f 75 73 72 2f 62 69 6e 2f 69 33 38 36 2d 75 63 6c 69 62 63 2d inux-uclibc/usr/bin/i386-uclibc-
0580 0a 43 43 20 3d 20 24 28 43 52 4f 53 53 29 67 63 63 0a 41 52 20 3d 20 24 28 43 52 4f 53 53 29 61 .CC.=.$(CROSS)gcc.AR.=.$(CROSS)a
05a0 72 0a 53 54 52 49 50 20 3d 20 24 28 43 52 4f 53 53 29 73 74 72 69 70 0a 0a 0a 23 20 75 73 65 20 r.STRIP.=.$(CROSS)strip...#.use.
05c0 27 2d 4f 73 27 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 69 66 20 61 76 61 69 6c 61 62 6c 65 2c '-Os'.optimization.if.available,
05e0 20 65 6c 73 65 20 75 73 65 20 2d 4f 32 0a 4f 50 54 49 4d 49 5a 41 54 49 4f 4e 20 3a 3d 20 24 7b .else.use.-O2.OPTIMIZATION.:=.${
0600 73 68 65 6c 6c 20 69 66 20 24 28 43 43 29 20 2d 4f 73 20 2d 53 20 2d 6f 20 2f 64 65 76 2f 6e 75 shell.if.$(CC).-Os.-S.-o./dev/nu
0620 6c 6c 20 2d 78 63 20 2f 64 65 76 2f 6e 75 6c 6c 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e 26 31 ll.-xc./dev/null.>/dev/null.2>&1
0640 3b 20 5c 0a 09 09 74 68 65 6e 20 65 63 68 6f 20 22 2d 4f 73 22 3b 20 65 6c 73 65 20 65 63 68 6f ;.\...then.echo."-Os";.else.echo
0660 20 22 2d 4f 32 22 20 3b 20 66 69 7d 0a 0a 57 41 52 4e 49 4e 47 53 20 3a 3d 20 2d 57 61 6c 6c 20 ."-O2".;.fi}..WARNINGS.:=.-Wall.
0680 2d 57 73 68 61 64 6f 77 20 2d 57 73 74 72 69 63 74 2d 70 72 6f 74 6f 74 79 70 65 73 0a 43 46 4c -Wshadow.-Wstrict-prototypes.CFL
06a0 41 47 53 2b 3d 2d 70 69 70 65 0a 0a 23 20 69 66 20 44 45 42 55 47 20 69 73 20 65 6e 61 62 6c 65 AGS+=-pipe..#.if.DEBUG.is.enable
06c0 64 2c 20 74 68 65 6e 20 77 65 20 64 6f 20 6e 6f 74 20 73 74 72 69 70 20 6f 72 20 6f 70 74 69 6d d,.then.we.do.not.strip.or.optim
06e0 69 7a 65 0a 69 66 65 71 20 28 24 28 73 74 72 69 70 20 24 28 44 45 42 55 47 29 29 2c 74 72 75 65 ize.ifeq.($(strip.$(DEBUG)),true
0700 29 0a 09 43 46 4c 41 47 53 20 20 2b 3d 20 24 28 57 41 52 4e 49 4e 47 53 29 20 2d 4f 31 20 2d 67 )..CFLAGS..+=.$(WARNINGS).-O1.-g
0720 20 2d 44 44 45 42 55 47 20 2d 44 5f 47 4e 55 5f 53 4f 55 52 43 45 0a 09 4c 44 46 4c 41 47 53 20 .-DDEBUG.-D_GNU_SOURCE..LDFLAGS.
0740 2b 3d 20 2d 57 6c 2c 2d 77 61 72 6e 2d 63 6f 6d 6d 6f 6e 0a 09 53 54 52 49 50 43 4d 44 20 3d 20 +=.-Wl,-warn-common..STRIPCMD.=.
0760 2f 62 69 6e 2f 74 72 75 65 20 2d 53 69 6e 63 65 5f 77 65 5f 61 72 65 5f 64 65 62 75 67 67 69 6e /bin/true.-Since_we_are_debuggin
0780 67 0a 65 6c 73 65 0a 09 43 46 4c 41 47 53 20 20 2b 3d 20 24 28 57 41 52 4e 49 4e 47 53 29 20 24 g.else..CFLAGS..+=.$(WARNINGS).$
07a0 28 4f 50 54 49 4d 49 5a 41 54 49 4f 4e 29 20 2d 66 6f 6d 69 74 2d 66 72 61 6d 65 2d 70 6f 69 6e (OPTIMIZATION).-fomit-frame-poin
07c0 74 65 72 20 2d 44 5f 47 4e 55 5f 53 4f 55 52 43 45 0a 09 4c 44 46 4c 41 47 53 20 2b 3d 20 2d 73 ter.-D_GNU_SOURCE..LDFLAGS.+=.-s
07e0 20 2d 57 6c 2c 2d 77 61 72 6e 2d 63 6f 6d 6d 6f 6e 0a 09 53 54 52 49 50 43 4d 44 20 3d 20 24 28 .-Wl,-warn-common..STRIPCMD.=.$(
0800 53 54 52 49 50 29 20 2d 73 20 2d 2d 72 65 6d 6f 76 65 2d 73 65 63 74 69 6f 6e 3d 2e 6e 6f 74 65 STRIP).-s.--remove-section=.note
0820 20 2d 2d 72 65 6d 6f 76 65 2d 73 65 63 74 69 6f 6e 3d 2e 63 6f 6d 6d 65 6e 74 0a 65 6e 64 69 66 .--remove-section=.comment.endif
0840 0a 0a 0a 61 6c 6c 3a 20 68 6f 74 70 6c 75 67 0a 0a 68 6f 74 70 6c 75 67 3a 20 68 6f 74 70 6c 75 ...all:.hotplug..hotplug:.hotplu
0860 67 2e 63 0a 09 24 28 43 43 29 20 24 28 43 46 4c 41 47 53 29 20 24 28 4c 44 46 4c 41 47 53 29 20 g.c..$(CC).$(CFLAGS).$(LDFLAGS).
0880 68 6f 74 70 6c 75 67 2e 63 20 2d 6f 20 68 6f 74 70 6c 75 67 0a 09 24 28 53 54 52 49 50 43 4d 44 hotplug.c.-o.hotplug..$(STRIPCMD
08a0 29 20 68 6f 74 70 6c 75 67 0a 0a 63 6c 65 61 6e 3a 0a 09 72 6d 20 2d 72 66 20 63 6f 72 65 20 68 ).hotplug..clean:..rm.-rf.core.h
08c0 6f 74 70 6c 75 67 20 2a 2e 5b 61 6f 5d 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 otplug.*.[ao]...................
08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a00 64 69 65 74 68 6f 74 70 6c 75 67 2d 30 2e 35 2f 68 6f 74 70 6c 75 67 2e 63 00 00 00 00 00 00 00 diethotplug-0.5/hotplug.c.......
0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 31 37 35 30 00 30 30 30 31 37 35 30 00 30 30 30 30 ....0000644.0001750.0001750.0000
0a80 30 30 36 35 34 33 34 00 31 30 34 36 36 37 31 30 34 33 34 00 30 31 35 37 33 35 00 20 30 00 00 00 0065434.10466710434.015735..0...
0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b00 00 75 73 74 61 72 20 20 00 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...andersen...............
0b20 00 00 00 00 00 00 00 00 00 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........andersen...............
0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c00 2f 2a 0a 20 2a 20 68 6f 74 70 6c 75 67 2e 63 0a 20 2a 0a 20 2a 20 41 20 76 65 72 73 69 6f 6e 20 /*..*.hotplug.c..*..*.A.version.
0c20 6f 66 20 2f 73 62 69 6e 2f 68 6f 74 70 6c 75 67 20 74 68 61 74 20 69 73 20 6e 6f 74 20 61 20 73 of./sbin/hotplug.that.is.not.a.s
0c40 63 72 69 70 74 2e 0a 20 2a 0a 20 2a 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 31 20 cript...*..*.Copyright.(C).2001.
0c60 47 72 65 67 20 4b 72 6f 61 68 2d 48 61 72 74 6d 61 6e 20 3c 67 72 65 67 40 6b 72 6f 61 68 2e 63 Greg.Kroah-Hartman.<greg@kroah.c
0c80 6f 6d 3e 0a 20 2a 0a 20 2a 09 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 om>..*..*.This.program.is.free.s
0ca0 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 oftware;.you.can.redistribute.it
0cc0 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 20 2a 09 75 6e 64 65 72 20 74 68 65 20 74 .and/or.modify.it..*.under.the.t
0ce0 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c erms.of.the.GNU.General.Public.L
0d00 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 0a 20 2a 09 46 72 icense.as.published.by.the..*.Fr
0d20 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 20 76 65 72 73 69 6f 6e 20 32 ee.Software.Foundation.version.2
0d40 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2e 0a 20 2a 0a 20 2a 09 54 68 69 73 20 70 72 6f 67 .of.the.License...*..*.This.prog
0d60 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 ram.is.distributed.in.the.hope.t
0d80 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 0a 20 2a 09 57 49 hat.it.will.be.useful,.but..*.WI
0da0 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e THOUT.ANY.WARRANTY;.without.even
0dc0 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 20 2a 09 4d 45 52 43 .the.implied.warranty.of..*.MERC
0de0 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 HANTABILITY.or.FITNESS.FOR.A.PAR
0e00 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 0a 20 2a TICULAR.PURPOSE...See.the.GNU..*
0e20 09 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 .General.Public.License.for.more
0e40 20 64 65 74 61 69 6c 73 2e 0a 20 2a 0a 20 2a 09 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 .details...*..*.You.should.have.
0e60 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 received.a.copy.of.the.GNU.Gener
0e80 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 6c 6f 6e 67 0a 20 2a 09 77 69 74 68 20 al.Public.License.along..*.with.
0ea0 74 68 69 73 20 70 72 6f 67 72 61 6d 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 this.program;.if.not,.write.to.t
0ec0 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 he.Free.Software.Foundation,.Inc
0ee0 2e 2c 0a 20 2a 09 36 37 35 20 4d 61 73 73 20 41 76 65 2c 20 43 61 6d 62 72 69 64 67 65 2c 20 4d .,..*.675.Mass.Ave,.Cambridge,.M
0f00 41 20 30 32 31 33 39 2c 20 55 53 41 2e 0a 20 2a 0a 20 2a 20 48 61 63 6b 65 64 20 75 70 20 74 6f A.02139,.USA...*..*.Hacked.up.to
0f20 20 72 65 61 64 20 74 68 65 20 76 61 72 69 6f 75 73 20 6d 6f 64 75 6c 65 73 2e 2a 6d 61 70 20 66 .read.the.various.modules.*map.f
0f40 69 6c 65 73 20 61 6e 64 20 66 6f 72 20 75 73 65 0a 20 2a 20 69 6e 20 42 75 73 79 42 6f 78 20 62 iles.and.for.use..*.in.BusyBox.b
0f60 79 20 45 72 69 6b 20 41 6e 64 65 72 73 65 6e 20 3c 61 6e 64 65 72 73 65 6e 40 63 6f 64 65 70 6f y.Erik.Andersen.<andersen@codepo
0f80 65 74 2e 6f 72 67 3e 0a 20 2a 0a 20 2a 2f 0a 0a 0a 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f et.org>..*..*/...#include.<errno
0fa0 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 .h>.#include.<stdio.h>.#include.
0fc0 3c 73 74 64 61 72 67 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 64 65 66 2e 68 3e 0a 23 <stdarg.h>.#include.<stddef.h>.#
0fe0 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 include.<stdlib.h>.#include.<str
1000 69 6e 67 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 6c 6f 67 2e 68 3e 0a 23 69 6e 63 6c ing.h>.#include.<syslog.h>.#incl
1020 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 70 61 72 ude.<unistd.h>.#include.<sys/par
1040 61 6d 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 75 74 73 6e 61 6d 65 2e 68 3e 0a 0a am.h>.#include.<sys/utsname.h>..
1060 23 64 65 66 69 6e 65 20 4c 49 4e 45 4c 45 4e 47 54 48 20 38 31 39 32 0a 0a 0a 2f 2a 20 45 6e 61 #define.LINELENGTH.8192.../*.Ena
1080 62 6c 65 20 69 66 20 6e 6f 74 20 75 73 65 64 20 61 73 20 61 20 62 75 73 79 62 6f 78 20 61 70 70 ble.if.not.used.as.a.busybox.app
10a0 6c 65 74 20 2a 2f 0a 23 69 66 20 31 0a 73 74 61 74 69 63 20 63 6f 6e 73 74 20 63 68 61 72 20 2a let.*/.#if.1.static.const.char.*
10c0 20 63 6f 6e 73 74 20 61 70 70 5f 6e 61 6d 65 20 3d 20 22 68 6f 74 70 6c 75 67 22 3b 0a 73 74 61 .const.app_name.=."hotplug";.sta
10e0 74 69 63 20 76 6f 69 64 20 76 65 72 72 6f 72 5f 6d 73 67 28 63 6f 6e 73 74 20 63 68 61 72 20 2a tic.void.verror_msg(const.char.*
1100 73 2c 20 76 61 5f 6c 69 73 74 20 70 29 0a 7b 0a 09 66 66 6c 75 73 68 28 73 74 64 6f 75 74 29 3b s,.va_list.p).{..fflush(stdout);
1120 0a 09 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 5c 6e 5c 6e 5c 6e 25 73 3a 20 22 2c 20 ..fprintf(stderr,."\n\n\n%s:.",.
1140 61 70 70 5f 6e 61 6d 65 29 3b 0a 09 76 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 73 2c 20 app_name);..vfprintf(stderr,.s,.
1160 70 29 3b 0a 7d 0a 65 78 74 65 72 6e 20 76 6f 69 64 20 62 62 5f 65 72 72 6f 72 5f 6d 73 67 28 63 p);.}.extern.void.bb_error_msg(c
1180 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 2e 2e 2e 29 0a 7b 0a 09 76 61 5f 6c 69 73 74 20 70 3b onst.char.*s,....).{..va_list.p;
11a0 0a 0a 09 76 61 5f 73 74 61 72 74 28 70 2c 20 73 29 3b 0a 09 76 65 72 72 6f 72 5f 6d 73 67 28 73 ...va_start(p,.s);..verror_msg(s
11c0 2c 20 70 29 3b 0a 09 76 61 5f 65 6e 64 28 70 29 3b 0a 09 66 70 72 69 6e 74 66 28 73 74 64 65 72 ,.p);..va_end(p);..fprintf(stder
11e0 72 2c 20 22 5c 6e 5c 6e 5c 6e 22 29 3b 0a 7d 0a 0a 65 78 74 65 72 6e 20 76 6f 69 64 20 62 62 5f r,."\n\n\n");.}..extern.void.bb_
1200 65 72 72 6f 72 5f 6d 73 67 5f 61 6e 64 5f 64 69 65 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c error_msg_and_die(const.char.*s,
1220 20 2e 2e 2e 29 0a 7b 0a 09 76 61 5f 6c 69 73 74 20 70 3b 0a 0a 09 76 61 5f 73 74 61 72 74 28 70 ....).{..va_list.p;...va_start(p
1240 2c 20 73 29 3b 0a 09 76 65 72 72 6f 72 5f 6d 73 67 28 73 2c 20 70 29 3b 0a 09 76 61 5f 65 6e 64 ,.s);..verror_msg(s,.p);..va_end
1260 28 70 29 3b 0a 09 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 5c 6e 5c 6e 5c 6e 22 29 3b (p);..fprintf(stderr,."\n\n\n");
1280 0a 09 65 78 69 74 28 45 58 49 54 5f 46 41 49 4c 55 52 45 29 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 ..exit(EXIT_FAILURE);.}..static.
12a0 76 6f 69 64 20 76 70 65 72 72 6f 72 5f 6d 73 67 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 void.vperror_msg(const.char.*s,.
12c0 76 61 5f 6c 69 73 74 20 70 29 0a 7b 0a 09 69 6e 74 20 65 72 72 20 3d 20 65 72 72 6e 6f 3b 0a 0a va_list.p).{..int.err.=.errno;..
12e0 09 69 66 20 28 73 20 3d 3d 20 30 29 0a 09 09 73 20 3d 20 22 22 3b 0a 09 76 65 72 72 6f 72 5f 6d .if.(s.==.0)...s.=."";..verror_m
1300 73 67 28 73 2c 20 70 29 3b 0a 09 69 66 20 28 2a 73 29 0a 09 09 73 20 3d 20 22 3a 20 22 3b 0a 09 sg(s,.p);..if.(*s)...s.=.":.";..
1320 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 25 73 25 73 5c 6e 22 2c 20 73 2c 20 73 74 72 fprintf(stderr,."%s%s\n",.s,.str
1340 65 72 72 6f 72 28 65 72 72 29 29 3b 0a 09 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 5c error(err));..fprintf(stderr,."\
1360 6e 5c 6e 5c 6e 22 29 3b 0a 7d 0a 0a 65 78 74 65 72 6e 20 76 6f 69 64 20 62 62 5f 70 65 72 72 6f n\n\n");.}..extern.void.bb_perro
1380 72 5f 6d 73 67 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 2e 2e 2e 29 0a 7b 0a 09 76 61 5f r_msg(const.char.*s,....).{..va_
13a0 6c 69 73 74 20 70 3b 0a 0a 09 76 61 5f 73 74 61 72 74 28 70 2c 20 73 29 3b 0a 09 76 70 65 72 72 list.p;...va_start(p,.s);..vperr
13c0 6f 72 5f 6d 73 67 28 73 2c 20 70 29 3b 0a 09 76 61 5f 65 6e 64 28 70 29 3b 0a 7d 0a 0a 65 78 74 or_msg(s,.p);..va_end(p);.}..ext
13e0 65 72 6e 20 76 6f 69 64 20 62 62 5f 70 65 72 72 6f 72 5f 6d 73 67 5f 61 6e 64 5f 64 69 65 28 63 ern.void.bb_perror_msg_and_die(c
1400 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 2e 2e 2e 29 0a 7b 0a 09 76 61 5f 6c 69 73 74 20 70 3b onst.char.*s,....).{..va_list.p;
1420 0a 0a 09 76 61 5f 73 74 61 72 74 28 70 2c 20 73 29 3b 0a 09 76 70 65 72 72 6f 72 5f 6d 73 67 28 ...va_start(p,.s);..vperror_msg(
1440 73 2c 20 70 29 3b 0a 09 76 61 5f 65 6e 64 28 70 29 3b 0a 09 65 78 69 74 28 45 58 49 54 5f 46 41 s,.p);..va_end(p);..exit(EXIT_FA
1460 49 4c 55 52 45 29 3b 0a 7d 0a 73 74 61 74 69 63 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 63 6f ILURE);.}.static.const.char.*.co
1480 6e 73 74 20 6d 65 6d 6f 72 79 5f 65 78 68 61 75 73 74 65 64 20 3d 20 22 6d 65 6d 6f 72 79 20 65 nst.memory_exhausted.=."memory.e
14a0 78 68 61 75 73 74 65 64 22 3b 0a 65 78 74 65 72 6e 20 76 6f 69 64 20 2a 78 6d 61 6c 6c 6f 63 28 xhausted";.extern.void.*xmalloc(
14c0 73 69 7a 65 5f 74 20 73 69 7a 65 29 0a 7b 0a 09 76 6f 69 64 20 2a 70 74 72 20 3d 20 6d 61 6c 6c size_t.size).{..void.*ptr.=.mall
14e0 6f 63 28 73 69 7a 65 29 3b 0a 0a 09 69 66 20 28 21 70 74 72 29 0a 09 09 62 62 5f 65 72 72 6f 72 oc(size);...if.(!ptr)...bb_error
1500 5f 6d 73 67 5f 61 6e 64 5f 64 69 65 28 28 63 68 61 72 2a 29 6d 65 6d 6f 72 79 5f 65 78 68 61 75 _msg_and_die((char*)memory_exhau
1520 73 74 65 64 29 3b 0a 09 72 65 74 75 72 6e 20 70 74 72 3b 0a 7d 0a 0a 65 78 74 65 72 6e 20 76 6f sted);..return.ptr;.}..extern.vo
1540 69 64 20 2a 78 72 65 61 6c 6c 6f 63 28 76 6f 69 64 20 2a 6f 6c 64 2c 20 73 69 7a 65 5f 74 20 73 id.*xrealloc(void.*old,.size_t.s
1560 69 7a 65 29 0a 7b 0a 09 76 6f 69 64 20 2a 70 74 72 3b 0a 0a 09 2f 2a 20 53 75 53 32 20 73 61 79 ize).{..void.*ptr;.../*.SuS2.say
1580 73 20 22 49 66 20 73 69 7a 65 20 69 73 20 30 20 61 6e 64 20 70 74 72 20 69 73 20 6e 6f 74 20 61 s."If.size.is.0.and.ptr.is.not.a
15a0 20 6e 75 6c 6c 20 70 6f 69 6e 74 65 72 2c 20 74 68 65 0a 09 20 2a 20 6f 62 6a 65 63 74 20 70 6f .null.pointer,.the...*.object.po
15c0 69 6e 74 65 64 20 74 6f 20 69 73 20 66 72 65 65 64 2e 22 20 20 44 6f 20 74 68 61 74 20 68 65 72 inted.to.is.freed."..Do.that.her
15e0 65 2c 20 69 6e 20 63 61 73 65 20 72 65 61 6c 6c 6f 63 0a 09 20 2a 20 72 65 74 75 72 6e 73 20 61 e,.in.case.realloc...*.returns.a
1600 20 4e 55 4c 4c 2c 20 73 69 6e 63 65 20 77 65 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 6f 20 63 68 .NULL,.since.we.don't.want.to.ch
1620 6f 6b 65 20 69 6e 20 74 68 61 74 20 63 61 73 65 2e 20 2a 2f 0a 09 69 66 20 28 73 69 7a 65 3d 3d oke.in.that.case..*/..if.(size==
1640 30 20 26 26 20 6f 6c 64 29 20 7b 0a 09 09 66 72 65 65 28 6f 6c 64 29 3b 0a 09 09 72 65 74 75 72 0.&&.old).{...free(old);...retur
1660 6e 20 4e 55 4c 4c 3b 0a 09 7d 0a 0a 09 70 74 72 20 3d 20 72 65 61 6c 6c 6f 63 28 6f 6c 64 2c 20 n.NULL;..}...ptr.=.realloc(old,.
1680 73 69 7a 65 29 3b 0a 09 69 66 20 28 21 70 74 72 29 0a 09 09 62 62 5f 65 72 72 6f 72 5f 6d 73 67 size);..if.(!ptr)...bb_error_msg
16a0 5f 61 6e 64 5f 64 69 65 28 28 63 68 61 72 2a 29 6d 65 6d 6f 72 79 5f 65 78 68 61 75 73 74 65 64 _and_die((char*)memory_exhausted
16c0 29 3b 0a 09 72 65 74 75 72 6e 20 70 74 72 3b 0a 7d 0a 23 64 65 66 69 6e 65 20 68 6f 74 70 6c 75 );..return.ptr;.}.#define.hotplu
16e0 67 5f 6d 61 69 6e 09 6d 61 69 6e 0a 23 65 6e 64 69 66 0a 0a 73 74 72 75 63 74 20 73 75 62 73 79 g_main.main.#endif..struct.subsy
1700 73 74 65 6d 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 6e 61 6d 65 3b 0a 20 20 stem.{.....const.char.*.name;...
1720 20 20 69 6e 74 20 28 2a 20 68 61 6e 64 6c 65 72 29 20 28 76 6f 69 64 29 3b 0a 7d 3b 0a 0a 65 78 ..int.(*.handler).(void);.};..ex
1740 74 65 72 6e 20 69 6e 74 20 6c 6f 67 5f 6d 65 73 73 61 67 65 20 28 69 6e 74 20 6c 65 76 65 6c 2c tern.int.log_message.(int.level,
1760 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 66 6d 74 2c 20 2e 2e 2e 29 20 20 5f 5f 61 74 74 72 69 62 .const.char.*fmt,....)..__attrib
1780 75 74 65 5f 5f 20 28 28 5f 5f 66 6f 72 6d 61 74 5f 5f 28 5f 5f 70 72 69 6e 74 66 5f 5f 2c 20 32 ute__.((__format__(__printf__,.2
17a0 2c 20 33 29 29 29 3b 0a 65 78 74 65 72 6e 20 69 6e 74 20 73 70 6c 69 74 5f 33 76 61 6c 75 65 73 ,.3)));.extern.int.split_3values
17c0 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 74 72 69 6e 67 2c 20 69 6e 74 20 62 61 73 65 2c 20 .(const.char.*string,.int.base,.
17e0 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 20 76 61 6c 75 65 31 2c 0a 09 75 6e 73 69 67 6e 65 64 unsigned.int.*.value1,..unsigned
1800 20 69 6e 74 20 2a 20 76 61 6c 75 65 32 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 20 76 61 .int.*.value2,.unsigned.int.*.va
1820 6c 75 65 33 29 3b 0a 65 78 74 65 72 6e 20 69 6e 74 20 73 70 6c 69 74 5f 32 76 61 6c 75 65 73 20 lue3);.extern.int.split_2values.
1840 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 74 72 69 6e 67 2c 20 69 6e 74 20 62 61 73 65 2c 20 75 (const.char.*string,.int.base,.u
1860 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 20 76 61 6c 75 65 31 2c 0a 09 75 6e 73 69 67 6e 65 64 20 nsigned.int.*.value1,..unsigned.
1880 69 6e 74 20 2a 20 76 61 6c 75 65 32 29 3b 0a 65 78 74 65 72 6e 20 69 6e 74 20 63 61 6c 6c 5f 73 int.*.value2);.extern.int.call_s
18a0 75 62 73 79 73 74 65 6d 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 74 72 69 6e 67 2c 20 73 74 ubsystem.(const.char.*string,.st
18c0 72 75 63 74 20 73 75 62 73 79 73 74 65 6d 20 2a 73 75 62 73 79 73 74 65 6d 29 3b 0a 65 78 74 65 ruct.subsystem.*subsystem);.exte
18e0 72 6e 20 69 6e 74 20 6c 6f 61 64 5f 6d 6f 64 75 6c 65 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a rn.int.load_module.(const.char.*
1900 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 65 78 74 65 72 6e 20 69 6e 74 20 75 73 62 5f 68 61 6e module_name);.extern.int.usb_han
1920 64 6c 65 72 20 28 76 6f 69 64 29 3b 0a 65 78 74 65 72 6e 20 69 6e 74 20 70 63 69 5f 68 61 6e 64 dler.(void);.extern.int.pci_hand
1940 6c 65 72 20 28 76 6f 69 64 29 3b 0a 65 78 74 65 72 6e 20 69 6e 74 20 69 65 65 65 31 33 39 34 5f ler.(void);.extern.int.ieee1394_
1960 68 61 6e 64 6c 65 72 20 28 76 6f 69 64 29 3b 0a 0a 23 64 65 66 69 6e 65 20 41 44 44 5f 53 54 52 handler.(void);..#define.ADD_STR
1980 49 4e 47 09 22 61 64 64 22 0a 23 64 65 66 69 6e 65 20 52 45 4d 4f 56 45 5f 53 54 52 49 4e 47 09 ING."add".#define.REMOVE_STRING.
19a0 22 72 65 6d 6f 76 65 22 0a 0a 0a 2f 2f 23 64 65 66 69 6e 65 20 44 45 42 55 47 20 31 0a 23 69 66 "remove"...//#define.DEBUG.1.#if
19c0 64 65 66 20 44 45 42 55 47 0a 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 6c 6f 67 2e 68 3e 0a 09 23 def.DEBUG.#include.<syslog.h>..#
19e0 64 65 66 69 6e 65 20 64 62 67 28 66 6f 72 6d 61 74 2c 20 61 72 67 2e 2e 2e 29 20 64 6f 20 7b 20 define.dbg(format,.arg...).do.{.
1a00 6c 6f 67 5f 6d 65 73 73 61 67 65 20 28 4c 4f 47 5f 44 45 42 55 47 2c 20 5f 5f 46 55 4e 43 54 49 log_message.(LOG_DEBUG,.__FUNCTI
1a20 4f 4e 5f 5f 20 22 3a 20 22 20 66 6f 72 6d 61 74 2c 20 23 23 20 61 72 67 29 3b 20 7d 20 77 68 69 ON__.":.".format,.##.arg);.}.whi
1a40 6c 65 20 28 30 29 0a 23 65 6c 73 65 0a 09 23 64 65 66 69 6e 65 20 64 62 67 28 66 6f 72 6d 61 74 le.(0).#else..#define.dbg(format
1a60 2c 20 61 72 67 2e 2e 2e 29 20 64 6f 20 7b 20 7d 20 77 68 69 6c 65 20 28 30 29 0a 23 65 6e 64 69 ,.arg...).do.{.}.while.(0).#endi
1a80 66 0a 0a 0a 69 6e 74 20 63 70 75 5f 68 61 6e 64 6c 65 72 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 f...int.cpu_handler.(void).{....
1aa0 20 2f 2a 20 4e 6f 74 20 68 61 6e 64 6c 65 64 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b ./*.Not.handled.*/.....return.0;
1ac0 0a 7d 0a 0a 69 6e 74 20 6e 65 74 5f 68 61 6e 64 6c 65 72 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 .}..int.net_handler.(void).{....
1ae0 20 2f 2a 20 4e 6f 74 20 68 61 6e 64 6c 65 64 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b ./*.Not.handled.*/.....return.0;
1b00 0a 7d 0a 0a 69 6e 74 20 64 6f 63 6b 5f 68 61 6e 64 6c 65 72 20 28 76 6f 69 64 29 0a 7b 0a 20 20 .}..int.dock_handler.(void).{...
1b20 20 20 2f 2a 20 4e 6f 74 20 68 61 6e 64 6c 65 64 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 30 ../*.Not.handled.*/.....return.0
1b40 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 20 73 75 62 73 79 73 74 65 6d 20 6d 61 69 ;.}..static.struct.subsystem.mai
1b60 6e 5f 73 75 62 73 79 73 74 65 6d 5b 5d 20 3d 20 7b 0a 20 20 20 20 7b 20 22 70 63 69 22 2c 09 20 n_subsystem[].=.{.....{."pci",..
1b80 20 20 20 70 63 69 5f 68 61 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 7b 20 22 75 73 62 22 2c 09 20 ...pci_handler.},.....{."usb",..
1ba0 20 20 20 75 73 62 5f 68 61 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 7b 20 22 69 65 65 65 31 33 39 ...usb_handler.},.....{."ieee139
1bc0 34 22 2c 20 20 20 69 65 65 65 31 33 39 34 5f 68 61 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 7b 20 4",...ieee1394_handler.},.....{.
1be0 22 63 70 75 22 2c 09 20 20 20 20 63 70 75 5f 68 61 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 7b 20 "cpu",.....cpu_handler.},.....{.
1c00 22 6e 65 74 22 2c 09 20 20 20 20 6e 65 74 5f 68 61 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 7b 20 "net",.....net_handler.},.....{.
1c20 22 64 6f 63 6b 22 2c 09 20 20 20 20 64 6f 63 6b 5f 68 61 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 "dock",.....dock_handler.},.....
1c40 7b 20 4e 55 4c 4c 2c 09 20 20 20 20 4e 55 4c 4c 20 7d 0a 7d 3b 0a 0a 69 6e 74 20 68 6f 74 70 6c {.NULL,.....NULL.}.};..int.hotpl
1c60 75 67 5f 6d 61 69 6e 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a 61 72 67 76 5b 5d 29 0a ug_main(int.argc,.char.*argv[]).
1c80 7b 0a 20 20 20 20 69 66 20 28 61 72 67 63 20 21 3d 20 32 29 20 7b 0a 09 64 62 67 20 28 22 75 6e {.....if.(argc.!=.2).{..dbg.("un
1ca0 6b 6e 6f 77 6e 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 22 29 3b 0a 09 72 65 known.number.of.arguments");..re
1cc0 74 75 72 6e 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 2f 2a 20 70 61 73 73 20 63 6f 6e 74 72 6f turn.1;.....}...../*.pass.contro
1ce0 6c 20 74 6f 20 74 68 65 20 73 75 62 73 79 73 74 65 6d 20 73 70 65 63 69 66 69 65 64 20 62 79 20 l.to.the.subsystem.specified.by.
1d00 61 72 67 76 5b 31 5d 2e 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 63 61 6c 6c 5f 73 75 62 73 argv[1]..*/.....return.call_subs
1d20 79 73 74 65 6d 20 28 61 72 67 76 5b 31 5d 2c 20 6d 61 69 6e 5f 73 75 62 73 79 73 74 65 6d 29 3b ystem.(argv[1],.main_subsystem);
1d40 0a 7d 0a 0a 0a 0a 2f 2a 20 54 68 65 20 69 65 65 65 31 33 39 34 20 66 75 6e 63 74 69 6f 6e 73 20 .}..../*.The.ieee1394.functions.
1d60 2a 2f 0a 23 64 65 66 69 6e 65 20 49 45 45 45 31 33 39 34 5f 4d 41 54 43 48 5f 56 45 4e 44 4f 52 */.#define.IEEE1394_MATCH_VENDOR
1d80 5f 49 44 09 30 78 30 30 30 31 0a 23 64 65 66 69 6e 65 20 49 45 45 45 31 33 39 34 5f 4d 41 54 43 _ID.0x0001.#define.IEEE1394_MATC
1da0 48 5f 4d 4f 44 45 4c 5f 49 44 09 09 30 78 30 30 30 32 0a 23 64 65 66 69 6e 65 20 49 45 45 45 31 H_MODEL_ID..0x0002.#define.IEEE1
1dc0 33 39 34 5f 4d 41 54 43 48 5f 53 50 45 43 49 46 49 45 52 5f 49 44 09 30 78 30 30 30 34 0a 23 64 394_MATCH_SPECIFIER_ID.0x0004.#d
1de0 65 66 69 6e 65 20 49 45 45 45 31 33 39 34 5f 4d 41 54 43 48 5f 56 45 52 53 49 4f 4e 09 09 30 78 efine.IEEE1394_MATCH_VERSION..0x
1e00 30 30 30 38 0a 0a 73 74 72 75 63 74 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 0008..struct.ieee1394_module_map
1e20 20 7b 0a 09 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 6d 6f 64 75 6c 65 5f 6e 61 6d 65 3b 0a 09 75 .{..const.char.*.module_name;..u
1e40 6e 73 69 67 6e 65 64 20 69 6e 74 20 6d 61 74 63 68 5f 66 6c 61 67 73 3b 0a 09 75 6e 73 69 67 6e nsigned.int.match_flags;..unsign
1e60 65 64 20 69 6e 74 20 76 65 6e 64 6f 72 5f 69 64 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 ed.int.vendor_id;..unsigned.int.
1e80 6d 6f 64 65 6c 5f 69 64 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 70 65 63 69 66 69 65 model_id;..unsigned.int.specifie
1ea0 72 5f 69 64 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 76 65 72 73 69 6f 6e 3b 0a 7d 20 5f r_id;..unsigned.int.version;.}._
1ec0 5f 61 74 74 72 69 62 75 74 65 5f 5f 20 28 28 70 61 63 6b 65 64 29 29 3b 0a 73 74 61 74 69 63 20 _attribute__.((packed));.static.
1ee0 73 74 72 75 63 74 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2a 69 65 65 65 struct.ieee1394_module_map.*ieee
1f00 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 3b 0a 0a 76 6f 69 64 20 69 65 65 65 31 33 39 34 5f 1394_module_map;..void.ieee1394_
1f20 72 65 61 64 5f 70 63 69 6d 61 70 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 46 49 4c 45 20 2a 69 65 read_pcimap(void).{.....FILE.*ie
1f40 65 65 31 33 39 34 6d 61 70 5f 66 69 6c 65 3b 0a 20 20 20 20 73 74 72 75 63 74 20 75 74 73 6e 61 ee1394map_file;.....struct.utsna
1f60 6d 65 20 75 74 73 6e 61 6d 65 3b 0a 20 20 20 20 73 74 72 75 63 74 20 69 65 65 65 31 33 39 34 5f me.utsname;.....struct.ieee1394_
1f80 6d 6f 64 75 6c 65 5f 6d 61 70 20 2a 65 6e 74 72 79 20 3d 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 module_map.*entry.=.ieee1394_mod
1fa0 75 6c 65 5f 6d 61 70 3b 0a 20 20 20 20 63 68 61 72 20 2a 70 72 65 76 6d 6f 64 75 6c 65 20 3d 20 ule_map;.....char.*prevmodule.=.
1fc0 22 22 3b 0a 20 20 20 20 63 68 61 72 20 66 69 6c 65 6e 61 6d 65 5b 4d 41 58 50 41 54 48 4c 45 4e "";.....char.filename[MAXPATHLEN
1fe0 5d 3b 0a 20 20 20 20 63 68 61 72 20 6c 69 6e 65 5b 4c 49 4e 45 4c 45 4e 47 54 48 5d 3b 0a 20 20 ];.....char.line[LINELENGTH];...
2000 20 20 63 68 61 72 20 6d 6f 64 75 6c 65 5b 4c 49 4e 45 4c 45 4e 47 54 48 5d 3b 0a 20 20 20 20 69 ..char.module[LINELENGTH];.....i
2020 6e 74 20 63 6f 75 6e 74 2c 20 6d 61 70 73 69 7a 65 3b 0a 0a 20 20 20 20 69 66 20 28 75 6e 61 6d nt.count,.mapsize;......if.(unam
2040 65 28 26 75 74 73 6e 61 6d 65 29 20 3c 20 30 29 20 7b 0a 09 70 65 72 72 6f 72 28 22 75 6e 61 6d e(&utsname).<.0).{..perror("unam
2060 65 22 29 3b 0a 09 65 78 69 74 28 31 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 73 70 72 69 6e 74 66 e");..exit(1);.....}.....sprintf
2080 28 66 69 6c 65 6e 61 6d 65 2c 20 22 2f 6c 69 62 2f 6d 6f 64 75 6c 65 73 2f 25 73 2f 6d 6f 64 75 (filename,."/lib/modules/%s/modu
20a0 6c 65 73 2e 69 65 65 65 31 33 39 34 6d 61 70 22 2c 20 75 74 73 6e 61 6d 65 2e 72 65 6c 65 61 73 les.ieee1394map",.utsname.releas
20c0 65 29 3b 0a 20 20 20 20 69 66 20 28 28 69 65 65 65 31 33 39 34 6d 61 70 5f 66 69 6c 65 20 3d 20 e);.....if.((ieee1394map_file.=.
20e0 66 6f 70 65 6e 28 66 69 6c 65 6e 61 6d 65 2c 20 22 72 22 29 29 20 3d 3d 20 4e 55 4c 4c 29 20 7b fopen(filename,."r")).==.NULL).{
2100 0a 09 62 62 5f 70 65 72 72 6f 72 5f 6d 73 67 5f 61 6e 64 5f 64 69 65 28 22 43 6f 75 6c 64 20 6e ..bb_perror_msg_and_die("Could.n
2120 6f 74 20 6f 70 65 6e 20 25 73 22 2c 20 66 69 6c 65 6e 61 6d 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 ot.open.%s",.filename);.....}...
2140 20 20 20 63 6f 75 6e 74 20 3d 20 6d 61 70 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 77 68 69 6c ...count.=.mapsize.=.0;.....whil
2160 65 28 66 67 65 74 73 28 6c 69 6e 65 2c 20 4c 49 4e 45 4c 45 4e 47 54 48 2c 20 69 65 65 65 31 33 e(fgets(line,.LINELENGTH,.ieee13
2180 39 34 6d 61 70 5f 66 69 6c 65 29 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 0a 09 69 66 20 28 6c 69 6e 94map_file).!=.NULL).{...if.(lin
21a0 65 5b 30 5d 20 3d 3d 20 27 23 27 29 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 0a 09 63 6f e[0].==.'#')......continue;...co
21c0 75 6e 74 2b 2b 3b 0a 09 69 66 20 28 63 6f 75 6e 74 20 3e 3d 20 6d 61 70 73 69 7a 65 29 20 7b 0a unt++;..if.(count.>=.mapsize).{.
21e0 09 20 20 20 20 6d 61 70 73 69 7a 65 2b 3d 31 30 30 3b 0a 09 20 20 20 20 69 65 65 65 31 33 39 34 .....mapsize+=100;......ieee1394
2200 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 3d 20 78 72 65 61 6c 6c 6f 63 28 69 65 65 65 31 33 39 34 5f _module_map.=.xrealloc(ieee1394_
2220 6d 6f 64 75 6c 65 5f 6d 61 70 2c 20 28 73 69 7a 65 6f 66 28 73 74 72 75 63 74 20 69 65 65 65 31 module_map,.(sizeof(struct.ieee1
2240 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 29 20 2a 20 6d 61 70 73 69 7a 65 29 29 3b 0a 09 20 20 394_module_map).*.mapsize));....
2260 20 20 65 6e 74 72 79 20 3d 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2b 20 ..entry.=.ieee1394_module_map.+.
2280 63 6f 75 6e 74 20 2d 20 31 3b 0a 09 20 20 20 20 6d 65 6d 73 65 74 28 65 6e 74 72 79 2c 20 30 2c count.-.1;......memset(entry,.0,
22a0 20 28 73 69 7a 65 6f 66 28 73 74 72 75 63 74 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f .(sizeof(struct.ieee1394_module_
22c0 6d 61 70 29 20 2a 20 31 30 30 29 29 3b 0a 09 7d 0a 0a 09 69 66 20 28 73 73 63 61 6e 66 28 6c 69 map).*.100));..}...if.(sscanf(li
22e0 6e 65 2c 20 22 25 73 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 ne,."%s.0x%x.0x%x.0x%x.0x%x.0x%x
2300 22 2c 0a 09 09 20 20 20 20 6d 6f 64 75 6c 65 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 6d ",.......module,.......&entry->m
2320 61 74 63 68 5f 66 6c 61 67 73 2c 20 26 65 6e 74 72 79 2d 3e 76 65 6e 64 6f 72 5f 69 64 2c 0a 09 atch_flags,.&entry->vendor_id,..
2340 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 6d 6f 64 65 6c 5f 69 64 2c 20 26 65 6e 74 72 79 2d 3e 73 .....&entry->model_id,.&entry->s
2360 70 65 63 69 66 69 65 72 5f 69 64 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 76 65 72 73 69 pecifier_id,.......&entry->versi
2380 6f 6e 29 20 21 3d 20 36 29 20 7b 0a 09 20 20 20 20 62 62 5f 65 72 72 6f 72 5f 6d 73 67 28 22 6d on).!=.6).{......bb_error_msg("m
23a0 6f 64 75 6c 65 73 2e 69 65 65 65 31 33 39 34 6d 61 70 20 75 6e 70 61 72 73 61 62 6c 65 20 6c 69 odules.ieee1394map.unparsable.li
23c0 6e 65 3a 20 25 73 2e 5c 6e 22 2c 20 6c 69 6e 65 29 3b 0a 09 20 20 20 20 66 72 65 65 28 65 6e 74 ne:.%s.\n",.line);......free(ent
23e0 72 79 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 0a 09 2f 2a 20 4f 70 74 69 ry);......continue;..}.../*.Opti
2400 6d 69 7a 65 20 6d 65 6d 6f 72 79 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 61 20 62 69 74 2c 20 69 6e mize.memory.allocation.a.bit,.in
2420 20 63 61 73 65 20 73 6f 6d 65 64 61 79 20 77 65 0a 09 20 20 20 68 61 76 65 20 4c 69 6e 75 78 20 .case.someday.we.....have.Linux.
2440 73 79 73 74 65 6d 73 20 77 69 74 68 20 7e 31 30 30 2c 30 30 30 20 6d 6f 64 75 6c 65 73 2e 20 20 systems.with.~100,000.modules...
2460 49 74 20 61 6c 73 6f 0a 09 20 20 20 61 6c 6c 6f 77 73 20 75 73 20 74 6f 20 6a 75 73 74 20 63 6f It.also.....allows.us.to.just.co
2480 6d 70 61 72 65 20 70 6f 69 6e 74 65 72 73 20 74 6f 20 61 76 6f 69 64 20 74 72 79 69 6e 67 0a 09 mpare.pointers.to.avoid.trying..
24a0 20 20 20 74 6f 20 6c 6f 61 64 20 61 20 6d 6f 64 75 6c 65 20 74 77 69 63 65 2e 20 2a 2f 0a 09 69 ...to.load.a.module.twice..*/..i
24c0 66 20 28 73 74 72 63 6d 70 28 6d 6f 64 75 6c 65 2c 20 70 72 65 76 6d 6f 64 75 6c 65 29 20 21 3d f.(strcmp(module,.prevmodule).!=
24e0 20 30 29 20 7b 0a 09 20 20 20 20 70 72 65 76 6d 6f 64 75 6c 65 20 3d 20 78 6d 61 6c 6c 6f 63 28 .0).{......prevmodule.=.xmalloc(
2500 73 74 72 6c 65 6e 28 6d 6f 64 75 6c 65 29 2b 31 29 3b 0a 09 20 20 20 20 73 74 72 63 70 79 28 70 strlen(module)+1);......strcpy(p
2520 72 65 76 6d 6f 64 75 6c 65 2c 20 6d 6f 64 75 6c 65 29 3b 0a 09 7d 0a 09 65 6e 74 72 79 2d 3e 6d revmodule,.module);..}..entry->m
2540 6f 64 75 6c 65 5f 6e 61 6d 65 20 3d 20 70 72 65 76 6d 6f 64 75 6c 65 3b 0a 20 20 20 20 7d 0a 20 odule_name.=.prevmodule;.....}..
2560 20 20 20 66 63 6c 6f 73 65 28 69 65 65 65 31 33 39 34 6d 61 70 5f 66 69 6c 65 29 3b 0a 7d 0a 73 ...fclose(ieee1394map_file);.}.s
2580 74 61 74 69 63 20 69 6e 74 20 69 65 65 65 31 33 39 34 5f 6d 61 74 63 68 28 75 6e 73 69 67 6e 65 tatic.int.ieee1394_match(unsigne
25a0 64 20 69 6e 74 20 76 65 6e 64 6f 72 5f 69 64 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 70 d.int.vendor_id,.unsigned.int.sp
25c0 65 63 69 66 69 65 72 5f 69 64 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 76 65 72 73 69 6f 6e ecifier_id,.unsigned.int.version
25e0 29 0a 7b 0a 20 20 20 20 69 6e 74 20 69 3b 0a 20 20 20 20 69 6e 74 20 72 65 74 76 61 6c 3b 0a 0a ).{.....int.i;.....int.retval;..
2600 20 20 20 20 64 62 67 20 28 22 76 65 6e 64 6f 72 5f 69 64 20 3d 20 25 78 2c 20 73 70 65 63 69 66 ....dbg.("vendor_id.=.%x,.specif
2620 69 65 72 5f 69 64 20 3d 20 25 78 2c 20 76 65 72 73 69 6f 6e 20 3d 20 25 78 22 2c 0a 09 20 20 20 ier_id.=.%x,.version.=.%x",.....
2640 20 76 65 6e 64 6f 72 5f 69 64 2c 20 73 70 65 63 69 66 69 65 72 5f 69 64 2c 20 76 65 72 73 69 6f .vendor_id,.specifier_id,.versio
2660 6e 29 3b 0a 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 69 65 65 65 31 33 39 34 5f 6d 6f n);......for.(i.=.0;.ieee1394_mo
2680 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 21 3d 20 4e 55 4c 4c 3b dule_map[i].module_name.!=.NULL;
26a0 20 2b 2b 69 29 20 7b 0a 09 64 62 67 20 28 22 6c 6f 6f 6b 69 6e 67 20 61 74 20 25 73 2c 20 6d 61 .++i).{..dbg.("looking.at.%s,.ma
26c0 74 63 68 5f 66 6c 61 67 73 20 3d 20 25 78 22 2c 0a 09 09 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 tch_flags.=.%x",...ieee1394_modu
26e0 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 2c 0a 09 09 69 65 65 65 31 33 39 le_map[i].module_name,...ieee139
2700 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 29 3b 0a 09 69 4_module_map[i].match_flags);..i
2720 66 20 28 28 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 f.((ieee1394_module_map[i].match
2740 5f 66 6c 61 67 73 20 26 20 49 45 45 45 31 33 39 34 5f 4d 41 54 43 48 5f 56 45 4e 44 4f 52 5f 49 _flags.&.IEEE1394_MATCH_VENDOR_I
2760 44 29 20 26 26 0a 09 09 28 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e D).&&...(ieee1394_module_map[i].
2780 76 65 6e 64 6f 72 5f 69 64 20 21 3d 20 76 65 6e 64 6f 72 5f 69 64 29 29 20 7b 0a 09 20 20 20 20 vendor_id.!=.vendor_id)).{......
27a0 64 62 67 20 28 22 76 65 6e 64 6f 72 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 dbg.("vendor.check.failed.%x.!=.
27c0 25 78 22 2c 0a 09 09 20 20 20 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 %x",.......ieee1394_module_map[i
27e0 5d 2e 76 65 6e 64 6f 72 5f 69 64 2c 0a 09 09 20 20 20 20 76 65 6e 64 6f 72 5f 69 64 29 3b 0a 09 ].vendor_id,.......vendor_id);..
2800 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 09 69 66 20 28 28 69 65 65 65 31 33 39 34 5f ....continue;..}..if.((ieee1394_
2820 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 49 45 45 45 module_map[i].match_flags.&.IEEE
2840 31 33 39 34 5f 4d 41 54 43 48 5f 53 50 45 43 49 46 49 45 52 5f 49 44 29 20 26 26 0a 09 09 28 69 1394_MATCH_SPECIFIER_ID).&&...(i
2860 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 73 70 65 63 69 66 69 65 72 5f eee1394_module_map[i].specifier_
2880 69 64 20 21 3d 20 73 70 65 63 69 66 69 65 72 5f 69 64 29 29 20 7b 0a 09 20 20 20 20 64 62 67 20 id.!=.specifier_id)).{......dbg.
28a0 28 22 73 70 65 63 69 66 69 65 72 5f 69 64 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 ("specifier_id.check.failed.%x.!
28c0 3d 20 25 78 22 2c 0a 09 09 20 20 20 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 =.%x",.......ieee1394_module_map
28e0 5b 69 5d 2e 73 70 65 63 69 66 69 65 72 5f 69 64 2c 0a 09 09 20 20 20 20 73 70 65 63 69 66 69 65 [i].specifier_id,.......specifie
2900 72 5f 69 64 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 09 69 66 20 28 28 69 r_id);......continue;..}..if.((i
2920 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 eee1394_module_map[i].match_flag
2940 73 20 26 20 49 45 45 45 31 33 39 34 5f 4d 41 54 43 48 5f 56 45 52 53 49 4f 4e 29 20 26 26 0a 09 s.&.IEEE1394_MATCH_VERSION).&&..
2960 09 28 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 76 65 72 73 69 6f 6e .(ieee1394_module_map[i].version
2980 20 21 3d 20 76 65 72 73 69 6f 6e 29 29 20 7b 0a 09 20 20 20 20 64 62 67 20 28 22 76 65 72 73 69 .!=.version)).{......dbg.("versi
29a0 6f 6e 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 0a 09 09 20 20 20 on.check.failed.%x.!=.%x",......
29c0 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 76 65 72 73 69 6f 6e 2c .ieee1394_module_map[i].version,
29e0 0a 09 09 20 20 20 20 76 65 72 73 69 6f 6e 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a .......version);......continue;.
2a00 09 7d 0a 09 2f 2a 20 66 6f 75 6e 64 20 6f 6e 65 21 20 2a 2f 0a 09 64 62 67 20 28 22 6c 6f 61 64 .}../*.found.one!.*/..dbg.("load
2a20 69 6e 67 20 25 73 22 2c 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e ing.%s",.ieee1394_module_map[i].
2a40 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 72 65 74 76 61 6c 20 3d 20 6c 6f 61 64 5f 6d 6f 64 module_name);..retval.=.load_mod
2a60 75 6c 65 20 28 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 ule.(ieee1394_module_map[i].modu
2a80 6c 65 5f 6e 61 6d 65 29 3b 0a 09 69 66 20 28 72 65 74 76 61 6c 29 0a 09 20 20 20 20 72 65 74 75 le_name);..if.(retval)......retu
2aa0 72 6e 20 72 65 74 76 61 6c 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a rn.retval;.....}......return.0;.
2ac0 7d 0a 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 69 65 65 65 31 33 39 34 5f 61 64 64 20 28 76 6f 69 }...static.int.ieee1394_add.(voi
2ae0 64 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 76 65 6e 64 6f 72 5f 65 6e 76 3b 0a 20 20 20 20 63 d).{.....char.*vendor_env;.....c
2b00 68 61 72 20 2a 73 70 65 63 69 66 69 65 72 5f 65 6e 76 3b 0a 20 20 20 20 63 68 61 72 20 2a 76 65 har.*specifier_env;.....char.*ve
2b20 72 73 69 6f 6e 5f 65 6e 76 3b 0a 20 20 20 20 69 6e 74 20 65 72 72 6f 72 3b 0a 20 20 20 20 75 6e rsion_env;.....int.error;.....un
2b40 73 69 67 6e 65 64 20 69 6e 74 20 76 65 6e 64 6f 72 5f 69 64 3b 0a 20 20 20 20 75 6e 73 69 67 6e signed.int.vendor_id;.....unsign
2b60 65 64 20 69 6e 74 20 73 70 65 63 69 66 69 65 72 5f 69 64 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 ed.int.specifier_id;.....unsigne
2b80 64 20 69 6e 74 20 76 65 72 73 69 6f 6e 3b 0a 0a 20 20 20 20 69 65 65 65 31 33 39 34 5f 72 65 61 d.int.version;......ieee1394_rea
2ba0 64 5f 70 63 69 6d 61 70 28 29 3b 0a 0a 20 20 20 20 76 65 6e 64 6f 72 5f 65 6e 76 20 3d 20 67 65 d_pcimap();......vendor_env.=.ge
2bc0 74 65 6e 76 20 28 22 56 45 4e 44 4f 52 5f 49 44 22 29 3b 0a 20 20 20 20 73 70 65 63 69 66 69 65 tenv.("VENDOR_ID");.....specifie
2be0 72 5f 65 6e 76 20 3d 20 67 65 74 65 6e 76 20 28 22 53 50 45 43 49 46 49 45 52 5f 49 44 22 29 3b r_env.=.getenv.("SPECIFIER_ID");
2c00 0a 20 20 20 20 76 65 72 73 69 6f 6e 5f 65 6e 76 20 3d 20 67 65 74 65 6e 76 20 28 22 56 45 52 53 .....version_env.=.getenv.("VERS
2c20 49 4f 4e 22 29 3b 0a 20 20 20 20 69 66 20 28 28 76 65 6e 64 6f 72 5f 65 6e 76 20 3d 3d 20 4e 55 ION");.....if.((vendor_env.==.NU
2c40 4c 4c 29 20 7c 7c 0a 09 20 20 20 20 28 73 70 65 63 69 66 69 65 72 5f 65 6e 76 20 3d 3d 20 4e 55 LL).||......(specifier_env.==.NU
2c60 4c 4c 29 20 7c 7c 0a 09 20 20 20 20 28 76 65 72 73 69 6f 6e 5f 65 6e 76 20 3d 3d 20 4e 55 4c 4c LL).||......(version_env.==.NULL
2c80 29 29 20 7b 0a 09 64 62 67 20 28 22 6d 69 73 73 69 6e 67 20 61 6e 20 65 6e 76 69 72 6f 6e 6d 65 )).{..dbg.("missing.an.environme
2ca0 6e 74 20 76 61 72 69 61 62 6c 65 2c 20 61 62 6f 72 74 69 6e 67 2e 22 29 3b 0a 09 72 65 74 75 72 nt.variable,.aborting.");..retur
2cc0 6e 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 76 65 6e 64 6f 72 5f 69 64 20 3d 20 73 74 72 74 6f n.1;.....}.....vendor_id.=.strto
2ce0 75 6c 20 28 76 65 6e 64 6f 72 5f 65 6e 76 2c 20 4e 55 4c 4c 2c 20 31 36 29 3b 0a 20 20 20 20 73 ul.(vendor_env,.NULL,.16);.....s
2d00 70 65 63 69 66 69 65 72 5f 69 64 20 3d 20 73 74 72 74 6f 75 6c 20 28 73 70 65 63 69 66 69 65 72 pecifier_id.=.strtoul.(specifier
2d20 5f 65 6e 76 2c 20 4e 55 4c 4c 2c 20 31 36 29 3b 0a 20 20 20 20 76 65 72 73 69 6f 6e 20 3d 20 73 _env,.NULL,.16);.....version.=.s
2d40 74 72 74 6f 75 6c 20 28 76 65 72 73 69 6f 6e 5f 65 6e 76 2c 20 4e 55 4c 4c 2c 20 31 36 29 3b 0a trtoul.(version_env,.NULL,.16);.
2d60 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 69 65 65 65 31 33 39 34 5f 6d 61 74 63 68 20 28 76 65 6e .....error.=.ieee1394_match.(ven
2d80 64 6f 72 5f 69 64 2c 20 73 70 65 63 69 66 69 65 72 5f 69 64 2c 20 76 65 72 73 69 6f 6e 29 3b 0a dor_id,.specifier_id,.version);.
2da0 0a 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 69 6e .....return.error;.}...static.in
2dc0 74 20 69 65 65 65 31 33 39 34 5f 72 65 6d 6f 76 65 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 2f t.ieee1394_remove.(void).{...../
2de0 2a 20 72 69 67 68 74 20 6e 6f 77 20 77 65 20 64 6f 6e 27 74 20 64 6f 20 61 6e 79 74 68 69 6e 67 *.right.now.we.don't.do.anything
2e00 20 68 65 72 65 20 3a 29 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 73 74 .here.:).*/.....return.0;.}...st
2e20 61 74 69 63 20 73 74 72 75 63 74 20 73 75 62 73 79 73 74 65 6d 20 69 65 65 65 31 33 39 34 5f 73 atic.struct.subsystem.ieee1394_s
2e40 75 62 73 79 73 74 65 6d 5b 5d 20 3d 20 7b 0a 20 20 20 20 7b 20 41 44 44 5f 53 54 52 49 4e 47 2c ubsystem[].=.{.....{.ADD_STRING,
2e60 20 69 65 65 65 31 33 39 34 5f 61 64 64 20 7d 2c 0a 20 20 20 20 7b 20 52 45 4d 4f 56 45 5f 53 54 .ieee1394_add.},.....{.REMOVE_ST
2e80 52 49 4e 47 2c 20 69 65 65 65 31 33 39 34 5f 72 65 6d 6f 76 65 20 7d 2c 0a 20 20 20 20 7b 20 4e RING,.ieee1394_remove.},.....{.N
2ea0 55 4c 4c 2c 20 4e 55 4c 4c 20 7d 0a 7d 3b 0a 0a 0a 69 6e 74 20 69 65 65 65 31 33 39 34 5f 68 61 ULL,.NULL.}.};...int.ieee1394_ha
2ec0 6e 64 6c 65 72 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 20 61 63 74 69 6f 6e ndler.(void).{.....char.*.action
2ee0 3b 0a 20 20 20 20 61 63 74 69 6f 6e 20 3d 20 67 65 74 65 6e 76 20 28 22 41 43 54 49 4f 4e 22 29 ;.....action.=.getenv.("ACTION")
2f00 3b 0a 20 20 20 20 64 62 67 20 28 22 61 63 74 69 6f 6e 20 3d 20 25 73 22 2c 20 61 63 74 69 6f 6e ;.....dbg.("action.=.%s",.action
2f20 29 3b 0a 20 20 20 20 69 66 20 28 61 63 74 69 6f 6e 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 09 64 62 );.....if.(action.==.NULL).{..db
2f40 67 20 28 22 6d 69 73 73 69 6e 67 20 41 43 54 49 4f 4e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 g.("missing.ACTION.environment.v
2f60 61 72 69 61 62 6c 65 2c 20 61 62 6f 72 74 69 6e 67 2e 22 29 3b 0a 09 72 65 74 75 72 6e 20 31 3b ariable,.aborting.");..return.1;
2f80 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 63 61 6c 6c 5f 73 75 62 73 79 73 74 65 6d .....}.....return.call_subsystem
2fa0 20 28 61 63 74 69 6f 6e 2c 20 69 65 65 65 31 33 39 34 5f 73 75 62 73 79 73 74 65 6d 29 3b 0a 7d .(action,.ieee1394_subsystem);.}
2fc0 0a 0a 2f 2a 20 54 68 65 20 70 63 69 20 66 75 6e 63 74 69 6f 6e 73 20 2a 2f 0a 23 64 65 66 69 6e ../*.The.pci.functions.*/.#defin
2fe0 65 20 50 43 49 5f 41 4e 59 09 09 09 09 30 78 66 66 66 66 66 66 66 66 0a 0a 73 74 72 75 63 74 20 e.PCI_ANY....0xffffffff..struct.
3000 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 pci_module_map.{.....const.char.
3020 2a 20 6d 6f 64 75 6c 65 5f 6e 61 6d 65 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 *.module_name;.....unsigned.int.
3040 76 65 6e 64 6f 72 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 65 76 69 63 65 3b vendor;.....unsigned.int.device;
3060 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 76 65 6e 64 6f 72 3b 0a 20 20 20 .....unsigned.int.subvendor;....
3080 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 64 65 76 69 63 65 3b 0a 20 20 20 20 75 6e 73 .unsigned.int.subdevice;.....uns
30a0 69 67 6e 65 64 20 69 6e 74 20 63 6c 61 73 73 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e igned.int.class;.....unsigned.in
30c0 74 20 63 6c 61 73 73 5f 6d 61 73 6b 3b 0a 7d 20 5f 5f 61 74 74 72 69 62 75 74 65 5f 5f 20 28 28 t.class_mask;.}.__attribute__.((
30e0 70 61 63 6b 65 64 29 29 3b 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 20 70 63 69 5f 6d 6f 64 75 packed));.static.struct.pci_modu
3100 6c 65 5f 6d 61 70 20 2a 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 3b 0a 0a 76 6f 69 64 20 70 63 le_map.*pci_module_map;..void.pc
3120 69 5f 72 65 61 64 5f 70 63 69 6d 61 70 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 46 49 4c 45 20 2a i_read_pcimap(void).{.....FILE.*
3140 70 63 69 6d 61 70 5f 66 69 6c 65 3b 0a 20 20 20 20 73 74 72 75 63 74 20 75 74 73 6e 61 6d 65 20 pcimap_file;.....struct.utsname.
3160 75 74 73 6e 61 6d 65 3b 0a 20 20 20 20 73 74 72 75 63 74 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d utsname;.....struct.pci_module_m
3180 61 70 20 2a 65 6e 74 72 79 20 3d 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 3b 0a 20 20 20 20 ap.*entry.=.pci_module_map;.....
31a0 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 72 69 76 65 72 5f 64 61 74 61 3b 0a 20 20 20 20 63 68 unsigned.int.driver_data;.....ch
31c0 61 72 20 2a 70 72 65 76 6d 6f 64 75 6c 65 20 3d 20 22 22 3b 0a 20 20 20 20 63 68 61 72 20 66 69 ar.*prevmodule.=."";.....char.fi
31e0 6c 65 6e 61 6d 65 5b 4d 41 58 50 41 54 48 4c 45 4e 5d 3b 0a 20 20 20 20 63 68 61 72 20 6c 69 6e lename[MAXPATHLEN];.....char.lin
3200 65 5b 4c 49 4e 45 4c 45 4e 47 54 48 5d 3b 0a 20 20 20 20 63 68 61 72 20 6d 6f 64 75 6c 65 5b 4c e[LINELENGTH];.....char.module[L
3220 49 4e 45 4c 45 4e 47 54 48 5d 3b 0a 20 20 20 20 69 6e 74 20 63 6f 75 6e 74 2c 20 6d 61 70 73 69 INELENGTH];.....int.count,.mapsi
3240 7a 65 3b 0a 0a 20 20 20 20 69 66 20 28 75 6e 61 6d 65 28 26 75 74 73 6e 61 6d 65 29 20 3c 20 30 ze;......if.(uname(&utsname).<.0
3260 29 20 7b 0a 09 70 65 72 72 6f 72 28 22 75 6e 61 6d 65 22 29 3b 0a 09 65 78 69 74 28 31 29 3b 0a ).{..perror("uname");..exit(1);.
3280 20 20 20 20 7d 0a 20 20 20 20 73 70 72 69 6e 74 66 28 66 69 6c 65 6e 61 6d 65 2c 20 22 2f 6c 69 ....}.....sprintf(filename,."/li
32a0 62 2f 6d 6f 64 75 6c 65 73 2f 25 73 2f 6d 6f 64 75 6c 65 73 2e 70 63 69 6d 61 70 22 2c 20 75 74 b/modules/%s/modules.pcimap",.ut
32c0 73 6e 61 6d 65 2e 72 65 6c 65 61 73 65 29 3b 0a 20 20 20 20 69 66 20 28 28 70 63 69 6d 61 70 5f sname.release);.....if.((pcimap_
32e0 66 69 6c 65 20 3d 20 66 6f 70 65 6e 28 66 69 6c 65 6e 61 6d 65 2c 20 22 72 22 29 29 20 3d 3d 20 file.=.fopen(filename,."r")).==.
3300 4e 55 4c 4c 29 20 7b 0a 09 62 62 5f 70 65 72 72 6f 72 5f 6d 73 67 5f 61 6e 64 5f 64 69 65 28 22 NULL).{..bb_perror_msg_and_die("
3320 43 6f 75 6c 64 20 6e 6f 74 20 6f 70 65 6e 20 25 73 22 2c 20 66 69 6c 65 6e 61 6d 65 29 3b 0a 20 Could.not.open.%s",.filename);..
3340 20 20 20 7d 0a 0a 20 20 20 20 63 6f 75 6e 74 20 3d 20 6d 61 70 73 69 7a 65 20 3d 20 30 3b 0a 20 ...}......count.=.mapsize.=.0;..
3360 20 20 20 77 68 69 6c 65 28 66 67 65 74 73 28 6c 69 6e 65 2c 20 4c 49 4e 45 4c 45 4e 47 54 48 2c ...while(fgets(line,.LINELENGTH,
3380 20 70 63 69 6d 61 70 5f 66 69 6c 65 29 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 0a 09 69 66 20 28 6c .pcimap_file).!=.NULL).{...if.(l
33a0 69 6e 65 5b 30 5d 20 3d 3d 20 27 23 27 29 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 0a 09 ine[0].==.'#')......continue;...
33c0 63 6f 75 6e 74 2b 2b 3b 0a 09 69 66 20 28 63 6f 75 6e 74 20 3e 3d 20 6d 61 70 73 69 7a 65 29 20 count++;..if.(count.>=.mapsize).
33e0 7b 0a 09 20 20 20 20 6d 61 70 73 69 7a 65 2b 3d 31 30 30 3b 0a 09 20 20 20 20 70 63 69 5f 6d 6f {......mapsize+=100;......pci_mo
3400 64 75 6c 65 5f 6d 61 70 20 3d 20 78 72 65 61 6c 6c 6f 63 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d dule_map.=.xrealloc(pci_module_m
3420 61 70 2c 20 28 73 69 7a 65 6f 66 28 73 74 72 75 63 74 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 ap,.(sizeof(struct.pci_module_ma
3440 70 29 20 2a 20 6d 61 70 73 69 7a 65 29 29 3b 0a 09 20 20 20 20 65 6e 74 72 79 20 3d 20 70 63 69 p).*.mapsize));......entry.=.pci
3460 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2b 20 63 6f 75 6e 74 20 2d 20 31 3b 0a 09 20 20 20 20 6d 65 _module_map.+.count.-.1;......me
3480 6d 73 65 74 28 65 6e 74 72 79 2c 20 30 2c 20 28 73 69 7a 65 6f 66 28 73 74 72 75 63 74 20 70 63 mset(entry,.0,.(sizeof(struct.pc
34a0 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 29 20 2a 20 31 30 30 29 29 3b 0a 09 7d 0a 09 65 6e 74 72 79 i_module_map).*.100));..}..entry
34c0 20 3d 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2b 20 63 6f 75 6e 74 20 2d 20 31 3b 0a 0a .=.pci_module_map.+.count.-.1;..
34e0 09 69 66 20 28 73 73 63 61 6e 66 28 6c 69 6e 65 2c 20 22 25 73 20 30 78 25 78 20 30 78 25 78 20 .if.(sscanf(line,."%s.0x%x.0x%x.
3500 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 22 2c 0a 09 09 20 20 20 0x%x.0x%x.0x%x.0x%x.0x%x",......
3520 20 6d 6f 64 75 6c 65 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 76 65 6e 64 6f 72 2c 20 26 .module,.......&entry->vendor,.&
3540 65 6e 74 72 79 2d 3e 64 65 76 69 63 65 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 73 75 62 entry->device,.......&entry->sub
3560 76 65 6e 64 6f 72 2c 20 26 65 6e 74 72 79 2d 3e 73 75 62 64 65 76 69 63 65 2c 0a 09 09 20 20 20 vendor,.&entry->subdevice,......
3580 20 26 65 6e 74 72 79 2d 3e 63 6c 61 73 73 2c 20 26 65 6e 74 72 79 2d 3e 63 6c 61 73 73 5f 6d 61 .&entry->class,.&entry->class_ma
35a0 73 6b 2c 0a 09 09 20 20 20 20 26 64 72 69 76 65 72 5f 64 61 74 61 29 20 21 3d 20 38 29 20 7b 0a sk,.......&driver_data).!=.8).{.
35c0 09 20 20 20 20 62 62 5f 65 72 72 6f 72 5f 6d 73 67 28 22 6d 6f 64 75 6c 65 73 2e 70 63 69 6d 61 .....bb_error_msg("modules.pcima
35e0 70 20 75 6e 70 61 72 73 61 62 6c 65 20 6c 69 6e 65 3a 20 25 73 2e 5c 6e 22 2c 20 6c 69 6e 65 29 p.unparsable.line:.%s.\n",.line)
3600 3b 0a 09 20 20 20 20 66 72 65 65 28 65 6e 74 72 79 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 ;......free(entry);......continu
3620 65 3b 0a 09 7d 0a 0a 09 2f 2a 20 4f 70 74 69 6d 69 7a 65 20 6d 65 6d 6f 72 79 20 61 6c 6c 6f 63 e;..}.../*.Optimize.memory.alloc
3640 61 74 69 6f 6e 20 61 20 62 69 74 2c 20 69 6e 20 63 61 73 65 20 73 6f 6d 65 64 61 79 20 77 65 0a ation.a.bit,.in.case.someday.we.
3660 09 20 20 20 68 61 76 65 20 4c 69 6e 75 78 20 73 79 73 74 65 6d 73 20 77 69 74 68 20 7e 31 30 30 ....have.Linux.systems.with.~100
3680 2c 30 30 30 20 6d 6f 64 75 6c 65 73 2e 20 20 49 74 20 61 6c 73 6f 0a 09 20 20 20 61 6c 6c 6f 77 ,000.modules...It.also.....allow
36a0 73 20 75 73 20 74 6f 20 6a 75 73 74 20 63 6f 6d 70 61 72 65 20 70 6f 69 6e 74 65 72 73 20 74 6f s.us.to.just.compare.pointers.to
36c0 20 61 76 6f 69 64 20 74 72 79 69 6e 67 0a 09 20 20 20 74 6f 20 6c 6f 61 64 20 61 20 6d 6f 64 75 .avoid.trying.....to.load.a.modu
36e0 6c 65 20 74 77 69 63 65 2e 20 2a 2f 0a 09 69 66 20 28 73 74 72 63 6d 70 28 6d 6f 64 75 6c 65 2c le.twice..*/..if.(strcmp(module,
3700 20 70 72 65 76 6d 6f 64 75 6c 65 29 20 21 3d 20 30 29 20 7b 0a 09 20 20 20 20 70 72 65 76 6d 6f .prevmodule).!=.0).{......prevmo
3720 64 75 6c 65 20 3d 20 78 6d 61 6c 6c 6f 63 28 73 74 72 6c 65 6e 28 6d 6f 64 75 6c 65 29 2b 31 29 dule.=.xmalloc(strlen(module)+1)
3740 3b 0a 09 20 20 20 20 73 74 72 63 70 79 28 70 72 65 76 6d 6f 64 75 6c 65 2c 20 6d 6f 64 75 6c 65 ;......strcpy(prevmodule,.module
3760 29 3b 0a 09 7d 0a 09 65 6e 74 72 79 2d 3e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 3d 20 70 72 65 76 );..}..entry->module_name.=.prev
3780 6d 6f 64 75 6c 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 66 63 6c 6f 73 65 28 70 63 69 6d 61 70 5f module;.....}.....fclose(pcimap_
37a0 66 69 6c 65 29 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 70 63 69 5f 6d 61 74 63 68 5f 76 file);.}..static.int.pci_match_v
37c0 65 6e 64 6f 72 20 28 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 76 65 6e 64 6f 72 2c 20 75 6e 73 69 endor.(unsigned.int.vendor,.unsi
37e0 67 6e 65 64 20 69 6e 74 20 64 65 76 69 63 65 2c 0a 09 09 09 20 75 6e 73 69 67 6e 65 64 20 69 6e gned.int.device,.....unsigned.in
3800 74 20 73 75 62 76 65 6e 64 6f 72 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 64 65 76 t.subvendor,.unsigned.int.subdev
3820 69 63 65 2c 0a 09 09 09 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 70 63 69 5f 63 6c 61 73 73 29 ice,.....unsigned.int.pci_class)
3840 0a 7b 0a 20 20 20 20 69 6e 74 20 69 3b 0a 20 20 20 20 69 6e 74 20 72 65 74 76 61 6c 3b 0a 20 20 .{.....int.i;.....int.retval;...
3860 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 63 6c 61 73 73 5f 74 65 6d 70 3b 0a 0a 20 20 20 20 ..unsigned.int.class_temp;......
3880 64 62 67 20 28 22 76 65 6e 64 6f 72 20 3d 20 25 78 2c 20 64 65 76 69 63 65 20 3d 20 25 78 2c 20 dbg.("vendor.=.%x,.device.=.%x,.
38a0 73 75 62 76 65 6e 64 6f 72 20 3d 20 25 78 2c 20 73 75 62 64 65 76 69 63 65 20 3d 20 25 78 22 2c subvendor.=.%x,.subdevice.=.%x",
38c0 0a 09 20 20 20 20 76 65 6e 64 6f 72 2c 20 64 65 76 69 63 65 2c 20 73 75 62 76 65 6e 64 6f 72 2c ......vendor,.device,.subvendor,
38e0 20 73 75 62 64 65 76 69 63 65 29 3b 0a 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 70 63 .subdevice);......for.(i.=.0;.pc
3900 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 21 3d 20 4e i_module_map[i].module_name.!=.N
3920 55 4c 4c 3b 20 2b 2b 69 29 20 7b 0a 09 64 62 67 20 28 22 6c 6f 6f 6b 69 6e 67 20 61 74 20 25 73 ULL;.++i).{..dbg.("looking.at.%s
3940 22 2c 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 ",.pci_module_map[i].module_name
3960 29 3b 0a 09 69 66 20 28 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 76 65 6e 64 6f );..if.((pci_module_map[i].vendo
3980 72 20 21 3d 20 50 43 49 5f 41 4e 59 29 20 26 26 0a 09 09 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d r.!=.PCI_ANY).&&...(pci_module_m
39a0 61 70 5b 69 5d 2e 76 65 6e 64 6f 72 20 21 3d 20 76 65 6e 64 6f 72 29 29 20 7b 0a 09 20 20 20 20 ap[i].vendor.!=.vendor)).{......
39c0 64 62 67 20 28 22 76 65 6e 64 6f 72 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 dbg.("vendor.check.failed.%x.!=.
39e0 25 78 22 2c 0a 09 09 20 20 20 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 76 65 6e %x",.......pci_module_map[i].ven
3a00 64 6f 72 2c 20 76 65 6e 64 6f 72 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a dor,.vendor);......continue;..}.
3a20 09 69 66 20 28 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 64 65 76 69 63 65 20 21 .if.((pci_module_map[i].device.!
3a40 3d 20 50 43 49 5f 41 4e 59 29 20 26 26 0a 09 09 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b =.PCI_ANY).&&...(pci_module_map[
3a60 69 5d 2e 64 65 76 69 63 65 20 21 3d 20 64 65 76 69 63 65 29 29 20 7b 0a 09 20 20 20 20 64 62 67 i].device.!=.device)).{......dbg
3a80 20 28 22 64 65 76 69 63 65 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 .("device.check.failed.%x.!=.%x"
3aa0 2c 0a 09 09 20 20 20 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 64 65 76 69 63 65 ,.......pci_module_map[i].device
3ac0 2c 20 64 65 76 69 63 65 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 09 69 66 ,.device);......continue;..}..if
3ae0 20 28 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 73 75 62 76 65 6e 64 6f 72 20 21 .((pci_module_map[i].subvendor.!
3b00 3d 20 50 43 49 5f 41 4e 59 29 20 26 26 0a 09 09 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b =.PCI_ANY).&&...(pci_module_map[
3b20 69 5d 2e 73 75 62 76 65 6e 64 6f 72 20 21 3d 20 73 75 62 76 65 6e 64 6f 72 29 29 20 7b 0a 09 20 i].subvendor.!=.subvendor)).{...
3b40 20 20 20 64 62 67 20 28 22 73 75 62 76 65 6e 64 6f 72 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 ...dbg.("subvendor.check.failed.
3b60 25 78 20 21 3d 20 25 78 22 2c 0a 09 09 20 20 20 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b %x.!=.%x",.......pci_module_map[
3b80 69 5d 2e 73 75 62 76 65 6e 64 6f 72 2c 20 73 75 62 76 65 6e 64 6f 72 29 3b 0a 09 20 20 20 20 63 i].subvendor,.subvendor);......c
3ba0 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 09 69 66 20 28 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 ontinue;..}..if.((pci_module_map
3bc0 5b 69 5d 2e 73 75 62 64 65 76 69 63 65 20 21 3d 20 50 43 49 5f 41 4e 59 29 20 26 26 0a 09 09 28 [i].subdevice.!=.PCI_ANY).&&...(
3be0 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 73 75 62 64 65 76 69 63 65 20 21 3d 20 73 pci_module_map[i].subdevice.!=.s
3c00 75 62 64 65 76 69 63 65 29 29 20 7b 0a 09 20 20 20 20 64 62 67 20 28 22 73 75 62 64 65 76 69 63 ubdevice)).{......dbg.("subdevic
3c20 65 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 0a 09 09 20 20 20 20 e.check.failed.%x.!=.%x",.......
3c40 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 73 75 62 64 65 76 69 63 65 2c 20 73 75 62 pci_module_map[i].subdevice,.sub
3c60 64 65 76 69 63 65 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 0a 09 2f 2a 20 device);......continue;..}.../*.
3c80 63 68 65 63 6b 20 74 68 61 74 20 74 68 65 20 63 6c 61 73 73 20 6d 61 74 63 68 65 73 20 2a 2f 0a check.that.the.class.matches.*/.
3ca0 09 63 6c 61 73 73 5f 74 65 6d 70 20 3d 20 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d .class_temp.=.(pci_module_map[i]
3cc0 2e 63 6c 61 73 73 20 5e 20 70 63 69 5f 63 6c 61 73 73 29 20 26 20 70 63 69 5f 6d 6f 64 75 6c 65 .class.^.pci_class).&.pci_module
3ce0 5f 6d 61 70 5b 69 5d 2e 63 6c 61 73 73 5f 6d 61 73 6b 3b 0a 09 69 66 20 28 63 6c 61 73 73 5f 74 _map[i].class_mask;..if.(class_t
3d00 65 6d 70 20 21 3d 20 30 29 20 7b 0a 09 20 20 20 20 64 62 67 20 28 22 63 6c 61 73 73 20 6d 61 73 emp.!=.0).{......dbg.("class.mas
3d20 6b 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 0a 09 09 20 20 20 20 k.check.failed.%x.!=.%x",.......
3d40 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 63 6c 61 73 73 2c 20 63 6c 61 73 73 5f 74 pci_module_map[i].class,.class_t
3d60 65 6d 70 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 0a 09 2f 2a 20 66 6f 75 emp);......continue;..}.../*.fou
3d80 6e 64 20 6f 6e 65 21 20 2a 2f 0a 09 64 62 67 20 28 22 6c 6f 61 64 69 6e 67 20 25 73 22 2c 20 70 nd.one!.*/..dbg.("loading.%s",.p
3da0 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 ci_module_map[i].module_name);..
3dc0 72 65 74 76 61 6c 20 3d 20 6c 6f 61 64 5f 6d 6f 64 75 6c 65 20 28 70 63 69 5f 6d 6f 64 75 6c 65 retval.=.load_module.(pci_module
3de0 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 69 66 20 28 72 65 74 76 61 _map[i].module_name);..if.(retva
3e00 6c 29 0a 09 20 20 20 20 72 65 74 75 72 6e 20 72 65 74 76 61 6c 3b 0a 20 20 20 20 7d 0a 0a 20 20 l)......return.retval;.....}....
3e20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 70 63 69 5f 61 64 ..return.0;.}..static.int.pci_ad
3e40 64 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 63 6c 61 73 73 5f 65 6e 76 3b 0a d.(void).{.....char.*class_env;.
3e60 20 20 20 20 63 68 61 72 20 2a 69 64 5f 65 6e 76 3b 0a 20 20 20 20 63 68 61 72 20 2a 73 75 62 73 ....char.*id_env;.....char.*subs
3e80 79 73 5f 65 6e 76 3b 0a 20 20 20 20 69 6e 74 20 65 72 72 6f 72 3b 0a 20 20 20 20 75 6e 73 69 67 ys_env;.....int.error;.....unsig
3ea0 6e 65 64 20 69 6e 74 20 76 65 6e 64 6f 72 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 ned.int.vendor;.....unsigned.int
3ec0 20 64 65 76 69 63 65 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 76 65 6e .device;.....unsigned.int.subven
3ee0 64 6f 72 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 64 65 76 69 63 65 3b dor;.....unsigned.int.subdevice;
3f00 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 63 6c 61 73 73 3b 0a 0a 20 20 20 20 70 63 .....unsigned.int.class;......pc
3f20 69 5f 72 65 61 64 5f 70 63 69 6d 61 70 28 29 3b 0a 0a 20 20 20 20 69 64 5f 65 6e 76 20 3d 20 67 i_read_pcimap();......id_env.=.g
3f40 65 74 65 6e 76 28 22 50 43 49 5f 49 44 22 29 3b 0a 20 20 20 20 73 75 62 73 79 73 5f 65 6e 76 20 etenv("PCI_ID");.....subsys_env.
3f60 3d 20 67 65 74 65 6e 76 28 22 50 43 49 5f 53 55 42 53 59 53 5f 49 44 22 29 3b 0a 20 20 20 20 63 =.getenv("PCI_SUBSYS_ID");.....c
3f80 6c 61 73 73 5f 65 6e 76 20 3d 20 67 65 74 65 6e 76 28 22 50 43 49 5f 43 4c 41 53 53 22 29 3b 0a lass_env.=.getenv("PCI_CLASS");.
3fa0 20 20 20 20 69 66 20 28 28 69 64 5f 65 6e 76 20 3d 3d 20 4e 55 4c 4c 29 20 7c 7c 0a 09 20 20 20 ....if.((id_env.==.NULL).||.....
3fc0 20 28 73 75 62 73 79 73 5f 65 6e 76 20 3d 3d 20 4e 55 4c 4c 29 20 7c 7c 0a 09 20 20 20 20 28 63 .(subsys_env.==.NULL).||......(c
3fe0 6c 61 73 73 5f 65 6e 76 20 3d 3d 20 4e 55 4c 4c 29 29 20 7b 0a 09 64 62 67 20 28 22 6d 69 73 73 lass_env.==.NULL)).{..dbg.("miss
4000 69 6e 67 20 61 6e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 2c 20 61 62 6f ing.an.environment.variable,.abo
4020 72 74 69 6e 67 2e 22 29 3b 0a 09 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 rting.");..return.1;.....}......
4040 65 72 72 6f 72 20 3d 20 73 70 6c 69 74 5f 32 76 61 6c 75 65 73 20 28 69 64 5f 65 6e 76 2c 20 31 error.=.split_2values.(id_env,.1
4060 36 2c 20 26 76 65 6e 64 6f 72 2c 20 26 64 65 76 69 63 65 29 3b 0a 20 20 20 20 69 66 20 28 65 72 6,.&vendor,.&device);.....if.(er
4080 72 6f 72 29 0a 09 72 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 ror)..return.error;.....error.=.
40a0 73 70 6c 69 74 5f 32 76 61 6c 75 65 73 20 28 73 75 62 73 79 73 5f 65 6e 76 2c 20 31 36 2c 20 26 split_2values.(subsys_env,.16,.&
40c0 73 75 62 76 65 6e 64 6f 72 2c 20 26 73 75 62 64 65 76 69 63 65 29 3b 0a 20 20 20 20 69 66 20 28 subvendor,.&subdevice);.....if.(
40e0 65 72 72 6f 72 29 0a 09 72 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 20 20 20 20 63 6c 61 73 73 20 error)..return.error;.....class.
4100 3d 20 73 74 72 74 6f 75 6c 20 28 63 6c 61 73 73 5f 65 6e 76 2c 20 4e 55 4c 4c 2c 20 31 36 29 3b =.strtoul.(class_env,.NULL,.16);
4120 0a 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 70 63 69 5f 6d 61 74 63 68 5f 76 65 6e 64 6f 72 20 28 ......error.=.pci_match_vendor.(
4140 76 65 6e 64 6f 72 2c 20 64 65 76 69 63 65 2c 20 73 75 62 76 65 6e 64 6f 72 2c 20 73 75 62 64 65 vendor,.device,.subvendor,.subde
4160 76 69 63 65 2c 20 63 6c 61 73 73 29 3b 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 6f 72 3b vice,.class);......return.error;
4180 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 70 63 69 5f 72 65 6d 6f 76 65 20 28 76 6f 69 64 .}...static.int.pci_remove.(void
41a0 29 0a 7b 0a 20 20 20 20 2f 2a 20 72 69 67 68 74 20 6e 6f 77 20 77 65 20 64 6f 6e 27 74 20 64 6f ).{...../*.right.now.we.don't.do
41c0 20 61 6e 79 74 68 69 6e 67 20 68 65 72 65 20 3a 29 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 .anything.here.:).*/.....return.
41e0 30 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 20 73 75 62 73 79 73 74 65 6d 20 70 63 0;.}..static.struct.subsystem.pc
4200 69 5f 73 75 62 73 79 73 74 65 6d 5b 5d 20 3d 20 7b 0a 20 20 20 20 7b 20 41 44 44 5f 53 54 52 49 i_subsystem[].=.{.....{.ADD_STRI
4220 4e 47 2c 09 70 63 69 5f 61 64 64 20 7d 2c 0a 20 20 20 20 7b 20 52 45 4d 4f 56 45 5f 53 54 52 49 NG,.pci_add.},.....{.REMOVE_STRI
4240 4e 47 2c 09 70 63 69 5f 72 65 6d 6f 76 65 20 7d 2c 0a 20 20 20 20 7b 20 4e 55 4c 4c 2c 09 09 4e NG,.pci_remove.},.....{.NULL,..N
4260 55 4c 4c 20 7d 0a 7d 3b 0a 0a 69 6e 74 20 70 63 69 5f 68 61 6e 64 6c 65 72 20 28 76 6f 69 64 29 ULL.}.};..int.pci_handler.(void)
4280 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 20 61 63 74 69 6f 6e 3b 0a 0a 20 20 20 20 61 63 74 69 6f .{.....char.*.action;......actio
42a0 6e 20 3d 20 67 65 74 65 6e 76 20 28 22 41 43 54 49 4f 4e 22 29 3b 0a 20 20 20 20 64 62 67 20 28 n.=.getenv.("ACTION");.....dbg.(
42c0 22 61 63 74 69 6f 6e 20 3d 20 25 73 22 2c 20 61 63 74 69 6f 6e 29 3b 0a 20 20 20 20 69 66 20 28 "action.=.%s",.action);.....if.(
42e0 61 63 74 69 6f 6e 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 09 64 62 67 20 28 22 6d 69 73 73 69 6e 67 action.==.NULL).{..dbg.("missing
4300 20 41 43 54 49 4f 4e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 2c 20 61 62 .ACTION.environment.variable,.ab
4320 6f 72 74 69 6e 67 2e 22 29 3b 0a 09 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 orting.");..return.1;.....}.....
4340 72 65 74 75 72 6e 20 63 61 6c 6c 5f 73 75 62 73 79 73 74 65 6d 20 28 61 63 74 69 6f 6e 2c 20 70 return.call_subsystem.(action,.p
4360 63 69 5f 73 75 62 73 79 73 74 65 6d 29 3b 0a 7d 0a 0a 0a 2f 2a 20 54 68 65 20 75 73 62 20 66 75 ci_subsystem);.}.../*.The.usb.fu
4380 6e 63 74 69 6f 6e 73 20 2a 2f 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 nctions.*/.#define.USB_DEVICE_ID
43a0 5f 4d 41 54 43 48 5f 56 45 4e 44 4f 52 09 09 30 78 30 30 30 31 0a 23 64 65 66 69 6e 65 20 55 53 _MATCH_VENDOR..0x0001.#define.US
43c0 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 50 52 4f 44 55 43 54 09 09 30 78 30 30 30 B_DEVICE_ID_MATCH_PRODUCT..0x000
43e0 32 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 2.#define.USB_DEVICE_ID_MATCH_DE
4400 56 5f 4c 4f 09 09 30 78 30 30 30 34 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f V_LO..0x0004.#define.USB_DEVICE_
4420 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 48 49 09 09 30 78 30 30 30 38 0a 23 64 65 66 69 6e 65 20 ID_MATCH_DEV_HI..0x0008.#define.
4440 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 43 4c 41 53 53 09 09 30 USB_DEVICE_ID_MATCH_DEV_CLASS..0
4460 78 30 30 31 30 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 x0010.#define.USB_DEVICE_ID_MATC
4480 48 5f 44 45 56 5f 53 55 42 43 4c 41 53 53 09 30 78 30 30 32 30 0a 23 64 65 66 69 6e 65 20 55 53 H_DEV_SUBCLASS.0x0020.#define.US
44a0 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 50 52 4f 54 4f 43 4f 4c 09 30 B_DEVICE_ID_MATCH_DEV_PROTOCOL.0
44c0 78 30 30 34 30 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 x0040.#define.USB_DEVICE_ID_MATC
44e0 48 5f 49 4e 54 5f 43 4c 41 53 53 09 09 30 78 30 30 38 30 0a 23 64 65 66 69 6e 65 20 55 53 42 5f H_INT_CLASS..0x0080.#define.USB_
4500 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 53 55 42 43 4c 41 53 53 09 30 78 30 DEVICE_ID_MATCH_INT_SUBCLASS.0x0
4520 31 30 30 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 100.#define.USB_DEVICE_ID_MATCH_
4540 49 4e 54 5f 50 52 4f 54 4f 43 4f 4c 09 30 78 30 32 30 30 0a 23 64 65 66 69 6e 65 20 55 53 42 5f INT_PROTOCOL.0x0200.#define.USB_
4560 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 49 43 45 09 09 28 55 53 42 5f 44 45 56 DEVICE_ID_MATCH_DEVICE..(USB_DEV
4580 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 56 45 4e 44 4f 52 20 7c 20 55 53 42 5f 44 45 56 49 43 45 ICE_ID_MATCH_VENDOR.|.USB_DEVICE
45a0 5f 49 44 5f 4d 41 54 43 48 5f 50 52 4f 44 55 43 54 29 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 _ID_MATCH_PRODUCT).#define.USB_D
45c0 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 52 41 4e 47 45 09 09 28 55 53 42 5f 44 EVICE_ID_MATCH_DEV_RANGE..(USB_D
45e0 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 4c 4f 20 7c 20 55 53 42 5f 44 45 56 49 EVICE_ID_MATCH_DEV_LO.|.USB_DEVI
4600 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 48 49 29 0a 23 64 65 66 69 6e 65 20 55 53 42 5f CE_ID_MATCH_DEV_HI).#define.USB_
4620 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 49 43 45 5f 41 4e 44 5f 56 45 52 53 49 DEVICE_ID_MATCH_DEVICE_AND_VERSI
4640 4f 4e 09 28 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 49 43 45 20 7c ON.(USB_DEVICE_ID_MATCH_DEVICE.|
4660 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 52 41 4e 47 45 29 0a .USB_DEVICE_ID_MATCH_DEV_RANGE).
4680 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f #define.USB_DEVICE_ID_MATCH_DEV_
46a0 49 4e 46 4f 09 09 28 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 43 INFO..(USB_DEVICE_ID_MATCH_DEV_C
46c0 4c 41 53 53 20 7c 20 5c 0a 09 09 09 09 09 09 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 LASS.|.\.......USB_DEVICE_ID_MAT
46e0 43 48 5f 44 45 56 5f 53 55 42 43 4c 41 53 53 20 7c 20 5c 0a 09 09 09 09 09 09 55 53 42 5f 44 45 CH_DEV_SUBCLASS.|.\.......USB_DE
4700 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 50 52 4f 54 4f 43 4f 4c 29 0a 23 64 65 66 VICE_ID_MATCH_DEV_PROTOCOL).#def
4720 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 49 4e 46 4f ine.USB_DEVICE_ID_MATCH_INT_INFO
4740 09 09 28 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 43 4c 41 53 53 ..(USB_DEVICE_ID_MATCH_INT_CLASS
4760 20 7c 20 5c 0a 09 09 09 09 09 09 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 .|.\.......USB_DEVICE_ID_MATCH_I
4780 4e 54 5f 53 55 42 43 4c 41 53 53 20 7c 20 5c 0a 09 09 09 09 09 09 55 53 42 5f 44 45 56 49 43 45 NT_SUBCLASS.|.\.......USB_DEVICE
47a0 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 50 52 4f 54 4f 43 4f 4c 29 0a 0a 73 74 72 75 63 74 20 _ID_MATCH_INT_PROTOCOL)..struct.
47c0 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 7b 0a 09 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 6d usb_module_map.{..const.char.*.m
47e0 6f 64 75 6c 65 5f 6e 61 6d 65 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 6d 61 74 63 68 5f odule_name;..unsigned.int.match_
4800 66 6c 61 67 73 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 64 56 65 6e 64 6f 72 3b 0a 09 flags;..unsigned.int.idVendor;..
4820 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 64 50 72 6f 64 75 63 74 3b 0a 09 75 6e 73 69 67 6e 65 unsigned.int.idProduct;..unsigne
4840 64 20 69 6e 74 20 62 63 64 44 65 76 69 63 65 5f 6c 6f 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e d.int.bcdDevice_lo;..unsigned.in
4860 74 20 62 63 64 44 65 76 69 63 65 5f 68 69 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 44 t.bcdDevice_hi;..unsigned.int.bD
4880 65 76 69 63 65 43 6c 61 73 73 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 44 65 76 69 63 eviceClass;..unsigned.int.bDevic
48a0 65 53 75 62 43 6c 61 73 73 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 44 65 76 69 63 65 eSubClass;..unsigned.int.bDevice
48c0 50 72 6f 74 6f 63 6f 6c 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 49 6e 74 65 72 66 61 Protocol;..unsigned.int.bInterfa
48e0 63 65 43 6c 61 73 73 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 49 6e 74 65 72 66 61 63 ceClass;..unsigned.int.bInterfac
4900 65 53 75 62 43 6c 61 73 73 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 49 6e 74 65 72 66 eSubClass;..unsigned.int.bInterf
4920 61 63 65 50 72 6f 74 6f 63 6f 6c 3b 0a 7d 20 5f 5f 61 74 74 72 69 62 75 74 65 5f 5f 20 28 28 70 aceProtocol;.}.__attribute__.((p
4940 61 63 6b 65 64 29 29 3b 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 20 75 73 62 5f 6d 6f 64 75 6c acked));.static.struct.usb_modul
4960 65 5f 6d 61 70 20 2a 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 3b 0a 0a 76 6f 69 64 20 75 73 62 e_map.*usb_module_map;..void.usb
4980 5f 72 65 61 64 5f 75 73 62 6d 61 70 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 46 49 4c 45 20 2a 75 _read_usbmap(void).{.....FILE.*u
49a0 73 62 6d 61 70 5f 66 69 6c 65 3b 0a 20 20 20 20 73 74 72 75 63 74 20 75 74 73 6e 61 6d 65 20 75 sbmap_file;.....struct.utsname.u
49c0 74 73 6e 61 6d 65 3b 0a 20 20 20 20 73 74 72 75 63 74 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 tsname;.....struct.usb_module_ma
49e0 70 20 2a 65 6e 74 72 79 20 3d 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 3b 0a 20 20 20 20 63 p.*entry.=.usb_module_map;.....c
4a00 68 61 72 20 2a 70 72 65 76 6d 6f 64 75 6c 65 20 3d 20 22 22 3b 0a 20 20 20 20 63 68 61 72 20 66 har.*prevmodule.=."";.....char.f
4a20 69 6c 65 6e 61 6d 65 5b 4d 41 58 50 41 54 48 4c 45 4e 5d 3b 0a 20 20 20 20 63 68 61 72 20 6c 69 ilename[MAXPATHLEN];.....char.li
4a40 6e 65 5b 4c 49 4e 45 4c 45 4e 47 54 48 5d 3b 0a 20 20 20 20 63 68 61 72 20 6d 6f 64 75 6c 65 5b ne[LINELENGTH];.....char.module[
4a60 4c 49 4e 45 4c 45 4e 47 54 48 5d 3b 0a 20 20 20 20 69 6e 74 20 63 6f 75 6e 74 2c 20 6d 61 70 73 LINELENGTH];.....int.count,.maps
4a80 69 7a 65 3b 0a 0a 20 20 20 20 69 66 20 28 75 6e 61 6d 65 28 26 75 74 73 6e 61 6d 65 29 20 3c 20 ize;......if.(uname(&utsname).<.
4aa0 30 29 20 7b 0a 09 70 65 72 72 6f 72 28 22 75 6e 61 6d 65 22 29 3b 0a 09 65 78 69 74 28 31 29 3b 0).{..perror("uname");..exit(1);
4ac0 0a 20 20 20 20 7d 0a 20 20 20 20 73 70 72 69 6e 74 66 28 66 69 6c 65 6e 61 6d 65 2c 20 22 2f 6c .....}.....sprintf(filename,."/l
4ae0 69 62 2f 6d 6f 64 75 6c 65 73 2f 25 73 2f 6d 6f 64 75 6c 65 73 2e 75 73 62 6d 61 70 22 2c 20 75 ib/modules/%s/modules.usbmap",.u
4b00 74 73 6e 61 6d 65 2e 72 65 6c 65 61 73 65 29 3b 0a 20 20 20 20 69 66 20 28 28 75 73 62 6d 61 70 tsname.release);.....if.((usbmap
4b20 5f 66 69 6c 65 20 3d 20 66 6f 70 65 6e 28 66 69 6c 65 6e 61 6d 65 2c 20 22 72 22 29 29 20 3d 3d _file.=.fopen(filename,."r")).==
4b40 20 4e 55 4c 4c 29 20 7b 0a 09 62 62 5f 70 65 72 72 6f 72 5f 6d 73 67 5f 61 6e 64 5f 64 69 65 28 .NULL).{..bb_perror_msg_and_die(
4b60 22 43 6f 75 6c 64 20 6e 6f 74 20 6f 70 65 6e 20 25 73 22 2c 20 66 69 6c 65 6e 61 6d 65 29 3b 0a "Could.not.open.%s",.filename);.
4b80 20 20 20 20 7d 0a 0a 20 20 20 20 63 6f 75 6e 74 20 3d 20 6d 61 70 73 69 7a 65 20 3d 20 30 3b 0a ....}......count.=.mapsize.=.0;.
4ba0 20 20 20 20 77 68 69 6c 65 28 66 67 65 74 73 28 6c 69 6e 65 2c 20 4c 49 4e 45 4c 45 4e 47 54 48 ....while(fgets(line,.LINELENGTH
4bc0 2c 20 75 73 62 6d 61 70 5f 66 69 6c 65 29 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 0a 09 69 66 20 28 ,.usbmap_file).!=.NULL).{...if.(
4be0 6c 69 6e 65 5b 30 5d 20 3d 3d 20 27 23 27 29 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 0a line[0].==.'#')......continue;..
4c00 09 63 6f 75 6e 74 2b 2b 3b 0a 09 69 66 20 28 63 6f 75 6e 74 20 3e 3d 20 6d 61 70 73 69 7a 65 29 .count++;..if.(count.>=.mapsize)
4c20 20 7b 0a 09 20 20 20 20 6d 61 70 73 69 7a 65 2b 3d 31 30 30 3b 0a 09 20 20 20 20 75 73 62 5f 6d .{......mapsize+=100;......usb_m
4c40 6f 64 75 6c 65 5f 6d 61 70 20 3d 20 78 72 65 61 6c 6c 6f 63 28 75 73 62 5f 6d 6f 64 75 6c 65 5f odule_map.=.xrealloc(usb_module_
4c60 6d 61 70 2c 20 28 73 69 7a 65 6f 66 28 73 74 72 75 63 74 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d map,.(sizeof(struct.usb_module_m
4c80 61 70 29 20 2a 20 6d 61 70 73 69 7a 65 29 29 3b 0a 09 20 20 20 20 65 6e 74 72 79 20 3d 20 75 73 ap).*.mapsize));......entry.=.us
4ca0 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2b 20 63 6f 75 6e 74 20 2d 20 31 3b 0a 09 20 20 20 20 6d b_module_map.+.count.-.1;......m
4cc0 65 6d 73 65 74 28 65 6e 74 72 79 2c 20 30 2c 20 28 73 69 7a 65 6f 66 28 73 74 72 75 63 74 20 75 emset(entry,.0,.(sizeof(struct.u
4ce0 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 29 20 2a 20 31 30 30 29 29 3b 0a 09 7d 0a 09 65 6e 74 72 sb_module_map).*.100));..}..entr
4d00 79 20 3d 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2b 20 63 6f 75 6e 74 20 2d 20 31 3b 0a y.=.usb_module_map.+.count.-.1;.
4d20 0a 09 69 66 20 28 73 73 63 61 6e 66 28 6c 69 6e 65 2c 20 22 25 73 20 30 78 25 78 20 30 78 25 78 ..if.(sscanf(line,."%s.0x%x.0x%x
4d40 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 .0x%x.0x%x.0x%x.0x%x.0x%x.0x%x.0
4d60 78 25 78 20 30 78 25 78 20 30 78 25 78 22 2c 0a 09 09 20 20 20 20 6d 6f 64 75 6c 65 2c 0a 09 09 x%x.0x%x.0x%x",.......module,...
4d80 20 20 20 20 26 65 6e 74 72 79 2d 3e 6d 61 74 63 68 5f 66 6c 61 67 73 2c 20 26 65 6e 74 72 79 2d ....&entry->match_flags,.&entry-
4da0 3e 69 64 56 65 6e 64 6f 72 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 69 64 50 72 6f 64 75 >idVendor,.......&entry->idProdu
4dc0 63 74 2c 20 26 65 6e 74 72 79 2d 3e 62 63 64 44 65 76 69 63 65 5f 6c 6f 2c 0a 09 09 20 20 20 20 ct,.&entry->bcdDevice_lo,.......
4de0 26 65 6e 74 72 79 2d 3e 62 63 64 44 65 76 69 63 65 5f 68 69 2c 20 26 65 6e 74 72 79 2d 3e 62 44 &entry->bcdDevice_hi,.&entry->bD
4e00 65 76 69 63 65 43 6c 61 73 73 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 62 44 65 76 69 63 eviceClass,.......&entry->bDevic
4e20 65 53 75 62 43 6c 61 73 73 2c 20 26 65 6e 74 72 79 2d 3e 62 44 65 76 69 63 65 50 72 6f 74 6f 63 eSubClass,.&entry->bDeviceProtoc
4e40 6f 6c 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 62 49 6e 74 65 72 66 61 63 65 43 6c 61 73 ol,.......&entry->bInterfaceClas
4e60 73 2c 20 26 65 6e 74 72 79 2d 3e 62 49 6e 74 65 72 66 61 63 65 53 75 62 43 6c 61 73 73 2c 0a 09 s,.&entry->bInterfaceSubClass,..
4e80 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 62 49 6e 74 65 72 66 61 63 65 50 72 6f 74 6f 63 6f 6c 29 .....&entry->bInterfaceProtocol)
4ea0 20 21 3d 20 31 32 29 20 7b 0a 09 20 20 20 20 62 62 5f 65 72 72 6f 72 5f 6d 73 67 28 22 6d 6f 64 .!=.12).{......bb_error_msg("mod
4ec0 75 6c 65 73 2e 75 73 62 6d 61 70 20 75 6e 70 61 72 73 61 62 6c 65 20 6c 69 6e 65 3a 20 25 73 2e ules.usbmap.unparsable.line:.%s.
4ee0 5c 6e 22 2c 20 6c 69 6e 65 29 3b 0a 09 20 20 20 20 66 72 65 65 28 65 6e 74 72 79 29 3b 0a 09 20 \n",.line);......free(entry);...
4f00 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 0a 09 2f 2a 20 4f 70 74 69 6d 69 7a 65 20 6d 65 ...continue;..}.../*.Optimize.me
4f20 6d 6f 72 79 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 61 20 62 69 74 2c 20 69 6e 20 63 61 73 65 20 73 mory.allocation.a.bit,.in.case.s
4f40 6f 6d 65 64 61 79 20 77 65 0a 09 20 20 20 68 61 76 65 20 4c 69 6e 75 78 20 73 79 73 74 65 6d 73 omeday.we.....have.Linux.systems
4f60 20 77 69 74 68 20 7e 31 30 30 2c 30 30 30 20 6d 6f 64 75 6c 65 73 2e 20 20 49 74 20 61 6c 73 6f .with.~100,000.modules...It.also
4f80 0a 09 20 20 20 61 6c 6c 6f 77 73 20 75 73 20 74 6f 20 6a 75 73 74 20 63 6f 6d 70 61 72 65 20 70 .....allows.us.to.just.compare.p
4fa0 6f 69 6e 74 65 72 73 20 74 6f 20 61 76 6f 69 64 20 74 72 79 69 6e 67 0a 09 20 20 20 74 6f 20 6c ointers.to.avoid.trying.....to.l
4fc0 6f 61 64 20 61 20 6d 6f 64 75 6c 65 20 74 77 69 63 65 2e 20 2a 2f 0a 09 69 66 20 28 73 74 72 63 oad.a.module.twice..*/..if.(strc
4fe0 6d 70 28 6d 6f 64 75 6c 65 2c 20 70 72 65 76 6d 6f 64 75 6c 65 29 20 21 3d 20 30 29 20 7b 0a 09 mp(module,.prevmodule).!=.0).{..
5000 20 20 20 20 70 72 65 76 6d 6f 64 75 6c 65 20 3d 20 78 6d 61 6c 6c 6f 63 28 73 74 72 6c 65 6e 28 ....prevmodule.=.xmalloc(strlen(
5020 6d 6f 64 75 6c 65 29 2b 31 29 3b 0a 09 20 20 20 20 73 74 72 63 70 79 28 70 72 65 76 6d 6f 64 75 module)+1);......strcpy(prevmodu
5040 6c 65 2c 20 6d 6f 64 75 6c 65 29 3b 0a 09 7d 0a 09 65 6e 74 72 79 2d 3e 6d 6f 64 75 6c 65 5f 6e le,.module);..}..entry->module_n
5060 61 6d 65 20 3d 20 70 72 65 76 6d 6f 64 75 6c 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 66 63 6c 6f ame.=.prevmodule;.....}.....fclo
5080 73 65 28 75 73 62 6d 61 70 5f 66 69 6c 65 29 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 75 se(usbmap_file);.}..static.int.u
50a0 73 62 5f 6d 61 74 63 68 5f 76 65 6e 64 6f 72 5f 70 72 6f 64 75 63 74 20 28 75 6e 73 69 67 6e 65 sb_match_vendor_product.(unsigne
50c0 64 20 69 6e 74 20 76 65 6e 64 6f 72 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 70 72 6f 64 75 d.int.vendor,.unsigned.int.produ
50e0 63 74 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 63 64 44 65 76 69 63 65 29 0a 7b 0a 20 20 ct,.unsigned.int.bcdDevice).{...
5100 20 20 69 6e 74 20 69 3b 0a 20 20 20 20 69 6e 74 20 72 65 74 76 61 6c 3b 0a 0a 20 20 20 20 64 62 ..int.i;.....int.retval;......db
5120 67 20 28 22 76 65 6e 64 6f 72 20 3d 20 25 78 2c 20 70 72 6f 64 75 63 74 20 3d 20 25 78 2c 20 62 g.("vendor.=.%x,.product.=.%x,.b
5140 63 64 44 65 76 69 63 65 20 3d 20 25 78 22 2c 20 76 65 6e 64 6f 72 2c 20 70 72 6f 64 75 63 74 2c cdDevice.=.%x",.vendor,.product,
5160 20 62 63 64 44 65 76 69 63 65 29 3b 0a 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 75 73 .bcdDevice);......for.(i.=.0;.us
5180 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 21 3d 20 4e b_module_map[i].module_name.!=.N
51a0 55 4c 4c 3b 20 2b 2b 69 29 20 7b 0a 09 64 62 67 20 28 22 6c 6f 6f 6b 69 6e 67 20 61 74 20 25 73 ULL;.++i).{..dbg.("looking.at.%s
51c0 2c 20 6d 61 74 63 68 5f 66 6c 61 67 73 20 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f ,.match_flags.=.%x",.usb_module_
51e0 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d map[i].module_name,.usb_module_m
5200 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 29 3b 0a 09 69 66 20 28 75 73 62 5f 6d 6f 64 ap[i].match_flags);..if.(usb_mod
5220 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 28 55 53 42 5f 44 45 ule_map[i].match_flags.&.(USB_DE
5240 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 49 43 45 20 7c 20 55 53 42 5f 44 45 56 49 43 VICE_ID_MATCH_DEVICE.|.USB_DEVIC
5260 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 52 41 4e 47 45 29 29 20 7b 0a 09 20 20 20 20 69 66 E_ID_MATCH_DEV_RANGE)).{......if
5280 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 .((usb_module_map[i].match_flags
52a0 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 56 45 4e 44 4f 52 29 20 26 .&.USB_DEVICE_ID_MATCH_VENDOR).&
52c0 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 69 64 56 65 6e &.......(usb_module_map[i].idVen
52e0 64 6f 72 20 21 3d 20 76 65 6e 64 6f 72 29 29 20 7b 0a 09 09 64 62 67 20 28 22 76 65 6e 64 6f 72 dor.!=.vendor)).{...dbg.("vendor
5300 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 .check.failed.%x.!=.%x",.usb_mod
5320 75 6c 65 5f 6d 61 70 5b 69 5d 2e 69 64 56 65 6e 64 6f 72 2c 20 76 65 6e 64 6f 72 29 3b 0a 09 09 ule_map[i].idVendor,.vendor);...
5340 63 6f 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d continue;......}......if.((usb_m
5360 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 odule_map[i].match_flags.&.USB_D
5380 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 50 52 4f 44 55 43 54 29 20 26 26 0a 09 09 20 20 20 EVICE_ID_MATCH_PRODUCT).&&......
53a0 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 69 64 50 72 6f 64 75 63 74 20 21 3d .(usb_module_map[i].idProduct.!=
53c0 20 70 72 6f 64 75 63 74 29 29 20 7b 0a 09 09 64 62 67 20 28 22 70 72 6f 64 75 63 74 20 63 68 65 .product)).{...dbg.("product.che
53e0 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f ck.failed.%x.!=.%x",.usb_module_
5400 6d 61 70 5b 69 5d 2e 69 64 50 72 6f 64 75 63 74 2c 20 70 72 6f 64 75 63 74 29 3b 0a 09 09 63 6f map[i].idProduct,.product);...co
5420 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d 6f 64 ntinue;......}......if.((usb_mod
5440 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 ule_map[i].match_flags.&.USB_DEV
5460 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 4c 4f 29 20 26 26 0a 09 09 20 20 20 20 28 75 ICE_ID_MATCH_DEV_LO).&&.......(u
5480 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 63 64 44 65 76 69 63 65 5f 6c 6f 20 3c 20 sb_module_map[i].bcdDevice_lo.<.
54a0 62 63 64 44 65 76 69 63 65 29 29 20 7b 0a 09 09 64 62 67 20 28 22 62 63 64 44 65 76 69 63 65 5f bcdDevice)).{...dbg.("bcdDevice_
54c0 6c 6f 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 3e 20 25 78 22 2c 20 75 73 62 5f 6d 6f lo.check.failed.%x.>.%x",.usb_mo
54e0 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 63 64 44 65 76 69 63 65 5f 6c 6f 2c 20 62 63 64 44 65 76 dule_map[i].bcdDevice_lo,.bcdDev
5500 69 63 65 29 3b 0a 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 ice);...continue;......}......if
5520 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 .((usb_module_map[i].match_flags
5540 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 48 49 29 20 26 .&.USB_DEVICE_ID_MATCH_DEV_HI).&
5560 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 63 64 44 65 &.......(usb_module_map[i].bcdDe
5580 76 69 63 65 5f 68 69 20 3e 3d 20 62 63 64 44 65 76 69 63 65 29 29 20 7b 0a 09 09 64 62 67 20 28 vice_hi.>=.bcdDevice)).{...dbg.(
55a0 22 62 63 64 44 65 76 69 63 65 5f 68 69 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 3c 3d "bcdDevice_hi.check.failed.%x.<=
55c0 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 63 64 44 65 76 69 63 .%x",.usb_module_map[i].bcdDevic
55e0 65 5f 68 69 2c 20 62 63 64 44 65 76 69 63 65 29 3b 0a 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 20 e_hi,.bcdDevice);...continue;...
5600 20 20 20 7d 0a 09 20 20 20 20 2f 2a 20 66 6f 75 6e 64 20 6f 6e 65 21 20 2a 2f 0a 09 20 20 20 20 ...}....../*.found.one!.*/......
5620 64 62 67 20 28 22 6c 6f 61 64 69 6e 67 20 25 73 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 dbg.("loading.%s",.usb_module_ma
5640 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 20 20 20 20 72 65 74 76 61 6c 20 3d p[i].module_name);......retval.=
5660 20 6c 6f 61 64 5f 6d 6f 64 75 6c 65 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e .load_module.(usb_module_map[i].
5680 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 20 20 20 20 69 66 20 28 72 65 74 76 61 6c 29 0a 09 module_name);......if.(retval)..
56a0 09 72 65 74 75 72 6e 20 72 65 74 76 61 6c 3b 0a 09 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 .return.retval;..}.....}......re
56c0 74 75 72 6e 20 30 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 75 73 62 5f 6d 61 74 63 68 5f turn.0;.}..static.int.usb_match_
56e0 64 65 76 69 63 65 5f 63 6c 61 73 73 20 28 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 63 6c 61 73 73 device_class.(unsigned.int.class
5700 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 63 6c 61 73 73 2c 20 75 6e 73 69 67 6e 65 ,.unsigned.int.subclass,.unsigne
5720 64 20 69 6e 74 20 70 72 6f 74 6f 63 6f 6c 29 0a 7b 0a 20 20 20 20 69 6e 74 20 69 3b 0a 20 20 20 d.int.protocol).{.....int.i;....
5740 20 69 6e 74 20 72 65 74 76 61 6c 3b 0a 0a 20 20 20 20 64 62 67 20 28 22 63 6c 61 73 73 20 3d 20 .int.retval;......dbg.("class.=.
5760 25 78 2c 20 73 75 62 63 6c 61 73 73 20 3d 20 25 78 2c 20 70 72 6f 74 6f 63 6f 6c 20 3d 20 25 78 %x,.subclass.=.%x,.protocol.=.%x
5780 22 2c 20 63 6c 61 73 73 2c 20 73 75 62 63 6c 61 73 73 2c 20 70 72 6f 74 6f 63 6f 6c 29 3b 0a 0a ",.class,.subclass,.protocol);..
57a0 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 ....for.(i.=.0;.usb_module_map[i
57c0 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 21 3d 20 4e 55 4c 4c 3b 20 2b 2b 69 29 20 7b 0a 09 64 ].module_name.!=.NULL;.++i).{..d
57e0 62 67 20 28 22 6c 6f 6f 6b 69 6e 67 20 61 74 20 25 73 2c 20 6d 61 74 63 68 5f 66 6c 61 67 73 20 bg.("looking.at.%s,.match_flags.
5800 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f =.%x",.usb_module_map[i].module_
5820 6e 61 6d 65 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c name,.usb_module_map[i].match_fl
5840 61 67 73 29 3b 0a 09 69 66 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 ags);..if.(usb_module_map[i].mat
5860 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 ch_flags.&.USB_DEVICE_ID_MATCH_D
5880 45 56 5f 49 4e 46 4f 29 20 7b 0a 09 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f EV_INFO).{......if.((usb_module_
58a0 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f map[i].match_flags.&.USB_DEVICE_
58c0 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 43 4c 41 53 53 29 20 26 26 0a 09 09 20 20 20 20 28 75 73 ID_MATCH_DEV_CLASS).&&.......(us
58e0 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 44 65 76 69 63 65 43 6c 61 73 73 20 21 3d 20 b_module_map[i].bDeviceClass.!=.
5900 63 6c 61 73 73 29 29 20 7b 0a 09 09 64 62 67 20 28 22 63 6c 61 73 73 20 63 68 65 63 6b 20 66 61 class)).{...dbg.("class.check.fa
5920 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 iled.%x.!=.%x",.usb_module_map[i
5940 5d 2e 62 44 65 76 69 63 65 43 6c 61 73 73 2c 20 63 6c 61 73 73 29 3b 0a 09 09 63 6f 6e 74 69 6e ].bDeviceClass,.class);...contin
5960 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f ue;......}......if.((usb_module_
5980 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f map[i].match_flags.&.USB_DEVICE_
59a0 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 53 55 42 43 4c 41 53 53 29 20 26 26 0a 09 09 20 20 20 20 ID_MATCH_DEV_SUBCLASS).&&.......
59c0 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 44 65 76 69 63 65 53 75 62 43 6c 61 (usb_module_map[i].bDeviceSubCla
59e0 73 73 20 21 3d 20 73 75 62 63 6c 61 73 73 29 29 20 7b 0a 09 09 64 62 67 20 28 22 73 75 62 63 6c ss.!=.subclass)).{...dbg.("subcl
5a00 61 73 73 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f ass.check.failed.%x.!=.%x",.usb_
5a20 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 44 65 76 69 63 65 53 75 62 43 6c 61 73 73 2c 20 73 module_map[i].bDeviceSubClass,.s
5a40 75 62 63 6c 61 73 73 29 3b 0a 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 ubclass);...continue;......}....
5a60 20 20 69 66 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 ..if.((usb_module_map[i].match_f
5a80 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 50 lags.&.USB_DEVICE_ID_MATCH_DEV_P
5aa0 52 4f 54 4f 43 4f 4c 29 20 26 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 ROTOCOL).&&.......(usb_module_ma
5ac0 70 5b 69 5d 2e 62 44 65 76 69 63 65 50 72 6f 74 6f 63 6f 6c 20 21 3d 20 70 72 6f 74 6f 63 6f 6c p[i].bDeviceProtocol.!=.protocol
5ae0 29 29 20 7b 0a 09 09 64 62 67 20 28 22 70 72 6f 74 6f 63 6f 6c 20 63 68 65 63 6b 20 66 61 69 6c )).{...dbg.("protocol.check.fail
5b00 65 64 20 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e ed.%x.!=.%x",.usb_module_map[i].
5b20 62 44 65 76 69 63 65 50 72 6f 74 6f 63 6f 6c 2c 20 70 72 6f 74 6f 63 6f 6c 29 3b 0a 09 09 63 6f bDeviceProtocol,.protocol);...co
5b40 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 2f 2a 20 66 6f 75 6e 64 20 6f 6e 65 ntinue;......}....../*.found.one
5b60 21 20 2a 2f 0a 09 20 20 20 20 64 62 67 20 28 22 6c 6f 61 64 69 6e 67 20 25 73 22 2c 20 75 73 62 !.*/......dbg.("loading.%s",.usb
5b80 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 20 20 _module_map[i].module_name);....
5ba0 20 20 72 65 74 76 61 6c 20 3d 20 6c 6f 61 64 5f 6d 6f 64 75 6c 65 20 28 75 73 62 5f 6d 6f 64 75 ..retval.=.load_module.(usb_modu
5bc0 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 20 20 20 20 69 66 20 le_map[i].module_name);......if.
5be0 28 72 65 74 76 61 6c 29 0a 09 09 72 65 74 75 72 6e 20 72 65 74 76 61 6c 3b 0a 09 7d 0a 20 20 20 (retval)...return.retval;..}....
5c00 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 69 6e 74 .}......return.0;.}...static.int
5c20 20 75 73 62 5f 6d 61 74 63 68 5f 69 6e 74 65 72 66 61 63 65 5f 63 6c 61 73 73 20 28 75 6e 73 69 .usb_match_interface_class.(unsi
5c40 67 6e 65 64 20 69 6e 74 20 63 6c 61 73 73 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 gned.int.class,.unsigned.int.sub
5c60 63 6c 61 73 73 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 70 72 6f 74 6f 63 6f 6c 29 0a 7b 0a class,.unsigned.int.protocol).{.
5c80 20 20 20 20 69 6e 74 20 69 3b 0a 20 20 20 20 69 6e 74 20 72 65 74 76 61 6c 3b 0a 0a 20 20 20 20 ....int.i;.....int.retval;......
5ca0 64 62 67 20 28 22 63 6c 61 73 73 20 3d 20 25 78 2c 20 73 75 62 63 6c 61 73 73 20 3d 20 25 78 2c dbg.("class.=.%x,.subclass.=.%x,
5cc0 20 70 72 6f 74 6f 63 6f 6c 20 3d 20 25 78 22 2c 20 63 6c 61 73 73 2c 20 73 75 62 63 6c 61 73 73 .protocol.=.%x",.class,.subclass
5ce0 2c 20 70 72 6f 74 6f 63 6f 6c 29 3b 0a 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 75 73 ,.protocol);......for.(i.=.0;.us
5d00 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 21 3d 20 4e b_module_map[i].module_name.!=.N
5d20 55 4c 4c 3b 20 2b 2b 69 29 20 7b 0a 09 64 62 67 20 28 22 6c 6f 6f 6b 69 6e 67 20 61 74 20 25 73 ULL;.++i).{..dbg.("looking.at.%s
5d40 2c 20 6d 61 74 63 68 5f 66 6c 61 67 73 20 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f ,.match_flags.=.%x",.usb_module_
5d60 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d map[i].module_name,.usb_module_m
5d80 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 29 3b 0a 09 69 66 20 28 75 73 62 5f 6d 6f 64 ap[i].match_flags);..if.(usb_mod
5da0 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 ule_map[i].match_flags.&.USB_DEV
5dc0 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 49 4e 46 4f 29 20 7b 0a 09 20 20 20 20 69 66 ICE_ID_MATCH_INT_INFO).{......if
5de0 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 .((usb_module_map[i].match_flags
5e00 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 43 4c 41 53 53 .&.USB_DEVICE_ID_MATCH_INT_CLASS
5e20 29 20 26 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 49 ).&&.......(usb_module_map[i].bI
5e40 6e 74 65 72 66 61 63 65 43 6c 61 73 73 20 21 3d 20 63 6c 61 73 73 29 29 20 7b 0a 09 09 64 62 67 nterfaceClass.!=.class)).{...dbg
5e60 20 28 22 63 6c 61 73 73 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c .("class.check.failed.%x.!=.%x",
5e80 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 49 6e 74 65 72 66 61 63 65 43 6c 61 .usb_module_map[i].bInterfaceCla
5ea0 73 73 2c 20 63 6c 61 73 73 29 3b 0a 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 ss,.class);...continue;......}..
5ec0 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 ....if.((usb_module_map[i].match
5ee0 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 _flags.&.USB_DEVICE_ID_MATCH_INT
5f00 5f 53 55 42 43 4c 41 53 53 29 20 26 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f _SUBCLASS).&&.......(usb_module_
5f20 6d 61 70 5b 69 5d 2e 62 49 6e 74 65 72 66 61 63 65 53 75 62 43 6c 61 73 73 20 21 3d 20 73 75 62 map[i].bInterfaceSubClass.!=.sub
5f40 63 6c 61 73 73 29 29 20 7b 0a 09 09 64 62 67 20 28 22 73 75 62 63 6c 61 73 73 20 63 68 65 63 6b class)).{...dbg.("subclass.check
5f60 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 .failed.%x.!=.%x",.usb_module_ma
5f80 70 5b 69 5d 2e 62 49 6e 74 65 72 66 61 63 65 53 75 62 43 6c 61 73 73 2c 20 73 75 62 63 6c 61 73 p[i].bInterfaceSubClass,.subclas
5fa0 73 29 3b 0a 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 28 s);...continue;......}......if.(
5fc0 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 (usb_module_map[i].match_flags.&
5fe0 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 50 52 4f 54 4f 43 4f .USB_DEVICE_ID_MATCH_INT_PROTOCO
6000 4c 29 20 26 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 L).&&.......(usb_module_map[i].b
6020 49 6e 74 65 72 66 61 63 65 50 72 6f 74 6f 63 6f 6c 20 21 3d 20 70 72 6f 74 6f 63 6f 6c 29 29 20 InterfaceProtocol.!=.protocol)).
6040 7b 0a 09 09 64 62 67 20 28 22 70 72 6f 74 6f 63 6f 6c 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 {...dbg.("protocol.check.failed.
6060 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 49 6e %x.!=.%x",.usb_module_map[i].bIn
6080 74 65 72 66 61 63 65 50 72 6f 74 6f 63 6f 6c 2c 20 70 72 6f 74 6f 63 6f 6c 29 3b 0a 09 09 63 6f terfaceProtocol,.protocol);...co
60a0 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 2f 2a 20 66 6f 75 6e 64 20 6f 6e 65 ntinue;......}....../*.found.one
60c0 21 20 2a 2f 0a 09 20 20 20 20 64 62 67 20 28 22 6c 6f 61 64 69 6e 67 20 25 73 22 2c 20 75 73 62 !.*/......dbg.("loading.%s",.usb
60e0 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 20 20 _module_map[i].module_name);....
6100 20 20 72 65 74 76 61 6c 20 3d 20 6c 6f 61 64 5f 6d 6f 64 75 6c 65 20 28 75 73 62 5f 6d 6f 64 75 ..retval.=.load_module.(usb_modu
6120 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 20 20 20 20 69 66 20 le_map[i].module_name);......if.
6140 28 72 65 74 76 61 6c 29 0a 09 09 72 65 74 75 72 6e 20 72 65 74 76 61 6c 3b 0a 09 7d 0a 20 20 20 (retval)...return.retval;..}....
6160 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 69 6e 74 .}......return.0;.}...static.int
6180 20 75 73 62 5f 61 64 64 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 70 72 6f 64 .usb_add.(void).{.....char.*prod
61a0 75 63 74 5f 65 6e 76 3b 0a 20 20 20 20 63 68 61 72 20 2a 74 79 70 65 5f 65 6e 76 3b 0a 20 20 20 uct_env;.....char.*type_env;....
61c0 20 63 68 61 72 20 2a 69 6e 74 65 72 66 61 63 65 5f 65 6e 76 3b 0a 20 20 20 20 69 6e 74 20 65 72 .char.*interface_env;.....int.er
61e0 72 6f 72 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 64 56 65 6e 64 6f 72 3b 0a ror;.....unsigned.int.idVendor;.
6200 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 64 50 72 6f 64 75 63 74 3b 0a 20 20 20 20 ....unsigned.int.idProduct;.....
6220 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 63 64 44 65 76 69 63 65 3b 0a 20 20 20 20 75 6e 73 69 unsigned.int.bcdDevice;.....unsi
6240 67 6e 65 64 20 69 6e 74 20 64 65 76 69 63 65 5f 63 6c 61 73 73 3b 0a 20 20 20 20 75 6e 73 69 67 gned.int.device_class;.....unsig
6260 6e 65 64 20 69 6e 74 20 64 65 76 69 63 65 5f 73 75 62 63 6c 61 73 73 3b 0a 20 20 20 20 75 6e 73 ned.int.device_subclass;.....uns
6280 69 67 6e 65 64 20 69 6e 74 20 64 65 76 69 63 65 5f 70 72 6f 74 6f 63 6f 6c 3b 0a 20 20 20 20 75 igned.int.device_protocol;.....u
62a0 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 6e 74 65 72 66 61 63 65 5f 63 6c 61 73 73 20 3d 20 30 3b nsigned.int.interface_class.=.0;
62c0 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 6e 74 65 72 66 61 63 65 5f 73 75 62 63 .....unsigned.int.interface_subc
62e0 6c 61 73 73 20 3d 20 30 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 6e 74 65 72 lass.=.0;.....unsigned.int.inter
6300 66 61 63 65 5f 70 72 6f 74 6f 63 6f 6c 20 3d 20 30 3b 0a 0a 20 20 20 20 75 73 62 5f 72 65 61 64 face_protocol.=.0;......usb_read
6320 5f 75 73 62 6d 61 70 28 29 3b 0a 0a 20 20 20 20 70 72 6f 64 75 63 74 5f 65 6e 76 20 3d 20 67 65 _usbmap();......product_env.=.ge
6340 74 65 6e 76 20 28 22 50 52 4f 44 55 43 54 22 29 3b 0a 20 20 20 20 74 79 70 65 5f 65 6e 76 20 3d tenv.("PRODUCT");.....type_env.=
6360 20 67 65 74 65 6e 76 20 28 22 54 59 50 45 22 29 3b 0a 20 20 20 20 69 66 20 28 28 70 72 6f 64 75 .getenv.("TYPE");.....if.((produ
6380 63 74 5f 65 6e 76 20 3d 3d 20 4e 55 4c 4c 29 20 7c 7c 0a 09 20 20 20 20 28 74 79 70 65 5f 65 6e ct_env.==.NULL).||......(type_en
63a0 76 20 3d 3d 20 4e 55 4c 4c 29 29 20 7b 0a 09 64 62 67 20 28 22 6d 69 73 73 69 6e 67 20 61 6e 20 v.==.NULL)).{..dbg.("missing.an.
63c0 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 2c 20 61 62 6f 72 74 69 6e 67 2e 22 environment.variable,.aborting."
63e0 29 3b 0a 09 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 );..return.1;.....}.....error.=.
6400 73 70 6c 69 74 5f 33 76 61 6c 75 65 73 20 28 70 72 6f 64 75 63 74 5f 65 6e 76 2c 20 31 36 2c 20 split_3values.(product_env,.16,.
6420 26 69 64 56 65 6e 64 6f 72 2c 20 26 69 64 50 72 6f 64 75 63 74 2c 20 26 62 63 64 44 65 76 69 63 &idVendor,.&idProduct,.&bcdDevic
6440 65 29 3b 0a 20 20 20 20 69 66 20 28 65 72 72 6f 72 29 0a 09 72 65 74 75 72 6e 20 65 72 72 6f 72 e);.....if.(error)..return.error
6460 3b 0a 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 75 73 62 5f 6d 61 74 63 68 5f 76 65 6e 64 6f 72 5f ;......error.=.usb_match_vendor_
6480 70 72 6f 64 75 63 74 20 28 69 64 56 65 6e 64 6f 72 2c 20 69 64 50 72 6f 64 75 63 74 2c 20 62 63 product.(idVendor,.idProduct,.bc
64a0 64 44 65 76 69 63 65 29 3b 0a 20 20 20 20 69 66 20 28 65 72 72 6f 72 29 0a 09 72 65 74 75 72 6e dDevice);.....if.(error)..return
64c0 20 65 72 72 6f 72 3b 0a 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 73 70 6c 69 74 5f 33 76 61 6c 75 .error;......error.=.split_3valu
64e0 65 73 20 28 74 79 70 65 5f 65 6e 76 2c 20 31 30 2c 20 26 64 65 76 69 63 65 5f 63 6c 61 73 73 2c es.(type_env,.10,.&device_class,
6500 0a 09 20 20 20 20 26 64 65 76 69 63 65 5f 73 75 62 63 6c 61 73 73 2c 20 26 64 65 76 69 63 65 5f ......&device_subclass,.&device_
6520 70 72 6f 74 6f 63 6f 6c 29 3b 0a 20 20 20 20 69 66 20 28 65 72 72 6f 72 29 0a 09 72 65 74 75 72 protocol);.....if.(error)..retur
6540 6e 20 65 72 72 6f 72 3b 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 75 73 62 5f 6d 61 74 63 68 5f 64 n.error;.....error.=.usb_match_d
6560 65 76 69 63 65 5f 63 6c 61 73 73 20 28 64 65 76 69 63 65 5f 63 6c 61 73 73 2c 20 64 65 76 69 63 evice_class.(device_class,.devic
6580 65 5f 73 75 62 63 6c 61 73 73 2c 20 64 65 76 69 63 65 5f 70 72 6f 74 6f 63 6f 6c 29 3b 0a 20 20 e_subclass,.device_protocol);...
65a0 20 20 69 66 20 28 65 72 72 6f 72 29 0a 09 72 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 0a 20 20 20 ..if.(error)..return.error;.....
65c0 20 2f 2a 20 77 65 20 6e 65 65 64 20 74 6f 20 6c 6f 6f 6b 20 61 74 20 74 68 65 20 69 6e 74 65 72 ./*.we.need.to.look.at.the.inter
65e0 66 61 63 65 20 74 6f 6f 20 2a 2f 0a 20 20 20 20 69 6e 74 65 72 66 61 63 65 5f 65 6e 76 20 3d 20 face.too.*/.....interface_env.=.
6600 67 65 74 65 6e 76 20 28 22 49 4e 54 45 52 46 41 43 45 22 29 3b 0a 20 20 20 20 69 66 20 28 69 6e getenv.("INTERFACE");.....if.(in
6620 74 65 72 66 61 63 65 5f 65 6e 76 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 09 64 62 67 20 28 22 69 6e terface_env.==.NULL).{..dbg.("in
6640 74 65 72 66 61 63 65 20 69 73 20 6e 75 6c 6c 2c 20 77 65 20 64 6f 6e 27 74 20 6b 6e 6f 77 20 77 terface.is.null,.we.don't.know.w
6660 68 61 74 20 74 6f 20 64 6f 20 68 65 72 65 2e 22 29 3b 0a 09 72 65 74 75 72 6e 20 31 3b 0a 20 20 hat.to.do.here.");..return.1;...
6680 20 20 7d 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 73 70 6c 69 74 5f 33 76 61 6c 75 65 73 20 28 69 ..}.....error.=.split_3values.(i
66a0 6e 74 65 72 66 61 63 65 5f 65 6e 76 2c 20 31 30 2c 20 26 69 6e 74 65 72 66 61 63 65 5f 63 6c 61 nterface_env,.10,.&interface_cla
66c0 73 73 2c 0a 09 20 20 20 20 26 69 6e 74 65 72 66 61 63 65 5f 73 75 62 63 6c 61 73 73 2c 20 26 69 ss,......&interface_subclass,.&i
66e0 6e 74 65 72 66 61 63 65 5f 70 72 6f 74 6f 63 6f 6c 29 3b 0a 20 20 20 20 69 66 20 28 65 72 72 6f nterface_protocol);.....if.(erro
6700 72 29 0a 09 72 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 75 73 r)..return.error;.....error.=.us
6720 62 5f 6d 61 74 63 68 5f 69 6e 74 65 72 66 61 63 65 5f 63 6c 61 73 73 20 28 69 6e 74 65 72 66 61 b_match_interface_class.(interfa
6740 63 65 5f 63 6c 61 73 73 2c 20 69 6e 74 65 72 66 61 63 65 5f 73 75 62 63 6c 61 73 73 2c 20 69 6e ce_class,.interface_subclass,.in
6760 74 65 72 66 61 63 65 5f 70 72 6f 74 6f 63 6f 6c 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 65 72 terface_protocol);.....return.er
6780 72 6f 72 3b 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 75 73 62 5f 72 65 6d 6f 76 65 20 28 ror;.}...static.int.usb_remove.(
67a0 76 6f 69 64 29 0a 7b 0a 20 20 20 20 2f 2a 20 72 69 67 68 74 20 6e 6f 77 20 77 65 20 64 6f 6e 27 void).{...../*.right.now.we.don'
67c0 74 20 64 6f 20 61 6e 79 74 68 69 6e 67 20 68 65 72 65 20 3a 29 20 2a 2f 0a 20 20 20 20 72 65 74 t.do.anything.here.:).*/.....ret
67e0 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 20 73 75 62 73 79 73 74 urn.0;.}...static.struct.subsyst
6800 65 6d 20 75 73 62 5f 73 75 62 73 79 73 74 65 6d 5b 5d 20 3d 20 7b 0a 20 20 20 20 7b 20 41 44 44 em.usb_subsystem[].=.{.....{.ADD
6820 5f 53 54 52 49 4e 47 2c 09 75 73 62 5f 61 64 64 20 7d 2c 0a 20 20 20 20 7b 20 52 45 4d 4f 56 45 _STRING,.usb_add.},.....{.REMOVE
6840 5f 53 54 52 49 4e 47 2c 09 75 73 62 5f 72 65 6d 6f 76 65 20 7d 2c 0a 20 20 20 20 7b 20 4e 55 4c _STRING,.usb_remove.},.....{.NUL
6860 4c 2c 09 09 4e 55 4c 4c 20 7d 0a 7d 3b 0a 0a 0a 69 6e 74 20 75 73 62 5f 68 61 6e 64 6c 65 72 20 L,..NULL.}.};...int.usb_handler.
6880 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 20 61 63 74 69 6f 6e 3b 0a 0a 20 20 20 (void).{.....char.*.action;.....
68a0 20 61 63 74 69 6f 6e 20 3d 20 67 65 74 65 6e 76 20 28 22 41 43 54 49 4f 4e 22 29 3b 0a 20 20 20 .action.=.getenv.("ACTION");....
68c0 20 64 62 67 20 28 22 61 63 74 69 6f 6e 20 3d 20 25 73 22 2c 20 61 63 74 69 6f 6e 29 3b 0a 20 20 .dbg.("action.=.%s",.action);...
68e0 20 20 69 66 20 28 61 63 74 69 6f 6e 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 09 64 62 67 20 28 22 6d ..if.(action.==.NULL).{..dbg.("m
6900 69 73 73 69 6e 67 20 41 43 54 49 4f 4e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 issing.ACTION.environment.variab
6920 6c 65 2c 20 61 62 6f 72 74 69 6e 67 2e 22 29 3b 0a 09 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 le,.aborting.");..return.1;.....
6940 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 63 61 6c 6c 5f 73 75 62 73 79 73 74 65 6d 20 28 61 63 74 }.....return.call_subsystem.(act
6960 69 6f 6e 2c 20 75 73 62 5f 73 75 62 73 79 73 74 65 6d 29 3b 0a 7d 0a 0a 0a 2f 2a 20 55 74 69 6c ion,.usb_subsystem);.}.../*.Util
6980 69 74 79 20 66 75 6e 63 74 69 6f 6e 73 20 6e 65 65 64 65 64 20 62 79 20 73 6f 6d 65 20 6f 66 20 ity.functions.needed.by.some.of.
69a0 74 68 65 20 73 75 62 73 79 73 74 65 6d 73 2e 20 2a 2f 0a 0a 2f 2a 0a 20 2a 20 73 70 6c 69 74 5f the.subsystems..*/../*..*.split_
69c0 32 76 61 6c 75 65 73 0a 20 2a 0a 20 2a 20 74 61 6b 65 73 20 61 20 73 74 72 69 6e 67 20 6f 66 20 2values..*..*.takes.a.string.of.
69e0 66 6f 72 6d 61 74 20 22 78 78 78 78 3a 79 79 79 79 22 20 61 6e 64 20 66 69 67 75 72 65 73 20 6f format."xxxx:yyyy".and.figures.o
6a00 75 74 20 74 68 65 0a 20 2a 20 76 61 6c 75 65 73 20 66 6f 72 20 78 78 78 78 20 61 6e 64 20 79 79 ut.the..*.values.for.xxxx.and.yy
6a20 79 79 0a 20 2a 2f 0a 69 6e 74 20 73 70 6c 69 74 5f 32 76 61 6c 75 65 73 20 28 63 6f 6e 73 74 20 yy..*/.int.split_2values.(const.
6a40 63 68 61 72 20 2a 73 74 72 69 6e 67 2c 20 69 6e 74 20 62 61 73 65 2c 20 75 6e 73 69 67 6e 65 64 char.*string,.int.base,.unsigned
6a60 20 69 6e 74 20 2a 76 61 6c 75 65 31 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 76 61 6c 75 .int.*value1,.unsigned.int.*valu
6a80 65 32 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 32 30 30 5d 3b 0a 20 20 20 20 e2).{.....char.buffer[200];.....
6aa0 63 68 61 72 20 2a 74 65 6d 70 31 3b 0a 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 74 65 6d char.*temp1;.....const.char.*tem
6ac0 70 32 3b 0a 0a 20 20 20 20 64 62 67 28 22 73 74 72 69 6e 67 20 3d 20 25 73 22 2c 20 73 74 72 69 p2;......dbg("string.=.%s",.stri
6ae0 6e 67 29 3b 0a 0a 20 20 20 20 69 66 20 28 73 74 72 69 6e 67 20 3d 3d 20 4e 55 4c 4c 29 0a 09 72 ng);......if.(string.==.NULL)..r
6b00 65 74 75 72 6e 20 2d 31 3b 0a 20 20 20 20 69 66 20 28 73 74 72 6e 6c 65 6e 20 28 73 74 72 69 6e eturn.-1;.....if.(strnlen.(strin
6b20 67 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 29 20 3e 3d 20 73 69 7a 65 6f 66 28 62 75 66 g,.sizeof(buffer)).>=.sizeof(buf
6b40 66 65 72 29 29 0a 09 72 65 74 75 72 6e 20 2d 31 3b 0a 0a 20 20 20 20 2f 2a 20 70 69 63 6b 20 75 fer))..return.-1;....../*.pick.u
6b60 70 20 74 68 65 20 66 69 72 73 74 20 6e 75 6d 62 65 72 20 2a 2f 0a 20 20 20 20 74 65 6d 70 31 20 p.the.first.number.*/.....temp1.
6b80 3d 20 26 62 75 66 66 65 72 5b 30 5d 3b 0a 20 20 20 20 74 65 6d 70 32 20 3d 20 73 74 72 69 6e 67 =.&buffer[0];.....temp2.=.string
6ba0 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 31 29 20 7b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d ;.....while.(1).{..if.(*temp2.==
6bc0 20 30 78 30 30 29 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d .0x00)......break;..if.(*temp2.=
6be0 3d 20 27 3a 27 29 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 2a 74 65 6d 70 31 20 3d 20 2a 74 65 =.':')......break;..*temp1.=.*te
6c00 6d 70 32 3b 0a 09 2b 2b 74 65 6d 70 31 3b 0a 09 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 7d 0a 20 mp2;..++temp1;..++temp2;.....}..
6c20 20 20 20 2a 74 65 6d 70 31 20 3d 20 30 78 30 30 3b 0a 20 20 20 20 2a 76 61 6c 75 65 31 20 3d 20 ...*temp1.=.0x00;.....*value1.=.
6c40 73 74 72 74 6f 75 6c 20 28 62 75 66 66 65 72 2c 20 4e 55 4c 4c 2c 20 62 61 73 65 29 3b 0a 20 20 strtoul.(buffer,.NULL,.base);...
6c60 20 20 64 62 67 20 28 22 62 75 66 66 65 72 20 3d 20 25 73 22 2c 20 26 62 75 66 66 65 72 5b 30 5d ..dbg.("buffer.=.%s",.&buffer[0]
6c80 29 3b 0a 20 20 20 20 64 62 67 20 28 22 76 61 6c 75 65 31 20 3d 20 25 64 22 2c 20 2a 76 61 6c 75 );.....dbg.("value1.=.%d",.*valu
6ca0 65 31 29 3b 0a 0a 20 20 20 20 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 20 7b 0a e1);......if.(*temp2.==.0x00).{.
6cc0 09 2f 2a 20 73 74 72 69 6e 67 20 69 73 20 65 6e 64 65 64 2c 20 6e 6f 74 20 67 6f 6f 64 20 2a 2f ./*.string.is.ended,.not.good.*/
6ce0 0a 09 72 65 74 75 72 6e 20 2d 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 67 65 74 20 74 ..return.-1;.....}....../*.get.t
6d00 68 65 20 73 65 63 6f 6e 64 20 6e 75 6d 62 65 72 20 2a 2f 0a 20 20 20 20 74 65 6d 70 31 20 3d 20 he.second.number.*/.....temp1.=.
6d20 26 62 75 66 66 65 72 5b 30 5d 3b 0a 20 20 20 20 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 77 68 69 &buffer[0];.....++temp2;.....whi
6d40 6c 65 20 28 31 29 20 7b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 0a 09 20 le.(1).{..if.(*temp2.==.0x00)...
6d60 20 20 20 62 72 65 61 6b 3b 0a 09 2a 74 65 6d 70 31 20 3d 20 2a 74 65 6d 70 32 3b 0a 09 2b 2b 74 ...break;..*temp1.=.*temp2;..++t
6d80 65 6d 70 31 3b 0a 09 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 7d 0a 20 20 20 20 2a 74 65 6d 70 31 emp1;..++temp2;.....}.....*temp1
6da0 20 3d 20 30 78 30 30 3b 0a 20 20 20 20 2a 76 61 6c 75 65 32 20 3d 20 73 74 72 74 6f 75 6c 20 28 .=.0x00;.....*value2.=.strtoul.(
6dc0 62 75 66 66 65 72 2c 20 4e 55 4c 4c 2c 20 62 61 73 65 29 3b 0a 20 20 20 20 64 62 67 20 28 22 62 buffer,.NULL,.base);.....dbg.("b
6de0 75 66 66 65 72 20 3d 20 25 73 22 2c 20 26 62 75 66 66 65 72 5b 30 5d 29 3b 0a 20 20 20 20 64 62 uffer.=.%s",.&buffer[0]);.....db
6e00 67 20 28 22 76 61 6c 75 65 32 20 3d 20 25 64 22 2c 20 2a 76 61 6c 75 65 32 29 3b 0a 0a 20 20 20 g.("value2.=.%d",.*value2);.....
6e20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 2f 2a 0a 20 2a 20 73 70 6c 69 74 5f 33 76 61 6c 75 .return.0;.}.../*..*.split_3valu
6e40 65 73 0a 20 2a 0a 20 2a 20 74 61 6b 65 73 20 61 20 73 74 72 69 6e 67 20 6f 66 20 66 6f 72 6d 61 es..*..*.takes.a.string.of.forma
6e60 74 20 22 78 78 78 78 2f 79 79 79 79 2f 7a 7a 7a 7a 22 20 61 6e 64 20 66 69 67 75 72 65 73 20 6f t."xxxx/yyyy/zzzz".and.figures.o
6e80 75 74 20 74 68 65 0a 20 2a 20 76 61 6c 75 65 73 20 66 6f 72 20 78 78 78 78 2c 20 79 79 79 79 2c ut.the..*.values.for.xxxx,.yyyy,
6ea0 20 61 6e 64 20 7a 7a 7a 7a 0a 20 2a 2f 0a 69 6e 74 20 73 70 6c 69 74 5f 33 76 61 6c 75 65 73 20 .and.zzzz..*/.int.split_3values.
6ec0 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 74 72 69 6e 67 2c 20 69 6e 74 20 62 61 73 65 2c 20 75 (const.char.*string,.int.base,.u
6ee0 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 20 76 61 6c 75 65 31 2c 0a 09 75 6e 73 69 67 6e 65 64 20 nsigned.int.*.value1,..unsigned.
6f00 69 6e 74 20 2a 20 76 61 6c 75 65 32 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 20 76 61 6c int.*.value2,.unsigned.int.*.val
6f20 75 65 33 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 32 30 30 5d 3b 0a 20 20 20 ue3).{.....char.buffer[200];....
6f40 20 63 68 61 72 20 2a 74 65 6d 70 31 3b 0a 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 74 65 .char.*temp1;.....const.char.*te
6f60 6d 70 32 3b 0a 0a 20 20 20 20 64 62 67 28 22 73 74 72 69 6e 67 20 3d 20 25 73 22 2c 20 73 74 72 mp2;......dbg("string.=.%s",.str
6f80 69 6e 67 29 3b 0a 0a 20 20 20 20 69 66 20 28 73 74 72 69 6e 67 20 3d 3d 20 4e 55 4c 4c 29 0a 09 ing);......if.(string.==.NULL)..
6fa0 72 65 74 75 72 6e 20 2d 31 3b 0a 20 20 20 20 69 66 20 28 73 74 72 6e 6c 65 6e 20 28 73 74 72 69 return.-1;.....if.(strnlen.(stri
6fc0 6e 67 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 29 20 3e 3d 20 73 69 7a 65 6f 66 28 62 75 ng,.sizeof(buffer)).>=.sizeof(bu
6fe0 66 66 65 72 29 29 0a 09 72 65 74 75 72 6e 20 2d 31 3b 0a 0a 20 20 20 20 2f 2a 20 70 69 63 6b 20 ffer))..return.-1;....../*.pick.
7000 75 70 20 74 68 65 20 66 69 72 73 74 20 6e 75 6d 62 65 72 20 2a 2f 0a 20 20 20 20 74 65 6d 70 31 up.the.first.number.*/.....temp1
7020 20 3d 20 26 62 75 66 66 65 72 5b 30 5d 3b 0a 20 20 20 20 74 65 6d 70 32 20 3d 20 73 74 72 69 6e .=.&buffer[0];.....temp2.=.strin
7040 67 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 31 29 20 7b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d g;.....while.(1).{..if.(*temp2.=
7060 3d 20 30 78 30 30 29 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 =.0x00)......break;..if.(*temp2.
7080 3d 3d 20 27 2f 27 29 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 2a 74 65 6d 70 31 20 3d 20 2a 74 ==.'/')......break;..*temp1.=.*t
70a0 65 6d 70 32 3b 0a 09 2b 2b 74 65 6d 70 31 3b 0a 09 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 7d 0a emp2;..++temp1;..++temp2;.....}.
70c0 20 20 20 20 2a 74 65 6d 70 31 20 3d 20 30 78 30 30 3b 0a 20 20 20 20 2a 76 61 6c 75 65 31 20 3d ....*temp1.=.0x00;.....*value1.=
70e0 20 73 74 72 74 6f 75 6c 20 28 62 75 66 66 65 72 2c 20 4e 55 4c 4c 2c 20 62 61 73 65 29 3b 0a 20 .strtoul.(buffer,.NULL,.base);..
7100 20 20 20 64 62 67 20 28 22 62 75 66 66 65 72 20 3d 20 25 73 22 2c 20 26 62 75 66 66 65 72 5b 30 ...dbg.("buffer.=.%s",.&buffer[0
7120 5d 29 3b 0a 20 20 20 20 64 62 67 20 28 22 76 61 6c 75 65 31 20 3d 20 25 64 22 2c 20 2a 76 61 6c ]);.....dbg.("value1.=.%d",.*val
7140 75 65 31 29 3b 0a 0a 20 20 20 20 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 20 7b ue1);......if.(*temp2.==.0x00).{
7160 0a 09 2f 2a 20 73 74 72 69 6e 67 20 69 73 20 65 6e 64 65 64 2c 20 6e 6f 74 20 67 6f 6f 64 20 2a ../*.string.is.ended,.not.good.*
7180 2f 0a 09 72 65 74 75 72 6e 20 2d 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 67 65 74 20 /..return.-1;.....}....../*.get.
71a0 74 68 65 20 73 65 63 6f 6e 64 20 6e 75 6d 62 65 72 20 2a 2f 0a 20 20 20 20 74 65 6d 70 31 20 3d the.second.number.*/.....temp1.=
71c0 20 26 62 75 66 66 65 72 5b 30 5d 3b 0a 20 20 20 20 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 77 68 .&buffer[0];.....++temp2;.....wh
71e0 69 6c 65 20 28 31 29 20 7b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 0a 09 ile.(1).{..if.(*temp2.==.0x00)..
7200 20 20 20 20 62 72 65 61 6b 3b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 27 2f 27 29 0a 09 ....break;..if.(*temp2.==.'/')..
7220 20 20 20 20 62 72 65 61 6b 3b 0a 09 2a 74 65 6d 70 31 20 3d 20 2a 74 65 6d 70 32 3b 0a 09 2b 2b ....break;..*temp1.=.*temp2;..++
7240 74 65 6d 70 31 3b 0a 09 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 7d 0a 20 20 20 20 2a 74 65 6d 70 temp1;..++temp2;.....}.....*temp
7260 31 20 3d 20 30 78 30 30 3b 0a 20 20 20 20 2a 76 61 6c 75 65 32 20 3d 20 73 74 72 74 6f 75 6c 20 1.=.0x00;.....*value2.=.strtoul.
7280 28 62 75 66 66 65 72 2c 20 4e 55 4c 4c 2c 20 62 61 73 65 29 3b 0a 20 20 20 20 64 62 67 20 28 22 (buffer,.NULL,.base);.....dbg.("
72a0 62 75 66 66 65 72 20 3d 20 25 73 22 2c 20 26 62 75 66 66 65 72 5b 30 5d 29 3b 0a 20 20 20 20 64 buffer.=.%s",.&buffer[0]);.....d
72c0 62 67 20 28 22 76 61 6c 75 65 32 20 3d 20 25 64 22 2c 20 2a 76 61 6c 75 65 32 29 3b 0a 0a 20 20 bg.("value2.=.%d",.*value2);....
72e0 20 20 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 20 7b 0a 09 2f 2a 20 73 74 72 69 ..if.(*temp2.==.0x00).{../*.stri
7300 6e 67 20 69 73 20 65 6e 64 65 64 2c 20 6e 6f 74 20 67 6f 6f 64 20 2a 2f 0a 09 72 65 74 75 72 6e ng.is.ended,.not.good.*/..return
7320 20 2d 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 67 65 74 20 74 68 65 20 74 68 69 72 64 .-1;.....}....../*.get.the.third
7340 20 6e 75 6d 62 65 72 20 2a 2f 0a 20 20 20 20 74 65 6d 70 31 20 3d 20 26 62 75 66 66 65 72 5b 30 .number.*/.....temp1.=.&buffer[0
7360 5d 3b 0a 20 20 20 20 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 31 29 20 7b 0a ];.....++temp2;.....while.(1).{.
7380 09 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 0a 09 20 20 20 20 62 72 65 61 6b 3b .if.(*temp2.==.0x00)......break;
73a0 0a 09 2a 74 65 6d 70 31 20 3d 20 2a 74 65 6d 70 32 3b 0a 09 2b 2b 74 65 6d 70 31 3b 0a 09 2b 2b ..*temp1.=.*temp2;..++temp1;..++
73c0 74 65 6d 70 32 3b 0a 20 20 20 20 7d 0a 20 20 20 20 2a 74 65 6d 70 31 20 3d 20 30 78 30 30 3b 0a temp2;.....}.....*temp1.=.0x00;.
73e0 20 20 20 20 2a 76 61 6c 75 65 33 20 3d 20 73 74 72 74 6f 75 6c 20 28 62 75 66 66 65 72 2c 20 4e ....*value3.=.strtoul.(buffer,.N
7400 55 4c 4c 2c 20 62 61 73 65 29 3b 0a 20 20 20 20 64 62 67 20 28 22 62 75 66 66 65 72 20 3d 20 25 ULL,.base);.....dbg.("buffer.=.%
7420 73 22 2c 20 26 62 75 66 66 65 72 5b 30 5d 29 3b 0a 20 20 20 20 64 62 67 20 28 22 76 61 6c 75 65 s",.&buffer[0]);.....dbg.("value
7440 33 20 3d 20 25 64 22 2c 20 2a 76 61 6c 75 65 33 29 3b 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3.=.%d",.*value3);......return.0
7460 3b 0a 7d 0a 0a 0a 69 6e 74 20 63 61 6c 6c 5f 73 75 62 73 79 73 74 65 6d 20 28 63 6f 6e 73 74 20 ;.}...int.call_subsystem.(const.
7480 63 68 61 72 20 2a 73 74 72 69 6e 67 2c 20 73 74 72 75 63 74 20 73 75 62 73 79 73 74 65 6d 20 2a char.*string,.struct.subsystem.*
74a0 73 75 62 73 79 73 74 65 6d 29 0a 7b 0a 20 20 20 20 69 6e 74 20 69 3b 0a 0a 20 20 20 20 66 6f 72 subsystem).{.....int.i;......for
74c0 20 28 69 20 3d 20 30 3b 20 73 75 62 73 79 73 74 65 6d 5b 69 5d 2e 6e 61 6d 65 20 21 3d 20 4e 55 .(i.=.0;.subsystem[i].name.!=.NU
74e0 4c 4c 3b 20 2b 2b 69 29 20 7b 0a 09 69 66 20 28 73 74 72 6e 63 6d 70 20 28 73 74 72 69 6e 67 2c LL;.++i).{..if.(strncmp.(string,
7500 20 73 75 62 73 79 73 74 65 6d 5b 69 5d 2e 6e 61 6d 65 2c 20 73 74 72 6c 65 6e 28 73 74 72 69 6e .subsystem[i].name,.strlen(strin
7520 67 29 29 20 3d 3d 20 30 29 0a 09 20 20 20 20 72 65 74 75 72 6e 20 73 75 62 73 79 73 74 65 6d 5b g)).==.0)......return.subsystem[
7540 69 5d 2e 68 61 6e 64 6c 65 72 28 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 31 i].handler();.....}.....return.1
7560 3b 0a 7d 0a 0a 0a 69 6e 74 20 6c 6f 61 64 5f 6d 6f 64 75 6c 65 20 28 63 6f 6e 73 74 20 63 68 61 ;.}...int.load_module.(const.cha
7580 72 20 2a 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 61 72 67 76 r.*module_name).{.....char.*argv
75a0 5b 33 5d 3b 0a 0a 20 20 20 20 61 72 67 76 5b 30 5d 20 3d 20 22 2f 73 62 69 6e 2f 6d 6f 64 70 72 [3];......argv[0].=."/sbin/modpr
75c0 6f 62 65 22 3b 0a 20 20 20 20 61 72 67 76 5b 31 5d 20 3d 20 28 63 68 61 72 20 2a 29 6d 6f 64 75 obe";.....argv[1].=.(char.*)modu
75e0 6c 65 5f 6e 61 6d 65 3b 0a 20 20 20 20 61 72 67 76 5b 32 5d 20 3d 20 4e 55 4c 4c 3b 0a 20 20 20 le_name;.....argv[2].=.NULL;....
7600 20 64 62 67 20 28 22 6c 6f 61 64 69 6e 67 20 6d 6f 64 75 6c 65 20 25 73 22 2c 20 6d 6f 64 75 6c .dbg.("loading.module.%s",.modul
7620 65 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 73 77 69 74 63 68 20 28 66 6f 72 6b 28 29 29 20 7b 0a 09 e_name);.....switch.(fork()).{..
7640 63 61 73 65 20 30 3a 0a 09 20 20 20 20 2f 2a 20 77 65 20 61 72 65 20 74 68 65 20 63 68 69 6c 64 case.0:....../*.we.are.the.child
7660 2c 20 73 6f 20 6c 65 74 73 20 72 75 6e 20 74 68 65 20 70 72 6f 67 72 61 6d 20 2a 2f 0a 09 20 20 ,.so.lets.run.the.program.*/....
7680 20 20 65 78 65 63 76 20 28 22 2f 73 62 69 6e 2f 6d 6f 64 70 72 6f 62 65 22 2c 20 61 72 67 76 29 ..execv.("/sbin/modprobe",.argv)
76a0 3b 0a 09 20 20 20 20 65 78 69 74 28 30 29 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 63 61 73 ;......exit(0);......break;..cas
76c0 65 20 28 2d 31 29 3a 0a 09 20 20 20 20 64 62 67 20 28 22 66 6f 72 6b 20 66 61 69 6c 65 64 2e 22 e.(-1):......dbg.("fork.failed."
76e0 29 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 64 65 66 61 75 6c 74 3a 0a 09 20 20 20 20 62 72 );......break;..default:......br
7700 65 61 6b 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 00 00 00 00 eak;.....}.....return.0;.}......
7720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
77a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
77c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
77e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
79a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
79c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
79e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
88a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
88c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
88e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
96a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
96c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
96e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................