home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1993-10-23 | 2.8 KB | [ TEXT/MPS ]
open in: MacOS 8.1
extracted
|
Win98
extracted
|
DOS
extracted
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary ).
You can browse this item here: MacPerlTest
Confidence Program Detection Match Type Support
10%
dexvert
MacBinary (archive/macBinary)
fallback
Supported
1%
dexvert
Text File (text/txt)
fallback
Supported
100%
file
MacBinary II, inited, Sat Oct 23 01:19:45 1993, modified Sat Oct 23 01:19:45 1993, creator 'MPS ', type ASCII, 2125 bytes "MacPerlTest" , at 0x8cd 428 bytes resource
default (weak)
99%
file
data
default
74%
TrID
Macintosh plain text (MacBinary)
default
25%
TrID
MacBinary 2
default (weak)
100%
siegfried
fmt/1762 MacBinary (II)
default
100%
lsar
MacBinary
default
id metadata key value macFileType [ TEXT] macFileCreator [ MPS ]
hex view +--------+-------------------------+-------------------------+--------+--------+ |00000000| 00 0b 4d 61 63 50 65 72 | 6c 54 65 73 74 00 00 00 |..MacPer|lTest...| |00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000040| 00 54 45 58 54 4d 50 53 | 20 01 00 00 00 00 00 00 |.TEXTMPS| .......| |00000050| 00 00 00 00 00 08 4d 00 | 00 01 ac a8 ee 6f 71 a8 |......M.|.....oq.| |00000060| ee 6f 71 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.oq.....|........| |00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 b2 aa 00 00 |........|........| |00000080| 3a 3a 50 65 72 6c 20 2d | 53 78 20 22 7b 30 7d 22 |::Perl -|Sx "{0}"| |00000090| 20 70 72 65 70 61 72 65 | 20 7b 22 50 61 72 61 6d | prepare| {"Param| |000000a0| 65 74 65 72 73 22 7d 20 | 3e 20 4d 61 63 50 65 72 |eters"} |> MacPer| |000000b0| 6c 54 65 73 74 2e 52 75 | 6e 0d 3a 4d 61 63 50 65 |lTest.Ru|n.:MacPe| |000000c0| 72 6c 54 65 73 74 2e 52 | 75 6e 20 b7 20 4d 61 63 |rlTest.R|un . Mac| |000000d0| 50 65 72 6c 54 65 73 74 | 2e 4f 75 74 0d 3a 3a 50 |PerlTest|.Out.::P| |000000e0| 65 72 6c 20 2d 53 78 20 | 22 7b 30 7d 22 20 65 76 |erl -Sx |"{0}" ev| |000000f0| 61 6c 75 61 74 65 20 7b | 22 50 61 72 61 6d 65 74 |aluate {|"Paramet| |00000100| 65 72 73 22 7d 20 4d 61 | 63 50 65 72 6c 54 65 73 |ers"} Ma|cPerlTes| |00000110| 74 2e 4f 75 74 0d 44 65 | 6c 65 74 65 20 4d 61 63 |t.Out.De|lete Mac| |00000120| 50 65 72 6c 54 65 73 74 | 2e 4f 75 74 20 4d 61 63 |PerlTest|.Out Mac| |00000130| 50 65 72 6c 54 65 73 74 | 2e 52 75 6e 0d 45 78 69 |PerlTest|.Run.Exi| |00000140| 74 20 30 0d 0d 23 21 2e | 2f 70 65 72 6c 0d 09 0d |t 0..#!.|/perl...| |00000150| 23 20 24 52 43 53 66 69 | 6c 65 3a 20 54 45 53 54 |# $RCSfi|le: TEST| |00000160| 2c 76 20 24 24 52 65 76 | 69 73 69 6f 6e 3a 20 34 |,v $$Rev|ision: 4| |00000170| 2e 30 2e 31 2e 31 20 24 | 24 44 61 74 65 3a 20 39 |.0.1.1 $|$Date: 9| |00000180| 31 2f 30 36 2f 30 37 20 | 31 31 3a 35 39 3a 33 30 |1/06/07 |11:59:30| |00000190| 20 24 0d 0d 23 20 54 68 | 69 73 20 69 73 20 77 72 | $..# Th|is is wr| |000001a0| 69 74 74 65 6e 20 69 6e | 20 61 20 70 65 63 75 6c |itten in| a pecul| |000001b0| 69 61 72 20 73 74 79 6c | 65 2c 20 73 69 6e 63 65 |iar styl|e, since| |000001c0| 20 77 65 27 72 65 20 74 | 72 79 69 6e 67 20 74 6f | we're t|rying to| |000001d0| 20 61 76 6f 69 64 0d 23 | 20 6d 6f 73 74 20 6f 66 | avoid.#| most of| |000001e0| 20 74 68 65 20 63 6f 6e | 73 74 72 75 63 74 73 20 | the con|structs | |000001f0| 77 65 27 6c 6c 20 62 65 | 20 74 65 73 74 69 6e 67 |we'll be| testing| |00000200| 20 66 6f 72 2e 0d 0d 24 | 7c 20 3d 20 31 3b 0d 0d | for...$|| = 1;..| |00000210| 24 6f 70 65 72 61 74 69 | 6f 6e 20 3d 20 73 68 69 |$operati|on = shi| |00000220| 66 74 3b 0d 0d 69 66 20 | 28 24 41 52 47 56 5b 30 |ft;..if |($ARGV[0| |00000230| 5d 20 65 71 20 27 2d 76 | 27 29 20 7b 0d 20 20 20 |] eq '-v|') {. | |00000240| 20 24 76 65 72 62 6f 73 | 65 20 3d 20 31 3b 0d 20 | $verbos|e = 1;. | |00000250| 20 20 20 73 68 69 66 74 | 3b 0d 7d 0d 0d 64 69 65 | shift|;.}..die| |00000260| 20 22 52 75 6e 20 6d 65 | 20 66 72 6f 6d 20 74 68 | "Run me| from th| |00000270| 65 20 3a 74 20 64 69 72 | 65 63 74 6f 72 79 22 20 |e :t dir|ectory" | |00000280| 69 66 20 28 2d 66 20 27 | 3a 74 3a 54 45 53 54 27 |if (-f '|:t:TEST'| |00000290| 29 3b 0d 0d 69 66 20 28 | 24 6f 70 65 72 61 74 69 |);..if (|$operati| |000002a0| 6f 6e 20 65 71 20 22 70 | 72 65 70 61 72 65 22 29 |on eq "p|repare")| |000002b0| 20 7b 0d 09 70 72 69 6e | 74 20 22 53 65 74 20 45 | {..prin|t "Set E| |000002c0| 78 69 74 20 30 5c 6e 22 | 3b 0d 09 0d 09 69 66 20 |xit 0\n"|;....if | |000002d0| 28 24 41 52 47 56 5b 30 | 5d 20 65 71 20 27 27 29 |($ARGV[0|] eq '')| |000002e0| 20 7b 0d 09 09 20 40 41 | 52 47 56 20 3d 20 73 70 | {... @A|RGV = sp| |000002f0| 6c 69 74 28 2f 5b 20 5c | 6e 5d 2f 2c 0d 09 09 09 |lit(/[ \|n]/,....| |00000300| 60 65 63 68 6f 20 3a 62 | 61 73 65 3a c5 2e 74 20 |`echo :b|ase:..t | |00000310| 3a 63 6f 6d 70 3a c5 2e | 74 20 3a 63 6d 64 3a c5 |:comp:..|t :cmd:.| |00000320| 2e 74 20 3a 69 6f 3a c5 | 2e 74 3b 20 65 63 68 6f |.t :io:.|.t; echo| |00000330| 20 3a 6f 70 3a c5 2e 74 | 20 3a 6c 69 62 3a c5 2e | :op:..t| :lib:..| |00000340| 74 60 29 3b 0d 09 7d 0d | 09 0d 09 24 62 61 64 20 |t`);..}.|...$bad | |00000350| 3d 20 30 3b 0d 09 77 68 | 69 6c 65 20 28 24 74 65 |= 0;..wh|ile ($te| |00000360| 73 74 20 3d 20 73 68 69 | 66 74 29 20 7b 0d 09 09 |st = shi|ft) {...| |00000370| 69 66 20 28 24 74 65 73 | 74 20 3d 7e 20 2f 5e 24 |if ($tes|t =~ /^$| |00000380| 2f 29 20 7b 0d 09 09 09 | 6e 65 78 74 3b 0d 09 09 |/) {....|next;...| |00000390| 7d 0d 09 09 24 74 65 20 | 3d 20 24 74 65 73 74 3b |}...$te |= $test;| |000003a0| 0d 09 09 63 68 6f 70 28 | 24 74 65 29 3b 0d 09 09 |...chop(|$te);...| |000003b0| 70 72 69 6e 74 20 22 65 | 63 68 6f 20 5c 27 2d 2d |print "e|cho \'--| |000003c0| 2d 2d 2d 20 24 74 65 22 | 20 2e 20 27 2e 27 20 78 |--- $te"| . '.' x| |000003d0| 20 28 32 30 20 2d 20 6c | 65 6e 67 74 68 28 24 74 | (20 - l|ength($t| |000003e0| 65 29 29 20 2e 20 22 5c | 27 5c 6e 22 3b 0d 09 09 |e)) . "\|'\n";...| |000003f0| 6f 70 65 6e 28 73 63 72 | 69 70 74 2c 22 24 74 65 |open(scr|ipt,"$te| |00000400| 73 74 22 29 20 7c 7c 20 | 64 69 65 20 22 43 61 6e |st") || |die "Can| |00000410| 27 74 20 72 75 6e 20 24 | 74 65 73 74 2e 5c 6e 22 |'t run $|test.\n"| |00000420| 3b 0d 09 09 24 5f 20 3d | 20 3c 73 63 72 69 70 74 |;...$_ =| <script| |00000430| 3e 3b 0d 09 09 63 6c 6f | 73 65 28 73 63 72 69 70 |>;...clo|se(scrip| |00000440| 74 29 3b 0d 09 09 69 66 | 20 28 2f 23 21 2e 2e 70 |t);...if| (/#!..p| |00000450| 65 72 6c 28 2e 2a 29 2f | 29 20 7b 0d 09 09 09 24 |erl(.*)/|) {....$| |00000460| 73 77 69 74 63 68 20 3d | 20 24 31 3b 0d 09 09 7d |switch =| $1;...}| |00000470| 20 65 6c 73 65 20 7b 0d | 09 09 09 24 73 77 69 74 | else {.|...$swit| |00000480| 63 68 20 3d 20 27 27 3b | 0d 09 09 7d 0d 09 09 70 |ch = '';|...}...p| |00000490| 72 69 6e 74 20 22 3a 3a | 50 65 72 6c 24 73 77 69 |rint "::|Perl$swi| |000004a0| 74 63 68 20 24 74 65 73 | 74 5c 6e 22 3b 0d 09 7d |tch $tes|t\n";..}| |000004b0| 0d 7d 20 65 6c 73 69 66 | 20 28 24 6f 70 65 72 61 |.} elsif| ($opera| |000004c0| 74 69 6f 6e 20 65 71 20 | 22 65 76 61 6c 75 61 74 |tion eq |"evaluat| |000004d0| 65 22 29 20 7b 0d 09 24 | 5f 20 3d 20 22 22 3b 0d |e") {..$|_ = "";.| |000004e0| 09 0d 74 65 73 74 73 3a | 20 77 68 69 6c 65 20 28 |..tests:| while (| |000004f0| 31 29 09 7b 0d 09 09 77 | 68 69 6c 65 20 28 31 29 |1).{...w|hile (1)| |00000500| 20 7b 0d 09 09 09 6c 61 | 73 74 20 69 66 20 2f 5e | {....la|st if /^| |00000510| 2d 2d 2d 2d 2d 2f 3b 0d | 09 09 09 6c 61 73 74 20 |-----/;.|...last | |00000520| 74 65 73 74 73 20 75 6e | 6c 65 73 73 20 28 24 5f |tests un|less ($_| |00000530| 20 3d 20 3c 3e 29 3b 0d | 09 09 7d 20 0d 0d 09 09 | = <>);.|..} ....| |00000540| 24 5f 20 3d 7e 20 2f 2d | 2d 2d 2d 2d 20 28 2e 2a |$_ =~ /-|---- (.*| |00000550| 29 2f 3b 0d 09 09 0d 09 | 09 70 72 69 6e 74 20 24 |)/;.....|.print $| |00000560| 31 3b 0d 09 09 24 6f 6b | 20 3d 20 30 3b 0d 09 09 |1;...$ok| = 0;...| |00000570| 24 6e 65 78 74 20 3d 20 | 30 3b 0d 09 09 0d 09 09 |$next = |0;......| |00000580| 77 68 69 6c 65 20 28 3c | 3e 29 20 7b 0d 09 09 09 |while (<|>) {....| |00000590| 6c 61 73 74 20 69 66 20 | 28 2f 5e 2d 2d 2d 2d 2d |last if |(/^-----| |000005a0| 2f 29 3b 0d 09 09 09 0d | 09 09 09 69 66 20 28 24 |/);.....|...if ($| |000005b0| 76 65 72 62 6f 73 65 29 | 20 7b 0d 09 09 09 09 70 |verbose)| {.....p| |000005c0| 72 69 6e 74 20 22 5c 74 | 24 5f 22 3b 0d 09 09 09 |rint "\t|$_";....| |000005d0| 7d 0d 09 09 09 75 6e 6c | 65 73 73 20 28 2f 5e 23 |}....unl|ess (/^#| |000005e0| 2f 29 20 7b 0d 09 09 09 | 09 69 66 20 28 2f 5e 31 |/) {....|.if (/^1| |000005f0| 5c 2e 5c 2e 28 5b 30 2d | 39 5d 2b 29 2f 29 20 7b |\.\.([0-|9]+)/) {| |00000600| 0d 09 09 09 09 09 24 6d | 61 78 20 3d 20 24 31 3b |......$m|ax = $1;| |00000610| 0d 09 09 09 09 09 24 74 | 6f 74 6d 61 78 20 2b 3d |......$t|otmax +=| |00000620| 20 24 6d 61 78 3b 0d 09 | 09 09 09 09 24 66 69 6c | $max;..|....$fil| |00000630| 65 73 20 2b 3d 20 31 3b | 0d 09 09 09 09 09 24 6e |es += 1;|......$n| |00000640| 65 78 74 20 3d 20 31 3b | 0d 09 09 09 09 09 24 6f |ext = 1;|......$o| |00000650| 6b 20 3d 20 31 3b 0d 09 | 09 09 09 20 7d 20 65 6c |k = 1;..|... } el| |00000660| 73 65 20 7b 0d 09 09 09 | 09 09 24 6e 65 78 74 20 |se {....|..$next | |00000670| 3d 20 24 31 2c 20 24 6f | 6b 20 3d 20 30 2c 20 6c |= $1, $o|k = 0, l| |00000680| 61 73 74 20 69 66 20 2f | 5e 6e 6f 74 20 6f 6b 20 |ast if /|^not ok | |00000690| 28 5b 30 2d 39 5d 2a 29 | 2f 3b 0d 09 09 09 09 09 |([0-9]*)|/;......| |000006a0| 69 66 20 28 2f 5e 6f 6b | 20 28 2e 2a 29 2f 20 26 |if (/^ok| (.*)/ &| |000006b0| 26 20 24 31 20 3d 3d 20 | 24 6e 65 78 74 29 20 7b |& $1 == |$next) {| |000006c0| 0d 09 09 09 09 09 09 24 | 6e 65 78 74 20 3d 20 24 |.......$|next = $| |000006d0| 6e 65 78 74 20 2b 20 31 | 3b 0d 09 09 09 09 09 7d |next + 1|;......}| |000006e0| 20 65 6c 73 65 20 7b 0d | 09 09 09 09 09 09 24 6f | else {.|......$o| |000006f0| 6b 20 3d 20 30 3b 0d 09 | 09 09 09 09 7d 0d 09 09 |k = 0;..|....}...| |00000700| 09 09 7d 0d 09 09 09 7d | 0d 09 09 7d 0d 20 20 20 |..}....}|...}. | |00000710| 20 09 24 6e 65 78 74 20 | 3d 20 24 6e 65 78 74 20 | .$next |= $next | |00000720| 2d 20 31 3b 0d 20 20 20 | 20 09 69 66 20 28 24 6f |- 1;. | .if ($o| |00000730| 6b 20 26 26 20 24 6e 65 | 78 74 20 3d 3d 20 24 6d |k && $ne|xt == $m| |00000740| 61 78 29 20 7b 0d 09 09 | 09 70 72 69 6e 74 20 22 |ax) {...|.print "| |00000750| 6f 6b 5c 6e 22 3b 0d 20 | 20 20 20 09 7d 20 65 6c |ok\n";. | .} el| |00000760| 73 65 20 7b 0d 09 09 09 | 24 6e 65 78 74 20 2b 3d |se {....|$next +=| |00000770| 20 31 3b 0d 09 09 09 70 | 72 69 6e 74 20 22 46 41 | 1;....p|rint "FA| |00000780| 49 4c 45 44 20 6f 6e 20 | 74 65 73 74 20 24 6e 65 |ILED on |test $ne| |00000790| 78 74 5c 6e 22 3b 0d 09 | 09 09 24 62 61 64 20 3d |xt\n";..|..$bad =| |000007a0| 20 24 62 61 64 20 2b 20 | 31 3b 0d 09 09 7d 0d 09 | $bad + |1;...}..| |000007b0| 09 0d 09 09 6c 61 73 74 | 20 75 6e 6c 65 73 73 20 |....last| unless | |000007c0| 2f 5e 2d 2d 2d 2d 2d 2f | 20 7c 7c ca 21 24 6f 6b |/^-----/| ||.!$ok| |000007d0| 3b 0d 09 7d 0d 09 69 66 | 20 28 24 62 61 64 20 3d |;..}..if| ($bad =| |000007e0| 3d 20 30 29 20 7b 0d 09 | 09 69 66 20 28 24 6f 6b |= 0) {..|.if ($ok| |000007f0| 29 20 7b 0d 09 09 09 70 | 72 69 6e 74 20 22 41 6c |) {....p|rint "Al| |00000800| 6c 20 74 65 73 74 73 20 | 73 75 63 63 65 73 73 66 |l tests |successf| |00000810| 75 6c 2e 5c 6e 22 3b 0d | 09 09 7d 20 65 6c 73 65 |ul.\n";.|..} else| |00000820| 20 7b 0d 09 09 09 64 69 | 65 20 22 46 41 49 4c 45 | {....di|e "FAILE| |00000830| 44 2d 2d 6e 6f 20 74 65 | 73 74 73 20 77 65 72 65 |D--no te|sts were| |00000840| 20 72 75 6e 20 66 6f 72 | 20 73 6f 6d 65 20 72 65 | run for| some re| |00000850| 61 73 6f 6e 2e 5c 6e 22 | 3b 0d 09 09 7d 0d 09 7d |ason.\n"|;...}..}| |00000860| 20 65 6c 73 65 20 7b 0d | 09 09 69 66 20 28 24 62 | else {.|..if ($b| |00000870| 61 64 20 3d 3d 20 31 29 | 20 7b 0d 09 09 09 70 72 |ad == 1)| {....pr| |00000880| 69 6e 74 20 22 46 61 69 | 6c 65 64 20 31 20 74 65 |int "Fai|led 1 te| |00000890| 73 74 2e 5c 6e 22 3b 0d | 09 09 7d 20 65 6c 73 65 |st.\n";.|..} else| |000008a0| 20 7b 0d 09 09 09 70 72 | 69 6e 74 20 22 46 61 69 | {....pr|int "Fai| |000008b0| 6c 65 64 20 24 62 61 64 | 20 74 65 73 74 73 2e 5c |led $bad| tests.\| |000008c0| 6e 22 3b 0d 09 09 7d 0d | 09 7d 0d 7d 0d 00 00 00 |n";...}.|.}.}....| |000008d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |000008e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |000008f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000900| 00 00 01 00 00 00 01 6e | 00 00 00 6e 00 00 00 3e |.......n|...n...>| |00000910| 62 65 69 6e 67 20 63 61 | 6c 6c 65 64 29 2e 00 43 |being ca|lled)..C| |00000920| 61 6e 27 74 20 6f 70 65 | 6e 20 6f 62 6a 65 63 74 |an't ope|n object| |00000930| 0b 4d 61 63 50 65 72 6c | 54 65 73 74 02 00 00 00 |.MacPerl|Test....| |00000940| 54 45 58 54 4d 50 53 20 | 01 00 00 68 00 00 00 00 |TEXTMPS |...h....| |00000950| 00 00 54 45 58 54 4d 50 | 53 20 01 00 00 68 00 00 |..TEXTMP|S ...h..| |00000960| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000970| 00 00 a8 ee 29 1e 00 00 | 08 4d 00 00 01 ac 20 65 |....)...|.M.... e| |00000980| 78 63 65 65 64 73 20 36 | 35 4b 2e 00 43 6f 64 65 |xceeds 6|5K..Code| |00000990| 20 73 65 67 6d 65 6e 74 | 20 74 6f 6f 20 62 69 67 | segment| too big| |000009a0| 2e 20 4c 69 6d 69 74 20 | 3d 20 00 44 61 74 61 20 |. Limit |= .Data | |000009b0| 69 6e 69 74 69 61 6c 69 | 7a 61 74 69 6f 6e 20 64 |initiali|zation d| |000009c0| 65 73 63 72 69 70 74 6f | 72 73 20 74 6f 6f 20 6c |escripto|rs too l| |000009d0| 61 72 67 65 2e 20 4c 69 | 6d 69 74 20 3d 00 45 72 |arge. Li|mit =.Er| |000009e0| 72 6f 72 20 72 65 72 65 | 61 64 69 6e 67 20 4d 6f |ror rere|ading Mo| |000009f0| 64 75 6c 65 20 72 65 63 | 6f 72 64 2e 00 4e 6f 20 |dule rec|ord..No | |00000a00| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 00 00 00 |...H..Mo|naco....| |00000a10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000a20| 00 00 00 00 00 00 00 06 | 00 03 00 3c 00 24 01 dd |........|...<.$..| |00000a30| 02 3d 00 3c 00 24 01 dd | 02 3d a8 ee 29 21 00 00 |.=.<.$..|.=..)!..| |00000a40| 00 00 00 00 00 00 00 00 | 02 d5 01 00 00 00 00 1e |........|........| |00000a50| 00 3c 00 24 01 dd 02 3d | 00 3c 00 24 01 dd 02 3d |.<.$...=|.<.$...=| |00000a60| 00 00 02 d5 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000a70| 01 00 00 00 01 6e 00 00 | 00 6e 00 00 00 3e 00 52 |.....n..|.n...>.R| |00000a80| b7 2c 16 0a 00 00 00 1c | 00 3e 00 00 4d 50 53 52 |.,......|.>..MPSR| |00000a90| 00 01 00 0a 03 ed ff ff | 00 00 00 00 00 00 00 00 |........|........| |00000aa0| 03 f0 ff ff 00 00 00 4c | 00 55 13 c8 00 00 00 00 |.......L|.U......| |00000ab0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000ac0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000ad0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000ae0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000af0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| +--------+-------------------------+-------------------------+--------+--------+