<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<flow:TextFlow xmlns:flow="http://ns.adobe.com/textLayout/2008" textAlign="start" fontFamily="Minion Pro" fontSize="16">I. Down the Rabbit-Hole<flow:p textAlign="center" fontSize="24">Chapter I</flow:p>
<flow:p textAlign="center" fontSize="24">Down the Rabbit-Hole</flow:p>
<flow:p>Alice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it, “and what is the use of a book,” thought Alice “without pictures or conversation?”</flow:p>
<flow:p>So she was considering in her own mind (as well as she could, for the hot day made her feel very sleepy and stupid), whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when suddenly a White Rabbit with pink eyes ran close by her.</flow:p>
<flow:p>There was nothing so <flow:span fontStyle="italic">very</flow:span> remarkable in that; nor did Alice think it so <flow:span fontStyle="italic">very</flow:span> much out of the way to hear the Rabbit say to itself, “Oh dear! Oh dear! I shall be late!” (when she thought it over afterwards, it occurred to her that she ought to have wondered at this, but at the time it all seemed quite natural); but when the Rabbit actually <flow:span fontStyle="italic">took a watch out of its waistcoat-pocket</flow:span> , and looked at it, and then hurried on, Alice started to her feet, for it flashed across her mind that she had never before seen a rabbit with either a waistcoat-pocket, or a watch to take out of it, and burning with curiosity, she ran across the field after it, and fortunately was just in time to see it pop down a large rabbit-hole under the hedge.</flow:p>
<flow:p>In another moment down went Alice after it, never once considering how in the world she was to get out again.</flow:p>
<flow:p>The rabbit-hole went straight on like a tunnel for some way, and then dipped suddenly down, so suddenly that Alice had not a moment to think about stopping herself before she found herself falling down a very deep well.</flow:p>
<flow:p>Either the well was very deep, or she fell very slowly, for she had plenty of time as she went down to look about her and to wonder what was going to happen next. First, she tried to look down and make out what she was coming to, but it was too dark to see anything; then she looked at the sides of the well, and noticed that they were filled with cupboards and bookshelves; here and there she saw maps and pictures hung upon pegs. She took down a jar from one of the shelves as she passed; it was labelled “Orange Marmalade”, but to her great disappointment it was empty: she did not like to drop the jar for fear of killing somebody, so managed to put it into one of the cupboards as she fell past it.</flow:p>
<flow:p>“Well!” thought Alice to herself, “after such a fall as this, I shall think nothing of tumbling down stairs! How brave they'll all think me at home! Why, I wouldn't say anything about it, even if I fell off the top of the house!” (Which was very likely true.)</flow:p>
<flow:p>Down, down, down. Would the fall <flow:span fontStyle="italic">never</flow:span> come to an end! “I wonder how many miles I've fallen by this time?” she said aloud. “I must be getting somewhere near the centre of the earth. Let me see: that would be four thousand miles down, I think—” (for, you see, Alice had learnt several things of this sort in her lessons in the schoolroom, and though this was not a <flow:span fontStyle="italic">very</flow:span> good opportunity for showing off her knowledge, as there was no one to listen to her, still it was good practice to say it over) “—yes, that's about the right distance—but then I wonder what Latitude or Longitude I've got to?” (Alice had no idea what Latitude was, or Longitude either, but thought they were nice grand words to say.)</flow:p>
<flow:p>Presently she began again. “I wonder if I shall fall right <flow:span fontStyle="italic">through</flow:span> the earth! How funny it'll seem to come out among the people that walk with their heads downward! The Antipathies, I think—” (she was rather glad there Was no one listening, this time, as it didn't sound at all the right word) “—but I shall have to ask them what the name of the country is, you know. Please, Ma'am, is this New Zealand or Australia?” (and she tried to curtsey as she spoke—fancy <flow:span fontStyle="italic">curtseying</flow:span> as you're falling through the air! Do you think you could manage it?) “And what an ignorant little girl she'll think me for asking! No, it'll never do to ask: perhaps I shall see it written up somewhere.”</flow:p>
<flow:p>Down, down, down. There was nothing else to do, so Alice soon began talking again. “Dinah'll miss me very much to-night, I should think!” (Dinah was the cat.) “I hope they'll remember her saucer of milk at tea-time. Dinah my dear! I wish you were down here with me! There are no mice in the air, I'm afraid, but you might catch a bat, and that's very like a mouse, you know. But do cats eat bats, I wonder?” And here Alice began to get rather sleepy, and went on saying to herself, in a dreamy sort of way, “Do cats eat bats? Do cats eat bats?” and sometimes, “Do bats eat cats?” for, you see, as she couldn't answer either question, it didn't much matter which way she put it. She felt that she was dozing off, and had just begun to dream that she was walking hand in hand with Dinah, and saying to her very earnestly, “Now, Dinah, tell me the truth: did you ever eat a bat?” when suddenly, thump! thump! down she came upon a heap of sticks and dry leaves, and the fall was over.</flow:p>
<flow:p>Alice was not a bit hurt, and she jumped up on to her feet in a moment: she looked up, but it was all dark overhead; before her was another long passage, and the White Rabbit was still in sight, hurrying down it. There was not a moment to be lost: away went Alice like the wind, and was just in time to hear it say, as it turned a corner, “Oh my ears and whiskers, how late it's getting!” She was close behind it when she turned the corner, but the Rabbit was no longer to be seen: she found herself in a long, low hall, which was lit up by a row of lamps hanging from the roof.</flow:p>
<flow:p>There were doors all round the hall, but they were all locked; and when Alice had been all the way down one side and up the other, trying every door, she walked sadly down the middle, wondering how she was ever to get out again.</flow:p>
<flow:p>Suddenly she came upon a little three-legged table, all made of solid glass; there was nothing on it except a tiny golden key, and Alice's first thought was that it might belong to one of the doors of the hall; but, alas! either the locks were too large, or the key was too small, but at any rate it would not open any of them. However, on the second time round, she came upon a low curtain she had not noticed before, and behind it was a little door about fifteen inches high: she tried the little golden key in the lock, and to her great delight it fitted!</flow:p>
<flow:p>Alice opened the door and found that it led into a small passage, not much larger than a rat-hole: she knelt down and looked along the passage into the loveliest garden you ever saw. How she longed to get out of that dark hall, and wander about among those beds of bright flowers and those cool fountains, but she could not even get her head though the doorway; “and even if my head <flow:span fontStyle="italic">would</flow:span> go through,” thought poor Alice, “it would be of very little use without my shoulders. Oh, how I wish I could shut up like a telescope! I think I could, if I only know how to begin.” For, you see, so many out-of-the-way things had happened lately, that Alice had begun to think that very few things indeed were really impossible.</flow:p>
<flow:p>There seemed to be no use in waiting by the little door, so she went back to the table, half hoping she might find another key on it, or at any rate a book of rules for shutting people up like telescopes: this time she found a little bottle on it, (“which certainly was not here before,” said Alice,) and round the neck of the bottle was a paper label, with the words “DRINK ME” beautifully printed on it in large letters.</flow:p>
<flow:p>It was all very well to say “Drink me,” but the wise little Alice was not going to do <flow:span fontStyle="italic">that</flow:span> in a hurry. “No, I'll look first,” she said, “and see whether it's marked <flow:span fontStyle="italic">‘poison’</flow:span> or not”; for she had read several nice little histories about children who had got burnt, and eaten up by wild beasts and other unpleasant things, all because they <flow:span fontStyle="italic">would</flow:span> not remember the simple rules their friends had taught them: such as, that a red-hot poker will burn you if you hold it too long; and that if you cut your finger <flow:span fontStyle="italic">very</flow:span> deeply with a knife, it usually bleeds; and she had never forgotten that, if you drink much from a bottle marked “poison,” it is almost certain to disagree with you, sooner or later.</flow:p>
<flow:p>However, this bottle was <flow:span fontStyle="italic">not</flow:span> marked “poison”, so Alice ventured to taste it, and finding it very nice, (it had, in fact, a sort of mixed flavour of cherry-tart, custard, pine-apple, roast turkey, toffee, and hot buttered toast,) she very soon finished it off.</flow:p>
<flow:p>“What a curious feeling!” said Alice; “I must be shutting up like a telescope.”</flow:p>
<flow:p>And so it was indeed: she was now only ten inches high, and her face brightened up at the thought that she was now the right size for going through the little door into that lovely garden. First, however, she waited for a few minutes to see if she was going to shrink any further: she felt a little nervous about this; “for it might end, you know,” said Alice to herself, “in my going out altogether, like a candle. I wonder what I should be like then?” And she tried to fancy what the flame of a candle is like after the candle is blown out, for she could not remember ever having seen such a thing.</flow:p>
<flow:p>After a while, finding that nothing more happened, she decided on going into the garden at once; but, alas for poor Alice! when she got to the door, she found she had forgotten the little golden key, and when she went back to the table for it, she found she could not possibly reach it: she could see it quite plainly through the glass, and she tried her best to climb up one of the legs of the table, but it was too slippery; and when she had tired herself out with trying, the poor little thing sat down and cried.</flow:p>
<flow:p>“Come, there's no use in crying like that!” said Alice to herself, rather sharply; “I advise you to leave off this minute!” She generally gave herself very good advice, (though she very seldom followed it), and sometimes she scolded herself so severely as to bring tears into her eyes; and once she remembered trying to box her own ears for having cheated herself in a game of croquet she was playing against herself, for this curious child was very fond of pretending to be two people. “But it's no use now,” thought poor Alice, “to pretend to be two people! Why, there's hardly enough of me left to make <flow:span fontStyle="italic">one</flow:span> respectable person!”</flow:p>
<flow:p>Soon her eye fell on a little glass box that was lying under the table: she opened it, and found in it a very small cake, on which the words “EAT ME” were beautifully marked in currants. “Well, I'll eat it,” said Alice, “and if it makes me grow larger, I can reach the key; and if it makes me grow smaller, I can creep under the door; so either way I'll get into the garden, and I don't care which happens!”</flow:p>
<flow:p>She ate a little bit, and said anxiously to herself, “Which way? Which way?”, holding her hand on the top of her head to feel which way it was growing, and she was quite surprised to find that she remained the same size: to be sure, this generally happens when one eats cake, but Alice had got so much into the way of expecting nothing but out-of-the-way things to happen, that it seemed quite dull and stupid for life to go on in the common way.</flow:p>
<flow:p>So she set to work, and very soon finished off the cake.</flow:p>II. The Pool of Tears<flow:p textAlign="center" fontSize="24">Chapter II</flow:p>
<flow:p textAlign="center" fontSize="24">The Pool of Tears</flow:p>
<flow:p>“Curiouser and curiouser!” cried Alice (she was so much surprised, that for the moment she quite forgot how to speak good English); “now I'm opening out like the largest telescope that ever was! Good-bye, feet!” (for when she looked down at her feet, they seemed to be almost out of sight, they were getting so far off). “Oh, my poor little feet, I wonder who will put on your shoes and stockings for you now, dears? I'm sure <flow:span fontStyle="italic">I</flow:span> shan't be able! I shall be a great deal too far off to trouble myself about you: you must manage the best way you can; —but I must be kind to them,” thought Alice, “or perhaps they won't walk the way I want to go! Let me see: I'll give them a new pair of boots every Christmas.”</flow:p>
<flow:p>And she went on planning to herself how she would manage it. “They must go by the carrier,” she thought; “and how funny it'll seem, sending presents to one's own feet! And how odd the directions will look!</flow:p>
<flow:p>Oh dear, what nonsense I'm talking!”</flow:p>
<flow:p>Just then her head struck against the roof of the hall: in fact she was now more than nine feet high, and she at once took up the little golden key and hurried off to the garden door.</flow:p>
<flow:p>Poor Alice! It was as much as she could do, lying down on one side, to look through into the garden with one eye; but to get through was more hopeless than ever: she sat down and began to cry again.</flow:p>
<flow:p>“You ought to be ashamed of yourself,” said Alice, “a great girl like you,” (she might well say this), “to go on crying in this way! Stop this moment, I tell you!” But she went on all the same, shedding gallons of tears, until there was a large pool all round her, about four inches deep and reaching half down the hall.</flow:p>
<flow:p>After a time she heard a little pattering of feet in the distance, and she hastily dried her eyes to see what was coming. It was the White Rabbit returning, splendidly dressed, with a pair of white kid gloves in one hand and a large fan in the other: he came trotting along in a great hurry, muttering to himself as he came, “Oh! the Duchess, the Duchess! Oh! won't she be savage if I've kept her waiting!” Alice felt so desperate that she was ready to ask help of any one; so, when the Rabbit came near her, she began, in a low, timid voice, “If you please, sir—” The Rabbit started violently, dropped the white kid gloves and the fan, and skurried away into the darkness as hard as he could go.</flow:p>
<flow:p>Alice took up the fan and gloves, and, as the hall was very hot, she kept fanning herself all the time she went on talking: “Dear, dear! How queer everything is to-day! And yesterday things went on just as usual. I wonder if I've been changed in the night? Let me think: was I the same when I got up this morning? I almost think I can remember feeling a little different. But if I'm not the same, the next question is, Who in the world am I? Ah, That's the great puzzle!” And she began thinking over all the children she knew that were of the same age as herself, to see if she could have been changed for any of them.</flow:p>
<flow:p>“I'm sure I'm not Ada,” she said, “for her hair goes in such long ringlets, and mine doesn't go in ringlets at all; and I'm sure I can't be Mabel, for I know all sorts of things, and she, oh! she knows such a very little! Besides, SHE'S she, and I'm I, and—oh dear, how puzzling it all is! I'll try if I know all the things I used to know. Let me see: four times five is twelve, and four times six is thirteen, and four times seven is—oh dear! I shall never get to twenty at that rate! However, the Multiplication Table doesn't signify: let's try Geography. London is the capital of Paris, and Paris is the capital of Rome, and Rome—no, That's all wrong, I'm certain! I must have been changed for Mabel! I'll try and say ‘How doth the little—’” and she crossed her hands on her lap as if she were saying lessons, and began to repeat it, but her voice sounded hoarse and strange, and the words did not come the same as they used to do:—</flow:p>
<flow:p>“I'm sure those are not the right words,” said poor Alice, and her eyes filled with tears again as she went on, “I must be Mabel after all, and I shall have to go and live in that poky little house, and have next to no toys to play with, and oh! ever so many lessons to learn! No, I've made up my mind about it; if I'm Mabel, I'll stay down here! It'll be no use their putting their heads down and saying ‘Come up again, dear!’ I shall only look up and say ‘Who am I then? Tell me that first, and then, if I like being that person, I'll come up: if not, I'll stay down here till I'm somebody else’—but, oh dear!” cried Alice, with a sudden burst of tears, “I do wish they <flow:span fontStyle="italic">would</flow:span> put their heads down! I am so Very tired of being all alone here!”</flow:p>
<flow:p>As she said this she looked down at her hands, and was surprised to see that she had put on one of the Rabbit's little white kid gloves while she was talking. “How Can I have done that?” she thought. “I must be growing small again.” She got up and went to the table to measure herself by it, and found that, as nearly as she could guess, she was now about two feet high, and was going on shrinking rapidly: she soon found out that the cause of this was the fan she was holding, and she dropped it hastily, just in time to avoid shrinking away altogether.</flow:p>
<flow:p>“That Was a narrow escape!” said Alice, a good deal frightened at the sudden change, but very glad to find herself still in existence; “and now for the garden!” and she ran with all speed back to the little door: but, alas! the little door was shut again, and the little golden key was lying on the glass table as before, “and things are worse than ever,” thought the poor child, “for I never was so small as this before, never! And I declare it's too bad, that it is!”</flow:p>
<flow:p>As she said these words her foot slipped, and in another moment, splash! she was up to her chin in salt water. Her first idea was that she had somehow fallen into the sea, “and in that case I can go back by railway,” she said to herself. (Alice had been to the seaside once in her life, and had come to the general conclusion, that wherever you go to on the English coast you find a number of bathing machines in the sea, some children digging in the sand with wooden spades, then a row of lodging houses, and behind them a railway station.) However, she soon made out that she was in the pool of tears which she had wept when she was nine feet high.</flow:p>
<flow:p>“I wish I hadn't cried so much!” said Alice, as she swam about, trying to find her way out. “I shall be punished for it now, I suppose, by being drowned in my own tears! That Will be a queer thing, to be sure! However, everything is queer to-day.”</flow:p>
<flow:p>Just then she heard something splashing about in the pool a little way off, and she swam nearer to make out what it was: at first she thought it must be a walrus or hippopotamus, but then she remembered how small she was now, and she soon made out that it was only a mouse that had slipped in like herself.</flow:p>
<flow:p>“Would it be of any use, now,” thought Alice, “to speak to this mouse? Everything is so out-of-the-way down here, that I should think very likely it can talk: at any rate, there's no harm in trying.” So she began: “O Mouse, do you know the way out of this pool? I am very tired of swimming about here, O Mouse!” (Alice thought this must be the right way of speaking to a mouse: she had never done such a thing before, but she remembered having seen in her brother's Latin Grammar, “A mouse—of a mouse—to a mouse—a mouse—O mouse!” The Mouse looked at her rather inquisitively, and seemed to her to wink with one of its little eyes, but it said nothing.</flow:p>
<flow:p>“Perhaps it doesn't understand English,” thought Alice; “I daresay it's a French mouse, come over with William the Conqueror.” (For, with all her knowledge of history, Alice had no very clear notion how long ago anything had happened.) So she began again: “Où est ma chatte?” which was the first sentence in her French lesson-book. The Mouse gave a sudden leap out of the water, and seemed to quiver all over with fright. “Oh, I beg your pardon!” cried Alice hastily, afraid that she had hurt the poor animal's feelings. “I quite forgot you didn't like cats.”</flow:p>
<flow:p>“Not like cats!” cried the Mouse, in a shrill, passionate voice. “Would You like cats if you were me?”</flow:p>
<flow:p>“Well, perhaps not,” said Alice in a soothing tone: “don't be angry about it. And yet I wish I could show you our cat Dinah: I think you'd take a fancy to cats if you could only see her. She is such a dear quiet thing,” Alice went on, half to herself, as she swam lazily about in the pool, “and she sits purring so nicely by the fire, licking her paws and washing her face—and she is such a nice soft thing to nurse—and she's such a capital one for catching mice—oh, I beg your pardon!” cried Alice again, for this time the Mouse was bristling all over, and she felt certain it must be really offended. “We won't talk about her any more if you'd rather not.”</flow:p>
<flow:p>“We indeed!” cried the Mouse, who was trembling down to the end of his tail. “As if I would talk on such a subject! Our family always Hated cats: nasty, low, vulgar things! Don't let me hear the name again!”</flow:p>
<flow:p>“I won't indeed!” said Alice, in a great hurry to change the subject of conversation. “Are you—are you fond—of—of dogs?” The Mouse did not answer, so Alice went on eagerly: “There is such a nice little dog near our house I should like to show you! A little bright-eyed terrier, you know, with oh, such long curly brown hair! And it'll fetch things when you throw them, and it'll sit up and beg for its dinner, and all sorts of things—I can't remember half of them—and it belongs to a farmer, you know, and he says it's so useful, it's worth a hundred pounds! He says it kills all the rats and—oh dear!” cried Alice in a sorrowful tone, “I'm afraid I've offended it again!” For the Mouse was swimming away from her as hard as it could go, and making quite a commotion in the pool as it went.</flow:p>
<flow:p>So she called softly after it, “Mouse dear! Do come back again, and we won't talk about cats or dogs either, if you don't like them!” When the Mouse heard this, it turned round and swam slowly back to her: its face was quite pale (with passion, Alice thought), and it said in a low trembling voice, “Let us get to the shore, and then I'll tell you my history, and you'll understand why it is I hate cats and dogs.”</flow:p>
<flow:p>It was high time to go, for the pool was getting quite crowded with the birds and animals that had fallen into it: there were a Duck and a Dodo, a Lory and an Eaglet, and several other curious creatures. Alice led the way, and the whole party swam to the shore.</flow:p>III. A Caucus-Race and a Long Tale<flow:p textAlign="center" fontSize="24">Chapter III</flow:p>
<flow:p textAlign="center" fontSize="24">A Caucus-Race and a Long Tale</flow:p>
<flow:p>They were indeed a queer-looking party that assembled on the bank—the birds with draggled feathers, the animals with their fur clinging close to them, and all dripping wet, cross, and uncomfortable.</flow:p>
<flow:p>The first question of course was, how to get dry again: they had a consultation about this, and after a few minutes it seemed quite natural to Alice to find herself talking familiarly with them, as if she had known them all her life. Indeed, she had quite a long argument with the Lory, who at last turned sulky, and would only say, “I am older than you, and must know better”; and this Alice would not allow without knowing how old it was, and, as the Lory positively refused to tell its age, there was no more to be said.</flow:p>
<flow:p>At last the Mouse, who seemed to be a person of authority among them, called out, “Sit down, all of you, and listen to me! I' <flow:span fontStyle="italic">ll</flow:span> soon make you dry enough!” They all sat down at once, in a large ring, with the Mouse in the middle. Alice kept her eyes anxiously fixed on it, for she felt sure she would catch a bad cold if she did not get dry very soon.</flow:p>
<flow:p>“Ahem!” said the Mouse with an important air, “are you all ready? This is the driest thing I know. Silence all round, if you please! ‘William the Conqueror, whose cause was favoured by the pope, was soon submitted to by the English, who wanted leaders, and had been of late much accustomed to usurpation and conquest. Edwin and Morcar, the earls of Mercia and Northumbria—’”</flow:p>
<flow:p>“Ugh!” said the Lory, with a shiver.</flow:p>
<flow:p>“I beg your pardon!” said the Mouse, frowning, but very politely: “Did you speak?”</flow:p>
<flow:p>“Not I!” said the Lory hastily.</flow:p>
<flow:p>“I thought you did,” said the Mouse. “—I proceed. ‘Edwin and Morcar, the earls of Mercia and Northumbria, declared for him: and even Stigand, the patriotic archbishop of Canterbury, found it advisable—’”</flow:p>
<flow:p>“Found <flow:span fontStyle="italic">what</flow:span> ?” said the Duck.</flow:p>
<flow:p>“Found It,” the Mouse replied rather crossly: “of course you know what ‘it’ means.”</flow:p>
<flow:p>“I know what ‘it’ means well enough, when <flow:span fontStyle="italic">I</flow:span> find a thing,” said the Duck: “it's generally a frog or a worm. The question is, what did the archbishop find?”</flow:p>
<flow:p>The Mouse did not notice this question, but hurriedly went on, “‘—found it advisable to go with Edgar Atheling to meet William and offer him the crown. William's conduct at first was moderate. But the insolence of his Normans—’ How are you getting on now, my dear?” it continued, turning to Alice as it spoke.</flow:p>
<flow:p>“As wet as ever,” said Alice in a melancholy tone: “it doesn't seem to dry me at all.”</flow:p>
<flow:p>“In that case,” said the Dodo solemnly, rising to its feet, “I move that the meeting adjourn, for the immediate adoption of more energetic remedies—”</flow:p>
<flow:p>“Speak English!” said the Eaglet. “I don't know the meaning of half those long words, and, what's more, I don't believe you do either!” And the Eaglet bent down its head to hide a smile: some of the other birds tittered audibly.</flow:p>
<flow:p>“What I was going to say,” said the Dodo in an offended tone, “was, that the best thing to get us dry would be a Caucus-race.”</flow:p>
<flow:p>“What Is a Caucus-race?” said Alice; not that she wanted much to know, but the Dodo had paused as if it thought that <flow:span fontStyle="italic">somebody</flow:span> ought to speak, and no one else seemed inclined to say anything.</flow:p>
<flow:p>“Why,” said the Dodo, “the best way to explain it is to do it.” (And, as you might like to try the thing yourself, some winter day, I will tell you how the Dodo managed it.)</flow:p>
<flow:p>First it marked out a race-course, in a sort of circle, (“the exact shape doesn't matter,” it said,) and then all the party were placed along the course, here and there. There was no “One, two, three, and away,” but they began running when they liked, and left off when they liked, so that it was not easy to know when the race was over. However, when they had been running half an hour or so, and were quite dry again, the Dodo suddenly called out “The race is over!” and they all crowded round it, panting, and asking, “But who has won?”</flow:p>
<flow:p>This question the Dodo could not answer without a great deal of thought, and it sat for a long time with one finger pressed upon its forehead (the position in which you usually see Shakespeare, in the pictures of him), while the rest waited in silence. At last the Dodo said, “ <flow:span fontStyle="italic">everybody</flow:span> has won, and <flow:span fontStyle="italic">all</flow:span> must have prizes.”</flow:p>
<flow:p>“But who is to give the prizes?” quite a chorus of voices asked.</flow:p>
<flow:p>“Why, <flow:span fontStyle="italic">she</flow:span> , of course,” said the Dodo, pointing to Alice with one finger; and the whole party at once crowded round her, calling out in a confused way, “Prizes! Prizes!”</flow:p>
<flow:p>Alice had no idea what to do, and in despair she put her hand in her pocket, and pulled out a box of comfits, (luckily the salt water had not got into it), and handed them round as prizes. There was exactly one a-piece all round.</flow:p>
<flow:p>“But she must have a prize herself, you know,” said the Mouse.</flow:p>
<flow:p>“Of course,” the Dodo replied very gravely. “What else have you got in your pocket?” he went on, turning to Alice.</flow:p>
<flow:p>“Only a thimble,” said Alice sadly.</flow:p>
<flow:p>“Hand it over here,” said the Dodo.</flow:p>
<flow:p>Then they all crowded round her once more, while the Dodo solemnly presented the thimble, saying “We beg your acceptance of this elegant thimble”; and, when it had finished this short speech, they all cheered.</flow:p>
<flow:p>Alice thought the whole thing very absurd, but they all looked so grave that she did not dare to laugh; and, as she could not think of anything to say, she simply bowed, and took the thimble, looking as solemn as she could.</flow:p>
<flow:p>The next thing was to eat the comfits: this caused some noise and confusion, as the large birds complained that they could not taste theirs, and the small ones choked and had to be patted on the back. However, it was over at last, and they sat down again in a ring, and begged the Mouse to tell them something more.</flow:p>
<flow:p>“You promised to tell me your history, you know,” said Alice, “and why it is you hate—C and D,” she added in a whisper, half afraid that it would be offended again.</flow:p>
<flow:p>“Mine is a long and a sad tale!” said the Mouse, turning to Alice, and sighing.</flow:p>
<flow:p>“It <flow:span fontStyle="italic">is</flow:span> a long tail, certainly,” said Alice, looking down with wonder at the Mouse's tail; “but why do you call it sad?” And she kept on puzzling about it while the Mouse was speaking, so that her idea of the tale was something like this:—</flow:p>
<flow:p>“Fury said toa mouse, Thathe met in thehouse, ‘Letus both goto law: <flow:span fontStyle="italic">I</flow:span> will prose-cute <flow:span fontStyle="italic">you</flow:span> .—Come, I'lltake no de-nial; Wemust havethe trial;For reallythis morn-ing I'venothingto do.’Said themouse tothe cur,‘Such atrial, dearsir, Withno juryor judge,wouldbe wast-ing ourbreath.’‘I'll bejudge,I'll bejury,’saidcun-ningoldFury:‘I'lltrythewholecause,andcon-demnyou todeath.’”</flow:p>
<flow:p>“You are not attending!” said the Mouse to Alice severely. “What are you thinking of?”</flow:p>
<flow:p>“I beg your pardon,” said Alice very humbly: “you had got to the fifth bend, I think?”</flow:p>
<flow:p>“I had <flow:span fontStyle="italic">not!”</flow:span> cried the Mouse, sharply and very angrily.</flow:p>
<flow:p>“A knot!” said Alice, always ready to make herself useful, and looking anxiously about her. “Oh, do let me help to undo it!”</flow:p>
<flow:p>“I shall do nothing of the sort,” said the Mouse, getting up and walking away. “You insult me by talking such nonsense!”</flow:p>
<flow:p>“I didn't mean it!” pleaded poor Alice. “But you're so easily offended, you know!”</flow:p>
<flow:p>The Mouse only growled in reply.</flow:p>
<flow:p>“Please come back and finish your story!” Alice called after it; and the others all joined in chorus, “Yes, please do!” but the Mouse only shook its head impatiently, and walked a little quicker.</flow:p>
<flow:p>“What a pity it wouldn't stay!” sighed the Lory, as soon as it was quite out of sight; and an old Crab took the opportunity of saying to her daughter “Ah, my dear! Let this be a lesson to you never to lose <flow:span fontStyle="italic">your</flow:span> temper!” “Hold your tongue, Ma!” said the young Crab, a little snappishly. “You're enough to try the patience of an oyster!”</flow:p>
<flow:p>“I wish I had our Dinah here, I know I do!” said Alice aloud, addressing nobody in particular. “ <flow:span fontStyle="italic">She'd</flow:span> soon fetch it back!”</flow:p>
<flow:p>“And who is Dinah, if I might venture to ask the question?” said the Lory.</flow:p>
<flow:p>Alice replied eagerly, for she was always ready to talk about her pet: “Dinah's our cat. And she's such a capital one for catching mice you can't think! And oh, I wish you could see her after the birds! Why, she'll eat a little bird as soon as look at it!”</flow:p>
<flow:p>This speech caused a remarkable sensation among the party. Some of the birds hurried off at once: one old Magpie began wrapping itself up very carefully, remarking, “I really must be getting home; the night-air doesn't suit my throat!” and a Canary called out in a trembling voice to its children, “Come away, my dears! It's high time you were all in bed!” On various pretexts they all moved off, and Alice was soon left alone.</flow:p>
<flow:p>“I wish I hadn't mentioned Dinah!” she said to herself in a melancholy tone. “Nobody seems to like her, down here, and I'm sure she's the best cat in the world! Oh, my dear Dinah! I wonder if I shall ever see you any more!” And here poor Alice began to cry again, for she felt very lonely and low-spirited. In a little while, however, she again heard a little pattering of footsteps in the distance, and she looked up eagerly, half hoping that the Mouse had changed his mind, and was coming back to finish his story.</flow:p>IV. The Rabbit Sends in a Little Bill<flow:p textAlign="center" fontSize="24">Chapter IV</flow:p>
<flow:p textAlign="center" fontSize="24">The Rabbit Sends in a Little Bill</flow:p>
<flow:p>It was the White Rabbit, trotting slowly back again, and looking anxiously about as it went, as if it had lost something; and she heard it muttering to itself “The Duchess! The Duchess! Oh my dear paws! Oh my fur and whiskers! She'll get me executed, as sure as ferrets are ferrets! Where <flow:span fontStyle="italic">can</flow:span> I have dropped them, I wonder?” Alice guessed in a moment that it was looking for the fan and the pair of white kid gloves, and she very good-naturedly began hunting about for them, but they were nowhere to be seen—everything seemed to have changed since her swim in the pool, and the great hall, with the glass table and the little door, had vanished completely.</flow:p>
<flow:p>Very soon the Rabbit noticed Alice, as she went hunting about, and called out to her in an angry tone, “Why, Mary Ann, what <flow:span fontStyle="italic">are</flow:span> you doing out here? Run home this moment, and fetch me a pair of gloves and a fan! Quick, now!” And Alice was so much frightened that she ran off at once in the direction it pointed to, without trying to explain the mistake it had made.</flow:p>
<flow:p>“He took me for his housemaid,” she said to herself as she ran. “How surprised he'll be when he finds out who I am! But I'd better take him his fan and gloves—that is, if I can find them.” As she said this, she came upon a neat little house, on the door of which was a bright brass plate with the name “W. RABBIT” engraved upon it. She went in without knocking, and hurried upstairs, in great fear lest she should meet the real Mary Ann, and be turned out of the house before she had found the fan and gloves.</flow:p>
<flow:p>“How queer it seems,” Alice said to herself, “to be going messages for a rabbit! I suppose Dinah'll be sending me on messages next!” And she began fancying the sort of thing that would happen: “‘Miss Alice! Come here directly, and get ready for your walk!’ ‘Coming in a minute, nurse! But I've got to see that the mouse doesn't get out.’ Only I don't think,” Alice went on, “that they'd let Dinah stop in the house if it began ordering people about like that!”</flow:p>
<flow:p>By this time she had found her way into a tidy little room with a table in the window, and on it (as she had hoped) a fan and two or three pairs of tiny white kid gloves: she took up the fan and a pair of the gloves, and was just going to leave the room, when her eye fell upon a little bottle that stood near the looking- glass. There was no label this time with the words “DRINK ME,” but nevertheless she uncorked it and put it to her lips. “I know <flow:span fontStyle="italic">something</flow:span> interesting is sure to happen,” she said to herself, “whenever I eat or drink anything; so I'll just see what this bottle does. I do hope it'll make me grow large again, for really I'm quite tired of being such a tiny little thing!”</flow:p>
<flow:p>It did so indeed, and much sooner than she had expected: before she had drunk half the bottle, she found her head pressing against the ceiling, and had to stoop to save her neck from being broken. She hastily put down the bottle, saying to herself “That's quite enough—I hope I shan't grow any more—As it is, I can't get out at the door—I do wish I hadn't drunk quite so much!”</flow:p>
<flow:p>Alas! it was too late to wish that! She went on growing, and growing, and very soon had to kneel down on the floor: in another minute there was not even room for this, and she tried the effect of lying down with one elbow against the door, and the other arm curled round her head. Still she went on growing, and, as a last resource, she put one arm out of the window, and one foot up the chimney, and said to herself “Now I can do no more, whatever happens. What <flow:span fontStyle="italic">will</flow:span> become of me?”</flow:p>
<flow:p>Luckily for Alice, the little magic bottle had now had its full effect, and she grew no larger: still it was very uncomfortable, and, as there seemed to be no sort of chance of her ever getting out of the room again, no wonder she felt unhappy.</flow:p>
<flow:p>“It was much pleasanter at home,” thought poor Alice, “when one wasn't always growing larger and smaller, and being ordered about by mice and rabbits. I almost wish I hadn't gone down that rabbit-hole—and yet—and yet—it's rather curious, you know, this sort of life! I do wonder what Can have happened to me! When I used to read fairy-tales, I fancied that kind of thing never happened, and now here I am in the middle of one! There ought to be a book written about me, that there ought! And when I grow up, I'll write one—but I'm grown up now,” she added in a sorrowful tone; “at least there's no room to grow up any more <flow:span fontStyle="italic">here</flow:span> .”</flow:p>
<flow:p>“But then,” thought Alice, “shall I <flow:span fontStyle="italic">never</flow:span> get any older than I am now? That'll be a comfort, one way—never to be an old woman— but then—always to have lessons to learn! Oh, I shouldn't like <flow:span fontStyle="italic">that</flow:span> !”</flow:p>
<flow:p>“Oh, you foolish Alice!” she answered herself. “How can you learn lessons in here? Why, there's hardly room for <flow:span fontStyle="italic">you</flow:span> , and no room at all for any lesson-books!”</flow:p>
<flow:p>And so she went on, taking first one side and then the other, and making quite a conversation of it altogether; but after a few minutes she heard a voice outside, and stopped to listen.</flow:p>
<flow:p>“Mary Ann! Mary Ann!” said the voice. “Fetch me my gloves this moment!” Then came a little pattering of feet on the stairs. Alice knew it was the Rabbit coming to look for her, and she trembled till she shook the house, quite forgetting that she was now about a thousand times as large as the Rabbit, and had no reason to be afraid of it.</flow:p>
<flow:p>Presently the Rabbit came up to the door, and tried to open it; but, as the door opened inwards, and Alice's elbow was pressed hard against it, that attempt proved a failure. Alice heard it say to itself “Then I'll go round and get in at the window.”</flow:p>
<flow:p>“ <flow:span fontStyle="italic">That</flow:span> you won't” thought Alice, and, after waiting till she fancied she heard the Rabbit just under the window, she suddenly spread out her hand, and made a snatch in the air. She did not get hold of anything, but she heard a little shriek and a fall, and a crash of broken glass, from which she concluded that it was just possible it had fallen into a cucumber-frame, or something of the sort.</flow:p>
<flow:p>Next came an angry voice—the Rabbit's—“Pat! Pat! Where are you?” And then a voice she had never heard before, “Sure then I'm here! Digging for apples, yer honour!”</flow:p>
<flow:p>“Digging for apples, indeed!” said the Rabbit angrily. “Here! Come and help me out of <flow:span fontStyle="italic">this</flow:span> !” (Sounds of more broken glass.)</flow:p>
<flow:p>“Now tell me, Pat, what's that in the window?”</flow:p>
<flow:p>“Sure, it's an arm, yer honour!” (He pronounced it “arrum.”)</flow:p>
<flow:p>“An arm, you goose! Who ever saw one that size? Why, it fills the whole window!”</flow:p>
<flow:p>“Sure, it does, yer honour: but it's an arm for all that.”</flow:p>
<flow:p>“Well, it's got no business there, at any rate: go and take it away!”</flow:p>
<flow:p>There was a long silence after this, and Alice could only hear whispers now and then; such as, “Sure, I don't like it, yer honour, at all, at all!” “Do as I tell you, you coward!” and at last she spread out her hand again, and made another snatch in the air. This time there were <flow:span fontStyle="italic">two</flow:span> little shrieks, and more sounds of broken glass. “What a number of cucumber-frames there must be!” thought Alice. “I wonder what they'll do next! As for pulling me out of the window, I only wish they <flow:span fontStyle="italic">could!</flow:span> I'm sure I don't want to stay in here any longer!”</flow:p>
<flow:p>She waited for some time without hearing anything more: at last came a rumbling of little cartwheels, and the sound of a good many voices all talking together: she made out the words: “Where's the other ladder?—Why, I hadn't to bring but one; Bill's got the other—Bill! fetch it here, lad!—Here, put 'em up at this corner—No, tie 'em together first—they don't reach half high enough yet—Oh! they'll do well enough; don't be particular— Here, Bill! catch hold of this rope—Will the roof bear?—Mind that loose slate—Oh, it's coming down! Heads below!” (a loud crash)—“Now, who did that?—It was Bill, I fancy—Who's to go down the chimney?—Nay, I shan't! <flow:span fontStyle="italic">You</flow:span> do it!— <flow:span fontStyle="italic">That</flow:span> I won't, then!—Bill's to go down—Here, Bill! the master says you're to go down the chimney!”</flow:p>
<flow:p>“Oh! So Bill's got to come down the chimney, has he?” said Alice to herself. “Shy, they seem to put everything upon Bill! I wouldn't be in Bill's place for a good deal: this fireplace is narrow, to be sure; but I <flow:span fontStyle="italic">think</flow:span> I can kick a little!”</flow:p>
<flow:p>She drew her foot as far down the chimney as she could, and waited till she heard a little animal (she couldn't guess of what sort it was) scratching and scrambling about in the chimney close above her: then, saying to herself “This is Bill,” she gave one sharp kick, and waited to see what would happen next.</flow:p>
<flow:p>The first thing she heard was a general chorus of “There goes Bill!” then the Rabbit's voice along—“Catch him, you by the hedge!” then silence, and then another confusion of voices—“Hold up his head—Brandy now—Don't choke him—How was it, old fellow? What happened to you? Tell us all about it!”</flow:p>
<flow:p>Last came a little feeble, squeaking voice, (“That's Bill,” thought Alice,) “Well, I hardly know—No more, thank ye; I'm better now—but I'm a deal too flustered to tell you—all I know is, something comes at me like a Jack-in-the-box, and up I goes like a sky-rocket!”</flow:p>
<flow:p>“So you did, old fellow!” said the others.</flow:p>
<flow:p>“We must burn the house down!” said the Rabbit's voice; and Alice called out as loud as she could, “If you do. I'll set Dinah at you!”</flow:p>
<flow:p>There was a dead silence instantly, and Alice thought to herself, “I wonder what they <flow:span fontStyle="italic">will</flow:span> do next! If they had any sense, they'd take the roof off.” After a minute or two, they began moving about again, and Alice heard the Rabbit say, “A barrowful will do, to begin with.”</flow:p>
<flow:p>“A barrowful of <flow:span fontStyle="italic">what</flow:span> ?” thought Alice; but she had not long to doubt, for the next moment a shower of little pebbles came rattling in at the window, and some of them hit her in the face. “I'll put a stop to this,” she said to herself, and shouted out, “You'd better not do that again!” which produced another dead silence.</flow:p>
<flow:p>Alice noticed with some surprise that the pebbles were all turning into little cakes as they lay on the floor, and a bright idea came into her head. “If I eat one of these cakes,” she thought, “it's sure to make <flow:span fontStyle="italic">some</flow:span> change in my size; and as it can't possibly make me larger, it must make me smaller, I suppose.”</flow:p>
<flow:p>So she swallowed one of the cakes, and was delighted to find that she began shrinking directly. As soon as she was small enough to get through the door, she ran out of the house, and found quite a crowd of little animals and birds waiting outside. The poor little Lizard, Bill, was in the middle, being held up by two guinea-pigs, who were giving it something out of a bottle. They all made a rush at Alice the moment she appeared; but she ran off as hard as she could, and soon found herself safe in a thick wood.</flow:p>
<flow:p>“The first thing I've got to do,” said Alice to herself, as she wandered about in the wood, “is to grow to my right size again; and the second thing is to find my way into that lovely garden. I think that will be the best plan.”</flow:p>
<flow:p>It sounded an excellent plan, no doubt, and very neatly and simply arranged; the only difficulty was, that she had not the smallest idea how to set about it; and while she was peering about anxiously among the trees, a little sharp bark just over her head made her look up in a great hurry.</flow:p>
<flow:p>An enormous puppy was looking down at her with large round eyes, and feebly stretching out one paw, trying to touch her. “Poor little thing!” said Alice, in a coaxing tone, and she tried hard to whistle to it; but she was terribly frightened all the time at the thought that it might be hungry, in which case it would be very likely to eat her up in spite of all her coaxing.</flow:p>
<flow:p>Hardly knowing what she did, she picked up a little bit of stick, and held it out to the puppy; whereupon the puppy jumped into the air off all its feet at once, with a yelp of delight, and rushed at the stick, and made believe to worry it; then Alice dodged behind a great thistle, to keep herself from being run over; and the moment she appeared on the other side, the puppy made another rush at the stick, and tumbled head over heels in its hurry to get hold of it; then Alice, thinking it was very like having a game of play with a cart-horse, and expecting every moment to be trampled under its feet, ran round the thistle again; then the puppy began a series of short charges at the stick, running a very little way forwards each time and a long way back, and barking hoarsely all the while, till at last it sat down a good way off, panting, with its tongue hanging out of its mouth, and its great eyes half shut.</flow:p>
<flow:p>This seemed to Alice a good opportunity for making her escape; so she set off at once, and ran till she was quite tired and out of breath, and till the puppy's bark sounded quite faint in the distance.</flow:p>
<flow:p>“And yet what a dear little puppy it was!” said Alice, as she leant against a buttercup to rest herself, and fanned herself with one of the leaves: “I should have liked teaching it tricks very much, if—if I'd only been the right size to do it! Oh dear! I'd nearly forgotten that I've got to grow up again! Let me see—how <flow:span fontStyle="italic">is</flow:span> it to be managed? I suppose I ought to eat or drink something or other; but the great question is, what?”</flow:p>
<flow:p>The great question certainly was, what? Alice looked all round her at the flowers and the blades of grass, but she did not see anything that looked like the right thing to eat or drink under the circumstances. There was a large mushroom growing near her, about the same height as herself; and when she had looked under it, and on both sides of it, and behind it, it occurred to her that she might as well look and see what was on the top of it.</flow:p>
<flow:p>She stretched herself up on tiptoe, and peeped over the edge of the mushroom, and her eyes immediately met those of a large caterpillar, that was sitting on the top with its arms folded, quietly smoking a long hookah, and taking not the smallest notice of her or of anything else.</flow:p>V. Advice from a Caterpillar<flow:p textAlign="center" fontSize="24">Chapter V</flow:p>
<flow:p textAlign="center" fontSize="24">Advice from a Caterpillar</flow:p>
<flow:p>The Caterpillar and Alice looked at each other for some time in silence: at last the Caterpillar took the hookah out of its mouth, and addressed her in a languid, sleepy voice.</flow:p>
<flow:p>“Who are <flow:span fontStyle="italic">you</flow:span> ?” said the Caterpillar.</flow:p>
<flow:p>This was not an encouraging opening for a conversation. Alice replied, rather shyly, “I—I hardly know, sir, just at present— at least I know who I <flow:span fontStyle="italic">was</flow:span> when I got up this morning, but I think I must have been changed several times since then.”</flow:p>
<flow:p>“What do you mean by that?” said the Caterpillar sternly. “Explain yourself!”</flow:p>
<flow:p>“I can't explain <flow:span fontStyle="italic">myself</flow:span> , I'm afraid, sir” said Alice, “because I'm not myself, you see.”</flow:p>
<flow:p>“I don't see,” said the Caterpillar.</flow:p>
<flow:p>“I'm afraid I can't put it more clearly,” Alice replied very politely, “for I can't understand it myself to begin with; and being so many different sizes in a day is very confusing.”</flow:p>
<flow:p>“It isn't,” said the Caterpillar.</flow:p>
<flow:p>“Well, perhaps you haven't found it so yet,” said Alice; “but when you have to turn into a chrysalis—you will some day, you know—and then after that into a butterfly, I should think you'll feel it a little queer, won't you?”</flow:p>
<flow:p>“Not a bit,” said the Caterpillar.</flow:p>
<flow:p>“Well, perhaps <flow:span fontStyle="italic">your</flow:span> feelings may be different,” said Alice; “all I know is, it would feel very queer to <flow:span fontStyle="italic">me</flow:span> .”</flow:p>
<flow:p>“You!” said the Caterpillar contemptuously. “Who are You?”</flow:p>
<flow:p>Which brought them back again to the beginning of the conversation. Alice felt a little irritated at the Caterpillar's making such <flow:span fontStyle="italic">very</flow:span> short remarks, and she drew herself up and said, very gravely, “I think, you ought to tell me who <flow:span fontStyle="italic">you</flow:span> are, first.”</flow:p>
<flow:p>“Why?” said the Caterpillar.</flow:p>
<flow:p>Here was another puzzling question; and as Alice could not think of any good reason, and as the Caterpillar seemed to be in a <flow:span fontStyle="italic">very</flow:span> unpleasant state of mind, she turned away.</flow:p>
<flow:p>“Come back!” the Caterpillar called after her. “I've something important to say!”</flow:p>
<flow:p>This sounded promising, certainly: Alice turned and came back again.</flow:p>
<flow:p>“Keep your temper,” said the Caterpillar.</flow:p>
<flow:p>“Is that all?” said Alice, swallowing down her anger as well as she could.</flow:p>
<flow:p>“No,” said the Caterpillar.</flow:p>
<flow:p>Alice thought she might as well wait, as she had nothing else to do, and perhaps after all it might tell her something worth hearing. For some minutes it puffed away without speaking, but at last it unfolded its arms, took the hookah out of its mouth again, and said, “So you think you're changed, do you?”</flow:p>
<flow:p>“I'm afraid I am, sir,” said Alice; “I can't remember things as I used—and I don't keep the same size for ten minutes together!”</flow:p>
<flow:p>“Can't remember <flow:span fontStyle="italic">what</flow:span> things?” said the Caterpillar.</flow:p>
<flow:p>“Well, I've tried to say ‘How Doth The Little Busy Bee,’ but it all came different!” Alice replied in a very melancholy voice.</flow:p>
<flow:p>“Repeat, ‘You Are Old, Father William,’” said the Caterpillar.</flow:p>
<flow:p>Alice folded her hands, and began:—</flow:p>
<flow:p>“That is not said right,” said the Caterpillar.</flow:p>
<flow:p>“Not <flow:span fontStyle="italic">quite</flow:span> right, I'm afraid,” said Alice, timidly; “some of the words have got altered.”</flow:p>
<flow:p>“It is wrong from beginning to end,” said the Caterpillar decidedly, and there was silence for some minutes.</flow:p>
<flow:p>The Caterpillar was the first to speak.</flow:p>
<flow:p>“What size do you want to be?” it asked.</flow:p>
<flow:p>“Oh, I'm not particular as to size,” Alice hastily replied; “only one doesn't like changing so often, you know.”</flow:p>
<flow:p>“I <flow:span fontStyle="italic">don't</flow:span> know,” said the Caterpillar.</flow:p>
<flow:p>Alice said nothing: she had never been so much contradicted in her life before, and she felt that she was losing her temper.</flow:p>
<flow:p>“Are you content now?” said the Caterpillar.</flow:p>
<flow:p>“Well, I should like to be a <flow:span fontStyle="italic">little</flow:span> larger, sir, if you wouldn't mind,” said Alice: “three inches is such a wretched height to be.”</flow:p>
<flow:p>“It is a very good height indeed!” said the Caterpillar angrily, rearing itself upright as it spoke (it was exactly three inches high).</flow:p>
<flow:p>“But I'm not used to it!” pleaded poor Alice in a piteous tone. And she thought of herself, “I wish the creatures wouldn't be so easily offended!”</flow:p>
<flow:p>“You'll get used to it in time,” said the Caterpillar; and it put the hookah into its mouth and began smoking again.</flow:p>
<flow:p>This time Alice waited patiently until it chose to speak again. In a minute or two the Caterpillar took the hookah out of its mouth and yawned once or twice, and shook itself. Then it got down off the mushroom, and crawled away in the grass, merely remarking as it went, “One side will make you grow taller, and the other side will make you grow shorter.”</flow:p>
<flow:p>“One side of <flow:span fontStyle="italic">what</flow:span> ? The other side of <flow:span fontStyle="italic">what</flow:span> ?” thought Alice to herself.</flow:p>
<flow:p>“Of the mushroom,” said the Caterpillar, just as if she had asked it aloud; and in another moment it was out of sight.</flow:p>
<flow:p>Alice remained looking thoughtfully at the mushroom for a minute, trying to make out which were the two sides of it; and as it was perfectly round, she found this a very difficult question. However, at last she stretched her arms round it as far as they would go, and broke off a bit of the edge with each hand.</flow:p>
<flow:p>“And now which is which?” she said to herself, and nibbled a little of the right-hand bit to try the effect: the next moment she felt a violent blow underneath her chin: it had struck her foot!</flow:p>
<flow:p>She was a good deal frightened by this very sudden change, but she felt that there was no time to be lost, as she was shrinking rapidly; so she set to work at once to eat some of the other bit. Her chin was pressed so closely against her foot, that there was hardly room to open her mouth; but she did it at last, and managed to swallow a morsel of the lefthand bit.</flow:p>
<flow:p>“Come, my head's free at last!” said Alice in a tone of delight, which changed into alarm in another moment, when she found that her shoulders were nowhere to be found: all she could see, when she looked down, was an immense length of neck, which seemed to rise like a stalk out of a sea of green leaves that lay far below her.</flow:p>
<flow:p>“What <flow:span fontStyle="italic">can</flow:span> all that green stuff be?” said Alice. “And where <flow:span fontStyle="italic">have</flow:span> my shoulders got to? And oh, my poor hands, how is it I can't see you?” She was moving them about as she spoke, but no result seemed to follow, except a little shaking among the distant green leaves.</flow:p>
<flow:p>As there seemed to be no chance of getting her hands up to her head, she tried to get her head down to <flow:span fontStyle="italic">them</flow:span> , and was delighted to find that her neck would bend about easily in any direction, like a serpent. She had just succeeded in curving it down into a graceful zigzag, and was going to dive in among the leaves, which she found to be nothing but the tops of the trees under which she had been wandering, when a sharp hiss made her draw back in a hurry: a large pigeon had flown into her face, and was beating her violently with its wings.</flow:p>
<flow:p>“Serpent!” screamed the Pigeon.</flow:p>
<flow:p>“I'm <flow:span fontStyle="italic">not</flow:span> a serpent!” said Alice indignantly. “Let me alone!”</flow:p>
<flow:p>“Serpent, I say again!” repeated the Pigeon, but in a more subdued tone, and added with a kind of sob, “I've tried every way, and nothing seems to suit them!”</flow:p>
<flow:p>“I haven't the least idea what you're talking about,” said Alice.</flow:p>
<flow:p>“I've tried the roots of trees, and I've tried banks, and I've tried hedges,” the Pigeon went on, without attending to her; “but those serpents! There's no pleasing them!”</flow:p>
<flow:p>Alice was more and more puzzled, but she thought there was no use in saying anything more till the Pigeon had finished.</flow:p>
<flow:p>“As if it wasn't trouble enough hatching the eggs,” said the Pigeon; “but I must be on the look-out for serpents night and day! Why, I haven't had a wink of sleep these three weeks!”</flow:p>
<flow:p>“I'm very sorry you've been annoyed,” said Alice, who was beginning to see its meaning.</flow:p>
<flow:p>“And just as I'd taken the highest tree in the wood,” continued the Pigeon, raising its voice to a shriek, “and just as I was thinking I should be free of them at last, they must needs come wriggling down from the sky! Ugh, Serpent!”</flow:p>
<flow:p>“But I'm Not a serpent, I tell you!” said Alice. “I'm a—I'm a—”</flow:p>
<flow:p>“Well! What are you?” said the Pigeon. “I can see you're trying to invent something!”</flow:p>
<flow:p>“I—I'm a little girl,” said Alice, rather doubtfully, as she remembered the number of changes she had gone through that day.</flow:p>
<flow:p>“A likely story indeed!” said the Pigeon in a tone of the deepest contempt. “I've seen a good many little girls in my time, but never <flow:span fontStyle="italic">one</flow:span> with such a neck as that! No, no! You're a serpent; and there's no use denying it. I suppose you'll be telling me next that you never tasted an egg!”</flow:p>
<flow:p>“I <flow:span fontStyle="italic">have</flow:span> tasted eggs, certainly,” said Alice, who was a very truthful child; “but little girls eat eggs quite as much as serpents do, you know.”</flow:p>
<flow:p>“I don't believe it,” said the Pigeon; “but if they do, why then they're a kind of serpent, that's all I can say.”</flow:p>
<flow:p>This was such a new idea to Alice, that she was quite silent for a minute or two, which gave the Pigeon the opportunity of adding, “You're looking for eggs, I know <flow:span fontStyle="italic">that</flow:span> well enough; and what does it matter to me whether you're a little girl or a serpent?”</flow:p>
<flow:p>“It matters a good deal to <flow:span fontStyle="italic">me</flow:span> ,” said Alice hastily; “but I'm not looking for eggs, as it happens; and if I was, I shouldn't want <flow:span fontStyle="italic">yours</flow:span> : I don't like them raw.”</flow:p>
<flow:p>“Well, be off, then!” said the Pigeon in a sulky tone, as it settled down again into its nest. Alice crouched down among the trees as well as she could, for her neck kept getting entangled among the branches, and every now and then she had to stop and untwist it. After a while she remembered that she still held the pieces of mushroom in her hands, and she set to work very carefully, nibbling first at one and then at the other, and growing sometimes taller and sometimes shorter, until she had succeeded in bringing herself down to her usual height.</flow:p>
<flow:p>It was so long since she had been anything near the right size, that it felt quite strange at first; but she got used to it in a few minutes, and began talking to herself, as usual. “Come, there's half my plan done now! How puzzling all these changes are! I'm never sure what I'm going to be, from one minute to another! However, I've got back to my right size: the next thing is, to get into that beautiful garden—how Is that to be done, I wonder?” As she said this, she came suddenly upon an open place, with a little house in it about four feet high. “Whoever lives there,” thought Alice, “it'll never do to come upon them <flow:span fontStyle="italic">this</flow:span> size: why, I should frighten them out of their wits!” So she began nibbling at the righthand bit again, and did not venture to go near the house till she had brought herself down to nine inches high.</flow:p>VI. Pig and Pepper<flow:p textAlign="center" fontSize="24">Chapter VI</flow:p>
<flow:p textAlign="center" fontSize="24">Pig and Pepper</flow:p>
<flow:p>For a minute or two she stood looking at the house, and wondering what to do next, when suddenly a footman in livery came running out of the wood—(she considered him to be a footman because he was in livery: otherwise, judging by his face only, she would have called him a fish)—and rapped loudly at the door with his knuckles. It was opened by another footman in livery, with a round face, and large eyes like a frog; and both footmen, Alice noticed, had powdered hair that curled all over their heads. She felt very curious to know what it was all about, and crept a little way out of the wood to listen.</flow:p>
<flow:p>The Fish-Footman began by producing from under his arm a great letter, nearly as large as himself, and this he handed over to the other, saying, in a solemn tone, “For the Duchess. An invitation from the Queen to play croquet.” The Frog-Footman repeated, in the same solemn tone, only changing the order of the words a little, “From the Queen. An invitation for the Duchess to play croquet.”</flow:p>
<flow:p>Then they both bowed low, and their curls got entangled together.</flow:p>
<flow:p>Alice laughed so much at this, that she had to run back into the wood for fear of their hearing her; and when she next peeped out the Fish-Footman was gone, and the other was sitting on the ground near the door, staring stupidly up into the sky.</flow:p>
<flow:p>Alice went timidly up to the door, and knocked.</flow:p>
<flow:p>“There's no sort of use in knocking,” said the Footman, “and that for two reasons. First, because I'm on the same side of the door as you are; secondly, because they're making such a noise inside, no one could possibly hear you.” And certainly there was a most extraordinary noise going on within—a constant howling and sneezing, and every now and then a great crash, as if a dish or kettle had been broken to pieces.</flow:p>
<flow:p>“Please, then,” said Alice, “how am I to get in?”</flow:p>
<flow:p>“There might be some sense in your knocking,” the Footman went on without attending to her, “if we had the door between us. For instance, if you were Inside, you might knock, and I could let you out, you know.” He was looking up into the sky all the time he was speaking, and this Alice thought decidedly uncivil. “But perhaps he can't help it,” she said to herself; “his eyes are so Very nearly at the top of his head. But at any rate he might answer questions.—How am I to get in?” she repeated, aloud.</flow:p>
<flow:p>“I shall sit here,” the Footman remarked, “till tomorrow—”</flow:p>
<flow:p>At this moment the door of the house opened, and a large plate came skimming out, straight at the Footman's head: it just grazed his nose, and broke to pieces against one of the trees behind him.</flow:p>
<flow:p>“—or next day, maybe,” the Footman continued in the same tone, exactly as if nothing had happened.</flow:p>
<flow:p>“How am I to get in?” asked Alice again, in a louder tone.</flow:p>
<flow:p>“ <flow:span fontStyle="italic">Are</flow:span> you to get in at all?” said the Footman. “That's the first question, you know.”</flow:p>
<flow:p>It was, no doubt: only Alice did not like to be told so. “It's really dreadful,” she muttered to herself, “the way all the creatures argue. It's enough to drive one crazy!”</flow:p>
<flow:p>The Footman seemed to think this a good opportunity for repeating his remark, with variations. “I shall sit here,” he said, “on and off, for days and days.”</flow:p>
<flow:p>“But what am I to do?” said Alice.</flow:p>
<flow:p>“Anything you like,” said the Footman, and began whistling.</flow:p>
<flow:p>“Oh, there's no use in talking to him,” said Alice desperately: “he's perfectly idiotic!” And she opened the door and went in.</flow:p>
<flow:p>The door led right into a large kitchen, which was full of smoke from one end to the other: the Duchess was sitting on a three-legged stool in the middle, nursing a baby; the cook was leaning over the fire, stirring a large cauldron which seemed to be full of soup.</flow:p>
<flow:p>“There's certainly too much pepper in that soup!” Alice said to herself, as well as she could for sneezing.</flow:p>
<flow:p>There was certainly too much of it in the air. Even the Duchess sneezed occasionally; and as for the baby, it was sneezing and howling alternately without a moment's pause. The only things in the kitchen that did not sneeze, were the cook, and a large cat which was sitting on the hearth and grinning from ear to ear.</flow:p>
<flow:p>“Please would you tell me,” said Alice, a little timidly, for she was not quite sure whether it was good manners for her to speak first, “why your cat grins like that?”</flow:p>
<flow:p>“It's a Cheshire cat,” said the Duchess, “and that's why. Pig!”</flow:p>
<flow:p>She said the last word with such sudden violence that Alice quite jumped; but she saw in another moment that it was addressed to the baby, and not to her, so she took courage, and went on again:—</flow:p>
<flow:p>“I didn't know that Cheshire cats always grinned; in fact, I didn't know that cats <flow:span fontStyle="italic">could</flow:span> grin.”</flow:p>
<flow:p>“They all can,” said the Duchess; “and most of 'em do.”</flow:p>
<flow:p>“I don't know of any that do,” Alice said very politely, feeling quite pleased to have got into a conversation.</flow:p>
<flow:p>“You don't know much,” said the Duchess; “and that's a fact.”</flow:p>
<flow:p>Alice did not at all like the tone of this remark, and thought it would be as well to introduce some other subject of conversation. While she was trying to fix on one, the cook took the cauldron of soup off the fire, and at once set to work throwing everything within her reach at the Duchess and the baby —the fire-irons came first; then followed a shower of saucepans, plates, and dishes. The Duchess took no notice of them even when they hit her; and the baby was howling so much already, that it was quite impossible to say whether the blows hurt it or not.</flow:p>
<flow:p>“Oh, Please mind what you're doing!” cried Alice, jumping up and down in an agony of terror. “Oh, there goes his Precious nose”; as an unusually large saucepan flew close by it, and very nearly carried it off.</flow:p>
<flow:p>“If everybody minded their own business,” the Duchess said in a hoarse growl, “the world would go round a deal faster than it does.”</flow:p>
<flow:p>“Which would <flow:span fontStyle="italic">not</flow:span> be an advantage,” said Alice, who felt very glad to get an opportunity of showing off a little of her knowledge. “Just think of what work it would make with the day and night! You see the earth takes twenty-four hours to turn round on its axis—”</flow:p>
<flow:p>“Talking of axes,” said the Duchess, “chop off her head!”</flow:p>
<flow:p>Alice glanced rather anxiously at the cook, to see if she meant to take the hint; but the cook was busily stirring the soup, and seemed not to be listening, so she went on again: “Twenty-four hours, I <flow:span fontStyle="italic">think;</flow:span> or is it twelve? I—”</flow:p>
<flow:p>“Oh, don't bother <flow:span fontStyle="italic">me,</flow:span> ” said the Duchess; “I never could abide figures!” And with that she began nursing her child again, singing a sort of lullaby to it as she did so, and giving it a violent shake at the end of every line:</flow:p>
<flow:p>While the Duchess sang the second verse of the song, she kept tossing the baby violently up and down, and the poor little thing howled so, that Alice could hardly hear the words:—</flow:p>
<flow:p>“Here! you may nurse it a bit, if you like!” the Duchess said to Alice, flinging the baby at her as she spoke. “I must go and get ready to play croquet with the Queen,” and she hurried out of the room. The cook threw a frying-pan after her as she went out, but it just missed her.</flow:p>
<flow:p>Alice caught the baby with some difficulty, as it was a queer- shaped little creature, and held out its arms and legs in all directions, “just like a star-fish,” thought Alice. The poor little thing was snorting like a steam-engine when she caught it, and kept doubling itself up and straightening itself out again, so that altogether, for the first minute or two, it was as much as she could do to hold it.</flow:p>
<flow:p>As soon as she had made out the proper way of nursing it, (which was to twist it up into a sort of knot, and then keep tight hold of its right ear and left foot, so as to prevent its undoing itself,) she carried it out into the open air. “ <flow:span fontStyle="italic">If</flow:span> I don't take this child away with me,” thought Alice, “they're sure to kill it in a day or two: wouldn't it be murder to leave it behind?” She said the last words out loud, and the little thing grunted in reply (it had left off sneezing by this time). “Don't grunt,” said Alice; “that's not at all a proper way of expressing yourself.”</flow:p>
<flow:p>The baby grunted again, and Alice looked very anxiously into its face to see what was the matter with it. There could be no doubt that it had a Very turn-up nose, much more like a snout than a real nose; also its eyes were getting extremely small for a baby: altogether Alice did not like the look of the thing at all. “But perhaps it was only sobbing,” she thought, and looked into its eyes again, to see if there were any tears.</flow:p>
<flow:p>No, there were no tears. “If you're going to turn into a pig, my dear,” said Alice, seriously, “I'll have nothing more to do with you. Mind now!” The poor little thing sobbed again (or grunted, it was impossible to say which), and they went on for some while in silence.</flow:p>
<flow:p>Alice was just beginning to think to herself, “Now, what am I to do with this creature when I get it home?” when it grunted again, so violently, that she looked down into its face in some alarm. This time there could be <flow:span fontStyle="italic">no</flow:span> mistake about it: it was neither more nor less than a pig, and she felt that it would be quite absurd for her to carry it further.</flow:p>
<flow:p>So she set the little creature down, and felt quite relieved to see it trot away quietly into the wood. “If it had grown up,” she said to herself, “it would have made a dreadfully ugly child: but it makes rather a handsome pig, I think.” And she began thinking over other children she knew, who might do very well as pigs, and was just saying to herself, “if one only knew the right way to change them—” when she was a little startled by seeing the Cheshire Cat sitting on a bough of a tree a few yards off.</flow:p>
<flow:p>The Cat only grinned when it saw Alice. It looked good- natured, she thought: still it had Very long claws and a great many teeth, so she felt that it ought to be treated with respect.</flow:p>
<flow:p>“Cheshire Puss,” she began, rather timidly, as she did not at all know whether it would like the name: however, it only grinned a little wider. “Come, it's pleased so far,” thought Alice, and she went on. “Would you tell me, please, which way I ought to go from here?”</flow:p>
<flow:p>“That depends a good deal on where you want to get to,” said the Cat.</flow:p>
<flow:p>“I don't much care where—” said Alice.</flow:p>
<flow:p>“Then it doesn't matter which way you go,” said the Cat.</flow:p>
<flow:p>“—so long as I get <flow:span fontStyle="italic">somewhere,</flow:span> ” Alice added as an explanation.</flow:p>
<flow:p>“Oh, you're sure to do that,” said the Cat, “if you only walk long enough.”</flow:p>
<flow:p>Alice felt that this could not be denied, so she tried another question. “What sort of people live about here?”</flow:p>
<flow:p>“In That direction,” the Cat said, waving its right paw round, “lives a Hatter: and in That direction,” waving the other paw, “lives a March Hare. Visit either you like: they're both mad.”</flow:p>
<flow:p>“But I don't want to go among mad people,” Alice remarked.</flow:p>
<flow:p>“Oh, you can't help that,” said the Cat: “we're all mad here. I'm mad. You're mad.”</flow:p>
<flow:p>“How do you know I'm mad?” said Alice.</flow:p>
<flow:p>“You must be,” said the Cat, “or you wouldn't have come here.”</flow:p>
<flow:p>Alice didn't think that proved it at all; however, she went on “And how do you know that you're mad?”</flow:p>
<flow:p>“To begin with,” said the Cat, “a dog's not mad. You grant that?”</flow:p>
<flow:p>“I suppose so,” said Alice.</flow:p>
<flow:p>“Well, then,” the Cat went on, “you see, a dog growls when it's angry, and wags its tail when it's pleased. Now I growl when I'm pleased, and wag my tail when I'm angry. Therefore I'm mad.”</flow:p>
<flow:p>“I call it purring, not growling,” said Alice.</flow:p>
<flow:p>“Call it what you like,” said the Cat. “Do you play croquet with the Queen to-day?”</flow:p>
<flow:p>“I should like it very much,” said Alice, “but I haven't been invited yet.”</flow:p>
<flow:p>“You'll see me there,” said the Cat, and vanished.</flow:p>
<flow:p>Alice was not much surprised at this, she was getting so used to queer things happening. While she was looking at the place where it had been, it suddenly appeared again.</flow:p>
<flow:p>“By-the-bye, what became of the baby?” said the Cat. “I'd nearly forgotten to ask.”</flow:p>
<flow:p>“It turned into a pig,” Alice quietly said, just as if it had come back in a natural way.</flow:p>
<flow:p>“I thought it would,” said the Cat, and vanished again.</flow:p>
<flow:p>Alice waited a little, half expecting to see it again, but it did not appear, and after a minute or two she walked on in the direction in which the March Hare was said to live. “I've seen hatters before,” she said to herself; “the March Hare will be much the most interesting, and perhaps as this is May it won't be raving mad—at least not so mad as it was in March.” As she said this, she looked up, and there was the Cat again, sitting on a branch of a tree.</flow:p>
<flow:p>“Did you say pig, or fig?” said the Cat.</flow:p>
<flow:p>“I said pig,” replied Alice; “and I wish you wouldn't keep appearing and vanishing so suddenly: you make one quite giddy.”</flow:p>
<flow:p>“All right,” said the Cat; and this time it vanished quite slowly, beginning with the end of the tail, and ending with the grin, which remained some time after the rest of it had gone.</flow:p>
<flow:p>“Well! I've often seen a cat without a grin,” thought Alice; “but a grin without a cat! It's the most curious thing I ever saw in my life!”</flow:p>
<flow:p>She had not gone much farther before she came in sight of the house of the March Hare: she thought it must be the right house, because the chimneys were shaped like ears and the roof was thatched with fur. It was so large a house, that she did not like to go nearer till she had nibbled some more of the lefthand bit of mushroom, and raised herself to about two feet high: even then she walked up towards it rather timidly, saying to herself “Suppose it should be raving mad after all! I almost wish I'd gone to see the Hatter instead!”</flow:p>VII. A Mad Tea-Party<flow:p textAlign="center" fontSize="24">Chapter VII</flow:p>
<flow:p textAlign="center" fontSize="24">A Mad Tea-Party</flow:p>
<flow:p>There was a table set out under a tree in front of the house, and the March Hare and the Hatter were having tea at it: a Dormouse was sitting between them, fast asleep, and the other two were using it as a cushion, resting their elbows on it, and talking over its head. 'Very uncomfortable for the Dormouse,' thought Alice; 'only, as it's asleep, I suppose it doesn't mind.'</flow:p>
<flow:p>The table was a large one, but the three were all crowded together at one corner of it: 'No room! No room!' they cried out when they saw Alice coming. 'There's Plenty of room!' said Alice indignantly, and she sat down in a large arm-chair at one end of the table.</flow:p>
<flow:p>'Have some wine,' the March Hare said in an encouraging tone.</flow:p>
<flow:p>Alice looked all round the table, but there was nothing on it but tea. 'I don't see any wine,' she remarked.</flow:p>
<flow:p>'There isn't any,' said the March Hare.</flow:p>
<flow:p>'Then it wasn't very civil of you to offer it,' said Alice angrily.</flow:p>
<flow:p>'It wasn't very civil of you to sit down without being invited,' said the March Hare.</flow:p>
<flow:p>'I didn't know it was Your table,' said Alice; 'it's laid for a great many more than three.'</flow:p>
<flow:p>'Your hair wants cutting,' said the Hatter. He had been looking at Alice for some time with great curiosity, and this was his first speech.</flow:p>
<flow:p>'You should learn not to make personal remarks,' Alice said with some severity; 'it's very rude.'</flow:p>
<flow:p>The Hatter opened his eyes very wide on hearing this; but all he Said was, 'Why is a raven like a writing-desk?'</flow:p>
<flow:p>'Come, we shall have some fun now!' thought Alice. 'I'm glad they've begun asking riddles.--I believe I can guess that,' she added aloud.</flow:p>
<flow:p>'Do you mean that you think you can find out the answer to it?' said the March Hare.</flow:p>
<flow:p>'Exactly so,' said Alice.</flow:p>
<flow:p>'Then you should say what you mean,' the March Hare went on.</flow:p>
<flow:p>'I do,' Alice hastily replied; 'at least--at least I mean what I say--that's the same thing, you know.'</flow:p>
<flow:p>'Not the same thing a bit!' said the Hatter. 'You might just as well say that "I see what I eat" is the same thing as "I eat what I see"!'</flow:p>
<flow:p>'You might just as well say,' added the March Hare, 'that "I like what I get" is the same thing as "I get what I like"!'</flow:p>
<flow:p>'You might just as well say,' added the Dormouse, who seemed to be talking in his sleep, 'that "I breathe when I sleep" is the same thing as "I sleep when I breathe"!'</flow:p>
<flow:p>'It Is the same thing with you,' said the Hatter, and here the conversation dropped, and the party sat silent for a minute, while Alice thought over all she could remember about ravens and writing-desks, which wasn't much.</flow:p>
<flow:p>The Hatter was the first to break the silence. 'What day of the month is it?' he said, turning to Alice: he had taken his watch out of his pocket, and was looking at it uneasily, shaking it every now and then, and holding it to his ear.</flow:p>
<flow:p>Alice considered a little, and then said 'The fourth.'</flow:p>
<flow:p>'Two days wrong!' sighed the Hatter. 'I told you butter wouldn't suit the works!' he added looking angrily at the March Hare.</flow:p>
<flow:p>'It was the Best butter,' the March Hare meekly replied.</flow:p>
<flow:p>'Yes, but some crumbs must have got in as well,' the Hatter grumbled: 'you shouldn't have put it in with the bread-knife.'</flow:p>
<flow:p>The March Hare took the watch and looked at it gloomily: then he dipped it into his cup of tea, and looked at it again: but he could think of nothing better to say than his first remark, 'It was the Best butter, you know.'</flow:p>
<flow:p>Alice had been looking over his shoulder with some curiosity. 'What a funny watch!' she remarked. 'It tells the day of the month, and doesn't tell what o'clock it is!'</flow:p>
<flow:p>'Why should it?' muttered the Hatter. 'Does Your watch tell you what year it is?'</flow:p>
<flow:p>'Of course not,' Alice replied very readily: 'but that's because it stays the same year for such a long time together.'</flow:p>
<flow:p>'Which is just the case with Mine,' said the Hatter.</flow:p>
<flow:p>Alice felt dreadfully puzzled. The Hatter's remark seemed to have no sort of meaning in it, and yet it was certainly English. 'I don't quite understand you,' she said, as politely as she could.</flow:p>
<flow:p>'The Dormouse is asleep again,' said the Hatter, and he poured a little hot tea upon its nose.</flow:p>
<flow:p>The Dormouse shook its head impatiently, and said, without opening its eyes, 'Of course, of course; just what I was going to remark myself.'</flow:p>
<flow:p>'Have you guessed the riddle yet?' the Hatter said, turning to Alice again.</flow:p>
<flow:p>'No, I give it up,' Alice replied: 'what's the answer?'</flow:p>
<flow:p>'I haven't the slightest idea,' said the Hatter.</flow:p>
<flow:p>'Nor I,' said the March Hare.</flow:p>
<flow:p>Alice sighed wearily. 'I think you might do something better with the time,' she said, 'than waste it in asking riddles that have no answers.'</flow:p>
<flow:p>'If you knew Time as well as I do,' said the Hatter, 'you wouldn't talk about wasting It. It's Him.'</flow:p>
<flow:p>'I don't know what you mean,' said Alice.</flow:p>
<flow:p>'Of course you don't!' the Hatter said, tossing his head contemptuously. 'I dare say you never even spoke to Time!'</flow:p>
<flow:p>'Perhaps not,' Alice cautiously replied: 'but I know I have to beat time when I learn music.'</flow:p>
<flow:p>'Ah! that accounts for it,' said the Hatter. 'He won't stand beating. Now, if you only kept on good terms with him, he'd do almost anything you liked with the clock. For instance, suppose it were nine o'clock in the morning, just time to begin lessons: you'd only have to whisper a hint to Time, and round goes the clock in a twinkling! Half-past one, time for dinner!'</flow:p>
<flow:p>('I only wish it was,' the March Hare said to itself in a whisper.)</flow:p>
<flow:p>'That would be grand, certainly,' said Alice thoughtfully: 'but then--I shouldn't be hungry for it, you know.'</flow:p>
<flow:p>'Not at first, perhaps,' said the Hatter: 'but you could keep it to half-past one as long as you liked.'</flow:p>
<flow:p>'Is that the way You manage?' Alice asked.</flow:p>
<flow:p>The Hatter shook his head mournfully. 'Not I!' he replied. 'We quarrelled last March--just before He went mad, you know--' (pointing with his tea spoon at the March Hare,) '--it was at the great concert given by the Queen of Hearts, and I had to sing</flow:p>"Twinkle, twinkle, little bat!How I wonder what you're at!"<flow:p>You know the song, perhaps?'</flow:p>
<flow:p>'I've heard something like it,' said Alice.</flow:p>
<flow:p>'It goes on, you know,' the Hatter continued, 'in this way:--</flow:p>"Up above the world you fly,Like a tea-tray in the sky.Twinkle, twinkle--"'<flow:p>Here the Dormouse shook itself, and began singing in its sleep 'Twinkle, twinkle, twinkle, twinkle--' and went on so long that they had to pinch it to make it stop.</flow:p>
<flow:p>'Well, I'd hardly finished the first verse,' said the Hatter, 'when the Queen jumped up and bawled out, "He's murdering the time! Off with his head!"'</flow:p>
<flow:p>'How dreadfully savage!' exclaimed Alice.</flow:p>
<flow:p>'And ever since that,' the Hatter went on in a mournful tone, 'he won't do a thing I ask! It's always six o'clock now.'</flow:p>
<flow:p>A bright idea came into Alice's head. 'Is that the reason so many tea-things are put out here?' she asked.</flow:p>
<flow:p>'Yes, that's it,' said the Hatter with a sigh: 'it's always tea-time, and we've no time to wash the things between whiles.'</flow:p>
<flow:p>'Then you keep moving round, I suppose?' said Alice.</flow:p>
<flow:p>'Exactly so,' said the Hatter: 'as the things get used up.'</flow:p>
<flow:p>'But what happens when you come to the beginning again?' Alice ventured to ask.</flow:p>
<flow:p>'Suppose we change the subject,' the March Hare interrupted, yawning. 'I'm getting tired of this. I vote the young lady tells us a story.'</flow:p>
<flow:p>'I'm afraid I don't know one,' said Alice, rather alarmed at the proposal.</flow:p>
<flow:p>'Then the Dormouse shall!' they both cried. 'Wake up, Dormouse!' And they pinched it on both sides at once.</flow:p>
<flow:p>The Dormouse slowly opened his eyes. 'I wasn't asleep,' he said in a hoarse, feeble voice: 'I heard every word you fellows were saying.'</flow:p>
<flow:p>'Tell us a story!' said the March Hare.</flow:p>
<flow:p>'Yes, please do!' pleaded Alice.</flow:p>
<flow:p>'And be quick about it,' added the Hatter, 'or you'll be asleep again before it's done.'</flow:p>
<flow:p>'Once upon a time there were three little sisters,' the Dormouse began in a great hurry; 'and their names were Elsie, Lacie, and Tillie; and they lived at the bottom of a well--'</flow:p>
<flow:p>'What did they live on?' said Alice, who always took a great interest in questions of eating and drinking.</flow:p>
<flow:p>'They lived on treacle,' said the Dormouse, after thinking a minute or two.</flow:p>
<flow:p>'They couldn't have done that, you know,' Alice gently remarked; 'they'd have been ill.'</flow:p>
<flow:p>'So they were,' said the Dormouse; 'Very ill.'</flow:p>
<flow:p>Alice tried to fancy to herself what such an extraordinary ways of living would be like, but it puzzled her too much, so she went on: 'But why did they live at the bottom of a well?'</flow:p>
<flow:p>'Take some more tea,' the March Hare said to Alice, very earnestly.</flow:p>
<flow:p>'I've had nothing yet,' Alice replied in an offended tone, 'so I can't take more.'</flow:p>
<flow:p>'You mean you can't take LESS,' said the Hatter: 'it's very easy to take MORE than nothing.'</flow:p>
<flow:p>'Nobody asked Your opinion,' said Alice.</flow:p>
<flow:p>'Who's making personal remarks now?' the Hatter asked triumphantly.</flow:p>
<flow:p>Alice did not quite know what to say to this: so she helped herself to some tea and bread-and-butter, and then turned to the Dormouse, and repeated her question. 'Why did they live at the bottom of a well?'</flow:p>
<flow:p>The Dormouse again took a minute or two to think about it, and then said, 'It was a treacle-well.'</flow:p>
<flow:p>'There's no such thing!' Alice was beginning very angrily, but the Hatter and the March Hare went 'Sh! sh!' and the Dormouse sulkily remarked, 'If you can't be civil, you'd better finish the story for yourself.'</flow:p>
<flow:p>'No, please go on!' Alice said very humbly; 'I won't interrupt again. I dare say there may be One.'</flow:p>
<flow:p>'One, indeed!' said the Dormouse indignantly. However, he consented to go on. 'And so these three little sisters--they were learning to draw, you know--'</flow:p>
<flow:p>'What did they draw?' said Alice, quite forgetting her promise.</flow:p>
<flow:p>'Treacle,' said the Dormouse, without considering at all this time.</flow:p>
<flow:p>'I want a clean cup,' interrupted the Hatter: 'let's all move one place on.'</flow:p>
<flow:p>He moved on as he spoke, and the Dormouse followed him: the March Hare moved into the Dormouse's place, and Alice rather unwillingly took the place of the March Hare. The Hatter was the only one who got any advantage from the change: and Alice was a good deal worse off than before, as the March Hare had just upset the milk-jug into his plate.</flow:p>
<flow:p>Alice did not wish to offend the Dormouse again, so she began very cautiously: 'But I don't understand. Where did they draw the treacle from?'</flow:p>
<flow:p>'You can draw water out of a water-well,' said the Hatter; 'so I should think you could draw treacle out of a treacle-well--eh, stupid?'</flow:p>
<flow:p>'But they were IN the well,' Alice said to the Dormouse, not choosing to notice this last remark.</flow:p>
<flow:p>'Of course they were', said the Dormouse; '--well in.'</flow:p>
<flow:p>This answer so confused poor Alice, that she let the Dormouse go on for some time without interrupting it.</flow:p>
<flow:p>'They were learning to draw,' the Dormouse went on, yawning and rubbing its eyes, for it was getting very sleepy; 'and they drew all manner of things--everything that begins with an M--'</flow:p>
<flow:p>'Why with an M?' said Alice.</flow:p>
<flow:p>'Why not?' said the March Hare.</flow:p>
<flow:p>Alice was silent.</flow:p>
<flow:p>The Dormouse had closed its eyes by this time, and was going off into a doze; but, on being pinched by the Hatter, it woke up again with a little shriek, and went on: '--that begins with an M, such as mouse-traps, and the moon, and memory, and muchness-- you know you say things are "much of a muchness"--did you ever see such a thing as a drawing of a muchness?'</flow:p>
<flow:p>'Really, now you ask me,' said Alice, very much confused, 'I don't think--'</flow:p>
<flow:p>'Then you shouldn't talk,' said the Hatter.</flow:p>
<flow:p>This piece of rudeness was more than Alice could bear: she got up in great disgust, and walked off; the Dormouse fell asleep instantly, and neither of the others took the least notice of her going, though she looked back once or twice, half hoping that they would call after her: the last time she saw them, they were trying to put the Dormouse into the teapot.</flow:p>
<flow:p>'At any rate I'll never go There again!' said Alice as she picked her way through the wood. 'It's the stupidest tea-party I ever was at in all my life!'</flow:p>
<flow:p>Just as she said this, she noticed that one of the trees had a door leading right into it. 'That's very curious!' she thought. 'But everything's curious today. I think I may as well go in at once.' And in she went.</flow:p>
<flow:p>Once more she found herself in the long hall, and close to the little glass table. 'Now, I'll manage better this time,' she said to herself, and began by taking the little golden key, and unlocking the door that led into the garden. Then she went to work nibbling at the mushroom (she had kept a piece of it in her pocket) till she was about a foot high: then she walked down the little passage: and Then--she found herself at last in the beautiful garden, among the bright flower-beds and the cool fountains.</flow:p>VIII. The Queen's Croquet-Ground<flow:p textAlign="center" fontSize="24">Chapter VIII</flow:p>
<flow:p textAlign="center" fontSize="24">The Queen's Croquet-Ground</flow:p>
<flow:p>A large rose-tree stood near the entrance of the garden: the roses growing on it were white, but there were three gardeners at it, busily painting them red. Alice thought this a very curious thing, and she went nearer to watch them, and just as she came up to them she heard one of them say, 'Look out now, Five! Don't go splashing paint over me like that!'</flow:p>
<flow:p>'I couldn't help it,' said Five, in a sulky tone; 'Seven jogged my elbow.'</flow:p>
<flow:p>On which Seven looked up and said, 'That's right, Five! Always lay the blame on others!'</flow:p>
<flow:p>'You'd better not talk!' said Five. 'I heard the Queen say only yesterday you deserved to be beheaded!'</flow:p>
<flow:p>'What for?' said the one who had spoken first.</flow:p>
<flow:p>'That's none of Your business, Two!' said Seven.</flow:p>
<flow:p>'Yes, it Is his business!' said Five, 'and I'll tell him--it was for bringing the cook tulip-roots instead of onions.'</flow:p>
<flow:p>Seven flung down his brush, and had just begun 'Well, of all the unjust things--' when his eye chanced to fall upon Alice, as she stood watching them, and he checked himself suddenly: the others looked round also, and all of them bowed low.</flow:p>
<flow:p>'Would you tell me,' said Alice, a little timidly, 'why you are painting those roses?'</flow:p>
<flow:p>Five and Seven said nothing, but looked at Two. Two began in a low voice, 'Why the fact is, you see, Miss, this here ought to have been a RED rose-tree, and we put a white one in by mistake; and if the Queen was to find it out, we should all have our heads cut off, you know. So you see, Miss, we're doing our best, afore she comes, to--' At this moment Five, who had been anxiously looking across the garden, called out 'The Queen! The Queen!' and the three gardeners instantly threw themselves flat upon their faces. There was a sound of many footsteps, and Alice looked round, eager to see the Queen.</flow:p>
<flow:p>First came ten soldiers carrying clubs; these were all shaped like the three gardeners, oblong and flat, with their hands and feet at the corners: next the ten courtiers; these were ornamented all over with diamonds, and walked two and two, as the soldiers did. After these came the royal children; there were ten of them, and the little dears came jumping merrily along hand in hand, in couples: they were all ornamented with hearts. Next came the guests, mostly Kings and Queens, and among them Alice recognised the White Rabbit: it was talking in a hurried nervous manner, smiling at everything that was said, and went by without noticing her. Then followed the Knave of Hearts, carrying the King's crown on a crimson velvet cushion; and, last of all this grand procession, came The King And Queen Of Hearts.</flow:p>
<flow:p>Alice was rather doubtful whether she ought not to lie down on her face like the three gardeners, but she could not remember ever having heard of such a rule at processions; 'and besides, what would be the use of a procession,' thought she, 'if people had all to lie down upon their faces, so that they couldn't see it?' So she stood still where she was, and waited.</flow:p>
<flow:p>When the procession came opposite to Alice, they all stopped and looked at her, and the Queen said severely 'Who is this?' She said it to the Knave of Hearts, who only bowed and smiled in reply.</flow:p>
<flow:p>'Idiot!' said the Queen, tossing her head impatiently; and, turning to Alice, she went on, 'What's your name, child?'</flow:p>
<flow:p>'My name is Alice, so please your Majesty,' said Alice very politely; but she added, to herself, 'Why, they're only a pack of cards, after all. I needn't be afraid of them!'</flow:p>
<flow:p>'And who are These?' said the Queen, pointing to the three gardeners who were lying round the rosetree; for, you see, as they were lying on their faces, and the pattern on their backs was the same as the rest of the pack, she could not tell whether they were gardeners, or soldiers, or courtiers, or three of her own children.</flow:p>
<flow:p>'How should I know?' said Alice, surprised at her own courage. 'It's no business of Mine.'</flow:p>
<flow:p>The Queen turned crimson with fury, and, after glaring at her for a moment like a wild beast, screamed 'Off with her head! Off--'</flow:p>
<flow:p>'Nonsense!' said Alice, very loudly and decidedly, and the Queen was silent.</flow:p>
<flow:p>The King laid his hand upon her arm, and timidly said 'Consider, my dear: she is only a child!'</flow:p>
<flow:p>The Queen turned angrily away from him, and said to the Knave 'Turn them over!'</flow:p>
<flow:p>The Knave did so, very carefully, with one foot.</flow:p>
<flow:p>'Get up!' said the Queen, in a shrill, loud voice, and the three gardeners instantly jumped up, and began bowing to the King, the Queen, the royal children, and everybody else.</flow:p>
<flow:p>'Leave off that!' screamed the Queen. 'You make me giddy.' And then, turning to the rose-tree, she went on, 'What Have you been doing here?'</flow:p>
<flow:p>'May it please your Majesty,' said Two, in a very humble tone, going down on one knee as he spoke, 'we were trying--'</flow:p>
<flow:p>'I see!' said the Queen, who had meanwhile been examining the roses. 'Off with their heads!' and the procession moved on, three of the soldiers remaining behind to execute the unfortunate gardeners, who ran to Alice for protection.</flow:p>
<flow:p>'You shan't be beheaded!' said Alice, and she put them into a large flower-pot that stood near. The three soldiers wandered about for a minute or two, looking for them, and then quietly marched off after the others.</flow:p>
<flow:p>'Are their heads off?' shouted the Queen.</flow:p>
<flow:p>'Their heads are gone, if it please your Majesty!' the soldiers shouted in reply.</flow:p>
<flow:p>'That's right!' shouted the Queen. 'Can you play croquet?'</flow:p>
<flow:p>The soldiers were silent, and looked at Alice, as the question was evidently meant for her.</flow:p>
<flow:p>'Yes!' shouted Alice.</flow:p>
<flow:p>'Come on, then!' roared the Queen, and Alice joined the procession, wondering very much what would happen next.</flow:p>
<flow:p>'It's--it's a very fine day!' said a timid voice at her side. She was walking by the White Rabbit, who was peeping anxiously into her face.</flow:p>
<flow:p>'Very,' said Alice: '--where's the Duchess?'</flow:p>
<flow:p>'Hush! Hush!' said the Rabbit in a low, hurried tone. He looked anxiously over his shoulder as he spoke, and then raised himself upon tiptoe, put his mouth close to her ear, and whispered 'She's under sentence of execution.'</flow:p>
<flow:p>'What for?' said Alice.</flow:p>
<flow:p>'Did you say "What a pity!"?' the Rabbit asked.</flow:p>
<flow:p>'No, I didn't,' said Alice: 'I don't think it's at all a pity. I said "What for?"'</flow:p>
<flow:p>'She boxed the Queen's ears--' the Rabbit began. Alice gave a little scream of laughter. 'Oh, hush!' the Rabbit whispered in a frightened tone. 'The Queen will hear you! You see, she came rather late, and the Queen said--'</flow:p>
<flow:p>'Get to your places!' shouted the Queen in a voice of thunder, and people began running about in all directions, tumbling up against each other; however, they got settled down in a minute or two, and the game began. Alice thought she had never seen such a curious croquet-ground in her life; it was all ridges and furrows; the balls were live hedgehogs, the mallets live flamingoes, and the soldiers had to double themselves up and to stand on their hands and feet, to make the arches.</flow:p>
<flow:p>The chief difficulty Alice found at first was in managing her flamingo: she succeeded in getting its body tucked away, comfortably enough, under her arm, with its legs hanging down, but generally, just as she had got its neck nicely straightened out, and was going to give the hedgehog a blow with its head, it Would twist itself round and look up in her face, with such a puzzled expression that she could not help bursting out laughing: and when she had got its head down, and was going to begin again, it was very provoking to find that the hedgehog had unrolled itself, and was in the act of crawling away: besides all this, there was generally a ridge or furrow in the way wherever she wanted to send the hedgehog to, and, as the doubled-up soldiers were always getting up and walking off to other parts of the ground, Alice soon came to the conclusion that it was a very difficult game indeed.</flow:p>
<flow:p>The players all played at once without waiting for turns, quarrelling all the while, and fighting for the hedgehogs; and in a very short time the Queen was in a furious passion, and went stamping about, and shouting 'Off with his head!' or 'Off with her head!' about once in a minute.</flow:p>
<flow:p>Alice began to feel very uneasy: to be sure, she had not as yet had any dispute with the Queen, but she knew that it might happen any minute, 'and then,' thought she, 'what would become of me? They're dreadfully fond of beheading people here; the great wonder is, that there's any one left alive!'</flow:p>
<flow:p>She was looking about for some way of escape, and wondering whether she could get away without being seen, when she noticed a curious appearance in the air: it puzzled her very much at first, but, after watching it a minute or two, she made it out to be a grin, and she said to herself 'It's the Cheshire Cat: now I shall have somebody to talk to.'</flow:p>
<flow:p>'How are you getting on?' said the Cat, as soon as there was mouth enough for it to speak with.</flow:p>
<flow:p>Alice waited till the eyes appeared, and then nodded. 'It's no use speaking to it,' she thought, 'till its ears have come, or at least one of them.' In another minute the whole head appeared, and then Alice put down her flamingo, and began an account of the game, feeling very glad she had someone to listen to her. The Cat seemed to think that there was enough of it now in sight, and no more of it appeared.</flow:p>
<flow:p>'I don't think they play at all fairly,' Alice began, in rather a complaining tone, 'and they all quarrel so dreadfully one can't hear oneself speak--and they don't seem to have any rules in particular; at least, if there are, nobody attends to them--and you've no idea how confusing it is all the things being alive; for instance, there's the arch I've got to go through next walking about at the other end of the ground--and I should have croqueted the Queen's hedgehog just now, only it ran away when it saw mine coming!'</flow:p>
<flow:p>'How do you like the Queen?' said the Cat in a low voice.</flow:p>
<flow:p>'Not at all,' said Alice: 'she's so extremely--' Just then she noticed that the Queen was close behind her, listening: so she went on, '--likely to win, that it's hardly worth while finishing the game.'</flow:p>
<flow:p>The Queen smiled and passed on.</flow:p>
<flow:p>'Who Are you talking to?' said the King, going up to Alice, and looking at the Cat's head with great curiosity.</flow:p>
<flow:p>'It's a friend of mine--a Cheshire Cat,' said Alice: 'allow me to introduce it.'</flow:p>
<flow:p>'I don't like the look of it at all,' said the King: 'however, it may kiss my hand if it likes.'</flow:p>
<flow:p>'I'd rather not,' the Cat remarked.</flow:p>
<flow:p>'Don't be impertinent,' said the King, 'and don't look at me like that!' He got behind Alice as he spoke.</flow:p>
<flow:p>'A cat may look at a king,' said Alice. 'I've read that in some book, but I don't remember where.'</flow:p>
<flow:p>'Well, it must be removed,' said the King very decidedly, and he called the Queen, who was passing at the moment, 'My dear! I wish you would have this cat removed!'</flow:p>
<flow:p>The Queen had only one way of settling all difficulties, great or small. 'Off with his head!' she said, without even looking round.</flow:p>
<flow:p>'I'll fetch the executioner myself,' said the King eagerly, and he hurried off.</flow:p>
<flow:p>Alice thought she might as well go back, and see how the game was going on, as she heard the Queen's voice in the distance, screaming with passion. She had already heard her sentence three of the players to be executed for having missed their turns, and she did not like the look of things at all, as the game was in such confusion that she never knew whether it was her turn or not. So she went in search of her hedgehog.</flow:p>
<flow:p>The hedgehog was engaged in a fight with another hedgehog, which seemed to Alice an excellent opportunity for croqueting one of them with the other: the only difficulty was, that her flamingo was gone across to the other side of the garden, where Alice could see it trying in a helpless sort of way to fly up into a tree.</flow:p>
<flow:p>By the time she had caught the flamingo and brought it back, the fight was over, and both the hedgehogs were out of sight: 'but it doesn't matter much,' thought Alice, 'as all the arches are gone from this side of the ground.' So she tucked it away under her arm, that it might not escape again, and went back for a little more conversation with her friend.</flow:p>
<flow:p>When she got back to the Cheshire Cat, she was surprised to find quite a large crowd collected round it: there was a dispute going on between the executioner, the King, and the Queen, who were all talking at once, while all the rest were quite silent, and looked very uncomfortable.</flow:p>
<flow:p>The moment Alice appeared, she was appealed to by all three to settle the question, and they repeated their arguments to her, though, as they all spoke at once, she found it very hard indeed to make out exactly what they said.</flow:p>
<flow:p>The executioner's argument was, that you couldn't cut off a head unless there was a body to cut it off from: that he had never had to do such a thing before, and he wasn't going to begin at HIS time of life.</flow:p>
<flow:p>The King's argument was, that anything that had a head could be beheaded, and that you weren't to talk nonsense.</flow:p>
<flow:p>The Queen's argument was, that if something wasn't done about it in less than no time she'd have everybody executed, all round. (It was this last remark that had made the whole party look so grave and anxious.)</flow:p>
<flow:p>Alice could think of nothing else to say but 'It belongs to the Duchess: you'd better ask Her about it.'</flow:p>
<flow:p>'She's in prison,' the Queen said to the executioner: 'fetch her here.' And the executioner went off like an arrow.</flow:p>
<flow:p>The Cat's head began fading away the moment he was gone, and, by the time he had come back with the Dutchess, it had entirely disappeared; so the King and the executioner ran wildly up and down looking for it, while the rest of the party went back to the game.</flow:p>IX. The Mock Turtle's Story<flow:p textAlign="center" fontSize="24">Chapter IX</flow:p>
<flow:p textAlign="center" fontSize="24">The Mock Turtle's Story</flow:p>
<flow:p>'You can't think how glad I am to see you again, you dear old thing!' said the Duchess, as she tucked her arm affectionately into Alice's, and they walked off together.</flow:p>
<flow:p>Alice was very glad to find her in such a pleasant temper, and thought to herself that perhaps it was only the pepper that had made her so savage when they met in the kitchen.</flow:p>
<flow:p>'When I'M a Duchess,' she said to herself, (not in a very hopeful tone though), 'I won't have any pepper in my kitchen At All. Soup does very well without--Maybe it's always pepper that makes people hot-tempered,' she went on, very much pleased at having found out a new kind of rule, 'and vinegar that makes them sour--and camomile that makes them bitter--and--and barley-sugar and such things that make children sweet-tempered. I only wish people knew that: then they wouldn't be so stingy about it, you know--'</flow:p>
<flow:p>She had quite forgotten the Duchess by this time, and was a little startled when she heard her voice close to her ear. 'You're thinking about something, my dear, and that makes you forget to talk. I can't tell you just now what the moral of that is, but I shall remember it in a bit.'</flow:p>
<flow:p>'Perhaps it hasn't one,' Alice ventured to remark.</flow:p>
<flow:p>'Tut, tut, child!' said the Duchess. 'Everything's got a moral, if only you can find it.' And she squeezed herself up closer to Alice's side as she spoke.</flow:p>
<flow:p>Alice did not much like keeping so close to her: first, because the Duchess was Very ugly; and secondly, because she was exactly the right height to rest her chin upon Alice's shoulder, and it was an uncomfortably sharp chin. However, she did not like to be rude, so she bore it as well as she could.</flow:p>
<flow:p>'The game's going on rather better now,' she said, by way of keeping up the conversation a little.</flow:p>
<flow:p>''Tis so,' said the Duchess: 'and the moral of that is--"Oh, 'tis love, 'tis love, that makes the world go round!"'</flow:p>
<flow:p>'Somebody said,' Alice whispered, 'that it's done by everybody minding their own business!'</flow:p>
<flow:p>'Ah, well! It means much the same thing,' said the Duchess, digging her sharp little chin into Alice's shoulder as she added, 'and the moral of That is--"Take care of the sense, and the sounds will take care of themselves."'</flow:p>
<flow:p>'How fond she is of finding morals in things!' Alice thought to herself.</flow:p>
<flow:p>'I dare say you're wondering why I don't put my arm round your waist,' the Duchess said after a pause: 'the reason is, that I'm doubtful about the temper of your flamingo. Shall I try the experiment?'</flow:p>
<flow:p>'HE might bite,' Alice cautiously replied, not feeling at all anxious to have the experiment tried.</flow:p>
<flow:p>'Very true,' said the Duchess: 'flamingoes and mustard both bite. And the moral of that is--"Birds of a feather flock together."'</flow:p>
<flow:p>'Only mustard isn't a bird,' Alice remarked.</flow:p>
<flow:p>'Right, as usual,' said the Duchess: 'what a clear way you have of putting things!'</flow:p>
<flow:p>'It's a mineral, I Think,' said Alice.</flow:p>
<flow:p>'Of course it is,' said the Duchess, who seemed ready to agree to everything that Alice said; 'there's a large mustard-mine near here. And the moral of that is--"The more there is of mine, the less there is of yours."'</flow:p>
<flow:p>'Oh, I know!' exclaimed Alice, who had not attended to this last remark, 'it's a vegetable. It doesn't look like one, but it is.'</flow:p>
<flow:p>'I quite agree with you,' said the Duchess; 'and the moral of that is--"Be what you would seem to be"--or if you'd like it put more simply--"Never imagine yourself not to be otherwise than what it might appear to others that what you were or might have been was not otherwise than what you had been would have appeared to them to be otherwise."'</flow:p>
<flow:p>'I think I should understand that better,' Alice said very politely, 'if I had it written down: but I can't quite follow it as you say it.'</flow:p>
<flow:p>'That's nothing to what I could say if I chose,' the Duchess replied, in a pleased tone.</flow:p>
<flow:p>'Pray don't trouble yourself to say it any longer than that,' said Alice.</flow:p>
<flow:p>'Oh, don't talk about trouble!' said the Duchess. 'I make you a present of everything I've said as yet.'</flow:p>
<flow:p>'A cheap sort of present!' thought Alice. 'I'm glad they don't give birthday presents like that!' But she did not venture to say it out loud.</flow:p>
<flow:p>'Thinking again?' the Duchess asked, with another dig of her sharp little chin.</flow:p>
<flow:p>'I've a right to think,' said Alice sharply, for she was beginning to feel a little worried.</flow:p>
<flow:p>'Just about as much right,' said the Duchess, 'as pigs have to fly; and the m--'</flow:p>
<flow:p>But here, to Alice's great surprise, the Duchess's voice died away, even in the middle of her favourite word 'moral,' and the arm that was linked into hers began to tremble. Alice looked up, and there stood the Queen in front of them, with her arms folded, frowning like a thunderstorm.</flow:p>
<flow:p>'A fine day, your Majesty!' the Duchess began in a low, weak voice.</flow:p>
<flow:p>'Now, I give you fair warning,' shouted the Queen, stamping on the ground as she spoke; 'either you or your head must be off, and that in about half no time! Take your choice!'</flow:p>
<flow:p>The Duchess took her choice, and was gone in a moment.</flow:p>
<flow:p>'Let's go on with the game,' the Queen said to Alice; and Alice was too much frightened to say a word, but slowly followed her back to the croquet-ground.</flow:p>
<flow:p>The other guests had taken advantage of the Queen's absence, and were resting in the shade: however, the moment they saw her, they hurried back to the game, the Queen merely remarking that a moment's delay would cost them their lives.</flow:p>
<flow:p>All the time they were playing the Queen never left off quarrelling with the other players, and shouting 'Off with his head!' or 'Off with her head!' Those whom she sentenced were taken into custody by the soldiers, who of course had to leave off being arches to do this, so that by the end of half an hour or so there were no arches left, and all the players, except the King, the Queen, and Alice, were in custody and under sentence of execution.</flow:p>
<flow:p>Then the Queen left off, quite out of breath, and said to Alice, 'Have you seen the Mock Turtle yet?'</flow:p>
<flow:p>'No,' said Alice. 'I don't even know what a Mock Turtle is.'</flow:p>
<flow:p>'It's the thing Mock Turtle Soup is made from,' said the Queen.</flow:p>
<flow:p>'I never saw one, or heard of one,' said Alice.</flow:p>
<flow:p>'Come on, then,' said the Queen, 'and he shall tell you his history,'</flow:p>
<flow:p>As they walked off together, Alice heard the King say in a low voice, to the company generally, 'You are all pardoned.' 'Come, That's a good thing!' she said to herself, for she had felt quite unhappy at the number of executions the Queen had ordered.</flow:p>
<flow:p>They very soon came upon a Gryphon, lying fast asleep in the sun. (IF you don't know what a Gryphon is, look at the picture.) 'Up, lazy thing!' said the Queen, 'and take this young lady to see the Mock Turtle, and to hear his history. I must go back and see after some executions I have ordered'; and she walked off, leaving Alice alone with the Gryphon. Alice did not quite like the look of the creature, but on the whole she thought it would be quite as safe to stay with it as to go after that savage Queen: so she waited.</flow:p>
<flow:p>The Gryphon sat up and rubbed its eyes: then it watched the Queen till she was out of sight: then it chuckled. 'What fun!' said the Gryphon, half to itself, half to Alice.</flow:p>
<flow:p>'What Is the fun?' said Alice.</flow:p>
<flow:p>'Why, She,' said the Gryphon. 'It's all her fancy, that: they never executes nobody, you know. Come on!'</flow:p>
<flow:p>'Everybody says "come on!" here,' thought Alice, as she went slowly after it: 'I never was so ordered about in all my life, never!'</flow:p>
<flow:p>They had not gone far before they saw the Mock Turtle in the distance, sitting sad and lonely on a little ledge of rock, and, as they came nearer, Alice could hear him sighing as if his heart would break. She pitied him deeply. 'What is his sorrow?' she asked the Gryphon, and the Gryphon answered, very nearly in the same words as before, 'It's all his fancy, that: he hasn't got no sorrow, you know. Come on!'</flow:p>
<flow:p>So they went up to the Mock Turtle, who looked at them with large eyes full of tears, but said nothing.</flow:p>
<flow:p>'This here young lady,' said the Gryphon, 'she wants for to know your history, she do.'</flow:p>
<flow:p>'I'll tell it her,' said the Mock Turtle in a deep, hollow tone: 'sit down, both of you, and don't speak a word till I've finished.'</flow:p>
<flow:p>So they sat down, and nobody spoke for some minutes. Alice thought to herself, 'I don't see how he can EVEN finish, if he doesn't begin.' But she waited patiently.</flow:p>
<flow:p>'Once,' said the Mock Turtle at last, with a deep sigh, 'I was a real Turtle.'</flow:p>
<flow:p>These words were followed by a very long silence, broken only by an occasional exclamation of 'Hjckrrh!' from the Gryphon, and the constant heavy sobbing of the Mock Turtle. Alice was very nearly getting up and saying, 'Thank you, sir, for your interesting story,' but she could not help thinking there Must be more to come, so she sat still and said nothing.</flow:p>
<flow:p>'When we were little,' the Mock Turtle went on at last, more calmly, though still sobbing a little now and then, 'we went to school in the sea. The master was an old Turtle--we used to call him Tortoise--'</flow:p>
<flow:p>'Why did you call him Tortoise, if he wasn't one?' Alice asked.</flow:p>
<flow:p>'We called him Tortoise because he taught us,' said the Mock Turtle angrily: 'really you are very dull!'</flow:p>
<flow:p>'You ought to be ashamed of yourself for asking such a simple question,' added the Gryphon; and then they both sat silent and looked at poor Alice, who felt ready to sink into the earth. At last the Gryphon said to the Mock Turtle, 'Drive on, old fellow! Don't be all day about it!' and he went on in these words:</flow:p>
<flow:p>'Yes, we went to school in the sea, though you mayn't believe it--'</flow:p>
<flow:p>'I never said I didn't!' interrupted Alice.</flow:p>
<flow:p>'You did,' said the Mock Turtle.</flow:p>
<flow:p>'Hold your tongue!' added the Gryphon, before Alice could speak again. The Mock Turtle went on.</flow:p>
<flow:p>'We had the best of educations--in fact, we went to school every day--'</flow:p>
<flow:p>'I'VE been to a day-school, too,' said Alice; 'you needn't be so proud as all that.'</flow:p>
<flow:p>'With extras?' asked the Mock Turtle a little anxiously.</flow:p>
<flow:p>'Yes,' said Alice, 'we learned French and music.'</flow:p>
<flow:p>'And washing?' said the Mock Turtle.</flow:p>
<flow:p>'Certainly not!' said Alice indignantly.</flow:p>
<flow:p>'Ah! then yours wasn't a really good school,' said the Mock Turtle in a tone of great relief. 'Now at Ours they had at the end of the bill, "French, music, And Washing--extra."'</flow:p>
<flow:p>'You couldn't have wanted it much,' said Alice; 'living at the bottom of the sea.'</flow:p>
<flow:p>'I couldn't afford to learn it.' said the Mock Turtle with a sigh. 'I only took the regular course.'</flow:p>
<flow:p>'What was that?' inquired Alice.</flow:p>
<flow:p>'Reeling and Writhing, of course, to begin with,' the Mock Turtle replied; 'and then the different branches of Arithmetic-- Ambition, Distraction, Uglification, and Derision.'</flow:p>
<flow:p>'I never heard of "Uglification,"' Alice ventured to say. 'What is it?'</flow:p>
<flow:p>The Gryphon lifted up both its paws in surprise. 'What! Never heard of uglifying!' it exclaimed. 'You know what to beautify is, I suppose?'</flow:p>
<flow:p>'Yes,' said Alice doubtfully: 'it means--to--make--anything--prettier.'</flow:p>
<flow:p>'Well, then,' the Gryphon went on, 'if you don't know what to uglify is, you Are a simpleton.'</flow:p>
<flow:p>Alice did not feel encouraged to ask any more questions about it, so she turned to the Mock Turtle, and said 'What else had you to learn?'</flow:p>
<flow:p>'Well, there was Mystery,' the Mock Turtle replied, counting off the subjects on his flappers, '--Mystery, ancient and modern, with Seaography: then Drawling--the Drawling-master was an old conger-eel, that used to come once a week: He taught us Drawling, Stretching, and Fainting in Coils.'</flow:p>
<flow:p>'What was That like?' said Alice.</flow:p>
<flow:p>'Well, I can't show it you myself,' the Mock Turtle said: 'I'm too stiff. And the Gryphon never learnt it.'</flow:p>
<flow:p>'Hadn't time,' said the Gryphon: 'I went to the Classics master, though. He was an old crab, He was.'</flow:p>
<flow:p>'I never went to him,' the Mock Turtle said with a sigh: 'he taught Laughing and Grief, they used to say.'</flow:p>
<flow:p>'So he did, so he did,' said the Gryphon, sighing in his turn; and both creatures hid their faces in their paws.</flow:p>
<flow:p>'And how many hours a day did you do lessons?' said Alice, in a hurry to change the subject.</flow:p>
<flow:p>'Ten hours the first day,' said the Mock Turtle: 'nine the next, and so on.'</flow:p>
<flow:p>'What a curious plan!' exclaimed Alice.</flow:p>
<flow:p>'That's the reason they're called lessons,' the Gryphon remarked: 'because they lessen from day to day.'</flow:p>
<flow:p>This was quite a new idea to Alice, and she thought it over a little before she made her next remark. 'Then the eleventh day must have been a holiday?'</flow:p>
<flow:p>'Of course it was,' said the Mock Turtle.</flow:p>
<flow:p>'And how did you manage on the twelfth?' Alice went on eagerly.</flow:p>
<flow:p>'That's enough about lessons,' the Gryphon interrupted in a very decided tone: 'tell her something about the games now.'</flow:p>X. The Lobster Quadrille<flow:p textAlign="center" fontSize="24">Chapter X</flow:p>
<flow:p textAlign="center" fontSize="24">The Lobster Quadrille</flow:p>
<flow:p>The Mock Turtle sighed deeply, and drew the back of one flapper across his eyes. He looked at Alice, and tried to speak, but for a minute or two sobs choked his voice. 'Same as if he had a bone in his throat,' said the Gryphon: and it set to work shaking him and punching him in the back. At last the Mock Turtle recovered his voice, and, with tears running down his cheeks, he went on again:--</flow:p>
<flow:p>'You may not have lived much under the sea--' ('I haven't,' said Alice)-- 'and perhaps you were never even introduced to a lobster--' (Alice began to say 'I once tasted--' but checked herself hastily, and said 'No, never') '--so you can have no idea what a delightful thing a Lobster Quadrille is!'</flow:p>
<flow:p>'No, indeed,' said Alice. 'What sort of a dance is it?'</flow:p>
<flow:p>'Why,' said the Gryphon, 'you first form into a line along the sea-shore--'</flow:p>
<flow:p>'Two lines!' cried the Mock Turtle. 'Seals, turtles, salmon, and so on; then, when you've cleared all the jelly-fish out of the way--'</flow:p>
<flow:p>'That generally takes some time,' interrupted the Gryphon.</flow:p>
<flow:p>'--you advance twice--'</flow:p>
<flow:p>'Each with a lobster as a partner!' cried the Gryphon.</flow:p>
<flow:p>'Of course,' the Mock Turtle said: 'advance twice, set to partners--'</flow:p>
<flow:p>'--change lobsters, and retire in same order,' continued the Gryphon.</flow:p>
<flow:p>'Then, you know,' the Mock Turtle went on, 'you throw the--'</flow:p>
<flow:p>'The lobsters!' shouted the Gryphon, with a bound into the air.</flow:p>
<flow:p>'--as far out to sea as you can--'</flow:p>
<flow:p>'Swim after them!' screamed the Gryphon.</flow:p>
<flow:p>'Turn a somersault in the sea!' cried the Mock Turtle, capering wildly about.</flow:p>
<flow:p>'Change lobster's again!' yelled the Gryphon at the top of its voice.</flow:p>
<flow:p>'Back to land again, and that's all the first figure,' said the Mock Turtle, suddenly dropping his voice; and the two creatures, who had been jumping about like mad things all this time, sat down again very sadly and quietly, and looked at Alice.</flow:p>
<flow:p>'It must be a very pretty dance,' said Alice timidly.</flow:p>
<flow:p>'Would you like to see a little of it?' said the Mock Turtle.</flow:p>
<flow:p>'Very much indeed,' said Alice.</flow:p>
<flow:p>'Come, let's try the first figure!' said the Mock Turtle to the Gryphon. 'We can do without lobsters, you know. Which shall sing?'</flow:p>
<flow:p>'Oh, You sing,' said the Gryphon. 'I've forgotten the words.'</flow:p>
<flow:p>So they began solemnly dancing round and round Alice, every now and then treading on her toes when they passed too close, and waving their forepaws to mark the time, while the Mock Turtle sang this, very slowly and sadly:--</flow:p>
<flow:p>'"Will you walk a little faster?" said a whiting to a snail. "There's a porpoise close behind us, and he's treading on my tail. See how eagerly the lobsters and the turtles all advance! They are waiting on the shingle--will you come and join the dance?</flow:p>
<flow:p>Will you, won't you, will you, won't you, will you join the dance? Will you, won't you, will you, won't you, won't you join the dance?</flow:p>"You can really have no notion how delightful it will beWhen they take us up and throw us, with the lobsters, out to sea!"But the snail replied "Too far, too far!" and gave a look askance--Said he thanked the whiting kindly, but he would not join the dance.Would not, could not, would not, could not, would not join the dance.Would not, could not, would not, could not, could not join the dance.<flow:p>'"What matters it how far we go?" his scaly friend replied. "There is another shore, you know, upon the other side. The further off from England the nearer is to France-- Then turn not pale, beloved snail, but come and join the dance.</flow:p>Will you, won't you, will you, won't you, will you join the dance?Will you, won't you, will you, won't you, won't you join the dance?"'<flow:p>'Thank you, it's a very interesting dance to watch,' said Alice, feeling very glad that it was over at last: 'and I do so like that curious song about the whiting!'</flow:p>
<flow:p>'Oh, as to the whiting,' said the Mock Turtle, 'they--you've seen them, of course?'</flow:p>
<flow:p>'Yes,' said Alice, 'I've often seen them at dinn--' she checked herself hastily.</flow:p>
<flow:p>'I don't know where Dinn may be,' said the Mock Turtle, 'but if you've seen them so often, of course you know what they're like.'</flow:p>
<flow:p>'I believe so,' Alice replied thoughtfully. 'They have their tails in their mouths--and they're all over crumbs.'</flow:p>
<flow:p>'You're wrong about the crumbs,' said the Mock Turtle: 'crumbs would all wash off in the sea. But they Have their tails in their mouths; and the reason is--' here the Mock Turtle yawned and shut his eyes.--'Tell her about the reason and all that,' he said to the Gryphon.</flow:p>
<flow:p>'The reason is,' said the Gryphon, 'that they Would go with the lobsters to the dance. So they got thrown out to sea. So they had to fall a long way. So they got their tails fast in their mouths. So they couldn't get them out again. That's all.'</flow:p>
<flow:p>'Thank you,' said Alice, 'it's very interesting. I never knew so much about a whiting before.'</flow:p>
<flow:p>'I can tell you more than that, if you like,' said the Gryphon. 'Do you know why it's called a whiting?'</flow:p>
<flow:p>'I never thought about it,' said Alice. 'Why?'</flow:p>
<flow:p>'It Does The Boots And Shoes.' the Gryphon replied very solemnly.</flow:p>
<flow:p>Alice was thoroughly puzzled. 'Does the boots and shoes!' she repeated in a wondering tone.</flow:p>
<flow:p>'Why, what are Your shoes done with?' said the Gryphon. 'I mean, what makes them so shiny?'</flow:p>
<flow:p>Alice looked down at them, and considered a little before she gave her answer. 'They're done with blacking, I believe.'</flow:p>
<flow:p>'Boots and shoes under the sea,' the Gryphon went on in a deep voice, 'are done with a whiting. Now you know.'</flow:p>
<flow:p>'And what are they made of?' Alice asked in a tone of great curiosity.</flow:p>
<flow:p>'Soles and eels, of course,' the Gryphon replied rather impatiently: 'any shrimp could have told you that.'</flow:p>
<flow:p>'If I'd been the whiting,' said Alice, whose thoughts were still running on the song, 'I'd have said to the porpoise, "Keep back, please: we don't want You with us!"'</flow:p>
<flow:p>'They were obliged to have him with them,' the Mock Turtle said: 'no wise fish would go anywhere without a porpoise.'</flow:p>
<flow:p>'Wouldn't it really?' said Alice in a tone of great surprise.</flow:p>
<flow:p>'Of course not,' said the Mock Turtle: 'why, if a fish came to Me, and told me he was going a journey, I should say "With what porpoise?"'</flow:p>
<flow:p>'Don't you mean "purpose"?' said Alice.</flow:p>
<flow:p>'I mean what I say,' the Mock Turtle replied in an offended tone. And the Gryphon added 'Come, let's hear some of Your adventures.'</flow:p>
<flow:p>'I could tell you my adventures--beginning from this morning,' said Alice a little timidly: 'but it's no use going back to yesterday, because I was a different person then.'</flow:p>
<flow:p>'Explain all that,' said the Mock Turtle.</flow:p>
<flow:p>'No, no! The adventures first,' said the Gryphon in an impatient tone: 'explanations take such a dreadful time.'</flow:p>
<flow:p>So Alice began telling them her adventures from the time when she first saw the White Rabbit. She was a little nervous about it just at first, the two creatures got so close to her, one on each side, and opened their eyes and mouths so Very wide, but she gained courage as she went on. Her listeners were perfectly quiet till she got to the part about her repeating 'You Are Old, Father William,' to the Caterpillar, and the words all coming different, and then the Mock Turtle drew a long breath, and said 'That's very curious.'</flow:p>
<flow:p>'It's all about as curious as it can be,' said the Gryphon.</flow:p>
<flow:p>'It all came different!' the Mock Turtle repeated thoughtfully. 'I should like to hear her try and repeat something now. Tell her to begin.' He looked at the Gryphon as if he thought it had some kind of authority over Alice.</flow:p>
<flow:p>'Stand up and repeat "'Tis The Voice Of The Sluggard,"' said the Gryphon.</flow:p>
<flow:p>'How the creatures order one about, and make one repeat lessons!' thought Alice; 'I might as well be at school at once.' However, she got up, and began to repeat it, but her head was so full of the Lobster Quadrille, that she hardly knew what she was saying, and the words came very queer indeed:--</flow:p>''Tis the voice of the Lobster; I heard him declare,"You have baked me too brown, I must sugar my hair."As a duck with its eyelids, so he with his noseTrims his belt and his buttons, and turns out his toes.'[later editions continued as followsWhen the sands are all dry, he is gay as a lark,And will talk in contemptuous tones of the Shark,But, when the tide rises and sharks are around,His voice has a timid and tremulous sound.]<flow:p>'That's different from what I used to say when I was a child,' said the Gryphon.</flow:p>
<flow:p>'Well, I never heard it before,' said the Mock Turtle; 'but it sounds uncommon nonsense.'</flow:p>
<flow:p>Alice said nothing; she had sat down with her face in her hands, wondering if anything would Ever happen in a natural way again.</flow:p>
<flow:p>'I should like to have it explained,' said the Mock Turtle.</flow:p>
<flow:p>'She can't explain it,' said the Gryphon hastily. 'Go on with the next verse.'</flow:p>
<flow:p>'But about his toes?' the Mock Turtle persisted. 'How COULD he turn them out with his nose, you know?'</flow:p>
<flow:p>'It's the first position in dancing.' Alice said; but was dreadfully puzzled by the whole thing, and longed to change the subject.</flow:p>
<flow:p>'Go on with the next verse,' the Gryphon repeated impatiently: 'it begins "I passed by his garden."'</flow:p>
<flow:p>Alice did not dare to disobey, though she felt sure it would all come wrong, and she went on in a trembling voice:--</flow:p>'I passed by his garden, and marked, with one eye,How the Owl and the Panther were sharing a pie--'[later editions continued as followsThe Panther took pie-crust, and gravy, and meat,While the Owl had the dish as its share of the treat.When the pie was all finished, the Owl, as a boon,Was kindly permitted to pocket the spoon:While the Panther received knife and fork with a growl,And concluded the banquet--]<flow:p>'What Is the use of repeating all that stuff,' the Mock Turtle interrupted, 'if you don't explain it as you go on? It's by far the most confusing thing I ever heard!'</flow:p>
<flow:p>'Yes, I think you'd better leave off,' said the Gryphon: and Alice was only too glad to do so.</flow:p>
<flow:p>'Shall we try another figure of the Lobster Quadrille?' the Gryphon went on. 'Or would you like the Mock Turtle to sing you a song?'</flow:p>
<flow:p>'Oh, a song, please, if the Mock Turtle would be so kind,' Alice replied, so eagerly that the Gryphon said, in a rather offended tone, 'Hm! No accounting for tastes! Sing her "Turtle Soup," will you, old fellow?'</flow:p>
<flow:p>The Mock Turtle sighed deeply, and began, in a voice sometimes choked with sobs, to sing this:--</flow:p>'Beautiful Soup, so rich and green,Waiting in a hot tureen!Who for such dainties would not stoop?Soup of the evening, beautiful Soup!Soup of the evening, beautiful Soup!Beau--ootiful Soo--oop!Beau--ootiful Soo--oop!Soo--oop of the e--e--evening,Beautiful, beautiful Soup!'Beautiful Soup! Who cares for fish,Game, or any other dish?Who would not give all else for two pennyworth only of beautiful Soup?Pennyworth only of beautiful Soup?Beau--ootiful Soo--oop!Beau--ootiful Soo--oop!Soo--oop of the e--e--evening,Beautiful, beauti--Ful Soup!'<flow:p>'Chorus again!' cried the Gryphon, and the Mock Turtle had just begun to repeat it, when a cry of 'The trial's beginning!' was heard in the distance.</flow:p>
<flow:p>'Come on!' cried the Gryphon, and, taking Alice by the hand, it hurried off, without waiting for the end of the song.</flow:p>
<flow:p>'What trial is it?' Alice panted as she ran; but the Gryphon only answered 'Come on!' and ran the faster, while more and more faintly came, carried on the breeze that followed them, the melancholy words:--</flow:p>'Soo--oop of the e--e--evening,Beautiful, beautiful Soup!'XI. Who Stole the Tarts?<flow:p textAlign="center" fontSize="24">Chapter XI</flow:p>
<flow:p textAlign="center" fontSize="24">Who Stole the Tarts?</flow:p>
<flow:p>The King and Queen of Hearts were seated on their throne when they arrived, with a great crowd assembled about them--all sorts of little birds and beasts, as well as the whole pack of cards: the Knave was standing before them, in chains, with a soldier on each side to guard him; and near the King was the White Rabbit, with a trumpet in one hand, and a scroll of parchment in the other. In the very middle of the court was a table, with a large dish of tarts upon it: they looked so good, that it made Alice quite hungry to look at them--'I wish they'd get the trial done,' she thought, 'and hand round the refreshments!' But there seemed to be no chance of this, so she began looking at everything about her, to pass away the time.</flow:p>
<flow:p>Alice had never been in a court of justice before, but she had read about them in books, and she was quite pleased to find that she knew the name of nearly everything there. 'That's the judge,' she said to herself, 'because of his great wig.'</flow:p>
<flow:p>The judge, by the way, was the King; and as he wore his crown over the wig, (look at the frontispiece if you want to see how he did it,) he did not look at all comfortable, and it was certainly not becoming.</flow:p>
<flow:p>'And that's the jury-box,' thought Alice, 'and those twelve creatures,' (she was obliged to say 'creatures,' you see, because some of them were animals, and some were birds,) 'I suppose they are the jurors.' She said this last word two or three times over to herself, being rather proud of it: for she thought, and rightly too, that very few little girls of her age knew the meaning of it at all. However, 'jury-men' would have done just as well.</flow:p>
<flow:p>The twelve jurors were all writing very busily on slates. 'What are they doing?' Alice whispered to the Gryphon. 'They can't have anything to put down yet, before the trial's begun.'</flow:p>
<flow:p>'They're putting down their names,' the Gryphon whispered in reply, 'for fear they should forget them before the end of the trial.'</flow:p>
<flow:p>'Stupid things!' Alice began in a loud, indignant voice, but she stopped hastily, for the White Rabbit cried out, 'Silence in the court!' and the King put on his spectacles and looked anxiously round, to make out who was talking.</flow:p>
<flow:p>Alice could see, as well as if she were looking over their shoulders, that all the jurors were writing down 'stupid things!' on their slates, and she could even make out that one of them didn't know how to spell 'stupid,' and that he had to ask his neighbour to tell him. 'A nice muddle their slates'll be in before the trial's over!' thought Alice.</flow:p>
<flow:p>One of the jurors had a pencil that squeaked. This of course, Alice could not stand, and she went round the court and got behind him, and very soon found an opportunity of taking it away. She did it so quickly that the poor little juror (it was Bill, the Lizard) could not make out at all what had become of it; so, after hunting all about for it, he was obliged to write with one finger for the rest of the day; and this was of very little use, as it left no mark on the slate.</flow:p>
<flow:p>'Herald, read the accusation!' said the King.</flow:p>
<flow:p>On this the White Rabbit blew three blasts on the trumpet, and then unrolled the parchment scroll, and read as follows:--</flow:p>'The Queen of Hearts, she made some tarts,All on a summer day:The Knave of Hearts, he stole those tarts,And took them quite away!'<flow:p>'Consider your verdict,' the King said to the jury.</flow:p>
<flow:p>'Not yet, not yet!' the Rabbit hastily interrupted. 'There's a great deal to come before that!'</flow:p>
<flow:p>'Call the first witness,' said the King; and the White Rabbit blew three blasts on the trumpet, and called out, 'First witness!'</flow:p>
<flow:p>The first witness was the Hatter. He came in with a teacup in one hand and a piece of bread-and-butter in the other. 'I beg pardon, your Majesty,' he began, 'for bringing these in: but I hadn't quite finished my tea when I was sent for.'</flow:p>
<flow:p>'You ought to have finished,' said the King. 'When did you begin?'</flow:p>
<flow:p>The Hatter looked at the March Hare, who had followed him into the court, arm-in-arm with the Dormouse. 'Fourteenth of March, I think it was,' he said.</flow:p>
<flow:p>'Fifteenth,' said the March Hare.</flow:p>
<flow:p>'Sixteenth,' added the Dormouse.</flow:p>
<flow:p>'Write that down,' the King said to the jury, and the jury eagerly wrote down all three dates on their slates, and then added them up, and reduced the answer to shillings and pence.</flow:p>
<flow:p>'Take off your hat,' the King said to the Hatter.</flow:p>
<flow:p>'It isn't mine,' said the Hatter.</flow:p>
<flow:p>'Stolen!' the King exclaimed, turning to the jury, who instantly made a memorandum of the fact.</flow:p>
<flow:p>'I keep them to sell,' the Hatter added as an explanation; 'I've none of my own. I'm a hatter.'</flow:p>
<flow:p>Here the Queen put on her spectacles, and began staring at the Hatter, who turned pale and fidgeted.</flow:p>
<flow:p>'Give your evidence,' said the King; 'and don't be nervous, or I'll have you executed on the spot.'</flow:p>
<flow:p>This did not seem to encourage the witness at all: he kept shifting from one foot to the other, looking uneasily at the Queen, and in his confusion he bit a large piece out of his teacup instead of the bread-and-butter.</flow:p>
<flow:p>Just at this moment Alice felt a very curious sensation, which puzzled her a good deal until she made out what it was: she was beginning to grow larger again, and she thought at first she would get up and leave the court; but on second thoughts she decided to remain where she was as long as there was room for her.</flow:p>
<flow:p>'I wish you wouldn't squeeze so.' said the Dormouse, who was sitting next to her. 'I can hardly breathe.'</flow:p>
<flow:p>'I can't help it,' said Alice very meekly: 'I'm growing.'</flow:p>
<flow:p>'You've no right to grow here,' said the Dormouse.</flow:p>
<flow:p>'Don't talk nonsense,' said Alice more boldly: 'you know you're growing too.'</flow:p>
<flow:p>'Yes, but I grow at a reasonable pace,' said the Dormouse: 'not in that ridiculous fashion.' And he got up very sulkily and crossed over to the other side of the court.</flow:p>
<flow:p>All this time the Queen had never left off staring at the Hatter, and, just as the Dormouse crossed the court, she said to one of the officers of the court, 'Bring me the list of the singers in the last concert!' on which the wretched Hatter trembled so, that he shook both his shoes off.</flow:p>
<flow:p>'Give your evidence,' the King repeated angrily, 'or I'll have you executed, whether you're nervous or not.'</flow:p>
<flow:p>'I'm a poor man, your Majesty,' the Hatter began, in a trembling voice, '--and I hadn't begun my tea--not above a week or so--and what with the bread-and-butter getting so thin--and the twinkling of the tea--'</flow:p>
<flow:p>'The twinkling of the what?' said the King.</flow:p>
<flow:p>'It began with the tea,' the Hatter replied.</flow:p>
<flow:p>'Of course twinkling begins with a T!' said the King sharply. 'Do you take me for a dunce? Go on!'</flow:p>
<flow:p>'I'm a poor man,' the Hatter went on, 'and most things twinkled after that--only the March Hare said--'</flow:p>
<flow:p>'I didn't!' the March Hare interrupted in a great hurry.</flow:p>
<flow:p>'You did!' said the Hatter.</flow:p>
<flow:p>'I deny it!' said the March Hare.</flow:p>
<flow:p>'He denies it,' said the King: 'leave out that part.'</flow:p>
<flow:p>'Well, at any rate, the Dormouse said--' the Hatter went on, looking anxiously round to see if he would deny it too: but the Dormouse denied nothing, being fast asleep.</flow:p>
<flow:p>'After that,' continued the Hatter, 'I cut some more bread- and-butter--'</flow:p>
<flow:p>'But what did the Dormouse say?' one of the jury asked.</flow:p>
<flow:p>'That I can't remember,' said the Hatter.</flow:p>
<flow:p>'You Must remember,' remarked the King, 'or I'll have you executed.'</flow:p>
<flow:p>The miserable Hatter dropped his teacup and bread-and-butter, and went down on one knee. 'I'm a poor man, your Majesty,' he began.</flow:p>
<flow:p>'You're a very poor speaker,' said the King.</flow:p>
<flow:p>Here one of the guinea-pigs cheered, and was immediately suppressed by the officers of the court. (As that is rather a hard word, I will just explain to you how it was done. They had a large canvas bag, which tied up at the mouth with strings: into this they slipped the guinea-pig, head first, and then sat upon it.)</flow:p>
<flow:p>'I'm glad I've seen that done,' thought Alice. 'I've so often read in the newspapers, at the end of trials, "There was some attempts at applause, which was immediately suppressed by the officers of the court," and I never understood what it meant till now.'</flow:p>
<flow:p>'If that's all you know about it, you may stand down,' continued the King.</flow:p>
<flow:p>'I can't go no lower,' said the Hatter: 'I'm on the floor, as it is.'</flow:p>
<flow:p>'Then you may SIT down,' the King replied.</flow:p>
<flow:p>Here the other guinea-pig cheered, and was suppressed.</flow:p>
<flow:p>'Come, that finished the guinea-pigs!' thought Alice. 'Now we shall get on better.'</flow:p>
<flow:p>'I'd rather finish my tea,' said the Hatter, with an anxious look at the Queen, who was reading the list of singers.</flow:p>
<flow:p>'You may go,' said the King, and the Hatter hurriedly left the court, without even waiting to put his shoes on.</flow:p>
<flow:p>'--and just take his head off outside,' the Queen added to one of the officers: but the Hatter was out of sight before the officer could get to the door.</flow:p>
<flow:p>'Call the next witness!' said the King.</flow:p>
<flow:p>The next witness was the Duchess's cook. She carried the pepper-box in her hand, and Alice guessed who it was, even before she got into the court, by the way the people near the door began sneezing all at once.</flow:p>
<flow:p>'Give your evidence,' said the King.</flow:p>
<flow:p>'Shan't,' said the cook.</flow:p>
<flow:p>The King looked anxiously at the White Rabbit, who said in a low voice, 'Your Majesty must cross-examine This witness.'</flow:p>
<flow:p>'Well, if I must, I must,' the King said, with a melancholy air, and, after folding his arms and frowning at the cook till his eyes were nearly out of sight, he said in a deep voice, 'What are tarts made of?'</flow:p>
<flow:p>'Pepper, mostly,' said the cook.</flow:p>
<flow:p>'Treacle,' said a sleepy voice behind her.</flow:p>
<flow:p>'Collar that Dormouse,' the Queen shrieked out. 'Behead that Dormouse! Turn that Dormouse out of court! Suppress him! Pinch him! Off with his whiskers!'</flow:p>
<flow:p>For some minutes the whole court was in confusion, getting the Dormouse turned out, and, by the time they had settled down again, the cook had disappeared.</flow:p>
<flow:p>'Never mind!' said the King, with an air of great relief. 'Call the next witness.' And he added in an undertone to the Queen, 'Really, my dear, You must cross-examine the next witness. It quite makes my forehead ache!'</flow:p>
<flow:p>Alice watched the White Rabbit as he fumbled over the list, feeling very curious to see what the next witness would be like, '--for they haven't got much evidence Yet,' she said to herself. Imagine her surprise, when the White Rabbit read out, at the top of his shrill little voice, the name 'Alice!'</flow:p>XII. Alice's Evidence<flow:p textAlign="center" fontSize="24">Chapter XII</flow:p>
<flow:p textAlign="center" fontSize="24">Alice's Evidence</flow:p>
<flow:p>'Here!' cried Alice, quite forgetting in the flurry of the moment how large she had grown in the last few minutes, and she jumped up in such a hurry that she tipped over the jury-box with the edge of her skirt, upsetting all the jurymen on to the heads of the crowd below, and there they lay sprawling about, reminding her very much of a globe of goldfish she had accidentally upset the week before.</flow:p>
<flow:p>'Oh, I BEG your pardon!' she exclaimed in a tone of great dismay, and began picking them up again as quickly as she could, for the accident of the goldfish kept running in her head, and she had a vague sort of idea that they must be collected at once and put back into the jury-box, or they would die.</flow:p>
<flow:p>'The trial cannot proceed,' said the King in a very grave voice, 'until all the jurymen are back in their proper places-- All,' he repeated with great emphasis, looking hard at Alice as he said do.</flow:p>
<flow:p>Alice looked at the jury-box, and saw that, in her haste, she had put the Lizard in head downwards, and the poor little thing was waving its tail about in a melancholy way, being quite unable to move. She soon got it out again, and put it right; 'not that it signifies much,' she said to herself; 'I should think it would be Quite as much use in the trial one way up as the other.'</flow:p>
<flow:p>As soon as the jury had a little recovered from the shock of being upset, and their slates and pencils had been found and handed back to them, they set to work very diligently to write out a history of the accident, all except the Lizard, who seemed too much overcome to do anything but sit with its mouth open, gazing up into the roof of the court.</flow:p>
<flow:p>'What do you know about this business?' the King said to Alice.</flow:p>
<flow:p>'Nothing,' said Alice.</flow:p>
<flow:p>'Nothing Whatever?' persisted the King.</flow:p>
<flow:p>'Nothing whatever,' said Alice.</flow:p>
<flow:p>'That's very important,' the King said, turning to the jury. They were just beginning to write this down on their slates, when the White Rabbit interrupted: 'UNimportant, your Majesty means, of course,' he said in a very respectful tone, but frowning and making faces at him as he spoke.</flow:p>
<flow:p>'UNimportant, of course, I meant,' the King hastily said, and went on to himself in an undertone, 'important--unimportant-- unimportant--important--' as if he were trying which word sounded best.</flow:p>
<flow:p>Some of the jury wrote it down 'important,' and some 'unimportant.' Alice could see this, as she was near enough to look over their slates; 'but it doesn't matter a bit,' she thought to herself.</flow:p>
<flow:p>At this moment the King, who had been for some time busily writing in his note-book, cackled out 'Silence!' and read out from his book, 'Rule Forty-two. All Persons More Than A Mile High To Leave The Court.'</flow:p>
<flow:p>Everybody looked at Alice.</flow:p>
<flow:p>'I'M not a mile high,' said Alice.</flow:p>
<flow:p>'You are,' said the King.</flow:p>
<flow:p>'Nearly two miles high,' added the Queen.</flow:p>
<flow:p>'Well, I shan't go, at any rate,' said Alice: 'besides, that's not a regular rule: you invented it just now.'</flow:p>
<flow:p>'It's the oldest rule in the book,' said the King.</flow:p>
<flow:p>'Then it ought to be Number One,' said Alice.</flow:p>
<flow:p>The King turned pale, and shut his note-book hastily. 'Consider your verdict,' he said to the jury, in a low, trembling voice.</flow:p>
<flow:p>'There's more evidence to come yet, please your Majesty,' said the White Rabbit, jumping up in a great hurry; 'this paper has just been picked up.'</flow:p>
<flow:p>'What's in it?' said the Queen.</flow:p>
<flow:p>'I haven't opened it yet,' said the White Rabbit, 'but it seems to be a letter, written by the prisoner to--to somebody.'</flow:p>
<flow:p>'It must have been that,' said the King, 'unless it was written to nobody, which isn't usual, you know.'</flow:p>
<flow:p>'Who is it directed to?' said one of the jurymen.</flow:p>
<flow:p>'It isn't directed at all,' said the White Rabbit; 'in fact, there's nothing written on the Outside.' He unfolded the paper as he spoke, and added 'It isn't a letter, after all: it's a set of verses.'</flow:p>
<flow:p>'Are they in the prisoner's handwriting?' asked another of they jurymen.</flow:p>
<flow:p>'No, they're not,' said the White Rabbit, 'and that's the queerest thing about it.' (The jury all looked puzzled.)</flow:p>
<flow:p>'He must have imitated somebody else's hand,' said the King. (The jury all brightened up again.)</flow:p>
<flow:p>'Please your Majesty,' said the Knave, 'I didn't write it, and they can't prove I did: there's no name signed at the end.'</flow:p>
<flow:p>'If you didn't sign it,' said the King, 'that only makes the matter worse. You Must have meant some mischief, or else you'd have signed your name like an honest man.'</flow:p>
<flow:p>There was a general clapping of hands at this: it was the first really clever thing the King had said that day.</flow:p>
<flow:p>'That Proves his guilt,' said the Queen.</flow:p>
<flow:p>'It proves nothing of the sort!' said Alice. 'Why, you don't even know what they're about!'</flow:p>
<flow:p>'Read them,' said the King.</flow:p>
<flow:p>The White Rabbit put on his spectacles. 'Where shall I begin, please your Majesty?' he asked.</flow:p>
<flow:p>'Begin at the beginning,' the King said gravely, 'and go on till you come to the end: then stop.'</flow:p>
<flow:p>These were the verses the White Rabbit read:--</flow:p>'They told me you had been to her,And mentioned me to him:She gave me a good character,But said I could not swim.He sent them word I had not gone(We know it to be true):If she should push the matter on,What would become of you?I gave her one, they gave him two,You gave us three or more;They all returned from him to you,Though they were mine before.If I or she should chance to beInvolved in this affair,He trusts to you to set them free,Exactly as we were.My notion was that you had been(Before she had this fit)An obstacle that came betweenHim, and ourselves, and it.Don't let him know she liked them best,For this must ever beA secret, kept from all the rest,Between yourself and me.'<flow:p>'That's the most important piece of evidence we've heard yet,' said the King, rubbing his hands; 'so now let the jury--'</flow:p>
<flow:p>'If any one of them can explain it,' said Alice, (she had grown so large in the last few minutes that she wasn't a bit afraid of interrupting him,) 'I'll give him sixpence. _I_ don't believe there's an atom of meaning in it.'</flow:p>
<flow:p>The jury all wrote down on their slates, 'SHE doesn't believe there's an atom of meaning in it,' but none of them attempted to explain the paper.</flow:p>
<flow:p>'If there's no meaning in it,' said the King, 'that saves a world of trouble, you know, as we needn't try to find any. And yet I don't know,' he went on, spreading out the verses on his knee, and looking at them with one eye; 'I seem to see some meaning in them, after all. "--Said I Could Not Swim--" you can't swim, can you?' he added, turning to the Knave.</flow:p>
<flow:p>The Knave shook his head sadly. 'Do I look like it?' he said. (Which he certainly did Not, being made entirely of cardboard.)</flow:p>
<flow:p>'All right, so far,' said the King, and he went on muttering over the verses to himself: '"We Know It To Be True--" that's the jury, of course-- "I Gave Her One, They Gave Him Two--" why, that must be what he did with the tarts, you know--'</flow:p>
<flow:p>'But, it goes on "They All Returned From Him To You,"' said Alice.</flow:p>
<flow:p>'Why, there they are!' said the King triumphantly, pointing to the tarts on the table. 'Nothing can be clearer than That. Then again--"Before She Had This Fit--" you never had fits, my dear, I think?' he said to the Queen.</flow:p>
<flow:p>'Never!' said the Queen furiously, throwing an inkstand at the Lizard as she spoke. (The unfortunate little Bill had left off writing on his slate with one finger, as he found it made no mark; but he now hastily began again, using the ink, that was trickling down his face, as long as it lasted.)</flow:p>
<flow:p>'Then the words don't Fit you,' said the King, looking round the court with a smile. There was a dead silence.</flow:p>
<flow:p>'It's a pun!' the King added in an offended tone, and everybody laughed, 'Let the jury consider their verdict,' the King said, for about the twentieth time that day.</flow:p>
<flow:p>'No, no!' said the Queen. 'Sentence first--verdict afterwards.'</flow:p>
<flow:p>'Stuff and nonsense!' said Alice loudly. 'The idea of having the sentence first!'</flow:p>
<flow:p>'Hold your tongue!' said the Queen, turning purple.</flow:p>
<flow:p>'I won't!' said Alice.</flow:p>
<flow:p>'Off with her head!' the Queen shouted at the top of her voice. Nobody moved.</flow:p>
<flow:p>'Who cares for you?' said Alice, (she had grown to her full size by this time.) 'You're nothing but a pack of cards!'</flow:p>
<flow:p>At this the whole pack rose up into the air, and came flying down upon her: she gave a little scream, half of fright and half of anger, and tried to beat them off, and found herself lying on the bank, with her head in the lap of her sister, who was gently brushing away some dead leaves that had fluttered down from the trees upon her face.</flow:p>
<flow:p>'Wake up, Alice dear!' said her sister; 'Why, what a long sleep you've had!'</flow:p>
<flow:p>'Oh, I've had such a curious dream!' said Alice, and she told her sister, as well as she could remember them, all these strange Adventures of hers that you have just been reading about; and when she had finished, her sister kissed her, and said, 'It Was a curious dream, dear, certainly: but now run in to your tea; it's getting late.' So Alice got up and ran off, thinking while she ran, as well she might, what a wonderful dream it had been.</flow:p>
<flow:p>But her sister sat still just as she left her, leaning her head on her hand, watching the setting sun, and thinking of little Alice and all her wonderful Adventures, till she too began dreaming after a fashion, and this was her dream:--</flow:p>
<flow:p>First, she dreamed of little Alice herself, and once again the tiny hands were clasped upon her knee, and the bright eager eyes were looking up into hers--she could hear the very tones of her voice, and see that queer little toss of her head to keep back the wandering hair that Would always get into her eyes--and still as she listened, or seemed to listen, the whole place around her became alive the strange creatures of her little sister's dream.</flow:p>
<flow:p>The long grass rustled at her feet as the White Rabbit hurried by--the frightened Mouse splashed his way through the neighbouring pool--she could hear the rattle of the teacups as the March Hare and his friends shared their never-ending meal, and the shrill voice of the Queen ordering off her unfortunate guests to execution--once more the pig-baby was sneezing on the Duchess's knee, while plates and dishes crashed around it--once more the shriek of the Gryphon, the squeaking of the Lizard's slate-pencil, and the choking of the suppressed guinea-pigs, filled the air, mixed up with the distant sobs of the miserable Mock Turtle.</flow:p>
<flow:p>So she sat on, with closed eyes, and half believed herself in Wonderland, though she knew she had but to open them again, and all would change to dull reality--the grass would be only rustling in the wind, and the pool rippling to the waving of the reeds--the rattling teacups would change to tinkling sheep- bells, and the Queen's shrill cries to the voice of the shepherd boy--and the sneeze of the baby, the shriek of the Gryphon, and all thy other queer noises, would change (she knew) to the confused clamour of the busy farm-yard--while the lowing of the cattle in the distance would take the place of the Mock Turtle's heavy sobs.</flow:p>
<flow:p>Lastly, she pictured to herself how this same little sister of hers would, in the after-time, be herself a grown woman; and how she would keep, through all her riper years, the simple and loving heart of her childhood: and how she would gather about her other little children, and make Their eyes bright and eager with many a strange tale, perhaps even with the dream of Wonderland of long ago: and how she would feel with all their simple sorrows, and find a pleasure in all their simple joys, remembering her own child-life, and the happy summer days.</flow:p>
<flow:p>-- End --</flow:p>
</flow:TextFlow>
