summaryrefslogtreecommitdiff
path: root/test/data/cscodec/UTF-8-test.txt
blob: 920e54ef03caa61c7212dd724630e42c682cbe1d (plain)
ofshex dumpascii
0000 23 64 61 74 61 20 72 65 63 6f 64 65 20 4c 4f 4f 53 45 0a 55 54 46 2d 38 20 64 65 63 6f 64 65 72 #data.recode.LOOSE.UTF-8.decoder
0020 20 63 61 70 61 62 69 6c 69 74 79 20 61 6e 64 20 73 74 72 65 73 73 20 74 65 73 74 0a 2d 2d 2d 2d .capability.and.stress.test.----
0040 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
0060 2d 2d 2d 2d 0a 0a 4d 61 72 6b 75 73 20 4b 75 68 6e 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 63 6c ----..Markus.Kuhn.<http://www.cl
0080 2e 63 61 6d 2e 61 63 2e 75 6b 2f 7e 6d 67 6b 32 35 2f 3e 20 2d 20 32 30 30 33 2d 30 32 2d 31 39 .cam.ac.uk/~mgk25/>.-.2003-02-19
00a0 0a 0a 54 68 69 73 20 74 65 73 74 20 66 69 6c 65 20 63 61 6e 20 68 65 6c 70 20 79 6f 75 20 65 78 ..This.test.file.can.help.you.ex
00c0 61 6d 69 6e 65 2c 20 68 6f 77 20 79 6f 75 72 20 55 54 46 2d 38 20 64 65 63 6f 64 65 72 20 68 61 amine,.how.your.UTF-8.decoder.ha
00e0 6e 64 6c 65 73 0a 76 61 72 69 6f 75 73 20 74 79 70 65 73 20 6f 66 20 63 6f 72 72 65 63 74 2c 20 ndles.various.types.of.correct,.
0100 6d 61 6c 66 6f 72 6d 65 64 2c 20 6f 72 20 6f 74 68 65 72 77 69 73 65 20 69 6e 74 65 72 65 73 74 malformed,.or.otherwise.interest
0120 69 6e 67 20 55 54 46 2d 38 0a 73 65 71 75 65 6e 63 65 73 2e 20 54 68 69 73 20 66 69 6c 65 20 69 ing.UTF-8.sequences..This.file.i
0140 73 20 6e 6f 74 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 61 20 63 6f 6e 66 6f 72 6d 61 6e 63 65 20 s.not.meant.to.be.a.conformance.
0160 74 65 73 74 2e 20 49 74 20 64 6f 65 73 0a 6e 6f 74 20 70 72 65 73 63 72 69 62 65 73 20 61 6e 79 test..It.does.not.prescribes.any
0180 20 70 61 72 74 69 63 75 6c 61 72 20 6f 75 74 63 6f 6d 65 20 61 6e 64 20 74 68 65 72 65 66 6f 72 .particular.outcome.and.therefor
01a0 65 20 74 68 65 72 65 20 69 73 20 6e 6f 20 77 61 79 20 74 6f 0a 22 70 61 73 73 22 20 6f 72 20 22 e.there.is.no.way.to."pass".or."
01c0 66 61 69 6c 22 20 74 68 69 73 20 74 65 73 74 20 66 69 6c 65 2c 20 65 76 65 6e 20 74 68 6f 75 67 fail".this.test.file,.even.thoug
01e0 68 20 74 68 65 20 74 65 78 74 73 20 73 75 67 67 65 73 74 73 20 61 0a 70 72 65 66 65 72 61 62 6c h.the.texts.suggests.a.preferabl
0200 65 20 64 65 63 6f 64 65 72 20 62 65 68 61 76 69 6f 75 72 20 61 74 20 73 6f 6d 65 20 70 6c 61 63 e.decoder.behaviour.at.some.plac
0220 65 73 2e 20 54 68 65 20 61 69 6d 20 69 73 20 69 6e 73 74 65 61 64 20 74 6f 0a 68 65 6c 70 20 79 es..The.aim.is.instead.to.help.y
0240 6f 75 20 74 68 69 6e 6b 20 61 62 6f 75 74 20 61 6e 64 20 74 65 73 74 20 74 68 65 20 62 65 68 61 ou.think.about.and.test.the.beha
0260 76 69 6f 75 72 20 6f 66 20 79 6f 75 72 20 55 54 46 2d 38 20 6f 6e 20 61 0a 73 79 73 74 65 6d 61 viour.of.your.UTF-8.on.a.systema
0280 74 69 63 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 75 6e 75 73 75 61 6c 20 69 6e 70 75 74 73 tic.collection.of.unusual.inputs
02a0 2e 20 45 78 70 65 72 69 65 6e 63 65 20 73 6f 20 66 61 72 20 73 75 67 67 65 73 74 73 0a 74 68 61 ..Experience.so.far.suggests.tha
02c0 74 20 6d 6f 73 74 20 66 69 72 73 74 2d 74 69 6d 65 20 61 75 74 68 6f 72 73 20 6f 66 20 55 54 46 t.most.first-time.authors.of.UTF
02e0 2d 38 20 64 65 63 6f 64 65 72 73 20 66 69 6e 64 20 61 74 20 6c 65 61 73 74 20 6f 6e 65 0a 73 65 -8.decoders.find.at.least.one.se
0300 72 69 6f 75 73 20 70 72 6f 62 6c 65 6d 20 69 6e 20 74 68 65 69 72 20 64 65 63 6f 64 65 72 20 62 rious.problem.in.their.decoder.b
0320 79 20 75 73 69 6e 67 20 74 68 69 73 20 66 69 6c 65 2e 0a 0a 54 68 65 20 74 65 73 74 20 6c 69 6e y.using.this.file...The.test.lin
0340 65 73 20 62 65 6c 6f 77 20 63 6f 76 65 72 20 62 6f 75 6e 64 61 72 79 20 63 6f 6e 64 69 74 69 6f es.below.cover.boundary.conditio
0360 6e 73 2c 20 6d 61 6c 66 6f 72 6d 65 64 20 55 54 46 2d 38 0a 73 65 71 75 65 6e 63 65 73 20 61 73 ns,.malformed.UTF-8.sequences.as
0380 20 77 65 6c 6c 20 61 73 20 63 6f 72 72 65 63 74 6c 79 20 65 6e 63 6f 64 65 64 20 55 54 46 2d 38 .well.as.correctly.encoded.UTF-8
03a0 20 73 65 71 75 65 6e 63 65 73 20 6f 66 20 55 6e 69 63 6f 64 65 20 63 6f 64 65 0a 70 6f 69 6e 74 .sequences.of.Unicode.code.point
03c0 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 6e 65 76 65 72 20 6f 63 63 75 72 20 69 6e 20 61 20 63 s.that.should.never.occur.in.a.c
03e0 6f 72 72 65 63 74 20 55 54 46 2d 38 20 66 69 6c 65 2e 0a 0a 41 63 63 6f 72 64 69 6e 67 20 74 6f orrect.UTF-8.file...According.to
0400 20 49 53 4f 20 31 30 36 34 36 2d 31 3a 32 30 30 30 2c 20 73 65 63 74 69 6f 6e 73 20 44 2e 37 20 .ISO.10646-1:2000,.sections.D.7.
0420 61 6e 64 20 32 2e 33 63 2c 20 61 20 64 65 76 69 63 65 0a 72 65 63 65 69 76 69 6e 67 20 55 54 46 and.2.3c,.a.device.receiving.UTF
0440 2d 38 20 73 68 61 6c 6c 20 69 6e 74 65 72 70 72 65 74 20 61 20 22 6d 61 6c 66 6f 72 6d 65 64 20 -8.shall.interpret.a."malformed.
0460 73 65 71 75 65 6e 63 65 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 0a 74 68 61 74 20 69 74 sequence.in.the.same.way.that.it
0480 20 69 6e 74 65 72 70 72 65 74 73 20 61 20 63 68 61 72 61 63 74 65 72 20 74 68 61 74 20 69 73 20 .interprets.a.character.that.is.
04a0 6f 75 74 73 69 64 65 20 74 68 65 20 61 64 6f 70 74 65 64 20 73 75 62 73 65 74 22 20 61 6e 64 0a outside.the.adopted.subset".and.
04c0 22 63 68 61 72 61 63 74 65 72 73 20 74 68 61 74 20 61 72 65 20 6e 6f 74 20 77 69 74 68 69 6e 20 "characters.that.are.not.within.
04e0 74 68 65 20 61 64 6f 70 74 65 64 20 73 75 62 73 65 74 20 73 68 61 6c 6c 20 62 65 20 69 6e 64 69 the.adopted.subset.shall.be.indi
0500 63 61 74 65 64 0a 74 6f 20 74 68 65 20 75 73 65 72 22 20 62 79 20 61 20 72 65 63 65 69 76 69 6e cated.to.the.user".by.a.receivin
0520 67 20 64 65 76 69 63 65 2e 20 41 20 71 75 69 74 65 20 63 6f 6d 6d 6f 6e 6c 79 20 75 73 65 64 20 g.device..A.quite.commonly.used.
0540 61 70 70 72 6f 61 63 68 20 69 6e 0a 55 54 46 2d 38 20 64 65 63 6f 64 65 72 73 20 69 73 20 74 6f approach.in.UTF-8.decoders.is.to
0560 20 72 65 70 6c 61 63 65 20 61 6e 79 20 6d 61 6c 66 6f 72 6d 65 64 20 55 54 46 2d 38 20 73 65 71 .replace.any.malformed.UTF-8.seq
0580 75 65 6e 63 65 20 62 79 20 61 0a 72 65 70 6c 61 63 65 6d 65 6e 74 20 63 68 61 72 61 63 74 65 72 uence.by.a.replacement.character
05a0 20 28 55 2b 46 46 46 44 29 2c 20 77 68 69 63 68 20 6c 6f 6f 6b 73 20 61 20 62 69 74 20 6c 69 6b .(U+FFFD),.which.looks.a.bit.lik
05c0 65 20 61 6e 20 69 6e 76 65 72 74 65 64 0a 71 75 65 73 74 69 6f 6e 20 6d 61 72 6b 2c 20 6f 72 20 e.an.inverted.question.mark,.or.
05e0 61 20 73 69 6d 69 6c 61 72 20 73 79 6d 62 6f 6c 2e 20 49 74 20 6d 69 67 68 74 20 62 65 20 61 20 a.similar.symbol..It.might.be.a.
0600 67 6f 6f 64 20 69 64 65 61 20 74 6f 0a 76 69 73 75 61 6c 6c 79 20 64 69 73 74 69 6e 67 75 69 73 good.idea.to.visually.distinguis
0620 68 20 61 20 6d 61 6c 66 6f 72 6d 65 64 20 55 54 46 2d 38 20 73 65 71 75 65 6e 63 65 20 66 72 6f h.a.malformed.UTF-8.sequence.fro
0640 6d 20 61 20 63 6f 72 72 65 63 74 6c 79 0a 65 6e 63 6f 64 65 64 20 55 6e 69 63 6f 64 65 20 63 68 m.a.correctly.encoded.Unicode.ch
0660 61 72 61 63 74 65 72 20 74 68 61 74 20 69 73 20 6a 75 73 74 20 6e 6f 74 20 61 76 61 69 6c 61 62 aracter.that.is.just.not.availab
0680 6c 65 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 0a 66 6f 6e 74 20 62 75 74 20 6f 74 68 65 72 le.in.the.current.font.but.other
06a0 77 69 73 65 20 66 75 6c 6c 79 20 6c 65 67 61 6c 2c 20 65 76 65 6e 20 74 68 6f 75 67 68 20 49 53 wise.fully.legal,.even.though.IS
06c0 4f 20 31 30 36 34 36 2d 31 20 64 6f 65 73 6e 27 74 0a 6d 61 6e 64 61 74 65 20 74 68 69 73 2e 20 O.10646-1.doesn't.mandate.this..
06e0 49 6e 20 61 6e 79 20 63 61 73 65 2c 20 6a 75 73 74 20 69 67 6e 6f 72 69 6e 67 20 6d 61 6c 66 6f In.any.case,.just.ignoring.malfo
0700 72 6d 65 64 20 73 65 71 75 65 6e 63 65 73 20 6f 72 0a 75 6e 61 76 61 69 6c 61 62 6c 65 20 63 68 rmed.sequences.or.unavailable.ch
0720 61 72 61 63 74 65 72 73 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 66 6f 72 6d 20 74 6f 20 49 53 4f aracters.does.not.conform.to.ISO
0740 20 31 30 36 34 36 2c 20 77 69 6c 6c 20 6d 61 6b 65 0a 64 65 62 75 67 67 69 6e 67 20 6d 6f 72 65 .10646,.will.make.debugging.more
0760 20 64 69 66 66 69 63 75 6c 74 2c 20 61 6e 64 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 75 73 65 72 .difficult,.and.can.lead.to.user
0780 20 63 6f 6e 66 75 73 69 6f 6e 2e 0a 0a 50 6c 65 61 73 65 20 63 68 65 63 6b 2c 20 77 68 65 74 68 .confusion...Please.check,.wheth
07a0 65 72 20 61 20 6d 61 6c 66 6f 72 6d 65 64 20 55 54 46 2d 38 20 73 65 71 75 65 6e 63 65 20 69 73 er.a.malformed.UTF-8.sequence.is
07c0 20 28 31 29 20 72 65 70 72 65 73 65 6e 74 65 64 20 61 74 0a 61 6c 6c 2c 20 28 32 29 20 72 65 70 .(1).represented.at.all,.(2).rep
07e0 72 65 73 65 6e 74 65 64 20 62 79 20 65 78 61 63 74 6c 79 20 6f 6e 65 20 73 69 6e 67 6c 65 20 72 resented.by.exactly.one.single.r
0800 65 70 6c 61 63 65 6d 65 6e 74 20 63 68 61 72 61 63 74 65 72 20 28 6f 72 0a 65 71 75 69 76 61 6c eplacement.character.(or.equival
0820 65 6e 74 20 73 69 67 6e 61 6c 29 2c 20 61 6e 64 20 28 33 29 20 74 68 65 20 66 6f 6c 6c 6f 77 69 ent.signal),.and.(3).the.followi
0840 6e 67 20 71 75 6f 74 61 74 69 6f 6e 20 6d 61 72 6b 20 61 66 74 65 72 20 61 6e 0a 69 6c 6c 65 67 ng.quotation.mark.after.an.illeg
0860 61 6c 20 55 54 46 2d 38 20 73 65 71 75 65 6e 63 65 20 69 73 20 63 6f 72 72 65 63 74 6c 79 20 64 al.UTF-8.sequence.is.correctly.d
0880 69 73 70 6c 61 79 65 64 2c 20 69 2e 65 2e 20 70 72 6f 70 65 72 0a 72 65 73 79 6e 63 68 72 6f 6e isplayed,.i.e..proper.resynchron
08a0 69 7a 61 74 69 6f 6e 20 74 61 6b 65 73 20 70 6c 61 63 65 20 69 6d 6d 61 67 65 61 74 65 6c 79 20 ization.takes.place.immageately.
08c0 61 66 74 65 72 20 61 6e 79 20 6d 61 6c 66 6f 72 6d 65 64 0a 73 65 71 75 65 6e 63 65 2e 20 54 68 after.any.malformed.sequence..Th
08e0 69 73 20 66 69 6c 65 20 73 61 79 73 20 22 54 48 45 20 45 4e 44 22 20 69 6e 20 74 68 65 20 6c 61 is.file.says."THE.END".in.the.la
0900 73 74 20 6c 69 6e 65 2c 20 73 6f 20 69 66 20 79 6f 75 20 64 6f 6e 27 74 0a 73 65 65 20 74 68 61 st.line,.so.if.you.don't.see.tha
0920 74 2c 20 79 6f 75 72 20 64 65 63 6f 64 65 72 20 63 72 61 73 68 65 64 20 73 6f 6d 65 68 6f 77 20 t,.your.decoder.crashed.somehow.
0940 62 65 66 6f 72 65 2c 20 77 68 69 63 68 20 73 68 6f 75 6c 64 20 61 6c 77 61 79 73 20 62 65 0a 63 before,.which.should.always.be.c
0960 61 75 73 65 20 66 6f 72 20 63 6f 6e 63 65 72 6e 2e 0a 0a 41 6c 6c 20 6c 69 6e 65 73 20 69 6e 20 ause.for.concern...All.lines.in.
0980 74 68 69 73 20 66 69 6c 65 20 61 72 65 20 65 78 61 63 74 6c 79 20 37 39 20 63 68 61 72 61 63 74 this.file.are.exactly.79.charact
09a0 65 72 73 20 6c 6f 6e 67 20 28 70 6c 75 73 20 74 68 65 20 6c 69 6e 65 0a 66 65 65 64 29 2e 20 49 ers.long.(plus.the.line.feed)..I
09c0 6e 20 61 64 64 69 74 69 6f 6e 2c 20 61 6c 6c 20 6c 69 6e 65 73 20 65 6e 64 20 77 69 74 68 20 22 n.addition,.all.lines.end.with."
09e0 7c 22 2c 20 65 78 63 65 70 74 20 66 6f 72 20 74 68 65 20 74 77 6f 20 74 65 73 74 0a 6c 69 6e 65 |",.except.for.the.two.test.line
0a00 73 20 32 2e 31 2e 31 20 61 6e 64 20 32 2e 32 2e 31 2c 20 77 68 69 63 68 20 63 6f 6e 74 61 69 6e s.2.1.1.and.2.2.1,.which.contain
0a20 20 6e 6f 6e 2d 70 72 69 6e 74 61 62 6c 65 20 41 53 43 49 49 20 63 6f 6e 74 72 6f 6c 73 0a 55 2b .non-printable.ASCII.controls.U+
0a40 30 30 30 30 20 61 6e 64 20 55 2b 30 30 37 46 2e 20 49 66 20 79 6f 75 20 64 69 73 70 6c 61 79 20 0000.and.U+007F..If.you.display.
0a60 74 68 69 73 20 66 69 6c 65 20 77 69 74 68 20 61 20 66 69 78 65 64 2d 77 69 64 74 68 20 66 6f 6e this.file.with.a.fixed-width.fon
0a80 74 2c 0a 74 68 65 73 65 20 22 7c 22 20 63 68 61 72 61 63 74 65 72 73 20 73 68 6f 75 6c 64 20 61 t,.these."|".characters.should.a
0aa0 6c 6c 20 6c 69 6e 65 20 75 70 20 69 6e 20 63 6f 6c 75 6d 6e 20 37 39 20 28 72 69 67 68 74 20 6d ll.line.up.in.column.79.(right.m
0ac0 61 72 67 69 6e 29 2e 0a 54 68 69 73 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 74 65 73 74 20 argin)..This.allows.you.to.test.
0ae0 71 75 69 63 6b 6c 79 2c 20 77 68 65 74 68 65 72 20 79 6f 75 72 20 55 54 46 2d 38 20 64 65 63 6f quickly,.whether.your.UTF-8.deco
0b00 64 65 72 20 66 69 6e 64 73 20 74 68 65 0a 63 6f 72 72 65 63 74 20 6e 75 6d 62 65 72 20 6f 66 20 der.finds.the.correct.number.of.
0b20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 65 76 65 72 79 20 6c 69 6e 65 2c 20 74 68 61 74 20 69 characters.in.every.line,.that.i
0b40 73 20 77 68 65 74 68 65 72 20 65 61 63 68 0a 6d 61 6c 66 6f 72 6d 65 64 20 73 65 71 75 65 6e 63 s.whether.each.malformed.sequenc
0b60 65 73 20 69 73 20 72 65 70 6c 61 63 65 64 20 62 79 20 61 20 73 69 6e 67 6c 65 20 72 65 70 6c 61 es.is.replaced.by.a.single.repla
0b80 63 65 6d 65 6e 74 20 63 68 61 72 61 63 74 65 72 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20 61 73 20 cement.character...Note.that.as.
0ba0 61 6e 20 61 6c 74 65 72 6e 61 74 69 76 65 20 74 6f 20 74 68 65 20 6e 6f 74 69 6f 6e 20 6f 66 20 an.alternative.to.the.notion.of.
0bc0 6d 61 6c 66 6f 72 6d 65 64 20 73 65 71 75 65 6e 63 65 20 75 73 65 64 0a 68 65 72 65 2c 20 69 74 malformed.sequence.used.here,.it
0be0 20 69 73 20 61 6c 73 6f 20 61 20 70 65 72 66 65 63 74 6c 79 20 61 63 63 65 70 74 61 62 6c 65 20 .is.also.a.perfectly.acceptable.
0c00 28 61 6e 64 20 69 6e 20 73 6f 6d 65 20 73 69 74 75 61 74 69 6f 6e 73 20 65 76 65 6e 0a 70 72 65 (and.in.some.situations.even.pre
0c20 66 65 72 61 62 6c 65 29 20 73 6f 6c 75 74 69 6f 6e 20 74 6f 20 72 65 70 72 65 73 65 6e 74 20 65 ferable).solution.to.represent.e
0c40 61 63 68 20 69 6e 64 69 76 69 64 75 61 6c 20 62 79 74 65 20 6f 66 20 61 20 6d 61 6c 66 6f 72 6d ach.individual.byte.of.a.malform
0c60 65 64 0a 73 65 71 75 65 6e 63 65 20 62 79 20 61 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 63 68 61 ed.sequence.by.a.replacement.cha
0c80 72 61 63 74 65 72 2e 20 49 66 20 79 6f 75 20 66 6f 6c 6c 6f 77 20 74 68 69 73 20 73 74 72 61 74 racter..If.you.follow.this.strat
0ca0 65 67 79 20 69 6e 0a 79 6f 75 72 20 64 65 63 6f 64 65 72 2c 20 74 68 65 6e 20 70 6c 65 61 73 65 egy.in.your.decoder,.then.please
0cc0 20 69 67 6e 6f 72 65 20 74 68 65 20 22 7c 22 20 63 6f 6c 75 6d 6e 2e 0a 0a 0a 48 65 72 65 20 63 .ignore.the."|".column....Here.c
0ce0 6f 6d 65 20 74 68 65 20 74 65 73 74 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ome.the.tests:..................
0d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
0d20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
0d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
0d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 31 20 20 53 6f 6d ........................|.1..Som
0d80 65 20 63 6f 72 72 65 63 74 20 55 54 46 2d 38 20 74 65 78 74 20 20 20 20 20 20 20 20 20 20 20 20 e.correct.UTF-8.text............
0da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
0dc0 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
0de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
0e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 59 6f 75 20 73 68 ........................|.You.sh
0e20 6f 75 6c 64 20 73 65 65 20 74 68 65 20 47 72 65 65 6b 20 77 6f 72 64 20 27 6b 6f 73 6d 65 27 3a ould.see.the.Greek.word.'kosme':
0e40 20 20 20 20 20 20 20 22 ce ba e1 bd b9 cf 83 ce bc ce b5 22 20 20 20 20 20 20 20 20 20 20 20 20 ......."..........."............
0e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............|.................
0e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
0ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a ..............................|.
0ec0 32 20 20 42 6f 75 6e 64 61 72 79 20 63 6f 6e 64 69 74 69 6f 6e 20 74 65 73 74 20 63 61 73 65 73 2..Boundary.condition.test.cases
0ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
0f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............|.................
0f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
0f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a ..............................|.
0f60 32 2e 31 20 20 46 69 72 73 74 20 70 6f 73 73 69 62 6c 65 20 73 65 71 75 65 6e 63 65 20 6f 66 20 2.1..First.possible.sequence.of.
0f80 61 20 63 65 72 74 61 69 6e 20 6c 65 6e 67 74 68 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 a.certain.length................
0fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............|.................
0fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
0fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a ..............................|.
1000 32 2e 31 2e 31 20 20 31 20 62 79 74 65 20 20 28 55 2d 30 30 30 30 30 30 30 30 29 3a 20 20 20 20 2.1.1..1.byte..(U-00000000):....
1020 20 20 20 20 22 00 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....".".........................
1040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 32 2e 31 2e 32 20 20 32 20 62 79 74 65 73 20 28 ................2.1.2..2.bytes.(
1060 55 2d 30 30 30 30 30 30 38 30 29 3a 20 20 20 20 20 20 20 20 22 c2 80 22 20 20 20 20 20 20 20 20 U-00000080):........".."........
1080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
10a0 0a 32 2e 31 2e 33 20 20 33 20 62 79 74 65 73 20 28 55 2d 30 30 30 30 30 38 30 30 29 3a 20 20 20 .2.1.3..3.bytes.(U-00000800):...
10c0 20 20 20 20 20 22 e0 a0 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....."..."......................
10e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 31 2e 34 20 20 34 20 62 79 74 65 .................|.2.1.4..4.byte
1100 73 20 28 55 2d 30 30 30 31 30 30 30 30 29 3a 20 20 20 20 20 20 20 20 22 f0 90 80 80 22 20 20 20 s.(U-00010000):........"...."...
1120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1140 20 20 20 20 7c 0a 32 2e 31 2e 35 20 20 35 20 62 79 74 65 73 20 28 55 2d 30 30 32 30 30 30 30 30 ....|.2.1.5..5.bytes.(U-00200000
1160 29 3a 20 20 20 20 20 20 20 20 22 f8 88 80 80 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ):........"....."...............
1180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 31 2e 36 20 ........................|.2.1.6.
11a0 20 36 20 62 79 74 65 73 20 28 55 2d 30 34 30 30 30 30 30 30 29 3a 20 20 20 20 20 20 20 20 22 fc .6.bytes.(U-04000000):........".
11c0 84 80 80 80 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....."..........................
11e0 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............|..................
1200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 .............................|.2
1240 2e 32 20 20 4c 61 73 74 20 70 6f 73 73 69 62 6c 65 20 73 65 71 75 65 6e 63 65 20 6f 66 20 61 20 .2..Last.possible.sequence.of.a.
1260 63 65 72 74 61 69 6e 20 6c 65 6e 67 74 68 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 certain.length..................
1280 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............|..................
12a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
12c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 .............................|.2
12e0 2e 32 2e 31 20 20 31 20 62 79 74 65 20 20 28 55 2d 30 30 30 30 30 30 37 46 29 3a 20 20 20 20 20 .2.1..1.byte..(U-0000007F):.....
1300 20 20 20 22 7f 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..."."..........................
1320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 32 2e 32 2e 32 20 20 32 20 62 79 74 65 73 20 28 55 ...............2.2.2..2.bytes.(U
1340 2d 30 30 30 30 30 37 46 46 29 3a 20 20 20 20 20 20 20 20 22 df bf 22 20 20 20 20 20 20 20 20 20 -000007FF):........"..".........
1360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a ..............................|.
1380 32 2e 32 2e 33 20 20 33 20 62 79 74 65 73 20 28 55 2d 30 30 30 30 46 46 46 46 29 3a 20 20 20 20 2.2.3..3.bytes.(U-0000FFFF):....
13a0 20 20 20 20 22 ef bf bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."...".......................
13c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 32 2e 34 20 20 34 20 62 79 74 65 73 ................|.2.2.4..4.bytes
13e0 20 28 55 2d 30 30 31 46 46 46 46 46 29 3a 20 20 20 20 20 20 20 20 22 f7 bf bf bf 22 20 20 20 20 .(U-001FFFFF):........"...."....
1400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1420 20 20 20 7c 0a 32 2e 32 2e 35 20 20 35 20 62 79 74 65 73 20 28 55 2d 30 33 46 46 46 46 46 46 29 ...|.2.2.5..5.bytes.(U-03FFFFFF)
1440 3a 20 20 20 20 20 20 20 20 22 fb bf bf bf bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :........"....."................
1460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 32 2e 36 20 20 .......................|.2.2.6..
1480 36 20 62 79 74 65 73 20 28 55 2d 37 46 46 46 46 46 46 46 29 3a 20 20 20 20 20 20 20 20 22 fd bf 6.bytes.(U-7FFFFFFF):........"..
14a0 bf bf bf bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."...........................
14c0 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............|...................
14e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e ............................|.2.
1520 33 20 20 4f 74 68 65 72 20 62 6f 75 6e 64 61 72 79 20 63 6f 6e 64 69 74 69 6f 6e 73 20 20 20 20 3..Other.boundary.conditions....
1540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1560 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............|...................
1580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e ............................|.2.
15c0 33 2e 31 20 20 55 2d 30 30 30 30 44 37 46 46 20 3d 20 65 64 20 39 66 20 62 66 20 3d 20 22 ed 9f 3.1..U-0000D7FF.=.ed.9f.bf.=."..
15e0 bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."..............................
1600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 33 2e 32 20 20 55 2d 30 30 30 30 45 30 30 ..............|.2.3.2..U-0000E00
1620 30 20 3d 20 65 65 20 38 30 20 38 30 20 3d 20 22 ee 80 80 22 20 20 20 20 20 20 20 20 20 20 20 20 0.=.ee.80.80.=."..."............
1640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1660 7c 0a 32 2e 33 2e 33 20 20 55 2d 30 30 30 30 46 46 46 44 20 3d 20 65 66 20 62 66 20 62 64 20 3d |.2.3.3..U-0000FFFD.=.ef.bf.bd.=
1680 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."..."..........................
16a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 33 2e 34 20 20 55 2d 30 30 31 ..................|.2.3.4..U-001
16c0 30 46 46 46 46 20 3d 20 66 34 20 38 66 20 62 66 20 62 66 20 3d 20 22 f4 8f bf bf 22 20 20 20 20 0FFFF.=.f4.8f.bf.bf.=."...."....
16e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1700 20 20 20 20 20 7c 0a 32 2e 33 2e 35 20 20 55 2d 30 30 31 31 30 30 30 30 20 3d 20 66 34 20 39 30 .....|.2.3.5..U-00110000.=.f4.90
1720 20 38 30 20 38 30 20 3d 20 22 f4 90 80 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .80.80.=."....".................
1740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 ........................|.......
1760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
17a0 20 20 20 20 20 20 20 20 7c 0a 33 20 20 4d 61 6c 66 6f 72 6d 65 64 20 73 65 71 75 65 6e 63 65 73 ........|.3..Malformed.sequences
17c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
17e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 ........................|.......
1800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1840 20 20 20 20 20 20 20 20 7c 0a 33 2e 31 20 20 55 6e 65 78 70 65 63 74 65 64 20 63 6f 6e 74 69 6e ........|.3.1..Unexpected.contin
1860 75 61 74 69 6f 6e 20 62 79 74 65 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 uation.bytes....................
1880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 ........................|.......
18a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
18c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
18e0 20 20 20 20 20 20 20 20 7c 0a 45 61 63 68 20 75 6e 65 78 70 65 63 74 65 64 20 63 6f 6e 74 69 6e ........|.Each.unexpected.contin
1900 75 61 74 69 6f 6e 20 62 79 74 65 20 73 68 6f 75 6c 64 20 62 65 20 73 65 70 61 72 61 74 65 6c 79 uation.byte.should.be.separately
1920 20 73 69 67 6e 61 6c 6c 65 64 20 61 73 20 61 20 20 20 20 20 20 20 20 20 7c 0a 6d 61 6c 66 6f 72 .signalled.as.a.........|.malfor
1940 6d 65 64 20 73 65 71 75 65 6e 63 65 20 6f 66 20 69 74 73 20 6f 77 6e 2e 20 20 20 20 20 20 20 20 med.sequence.of.its.own.........
1960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1980 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
19a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
19c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 31 2e 31 20 ........................|.3.1.1.
19e0 20 46 69 72 73 74 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 62 79 74 65 20 30 78 38 30 3a 20 22 .First.continuation.byte.0x80:."
1a00 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."..............................
1a20 20 20 20 20 20 20 20 20 7c 0a 33 2e 31 2e 32 20 20 4c 61 73 74 20 20 63 6f 6e 74 69 6e 75 61 74 ........|.3.1.2..Last..continuat
1a40 69 6f 6e 20 62 79 74 65 20 30 78 62 66 3a 20 22 bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ion.byte.0xbf:."."..............
1a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 ........................|.......
1a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1ac0 20 20 20 20 20 20 20 20 7c 0a 33 2e 31 2e 33 20 20 32 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 ........|.3.1.3..2.continuation.
1ae0 62 79 74 65 73 3a 20 22 80 bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bytes:."..".....................
1b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 31 2e 34 20 ........................|.3.1.4.
1b20 20 33 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 62 79 74 65 73 3a 20 22 80 bf 80 22 20 20 20 20 .3.continuation.bytes:."..."....
1b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1b60 20 20 20 20 20 20 20 20 7c 0a 33 2e 31 2e 35 20 20 34 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 ........|.3.1.5..4.continuation.
1b80 62 79 74 65 73 3a 20 22 80 bf 80 bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bytes:."...."...................
1ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 31 2e 36 20 ........................|.3.1.6.
1bc0 20 35 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 62 79 74 65 73 3a 20 22 80 bf 80 bf 80 22 20 20 .5.continuation.bytes:."....."..
1be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1c00 20 20 20 20 20 20 20 20 7c 0a 33 2e 31 2e 37 20 20 36 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 ........|.3.1.7..6.continuation.
1c20 62 79 74 65 73 3a 20 22 80 bf 80 bf 80 bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bytes:."......".................
1c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 31 2e 38 20 ........................|.3.1.8.
1c60 20 37 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 62 79 74 65 73 3a 20 22 80 bf 80 bf 80 bf 80 22 .7.continuation.bytes:."......."
1c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1ca0 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
1cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 31 2e 39 20 ........................|.3.1.9.
1d00 20 53 65 71 75 65 6e 63 65 20 6f 66 20 61 6c 6c 20 36 34 20 70 6f 73 73 69 62 6c 65 20 63 6f 6e .Sequence.of.all.64.possible.con
1d20 74 69 6e 75 61 74 69 6f 6e 20 62 79 74 65 73 20 28 30 78 38 30 2d 30 78 62 66 29 3a 20 20 20 20 tinuation.bytes.(0x80-0xbf):....
1d40 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
1d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 22 80 81 ........................|...."..
1da0 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1de0 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f 20 20 ........|.......................
1e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 a0 a1 ........................|.......
1e40 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e80 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf 22 20 ........|.....................".
1ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 ........................|.......
1ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1f20 20 20 20 20 20 20 20 20 7c 0a 33 2e 32 20 20 4c 6f 6e 65 6c 79 20 73 74 61 72 74 20 63 68 61 72 ........|.3.2..Lonely.start.char
1f40 61 63 74 65 72 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 acters..........................
1f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 ........................|.......
1f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1fc0 20 20 20 20 20 20 20 20 7c 0a 33 2e 32 2e 31 20 20 41 6c 6c 20 33 32 20 66 69 72 73 74 20 62 79 ........|.3.2.1..All.32.first.by
1fe0 74 65 73 20 6f 66 20 32 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 73 20 28 30 78 63 30 2d 30 78 tes.of.2-byte.sequences.(0xc0-0x
2000 64 66 29 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 df),....................|.......
2020 20 65 61 63 68 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 73 70 61 63 65 20 63 68 61 72 61 63 .each.followed.by.a.space.charac
2040 74 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ter:............................
2060 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
2080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
20a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 22 c0 20 ........................|...."..
20c0 c1 20 c2 20 c3 20 c4 20 c5 20 c6 20 c7 20 c8 20 c9 20 ca 20 cb 20 cc 20 cd 20 ce 20 cf 20 20 20 ................................
20e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2100 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 d0 20 d1 20 d2 20 d3 20 d4 20 d5 20 d6 20 d7 20 d8 20 ........|.......................
2120 d9 20 da 20 db 20 dc 20 dd 20 de 20 df 20 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............".................
2140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 ........................|.......
2160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
21a0 20 20 20 20 20 20 20 20 7c 0a 33 2e 32 2e 32 20 20 41 6c 6c 20 31 36 20 66 69 72 73 74 20 62 79 ........|.3.2.2..All.16.first.by
21c0 74 65 73 20 6f 66 20 33 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 73 20 28 30 78 65 30 2d 30 78 tes.of.3-byte.sequences.(0xe0-0x
21e0 65 66 29 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 ef),....................|.......
2200 20 65 61 63 68 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 73 70 61 63 65 20 63 68 61 72 61 63 .each.followed.by.a.space.charac
2220 74 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ter:............................
2240 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
2260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 22 e0 20 ........................|...."..
22a0 e1 20 e2 20 e3 20 e4 20 e5 20 e6 20 e7 20 e8 20 e9 20 ea 20 eb 20 ec 20 ed 20 ee 20 ef 20 22 20 ..............................".
22c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
22e0 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
2300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 32 2e 33 20 ........................|.3.2.3.
2340 20 41 6c 6c 20 38 20 66 69 72 73 74 20 62 79 74 65 73 20 6f 66 20 34 2d 62 79 74 65 20 73 65 71 .All.8.first.bytes.of.4-byte.seq
2360 75 65 6e 63 65 73 20 28 30 78 66 30 2d 30 78 66 37 29 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 uences.(0xf0-0xf7),.............
2380 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 65 61 63 68 20 66 6f 6c 6c 6f 77 65 64 20 62 ........|........each.followed.b
23a0 79 20 61 20 73 70 61 63 65 20 63 68 61 72 61 63 74 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 y.a.space.character:............
23c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 ........................|.......
23e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2420 20 20 20 20 20 20 20 20 7c 0a 20 20 20 22 f0 20 f1 20 f2 20 f3 20 f4 20 f5 20 f6 20 f7 20 22 20 ........|...."................".
2440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 ........................|.......
2480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
24a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
24c0 20 20 20 20 20 20 20 20 7c 0a 33 2e 32 2e 34 20 20 41 6c 6c 20 34 20 66 69 72 73 74 20 62 79 74 ........|.3.2.4..All.4.first.byt
24e0 65 73 20 6f 66 20 35 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 73 20 28 30 78 66 38 2d 30 78 66 es.of.5-byte.sequences.(0xf8-0xf
2500 62 29 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 b),.....................|.......
2520 20 65 61 63 68 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 73 70 61 63 65 20 63 68 61 72 61 63 .each.followed.by.a.space.charac
2540 74 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ter:............................
2560 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
2580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 22 f8 20 ........................|...."..
25c0 f9 20 fa 20 fb 20 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......".........................
25e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2600 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
2620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 32 2e 35 20 ........................|.3.2.5.
2660 20 41 6c 6c 20 32 20 66 69 72 73 74 20 62 79 74 65 73 20 6f 66 20 36 2d 62 79 74 65 20 73 65 71 .All.2.first.bytes.of.6-byte.seq
2680 75 65 6e 63 65 73 20 28 30 78 66 63 2d 30 78 66 64 29 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 uences.(0xfc-0xfd),.............
26a0 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 65 61 63 68 20 66 6f 6c 6c 6f 77 65 64 20 62 ........|........each.followed.b
26c0 79 20 61 20 73 70 61 63 65 20 63 68 61 72 61 63 74 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 y.a.space.character:............
26e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 ........................|.......
2700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2740 20 20 20 20 20 20 20 20 7c 0a 20 20 20 22 fc 20 fd 20 22 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|...."....".............
2760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 ........................|.......
27a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27e0 20 20 20 20 20 20 20 20 7c 0a 33 2e 33 20 20 53 65 71 75 65 6e 63 65 73 20 77 69 74 68 20 6c 61 ........|.3.3..Sequences.with.la
2800 73 74 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 62 79 74 65 20 6d 69 73 73 69 6e 67 20 20 20 20 st.continuation.byte.missing....
2820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 ........................|.......
2840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2880 20 20 20 20 20 20 20 20 7c 0a 41 6c 6c 20 62 79 74 65 73 20 6f 66 20 61 6e 20 69 6e 63 6f 6d 70 ........|.All.bytes.of.an.incomp
28a0 6c 65 74 65 20 73 65 71 75 65 6e 63 65 20 73 68 6f 75 6c 64 20 62 65 20 73 69 67 6e 61 6c 6c 65 lete.sequence.should.be.signalle
28c0 64 20 61 73 20 61 20 73 69 6e 67 6c 65 20 20 20 20 20 20 20 20 20 20 20 7c 0a 6d 61 6c 66 6f 72 d.as.a.single...........|.malfor
28e0 6d 65 64 20 73 65 71 75 65 6e 63 65 2c 20 69 2e 65 2e 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 73 med.sequence,.i.e.,.you.should.s
2900 65 65 20 6f 6e 6c 79 20 61 20 73 69 6e 67 6c 65 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 20 20 20 ee.only.a.single.replacement....
2920 20 20 20 20 20 20 20 20 7c 0a 63 68 61 72 61 63 74 65 72 20 69 6e 20 65 61 63 68 20 6f 66 20 74 ........|.character.in.each.of.t
2940 68 65 20 6e 65 78 74 20 31 30 20 74 65 73 74 73 2e 20 28 43 68 61 72 61 63 74 65 72 73 20 61 73 he.next.10.tests..(Characters.as
2960 20 69 6e 20 73 65 63 74 69 6f 6e 20 32 29 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 .in.section.2)..........|.......
2980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29c0 20 20 20 20 20 20 20 20 7c 0a 33 2e 33 2e 31 20 20 32 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 ........|.3.3.1..2-byte.sequence
29e0 20 77 69 74 68 20 6c 61 73 74 20 62 79 74 65 20 6d 69 73 73 69 6e 67 20 28 55 2b 30 30 30 30 29 .with.last.byte.missing.(U+0000)
2a00 3a 20 20 20 20 20 22 c0 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 33 2e 32 20 :....."."...............|.3.3.2.
2a20 20 33 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 20 77 69 74 68 20 6c 61 73 74 20 62 79 74 65 20 .3-byte.sequence.with.last.byte.
2a40 6d 69 73 73 69 6e 67 20 28 55 2b 30 30 30 30 29 3a 20 20 20 20 20 22 e0 80 22 20 20 20 20 20 20 missing.(U+0000):.....".."......
2a60 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 33 2e 33 20 20 34 2d 62 79 74 65 20 73 65 71 75 65 6e 63 .........|.3.3.3..4-byte.sequenc
2a80 65 20 77 69 74 68 20 6c 61 73 74 20 62 79 74 65 20 6d 69 73 73 69 6e 67 20 28 55 2b 30 30 30 30 e.with.last.byte.missing.(U+0000
2aa0 29 3a 20 20 20 20 20 22 f0 80 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 33 ):....."..."...............|.3.3
2ac0 2e 34 20 20 35 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 20 77 69 74 68 20 6c 61 73 74 20 62 79 .4..5-byte.sequence.with.last.by
2ae0 74 65 20 6d 69 73 73 69 6e 67 20 28 55 2b 30 30 30 30 29 3a 20 20 20 20 20 22 f8 80 80 80 22 20 te.missing.(U+0000):....."....".
2b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 33 2e 35 20 20 36 2d 62 79 74 65 20 73 65 ..............|.3.3.5..6-byte.se
2b20 71 75 65 6e 63 65 20 77 69 74 68 20 6c 61 73 74 20 62 79 74 65 20 6d 69 73 73 69 6e 67 20 28 55 quence.with.last.byte.missing.(U
2b40 2b 30 30 30 30 29 3a 20 20 20 20 20 22 fc 80 80 80 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 +0000):.....".....".............
2b60 20 20 7c 0a 33 2e 33 2e 36 20 20 32 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 20 77 69 74 68 20 ..|.3.3.6..2-byte.sequence.with.
2b80 6c 61 73 74 20 62 79 74 65 20 6d 69 73 73 69 6e 67 20 28 55 2d 30 30 30 30 30 37 46 46 29 3a 20 last.byte.missing.(U-000007FF):.
2ba0 22 df 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 33 2e 37 20 20 33 2d 62 79 74 "."...............|.3.3.7..3-byt
2bc0 65 20 73 65 71 75 65 6e 63 65 20 77 69 74 68 20 6c 61 73 74 20 62 79 74 65 20 6d 69 73 73 69 6e e.sequence.with.last.byte.missin
2be0 67 20 28 55 2d 30 30 30 30 46 46 46 46 29 3a 20 22 ef bf 22 20 20 20 20 20 20 20 20 20 20 20 20 g.(U-0000FFFF):.".."............
2c00 20 20 20 7c 0a 33 2e 33 2e 38 20 20 34 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 20 77 69 74 68 ...|.3.3.8..4-byte.sequence.with
2c20 20 6c 61 73 74 20 62 79 74 65 20 6d 69 73 73 69 6e 67 20 28 55 2d 30 30 31 46 46 46 46 46 29 3a .last.byte.missing.(U-001FFFFF):
2c40 20 22 f7 bf bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 33 2e 39 20 20 35 2d ."..."...............|.3.3.9..5-
2c60 62 79 74 65 20 73 65 71 75 65 6e 63 65 20 77 69 74 68 20 6c 61 73 74 20 62 79 74 65 20 6d 69 73 byte.sequence.with.last.byte.mis
2c80 73 69 6e 67 20 28 55 2d 30 33 46 46 46 46 46 46 29 3a 20 22 fb bf bf bf 22 20 20 20 20 20 20 20 sing.(U-03FFFFFF):."....".......
2ca0 20 20 20 20 20 20 20 20 7c 0a 33 2e 33 2e 31 30 20 36 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 ........|.3.3.10.6-byte.sequence
2cc0 20 77 69 74 68 20 6c 61 73 74 20 62 79 74 65 20 6d 69 73 73 69 6e 67 20 28 55 2d 37 46 46 46 46 .with.last.byte.missing.(U-7FFFF
2ce0 46 46 46 29 3a 20 22 fd bf bf bf bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 FFF):."....."...............|...
2d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2d40 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 34 20 20 43 6f 6e 63 61 74 65 6e 61 74 69 6f 6e ............|.3.4..Concatenation
2d60 20 6f 66 20 69 6e 63 6f 6d 70 6c 65 74 65 20 73 65 71 75 65 6e 63 65 73 20 20 20 20 20 20 20 20 .of.incomplete.sequences........
2d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 ............................|...
2da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2de0 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 41 6c 6c 20 74 68 65 20 31 30 20 73 65 71 75 65 6e 63 ............|.All.the.10.sequenc
2e00 65 73 20 6f 66 20 33 2e 33 20 63 6f 6e 63 61 74 65 6e 61 74 65 64 2c 20 79 6f 75 20 73 68 6f 75 es.of.3.3.concatenated,.you.shou
2e20 6c 64 20 73 65 65 20 31 30 20 6d 61 6c 66 6f 72 6d 65 64 20 20 20 20 20 20 20 20 20 7c 0a 73 65 ld.see.10.malformed.........|.se
2e40 71 75 65 6e 63 65 73 20 62 65 69 6e 67 20 73 69 67 6e 61 6c 6c 65 64 3a 20 20 20 20 20 20 20 20 quences.being.signalled:........
2e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2e80 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............|...................
2ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 ............................|...
2ee0 20 22 c0 e0 80 f0 80 80 f8 80 80 80 fc 80 80 80 80 df ef bf f7 bf bf fb bf bf bf fd bf bf bf bf ."..............................
2f00 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
2f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2f40 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |...............................
2f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 35 20 20 49 6d 70 6f 73 73 69 62 6c ................|.3.5..Impossibl
2fa0 65 20 62 79 74 65 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.bytes.........................
2fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2fe0 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |...............................
3000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 ................|.The.following.
3040 74 77 6f 20 62 79 74 65 73 20 63 61 6e 6e 6f 74 20 61 70 70 65 61 72 20 69 6e 20 61 20 63 6f 72 two.bytes.cannot.appear.in.a.cor
3060 72 65 63 74 20 55 54 46 2d 38 20 73 74 72 69 6e 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rect.UTF-8.string...............
3080 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |...............................
30a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
30c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 35 2e 31 20 20 66 65 20 3d 20 22 fe ................|.3.5.1..fe.=.".
30e0 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
3100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3120 7c 0a 33 2e 35 2e 32 20 20 66 66 20 3d 20 22 ff 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.3.5.2..ff.=."."...............
3140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 35 2e 33 20 20 66 65 20 66 65 20 66 ................|.3.5.3..fe.fe.f
3180 66 20 66 66 20 3d 20 22 fe fe ff ff 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f.ff.=."...."...................
31a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
31c0 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |...............................
31e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 20 20 4f 76 65 72 6c 6f 6e 67 20 73 65 ................|.4..Overlong.se
3220 71 75 65 6e 63 65 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 quences.........................
3240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3260 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |...............................
3280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
32a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 ................|.The.following.
32c0 73 65 71 75 65 6e 63 65 73 20 61 72 65 20 6e 6f 74 20 6d 61 6c 66 6f 72 6d 65 64 20 61 63 63 6f sequences.are.not.malformed.acco
32e0 72 64 69 6e 67 20 74 6f 20 74 68 65 20 6c 65 74 74 65 72 20 6f 66 20 20 20 20 20 20 20 20 20 20 rding.to.the.letter.of..........
3300 7c 0a 74 68 65 20 55 6e 69 63 6f 64 65 20 32 2e 30 20 73 74 61 6e 64 61 72 64 2e 20 48 6f 77 65 |.the.Unicode.2.0.standard..Howe
3320 76 65 72 2c 20 74 68 65 79 20 61 72 65 20 6c 6f 6e 67 65 72 20 74 68 65 6e 20 6e 65 63 65 73 73 ver,.they.are.longer.then.necess
3340 61 72 79 20 61 6e 64 20 20 20 20 20 20 20 20 20 7c 0a 61 20 63 6f 72 72 65 63 74 20 55 54 46 2d ary.and.........|.a.correct.UTF-
3360 38 20 65 6e 63 6f 64 65 72 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 74 6f 20 70 72 6f 64 8.encoder.is.not.allowed.to.prod
3380 75 63 65 20 74 68 65 6d 2e 20 41 20 22 73 61 66 65 20 55 54 46 2d 38 20 20 20 20 20 20 20 20 20 uce.them..A."safe.UTF-8.........
33a0 7c 0a 64 65 63 6f 64 65 72 22 20 73 68 6f 75 6c 64 20 72 65 6a 65 63 74 20 74 68 65 6d 20 6a 75 |.decoder".should.reject.them.ju
33c0 73 74 20 6c 69 6b 65 20 6d 61 6c 66 6f 72 6d 65 64 20 73 65 71 75 65 6e 63 65 73 20 66 6f 72 20 st.like.malformed.sequences.for.
33e0 74 77 6f 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 72 65 61 73 6f 6e 73 3a 20 28 31 29 20 49 two.............|.reasons:.(1).I
3400 74 20 68 65 6c 70 73 20 74 6f 20 64 65 62 75 67 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 69 66 t.helps.to.debug.applications.if
3420 20 6f 76 65 72 6c 6f 6e 67 20 73 65 71 75 65 6e 63 65 73 20 61 72 65 20 20 20 20 20 20 20 20 20 .overlong.sequences.are.........
3440 7c 0a 6e 6f 74 20 74 72 65 61 74 65 64 20 61 73 20 76 61 6c 69 64 20 72 65 70 72 65 73 65 6e 74 |.not.treated.as.valid.represent
3460 61 74 69 6f 6e 73 20 6f 66 20 63 68 61 72 61 63 74 65 72 73 2c 20 62 65 63 61 75 73 65 20 74 68 ations.of.characters,.because.th
3480 69 73 20 68 65 6c 70 73 20 20 20 20 20 20 20 20 7c 0a 74 6f 20 73 70 6f 74 20 70 72 6f 62 6c 65 is.helps........|.to.spot.proble
34a0 6d 73 20 6d 6f 72 65 20 71 75 69 63 6b 6c 79 2e 20 28 32 29 20 4f 76 65 72 6c 6f 6e 67 20 73 65 ms.more.quickly..(2).Overlong.se
34c0 71 75 65 6e 63 65 73 20 70 72 6f 76 69 64 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 quences.provide.................
34e0 7c 0a 61 6c 74 65 72 6e 61 74 69 76 65 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 73 20 6f 66 |.alternative.representations.of
3500 20 63 68 61 72 61 63 74 65 72 73 2c 20 74 68 61 74 20 63 6f 75 6c 64 20 6d 61 6c 69 63 69 6f 75 .characters,.that.could.maliciou
3520 73 6c 79 20 62 65 20 20 20 20 20 20 20 20 20 20 7c 0a 75 73 65 64 20 74 6f 20 62 79 70 61 73 73 sly.be..........|.used.to.bypass
3540 20 66 69 6c 74 65 72 73 20 74 68 61 74 20 63 68 65 63 6b 20 6f 6e 6c 79 20 66 6f 72 20 41 53 43 .filters.that.check.only.for.ASC
3560 49 49 20 63 68 61 72 61 63 74 65 72 73 2e 20 46 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 II.characters..For..............
3580 7c 0a 69 6e 73 74 61 6e 63 65 2c 20 61 20 32 2d 62 79 74 65 20 65 6e 63 6f 64 65 64 20 6c 69 6e |.instance,.a.2-byte.encoded.lin
35a0 65 20 66 65 65 64 20 28 4c 46 29 20 77 6f 75 6c 64 20 6e 6f 74 20 62 65 20 63 61 75 67 68 74 20 e.feed.(LF).would.not.be.caught.
35c0 62 79 20 61 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 6c 69 6e 65 20 63 6f 75 6e 74 65 72 20 74 by.a............|.line.counter.t
35e0 68 61 74 20 63 6f 75 6e 74 73 20 6f 6e 6c 79 20 30 78 30 61 20 62 79 74 65 73 2c 20 62 75 74 20 hat.counts.only.0x0a.bytes,.but.
3600 69 74 20 77 6f 75 6c 64 20 73 74 69 6c 6c 20 62 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 it.would.still.be...............
3620 7c 0a 70 72 6f 63 65 73 73 65 64 20 61 73 20 61 20 6c 69 6e 65 20 66 65 65 64 20 62 79 20 61 6e |.processed.as.a.line.feed.by.an
3640 20 75 6e 73 61 66 65 20 55 54 46 2d 38 20 64 65 63 6f 64 65 72 20 6c 61 74 65 72 20 69 6e 20 74 .unsafe.UTF-8.decoder.later.in.t
3660 68 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 70 69 70 65 6c 69 6e 65 2e 20 46 72 6f 6d he..............|.pipeline..From
3680 20 61 20 73 65 63 75 72 69 74 79 20 70 6f 69 6e 74 20 6f 66 20 76 69 65 77 2c 20 41 53 43 49 49 .a.security.point.of.view,.ASCII
36a0 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 6f 66 20 55 54 46 2d 38 20 20 20 20 20 20 20 20 20 .compatibility.of.UTF-8.........
36c0 7c 0a 73 65 71 75 65 6e 63 65 73 20 6d 65 61 6e 73 20 61 6c 73 6f 2c 20 74 68 61 74 20 41 53 43 |.sequences.means.also,.that.ASC
36e0 49 49 20 63 68 61 72 61 63 74 65 72 73 20 61 72 65 20 2a 6f 6e 6c 79 2a 20 61 6c 6c 6f 77 65 64 II.characters.are.*only*.allowed
3700 20 74 6f 20 62 65 20 20 20 20 20 20 20 20 20 20 7c 0a 72 65 70 72 65 73 65 6e 74 65 64 20 62 79 .to.be..........|.represented.by
3720 20 41 53 43 49 49 20 62 79 74 65 73 20 69 6e 20 74 68 65 20 72 61 6e 67 65 20 30 78 30 30 2d 30 .ASCII.bytes.in.the.range.0x00-0
3740 78 37 66 2e 20 54 6f 20 65 6e 73 75 72 65 20 74 68 69 73 20 20 20 20 20 20 20 20 20 20 20 20 20 x7f..To.ensure.this.............
3760 7c 0a 61 73 70 65 63 74 20 6f 66 20 41 53 43 49 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2c |.aspect.of.ASCII.compatibility,
3780 20 75 73 65 20 6f 6e 6c 79 20 22 73 61 66 65 20 55 54 46 2d 38 20 64 65 63 6f 64 65 72 73 22 20 .use.only."safe.UTF-8.decoders".
37a0 74 68 61 74 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 72 65 6a 65 63 74 20 6f 76 65 72 6c 6f 6e that............|.reject.overlon
37c0 67 20 55 54 46 2d 38 20 73 65 71 75 65 6e 63 65 73 20 66 6f 72 20 77 68 69 63 68 20 61 20 73 68 g.UTF-8.sequences.for.which.a.sh
37e0 6f 72 74 65 72 20 65 6e 63 6f 64 69 6e 67 20 65 78 69 73 74 73 2e 20 20 20 20 20 20 20 20 20 20 orter.encoding.exists...........
3800 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |...............................
3820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 31 20 20 45 78 61 6d 70 6c 65 73 20 ................|.4.1..Examples.
3860 6f 66 20 61 6e 20 6f 76 65 72 6c 6f 6e 67 20 41 53 43 49 49 20 63 68 61 72 61 63 74 65 72 20 20 of.an.overlong.ASCII.character..
3880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38a0 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |...............................
38c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 57 69 74 68 20 61 20 73 61 66 65 20 55 54 ................|.With.a.safe.UT
3900 46 2d 38 20 64 65 63 6f 64 65 72 2c 20 61 6c 6c 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e F-8.decoder,.all.of.the.followin
3920 67 20 66 69 76 65 20 6f 76 65 72 6c 6f 6e 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g.five.overlong.................
3940 7c 0a 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 41 53 43 49 49 20 63 |.representations.of.the.ASCII.c
3960 68 61 72 61 63 74 65 72 20 73 6c 61 73 68 20 28 22 2f 22 29 20 73 68 6f 75 6c 64 20 62 65 20 72 haracter.slash.("/").should.be.r
3980 65 6a 65 63 74 65 64 20 20 20 20 20 20 20 20 20 7c 0a 6c 69 6b 65 20 61 20 6d 61 6c 66 6f 72 6d ejected.........|.like.a.malform
39a0 65 64 20 55 54 46 2d 38 20 73 65 71 75 65 6e 63 65 2c 20 66 6f 72 20 69 6e 73 74 61 6e 63 65 20 ed.UTF-8.sequence,.for.instance.
39c0 62 79 20 73 75 62 73 74 69 74 75 74 69 6e 67 20 69 74 20 77 69 74 68 20 20 20 20 20 20 20 20 20 by.substituting.it.with.........
39e0 7c 0a 61 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 63 68 61 72 61 63 74 65 72 2e 20 49 66 20 79 6f |.a.replacement.character..If.yo
3a00 75 20 73 65 65 20 61 20 73 6c 61 73 68 20 62 65 6c 6f 77 2c 20 79 6f 75 20 64 6f 20 6e 6f 74 20 u.see.a.slash.below,.you.do.not.
3a20 68 61 76 65 20 61 20 20 20 20 20 20 20 20 20 20 7c 0a 73 61 66 65 20 55 54 46 2d 38 20 64 65 63 have.a..........|.safe.UTF-8.dec
3a40 6f 64 65 72 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 oder!...........................
3a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a80 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |...............................
3aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 31 2e 31 20 55 2b 30 30 32 46 20 3d ................|.4.1.1.U+002F.=
3ae0 20 63 30 20 61 66 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 22 c0 af 22 20 20 20 20 20 20 20 .c0.af.............=."..".......
3b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3b20 20 7c 0a 34 2e 31 2e 32 20 55 2b 30 30 32 46 20 3d 20 65 30 20 38 30 20 61 66 20 20 20 20 20 20 .|.4.1.2.U+002F.=.e0.80.af......
3b40 20 20 20 20 3d 20 22 e0 80 af 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....=."...".....................
3b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 31 2e 33 20 55 2b 30 30 32 ...................|.4.1.3.U+002
3b80 46 20 3d 20 66 30 20 38 30 20 38 30 20 61 66 20 20 20 20 20 20 20 3d 20 22 f0 80 80 af 22 20 20 F.=.f0.80.80.af.......=."...."..
3ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3bc0 20 20 20 20 20 20 7c 0a 34 2e 31 2e 34 20 55 2b 30 30 32 46 20 3d 20 66 38 20 38 30 20 38 30 20 ......|.4.1.4.U+002F.=.f8.80.80.
3be0 38 30 20 61 66 20 20 20 20 3d 20 22 f8 80 80 80 af 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 80.af....=."....."..............
3c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 31 2e ..........................|.4.1.
3c20 35 20 55 2b 30 30 32 46 20 3d 20 66 63 20 38 30 20 38 30 20 38 30 20 38 30 20 61 66 20 3d 20 22 5.U+002F.=.fc.80.80.80.80.af.=."
3c40 fc 80 80 80 80 af 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......".........................
3c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............|................
3c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
3cc0 0a 34 2e 32 20 20 4d 61 78 69 6d 75 6d 20 6f 76 65 72 6c 6f 6e 67 20 73 65 71 75 65 6e 63 65 73 .4.2..Maximum.overlong.sequences
3ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............|................
3d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
3d60 0a 42 65 6c 6f 77 20 79 6f 75 20 73 65 65 20 74 68 65 20 68 69 67 68 65 73 74 20 55 6e 69 63 6f .Below.you.see.the.highest.Unico
3d80 64 65 20 76 61 6c 75 65 20 74 68 61 74 20 69 73 20 73 74 69 6c 6c 20 72 65 73 75 6c 74 69 6e 67 de.value.that.is.still.resulting
3da0 20 69 6e 20 61 6e 20 20 20 20 20 20 20 20 20 7c 0a 6f 76 65 72 6c 6f 6e 67 20 73 65 71 75 65 6e .in.an.........|.overlong.sequen
3dc0 63 65 20 69 66 20 72 65 70 72 65 73 65 6e 74 65 64 20 77 69 74 68 20 74 68 65 20 67 69 76 65 6e ce.if.represented.with.the.given
3de0 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 2e 20 54 68 69 73 20 20 20 20 20 20 20 20 20 7c .number.of.bytes..This.........|
3e00 0a 69 73 20 61 20 62 6f 75 6e 64 61 72 79 20 74 65 73 74 20 66 6f 72 20 73 61 66 65 20 55 54 46 .is.a.boundary.test.for.safe.UTF
3e20 2d 38 20 64 65 63 6f 64 65 72 73 2e 20 41 6c 6c 20 66 69 76 65 20 63 68 61 72 61 63 74 65 72 73 -8.decoders..All.five.characters
3e40 20 73 68 6f 75 6c 64 20 20 20 20 20 20 20 20 7c 0a 62 65 20 72 65 6a 65 63 74 65 64 20 6c 69 6b .should........|.be.rejected.lik
3e60 65 20 6d 61 6c 66 6f 72 6d 65 64 20 55 54 46 2d 38 20 73 65 71 75 65 6e 63 65 73 2e 20 20 20 20 e.malformed.UTF-8.sequences.....
3e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
3ea0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 32 2e 31 20 20 55 2d 30 30 30 30 30 30 ...............|.4.2.1..U-000000
3f00 37 46 20 3d 20 63 31 20 62 66 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 22 c1 bf 22 20 20 20 7F.=.c1.bf.............=.".."...
3f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3f40 7c 0a 34 2e 32 2e 32 20 20 55 2d 30 30 30 30 30 37 46 46 20 3d 20 65 30 20 39 66 20 62 66 20 20 |.4.2.2..U-000007FF.=.e0.9f.bf..
3f60 20 20 20 20 20 20 20 20 3d 20 22 e0 9f bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........=."...".................
3f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 32 2e 33 20 20 55 2d 30 30 30 ..................|.4.2.3..U-000
3fa0 30 46 46 46 46 20 3d 20 66 30 20 38 66 20 62 66 20 62 66 20 20 20 20 20 20 20 3d 20 22 f0 8f bf 0FFFF.=.f0.8f.bf.bf.......=."...
3fc0 bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."..............................
3fe0 20 20 20 20 20 7c 0a 34 2e 32 2e 34 20 20 55 2d 30 30 31 46 46 46 46 46 20 3d 20 66 38 20 38 37 .....|.4.2.4..U-001FFFFF.=.f8.87
4000 20 62 66 20 62 66 20 62 66 20 20 20 20 3d 20 22 f8 87 bf bf bf 22 20 20 20 20 20 20 20 20 20 20 .bf.bf.bf....=."....."..........
4020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 32 2e 35 .........................|.4.2.5
4040 20 20 55 2d 30 33 46 46 46 46 46 46 20 3d 20 66 63 20 38 33 20 62 66 20 62 66 20 62 66 20 62 66 ..U-03FFFFFF.=.fc.83.bf.bf.bf.bf
4060 20 3d 20 22 fc 83 bf bf bf bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .=."......".....................
4080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............|.................
40a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
40c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a ..............................|.
40e0 34 2e 33 20 20 4f 76 65 72 6c 6f 6e 67 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 4.3..Overlong.representation.of.
4100 74 68 65 20 4e 55 4c 20 63 68 61 72 61 63 74 65 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 the.NUL.character...............
4120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............|.................
4140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a ..............................|.
4180 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 69 76 65 20 73 65 71 75 65 6e 63 65 73 20 73 68 6f The.following.five.sequences.sho
41a0 75 6c 64 20 61 6c 73 6f 20 62 65 20 72 65 6a 65 63 74 65 64 20 6c 69 6b 65 20 6d 61 6c 66 6f 72 uld.also.be.rejected.like.malfor
41c0 6d 65 64 20 20 20 20 20 20 20 20 20 20 20 7c 0a 55 54 46 2d 38 20 73 65 71 75 65 6e 63 65 73 20 med...........|.UTF-8.sequences.
41e0 61 6e 64 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 74 72 65 61 74 65 64 20 6c 69 6b 65 20 74 and.should.not.be.treated.like.t
4200 68 65 20 41 53 43 49 49 20 4e 55 4c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a he.ASCII.NUL..................|.
4220 63 68 61 72 61 63 74 65 72 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 character.......................
4240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............|.................
4280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
42a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a ..............................|.
42c0 34 2e 33 2e 31 20 20 55 2b 30 30 30 30 20 3d 20 63 30 20 38 30 20 20 20 20 20 20 20 20 20 20 20 4.3.1..U+0000.=.c0.80...........
42e0 20 20 3d 20 22 c0 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..=.".."........................
4300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 33 2e 32 20 20 55 2b 30 30 30 30 20 3d ...............|.4.3.2..U+0000.=
4320 20 65 30 20 38 30 20 38 30 20 20 20 20 20 20 20 20 20 20 3d 20 22 e0 80 80 22 20 20 20 20 20 20 .e0.80.80..........=."..."......
4340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4360 20 7c 0a 34 2e 33 2e 33 20 20 55 2b 30 30 30 30 20 3d 20 66 30 20 38 30 20 38 30 20 38 30 20 20 .|.4.3.3..U+0000.=.f0.80.80.80..
4380 20 20 20 20 20 3d 20 22 f0 80 80 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....=."...."...................
43a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 33 2e 34 20 20 55 2b 30 ....................|.4.3.4..U+0
43c0 30 30 30 20 3d 20 66 38 20 38 30 20 38 30 20 38 30 20 38 30 20 20 20 20 3d 20 22 f8 80 80 80 80 000.=.f8.80.80.80.80....=.".....
43e0 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
4400 20 20 20 20 20 20 20 20 7c 0a 34 2e 33 2e 35 20 20 55 2b 30 30 30 30 20 3d 20 66 63 20 38 30 20 ........|.4.3.5..U+0000.=.fc.80.
4420 38 30 20 38 30 20 38 30 20 38 30 20 3d 20 22 fc 80 80 80 80 80 22 20 20 20 20 20 20 20 20 20 20 80.80.80.80.=."......"..........
4440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 .............................|..
4460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
44a0 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 20 20 49 6c 6c 65 67 61 6c 20 63 6f 64 65 20 70 .............|.5..Illegal.code.p
44c0 6f 73 69 74 69 6f 6e 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ositions........................
44e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 .............................|..
4500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4540 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 55 54 46 .............|.The.following.UTF
4560 2d 38 20 73 65 71 75 65 6e 63 65 73 20 73 68 6f 75 6c 64 20 62 65 20 72 65 6a 65 63 74 65 64 20 -8.sequences.should.be.rejected.
4580 6c 69 6b 65 20 6d 61 6c 66 6f 72 6d 65 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 73 like.malformed...............|.s
45a0 65 71 75 65 6e 63 65 73 2c 20 62 65 63 61 75 73 65 20 74 68 65 79 20 6e 65 76 65 72 20 72 65 70 equences,.because.they.never.rep
45c0 72 65 73 65 6e 74 20 76 61 6c 69 64 20 49 53 4f 20 31 30 36 34 36 20 63 68 61 72 61 63 74 65 72 resent.valid.ISO.10646.character
45e0 73 20 61 6e 64 20 20 20 20 20 20 20 20 7c 0a 61 20 55 54 46 2d 38 20 64 65 63 6f 64 65 72 20 74 s.and........|.a.UTF-8.decoder.t
4600 68 61 74 20 61 63 63 65 70 74 73 20 74 68 65 6d 20 6d 69 67 68 74 20 69 6e 74 72 6f 64 75 63 65 hat.accepts.them.might.introduce
4620 20 73 65 63 75 72 69 74 79 20 70 72 6f 62 6c 65 6d 73 20 20 20 20 20 20 20 20 20 20 20 7c 0a 63 .security.problems...........|.c
4640 6f 6d 70 61 72 61 62 6c 65 20 74 6f 20 6f 76 65 72 6c 6f 6e 67 20 55 54 46 2d 38 20 73 65 71 75 omparable.to.overlong.UTF-8.sequ
4660 65 6e 63 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ences...........................
4680 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............|..................
46a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
46c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 .............................|.5
46e0 2e 31 20 53 69 6e 67 6c 65 20 55 54 46 2d 31 36 20 73 75 72 72 6f 67 61 74 65 73 20 20 20 20 20 .1.Single.UTF-16.surrogates.....
4700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4720 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............|..................
4740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 .............................|.5
4780 2e 31 2e 31 20 20 55 2b 44 38 30 30 20 3d 20 65 64 20 61 30 20 38 30 20 3d 20 22 ed a0 80 22 20 .1.1..U+D800.=.ed.a0.80.=."...".
47a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
47c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 31 2e 32 20 20 55 2b 44 42 37 46 20 3d ...............|.5.1.2..U+DB7F.=
47e0 20 65 64 20 61 64 20 62 66 20 3d 20 22 ed ad bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .ed.ad.bf.=."..."...............
4800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4820 20 7c 0a 35 2e 31 2e 33 20 20 55 2b 44 42 38 30 20 3d 20 65 64 20 61 65 20 38 30 20 3d 20 22 ed .|.5.1.3..U+DB80.=.ed.ae.80.=.".
4840 ae 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..".............................
4860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 31 2e 34 20 20 55 2b 44 42 ...................|.5.1.4..U+DB
4880 46 46 20 3d 20 65 64 20 61 66 20 62 66 20 3d 20 22 ed af bf 22 20 20 20 20 20 20 20 20 20 20 20 FF.=.ed.af.bf.=."..."...........
48a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
48c0 20 20 20 20 20 7c 0a 35 2e 31 2e 35 20 20 55 2b 44 43 30 30 20 3d 20 65 64 20 62 30 20 38 30 20 .....|.5.1.5..U+DC00.=.ed.b0.80.
48e0 3d 20 22 ed b0 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =."...".........................
4900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 31 2e 36 20 20 .......................|.5.1.6..
4920 55 2b 44 46 38 30 20 3d 20 65 64 20 62 65 20 38 30 20 3d 20 22 ed be 80 22 20 20 20 20 20 20 20 U+DF80.=.ed.be.80.=."...".......
4940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4960 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 31 2e 37 20 20 55 2b 44 46 46 46 20 3d 20 65 64 20 62 66 .........|.5.1.7..U+DFFF.=.ed.bf
4980 20 62 66 20 3d 20 22 ed bf bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .bf.=."...".....................
49a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 ...........................|....
49c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
49e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4a00 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 32 20 50 61 69 72 65 64 20 55 54 46 2d 31 36 20 73 ...........|.5.2.Paired.UTF-16.s
4a20 75 72 72 6f 67 61 74 65 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 urrogates.......................
4a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 ...........................|....
4a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4aa0 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 32 2e 31 20 20 55 2b 44 38 30 30 20 55 2b 44 43 30 ...........|.5.2.1..U+D800.U+DC0
4ac0 30 20 3d 20 65 64 20 61 30 20 38 30 20 65 64 20 62 30 20 38 30 20 3d 20 22 ed a0 80 ed b0 80 22 0.=.ed.a0.80.ed.b0.80.=."......"
4ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
4b00 0a 35 2e 32 2e 32 20 20 55 2b 44 38 30 30 20 55 2b 44 46 46 46 20 3d 20 65 64 20 61 30 20 38 30 .5.2.2..U+D800.U+DFFF.=.ed.a0.80
4b20 20 65 64 20 62 66 20 62 66 20 3d 20 22 ed a0 80 ed bf bf 22 20 20 20 20 20 20 20 20 20 20 20 20 .ed.bf.bf.=."......"............
4b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 32 2e 33 20 20 55 2b 44 42 ...................|.5.2.3..U+DB
4b60 37 46 20 55 2b 44 43 30 30 20 3d 20 65 64 20 61 64 20 62 66 20 65 64 20 62 30 20 38 30 20 3d 20 7F.U+DC00.=.ed.ad.bf.ed.b0.80.=.
4b80 22 ed ad bf ed b0 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "......"........................
4ba0 20 20 20 20 20 20 20 7c 0a 35 2e 32 2e 34 20 20 55 2b 44 42 37 46 20 55 2b 44 46 46 46 20 3d 20 .......|.5.2.4..U+DB7F.U+DFFF.=.
4bc0 65 64 20 61 64 20 62 66 20 65 64 20 62 66 20 62 66 20 3d 20 22 ed ad bf ed bf bf 22 20 20 20 20 ed.ad.bf.ed.bf.bf.=."......"....
4be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 32 ...........................|.5.2
4c00 2e 35 20 20 55 2b 44 42 38 30 20 55 2b 44 43 30 30 20 3d 20 65 64 20 61 65 20 38 30 20 65 64 20 .5..U+DB80.U+DC00.=.ed.ae.80.ed.
4c20 62 30 20 38 30 20 3d 20 22 ed ae 80 ed b0 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 b0.80.=."......"................
4c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 32 2e 36 20 20 55 2b 44 42 38 30 20 55 ...............|.5.2.6..U+DB80.U
4c60 2b 44 46 46 46 20 3d 20 65 64 20 61 65 20 38 30 20 65 64 20 62 66 20 62 66 20 3d 20 22 ed ae 80 +DFFF.=.ed.ae.80.ed.bf.bf.=."...
4c80 ed bf bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..."............................
4ca0 20 20 20 7c 0a 35 2e 32 2e 37 20 20 55 2b 44 42 46 46 20 55 2b 44 43 30 30 20 3d 20 65 64 20 61 ...|.5.2.7..U+DBFF.U+DC00.=.ed.a
4cc0 66 20 62 66 20 65 64 20 62 30 20 38 30 20 3d 20 22 ed af bf ed b0 80 22 20 20 20 20 20 20 20 20 f.bf.ed.b0.80.=."......"........
4ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 32 2e 38 20 20 .......................|.5.2.8..
4d00 55 2b 44 42 46 46 20 55 2b 44 46 46 46 20 3d 20 65 64 20 61 66 20 62 66 20 65 64 20 62 66 20 62 U+DBFF.U+DFFF.=.ed.af.bf.ed.bf.b
4d20 66 20 3d 20 22 ed af bf ed bf bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f.=."......"....................
4d40 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........|....................
4d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 33 ...........................|.5.3
4da0 20 4f 74 68 65 72 20 69 6c 6c 65 67 61 6c 20 63 6f 64 65 20 70 6f 73 69 74 69 6f 6e 73 20 20 20 .Other.illegal.code.positions...
4dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4de0 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........|....................
4e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 33 ...........................|.5.3
4e40 2e 31 20 20 55 2b 46 46 46 45 20 3d 20 65 66 20 62 66 20 62 65 20 3d 20 22 ef bf be 22 20 20 20 .1..U+FFFE.=.ef.bf.be.=."..."...
4e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4e80 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 33 2e 32 20 20 55 2b 46 46 46 46 20 3d 20 65 .............|.5.3.2..U+FFFF.=.e
4ea0 66 20 62 66 20 62 66 20 3d 20 22 ef bf bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f.bf.bf.=."...".................
4ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
4ee0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 54 48 45 20 45 4e 44 20 20 20 20 20 20 20 20 ...............|.THE.END........
4f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
4f80 0a 23 65 78 70 65 63 74 65 64 20 43 48 41 52 53 45 54 5f 4f 4b 0a 55 54 46 2d 38 20 64 65 63 6f .#expected.CHARSET_OK.UTF-8.deco
4fa0 64 65 72 20 63 61 70 61 62 69 6c 69 74 79 20 61 6e 64 20 73 74 72 65 73 73 20 74 65 73 74 0a 2d der.capability.and.stress.test.-
4fc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
4fe0 2d 2d 2d 2d 2d 2d 2d 0a 4d 61 72 6b 75 73 20 4b 75 68 6e 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e -------.Markus.Kuhn.<http://www.
5000 63 6c 2e 63 61 6d 2e 61 63 2e 75 6b 2f 7e 6d 67 6b 32 35 2f 3e 20 2d 20 32 30 30 33 2d 30 32 2d cl.cam.ac.uk/~mgk25/>.-.2003-02-
5020 31 39 0a 54 68 69 73 20 74 65 73 74 20 66 69 6c 65 20 63 61 6e 20 68 65 6c 70 20 79 6f 75 20 65 19.This.test.file.can.help.you.e
5040 78 61 6d 69 6e 65 2c 20 68 6f 77 20 79 6f 75 72 20 55 54 46 2d 38 20 64 65 63 6f 64 65 72 20 68 xamine,.how.your.UTF-8.decoder.h
5060 61 6e 64 6c 65 73 0a 76 61 72 69 6f 75 73 20 74 79 70 65 73 20 6f 66 20 63 6f 72 72 65 63 74 2c andles.various.types.of.correct,
5080 20 6d 61 6c 66 6f 72 6d 65 64 2c 20 6f 72 20 6f 74 68 65 72 77 69 73 65 20 69 6e 74 65 72 65 73 .malformed,.or.otherwise.interes
50a0 74 69 6e 67 20 55 54 46 2d 38 0a 73 65 71 75 65 6e 63 65 73 2e 20 54 68 69 73 20 66 69 6c 65 20 ting.UTF-8.sequences..This.file.
50c0 69 73 20 6e 6f 74 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 61 20 63 6f 6e 66 6f 72 6d 61 6e 63 65 is.not.meant.to.be.a.conformance
50e0 20 74 65 73 74 2e 20 49 74 20 64 6f 65 73 0a 6e 6f 74 20 70 72 65 73 63 72 69 62 65 73 20 61 6e .test..It.does.not.prescribes.an
5100 79 20 70 61 72 74 69 63 75 6c 61 72 20 6f 75 74 63 6f 6d 65 20 61 6e 64 20 74 68 65 72 65 66 6f y.particular.outcome.and.therefo
5120 72 65 20 74 68 65 72 65 20 69 73 20 6e 6f 20 77 61 79 20 74 6f 0a 22 70 61 73 73 22 20 6f 72 20 re.there.is.no.way.to."pass".or.
5140 22 66 61 69 6c 22 20 74 68 69 73 20 74 65 73 74 20 66 69 6c 65 2c 20 65 76 65 6e 20 74 68 6f 75 "fail".this.test.file,.even.thou
5160 67 68 20 74 68 65 20 74 65 78 74 73 20 73 75 67 67 65 73 74 73 20 61 0a 70 72 65 66 65 72 61 62 gh.the.texts.suggests.a.preferab
5180 6c 65 20 64 65 63 6f 64 65 72 20 62 65 68 61 76 69 6f 75 72 20 61 74 20 73 6f 6d 65 20 70 6c 61 le.decoder.behaviour.at.some.pla
51a0 63 65 73 2e 20 54 68 65 20 61 69 6d 20 69 73 20 69 6e 73 74 65 61 64 20 74 6f 0a 68 65 6c 70 20 ces..The.aim.is.instead.to.help.
51c0 79 6f 75 20 74 68 69 6e 6b 20 61 62 6f 75 74 20 61 6e 64 20 74 65 73 74 20 74 68 65 20 62 65 68 you.think.about.and.test.the.beh
51e0 61 76 69 6f 75 72 20 6f 66 20 79 6f 75 72 20 55 54 46 2d 38 20 6f 6e 20 61 0a 73 79 73 74 65 6d aviour.of.your.UTF-8.on.a.system
5200 61 74 69 63 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 75 6e 75 73 75 61 6c 20 69 6e 70 75 74 atic.collection.of.unusual.input
5220 73 2e 20 45 78 70 65 72 69 65 6e 63 65 20 73 6f 20 66 61 72 20 73 75 67 67 65 73 74 73 0a 74 68 s..Experience.so.far.suggests.th
5240 61 74 20 6d 6f 73 74 20 66 69 72 73 74 2d 74 69 6d 65 20 61 75 74 68 6f 72 73 20 6f 66 20 55 54 at.most.first-time.authors.of.UT
5260 46 2d 38 20 64 65 63 6f 64 65 72 73 20 66 69 6e 64 20 61 74 20 6c 65 61 73 74 20 6f 6e 65 0a 73 F-8.decoders.find.at.least.one.s
5280 65 72 69 6f 75 73 20 70 72 6f 62 6c 65 6d 20 69 6e 20 74 68 65 69 72 20 64 65 63 6f 64 65 72 20 erious.problem.in.their.decoder.
52a0 62 79 20 75 73 69 6e 67 20 74 68 69 73 20 66 69 6c 65 2e 0a 54 68 65 20 74 65 73 74 20 6c 69 6e by.using.this.file..The.test.lin
52c0 65 73 20 62 65 6c 6f 77 20 63 6f 76 65 72 20 62 6f 75 6e 64 61 72 79 20 63 6f 6e 64 69 74 69 6f es.below.cover.boundary.conditio
52e0 6e 73 2c 20 6d 61 6c 66 6f 72 6d 65 64 20 55 54 46 2d 38 0a 73 65 71 75 65 6e 63 65 73 20 61 73 ns,.malformed.UTF-8.sequences.as
5300 20 77 65 6c 6c 20 61 73 20 63 6f 72 72 65 63 74 6c 79 20 65 6e 63 6f 64 65 64 20 55 54 46 2d 38 .well.as.correctly.encoded.UTF-8
5320 20 73 65 71 75 65 6e 63 65 73 20 6f 66 20 55 6e 69 63 6f 64 65 20 63 6f 64 65 0a 70 6f 69 6e 74 .sequences.of.Unicode.code.point
5340 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 6e 65 76 65 72 20 6f 63 63 75 72 20 69 6e 20 61 20 63 s.that.should.never.occur.in.a.c
5360 6f 72 72 65 63 74 20 55 54 46 2d 38 20 66 69 6c 65 2e 0a 41 63 63 6f 72 64 69 6e 67 20 74 6f 20 orrect.UTF-8.file..According.to.
5380 49 53 4f 20 31 30 36 34 36 2d 31 3a 32 30 30 30 2c 20 73 65 63 74 69 6f 6e 73 20 44 2e 37 20 61 ISO.10646-1:2000,.sections.D.7.a
53a0 6e 64 20 32 2e 33 63 2c 20 61 20 64 65 76 69 63 65 0a 72 65 63 65 69 76 69 6e 67 20 55 54 46 2d nd.2.3c,.a.device.receiving.UTF-
53c0 38 20 73 68 61 6c 6c 20 69 6e 74 65 72 70 72 65 74 20 61 20 22 6d 61 6c 66 6f 72 6d 65 64 20 73 8.shall.interpret.a."malformed.s
53e0 65 71 75 65 6e 63 65 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 0a 74 68 61 74 20 69 74 20 equence.in.the.same.way.that.it.
5400 69 6e 74 65 72 70 72 65 74 73 20 61 20 63 68 61 72 61 63 74 65 72 20 74 68 61 74 20 69 73 20 6f interprets.a.character.that.is.o
5420 75 74 73 69 64 65 20 74 68 65 20 61 64 6f 70 74 65 64 20 73 75 62 73 65 74 22 20 61 6e 64 0a 22 utside.the.adopted.subset".and."
5440 63 68 61 72 61 63 74 65 72 73 20 74 68 61 74 20 61 72 65 20 6e 6f 74 20 77 69 74 68 69 6e 20 74 characters.that.are.not.within.t
5460 68 65 20 61 64 6f 70 74 65 64 20 73 75 62 73 65 74 20 73 68 61 6c 6c 20 62 65 20 69 6e 64 69 63 he.adopted.subset.shall.be.indic
5480 61 74 65 64 0a 74 6f 20 74 68 65 20 75 73 65 72 22 20 62 79 20 61 20 72 65 63 65 69 76 69 6e 67 ated.to.the.user".by.a.receiving
54a0 20 64 65 76 69 63 65 2e 20 41 20 71 75 69 74 65 20 63 6f 6d 6d 6f 6e 6c 79 20 75 73 65 64 20 61 .device..A.quite.commonly.used.a
54c0 70 70 72 6f 61 63 68 20 69 6e 0a 55 54 46 2d 38 20 64 65 63 6f 64 65 72 73 20 69 73 20 74 6f 20 pproach.in.UTF-8.decoders.is.to.
54e0 72 65 70 6c 61 63 65 20 61 6e 79 20 6d 61 6c 66 6f 72 6d 65 64 20 55 54 46 2d 38 20 73 65 71 75 replace.any.malformed.UTF-8.sequ
5500 65 6e 63 65 20 62 79 20 61 0a 72 65 70 6c 61 63 65 6d 65 6e 74 20 63 68 61 72 61 63 74 65 72 20 ence.by.a.replacement.character.
5520 28 55 2b 46 46 46 44 29 2c 20 77 68 69 63 68 20 6c 6f 6f 6b 73 20 61 20 62 69 74 20 6c 69 6b 65 (U+FFFD),.which.looks.a.bit.like
5540 20 61 6e 20 69 6e 76 65 72 74 65 64 0a 71 75 65 73 74 69 6f 6e 20 6d 61 72 6b 2c 20 6f 72 20 61 .an.inverted.question.mark,.or.a
5560 20 73 69 6d 69 6c 61 72 20 73 79 6d 62 6f 6c 2e 20 49 74 20 6d 69 67 68 74 20 62 65 20 61 20 67 .similar.symbol..It.might.be.a.g
5580 6f 6f 64 20 69 64 65 61 20 74 6f 0a 76 69 73 75 61 6c 6c 79 20 64 69 73 74 69 6e 67 75 69 73 68 ood.idea.to.visually.distinguish
55a0 20 61 20 6d 61 6c 66 6f 72 6d 65 64 20 55 54 46 2d 38 20 73 65 71 75 65 6e 63 65 20 66 72 6f 6d .a.malformed.UTF-8.sequence.from
55c0 20 61 20 63 6f 72 72 65 63 74 6c 79 0a 65 6e 63 6f 64 65 64 20 55 6e 69 63 6f 64 65 20 63 68 61 .a.correctly.encoded.Unicode.cha
55e0 72 61 63 74 65 72 20 74 68 61 74 20 69 73 20 6a 75 73 74 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c racter.that.is.just.not.availabl
5600 65 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 0a 66 6f 6e 74 20 62 75 74 20 6f 74 68 65 72 77 e.in.the.current.font.but.otherw
5620 69 73 65 20 66 75 6c 6c 79 20 6c 65 67 61 6c 2c 20 65 76 65 6e 20 74 68 6f 75 67 68 20 49 53 4f ise.fully.legal,.even.though.ISO
5640 20 31 30 36 34 36 2d 31 20 64 6f 65 73 6e 27 74 0a 6d 61 6e 64 61 74 65 20 74 68 69 73 2e 20 49 .10646-1.doesn't.mandate.this..I
5660 6e 20 61 6e 79 20 63 61 73 65 2c 20 6a 75 73 74 20 69 67 6e 6f 72 69 6e 67 20 6d 61 6c 66 6f 72 n.any.case,.just.ignoring.malfor
5680 6d 65 64 20 73 65 71 75 65 6e 63 65 73 20 6f 72 0a 75 6e 61 76 61 69 6c 61 62 6c 65 20 63 68 61 med.sequences.or.unavailable.cha
56a0 72 61 63 74 65 72 73 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 66 6f 72 6d 20 74 6f 20 49 53 4f 20 racters.does.not.conform.to.ISO.
56c0 31 30 36 34 36 2c 20 77 69 6c 6c 20 6d 61 6b 65 0a 64 65 62 75 67 67 69 6e 67 20 6d 6f 72 65 20 10646,.will.make.debugging.more.
56e0 64 69 66 66 69 63 75 6c 74 2c 20 61 6e 64 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 75 73 65 72 20 difficult,.and.can.lead.to.user.
5700 63 6f 6e 66 75 73 69 6f 6e 2e 0a 50 6c 65 61 73 65 20 63 68 65 63 6b 2c 20 77 68 65 74 68 65 72 confusion..Please.check,.whether
5720 20 61 20 6d 61 6c 66 6f 72 6d 65 64 20 55 54 46 2d 38 20 73 65 71 75 65 6e 63 65 20 69 73 20 28 .a.malformed.UTF-8.sequence.is.(
5740 31 29 20 72 65 70 72 65 73 65 6e 74 65 64 20 61 74 0a 61 6c 6c 2c 20 28 32 29 20 72 65 70 72 65 1).represented.at.all,.(2).repre
5760 73 65 6e 74 65 64 20 62 79 20 65 78 61 63 74 6c 79 20 6f 6e 65 20 73 69 6e 67 6c 65 20 72 65 70 sented.by.exactly.one.single.rep
5780 6c 61 63 65 6d 65 6e 74 20 63 68 61 72 61 63 74 65 72 20 28 6f 72 0a 65 71 75 69 76 61 6c 65 6e lacement.character.(or.equivalen
57a0 74 20 73 69 67 6e 61 6c 29 2c 20 61 6e 64 20 28 33 29 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 t.signal),.and.(3).the.following
57c0 20 71 75 6f 74 61 74 69 6f 6e 20 6d 61 72 6b 20 61 66 74 65 72 20 61 6e 0a 69 6c 6c 65 67 61 6c .quotation.mark.after.an.illegal
57e0 20 55 54 46 2d 38 20 73 65 71 75 65 6e 63 65 20 69 73 20 63 6f 72 72 65 63 74 6c 79 20 64 69 73 .UTF-8.sequence.is.correctly.dis
5800 70 6c 61 79 65 64 2c 20 69 2e 65 2e 20 70 72 6f 70 65 72 0a 72 65 73 79 6e 63 68 72 6f 6e 69 7a played,.i.e..proper.resynchroniz
5820 61 74 69 6f 6e 20 74 61 6b 65 73 20 70 6c 61 63 65 20 69 6d 6d 61 67 65 61 74 65 6c 79 20 61 66 ation.takes.place.immageately.af
5840 74 65 72 20 61 6e 79 20 6d 61 6c 66 6f 72 6d 65 64 0a 73 65 71 75 65 6e 63 65 2e 20 54 68 69 73 ter.any.malformed.sequence..This
5860 20 66 69 6c 65 20 73 61 79 73 20 22 54 48 45 20 45 4e 44 22 20 69 6e 20 74 68 65 20 6c 61 73 74 .file.says."THE.END".in.the.last
5880 20 6c 69 6e 65 2c 20 73 6f 20 69 66 20 79 6f 75 20 64 6f 6e 27 74 0a 73 65 65 20 74 68 61 74 2c .line,.so.if.you.don't.see.that,
58a0 20 79 6f 75 72 20 64 65 63 6f 64 65 72 20 63 72 61 73 68 65 64 20 73 6f 6d 65 68 6f 77 20 62 65 .your.decoder.crashed.somehow.be
58c0 66 6f 72 65 2c 20 77 68 69 63 68 20 73 68 6f 75 6c 64 20 61 6c 77 61 79 73 20 62 65 0a 63 61 75 fore,.which.should.always.be.cau
58e0 73 65 20 66 6f 72 20 63 6f 6e 63 65 72 6e 2e 0a 41 6c 6c 20 6c 69 6e 65 73 20 69 6e 20 74 68 69 se.for.concern..All.lines.in.thi
5900 73 20 66 69 6c 65 20 61 72 65 20 65 78 61 63 74 6c 79 20 37 39 20 63 68 61 72 61 63 74 65 72 73 s.file.are.exactly.79.characters
5920 20 6c 6f 6e 67 20 28 70 6c 75 73 20 74 68 65 20 6c 69 6e 65 0a 66 65 65 64 29 2e 20 49 6e 20 61 .long.(plus.the.line.feed)..In.a
5940 64 64 69 74 69 6f 6e 2c 20 61 6c 6c 20 6c 69 6e 65 73 20 65 6e 64 20 77 69 74 68 20 22 7c 22 2c ddition,.all.lines.end.with."|",
5960 20 65 78 63 65 70 74 20 66 6f 72 20 74 68 65 20 74 77 6f 20 74 65 73 74 0a 6c 69 6e 65 73 20 32 .except.for.the.two.test.lines.2
5980 2e 31 2e 31 20 61 6e 64 20 32 2e 32 2e 31 2c 20 77 68 69 63 68 20 63 6f 6e 74 61 69 6e 20 6e 6f .1.1.and.2.2.1,.which.contain.no
59a0 6e 2d 70 72 69 6e 74 61 62 6c 65 20 41 53 43 49 49 20 63 6f 6e 74 72 6f 6c 73 0a 55 2b 30 30 30 n-printable.ASCII.controls.U+000
59c0 30 20 61 6e 64 20 55 2b 30 30 37 46 2e 20 49 66 20 79 6f 75 20 64 69 73 70 6c 61 79 20 74 68 69 0.and.U+007F..If.you.display.thi
59e0 73 20 66 69 6c 65 20 77 69 74 68 20 61 20 66 69 78 65 64 2d 77 69 64 74 68 20 66 6f 6e 74 2c 0a s.file.with.a.fixed-width.font,.
5a00 74 68 65 73 65 20 22 7c 22 20 63 68 61 72 61 63 74 65 72 73 20 73 68 6f 75 6c 64 20 61 6c 6c 20 these."|".characters.should.all.
5a20 6c 69 6e 65 20 75 70 20 69 6e 20 63 6f 6c 75 6d 6e 20 37 39 20 28 72 69 67 68 74 20 6d 61 72 67 line.up.in.column.79.(right.marg
5a40 69 6e 29 2e 0a 54 68 69 73 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 74 65 73 74 20 71 75 69 in)..This.allows.you.to.test.qui
5a60 63 6b 6c 79 2c 20 77 68 65 74 68 65 72 20 79 6f 75 72 20 55 54 46 2d 38 20 64 65 63 6f 64 65 72 ckly,.whether.your.UTF-8.decoder
5a80 20 66 69 6e 64 73 20 74 68 65 0a 63 6f 72 72 65 63 74 20 6e 75 6d 62 65 72 20 6f 66 20 63 68 61 .finds.the.correct.number.of.cha
5aa0 72 61 63 74 65 72 73 20 69 6e 20 65 76 65 72 79 20 6c 69 6e 65 2c 20 74 68 61 74 20 69 73 20 77 racters.in.every.line,.that.is.w
5ac0 68 65 74 68 65 72 20 65 61 63 68 0a 6d 61 6c 66 6f 72 6d 65 64 20 73 65 71 75 65 6e 63 65 73 20 hether.each.malformed.sequences.
5ae0 69 73 20 72 65 70 6c 61 63 65 64 20 62 79 20 61 20 73 69 6e 67 6c 65 20 72 65 70 6c 61 63 65 6d is.replaced.by.a.single.replacem
5b00 65 6e 74 20 63 68 61 72 61 63 74 65 72 2e 0a 4e 6f 74 65 20 74 68 61 74 20 61 73 20 61 6e 20 61 ent.character..Note.that.as.an.a
5b20 6c 74 65 72 6e 61 74 69 76 65 20 74 6f 20 74 68 65 20 6e 6f 74 69 6f 6e 20 6f 66 20 6d 61 6c 66 lternative.to.the.notion.of.malf
5b40 6f 72 6d 65 64 20 73 65 71 75 65 6e 63 65 20 75 73 65 64 0a 68 65 72 65 2c 20 69 74 20 69 73 20 ormed.sequence.used.here,.it.is.
5b60 61 6c 73 6f 20 61 20 70 65 72 66 65 63 74 6c 79 20 61 63 63 65 70 74 61 62 6c 65 20 28 61 6e 64 also.a.perfectly.acceptable.(and
5b80 20 69 6e 20 73 6f 6d 65 20 73 69 74 75 61 74 69 6f 6e 73 20 65 76 65 6e 0a 70 72 65 66 65 72 61 .in.some.situations.even.prefera
5ba0 62 6c 65 29 20 73 6f 6c 75 74 69 6f 6e 20 74 6f 20 72 65 70 72 65 73 65 6e 74 20 65 61 63 68 20 ble).solution.to.represent.each.
5bc0 69 6e 64 69 76 69 64 75 61 6c 20 62 79 74 65 20 6f 66 20 61 20 6d 61 6c 66 6f 72 6d 65 64 0a 73 individual.byte.of.a.malformed.s
5be0 65 71 75 65 6e 63 65 20 62 79 20 61 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 63 68 61 72 61 63 74 equence.by.a.replacement.charact
5c00 65 72 2e 20 49 66 20 79 6f 75 20 66 6f 6c 6c 6f 77 20 74 68 69 73 20 73 74 72 61 74 65 67 79 20 er..If.you.follow.this.strategy.
5c20 69 6e 0a 79 6f 75 72 20 64 65 63 6f 64 65 72 2c 20 74 68 65 6e 20 70 6c 65 61 73 65 20 69 67 6e in.your.decoder,.then.please.ign
5c40 6f 72 65 20 74 68 65 20 22 7c 22 20 63 6f 6c 75 6d 6e 2e 0a 48 65 72 65 20 63 6f 6d 65 20 74 68 ore.the."|".column..Here.come.th
5c60 65 20 74 65 73 74 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.tests:........................
5c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5ca0 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..|.............................
5cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 31 20 20 53 6f 6d 65 20 63 6f 72 72 ..................|.1..Some.corr
5d00 65 63 74 20 55 54 46 2d 38 20 74 65 78 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ect.UTF-8.text..................
5d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5d40 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..|.............................
5d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 59 6f 75 20 73 68 6f 75 6c 64 20 73 ..................|.You.should.s
5da0 65 65 20 74 68 65 20 47 72 65 65 6b 20 77 6f 72 64 20 27 6b 6f 73 6d 65 27 3a 20 20 20 20 20 20 ee.the.Greek.word.'kosme':......
5dc0 20 22 ce ba e1 bd b9 cf 83 ce bc ce b5 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."..........."..................
5de0 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
5e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 20 20 42 6f 75 ........................|.2..Bou
5e40 6e 64 61 72 79 20 63 6f 6e 64 69 74 69 6f 6e 20 74 65 73 74 20 63 61 73 65 73 20 20 20 20 20 20 ndary.condition.test.cases......
5e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5e80 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
5ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 31 20 20 46 ........................|.2.1..F
5ee0 69 72 73 74 20 70 6f 73 73 69 62 6c 65 20 73 65 71 75 65 6e 63 65 20 6f 66 20 61 20 63 65 72 74 irst.possible.sequence.of.a.cert
5f00 61 69 6e 20 6c 65 6e 67 74 68 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ain.length......................
5f20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
5f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 31 2e 31 20 ........................|.2.1.1.
5f80 20 31 20 62 79 74 65 20 20 28 55 2d 30 30 30 30 30 30 30 30 29 3a 20 20 20 20 20 20 20 20 22 00 .1.byte..(U-00000000):........".
5fa0 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
5fc0 20 20 20 20 20 20 20 20 20 0a 32 2e 31 2e 32 20 20 32 20 62 79 74 65 73 20 28 55 2d 30 30 30 30 ..........2.1.2..2.bytes.(U-0000
5fe0 30 30 38 30 29 3a 20 20 20 20 20 20 20 20 22 c2 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0080):........".."..............
6000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 31 2e 33 .........................|.2.1.3
6020 20 20 33 20 62 79 74 65 73 20 28 55 2d 30 30 30 30 30 38 30 30 29 3a 20 20 20 20 20 20 20 20 22 ..3.bytes.(U-00000800):........"
6040 e0 a0 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..."............................
6060 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 31 2e 34 20 20 34 20 62 79 74 65 73 20 28 55 2d 30 ...........|.2.1.4..4.bytes.(U-0
6080 30 30 31 30 30 30 30 29 3a 20 20 20 20 20 20 20 20 22 f0 90 80 80 22 20 20 20 20 20 20 20 20 20 0010000):........"....".........
60a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a ..............................|.
60c0 32 2e 31 2e 35 20 20 35 20 62 79 74 65 73 20 28 55 2d 30 30 32 30 30 30 30 30 29 3a 20 20 20 20 2.1.5..5.bytes.(U-00200000):....
60e0 20 20 20 20 22 f8 88 80 80 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....".....".....................
6100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 31 2e 36 20 20 36 20 62 79 74 ..................|.2.1.6..6.byt
6120 65 73 20 28 55 2d 30 34 30 30 30 30 30 30 29 3a 20 20 20 20 20 20 20 20 22 fc 84 80 80 80 80 22 es.(U-04000000):........"......"
6140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6160 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......|........................
6180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
61a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 32 20 20 4c 61 .......................|.2.2..La
61c0 73 74 20 70 6f 73 73 69 62 6c 65 20 73 65 71 75 65 6e 63 65 20 6f 66 20 61 20 63 65 72 74 61 69 st.possible.sequence.of.a.certai
61e0 6e 20 6c 65 6e 67 74 68 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.length........................
6200 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......|........................
6220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 32 2e 31 20 20 .......................|.2.2.1..
6260 31 20 62 79 74 65 20 20 28 55 2d 30 30 30 30 30 30 37 46 29 3a 20 20 20 20 20 20 20 20 22 7f 22 1.byte..(U-0000007F):........"."
6280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
62a0 20 20 20 20 20 20 20 20 0a 32 2e 32 2e 32 20 20 32 20 62 79 74 65 73 20 28 55 2d 30 30 30 30 30 .........2.2.2..2.bytes.(U-00000
62c0 37 46 46 29 3a 20 20 20 20 20 20 20 20 22 df bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7FF):........".."...............
62e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 32 2e 33 20 ........................|.2.2.3.
6300 20 33 20 62 79 74 65 73 20 28 55 2d 30 30 30 30 46 46 46 46 29 3a 20 20 20 20 20 20 20 20 22 ef .3.bytes.(U-0000FFFF):........".
6320 bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..".............................
6340 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 32 2e 34 20 20 34 20 62 79 74 65 73 20 28 55 2d 30 30 ..........|.2.2.4..4.bytes.(U-00
6360 31 46 46 46 46 46 29 3a 20 20 20 20 20 20 20 20 22 f7 bf bf bf 22 20 20 20 20 20 20 20 20 20 20 1FFFFF):........"...."..........
6380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 .............................|.2
63a0 2e 32 2e 35 20 20 35 20 62 79 74 65 73 20 28 55 2d 30 33 46 46 46 46 46 46 29 3a 20 20 20 20 20 .2.5..5.bytes.(U-03FFFFFF):.....
63c0 20 20 20 22 fb bf bf bf bf 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..."....."......................
63e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 32 2e 36 20 20 36 20 62 79 74 65 .................|.2.2.6..6.byte
6400 73 20 28 55 2d 37 46 46 46 46 46 46 46 29 3a 20 20 20 20 20 20 20 20 22 fd bf bf bf bf bf 22 20 s.(U-7FFFFFFF):........"......".
6420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6440 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......|.........................
6460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 33 20 20 4f 74 68 ......................|.2.3..Oth
64a0 65 72 20 62 6f 75 6e 64 61 72 79 20 63 6f 6e 64 69 74 69 6f 6e 73 20 20 20 20 20 20 20 20 20 20 er.boundary.conditions..........
64c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
64e0 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......|.........................
6500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 33 2e 31 20 20 55 ......................|.2.3.1..U
6540 2d 30 30 30 30 44 37 46 46 20 3d 20 65 64 20 39 66 20 62 66 20 3d 20 22 ed 9f bf 22 20 20 20 20 -0000D7FF.=.ed.9f.bf.=."..."....
6560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6580 20 20 20 20 20 20 20 20 7c 0a 32 2e 33 2e 32 20 20 55 2d 30 30 30 30 45 30 30 30 20 3d 20 65 65 ........|.2.3.2..U-0000E000.=.ee
65a0 20 38 30 20 38 30 20 3d 20 22 ee 80 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .80.80.=."..."..................
65c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 33 2e ..........................|.2.3.
65e0 33 20 20 55 2d 30 30 30 30 46 46 46 44 20 3d 20 65 66 20 62 66 20 62 64 20 3d 20 22 ef bf bd 22 3..U-0000FFFD.=.ef.bf.bd.=."..."
6600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6620 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 32 2e 33 2e 34 20 20 55 2d 30 30 31 30 46 46 46 46 20 ............|.2.3.4..U-0010FFFF.
6640 3d 20 66 34 20 38 66 20 62 66 20 62 66 20 3d 20 22 f4 8f bf bf 22 20 20 20 20 20 20 20 20 20 20 =.f4.8f.bf.bf.=."...."..........
6660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
6680 0a 32 2e 33 2e 35 20 20 55 2d 30 30 31 31 30 30 30 30 20 3d 20 66 34 20 39 30 20 38 30 20 38 30 .2.3.5..U-00110000.=.f4.90.80.80
66a0 20 3d 20 22 f4 90 80 80 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .=."....".......................
66c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..................|.............
66e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6720 20 20 7c 0a 33 20 20 4d 61 6c 66 6f 72 6d 65 64 20 73 65 71 75 65 6e 63 65 73 20 20 20 20 20 20 ..|.3..Malformed.sequences......
6740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..................|.............
6780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
67a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
67c0 20 20 7c 0a 33 2e 31 20 20 55 6e 65 78 70 65 63 74 65 64 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e ..|.3.1..Unexpected.continuation
67e0 20 62 79 74 65 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .bytes..........................
6800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..................|.............
6820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6860 20 20 7c 0a 45 61 63 68 20 75 6e 65 78 70 65 63 74 65 64 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e ..|.Each.unexpected.continuation
6880 20 62 79 74 65 20 73 68 6f 75 6c 64 20 62 65 20 73 65 70 61 72 61 74 65 6c 79 20 73 69 67 6e 61 .byte.should.be.separately.signa
68a0 6c 6c 65 64 20 61 73 20 61 20 20 20 20 20 20 20 20 20 7c 0a 6d 61 6c 66 6f 72 6d 65 64 20 73 65 lled.as.a.........|.malformed.se
68c0 71 75 65 6e 63 65 20 6f 66 20 69 74 73 20 6f 77 6e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 quence.of.its.own...............
68e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6900 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..|.............................
6920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 31 2e 31 20 20 46 69 72 73 74 ..................|.3.1.1..First
6960 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 62 79 74 65 20 30 78 38 30 3a 20 22 ef bf bd 22 20 20 .continuation.byte.0x80:."..."..
6980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
69a0 20 20 20 20 7c 0a 33 2e 31 2e 32 20 20 4c 61 73 74 20 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 ....|.3.1.2..Last..continuation.
69c0 62 79 74 65 20 30 78 62 66 3a 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 byte.0xbf:."..."................
69e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 ......................|.........
6a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6a40 20 20 20 20 20 20 7c 0a 33 2e 31 2e 33 20 20 32 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 62 79 ......|.3.1.3..2.continuation.by
6a60 74 65 73 3a 20 22 ef bf bd ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tes:."......"...................
6a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 31 2e ..........................|.3.1.
6aa0 34 20 20 33 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 62 79 74 65 73 3a 20 22 ef bf bd ef bf bd 4..3.continuation.bytes:."......
6ac0 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..."............................
6ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 31 2e 35 20 20 34 20 63 6f 6e 74 69 ................|.3.1.5..4.conti
6b00 6e 75 61 74 69 6f 6e 20 62 79 74 65 73 3a 20 22 ef bf bd ef bf bd ef bf bd ef bf bd 22 20 20 20 nuation.bytes:."............"...
6b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6b40 20 20 20 20 20 20 20 20 7c 0a 33 2e 31 2e 36 20 20 35 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 ........|.3.1.6..5.continuation.
6b60 62 79 74 65 73 3a 20 22 ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd 22 20 20 20 20 20 20 20 20 bytes:."..............."........
6b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6ba0 20 20 7c 0a 33 2e 31 2e 37 20 20 36 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 62 79 74 65 73 3a ..|.3.1.7..6.continuation.bytes:
6bc0 20 22 ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 .".................."...........
6be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a ..............................|.
6c00 33 2e 31 2e 38 20 20 37 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 62 79 74 65 73 3a 20 22 ef bf 3.1.8..7.continuation.bytes:."..
6c20 bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 ..................."............
6c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 ............................|...
6c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6ca0 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 31 2e 39 20 20 53 65 71 75 65 6e 63 65 20 6f 66 ............|.3.1.9..Sequence.of
6cc0 20 61 6c 6c 20 36 34 20 70 6f 73 73 69 62 6c 65 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 62 79 .all.64.possible.continuation.by
6ce0 74 65 73 20 28 30 78 38 30 2d 30 78 62 66 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 tes.(0x80-0xbf):............|...
6d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6d40 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 22 ef bf bd ef bf bd ef bf bd ef bf bd ef bf ............|...."..............
6d60 bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef ................................
6d80 bf bd 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 ............................|...
6dc0 20 20 ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ................................
6de0 ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6e20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 ef bf bd ef bf bd ef bf bd ef bf bd ef bf ............|...................
6e40 bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef ................................
6e60 bf bd 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 ............................|...
6ea0 20 20 ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ................................
6ec0 ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 ..................".............
6ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6f00 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............|...................
6f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e ............................|.3.
6f60 32 20 20 4c 6f 6e 65 6c 79 20 73 74 61 72 74 20 63 68 61 72 61 63 74 65 72 73 20 20 20 20 20 20 2..Lonely.start.characters......
6f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6fa0 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............|...................
6fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e ............................|.3.
7000 32 2e 31 20 20 41 6c 6c 20 33 32 20 66 69 72 73 74 20 62 79 74 65 73 20 6f 66 20 32 2d 62 79 74 2.1..All.32.first.bytes.of.2-byt
7020 65 20 73 65 71 75 65 6e 63 65 73 20 28 30 78 63 30 2d 30 78 64 66 29 2c 20 20 20 20 20 20 20 20 e.sequences.(0xc0-0xdf),........
7040 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 65 61 63 68 20 66 6f 6c 6c 6f 77 ............|........each.follow
7060 65 64 20 62 79 20 61 20 73 70 61 63 65 20 63 68 61 72 61 63 74 65 72 3a 20 20 20 20 20 20 20 20 ed.by.a.space.character:........
7080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 ............................|...
70a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
70c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
70e0 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 22 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf ............|...."..............
7100 bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf ................................
7120 bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 ............................|...
7160 20 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf ................................
7180 bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf ................................
71a0 bd 20 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..".............................
71c0 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............|...................
71e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e ............................|.3.
7220 32 2e 32 20 20 41 6c 6c 20 31 36 20 66 69 72 73 74 20 62 79 74 65 73 20 6f 66 20 33 2d 62 79 74 2.2..All.16.first.bytes.of.3-byt
7240 65 20 73 65 71 75 65 6e 63 65 73 20 28 30 78 65 30 2d 30 78 65 66 29 2c 20 20 20 20 20 20 20 20 e.sequences.(0xe0-0xef),........
7260 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 65 61 63 68 20 66 6f 6c 6c 6f 77 ............|........each.follow
7280 65 64 20 62 79 20 61 20 73 70 61 63 65 20 63 68 61 72 61 63 74 65 72 3a 20 20 20 20 20 20 20 20 ed.by.a.space.character:........
72a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 ............................|...
72c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
72e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7300 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 22 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf ............|...."..............
7320 bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf ................................
7340 bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 22 20 20 20 20 20 20 20 20 20 20 20 20 20 ..................".............
7360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 ............................|...
7380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
73a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
73c0 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 32 2e 33 20 20 41 6c 6c 20 38 20 66 69 72 73 74 ............|.3.2.3..All.8.first
73e0 20 62 79 74 65 73 20 6f 66 20 34 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 73 20 28 30 78 66 30 .bytes.of.4-byte.sequences.(0xf0
7400 2d 30 78 66 37 29 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 -0xf7),.....................|...
7420 20 20 20 20 20 65 61 63 68 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 73 70 61 63 65 20 63 68 .....each.followed.by.a.space.ch
7440 61 72 61 63 74 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 aracter:........................
7460 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............|...................
7480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
74a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 ............................|...
74c0 20 22 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf ."..............................
74e0 bd 20 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..".............................
7500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 ............................|...
7520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7560 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 32 2e 34 20 20 41 6c 6c 20 34 20 66 69 72 73 74 ............|.3.2.4..All.4.first
7580 20 62 79 74 65 73 20 6f 66 20 35 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 73 20 28 30 78 66 38 .bytes.of.5-byte.sequences.(0xf8
75a0 2d 30 78 66 62 29 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 -0xfb),.....................|...
75c0 20 20 20 20 20 65 61 63 68 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 73 70 61 63 65 20 63 68 .....each.followed.by.a.space.ch
75e0 61 72 61 63 74 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 aracter:........................
7600 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............|...................
7620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 ............................|...
7660 20 22 ef bf bd 20 ef bf bd 20 ef bf bd 20 ef bf bd 20 22 20 20 20 20 20 20 20 20 20 20 20 20 20 ."................".............
7680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
76a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 ....................|...........
76c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
76e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7700 20 20 20 20 7c 0a 33 2e 32 2e 35 20 20 41 6c 6c 20 32 20 66 69 72 73 74 20 62 79 74 65 73 20 6f ....|.3.2.5..All.2.first.bytes.o
7720 66 20 36 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 73 20 28 30 78 66 63 2d 30 78 66 64 29 2c 20 f.6-byte.sequences.(0xfc-0xfd),.
7740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 65 61 63 ....................|........eac
7760 68 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 73 70 61 63 65 20 63 68 61 72 61 63 74 65 72 3a h.followed.by.a.space.character:
7780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
77a0 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....|...........................
77c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
77e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 22 ef bf bd 20 ef bf ....................|...."......
7800 bd 20 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..".............................
7820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7840 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
7860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 33 20 20 53 ........................|.3.3..S
78a0 65 71 75 65 6e 63 65 73 20 77 69 74 68 20 6c 61 73 74 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 equences.with.last.continuation.
78c0 62 79 74 65 20 6d 69 73 73 69 6e 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 byte.missing....................
78e0 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
7900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 41 6c 6c 20 62 79 ........................|.All.by
7940 74 65 73 20 6f 66 20 61 6e 20 69 6e 63 6f 6d 70 6c 65 74 65 20 73 65 71 75 65 6e 63 65 20 73 68 tes.of.an.incomplete.sequence.sh
7960 6f 75 6c 64 20 62 65 20 73 69 67 6e 61 6c 6c 65 64 20 61 73 20 61 20 73 69 6e 67 6c 65 20 20 20 ould.be.signalled.as.a.single...
7980 20 20 20 20 20 20 20 20 7c 0a 6d 61 6c 66 6f 72 6d 65 64 20 73 65 71 75 65 6e 63 65 2c 20 69 2e ........|.malformed.sequence,.i.
79a0 65 2e 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 73 65 65 20 6f 6e 6c 79 20 61 20 73 69 6e 67 6c 65 e.,.you.should.see.only.a.single
79c0 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 63 68 61 72 61 63 .replacement............|.charac
79e0 74 65 72 20 69 6e 20 65 61 63 68 20 6f 66 20 74 68 65 20 6e 65 78 74 20 31 30 20 74 65 73 74 73 ter.in.each.of.the.next.10.tests
7a00 2e 20 28 43 68 61 72 61 63 74 65 72 73 20 61 73 20 69 6e 20 73 65 63 74 69 6f 6e 20 32 29 20 20 ..(Characters.as.in.section.2)..
7a20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
7a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 33 2e 31 20 ........................|.3.3.1.
7a80 20 32 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 20 77 69 74 68 20 6c 61 73 74 20 62 79 74 65 20 .2-byte.sequence.with.last.byte.
7aa0 6d 69 73 73 69 6e 67 20 28 55 2b 30 30 30 30 29 3a 20 20 20 20 20 22 ef bf bd 22 20 20 20 20 20 missing.(U+0000):....."...".....
7ac0 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 33 2e 32 20 20 33 2d 62 79 74 65 20 73 65 71 75 65 6e ..........|.3.3.2..3-byte.sequen
7ae0 63 65 20 77 69 74 68 20 6c 61 73 74 20 62 79 74 65 20 6d 69 73 73 69 6e 67 20 28 55 2b 30 30 30 ce.with.last.byte.missing.(U+000
7b00 30 29 3a 20 20 20 20 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 0):....."..."...............|.3.
7b20 33 2e 33 20 20 34 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 20 77 69 74 68 20 6c 61 73 74 20 62 3.3..4-byte.sequence.with.last.b
7b40 79 74 65 20 6d 69 73 73 69 6e 67 20 28 55 2b 30 30 30 30 29 3a 20 20 20 20 20 22 ef bf bd 22 20 yte.missing.(U+0000):....."...".
7b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 33 2e 34 20 20 35 2d 62 79 74 65 20 73 65 ..............|.3.3.4..5-byte.se
7b80 71 75 65 6e 63 65 20 77 69 74 68 20 6c 61 73 74 20 62 79 74 65 20 6d 69 73 73 69 6e 67 20 28 55 quence.with.last.byte.missing.(U
7ba0 2b 30 30 30 30 29 3a 20 20 20 20 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 +0000):....."..."...............
7bc0 7c 0a 33 2e 33 2e 35 20 20 36 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 20 77 69 74 68 20 6c 61 |.3.3.5..6-byte.sequence.with.la
7be0 73 74 20 62 79 74 65 20 6d 69 73 73 69 6e 67 20 28 55 2b 30 30 30 30 29 3a 20 20 20 20 20 22 ef st.byte.missing.(U+0000):.....".
7c00 bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 33 2e 36 20 20 32 2d 62 79 74 .."...............|.3.3.6..2-byt
7c20 65 20 73 65 71 75 65 6e 63 65 20 77 69 74 68 20 6c 61 73 74 20 62 79 74 65 20 6d 69 73 73 69 6e e.sequence.with.last.byte.missin
7c40 67 20 28 55 2d 30 30 30 30 30 37 46 46 29 3a 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 g.(U-000007FF):."..."...........
7c60 20 20 20 20 7c 0a 33 2e 33 2e 37 20 20 33 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 20 77 69 74 ....|.3.3.7..3-byte.sequence.wit
7c80 68 20 6c 61 73 74 20 62 79 74 65 20 6d 69 73 73 69 6e 67 20 28 55 2d 30 30 30 30 46 46 46 46 29 h.last.byte.missing.(U-0000FFFF)
7ca0 3a 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 33 2e 38 20 20 34 :."..."...............|.3.3.8..4
7cc0 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 20 77 69 74 68 20 6c 61 73 74 20 62 79 74 65 20 6d 69 -byte.sequence.with.last.byte.mi
7ce0 73 73 69 6e 67 20 28 55 2d 30 30 31 46 46 46 46 46 29 3a 20 22 ef bf bd 22 20 20 20 20 20 20 20 ssing.(U-001FFFFF):."...".......
7d00 20 20 20 20 20 20 20 20 7c 0a 33 2e 33 2e 39 20 20 35 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 ........|.3.3.9..5-byte.sequence
7d20 20 77 69 74 68 20 6c 61 73 74 20 62 79 74 65 20 6d 69 73 73 69 6e 67 20 28 55 2d 30 33 46 46 46 .with.last.byte.missing.(U-03FFF
7d40 46 46 46 29 3a 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 33 2e FFF):."..."...............|.3.3.
7d60 31 30 20 36 2d 62 79 74 65 20 73 65 71 75 65 6e 63 65 20 77 69 74 68 20 6c 61 73 74 20 62 79 74 10.6-byte.sequence.with.last.byt
7d80 65 20 6d 69 73 73 69 6e 67 20 28 55 2d 37 46 46 46 46 46 46 46 29 3a 20 22 ef bf bd 22 20 20 20 e.missing.(U-7FFFFFFF):."..."...
7da0 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............|...................
7dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e ............................|.3.
7e00 34 20 20 43 6f 6e 63 61 74 65 6e 61 74 69 6f 6e 20 6f 66 20 69 6e 63 6f 6d 70 6c 65 74 65 20 73 4..Concatenation.of.incomplete.s
7e20 65 71 75 65 6e 63 65 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 equences........................
7e40 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............|...................
7e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 41 6c ............................|.Al
7ea0 6c 20 74 68 65 20 31 30 20 73 65 71 75 65 6e 63 65 73 20 6f 66 20 33 2e 33 20 63 6f 6e 63 61 74 l.the.10.sequences.of.3.3.concat
7ec0 65 6e 61 74 65 64 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 73 65 65 20 31 30 20 6d 61 6c 66 6f 72 enated,.you.should.see.10.malfor
7ee0 6d 65 64 20 20 20 20 20 20 20 20 20 7c 0a 73 65 71 75 65 6e 63 65 73 20 62 65 69 6e 67 20 73 69 med.........|.sequences.being.si
7f00 67 6e 61 6c 6c 65 64 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 gnalled:........................
7f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 ............................|...
7f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7f80 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 22 ef bf bd ef bf bd ef bf bd ef bf bd ef bf ............|...."..............
7fa0 bd ef bf bd ef bf bd ef bf bd ef bf bd ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................"...............
7fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................|...............
8000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8040 7c 0a 33 2e 35 20 20 49 6d 70 6f 73 73 69 62 6c 65 20 62 79 74 65 73 20 20 20 20 20 20 20 20 20 |.3.5..Impossible.bytes.........
8060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................|...............
80a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
80c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
80e0 7c 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 77 6f 20 62 79 74 65 73 20 63 61 6e 6e 6f 74 |.The.following.two.bytes.cannot
8100 20 61 70 70 65 61 72 20 69 6e 20 61 20 63 6f 72 72 65 63 74 20 55 54 46 2d 38 20 73 74 72 69 6e .appear.in.a.correct.UTF-8.strin
8120 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g...............|...............
8140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8180 7c 0a 33 2e 35 2e 31 20 20 66 65 20 3d 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 |.3.5.1..fe.=."...".............
81a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
81c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 33 2e 35 2e 32 20 20 66 66 20 3d 20 ..................|.3.5.2..ff.=.
81e0 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "..."...........................
8200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8220 20 20 20 20 7c 0a 33 2e 35 2e 33 20 20 66 65 20 66 65 20 66 66 20 66 66 20 3d 20 22 ef bf bd ef ....|.3.5.3..fe.fe.ff.ff.=."....
8240 bf bd ef bf bd ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........".......................
8260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 ............................|...
8280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
82a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
82c0 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 20 20 4f 76 65 72 6c 6f 6e 67 20 73 65 71 75 65 6e ............|.4..Overlong.sequen
82e0 63 65 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ces.............................
8300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 ............................|...
8320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8360 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 65 71 75 ............|.The.following.sequ
8380 65 6e 63 65 73 20 61 72 65 20 6e 6f 74 20 6d 61 6c 66 6f 72 6d 65 64 20 61 63 63 6f 72 64 69 6e ences.are.not.malformed.accordin
83a0 67 20 74 6f 20 74 68 65 20 6c 65 74 74 65 72 20 6f 66 20 20 20 20 20 20 20 20 20 20 7c 0a 74 68 g.to.the.letter.of..........|.th
83c0 65 20 55 6e 69 63 6f 64 65 20 32 2e 30 20 73 74 61 6e 64 61 72 64 2e 20 48 6f 77 65 76 65 72 2c e.Unicode.2.0.standard..However,
83e0 20 74 68 65 79 20 61 72 65 20 6c 6f 6e 67 65 72 20 74 68 65 6e 20 6e 65 63 65 73 73 61 72 79 20 .they.are.longer.then.necessary.
8400 61 6e 64 20 20 20 20 20 20 20 20 20 7c 0a 61 20 63 6f 72 72 65 63 74 20 55 54 46 2d 38 20 65 6e and.........|.a.correct.UTF-8.en
8420 63 6f 64 65 72 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 74 6f 20 70 72 6f 64 75 63 65 20 coder.is.not.allowed.to.produce.
8440 74 68 65 6d 2e 20 41 20 22 73 61 66 65 20 55 54 46 2d 38 20 20 20 20 20 20 20 20 20 7c 0a 64 65 them..A."safe.UTF-8.........|.de
8460 63 6f 64 65 72 22 20 73 68 6f 75 6c 64 20 72 65 6a 65 63 74 20 74 68 65 6d 20 6a 75 73 74 20 6c coder".should.reject.them.just.l
8480 69 6b 65 20 6d 61 6c 66 6f 72 6d 65 64 20 73 65 71 75 65 6e 63 65 73 20 66 6f 72 20 74 77 6f 20 ike.malformed.sequences.for.two.
84a0 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 72 65 61 73 6f 6e 73 3a 20 28 31 29 20 49 74 20 68 65 ............|.reasons:.(1).It.he
84c0 6c 70 73 20 74 6f 20 64 65 62 75 67 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 69 66 20 6f 76 65 lps.to.debug.applications.if.ove
84e0 72 6c 6f 6e 67 20 73 65 71 75 65 6e 63 65 73 20 61 72 65 20 20 20 20 20 20 20 20 20 7c 0a 6e 6f rlong.sequences.are.........|.no
8500 74 20 74 72 65 61 74 65 64 20 61 73 20 76 61 6c 69 64 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f t.treated.as.valid.representatio
8520 6e 73 20 6f 66 20 63 68 61 72 61 63 74 65 72 73 2c 20 62 65 63 61 75 73 65 20 74 68 69 73 20 68 ns.of.characters,.because.this.h
8540 65 6c 70 73 20 20 20 20 20 20 20 20 7c 0a 74 6f 20 73 70 6f 74 20 70 72 6f 62 6c 65 6d 73 20 6d elps........|.to.spot.problems.m
8560 6f 72 65 20 71 75 69 63 6b 6c 79 2e 20 28 32 29 20 4f 76 65 72 6c 6f 6e 67 20 73 65 71 75 65 6e ore.quickly..(2).Overlong.sequen
8580 63 65 73 20 70 72 6f 76 69 64 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 61 6c ces.provide.................|.al
85a0 74 65 72 6e 61 74 69 76 65 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 73 20 6f 66 20 63 68 61 ternative.representations.of.cha
85c0 72 61 63 74 65 72 73 2c 20 74 68 61 74 20 63 6f 75 6c 64 20 6d 61 6c 69 63 69 6f 75 73 6c 79 20 racters,.that.could.maliciously.
85e0 62 65 20 20 20 20 20 20 20 20 20 20 7c 0a 75 73 65 64 20 74 6f 20 62 79 70 61 73 73 20 66 69 6c be..........|.used.to.bypass.fil
8600 74 65 72 73 20 74 68 61 74 20 63 68 65 63 6b 20 6f 6e 6c 79 20 66 6f 72 20 41 53 43 49 49 20 63 ters.that.check.only.for.ASCII.c
8620 68 61 72 61 63 74 65 72 73 2e 20 46 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 69 6e haracters..For..............|.in
8640 73 74 61 6e 63 65 2c 20 61 20 32 2d 62 79 74 65 20 65 6e 63 6f 64 65 64 20 6c 69 6e 65 20 66 65 stance,.a.2-byte.encoded.line.fe
8660 65 64 20 28 4c 46 29 20 77 6f 75 6c 64 20 6e 6f 74 20 62 65 20 63 61 75 67 68 74 20 62 79 20 61 ed.(LF).would.not.be.caught.by.a
8680 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 6c 69 6e 65 20 63 6f 75 6e 74 65 72 20 74 68 61 74 20 ............|.line.counter.that.
86a0 63 6f 75 6e 74 73 20 6f 6e 6c 79 20 30 78 30 61 20 62 79 74 65 73 2c 20 62 75 74 20 69 74 20 77 counts.only.0x0a.bytes,.but.it.w
86c0 6f 75 6c 64 20 73 74 69 6c 6c 20 62 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 70 72 ould.still.be...............|.pr
86e0 6f 63 65 73 73 65 64 20 61 73 20 61 20 6c 69 6e 65 20 66 65 65 64 20 62 79 20 61 6e 20 75 6e 73 ocessed.as.a.line.feed.by.an.uns
8700 61 66 65 20 55 54 46 2d 38 20 64 65 63 6f 64 65 72 20 6c 61 74 65 72 20 69 6e 20 74 68 65 20 20 afe.UTF-8.decoder.later.in.the..
8720 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 70 69 70 65 6c 69 6e 65 2e 20 46 72 6f 6d 20 61 20 73 ............|.pipeline..From.a.s
8740 65 63 75 72 69 74 79 20 70 6f 69 6e 74 20 6f 66 20 76 69 65 77 2c 20 41 53 43 49 49 20 63 6f 6d ecurity.point.of.view,.ASCII.com
8760 70 61 74 69 62 69 6c 69 74 79 20 6f 66 20 55 54 46 2d 38 20 20 20 20 20 20 20 20 20 7c 0a 73 65 patibility.of.UTF-8.........|.se
8780 71 75 65 6e 63 65 73 20 6d 65 61 6e 73 20 61 6c 73 6f 2c 20 74 68 61 74 20 41 53 43 49 49 20 63 quences.means.also,.that.ASCII.c
87a0 68 61 72 61 63 74 65 72 73 20 61 72 65 20 2a 6f 6e 6c 79 2a 20 61 6c 6c 6f 77 65 64 20 74 6f 20 haracters.are.*only*.allowed.to.
87c0 62 65 20 20 20 20 20 20 20 20 20 20 7c 0a 72 65 70 72 65 73 65 6e 74 65 64 20 62 79 20 41 53 43 be..........|.represented.by.ASC
87e0 49 49 20 62 79 74 65 73 20 69 6e 20 74 68 65 20 72 61 6e 67 65 20 30 78 30 30 2d 30 78 37 66 2e II.bytes.in.the.range.0x00-0x7f.
8800 20 54 6f 20 65 6e 73 75 72 65 20 74 68 69 73 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 61 73 .To.ensure.this.............|.as
8820 70 65 63 74 20 6f 66 20 41 53 43 49 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2c 20 75 73 65 pect.of.ASCII.compatibility,.use
8840 20 6f 6e 6c 79 20 22 73 61 66 65 20 55 54 46 2d 38 20 64 65 63 6f 64 65 72 73 22 20 74 68 61 74 .only."safe.UTF-8.decoders".that
8860 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 72 65 6a 65 63 74 20 6f 76 65 72 6c 6f 6e 67 20 55 54 ............|.reject.overlong.UT
8880 46 2d 38 20 73 65 71 75 65 6e 63 65 73 20 66 6f 72 20 77 68 69 63 68 20 61 20 73 68 6f 72 74 65 F-8.sequences.for.which.a.shorte
88a0 72 20 65 6e 63 6f 64 69 6e 67 20 65 78 69 73 74 73 2e 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 r.encoding.exists...........|...
88c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
88e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8900 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 31 20 20 45 78 61 6d 70 6c 65 73 20 6f 66 20 61 ............|.4.1..Examples.of.a
8920 6e 20 6f 76 65 72 6c 6f 6e 67 20 41 53 43 49 49 20 63 68 61 72 61 63 74 65 72 20 20 20 20 20 20 n.overlong.ASCII.character......
8940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 ............................|...
8960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
89a0 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 57 69 74 68 20 61 20 73 61 66 65 20 55 54 46 2d 38 20 ............|.With.a.safe.UTF-8.
89c0 64 65 63 6f 64 65 72 2c 20 61 6c 6c 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 69 decoder,.all.of.the.following.fi
89e0 76 65 20 6f 76 65 72 6c 6f 6e 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 72 65 ve.overlong.................|.re
8a00 70 72 65 73 65 6e 74 61 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 41 53 43 49 49 20 63 68 61 72 61 presentations.of.the.ASCII.chara
8a20 63 74 65 72 20 73 6c 61 73 68 20 28 22 2f 22 29 20 73 68 6f 75 6c 64 20 62 65 20 72 65 6a 65 63 cter.slash.("/").should.be.rejec
8a40 74 65 64 20 20 20 20 20 20 20 20 20 7c 0a 6c 69 6b 65 20 61 20 6d 61 6c 66 6f 72 6d 65 64 20 55 ted.........|.like.a.malformed.U
8a60 54 46 2d 38 20 73 65 71 75 65 6e 63 65 2c 20 66 6f 72 20 69 6e 73 74 61 6e 63 65 20 62 79 20 73 TF-8.sequence,.for.instance.by.s
8a80 75 62 73 74 69 74 75 74 69 6e 67 20 69 74 20 77 69 74 68 20 20 20 20 20 20 20 20 20 7c 0a 61 20 ubstituting.it.with.........|.a.
8aa0 72 65 70 6c 61 63 65 6d 65 6e 74 20 63 68 61 72 61 63 74 65 72 2e 20 49 66 20 79 6f 75 20 73 65 replacement.character..If.you.se
8ac0 65 20 61 20 73 6c 61 73 68 20 62 65 6c 6f 77 2c 20 79 6f 75 20 64 6f 20 6e 6f 74 20 68 61 76 65 e.a.slash.below,.you.do.not.have
8ae0 20 61 20 20 20 20 20 20 20 20 20 20 7c 0a 73 61 66 65 20 55 54 46 2d 38 20 64 65 63 6f 64 65 72 .a..........|.safe.UTF-8.decoder
8b00 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 !...............................
8b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 ............................|...
8b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8b80 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 31 2e 31 20 55 2b 30 30 32 46 20 3d 20 63 30 20 ............|.4.1.1.U+002F.=.c0.
8ba0 61 66 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 af.............=."..."..........
8bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a ..............................|.
8be0 34 2e 31 2e 32 20 55 2b 30 30 32 46 20 3d 20 65 30 20 38 30 20 61 66 20 20 20 20 20 20 20 20 20 4.1.2.U+002F.=.e0.80.af.........
8c00 20 3d 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .=."..."........................
8c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 31 2e 33 20 55 2b 30 30 32 46 20 3d ................|.4.1.3.U+002F.=
8c40 20 66 30 20 38 30 20 38 30 20 61 66 20 20 20 20 20 20 20 3d 20 22 ef bf bd 22 20 20 20 20 20 20 .f0.80.80.af.......=."..."......
8c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8c80 20 20 7c 0a 34 2e 31 2e 34 20 55 2b 30 30 32 46 20 3d 20 66 38 20 38 30 20 38 30 20 38 30 20 61 ..|.4.1.4.U+002F.=.f8.80.80.80.a
8ca0 66 20 20 20 20 3d 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f....=."..."....................
8cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 31 2e 35 20 55 2b 30 30 ....................|.4.1.5.U+00
8ce0 32 46 20 3d 20 66 63 20 38 30 20 38 30 20 38 30 20 38 30 20 61 66 20 3d 20 22 ef bf bd 22 20 20 2F.=.fc.80.80.80.80.af.=."..."..
8d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8d20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......|.........................
8d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 32 20 20 4d 61 78 ......................|.4.2..Max
8d80 69 6d 75 6d 20 6f 76 65 72 6c 6f 6e 67 20 73 65 71 75 65 6e 63 65 73 20 20 20 20 20 20 20 20 20 imum.overlong.sequences.........
8da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8dc0 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......|.........................
8de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 42 65 6c 6f 77 20 79 6f ......................|.Below.yo
8e20 75 20 73 65 65 20 74 68 65 20 68 69 67 68 65 73 74 20 55 6e 69 63 6f 64 65 20 76 61 6c 75 65 20 u.see.the.highest.Unicode.value.
8e40 74 68 61 74 20 69 73 20 73 74 69 6c 6c 20 72 65 73 75 6c 74 69 6e 67 20 69 6e 20 61 6e 20 20 20 that.is.still.resulting.in.an...
8e60 20 20 20 20 20 20 7c 0a 6f 76 65 72 6c 6f 6e 67 20 73 65 71 75 65 6e 63 65 20 69 66 20 72 65 70 ......|.overlong.sequence.if.rep
8e80 72 65 73 65 6e 74 65 64 20 77 69 74 68 20 74 68 65 20 67 69 76 65 6e 20 6e 75 6d 62 65 72 20 6f resented.with.the.given.number.o
8ea0 66 20 62 79 74 65 73 2e 20 54 68 69 73 20 20 20 20 20 20 20 20 20 7c 0a 69 73 20 61 20 62 6f 75 f.bytes..This.........|.is.a.bou
8ec0 6e 64 61 72 79 20 74 65 73 74 20 66 6f 72 20 73 61 66 65 20 55 54 46 2d 38 20 64 65 63 6f 64 65 ndary.test.for.safe.UTF-8.decode
8ee0 72 73 2e 20 41 6c 6c 20 66 69 76 65 20 63 68 61 72 61 63 74 65 72 73 20 73 68 6f 75 6c 64 20 20 rs..All.five.characters.should..
8f00 20 20 20 20 20 20 7c 0a 62 65 20 72 65 6a 65 63 74 65 64 20 6c 69 6b 65 20 6d 61 6c 66 6f 72 6d ......|.be.rejected.like.malform
8f20 65 64 20 55 54 46 2d 38 20 73 65 71 75 65 6e 63 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 ed.UTF-8.sequences..............
8f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 ......................|.........
8f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8fa0 20 20 20 20 20 20 7c 0a 34 2e 32 2e 31 20 20 55 2d 30 30 30 30 30 30 37 46 20 3d 20 63 31 20 62 ......|.4.2.1..U-0000007F.=.c1.b
8fc0 66 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 f.............=."..."...........
8fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 32 2e 32 20 ........................|.4.2.2.
9000 20 55 2d 30 30 30 30 30 37 46 46 20 3d 20 65 30 20 39 66 20 62 66 20 20 20 20 20 20 20 20 20 20 .U-000007FF.=.e0.9f.bf..........
9020 3d 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =."...".........................
9040 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 32 2e 33 20 20 55 2d 30 30 30 30 46 46 46 46 20 3d 20 ..........|.4.2.3..U-0000FFFF.=.
9060 66 30 20 38 66 20 62 66 20 62 66 20 20 20 20 20 20 20 3d 20 22 ef bf bd 22 20 20 20 20 20 20 20 f0.8f.bf.bf.......=."...".......
9080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e ............................|.4.
90a0 32 2e 34 20 20 55 2d 30 30 31 46 46 46 46 46 20 3d 20 66 38 20 38 37 20 62 66 20 62 66 20 62 66 2.4..U-001FFFFF.=.f8.87.bf.bf.bf
90c0 20 20 20 20 3d 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....=."...".....................
90e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 32 2e 35 20 20 55 2d 30 33 46 46 46 46 46 ..............|.4.2.5..U-03FFFFF
9100 46 20 3d 20 66 63 20 38 33 20 62 66 20 62 66 20 62 66 20 62 66 20 3d 20 22 ef bf bd 22 20 20 20 F.=.fc.83.bf.bf.bf.bf.=."..."...
9120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9140 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |...............................
9160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 33 20 20 4f 76 65 72 6c 6f 6e 67 20 ................|.4.3..Overlong.
91a0 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 4e 55 4c 20 63 68 61 72 61 63 representation.of.the.NUL.charac
91c0 74 65 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ter.............................
91e0 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |...............................
9200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 ................|.The.following.
9240 66 69 76 65 20 73 65 71 75 65 6e 63 65 73 20 73 68 6f 75 6c 64 20 61 6c 73 6f 20 62 65 20 72 65 five.sequences.should.also.be.re
9260 6a 65 63 74 65 64 20 6c 69 6b 65 20 6d 61 6c 66 6f 72 6d 65 64 20 20 20 20 20 20 20 20 20 20 20 jected.like.malformed...........
9280 7c 0a 55 54 46 2d 38 20 73 65 71 75 65 6e 63 65 73 20 61 6e 64 20 73 68 6f 75 6c 64 20 6e 6f 74 |.UTF-8.sequences.and.should.not
92a0 20 62 65 20 74 72 65 61 74 65 64 20 6c 69 6b 65 20 74 68 65 20 41 53 43 49 49 20 4e 55 4c 20 20 .be.treated.like.the.ASCII.NUL..
92c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 63 68 61 72 61 63 74 65 72 2e 20 20 20 20 ................|.character.....
92e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9320 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |...............................
9340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 33 2e 31 20 20 55 2b 30 30 30 30 20 ................|.4.3.1..U+0000.
9380 3d 20 63 30 20 38 30 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 22 ef bf bd 22 20 20 20 20 20 =.c0.80.............=."...".....
93a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
93c0 20 20 7c 0a 34 2e 33 2e 32 20 20 55 2b 30 30 30 30 20 3d 20 65 30 20 38 30 20 38 30 20 20 20 20 ..|.4.3.2..U+0000.=.e0.80.80....
93e0 20 20 20 20 20 20 3d 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......=."..."...................
9400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 33 2e 33 20 20 55 2b 30 ....................|.4.3.3..U+0
9420 30 30 30 20 3d 20 66 30 20 38 30 20 38 30 20 38 30 20 20 20 20 20 20 20 3d 20 22 ef bf bd 22 20 000.=.f0.80.80.80.......=."...".
9440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9460 20 20 20 20 20 20 7c 0a 34 2e 33 2e 34 20 20 55 2b 30 30 30 30 20 3d 20 66 38 20 38 30 20 38 30 ......|.4.3.4..U+0000.=.f8.80.80
9480 20 38 30 20 38 30 20 20 20 20 3d 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .80.80....=."..."...............
94a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 34 2e 33 2e 35 20 ........................|.4.3.5.
94c0 20 55 2b 30 30 30 30 20 3d 20 66 63 20 38 30 20 38 30 20 38 30 20 38 30 20 38 30 20 3d 20 22 ef .U+0000.=.fc.80.80.80.80.80.=.".
94e0 bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..".............................
9500 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........|.....................
9520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 20 20 49 ..........................|.5..I
9560 6c 6c 65 67 61 6c 20 63 6f 64 65 20 70 6f 73 69 74 69 6f 6e 73 20 20 20 20 20 20 20 20 20 20 20 llegal.code.positions...........
9580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
95a0 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........|.....................
95c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
95e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 54 68 65 20 ..........................|.The.
9600 66 6f 6c 6c 6f 77 69 6e 67 20 55 54 46 2d 38 20 73 65 71 75 65 6e 63 65 73 20 73 68 6f 75 6c 64 following.UTF-8.sequences.should
9620 20 62 65 20 72 65 6a 65 63 74 65 64 20 6c 69 6b 65 20 6d 61 6c 66 6f 72 6d 65 64 20 20 20 20 20 .be.rejected.like.malformed.....
9640 20 20 20 20 20 20 20 20 20 20 7c 0a 73 65 71 75 65 6e 63 65 73 2c 20 62 65 63 61 75 73 65 20 74 ..........|.sequences,.because.t
9660 68 65 79 20 6e 65 76 65 72 20 72 65 70 72 65 73 65 6e 74 20 76 61 6c 69 64 20 49 53 4f 20 31 30 hey.never.represent.valid.ISO.10
9680 36 34 36 20 63 68 61 72 61 63 74 65 72 73 20 61 6e 64 20 20 20 20 20 20 20 20 7c 0a 61 20 55 54 646.characters.and........|.a.UT
96a0 46 2d 38 20 64 65 63 6f 64 65 72 20 74 68 61 74 20 61 63 63 65 70 74 73 20 74 68 65 6d 20 6d 69 F-8.decoder.that.accepts.them.mi
96c0 67 68 74 20 69 6e 74 72 6f 64 75 63 65 20 73 65 63 75 72 69 74 79 20 70 72 6f 62 6c 65 6d 73 20 ght.introduce.security.problems.
96e0 20 20 20 20 20 20 20 20 20 20 7c 0a 63 6f 6d 70 61 72 61 62 6c 65 20 74 6f 20 6f 76 65 72 6c 6f ..........|.comparable.to.overlo
9700 6e 67 20 55 54 46 2d 38 20 73 65 71 75 65 6e 63 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 ng.UTF-8.sequences..............
9720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 ..........................|.....
9740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9780 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 31 20 53 69 6e 67 6c 65 20 55 54 46 2d 31 36 20 73 75 ..........|.5.1.Single.UTF-16.su
97a0 72 72 6f 67 61 74 65 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rrogates........................
97c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 ..........................|.....
97e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9820 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 31 2e 31 20 20 55 2b 44 38 30 30 20 3d 20 65 64 20 61 ..........|.5.1.1..U+D800.=.ed.a
9840 30 20 38 30 20 3d 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0.80.=."..."....................
9860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e ............................|.5.
9880 31 2e 32 20 20 55 2b 44 42 37 46 20 3d 20 65 64 20 61 64 20 62 66 20 3d 20 22 ef bf bd 22 20 20 1.2..U+DB7F.=.ed.ad.bf.=."..."..
98a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
98c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 31 2e 33 20 20 55 2b 44 42 38 30 20 3d 20 ..............|.5.1.3..U+DB80.=.
98e0 65 64 20 61 65 20 38 30 20 3d 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ed.ae.80.=."..."................
9900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9920 7c 0a 35 2e 31 2e 34 20 20 55 2b 44 42 46 46 20 3d 20 65 64 20 61 66 20 62 66 20 3d 20 22 ef bf |.5.1.4..U+DBFF.=.ed.af.bf.=."..
9940 bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."..............................
9960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 31 2e 35 20 20 55 2b 44 43 30 ..................|.5.1.5..U+DC0
9980 30 20 3d 20 65 64 20 62 30 20 38 30 20 3d 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 0.=.ed.b0.80.=."..."............
99a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
99c0 20 20 20 20 7c 0a 35 2e 31 2e 36 20 20 55 2b 44 46 38 30 20 3d 20 65 64 20 62 65 20 38 30 20 3d ....|.5.1.6..U+DF80.=.ed.be.80.=
99e0 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."..."..........................
9a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 31 2e 37 20 20 55 ......................|.5.1.7..U
9a20 2b 44 46 46 46 20 3d 20 65 64 20 62 66 20 62 66 20 3d 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 +DFFF.=.ed.bf.bf.=."..."........
9a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9a60 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
9a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 32 20 50 61 ........................|.5.2.Pa
9ac0 69 72 65 64 20 55 54 46 2d 31 36 20 73 75 72 72 6f 67 61 74 65 73 20 20 20 20 20 20 20 20 20 20 ired.UTF-16.surrogates..........
9ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9b00 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........|.......................
9b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 32 2e 31 20 ........................|.5.2.1.
9b60 20 55 2b 44 38 30 30 20 55 2b 44 43 30 30 20 3d 20 65 64 20 61 30 20 38 30 20 65 64 20 62 30 20 .U+D800.U+DC00.=.ed.a0.80.ed.b0.
9b80 38 30 20 3d 20 22 ef bf bd ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 80.=."......"...................
9ba0 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 32 2e 32 20 20 55 2b 44 38 30 30 20 55 2b 44 46 ............|.5.2.2..U+D800.U+DF
9bc0 46 46 20 3d 20 65 64 20 61 30 20 38 30 20 65 64 20 62 66 20 62 66 20 3d 20 22 ef bf bd ef bf bd FF.=.ed.a0.80.ed.bf.bf.=."......
9be0 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
9c00 7c 0a 35 2e 32 2e 33 20 20 55 2b 44 42 37 46 20 55 2b 44 43 30 30 20 3d 20 65 64 20 61 64 20 62 |.5.2.3..U+DB7F.U+DC00.=.ed.ad.b
9c20 66 20 65 64 20 62 30 20 38 30 20 3d 20 22 ef bf bd ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 f.ed.b0.80.=."......"...........
9c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 32 2e 34 20 20 55 2b 44 ....................|.5.2.4..U+D
9c60 42 37 46 20 55 2b 44 46 46 46 20 3d 20 65 64 20 61 64 20 62 66 20 65 64 20 62 66 20 62 66 20 3d B7F.U+DFFF.=.ed.ad.bf.ed.bf.bf.=
9c80 20 22 ef bf bd ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."......".......................
9ca0 20 20 20 20 20 20 20 20 7c 0a 35 2e 32 2e 35 20 20 55 2b 44 42 38 30 20 55 2b 44 43 30 30 20 3d ........|.5.2.5..U+DB80.U+DC00.=
9cc0 20 65 64 20 61 65 20 38 30 20 65 64 20 62 30 20 38 30 20 3d 20 22 ef bf bd ef bf bd 22 20 20 20 .ed.ae.80.ed.b0.80.=."......"...
9ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e ............................|.5.
9d00 32 2e 36 20 20 55 2b 44 42 38 30 20 55 2b 44 46 46 46 20 3d 20 65 64 20 61 65 20 38 30 20 65 64 2.6..U+DB80.U+DFFF.=.ed.ae.80.ed
9d20 20 62 66 20 62 66 20 3d 20 22 ef bf bd ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .bf.bf.=."......"...............
9d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 32 2e 37 20 20 55 2b 44 42 46 46 20 ................|.5.2.7..U+DBFF.
9d60 55 2b 44 43 30 30 20 3d 20 65 64 20 61 66 20 62 66 20 65 64 20 62 30 20 38 30 20 3d 20 22 ef bf U+DC00.=.ed.af.bf.ed.b0.80.=."..
9d80 bd ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."...........................
9da0 20 20 20 20 7c 0a 35 2e 32 2e 38 20 20 55 2b 44 42 46 46 20 55 2b 44 46 46 46 20 3d 20 65 64 20 ....|.5.2.8..U+DBFF.U+DFFF.=.ed.
9dc0 61 66 20 62 66 20 65 64 20 62 66 20 62 66 20 3d 20 22 ef bf bd ef bf bd 22 20 20 20 20 20 20 20 af.bf.ed.bf.bf.=."......".......
9de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 ........................|.......
9e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9e40 20 20 20 20 20 20 20 20 7c 0a 35 2e 33 20 4f 74 68 65 72 20 69 6c 6c 65 67 61 6c 20 63 6f 64 65 ........|.5.3.Other.illegal.code
9e60 20 70 6f 73 69 74 69 6f 6e 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .positions......................
9e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 ........................|.......
9ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9ee0 20 20 20 20 20 20 20 20 7c 0a 35 2e 33 2e 31 20 20 55 2b 46 46 46 45 20 3d 20 65 66 20 62 66 20 ........|.5.3.1..U+FFFE.=.ef.bf.
9f00 62 65 20 3d 20 22 ef bf bd 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 be.=."..."......................
9f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 35 2e 33 2e ..........................|.5.3.
9f40 32 20 20 55 2b 46 46 46 46 20 3d 20 65 66 20 62 66 20 62 66 20 3d 20 22 ef bf bd 22 20 20 20 20 2..U+FFFF.=.ef.bf.bf.=."..."....
9f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9f80 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............|...................
9fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 54 48 ............................|.TH
9fe0 45 20 45 4e 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E.END...........................
a000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
a020 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 23 72 65 73 65 74 0a ............|.#reset.