"""The federation wordlists — frozen, load-bearing data.

Two curated lists, both lowercase a-z, 3-9 letters, alphabetical:

- ``WORDS256`` (exactly 256) — verification words. Three are derived from a pair
  of public keys (see identity.verification_words) by indexing bytes of a hash
  into this list, so BOTH sides must hold the identical list: changing a single
  entry silently changes the words every existing peer pair displays, breaking
  the out-of-band "read the words aloud" check. Frozen by digest in
  tests/test_federation_identity.py.
- ``WORDS2048`` (exactly 2048) — pairing-code words. Five are drawn at random to
  mint an invite code (~55 bits). The code's key derivation hashes the typed
  string itself, so redemption doesn't need the list — but minting and the
  redeem-side typo checks do, and stability keeps codes readable across
  versions. Frozen by the same digest test.

Data only — no imports, no logic. The one legitimate way to change these lists
is a new, versioned list CONSTANT next to the old one (a wire-format bump),
never an edit in place.
"""

WORDS256 = tuple("""\
acorn almond amber anchor anvil apple apricot arrow atlas autumn badge badger bagel balloon
bamboo banjo barrel basket beacon bishop blanket bronze bugle butter cabin cactus camera
candle canoe canyon carpet cedar cello compass copper coral crayon cricket crystal cypress
daisy dewdrop diamond dolphin domino donkey dovetail dragon drum dune dusk eagle easel echo
elm emerald engine envoy ermine evening fabric falcon feather fiddle flame flannel flute
fossil fountain fox frost garden garnet gazebo gecko ginger giraffe glacier goblet goose
granite guitar hammer hammock harbor harvest hazel helmet heron hickory honey horizon indigo
inkwell iris island ivory ivy jackal jacket jasmine jester jigsaw journal juniper kayak
kernel kettle kingdom kiosk kitten koala kumquat ladder lagoon lantern lilac lobster locket
lotus lumber lynx magnet mango mantis maple marble marmot melon mirror mosaic moss mountain
napkin narwhal nectar nest nickel noodle north oasis oboe ocean olive onion opal orbit
orchard osprey otter oxygen paddle panda parrot peach pearl pebble pelican pepper piano
pigeon pillow pine planet pocket pond poster pretzel prism pumpkin quartz quill quilt quiver
rabbit raccoon radish raven reef ribbon river robin rocket rooster ruby rudder saddle saffron
salmon sapphire satchel seashell sequoia shadow shovel silver sketch sled socket sparrow
spruce stable stadium summit sundial sunset swan syrup tavern teapot telescope temple thistle
timber toast toffee tortoise treasure trumpet tulip tunnel turtle umbrella unicorn urchin
utensil valley vanilla velvet vessel vine violet violin volcano voyage waffle wagon walrus
waterfall willow window winter wizard wolf wren xylophone yarn yellow yogurt yucca zebra
zenith zephyr zinnia zipper zodiac
""".split())

WORDS2048 = tuple("""\
able about absorb accent acre active actor adapt admire adopt adult advance aerial affair
afford agenda agent agile agree aim air aisle album alert alley ally almond aloft alpine also
altar amber amount ample amuse anchor angle angler ankle annual answer antenna anvil apart
apex april apron arbor arch archive area argue arise armor aroma array arrival arrow artist
ascent ash ask aspect asset assume athlete atlas atom attend attic audio aunt author auto
avenue avid await awake aware awning axis back bacon badge baker balance balcony ballad
balloon bamboo banana banjo bank banner barber bare bargain bark barley barn barrel basic
basil basin batch bath baton bay beach beacon beam bean bear beard beauty beaver become bee
beech beef begin behave behind beige bell belong below bench bend benefit beside best better
beyond bicycle big bike bind birch bird bishop bison bit blade blanket blast blend bless
blind blink bloom blossom blue board boast boat boil bold bolt bond bonus book boost border
borrow botany bottle bottom bounce bounty bow bowl box bracket braid brain brand brass brave
break breeze brick bridge bright brim bring broad bronze brook brown brush bubble buckle
budget buffalo bugle bulb bulk bundle burlap burrow burst bush busy butter button buzz
cabbage cabin cactus cadet cafe calm camel camera campus canal candle candy canoe canopy
canvas cape capital captain caramel caravan carbon care cargo carol carpet carry cart carton
cascade case cash castle casual cat catalog cattle cause cedar cell cellar cello census
center cereal chain chair chalk chamber chant chapel chapter charm chart chase cheer cheese
chef cherry chest chicken chief chill chime chin chip choice choir chorus chrome chunk cider
circle circus citizen city civic claim clamp clap clarify class claw clay clean clerk clever
click climb cling clinic cloak clock cloth cloud club clue cluster coal coast coat cocoa
cocoon code coffee coin cold collar colony color column combine comedy comet comic command
commit common concert conduct cone connect consist contact context control convoy cool copper
copy coral core cork corn correct cost costume cotton couch could council country county
couple course court cousin cover coyote cozy cradle craft crane crate crayon cream create
creek crest crew crisp critic crop cross crown cruise crumb crystal cube cubic cup curb
curious current curtain curve cushion cycle cypress daily daisy damp dance dark dart dash
data dawn day deal debate debut decade decide deck declare deed deep deer defend degree delay
deliver demand den denim dentist depart depend depth deputy derive desert desk dessert detail
develop device devote diagram dial diamond diary diesel diet differ digital dignity dill dine
dinner dinosaur dirt discover discuss dish distant dive divide doctor dog dollar domain dome
domino donate donor door dose double dough dove dozen draft dragon drama draw drawer dream
drift drill drink droplet drum dry due duet dune durable dust duty dwell eager eagle ear earn
earth easel easy echo eclipse ecology edit editor eel effort egg eight elastic elbow elder
electric elegant element elephant elite elk elm embark ember emblem emerald emerge empire
employ enable enact end endorse energy engage enjoy enlist enough enroll ensure enter entire
entry envelope envoy equal equator equip erase errand escort essay estate esteem ethic event
ever every exact exam example except excess exchange excite exhibit exist exit expect expert
explain export express extend extra fable fabric face factor factory faculty faith falcon
fall famous fan fancy far fashion fast fasten fathom faucet favor feather feature federal
feed feel fellow felt fern ferry festival fever few fiber fiddle field fig figure fill film
filter final finch find finger finish fir firm first fiscal fish five fix flag flame flannel
flare flask flat flavor fleet flight flint float floor floral flour flower fluent fluid fly
foam focus fog fold folder folio follow fond font foot forest forge fork formal fort fortune
forward fossil foster fountain four fox free fresh friend fringe front frost fruit full fun
fund fur furnish future fuzzy gain gala galaxy gallery gallon gallop garage garden garland
garment garnet gate gather gaze gazebo gear gem general gentle geode gesture giant giggle
ginger giraffe give glad glance glass glide glimpse glitter glory glove glow glue goat gold
golf good goose gorge govern gown grab grade grain grand granite grape graph grasp gravel
gravity gray great green greet grid grin grip grit groove ground group grow guard guess guide
guitar gulf gull gutter gym habit hair half hall hammer hammock hand handle hangar happen
happy hard hardy harmony harp harvest hat haul haven hawk hay head heal health hear heart
hearth heavy hedge heel held helix hello helm help hem herald herd here hero hidden hide high
hike hint hip hire hive hobby hold holly home honest honor hood hoof hook horizon horn horse
hotel hour house how hub hue hug hull human humble humor hundred hurry hybrid hydrant hymn
icon idea ideal idle ignite image imagine import impress improve inch income indeed index
indoor infant inform inhale initial inject inlet inn inner inquire insect inside insight
inspire install instant intact intake intend interior intern into invest invite inward iris
island issue item ivy jacket jade jam jar jasmine jaunt jazz jelly jersey jewel jigsaw job
join joint joke journal journey joy judge juice july jumbo junction june jungle juniper jury
just justice kale kangaroo keel keep keg kelp kernel kettle key kid kidney kind kindle
kingdom kiosk kiss kitchen kite kitten knack knead knee kneel knight knit knob knot know
koala labor lace ladder ladle lady lagoon lake lamp land lane lap lapel large laser last
latch late laugh launch laundry lava lavender law layer lazy lead league lean leap learn
leash least leather ledge left legacy legend lemon lend lens leopard lesson letter level
lever liberty license lichen lid lift light like lilac limb lime limit linen link lion liquid
list listen live lively liver lizard loaf loan lobby local lock locket loft log logic long
loom loop loose lore lose loss lotus loud lounge low loyal lucky lumber lunch lung lush lute
luxury lyric macro magic magnet magnify mail main major mallet mammal manage manner manor
mantel map maple marble march marina marine mark maroon marsh marvel mason mass mast mat
match mate math mature maximum may meadow meal mean meat medal media medium mellow melody
melon member memory mend mentor menu mercy merit mermaid merry mesa message metal meter metro
middle might mile milk mill million mind mineral mingle mint minute miracle mission mist
mitten mobile model modern modest moment monarch monitor month moon moor moral more morning
mosaic most motel mother motive motor motto mount mountain mouse move movie much mud mug
mulberry mule mural muscle museum mustard mutual myth name nap napkin narrow native nature
navy neat nebula neck need needle neighbor neither nerve nest net neutral never new next
nibble nice nickel niece night nimble noble nod noise noodle noon norm nose notable notch
note notion noun nourish now nozzle number nurture nut nutmeg oak oar oasis oat object oblige
oboe obtain obvious occur octave october odd odor office often oil old olive omega onion
online only onto onward opal open opinion opossum oppose option oral orange orchard orchid
order organ origin oriole ornament ostrich other otter outcome outdoor outer outlet output
oval oven owl own owner oxygen oyster ozone pack packet pact page pageant paint pair pale
palette palm pancake panda panel panther pantry paper parade parent park parlor parsley part
party past pasta paste pastry pasture pat patch patient patio patrol pause pave pavilion pay
pea peace peach peak peanut pear pebble pecan pedal pelican pen pencil penguin penny people
pepper perch perfect perform period permit person pet petal petunia phase photo phrase
physics piccolo pick picnic pie piece pier pigment pile pilgrim pillar pilot pin pine pioneer
pipe pistachio pitch pivot pixel place plaid plain plan planet plank plant plate play plaza
plum plume plural plus pocket pod podium poet point polar polish polite pollen pony pool
poplar poppy porch port portal portrait pose post pot potato pottery pouch pour powder power
prance prefer premium present preserve press prevent price pride primary prince print prior
private prize probe proceed process produce profile project promise prompt proper prosper
protect prove provide prune publish pull pulse pump punch pupil puppy purple purpose purse
puzzle python quail quality quantity quarry quart quartz queen query question quick quiet
quilt quince quiver quota rabbit raccoon race radar radio radish rail rain rainbow raisin
rake rally ramp random range rank rare rascal rate ratio rattle ravine raw reach read ready
realm reap rear rebate recall receive recipe record recruit red reef reel refer reflect
reform refresh regard region regular relate relay release relic rely remain remark remind
remote render rent repair repeat reply rescue research reserve resort resource respect rest
result retain retreat reunion reveal review reward rhubarb rhythm rice rich ride right rigid
rim rind rinse ripe ripple risk ritual rival road roam roast robin robust rock rocket role
roll roof room rooster root rose roster rotate round routine rover row ruby rudder ruler run
rung runway rush rustic rye sable safari safe saffron sage sail salad salon salt salute same
sand sandal sap satchel satin sauce save savory saw scale scan scarf scene school science
scissors scope score scout screen script scroll sea seam search season second secret section
see seed seek segment seldom select self seminar send senior sequence sequoia serene serve
session set seven several shade shadow shake shall shape shark sharp shawl shed sheep sheet
shelf shelter shield shift ship shirt shoe shore short should shout shovel show shrub side
siege sift sign signal silent sill silver similar simple sing single sink sir sister sit six
size skate ski skill skin skirt slate sled sleek sleeve slice slide slope slow small smart
smooth snack snail snow snug soap soccer social sock soil solar sold sole solve some sonar
sonnet soon sort soup source south spade span spare spark speak special speech spell spend
sphere spider spill spin spinach splash split spoke spool spoon sport spray spread spring
spruce spur square squash stack stadium staff stair stake stamp staple star starch start
station statue stay steam steel steep stem step stereo stick still sting stir stock stone
stool store storm story stove straight strand straw street stretch stride string stripe
stroll studio study stuff style subject submit subtle succeed such sudden suggest suit summer
sun sunny sunrise super supper supply support sure surf surface surplus surprise survey
sweater sweep sweet swift swing switch symbol table tackle tact tailor take tale talk tall
tame tan tank tap tape tart task taste tax taxi tea teach teapot tear tech temple tempo ten
tend tennis tent terrace test text texture thank that theater then theory there thick thin
thing think thirty this thorn three thrive throne thumb thunder ticket tidy tie tiger tight
till timber time tinker tint tiny tissue title toast today token told tomato ton tone tool
top topic torch totem touch tour toward tower town toy track tract trade train trait tram
travel tray treasure treat trek trench trend tribe tribute trick trio trip triumph troop
tropical trout truck trumpet trunk trust try tube tulip tune tunnel turbine turf turn turnip
turtle tutor tweed twelve twig twin twine twist type typical umbrella unable uncle under
union unique unit unity universe unlock until update upgrade uphold upper upright upstream
upward urban urge urgent use useful usher utensil utility utmost vacation valid valley valve
van vanilla vapor various varnish vary vast vault vector vendor venture venue verify verse
version very vest veteran via victory video view village vine vintage vinyl violet violin
virtue vision visit visual vivid vocal voice volume vote vowel voyage wafer waffle wagon wait
wake walk wallet walnut walrus wand want ward warm warp warren wash watch water wave way
wealth wear weather web wedge week welcome well west whale wharf what wheat when where which
whim whisk whisper whole why wide width wild will willow wind window wine wink winner winter
wire wisdom wise wit with witness wolf wood wool word world worth would wrap wreath wren
wrist xylophone yacht yak yard yarn yawn yeast yellow yes yield yoga yogurt yoke yonder young
your yucca zeal zebra zephyr zero zest zigzag zinnia zip zipper zoo zoom
""".split())
