From bb8162e4c1271ef3e238b6a405733ac2ba8b23b7 Mon Sep 17 00:00:00 2001 From: Markus Wagner Date: Mon, 28 Dec 2020 23:30:20 +0100 Subject: [PATCH] Initial commit --- .gitattributes | 11 + .gitignore | 1 + Cargo.lock | 1751 ++++++++++++++++++ Cargo.toml | 16 + src/main.rs | 238 +++ static/game.html | 523 ++++++ static/images/64px-Coin.png | 3 + static/images/cards/Card_back.jpg | 3 + static/images/cards/abandoned-mine.jpg | 3 + static/images/cards/academy.jpg | 3 + static/images/cards/acting-troupe.jpg | 3 + static/images/cards/advance.jpg | 3 + static/images/cards/adventurer.jpg | 3 + static/images/cards/advisor.jpg | 3 + static/images/cards/alchemist.jpg | 3 + static/images/cards/alms.jpg | 3 + static/images/cards/altar.jpg | 3 + static/images/cards/ambassador.jpg | 3 + static/images/cards/amulet.jpg | 3 + static/images/cards/annex.jpg | 3 + static/images/cards/apothecary.jpg | 3 + static/images/cards/apprentice.jpg | 3 + static/images/cards/aqueduct.jpg | 3 + static/images/cards/archive.jpg | 3 + static/images/cards/arena.jpg | 3 + static/images/cards/armory.jpg | 3 + static/images/cards/artificer.jpg | 3 + static/images/cards/artisan.jpg | 3 + static/images/cards/avanto.jpg | 3 + static/images/cards/bad-omens.jpg | 3 + static/images/cards/bag-of-gold.jpg | 3 + static/images/cards/baker.jpg | 3 + static/images/cards/ball.jpg | 3 + static/images/cards/band-of-misfits.jpg | 3 + static/images/cards/bandit-camp.jpg | 3 + static/images/cards/bandit-fort.jpg | 3 + static/images/cards/bandit.jpg | 3 + static/images/cards/bank.jpg | 3 + static/images/cards/banquet.jpg | 3 + static/images/cards/bard.jpg | 3 + static/images/cards/baron.jpg | 3 + static/images/cards/barracks.jpg | 3 + static/images/cards/basilica.jpg | 3 + static/images/cards/bat.jpg | 3 + static/images/cards/baths.jpg | 3 + static/images/cards/battlefield.jpg | 3 + static/images/cards/bazaar.jpg | 3 + static/images/cards/beggar.jpg | 3 + static/images/cards/bishop.jpg | 3 + static/images/cards/black-market.jpg | 3 + static/images/cards/blessed-village.jpg | 3 + static/images/cards/bonfire.jpg | 3 + static/images/cards/border-guard.jpg | 3 + static/images/cards/border-village.jpg | 3 + static/images/cards/borrow.jpg | 3 + static/images/cards/bridge-troll.jpg | 3 + static/images/cards/bridge.jpg | 3 + static/images/cards/bureaucrat.jpg | 3 + static/images/cards/bustling-village.jpg | 3 + static/images/cards/butcher.jpg | 3 + static/images/cards/cache.jpg | 3 + static/images/cards/canal.jpg | 3 + static/images/cards/candlestick-maker.jpg | 3 + static/images/cards/capital.jpg | 3 + static/images/cards/capitalism.jpg | 3 + static/images/cards/captain.jpg | 3 + static/images/cards/caravan-guard.jpg | 3 + static/images/cards/caravan.jpg | 3 + static/images/cards/cargo-ship.jpg | 3 + static/images/cards/cartographer.jpg | 3 + static/images/cards/castles.jpg | 3 + static/images/cards/catacombs.jpg | 3 + static/images/cards/catapult.jpg | 3 + static/images/cards/cathedral.jpg | 3 + static/images/cards/cellar.jpg | 3 + static/images/cards/cemetery.jpg | 3 + static/images/cards/champion.jpg | 3 + static/images/cards/chancellor.jpg | 3 + static/images/cards/changeling.jpg | 3 + static/images/cards/chapel.jpg | 3 + static/images/cards/chariot-race.jpg | 3 + static/images/cards/charm.jpg | 3 + static/images/cards/church.jpg | 3 + static/images/cards/citadel.jpg | 3 + static/images/cards/city-gate.jpg | 3 + static/images/cards/city-quarter.jpg | 3 + static/images/cards/city.jpg | 3 + static/images/cards/cobbler.jpg | 3 + static/images/cards/coin-of-the-realm.jpg | 3 + static/images/cards/colonnade.jpg | 3 + static/images/cards/colony.jpg | 3 + static/images/cards/conclave.jpg | 3 + static/images/cards/conquest.jpg | 3 + static/images/cards/conspirator.jpg | 3 + static/images/cards/contraband.jpg | 3 + static/images/cards/copper.jpg | 3 + static/images/cards/coppersmith.jpg | 3 + static/images/cards/council-room.jpg | 3 + static/images/cards/count.jpg | 3 + static/images/cards/counterfeit.jpg | 3 + static/images/cards/counting-house.jpg | 3 + static/images/cards/courtier.jpg | 3 + static/images/cards/courtyard.jpg | 3 + static/images/cards/crop-rotation.jpg | 3 + static/images/cards/crossroads.jpg | 3 + static/images/cards/crown.jpg | 3 + static/images/cards/crumbling-castle.jpg | 3 + static/images/cards/crypt.jpg | 3 + static/images/cards/cultist.jpg | 3 + static/images/cards/curse.jpg | 3 + static/images/cards/cursed-gold.jpg | 3 + static/images/cards/cursed-village.jpg | 3 + static/images/cards/cutpurse.jpg | 3 + static/images/cards/dame-anna.jpg | 3 + static/images/cards/dame-josephine.jpg | 3 + static/images/cards/dame-molly.jpg | 3 + static/images/cards/dame-natalie.jpg | 3 + static/images/cards/dame-sylvia.jpg | 3 + static/images/cards/death-cart.jpg | 3 + static/images/cards/defiled-shrine.jpg | 3 + static/images/cards/deluded.jpg | 3 + static/images/cards/delusion.jpg | 3 + static/images/cards/delve.jpg | 3 + static/images/cards/den-of-sin.jpg | 3 + static/images/cards/develop.jpg | 3 + static/images/cards/devils-workshop.jpg | 3 + static/images/cards/diadem.jpg | 3 + static/images/cards/diplomat.jpg | 3 + static/images/cards/disciple.jpg | 3 + static/images/cards/dismantle.jpg | 3 + static/images/cards/distant-lands.jpg | 3 + static/images/cards/doctor.jpg | 3 + static/images/cards/dominate.jpg | 3 + static/images/cards/donate.jpg | 3 + static/images/cards/druid.jpg | 3 + static/images/cards/ducat.jpg | 3 + static/images/cards/duchery.jpg | 3 + static/images/cards/duchess.jpg | 3 + static/images/cards/duke.jpg | 3 + static/images/cards/dungeon.jpg | 3 + static/images/cards/duplicate.jpg | 3 + static/images/cards/embargo.jpg | 3 + static/images/cards/embassy.jpg | 3 + static/images/cards/emporium.jpg | 3 + static/images/cards/encampment.jpg | 3 + static/images/cards/enchantress.jpg | 3 + static/images/cards/engineer.jpg | 3 + static/images/cards/envious.jpg | 3 + static/images/cards/envoy.jpg | 3 + static/images/cards/envy.jpg | 3 + static/images/cards/estate.jpg | 3 + static/images/cards/exorcist.jpg | 3 + static/images/cards/expand.jpg | 3 + static/images/cards/expedition.jpg | 3 + static/images/cards/experiment.jpg | 3 + static/images/cards/exploration.jpg | 3 + static/images/cards/explorer.jpg | 3 + static/images/cards/fair.jpg | 3 + static/images/cards/fairgrounds.jpg | 3 + static/images/cards/faithful-hound.jpg | 3 + static/images/cards/familiar.jpg | 3 + static/images/cards/famine.jpg | 3 + static/images/cards/farmers-market.jpg | 3 + static/images/cards/farming-village.jpg | 3 + static/images/cards/farmland.jpg | 3 + static/images/cards/fear.jpg | 3 + static/images/cards/feast.jpg | 3 + static/images/cards/feodum.jpg | 3 + static/images/cards/ferry.jpg | 3 + static/images/cards/festival.jpg | 3 + static/images/cards/fishing-village.jpg | 3 + static/images/cards/flag-bearer.jpg | 3 + static/images/cards/flag.jpg | 3 + static/images/cards/fleet.jpg | 3 + static/images/cards/followers.jpg | 3 + static/images/cards/fool.jpg | 3 + static/images/cards/fools-gold.jpg | 3 + static/images/cards/forager.jpg | 3 + static/images/cards/forge.jpg | 3 + static/images/cards/fortress.jpg | 3 + static/images/cards/fortune-teller.jpg | 3 + static/images/cards/fortune.jpg | 3 + static/images/cards/forum.jpg | 3 + static/images/cards/fountain.jpg | 3 + static/images/cards/fugitive.jpg | 3 + static/images/cards/gardens.jpg | 3 + static/images/cards/gear.jpg | 3 + static/images/cards/ghost-ship.jpg | 3 + static/images/cards/ghost-town.jpg | 3 + static/images/cards/ghost.jpg | 3 + static/images/cards/giant.jpg | 3 + static/images/cards/gladiator.jpg | 3 + static/images/cards/goat.jpg | 3 + static/images/cards/gold.jpg | 3 + static/images/cards/golem.jpg | 3 + static/images/cards/goons.jpg | 3 + static/images/cards/governor.jpg | 3 + static/images/cards/grand-castle.jpg | 3 + static/images/cards/grand-market.jpg | 3 + static/images/cards/graverobber.jpg | 3 + static/images/cards/great-hall.jpg | 3 + static/images/cards/greed.jpg | 3 + static/images/cards/groundskeeper.jpg | 3 + static/images/cards/guardian.jpg | 3 + static/images/cards/guide.jpg | 3 + static/images/cards/guildhall.jpg | 3 + static/images/cards/haggler.jpg | 3 + static/images/cards/hamlet.jpg | 3 + static/images/cards/harbinger.jpg | 3 + static/images/cards/harem.jpg | 3 + static/images/cards/harvest.jpg | 3 + static/images/cards/haunted-castle.jpg | 3 + static/images/cards/haunted-mirror.jpg | 3 + static/images/cards/haunted-woods.jpg | 3 + static/images/cards/haunting.jpg | 3 + static/images/cards/haven.jpg | 3 + static/images/cards/herald.jpg | 3 + static/images/cards/herbalist.jpg | 3 + static/images/cards/hermit.jpg | 3 + static/images/cards/hero.jpg | 3 + static/images/cards/hideout.jpg | 3 + static/images/cards/highway.jpg | 3 + static/images/cards/hireling.jpg | 3 + static/images/cards/hoard.jpg | 3 + static/images/cards/horn-of-plenty.jpg | 3 + static/images/cards/horn.jpg | 3 + static/images/cards/horse-traders.jpg | 3 + static/images/cards/hovel.jpg | 3 + static/images/cards/humble-castle.jpg | 3 + static/images/cards/hunting-grounds.jpg | 3 + static/images/cards/hunting-party.jpg | 3 + static/images/cards/idol.jpg | 3 + static/images/cards/ill-gotten-gains.jpg | 3 + static/images/cards/imp.jpg | 3 + static/images/cards/improve.jpg | 3 + static/images/cards/inheritance.jpg | 3 + static/images/cards/inn.jpg | 3 + static/images/cards/innovation.jpg | 3 + static/images/cards/inventor.jpg | 3 + static/images/cards/ironmonger.jpg | 3 + static/images/cards/ironworks.jpg | 3 + static/images/cards/island.jpg | 3 + static/images/cards/jack-of-all-trades.jpg | 3 + static/images/cards/jester.jpg | 3 + static/images/cards/journeyman.jpg | 3 + static/images/cards/junk-dealer.jpg | 3 + static/images/cards/keep.jpg | 3 + static/images/cards/key.jpg | 3 + static/images/cards/kings-castle.jpg | 3 + static/images/cards/kings-court.jpg | 3 + static/images/cards/knights.jpg | 3 + static/images/cards/laboratory.jpg | 3 + static/images/cards/labyrinth.jpg | 3 + static/images/cards/lackeys.jpg | 3 + static/images/cards/lantern.jpg | 3 + static/images/cards/legionary.jpg | 3 + static/images/cards/leprechaun.jpg | 3 + static/images/cards/library.jpg | 3 + static/images/cards/lighthouse.jpg | 3 + static/images/cards/loan.jpg | 3 + static/images/cards/locusts.jpg | 3 + static/images/cards/lookout.jpg | 3 + static/images/cards/lost-arts.jpg | 3 + static/images/cards/lost-citiy.jpg | 3 + static/images/cards/lost-in-the-woods.jpg | 3 + static/images/cards/lucky-coin.jpg | 3 + static/images/cards/lurker.jpg | 3 + static/images/cards/madman.jpg | 3 + static/images/cards/magic-lamp.jpg | 3 + static/images/cards/magpie.jpg | 3 + static/images/cards/mandarin.jpg | 3 + static/images/cards/marauder.jpg | 3 + static/images/cards/margrave.jpg | 3 + static/images/cards/market-square.jpg | 3 + static/images/cards/market.jpg | 3 + static/images/cards/masquerade.jpg | 3 + static/images/cards/masterpiece.jpg | 3 + static/images/cards/menagerie.jpg | 3 + static/images/cards/mercenary.jpg | 3 + static/images/cards/merchant-guild.jpg | 3 + static/images/cards/merchant-ship.jpg | 3 + static/images/cards/merchant.jpg | 3 + static/images/cards/messenger.jpg | 3 + static/images/cards/militia.jpg | 3 + static/images/cards/mill.jpg | 3 + static/images/cards/mine.jpg | 3 + static/images/cards/mining-village.jpg | 3 + static/images/cards/minion.jpg | 3 + static/images/cards/mint.jpg | 3 + static/images/cards/miser.jpg | 3 + static/images/cards/miserable.jpg | 3 + static/images/cards/misery.jpg | 3 + static/images/cards/mission.jpg | 3 + static/images/cards/moat.jpg | 3 + static/images/cards/monastery.jpg | 3 + static/images/cards/moneylender.jpg | 3 + static/images/cards/monument.jpg | 3 + static/images/cards/mountain-pass.jpg | 3 + static/images/cards/mountain-village.jpg | 3 + static/images/cards/mountebank.jpg | 3 + static/images/cards/museum.jpg | 3 + static/images/cards/mystic.jpg | 3 + static/images/cards/native-village.jpg | 3 + static/images/cards/navigator.jpg | 3 + static/images/cards/necromancer.jpg | 3 + static/images/cards/necropolis.jpg | 3 + static/images/cards/night-watchman.jpg | 3 + static/images/cards/noble-brigade.jpg | 3 + static/images/cards/nobles.jpg | 3 + static/images/cards/nomad-camp.jpg | 3 + static/images/cards/oasis.jpg | 3 + static/images/cards/obelisk.jpg | 3 + static/images/cards/old-images/colony.jpg | 3 + static/images/cards/old-images/copper.jpg | 3 + static/images/cards/old-images/curse.jpg | 3 + static/images/cards/old-images/duchy.jpg | 3 + static/images/cards/old-images/estate.jpg | 3 + static/images/cards/old-images/gold.jpg | 3 + static/images/cards/old-images/platinum.jpg | 3 + static/images/cards/old-images/province.jpg | 3 + static/images/cards/old-images/silver.jpg | 3 + static/images/cards/old-witch.jpg | 3 + static/images/cards/opulent-castle.jpg | 3 + static/images/cards/oracle.jpg | 3 + static/images/cards/orchard.jpg | 3 + static/images/cards/outpost.jpg | 3 + static/images/cards/overgrown-estate.jpg | 3 + static/images/cards/overlord.jpg | 3 + static/images/cards/page.jpg | 3 + static/images/cards/pageant.jpg | 3 + static/images/cards/palace.jpg | 3 + static/images/cards/pasture.jpg | 3 + static/images/cards/pathfinding.jpg | 3 + static/images/cards/patrician.jpg | 3 + static/images/cards/patrol.jpg | 3 + static/images/cards/patron.jpg | 3 + static/images/cards/pearl-diver.jpg | 3 + static/images/cards/peasant.jpg | 3 + static/images/cards/peddler.jpg | 3 + static/images/cards/philosophers-stone.jpg | 3 + static/images/cards/piazza.jpg | 3 + static/images/cards/pilgrimage.jpg | 3 + static/images/cards/pillage.jpg | 3 + static/images/cards/pirate-ship.jpg | 3 + static/images/cards/pixie.jpg | 3 + static/images/cards/plague.jpg | 3 + static/images/cards/plan.jpg | 3 + static/images/cards/platinum.jpg | 3 + static/images/cards/plaza.jpg | 3 + static/images/cards/plunder.jpg | 3 + static/images/cards/poacher.jpg | 3 + static/images/cards/pooka.jpg | 3 + static/images/cards/poor-house.jpg | 3 + static/images/cards/port.jpg | 3 + static/images/cards/possession.jpg | 3 + static/images/cards/potion.jpg | 3 + static/images/cards/pouch.jpg | 3 + static/images/cards/poverty.jpg | 3 + static/images/cards/priest.jpg | 3 + static/images/cards/prince.jpg | 3 + static/images/cards/princess.jpg | 3 + static/images/cards/procession.jpg | 3 + static/images/cards/province.jpg | 3 + static/images/cards/quarry.jpg | 3 + static/images/cards/quest.jpg | 3 + static/images/cards/rabble.jpg | 3 + static/images/cards/raid.jpg | 3 + static/images/cards/raider.jpg | 3 + static/images/cards/ranger.jpg | 3 + static/images/cards/ratcatcher.jpg | 3 + static/images/cards/rats.jpg | 3 + static/images/cards/raze.jpg | 3 + static/images/cards/rebuild.jpg | 3 + static/images/cards/recruiter.jpg | 3 + static/images/cards/relic.jpg | 3 + static/images/cards/remake.jpg | 3 + static/images/cards/remodel.jpg | 3 + static/images/cards/replace.jpg | 3 + static/images/cards/research.jpg | 3 + static/images/cards/ritual.jpg | 3 + static/images/cards/road-network.jpg | 3 + static/images/cards/rock.jpg | 3 + static/images/cards/rogue.jpg | 3 + static/images/cards/royal-blacksmith.jpg | 3 + static/images/cards/royal-carriage.jpg | 3 + static/images/cards/royal-seal.jpg | 3 + static/images/cards/ruined-library.jpg | 3 + static/images/cards/ruined-market.jpg | 3 + static/images/cards/ruined-village.jpg | 3 + static/images/cards/saboteur.jpg | 3 + static/images/cards/sacred-grove.jpg | 3 + static/images/cards/sacrifice.jpg | 3 + static/images/cards/sage.jpg | 3 + static/images/cards/salt-the-earth.jpg | 3 + static/images/cards/salvager.jpg | 3 + static/images/cards/sauna.jpg | 3 + static/images/cards/save.jpg | 3 + static/images/cards/scavenger.jpg | 3 + static/images/cards/scepter.jpg | 3 + static/images/cards/scheme.jpg | 3 + static/images/cards/scholar.jpg | 3 + static/images/cards/scout.jpg | 3 + static/images/cards/scouting-party.jpg | 3 + static/images/cards/scrying-pool.jpg | 3 + static/images/cards/sculptor.jpg | 3 + static/images/cards/sea-hag.jpg | 3 + static/images/cards/seaway.jpg | 3 + static/images/cards/secret-cave.jpg | 3 + static/images/cards/secret-chamber.jpg | 3 + static/images/cards/secret-passage.jpg | 3 + static/images/cards/seer.jpg | 3 + static/images/cards/sentry.jpg | 3 + static/images/cards/settlers.jpg | 3 + static/images/cards/sewers.jpg | 3 + static/images/cards/shanty-town.jpg | 3 + static/images/cards/shepherd.jpg | 3 + static/images/cards/silk-merchant.jpg | 3 + static/images/cards/silk-road.jpg | 3 + static/images/cards/silos.jpg | 3 + static/images/cards/silver.jpg | 3 + static/images/cards/sinister-plot.jpg | 3 + static/images/cards/sir-bailey.jpg | 3 + static/images/cards/sir-destry.jpg | 3 + static/images/cards/sir-martin.jpg | 3 + static/images/cards/sir-michael.jpg | 3 + static/images/cards/sir-vander.jpg | 3 + static/images/cards/skulk.jpg | 3 + static/images/cards/small-castle.jpg | 3 + static/images/cards/smithy.jpg | 3 + static/images/cards/smugglers.jpg | 3 + static/images/cards/soldier.jpg | 3 + static/images/cards/soothsayer.jpg | 3 + static/images/cards/spice-merchant.jpg | 3 + static/images/cards/spices.jpg | 3 + static/images/cards/spoils.jpg | 3 + static/images/cards/sprawling-castle.jpg | 3 + static/images/cards/spy.jpg | 3 + static/images/cards/squire.jpg | 3 + static/images/cards/stables.jpg | 3 + static/images/cards/star-chart.jpg | 3 + static/images/cards/steward.jpg | 3 + static/images/cards/stonemason.jpg | 3 + static/images/cards/storeroom.jpg | 3 + static/images/cards/storyteller.jpg | 3 + static/images/cards/summon.jpg | 3 + static/images/cards/survivors.jpg | 3 + static/images/cards/swamp-hag.jpg | 3 + static/images/cards/swashbuckler.jpg | 3 + static/images/cards/swindler.jpg | 3 + static/images/cards/tactician.jpg | 3 + static/images/cards/talisman.jpg | 3 + static/images/cards/tax.jpg | 3 + static/images/cards/taxman.jpg | 3 + static/images/cards/teacher.jpg | 3 + static/images/cards/temple.jpg | 3 + static/images/cards/the-earths-gift.jpg | 3 + static/images/cards/the-fields-gift.jpg | 3 + static/images/cards/the-flames-gift.jpg | 3 + static/images/cards/the-forrests-gift.jpg | 3 + static/images/cards/the-moons-gift.jpg | 3 + static/images/cards/the-mountains-gift.jpg | 3 + static/images/cards/the-rivers-gift.jpg | 3 + static/images/cards/the-seas-gift.jpg | 3 + static/images/cards/the-skys-gift.jpg | 3 + static/images/cards/the-suns-gift.jpg | 3 + static/images/cards/the-swamps-gift.jpg | 3 + static/images/cards/the-winds-gift.jpg | 3 + static/images/cards/thief.jpg | 3 + static/images/cards/throne-room.jpg | 3 + static/images/cards/tomb.jpg | 3 + static/images/cards/tormentor.jpg | 3 + static/images/cards/torturer.jpg | 3 + static/images/cards/tournament.jpg | 3 + static/images/cards/tower.jpg | 3 + static/images/cards/tracker.jpg | 3 + static/images/cards/trade-route.jpg | 3 + static/images/cards/trade.jpg | 3 + static/images/cards/trader.jpg | 3 + static/images/cards/trading-post.jpg | 3 + static/images/cards/tragic-hero.jpg | 3 + static/images/cards/training.jpg | 3 + static/images/cards/transmogrify.jpg | 3 + static/images/cards/transmute.jpg | 3 + static/images/cards/travelling-fair.jpg | 3 + static/images/cards/treasure-chest.jpg | 3 + static/images/cards/treasure-hunter.jpg | 3 + static/images/cards/treasure-map.jpg | 3 + static/images/cards/treasure.jpg | 3 + static/images/cards/treasurer.jpg | 3 + static/images/cards/treasury.jpg | 3 + static/images/cards/tribute.jpg | 3 + static/images/cards/triumph.jpg | 3 + static/images/cards/triumphal-arch.jpg | 3 + static/images/cards/trusty-steed.jpg | 3 + static/images/cards/tunnel.jpg | 3 + static/images/cards/twice-miserable.jpg | 3 + static/images/cards/university.jpg | 3 + static/images/cards/upgrade.jpg | 3 + static/images/cards/urchin.jpg | 3 + static/images/cards/vagrant.jpg | 3 + static/images/cards/vampire.jpg | 3 + static/images/cards/vassal.jpg | 3 + static/images/cards/vault.jpg | 3 + static/images/cards/venture.jpg | 3 + static/images/cards/villa.jpg | 3 + static/images/cards/village.jpg | 3 + static/images/cards/villain.jpg | 3 + static/images/cards/vineyard.jpg | 3 + static/images/cards/wall.jpg | 3 + static/images/cards/walled-village.jpg | 3 + static/images/cards/wandering-minstrel.jpg | 3 + static/images/cards/war.jpg | 3 + static/images/cards/warehouse.jpg | 3 + static/images/cards/warrior.jpg | 3 + static/images/cards/watchtower.jpg | 3 + static/images/cards/wedding.jpg | 3 + static/images/cards/werewolf.jpg | 3 + static/images/cards/wharf.jpg | 3 + static/images/cards/wild-hunt.jpg | 3 + static/images/cards/will-o-wisp.jpg | 3 + static/images/cards/windfall.jpg | 3 + static/images/cards/wine-merchant.jpg | 3 + static/images/cards/wish.jpg | 3 + static/images/cards/wishing-well.jpg | 3 + static/images/cards/witch.jpg | 3 + static/images/cards/wolf-den.jpg | 3 + static/images/cards/woodcutter.jpg | 3 + static/images/cards/workers-village.jpg | 3 + static/images/cards/workshop.jpg | 3 + static/images/cards/young-witch.jpg | 3 + static/images/cards/zombie-apprentice.jpg | 3 + static/images/cards/zombie-mason.jpg | 3 + static/images/cards/zombie-spy.jpg | 3 + static/index.html | 20 + static/main.css | 24 + static/mithril.js | 1842 +++++++++++++++++++ 536 files changed, 6007 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 src/main.rs create mode 100644 static/game.html create mode 100644 static/images/64px-Coin.png create mode 100644 static/images/cards/Card_back.jpg create mode 100644 static/images/cards/abandoned-mine.jpg create mode 100644 static/images/cards/academy.jpg create mode 100644 static/images/cards/acting-troupe.jpg create mode 100644 static/images/cards/advance.jpg create mode 100644 static/images/cards/adventurer.jpg create mode 100644 static/images/cards/advisor.jpg create mode 100644 static/images/cards/alchemist.jpg create mode 100644 static/images/cards/alms.jpg create mode 100644 static/images/cards/altar.jpg create mode 100644 static/images/cards/ambassador.jpg create mode 100644 static/images/cards/amulet.jpg create mode 100644 static/images/cards/annex.jpg create mode 100644 static/images/cards/apothecary.jpg create mode 100644 static/images/cards/apprentice.jpg create mode 100644 static/images/cards/aqueduct.jpg create mode 100644 static/images/cards/archive.jpg create mode 100644 static/images/cards/arena.jpg create mode 100644 static/images/cards/armory.jpg create mode 100644 static/images/cards/artificer.jpg create mode 100644 static/images/cards/artisan.jpg create mode 100644 static/images/cards/avanto.jpg create mode 100644 static/images/cards/bad-omens.jpg create mode 100644 static/images/cards/bag-of-gold.jpg create mode 100644 static/images/cards/baker.jpg create mode 100644 static/images/cards/ball.jpg create mode 100644 static/images/cards/band-of-misfits.jpg create mode 100644 static/images/cards/bandit-camp.jpg create mode 100644 static/images/cards/bandit-fort.jpg create mode 100644 static/images/cards/bandit.jpg create mode 100644 static/images/cards/bank.jpg create mode 100644 static/images/cards/banquet.jpg create mode 100644 static/images/cards/bard.jpg create mode 100644 static/images/cards/baron.jpg create mode 100644 static/images/cards/barracks.jpg create mode 100644 static/images/cards/basilica.jpg create mode 100644 static/images/cards/bat.jpg create mode 100644 static/images/cards/baths.jpg create mode 100644 static/images/cards/battlefield.jpg create mode 100644 static/images/cards/bazaar.jpg create mode 100644 static/images/cards/beggar.jpg create mode 100644 static/images/cards/bishop.jpg create mode 100644 static/images/cards/black-market.jpg create mode 100644 static/images/cards/blessed-village.jpg create mode 100644 static/images/cards/bonfire.jpg create mode 100644 static/images/cards/border-guard.jpg create mode 100644 static/images/cards/border-village.jpg create mode 100644 static/images/cards/borrow.jpg create mode 100644 static/images/cards/bridge-troll.jpg create mode 100644 static/images/cards/bridge.jpg create mode 100644 static/images/cards/bureaucrat.jpg create mode 100644 static/images/cards/bustling-village.jpg create mode 100644 static/images/cards/butcher.jpg create mode 100644 static/images/cards/cache.jpg create mode 100644 static/images/cards/canal.jpg create mode 100644 static/images/cards/candlestick-maker.jpg create mode 100644 static/images/cards/capital.jpg create mode 100644 static/images/cards/capitalism.jpg create mode 100644 static/images/cards/captain.jpg create mode 100644 static/images/cards/caravan-guard.jpg create mode 100644 static/images/cards/caravan.jpg create mode 100644 static/images/cards/cargo-ship.jpg create mode 100644 static/images/cards/cartographer.jpg create mode 100644 static/images/cards/castles.jpg create mode 100644 static/images/cards/catacombs.jpg create mode 100644 static/images/cards/catapult.jpg create mode 100644 static/images/cards/cathedral.jpg create mode 100644 static/images/cards/cellar.jpg create mode 100644 static/images/cards/cemetery.jpg create mode 100644 static/images/cards/champion.jpg create mode 100644 static/images/cards/chancellor.jpg create mode 100644 static/images/cards/changeling.jpg create mode 100644 static/images/cards/chapel.jpg create mode 100644 static/images/cards/chariot-race.jpg create mode 100644 static/images/cards/charm.jpg create mode 100644 static/images/cards/church.jpg create mode 100644 static/images/cards/citadel.jpg create mode 100644 static/images/cards/city-gate.jpg create mode 100644 static/images/cards/city-quarter.jpg create mode 100644 static/images/cards/city.jpg create mode 100644 static/images/cards/cobbler.jpg create mode 100644 static/images/cards/coin-of-the-realm.jpg create mode 100644 static/images/cards/colonnade.jpg create mode 100644 static/images/cards/colony.jpg create mode 100644 static/images/cards/conclave.jpg create mode 100644 static/images/cards/conquest.jpg create mode 100644 static/images/cards/conspirator.jpg create mode 100644 static/images/cards/contraband.jpg create mode 100644 static/images/cards/copper.jpg create mode 100644 static/images/cards/coppersmith.jpg create mode 100644 static/images/cards/council-room.jpg create mode 100644 static/images/cards/count.jpg create mode 100644 static/images/cards/counterfeit.jpg create mode 100644 static/images/cards/counting-house.jpg create mode 100644 static/images/cards/courtier.jpg create mode 100644 static/images/cards/courtyard.jpg create mode 100644 static/images/cards/crop-rotation.jpg create mode 100644 static/images/cards/crossroads.jpg create mode 100644 static/images/cards/crown.jpg create mode 100644 static/images/cards/crumbling-castle.jpg create mode 100644 static/images/cards/crypt.jpg create mode 100644 static/images/cards/cultist.jpg create mode 100644 static/images/cards/curse.jpg create mode 100644 static/images/cards/cursed-gold.jpg create mode 100644 static/images/cards/cursed-village.jpg create mode 100644 static/images/cards/cutpurse.jpg create mode 100644 static/images/cards/dame-anna.jpg create mode 100644 static/images/cards/dame-josephine.jpg create mode 100644 static/images/cards/dame-molly.jpg create mode 100644 static/images/cards/dame-natalie.jpg create mode 100644 static/images/cards/dame-sylvia.jpg create mode 100644 static/images/cards/death-cart.jpg create mode 100644 static/images/cards/defiled-shrine.jpg create mode 100644 static/images/cards/deluded.jpg create mode 100644 static/images/cards/delusion.jpg create mode 100644 static/images/cards/delve.jpg create mode 100644 static/images/cards/den-of-sin.jpg create mode 100644 static/images/cards/develop.jpg create mode 100644 static/images/cards/devils-workshop.jpg create mode 100644 static/images/cards/diadem.jpg create mode 100644 static/images/cards/diplomat.jpg create mode 100644 static/images/cards/disciple.jpg create mode 100644 static/images/cards/dismantle.jpg create mode 100644 static/images/cards/distant-lands.jpg create mode 100644 static/images/cards/doctor.jpg create mode 100644 static/images/cards/dominate.jpg create mode 100644 static/images/cards/donate.jpg create mode 100644 static/images/cards/druid.jpg create mode 100644 static/images/cards/ducat.jpg create mode 100644 static/images/cards/duchery.jpg create mode 100644 static/images/cards/duchess.jpg create mode 100644 static/images/cards/duke.jpg create mode 100644 static/images/cards/dungeon.jpg create mode 100644 static/images/cards/duplicate.jpg create mode 100644 static/images/cards/embargo.jpg create mode 100644 static/images/cards/embassy.jpg create mode 100644 static/images/cards/emporium.jpg create mode 100644 static/images/cards/encampment.jpg create mode 100644 static/images/cards/enchantress.jpg create mode 100644 static/images/cards/engineer.jpg create mode 100644 static/images/cards/envious.jpg create mode 100644 static/images/cards/envoy.jpg create mode 100644 static/images/cards/envy.jpg create mode 100644 static/images/cards/estate.jpg create mode 100644 static/images/cards/exorcist.jpg create mode 100644 static/images/cards/expand.jpg create mode 100644 static/images/cards/expedition.jpg create mode 100644 static/images/cards/experiment.jpg create mode 100644 static/images/cards/exploration.jpg create mode 100644 static/images/cards/explorer.jpg create mode 100644 static/images/cards/fair.jpg create mode 100644 static/images/cards/fairgrounds.jpg create mode 100644 static/images/cards/faithful-hound.jpg create mode 100644 static/images/cards/familiar.jpg create mode 100644 static/images/cards/famine.jpg create mode 100644 static/images/cards/farmers-market.jpg create mode 100644 static/images/cards/farming-village.jpg create mode 100644 static/images/cards/farmland.jpg create mode 100644 static/images/cards/fear.jpg create mode 100644 static/images/cards/feast.jpg create mode 100644 static/images/cards/feodum.jpg create mode 100644 static/images/cards/ferry.jpg create mode 100644 static/images/cards/festival.jpg create mode 100644 static/images/cards/fishing-village.jpg create mode 100644 static/images/cards/flag-bearer.jpg create mode 100644 static/images/cards/flag.jpg create mode 100644 static/images/cards/fleet.jpg create mode 100644 static/images/cards/followers.jpg create mode 100644 static/images/cards/fool.jpg create mode 100644 static/images/cards/fools-gold.jpg create mode 100644 static/images/cards/forager.jpg create mode 100644 static/images/cards/forge.jpg create mode 100644 static/images/cards/fortress.jpg create mode 100644 static/images/cards/fortune-teller.jpg create mode 100644 static/images/cards/fortune.jpg create mode 100644 static/images/cards/forum.jpg create mode 100644 static/images/cards/fountain.jpg create mode 100644 static/images/cards/fugitive.jpg create mode 100644 static/images/cards/gardens.jpg create mode 100644 static/images/cards/gear.jpg create mode 100644 static/images/cards/ghost-ship.jpg create mode 100644 static/images/cards/ghost-town.jpg create mode 100644 static/images/cards/ghost.jpg create mode 100644 static/images/cards/giant.jpg create mode 100644 static/images/cards/gladiator.jpg create mode 100644 static/images/cards/goat.jpg create mode 100644 static/images/cards/gold.jpg create mode 100644 static/images/cards/golem.jpg create mode 100644 static/images/cards/goons.jpg create mode 100644 static/images/cards/governor.jpg create mode 100644 static/images/cards/grand-castle.jpg create mode 100644 static/images/cards/grand-market.jpg create mode 100644 static/images/cards/graverobber.jpg create mode 100644 static/images/cards/great-hall.jpg create mode 100644 static/images/cards/greed.jpg create mode 100644 static/images/cards/groundskeeper.jpg create mode 100644 static/images/cards/guardian.jpg create mode 100644 static/images/cards/guide.jpg create mode 100644 static/images/cards/guildhall.jpg create mode 100644 static/images/cards/haggler.jpg create mode 100644 static/images/cards/hamlet.jpg create mode 100644 static/images/cards/harbinger.jpg create mode 100644 static/images/cards/harem.jpg create mode 100644 static/images/cards/harvest.jpg create mode 100644 static/images/cards/haunted-castle.jpg create mode 100644 static/images/cards/haunted-mirror.jpg create mode 100644 static/images/cards/haunted-woods.jpg create mode 100644 static/images/cards/haunting.jpg create mode 100644 static/images/cards/haven.jpg create mode 100644 static/images/cards/herald.jpg create mode 100644 static/images/cards/herbalist.jpg create mode 100644 static/images/cards/hermit.jpg create mode 100644 static/images/cards/hero.jpg create mode 100644 static/images/cards/hideout.jpg create mode 100644 static/images/cards/highway.jpg create mode 100644 static/images/cards/hireling.jpg create mode 100644 static/images/cards/hoard.jpg create mode 100644 static/images/cards/horn-of-plenty.jpg create mode 100644 static/images/cards/horn.jpg create mode 100644 static/images/cards/horse-traders.jpg create mode 100644 static/images/cards/hovel.jpg create mode 100644 static/images/cards/humble-castle.jpg create mode 100644 static/images/cards/hunting-grounds.jpg create mode 100644 static/images/cards/hunting-party.jpg create mode 100644 static/images/cards/idol.jpg create mode 100644 static/images/cards/ill-gotten-gains.jpg create mode 100644 static/images/cards/imp.jpg create mode 100644 static/images/cards/improve.jpg create mode 100644 static/images/cards/inheritance.jpg create mode 100644 static/images/cards/inn.jpg create mode 100644 static/images/cards/innovation.jpg create mode 100644 static/images/cards/inventor.jpg create mode 100644 static/images/cards/ironmonger.jpg create mode 100644 static/images/cards/ironworks.jpg create mode 100644 static/images/cards/island.jpg create mode 100644 static/images/cards/jack-of-all-trades.jpg create mode 100644 static/images/cards/jester.jpg create mode 100644 static/images/cards/journeyman.jpg create mode 100644 static/images/cards/junk-dealer.jpg create mode 100644 static/images/cards/keep.jpg create mode 100644 static/images/cards/key.jpg create mode 100644 static/images/cards/kings-castle.jpg create mode 100644 static/images/cards/kings-court.jpg create mode 100644 static/images/cards/knights.jpg create mode 100644 static/images/cards/laboratory.jpg create mode 100644 static/images/cards/labyrinth.jpg create mode 100644 static/images/cards/lackeys.jpg create mode 100644 static/images/cards/lantern.jpg create mode 100644 static/images/cards/legionary.jpg create mode 100644 static/images/cards/leprechaun.jpg create mode 100644 static/images/cards/library.jpg create mode 100644 static/images/cards/lighthouse.jpg create mode 100644 static/images/cards/loan.jpg create mode 100644 static/images/cards/locusts.jpg create mode 100644 static/images/cards/lookout.jpg create mode 100644 static/images/cards/lost-arts.jpg create mode 100644 static/images/cards/lost-citiy.jpg create mode 100644 static/images/cards/lost-in-the-woods.jpg create mode 100644 static/images/cards/lucky-coin.jpg create mode 100644 static/images/cards/lurker.jpg create mode 100644 static/images/cards/madman.jpg create mode 100644 static/images/cards/magic-lamp.jpg create mode 100644 static/images/cards/magpie.jpg create mode 100644 static/images/cards/mandarin.jpg create mode 100644 static/images/cards/marauder.jpg create mode 100644 static/images/cards/margrave.jpg create mode 100644 static/images/cards/market-square.jpg create mode 100644 static/images/cards/market.jpg create mode 100644 static/images/cards/masquerade.jpg create mode 100644 static/images/cards/masterpiece.jpg create mode 100644 static/images/cards/menagerie.jpg create mode 100644 static/images/cards/mercenary.jpg create mode 100644 static/images/cards/merchant-guild.jpg create mode 100644 static/images/cards/merchant-ship.jpg create mode 100644 static/images/cards/merchant.jpg create mode 100644 static/images/cards/messenger.jpg create mode 100644 static/images/cards/militia.jpg create mode 100644 static/images/cards/mill.jpg create mode 100644 static/images/cards/mine.jpg create mode 100644 static/images/cards/mining-village.jpg create mode 100644 static/images/cards/minion.jpg create mode 100644 static/images/cards/mint.jpg create mode 100644 static/images/cards/miser.jpg create mode 100644 static/images/cards/miserable.jpg create mode 100644 static/images/cards/misery.jpg create mode 100644 static/images/cards/mission.jpg create mode 100644 static/images/cards/moat.jpg create mode 100644 static/images/cards/monastery.jpg create mode 100644 static/images/cards/moneylender.jpg create mode 100644 static/images/cards/monument.jpg create mode 100644 static/images/cards/mountain-pass.jpg create mode 100644 static/images/cards/mountain-village.jpg create mode 100644 static/images/cards/mountebank.jpg create mode 100644 static/images/cards/museum.jpg create mode 100644 static/images/cards/mystic.jpg create mode 100644 static/images/cards/native-village.jpg create mode 100644 static/images/cards/navigator.jpg create mode 100644 static/images/cards/necromancer.jpg create mode 100644 static/images/cards/necropolis.jpg create mode 100644 static/images/cards/night-watchman.jpg create mode 100644 static/images/cards/noble-brigade.jpg create mode 100644 static/images/cards/nobles.jpg create mode 100644 static/images/cards/nomad-camp.jpg create mode 100644 static/images/cards/oasis.jpg create mode 100644 static/images/cards/obelisk.jpg create mode 100644 static/images/cards/old-images/colony.jpg create mode 100644 static/images/cards/old-images/copper.jpg create mode 100644 static/images/cards/old-images/curse.jpg create mode 100644 static/images/cards/old-images/duchy.jpg create mode 100644 static/images/cards/old-images/estate.jpg create mode 100644 static/images/cards/old-images/gold.jpg create mode 100644 static/images/cards/old-images/platinum.jpg create mode 100644 static/images/cards/old-images/province.jpg create mode 100644 static/images/cards/old-images/silver.jpg create mode 100644 static/images/cards/old-witch.jpg create mode 100644 static/images/cards/opulent-castle.jpg create mode 100644 static/images/cards/oracle.jpg create mode 100644 static/images/cards/orchard.jpg create mode 100644 static/images/cards/outpost.jpg create mode 100644 static/images/cards/overgrown-estate.jpg create mode 100644 static/images/cards/overlord.jpg create mode 100644 static/images/cards/page.jpg create mode 100644 static/images/cards/pageant.jpg create mode 100644 static/images/cards/palace.jpg create mode 100644 static/images/cards/pasture.jpg create mode 100644 static/images/cards/pathfinding.jpg create mode 100644 static/images/cards/patrician.jpg create mode 100644 static/images/cards/patrol.jpg create mode 100644 static/images/cards/patron.jpg create mode 100644 static/images/cards/pearl-diver.jpg create mode 100644 static/images/cards/peasant.jpg create mode 100644 static/images/cards/peddler.jpg create mode 100644 static/images/cards/philosophers-stone.jpg create mode 100644 static/images/cards/piazza.jpg create mode 100644 static/images/cards/pilgrimage.jpg create mode 100644 static/images/cards/pillage.jpg create mode 100644 static/images/cards/pirate-ship.jpg create mode 100644 static/images/cards/pixie.jpg create mode 100644 static/images/cards/plague.jpg create mode 100644 static/images/cards/plan.jpg create mode 100644 static/images/cards/platinum.jpg create mode 100644 static/images/cards/plaza.jpg create mode 100644 static/images/cards/plunder.jpg create mode 100644 static/images/cards/poacher.jpg create mode 100644 static/images/cards/pooka.jpg create mode 100644 static/images/cards/poor-house.jpg create mode 100644 static/images/cards/port.jpg create mode 100644 static/images/cards/possession.jpg create mode 100644 static/images/cards/potion.jpg create mode 100644 static/images/cards/pouch.jpg create mode 100644 static/images/cards/poverty.jpg create mode 100644 static/images/cards/priest.jpg create mode 100644 static/images/cards/prince.jpg create mode 100644 static/images/cards/princess.jpg create mode 100644 static/images/cards/procession.jpg create mode 100644 static/images/cards/province.jpg create mode 100644 static/images/cards/quarry.jpg create mode 100644 static/images/cards/quest.jpg create mode 100644 static/images/cards/rabble.jpg create mode 100644 static/images/cards/raid.jpg create mode 100644 static/images/cards/raider.jpg create mode 100644 static/images/cards/ranger.jpg create mode 100644 static/images/cards/ratcatcher.jpg create mode 100644 static/images/cards/rats.jpg create mode 100644 static/images/cards/raze.jpg create mode 100644 static/images/cards/rebuild.jpg create mode 100644 static/images/cards/recruiter.jpg create mode 100644 static/images/cards/relic.jpg create mode 100644 static/images/cards/remake.jpg create mode 100644 static/images/cards/remodel.jpg create mode 100644 static/images/cards/replace.jpg create mode 100644 static/images/cards/research.jpg create mode 100644 static/images/cards/ritual.jpg create mode 100644 static/images/cards/road-network.jpg create mode 100644 static/images/cards/rock.jpg create mode 100644 static/images/cards/rogue.jpg create mode 100644 static/images/cards/royal-blacksmith.jpg create mode 100644 static/images/cards/royal-carriage.jpg create mode 100644 static/images/cards/royal-seal.jpg create mode 100644 static/images/cards/ruined-library.jpg create mode 100644 static/images/cards/ruined-market.jpg create mode 100644 static/images/cards/ruined-village.jpg create mode 100644 static/images/cards/saboteur.jpg create mode 100644 static/images/cards/sacred-grove.jpg create mode 100644 static/images/cards/sacrifice.jpg create mode 100644 static/images/cards/sage.jpg create mode 100644 static/images/cards/salt-the-earth.jpg create mode 100644 static/images/cards/salvager.jpg create mode 100644 static/images/cards/sauna.jpg create mode 100644 static/images/cards/save.jpg create mode 100644 static/images/cards/scavenger.jpg create mode 100644 static/images/cards/scepter.jpg create mode 100644 static/images/cards/scheme.jpg create mode 100644 static/images/cards/scholar.jpg create mode 100644 static/images/cards/scout.jpg create mode 100644 static/images/cards/scouting-party.jpg create mode 100644 static/images/cards/scrying-pool.jpg create mode 100644 static/images/cards/sculptor.jpg create mode 100644 static/images/cards/sea-hag.jpg create mode 100644 static/images/cards/seaway.jpg create mode 100644 static/images/cards/secret-cave.jpg create mode 100644 static/images/cards/secret-chamber.jpg create mode 100644 static/images/cards/secret-passage.jpg create mode 100644 static/images/cards/seer.jpg create mode 100644 static/images/cards/sentry.jpg create mode 100644 static/images/cards/settlers.jpg create mode 100644 static/images/cards/sewers.jpg create mode 100644 static/images/cards/shanty-town.jpg create mode 100644 static/images/cards/shepherd.jpg create mode 100644 static/images/cards/silk-merchant.jpg create mode 100644 static/images/cards/silk-road.jpg create mode 100644 static/images/cards/silos.jpg create mode 100644 static/images/cards/silver.jpg create mode 100644 static/images/cards/sinister-plot.jpg create mode 100644 static/images/cards/sir-bailey.jpg create mode 100644 static/images/cards/sir-destry.jpg create mode 100644 static/images/cards/sir-martin.jpg create mode 100644 static/images/cards/sir-michael.jpg create mode 100644 static/images/cards/sir-vander.jpg create mode 100644 static/images/cards/skulk.jpg create mode 100644 static/images/cards/small-castle.jpg create mode 100644 static/images/cards/smithy.jpg create mode 100644 static/images/cards/smugglers.jpg create mode 100644 static/images/cards/soldier.jpg create mode 100644 static/images/cards/soothsayer.jpg create mode 100644 static/images/cards/spice-merchant.jpg create mode 100644 static/images/cards/spices.jpg create mode 100644 static/images/cards/spoils.jpg create mode 100644 static/images/cards/sprawling-castle.jpg create mode 100644 static/images/cards/spy.jpg create mode 100644 static/images/cards/squire.jpg create mode 100644 static/images/cards/stables.jpg create mode 100644 static/images/cards/star-chart.jpg create mode 100644 static/images/cards/steward.jpg create mode 100644 static/images/cards/stonemason.jpg create mode 100644 static/images/cards/storeroom.jpg create mode 100644 static/images/cards/storyteller.jpg create mode 100644 static/images/cards/summon.jpg create mode 100644 static/images/cards/survivors.jpg create mode 100644 static/images/cards/swamp-hag.jpg create mode 100644 static/images/cards/swashbuckler.jpg create mode 100644 static/images/cards/swindler.jpg create mode 100644 static/images/cards/tactician.jpg create mode 100644 static/images/cards/talisman.jpg create mode 100644 static/images/cards/tax.jpg create mode 100644 static/images/cards/taxman.jpg create mode 100644 static/images/cards/teacher.jpg create mode 100644 static/images/cards/temple.jpg create mode 100644 static/images/cards/the-earths-gift.jpg create mode 100644 static/images/cards/the-fields-gift.jpg create mode 100644 static/images/cards/the-flames-gift.jpg create mode 100644 static/images/cards/the-forrests-gift.jpg create mode 100644 static/images/cards/the-moons-gift.jpg create mode 100644 static/images/cards/the-mountains-gift.jpg create mode 100644 static/images/cards/the-rivers-gift.jpg create mode 100644 static/images/cards/the-seas-gift.jpg create mode 100644 static/images/cards/the-skys-gift.jpg create mode 100644 static/images/cards/the-suns-gift.jpg create mode 100644 static/images/cards/the-swamps-gift.jpg create mode 100644 static/images/cards/the-winds-gift.jpg create mode 100644 static/images/cards/thief.jpg create mode 100644 static/images/cards/throne-room.jpg create mode 100644 static/images/cards/tomb.jpg create mode 100644 static/images/cards/tormentor.jpg create mode 100644 static/images/cards/torturer.jpg create mode 100644 static/images/cards/tournament.jpg create mode 100644 static/images/cards/tower.jpg create mode 100644 static/images/cards/tracker.jpg create mode 100644 static/images/cards/trade-route.jpg create mode 100644 static/images/cards/trade.jpg create mode 100644 static/images/cards/trader.jpg create mode 100644 static/images/cards/trading-post.jpg create mode 100644 static/images/cards/tragic-hero.jpg create mode 100644 static/images/cards/training.jpg create mode 100644 static/images/cards/transmogrify.jpg create mode 100644 static/images/cards/transmute.jpg create mode 100644 static/images/cards/travelling-fair.jpg create mode 100644 static/images/cards/treasure-chest.jpg create mode 100644 static/images/cards/treasure-hunter.jpg create mode 100644 static/images/cards/treasure-map.jpg create mode 100644 static/images/cards/treasure.jpg create mode 100644 static/images/cards/treasurer.jpg create mode 100644 static/images/cards/treasury.jpg create mode 100644 static/images/cards/tribute.jpg create mode 100644 static/images/cards/triumph.jpg create mode 100644 static/images/cards/triumphal-arch.jpg create mode 100644 static/images/cards/trusty-steed.jpg create mode 100644 static/images/cards/tunnel.jpg create mode 100644 static/images/cards/twice-miserable.jpg create mode 100644 static/images/cards/university.jpg create mode 100644 static/images/cards/upgrade.jpg create mode 100644 static/images/cards/urchin.jpg create mode 100644 static/images/cards/vagrant.jpg create mode 100644 static/images/cards/vampire.jpg create mode 100644 static/images/cards/vassal.jpg create mode 100644 static/images/cards/vault.jpg create mode 100644 static/images/cards/venture.jpg create mode 100644 static/images/cards/villa.jpg create mode 100644 static/images/cards/village.jpg create mode 100644 static/images/cards/villain.jpg create mode 100644 static/images/cards/vineyard.jpg create mode 100644 static/images/cards/wall.jpg create mode 100644 static/images/cards/walled-village.jpg create mode 100644 static/images/cards/wandering-minstrel.jpg create mode 100644 static/images/cards/war.jpg create mode 100644 static/images/cards/warehouse.jpg create mode 100644 static/images/cards/warrior.jpg create mode 100644 static/images/cards/watchtower.jpg create mode 100644 static/images/cards/wedding.jpg create mode 100644 static/images/cards/werewolf.jpg create mode 100644 static/images/cards/wharf.jpg create mode 100644 static/images/cards/wild-hunt.jpg create mode 100644 static/images/cards/will-o-wisp.jpg create mode 100644 static/images/cards/windfall.jpg create mode 100644 static/images/cards/wine-merchant.jpg create mode 100644 static/images/cards/wish.jpg create mode 100644 static/images/cards/wishing-well.jpg create mode 100644 static/images/cards/witch.jpg create mode 100644 static/images/cards/wolf-den.jpg create mode 100644 static/images/cards/woodcutter.jpg create mode 100644 static/images/cards/workers-village.jpg create mode 100644 static/images/cards/workshop.jpg create mode 100644 static/images/cards/young-witch.jpg create mode 100644 static/images/cards/zombie-apprentice.jpg create mode 100644 static/images/cards/zombie-mason.jpg create mode 100644 static/images/cards/zombie-spy.jpg create mode 100644 static/index.html create mode 100644 static/main.css create mode 100644 static/mithril.js diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..40e2f97 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,11 @@ +*.dae filter=lfs diff=lfs merge=lfs -text +*.blend filter=lfs diff=lfs merge=lfs -text +*.gltf filter=lfs diff=lfs merge=lfs -text +*.glb filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text +*.jpeg filter=lfs diff=lfs merge=lfs -text +*.wav filter=lfs diff=lfs merge=lfs -text +*.ogg filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..e6d51ec --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,1751 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "aead" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" +dependencies = [ + "generic-array", +] + +[[package]] +name = "aes" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" +dependencies = [ + "aes-soft", + "aesni", + "cipher", +] + +[[package]] +name = "aes-gcm" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "aes-soft" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" +dependencies = [ + "cipher", + "opaque-debug", +] + +[[package]] +name = "aesni" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" +dependencies = [ + "cipher", + "opaque-debug", +] + +[[package]] +name = "anyhow" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68803225a7b13e47191bab76f2687382b60d259e8cf37f6e1893658b84bb9479" + +[[package]] +name = "arrayref" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" + +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "async-attributes" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd3d156917d94862e779f356c5acae312b08fd3121e792c857d7928c8088423" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "async-channel" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59740d83946db6a5af71ae25ddf9562c2b176b2ca42cf99a455f09f4a220d6b9" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-dup" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7427a12b8dc09291528cfb1da2447059adb4a257388c2acd6497a79d55cf6f7c" +dependencies = [ + "futures-io", + "simple-mutex", +] + +[[package]] +name = "async-executor" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb877970c7b440ead138f6321a3b5395d6061183af779340b65e20c0fede9146" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "once_cell", + "vec-arena", +] + +[[package]] +name = "async-global-executor" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73079b49cd26b8fd5a15f68fc7707fc78698dc2a3d61430f2a7a9430230dfa04" +dependencies = [ + "async-executor", + "async-io", + "futures-lite", + "num_cpus", + "once_cell", +] + +[[package]] +name = "async-h1" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5c68a75f812ff0f299e142c06dd0c34e3295a594d935e61eeb6c77041d1d4dc" +dependencies = [ + "async-channel", + "async-dup", + "async-std", + "byte-pool", + "futures-core", + "http-types", + "httparse", + "lazy_static", + "log", + "pin-project", +] + +[[package]] +name = "async-io" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9315f8f07556761c3e48fec2e6b276004acf426e6dc068b2c2251854d65ee0fd" +dependencies = [ + "concurrent-queue", + "fastrand", + "futures-lite", + "libc", + "log", + "nb-connect", + "once_cell", + "parking", + "polling", + "vec-arena", + "waker-fn", + "winapi", +] + +[[package]] +name = "async-mutex" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-process" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8cea09c1fb10a317d1b5af8024eeba256d6554763e85ecd90ff8df31c7bbda" +dependencies = [ + "async-io", + "blocking", + "cfg-if 0.1.10", + "event-listener", + "futures-lite", + "once_cell", + "signal-hook", + "winapi", +] + +[[package]] +name = "async-session" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345022a2eed092cd105cc1b26fd61c341e100bd5fcbbd792df4baf31c2cc631f" +dependencies = [ + "anyhow", + "async-std", + "async-trait", + "base64 0.12.3", + "bincode", + "blake3", + "chrono", + "hmac 0.8.1", + "kv-log-macro", + "rand", + "serde", + "serde_json", + "sha2", +] + +[[package]] +name = "async-sse" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53bba003996b8fd22245cd0c59b869ba764188ed435392cf2796d03b805ade10" +dependencies = [ + "async-channel", + "async-std", + "http-types", + "log", + "memchr", + "pin-project-lite 0.1.11", +] + +[[package]] +name = "async-std" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f9f84f1280a2b436a2c77c2582602732b6c2f4321d5494d6e799e6c367859a8" +dependencies = [ + "async-attributes", + "async-channel", + "async-global-executor", + "async-io", + "async-mutex", + "async-process", + "blocking", + "crossbeam-utils 0.8.1", + "futures-channel", + "futures-core", + "futures-io", + "futures-lite", + "gloo-timers", + "kv-log-macro", + "log", + "memchr", + "num_cpus", + "once_cell", + "pin-project-lite 0.2.0", + "pin-utils", + "slab", + "wasm-bindgen-futures", +] + +[[package]] +name = "async-task" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" + +[[package]] +name = "async-trait" +version = "0.1.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "async-tungstenite" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39eca8dd578b18e557361e50ca767df55c5e62f690a5e53868c3c7a8123145b7" +dependencies = [ + "futures-io", + "futures-util", + "log", + "pin-project", + "tungstenite", +] + +[[package]] +name = "atomic-waker" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" + +[[package]] +name = "autocfg" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" + +[[package]] +name = "base-x" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" + +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + +[[package]] +name = "bincode" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896d" +dependencies = [ + "byteorder", + "serde", +] + +[[package]] +name = "blake3" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9ff35b701f3914bdb8fad3368d822c766ef2858b2583198e41639b936f09d3f" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if 0.1.10", + "constant_time_eq", + "crypto-mac 0.8.0", + "digest", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blocking" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e170dbede1f740736619b776d7251cb1b9095c435c34d8ca9f57fcd2f335e9" +dependencies = [ + "async-channel", + "async-task", + "atomic-waker", + "fastrand", + "futures-lite", + "once_cell", +] + +[[package]] +name = "bumpalo" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820" + +[[package]] +name = "byte-pool" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38e98299d518ec351ca016363e0cbfc77059dcd08dfa9700d15e405536097a" +dependencies = [ + "crossbeam-queue", + "stable_deref_trait", +] + +[[package]] +name = "byteorder" +version = "1.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" + +[[package]] +name = "bytes" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" + +[[package]] +name = "cache-padded" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" + +[[package]] +name = "cc" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48" + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +dependencies = [ + "libc", + "num-integer", + "num-traits", + "serde", + "time 0.1.44", + "winapi", +] + +[[package]] +name = "cipher" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" +dependencies = [ + "generic-array", +] + +[[package]] +name = "concurrent-queue" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" +dependencies = [ + "cache-padded", +] + +[[package]] +name = "const_fn" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd51eab21ab4fd6a3bf889e2d0958c0a6e3a61ad04260325e919e652a2a62826" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "cookie" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784ad0fbab4f3e9cef09f20e0aea6000ae08d2cb98ac4c0abc53df18803d702f" +dependencies = [ + "aes-gcm", + "base64 0.12.3", + "hkdf", + "hmac 0.10.1", + "percent-encoding", + "rand", + "sha2", + "time 0.2.23", + "version_check", +] + +[[package]] +name = "cpuid-bool" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" + +[[package]] +name = "cpuid-bool" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" + +[[package]] +name = "crossbeam-queue" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" +dependencies = [ + "cfg-if 0.1.10", + "crossbeam-utils 0.7.2", + "maybe-uninit", +] + +[[package]] +name = "crossbeam-utils" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" +dependencies = [ + "autocfg", + "cfg-if 0.1.10", + "lazy_static", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d" +dependencies = [ + "autocfg", + "cfg-if 1.0.0", + "lazy_static", +] + +[[package]] +name = "crypto-mac" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "crypto-mac" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4857fd85a0c34b3c3297875b747c1e02e06b6a0ea32dd892d8192b9ce0813ea6" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "ctr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" +dependencies = [ + "cipher", +] + +[[package]] +name = "data-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "993a608597367c6377b258c25d7120740f00ed23a2252b729b1932dd7866f908" + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "discard" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" + +[[package]] +name = "dominion" +version = "0.1.0" +dependencies = [ + "async-std", + "html-escape", + "serde", + "serde_json", + "tide", + "tide-websockets", + "uuid", +] + +[[package]] +name = "event-listener" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59" + +[[package]] +name = "fastrand" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca5faf057445ce5c9d4329e382b2ce7ca38550ef3b73a5348362d5f24e0c7fe3" +dependencies = [ + "instant", +] + +[[package]] +name = "femme" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2af1a24f391a5a94d756db5092c6576aad494b88a71a5a36b20c67b63e0df034" +dependencies = [ + "cfg-if 0.1.10", + "js-sys", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00" +dependencies = [ + "matches", + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b7109687aa4e177ef6fe84553af6280ef2778bdb7783ba44c9dc3399110fe64" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "847ce131b72ffb13b6109a221da9ad97a64cbe48feb1028356b836b47b8f1748" + +[[package]] +name = "futures-io" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "611834ce18aaa1bd13c4b374f5d653e1027cf99b6b502584ff8c9a64413b30bb" + +[[package]] +name = "futures-lite" +version = "1.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4481d0cd0de1d204a4fa55e7d45f07b1d958abcb06714b3446438e2eff695fb" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite 0.2.0", + "waker-fn", +] + +[[package]] +name = "futures-macro" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77408a692f1f97bcc61dc001d752e00643408fbc922e4d634c655df50d595556" +dependencies = [ + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f878195a49cee50e006b02b93cf7e0a95a38ac7b776b4c4d9cc1207cd20fcb3d" + +[[package]] +name = "futures-task" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c554eb5bf48b2426c4771ab68c6b14468b6e76cc90996f528c3338d761a4d0d" +dependencies = [ + "once_cell", +] + +[[package]] +name = "futures-util" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d304cff4a7b99cfb7986f7d43fbe93d175e72e704a8860787cc95e9ffd85cbd2" +dependencies = [ + "futures-core", + "futures-macro", + "futures-sink", + "futures-task", + "pin-project", + "pin-utils", + "proc-macro-hack", + "proc-macro-nested", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "ghash" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6e27f0689a6e15944bdce7e45425efb87eaa8ab0c6e87f11d0987a9133e2531" +dependencies = [ + "polyval", +] + +[[package]] +name = "gloo-timers" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47204a46aaff920a1ea58b11d03dec6f704287d27561724a4631e450654a891f" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "hermit-abi" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8" +dependencies = [ + "libc", +] + +[[package]] +name = "hkdf" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51ab2f639c231793c5f6114bdb9bbe50a7dbbfcd7c7c6bd8475dec2d991e964f" +dependencies = [ + "digest", + "hmac 0.10.1", +] + +[[package]] +name = "hmac" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" +dependencies = [ + "crypto-mac 0.8.0", + "digest", +] + +[[package]] +name = "hmac" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" +dependencies = [ + "crypto-mac 0.10.0", + "digest", +] + +[[package]] +name = "html-escape" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d348900ce941b7474395ba922ed3735a517df4546a2939ddb416ce85eeaa988e" +dependencies = [ + "utf8-width", +] + +[[package]] +name = "http" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84129d298a6d57d246960ff8eb831ca4af3f96d29e2e28848dae275408658e26" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-client" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "010092b71b94ee49293995625ce7a607778b8b4099c8088fa84fd66bd3e0f21c" +dependencies = [ + "async-trait", + "http-types", + "log", +] + +[[package]] +name = "http-types" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ab8d0085fb82859c9adf050bd53992297ecdd03a665a230dfa50c8c964bf3d" +dependencies = [ + "anyhow", + "async-channel", + "async-std", + "base64 0.13.0", + "cookie", + "futures-lite", + "infer", + "pin-project-lite 0.1.11", + "rand", + "serde", + "serde_json", + "serde_qs", + "serde_urlencoded", + "url", +] + +[[package]] +name = "httparse" +version = "1.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" + +[[package]] +name = "idna" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "infer" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" + +[[package]] +name = "input_buffer" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19a8a95243d5a0398cae618ec29477c6e3cb631152be5c19481f80bc71559754" +dependencies = [ + "bytes", +] + +[[package]] +name = "instant" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "itoa" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6" + +[[package]] +name = "js-sys" +version = "0.3.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d7383929f7c9c7c2d0fa596f325832df98c3704f2c60553080f7127a58175" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "kv-log-macro" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" +dependencies = [ + "log", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb" + +[[package]] +name = "log" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" +dependencies = [ + "cfg-if 0.1.10", +] + +[[package]] +name = "matches" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" + +[[package]] +name = "maybe-uninit" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" + +[[package]] +name = "memchr" +version = "2.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" + +[[package]] +name = "nb-connect" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8123a81538e457d44b933a02faf885d3fe8408806b23fa700e8f01c6c3a98998" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "num-integer" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "once_cell" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "parking" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" + +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" + +[[package]] +name = "pin-project" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ccc2237c2c489783abd8c4c80e5450fc0e98644555b1364da68cc29aa151ca7" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8e8d2bf0b23038a4424865103a4df472855692821aab4e4f5c3312d461d9e5f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b" + +[[package]] +name = "pin-project-lite" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b063f57ec186e6140e2b8b6921e5f1bd89c7356dda5b33acc5401203ca6131c" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "polling" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2a7bc6b2a29e632e45451c941832803a18cce6781db04de8a04696cdca8bde4" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "log", + "wepoll-sys", + "winapi", +] + +[[package]] +name = "polyval" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4fd92d8e0c06d08525d2e2643cc2b5c80c69ae8eb12c18272d501cd7079ccc0" +dependencies = [ + "cpuid-bool 0.2.0", + "universal-hash", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" + +[[package]] +name = "proc-macro-hack" +version = "0.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" + +[[package]] +name = "proc-macro-nested" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" + +[[package]] +name = "proc-macro2" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "quote" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom", + "libc", + "rand_chacha", + "rand_core", + "rand_hc", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core", +] + +[[package]] +name = "route-recognizer" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56770675ebc04927ded3e60633437841581c285dc6236109ea25fbf3beb7b59e" + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver", +] + +[[package]] +name = "ryu" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" + +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "serde" +version = "1.0.118" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.118" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1500e84d27fe482ed1dc791a56eddc2f230046a040fa908c08bda1d9fb615779" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_qs" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5af82de3c6549b001bec34961ff2d6a54339a87bab37ce901b693401f27de6cb" +dependencies = [ + "data-encoding", + "percent-encoding", + "serde", + "thiserror", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha-1" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce3cdf1b5e620a498ee6f2a171885ac7e22f0e12089ec4b3d22b84921792507c" +dependencies = [ + "block-buffer", + "cfg-if 1.0.0", + "cpuid-bool 0.1.2", + "digest", + "opaque-debug", +] + +[[package]] +name = "sha1" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" + +[[package]] +name = "sha2" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e7aab86fe2149bad8c507606bdb3f4ef5e7b2380eb92350f56122cca72a42a8" +dependencies = [ + "block-buffer", + "cfg-if 1.0.0", + "cpuid-bool 0.1.2", + "digest", + "opaque-debug", +] + +[[package]] +name = "signal-hook" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "604508c1418b99dfe1925ca9224829bb2a8a9a04dda655cc01fcad46f4ab05ed" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-registry" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce32ea0c6c56d5eacaeb814fbed9960547021d3edd010ded1425f180536b20ab" +dependencies = [ + "libc", +] + +[[package]] +name = "simple-mutex" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38aabbeafa6f6dead8cebf246fe9fae1f9215c8d29b3a69f93bd62a9e4a3dcd6" +dependencies = [ + "event-listener", +] + +[[package]] +name = "slab" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "standback" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf906c8b8fc3f6ecd1046e01da1d8ddec83e48c8b08b84dcc02b585a6bedf5a8" +dependencies = [ + "version_check", +] + +[[package]] +name = "stdweb" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" +dependencies = [ + "discard", + "rustc_version", + "stdweb-derive", + "stdweb-internal-macros", + "stdweb-internal-runtime", + "wasm-bindgen", +] + +[[package]] +name = "stdweb-derive" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "serde_derive", + "syn", +] + +[[package]] +name = "stdweb-internal-macros" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" +dependencies = [ + "base-x", + "proc-macro2", + "quote", + "serde", + "serde_derive", + "serde_json", + "sha1", + "syn", +] + +[[package]] +name = "stdweb-internal-runtime" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" + +[[package]] +name = "subtle" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2" + +[[package]] +name = "syn" +version = "1.0.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a571a711dddd09019ccc628e1b17fe87c59b09d513c06c026877aa708334f37a" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "thiserror" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e9ae34b84616eedaaf1e9dd6026dbe00dcafa92aa0c8077cb69df1fcfe5e53e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ba20f23e85b10754cd195504aebf6a27e2e6cbe28c17778a0c930724628dd56" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tide" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c832ca099a0645f6446b6c8900b09e3b76978dedc0d7383438698b32ff07f734" +dependencies = [ + "async-h1", + "async-session", + "async-sse", + "async-std", + "async-trait", + "femme", + "futures-util", + "http-client", + "http-types", + "kv-log-macro", + "log", + "pin-project-lite 0.1.11", + "route-recognizer", + "serde", + "serde_json", +] + +[[package]] +name = "tide-websockets" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4aee1eac9c3385cd9fe60de592b84f89b5c57f711da604128b9c1ea3377d072c" +dependencies = [ + "async-dup", + "async-std", + "async-tungstenite", + "base64 0.13.0", + "futures-util", + "pin-project", + "serde", + "serde_json", + "sha-1", + "tide", +] + +[[package]] +name = "time" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi", +] + +[[package]] +name = "time" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcdaeea317915d59b2b4cd3b5efcd156c309108664277793f5351700c02ce98b" +dependencies = [ + "const_fn", + "libc", + "standback", + "stdweb", + "time-macros", + "version_check", + "winapi", +] + +[[package]] +name = "time-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1" +dependencies = [ + "proc-macro-hack", + "time-macros-impl", +] + +[[package]] +name = "time-macros-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa" +dependencies = [ + "proc-macro-hack", + "proc-macro2", + "quote", + "standback", + "syn", +] + +[[package]] +name = "tinyvec" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "tungstenite" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0308d80d86700c5878b9ef6321f020f29b1bb9d5ff3cab25e75e23f3a492a23" +dependencies = [ + "base64 0.12.3", + "byteorder", + "bytes", + "http", + "httparse", + "input_buffer", + "log", + "rand", + "sha-1", + "url", + "utf-8", +] + +[[package]] +name = "typenum" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" + +[[package]] +name = "unicode-bidi" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" +dependencies = [ + "matches", +] + +[[package]] +name = "unicode-normalization" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-xid" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" + +[[package]] +name = "universal-hash" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "url" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e" +dependencies = [ + "form_urlencoded", + "idna", + "matches", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf-8" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e42f7c18b8f902290b009cde6d651262f956c98bc51bca4cd1d511c9cd85c7" + +[[package]] +name = "utf8-width" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9071ac216321a4470a69fb2b28cfc68dcd1a39acd877c8be8e014df6772d8efa" + +[[package]] +name = "uuid" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11" +dependencies = [ + "rand", + "serde", +] + +[[package]] +name = "vec-arena" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eafc1b9b2dfc6f5529177b62cf806484db55b32dc7c9658a118e11bbeb33061d" + +[[package]] +name = "version_check" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" + +[[package]] +name = "waker-fn" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "wasm-bindgen" +version = "0.2.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e" +dependencies = [ + "cfg-if 1.0.0", + "serde", + "serde_json", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62" +dependencies = [ + "bumpalo", + "lazy_static", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158" + +[[package]] +name = "web-sys" +version = "0.3.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222b1ef9334f92a21d3fb53dc3fd80f30836959a90f9274a626d7e06315ba3c3" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "wepoll-sys" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fcb14dea929042224824779fbc82d9fab8d2e6d3cbc0ac404de8edf489e77ff" +dependencies = [ + "cc", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..4240e64 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "dominion" +version = "0.1.0" +authors = ["Markus Wagner "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +async-std = { version = "1.8.0", features = ["attributes"] } +html-escape = "0.2.6" +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0.60" +tide = "0.15.0" +tide-websockets = "0.1.0" +uuid = { version = "0.8.1", features = ["v4", "serde"] } diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..568f8c9 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,238 @@ +extern crate html_escape; + +use async_std::{ + prelude::*, + sync::RwLock +}; +use std::{ + collections::HashMap, + sync::{Arc} +}; +use serde::{Deserialize, Serialize}; +use tide::{Body, Redirect, Request, Response}; +use tide_websockets::{Message, WebSocket, WebSocketConnection}; +use uuid::Uuid; + +#[derive(Deserialize, Clone)] +struct CreateGameMessage { + name: String, +} + +#[derive(Serialize)] +struct GameStateMessage { + id: String, + state: GameState, +} + +#[derive(Serialize)] +struct GameSetupMessage { + id: String, + setup: GameSetup, +} + +#[derive(Deserialize)] +#[serde(tag = "type")] +enum ClientMessage { + Chat { + message: String, + }, + StartGame, +} + +#[derive(Serialize)] +#[serde(tag = "type")] +enum ServerMessage { + Chat { + sender: String, + message: String, + }, + PlayerJoined { + player: String, + }, +} + +struct Player { + name: String, +} + +#[derive(Copy, Clone, Serialize)] +enum GameState { + Setup, + InProgress, +} + +#[derive(Clone, Serialize)] +struct GameSetup { + deck: Vec, +} + +impl Default for GameSetup { + fn default() -> GameSetup { + GameSetup { + deck: vec!["Copper".into(), "Copper".into(), "Copper".into(), "Copper".into(), "Copper".into(), + "Copper".into(), "Copper".into(), "Estate".into(), "Estate".into(), "Estate".into()] + } + } +} + +struct Game { + players: Vec, + state: GameState, + setup: GameSetup, + connections: HashMap, +} + + +impl Game { + fn new(player: Player) -> Self { + Self { + players: vec![player], + state: GameState::Setup, + setup: GameSetup::default(), + connections: HashMap::new(), + } + } +} + +#[derive(Clone, Default)] +struct State { + games: Arc>>, +} + + +#[async_std::main] +async fn main() -> Result<(), std::io::Error> { + tide::log::with_level(tide::log::LevelFilter::Debug); + + let mut app = tide::with_state(State::default()); + + app.with(tide::sessions::SessionMiddleware::new( + tide::sessions::MemoryStore::new(), + "1234567890abcdef1234567890abcdef".as_bytes(), + )); + + app.at("/").get(|_| async { Ok(Body::from_file("static/index.html").await?) }); + app.at("/static").serve_dir("static/")?; + + app.at("/game").post(|mut req: Request| async move { + let msg: CreateGameMessage = req.body_form().await?; + let session = req.session_mut(); + + session.insert("player_name", msg.name.clone()).unwrap(); + + let id = Uuid::new_v4(); + let mut games = req.state().games.write().await; + let player = Player { name: msg.name }; + + games.insert(id, Game::new(player)); + + let url = format!("/game/{}", id.to_simple().to_string()); + let res: tide::Result = Ok(Redirect::new(url).into()); + res + }); + + app.at("/game/:id").get(|req: Request| async move { + let games = req.state().games.read().await; + let id = req.param("id")?; + let game_id = Uuid::parse_str(&id).unwrap(); + + match games.get(&game_id) { + None => Ok(Response::new(404)), + Some(_) => { + let mut res = Response::new(200); + res.set_body(Body::from_file("static/game.html").await?); + Ok(res) + } + } + }); + + + app.at("/game/:id/ws") + .get(WebSocket::new(|req: Request, mut stream| async move { + let id = req.param("id")?; + let game_id = Uuid::parse_str(&id).unwrap(); + let mut games = req.state().games.write().await; + let game = games.get_mut(&game_id).unwrap(); + let session = req.session(); + + let client_id = Uuid::new_v4(); + game.connections.insert(client_id, stream.clone()); + + //Ensure the write locks are freed, possibly better to move to a function + //with implicit drop? + drop(game); + drop(games); + + let games = req.state().games.read().await; + let game = games.get(&game_id).unwrap(); + + let msg = GameStateMessage { + id: "state".into(), + state: game.state, + }; + + stream.send_json(&msg).await?; + + let msg = GameSetupMessage { + id: "setup".into(), + setup: game.setup.clone(), + }; + + stream.send_json(&msg).await?; + + let player: String = session.get("player_name").unwrap_or("SOMEONE".into()); + let sm = ServerMessage::PlayerJoined { + player: html_escape::encode_text(&player).into(), + }; + + for (_, con) in game.connections.iter() { + con.send_json(&sm).await?; + } + + drop(game); drop(games); + + while let Some(Ok(Message::Text(input))) = stream.next().await { + let msg: ClientMessage = serde_json::from_str(&input)?; + + match msg { + ClientMessage::Chat { message } => { + let sender: String = session.get("player_name").unwrap_or("SOMEONE".into()); + let sm = ServerMessage::Chat { + sender: html_escape::encode_text(&sender).into(), + message: html_escape::encode_text(&message).into(), + }; + + let games = req.state().games.read().await; + let game = games.get(&game_id).unwrap(); + + for (_, con) in game.connections.iter() { + con.send_json(&sm).await?; + } + } + + ClientMessage::StartGame => { + let mut games = req.state().games.write().await; + let game = games.get_mut(&game_id).unwrap(); + + match game.state { + GameState::Setup => { + game.state = GameState::InProgress; + } + _ => {} //Ignore, if game not in setup state + } + } + } + } + + let mut games = req.state().games.write().await; + let game = games.get_mut(&game_id).unwrap(); + + game.connections.remove(&client_id); + + Ok(()) + })); + + app.listen("0.0.0.0:5000").await?; + Ok(()) +} + diff --git a/static/game.html b/static/game.html new file mode 100644 index 0000000..2955cd9 --- /dev/null +++ b/static/game.html @@ -0,0 +1,523 @@ + + + + + + DnD + + + + + + +
+ + + diff --git a/static/images/64px-Coin.png b/static/images/64px-Coin.png new file mode 100644 index 0000000..bad8467 --- /dev/null +++ b/static/images/64px-Coin.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e37f777c81e65c23524c104e2947f7cee62a4c4bdf5d4acc27a4dc2efa41ab5 +size 12193 diff --git a/static/images/cards/Card_back.jpg b/static/images/cards/Card_back.jpg new file mode 100644 index 0000000..dd7292e --- /dev/null +++ b/static/images/cards/Card_back.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e9adff079461b474e0a5506c5db86a250734ad278f14c349dd7236943877776 +size 35552 diff --git a/static/images/cards/abandoned-mine.jpg b/static/images/cards/abandoned-mine.jpg new file mode 100644 index 0000000..ab8632e --- /dev/null +++ b/static/images/cards/abandoned-mine.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b071aa325752f56f48aa455d91c2063bf5b98fe9c65d7a18ec4102d5eddb0791 +size 150339 diff --git a/static/images/cards/academy.jpg b/static/images/cards/academy.jpg new file mode 100644 index 0000000..a301572 --- /dev/null +++ b/static/images/cards/academy.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:447c41d939b6c0e38bb6c5b87d65b3ec9ef97b43059f0726e853aac65b928942 +size 194350 diff --git a/static/images/cards/acting-troupe.jpg b/static/images/cards/acting-troupe.jpg new file mode 100644 index 0000000..78f4580 --- /dev/null +++ b/static/images/cards/acting-troupe.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88237d4e271abf1b6914c9a9f2bec34ff7383aa8082985f540534bb766cf7a52 +size 151929 diff --git a/static/images/cards/advance.jpg b/static/images/cards/advance.jpg new file mode 100644 index 0000000..3b035e9 --- /dev/null +++ b/static/images/cards/advance.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bae02e173112975a0090863628fb58622d477b9fafdc31387c3eaaa0b2e092bd +size 245726 diff --git a/static/images/cards/adventurer.jpg b/static/images/cards/adventurer.jpg new file mode 100644 index 0000000..fd767ee --- /dev/null +++ b/static/images/cards/adventurer.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09139fa75118a762d75229e937d0d2bc30edb7ec4256bb3a4a770ca316e925c2 +size 110080 diff --git a/static/images/cards/advisor.jpg b/static/images/cards/advisor.jpg new file mode 100644 index 0000000..5086e0e --- /dev/null +++ b/static/images/cards/advisor.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdb85d34d89433c06e1cc944f959ccf18d4b1dfd3f96076113d0e2ab82996a32 +size 167554 diff --git a/static/images/cards/alchemist.jpg b/static/images/cards/alchemist.jpg new file mode 100644 index 0000000..5c98e27 --- /dev/null +++ b/static/images/cards/alchemist.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa3847b3c58445f884f3bb15d4c6c002d02b8fddf53872029685f15e65e6a7e7 +size 190487 diff --git a/static/images/cards/alms.jpg b/static/images/cards/alms.jpg new file mode 100644 index 0000000..e75ad0e --- /dev/null +++ b/static/images/cards/alms.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:062e7a67f039832e4adfc8b88dd630b0e371f91ac5413b7bce722f47875da69d +size 259180 diff --git a/static/images/cards/altar.jpg b/static/images/cards/altar.jpg new file mode 100644 index 0000000..6f94d40 --- /dev/null +++ b/static/images/cards/altar.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89662bef29e265a68f9df61618df185f39db2f036bbf3f73dc76a059fe122d6b +size 149501 diff --git a/static/images/cards/ambassador.jpg b/static/images/cards/ambassador.jpg new file mode 100644 index 0000000..4f22f64 --- /dev/null +++ b/static/images/cards/ambassador.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:054a540237572ec65d0175186a0346030262f3f36193d438ab37921fdfb5b49d +size 187719 diff --git a/static/images/cards/amulet.jpg b/static/images/cards/amulet.jpg new file mode 100644 index 0000000..b63ce69 --- /dev/null +++ b/static/images/cards/amulet.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8cc8f51053b1478cf455632e0d42b839c1c3a776972080c7636548fe3d6aca56 +size 178270 diff --git a/static/images/cards/annex.jpg b/static/images/cards/annex.jpg new file mode 100644 index 0000000..497eadb --- /dev/null +++ b/static/images/cards/annex.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00314d2d32720773f2b20434e3f221605446083be1948a87097b53102c906d71 +size 299894 diff --git a/static/images/cards/apothecary.jpg b/static/images/cards/apothecary.jpg new file mode 100644 index 0000000..6eba884 --- /dev/null +++ b/static/images/cards/apothecary.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e12182c196cc7550d92616971257ce514233fe0ebc15d9bb901f8d7db182bc3 +size 194152 diff --git a/static/images/cards/apprentice.jpg b/static/images/cards/apprentice.jpg new file mode 100644 index 0000000..0213d73 --- /dev/null +++ b/static/images/cards/apprentice.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96ec49381eb8b0bfaf9e7a91f335dca787c9288dcc16bbf944d4bdcc48dbc9f4 +size 163152 diff --git a/static/images/cards/aqueduct.jpg b/static/images/cards/aqueduct.jpg new file mode 100644 index 0000000..2d7a64b --- /dev/null +++ b/static/images/cards/aqueduct.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18485e2ab702a1a0dd85fe9e25673c83911f2d2a9420db245b18328411b03578 +size 283601 diff --git a/static/images/cards/archive.jpg b/static/images/cards/archive.jpg new file mode 100644 index 0000000..ec203a5 --- /dev/null +++ b/static/images/cards/archive.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed787897a87cc14484d911155d975b377e078f6f446aecf6369703ac2987f85a +size 192583 diff --git a/static/images/cards/arena.jpg b/static/images/cards/arena.jpg new file mode 100644 index 0000000..7435f86 --- /dev/null +++ b/static/images/cards/arena.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6077fe94e730a55d43a3c9af3f4097a896cd1f9ba29d26deba53c61a991198e9 +size 269741 diff --git a/static/images/cards/armory.jpg b/static/images/cards/armory.jpg new file mode 100644 index 0000000..619d417 --- /dev/null +++ b/static/images/cards/armory.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65c9f381e70f627a29e15b40be47426b228a100922b4d20d94effb1255132ee6 +size 171332 diff --git a/static/images/cards/artificer.jpg b/static/images/cards/artificer.jpg new file mode 100644 index 0000000..6a98a37 --- /dev/null +++ b/static/images/cards/artificer.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96a972cc9b2aa10ad04e93e7e856486e677d9709e2af156a983c9eb73237be14 +size 172668 diff --git a/static/images/cards/artisan.jpg b/static/images/cards/artisan.jpg new file mode 100644 index 0000000..bc1191e --- /dev/null +++ b/static/images/cards/artisan.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81708bd50937be2a91ff24e3c2999f656e0cb9e844532d077e6ab8d68bf7eda8 +size 175989 diff --git a/static/images/cards/avanto.jpg b/static/images/cards/avanto.jpg new file mode 100644 index 0000000..1d33b61 --- /dev/null +++ b/static/images/cards/avanto.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73357df3a1d5d6a80c0672ba359703eb428a1ac40c01ae3678b67630983cb011 +size 161743 diff --git a/static/images/cards/bad-omens.jpg b/static/images/cards/bad-omens.jpg new file mode 100644 index 0000000..bcc227c --- /dev/null +++ b/static/images/cards/bad-omens.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f26743407b164aac97d4ceb49ac73eb44d1939a440d305eab1400e97da9ea74f +size 210059 diff --git a/static/images/cards/bag-of-gold.jpg b/static/images/cards/bag-of-gold.jpg new file mode 100644 index 0000000..3b26f30 --- /dev/null +++ b/static/images/cards/bag-of-gold.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f85f540d9565f84a5c0818120b6f8bb294670f8ca4723109c4ec7c3f71007554 +size 174949 diff --git a/static/images/cards/baker.jpg b/static/images/cards/baker.jpg new file mode 100644 index 0000000..782edb0 --- /dev/null +++ b/static/images/cards/baker.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf3f7f7592490689e62da04502af7f0e80d5c96dddde7a37861cbebaf245a25d +size 158658 diff --git a/static/images/cards/ball.jpg b/static/images/cards/ball.jpg new file mode 100644 index 0000000..a4d0450 --- /dev/null +++ b/static/images/cards/ball.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16066e1253935b34bca556dbf3e8c95a04dc9640676660b1e95d3fea9e36d1ce +size 248574 diff --git a/static/images/cards/band-of-misfits.jpg b/static/images/cards/band-of-misfits.jpg new file mode 100644 index 0000000..3d8b75b --- /dev/null +++ b/static/images/cards/band-of-misfits.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43578486add5242918cfce626f2c76a050869948c770c8143964dbaf4da0ccf2 +size 157662 diff --git a/static/images/cards/bandit-camp.jpg b/static/images/cards/bandit-camp.jpg new file mode 100644 index 0000000..123f016 --- /dev/null +++ b/static/images/cards/bandit-camp.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a92d093799c86761adeeadc9c3690ffe2f9a5bef040fc0535e6b207329252497 +size 137573 diff --git a/static/images/cards/bandit-fort.jpg b/static/images/cards/bandit-fort.jpg new file mode 100644 index 0000000..74dad3c --- /dev/null +++ b/static/images/cards/bandit-fort.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ca7090bed09b35e19d42eb78217ca84b2c38fa23b86c980b993519bfc84e719 +size 247609 diff --git a/static/images/cards/bandit.jpg b/static/images/cards/bandit.jpg new file mode 100644 index 0000000..1570959 --- /dev/null +++ b/static/images/cards/bandit.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69c1e217091377e7dcb5e458cc21221b14fd7c3fb46b7f641a2550d03799cdd4 +size 195741 diff --git a/static/images/cards/bank.jpg b/static/images/cards/bank.jpg new file mode 100644 index 0000000..b111140 --- /dev/null +++ b/static/images/cards/bank.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bad30b9fcda38c2d1f95a5ade0bebc95e1bd377ab54cc4af02397323e2e7cf1f +size 172046 diff --git a/static/images/cards/banquet.jpg b/static/images/cards/banquet.jpg new file mode 100644 index 0000000..309ffbc --- /dev/null +++ b/static/images/cards/banquet.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:acdde628b245f3c96d3632cdc1efd0eb2947eb0c403cfec09b2fb06dd5871af5 +size 249520 diff --git a/static/images/cards/bard.jpg b/static/images/cards/bard.jpg new file mode 100644 index 0000000..503b600 --- /dev/null +++ b/static/images/cards/bard.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59e59a9277278e40d36a89091a4c5931814e659a8c5672503caa1d2f97e78375 +size 149934 diff --git a/static/images/cards/baron.jpg b/static/images/cards/baron.jpg new file mode 100644 index 0000000..08e0f2f --- /dev/null +++ b/static/images/cards/baron.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8fa6c78b6d3c1e38f84789dc5aeb99f212b751a8c7e7b150b58f58eb6bf6606a +size 164270 diff --git a/static/images/cards/barracks.jpg b/static/images/cards/barracks.jpg new file mode 100644 index 0000000..a5344d6 --- /dev/null +++ b/static/images/cards/barracks.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9519c7b09720024e4fa861e00c68938ee0acf7c9853205f6c8f4f110a6ebf407 +size 183491 diff --git a/static/images/cards/basilica.jpg b/static/images/cards/basilica.jpg new file mode 100644 index 0000000..9c9e0e2 --- /dev/null +++ b/static/images/cards/basilica.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:082f0b9ed3157e8f3339f0b281fc2b58d89136076a61b38a882737faac1352e0 +size 229080 diff --git a/static/images/cards/bat.jpg b/static/images/cards/bat.jpg new file mode 100644 index 0000000..7bc0f83 --- /dev/null +++ b/static/images/cards/bat.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a45c1825e177e70bb6a8fc335c39d0f2ec4bd7ea1c15df79ab17cac6693f2656 +size 152138 diff --git a/static/images/cards/baths.jpg b/static/images/cards/baths.jpg new file mode 100644 index 0000000..79e5651 --- /dev/null +++ b/static/images/cards/baths.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c9dfdf4f8e9b20ec7cafe5f41896f1c093c3eb9954f1a7850abfda0177a5b2f +size 201506 diff --git a/static/images/cards/battlefield.jpg b/static/images/cards/battlefield.jpg new file mode 100644 index 0000000..2b1bce2 --- /dev/null +++ b/static/images/cards/battlefield.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55b8edfd3c2c273b2bdd66300529c012fcc0e3761b249eb3362dcdff6617f5cb +size 262265 diff --git a/static/images/cards/bazaar.jpg b/static/images/cards/bazaar.jpg new file mode 100644 index 0000000..12dc40c --- /dev/null +++ b/static/images/cards/bazaar.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cfb81cedf87009129556cb70bb596c1e330fb85b31bb180e265dca6221b0a67 +size 151082 diff --git a/static/images/cards/beggar.jpg b/static/images/cards/beggar.jpg new file mode 100644 index 0000000..7ac2871 --- /dev/null +++ b/static/images/cards/beggar.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33d07fc769db25641401fe1bce01638f284f1c8adef8f89dad4b3a2ddc0d4273 +size 174626 diff --git a/static/images/cards/bishop.jpg b/static/images/cards/bishop.jpg new file mode 100644 index 0000000..09a18a0 --- /dev/null +++ b/static/images/cards/bishop.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7ad756158087fa44426fff7eb09ca1edbe99d1c7c5366b68604d9cfc9fdb60d +size 176946 diff --git a/static/images/cards/black-market.jpg b/static/images/cards/black-market.jpg new file mode 100644 index 0000000..623c11f --- /dev/null +++ b/static/images/cards/black-market.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3da4157471de19f82458837178bc09a926ed2feccc741fb6c3db46069e024d13 +size 199567 diff --git a/static/images/cards/blessed-village.jpg b/static/images/cards/blessed-village.jpg new file mode 100644 index 0000000..ec22d97 --- /dev/null +++ b/static/images/cards/blessed-village.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cfbb32b7e34fb2833f294dec9c852bf86a32066624c3e4787a5a1bfae43060a +size 196459 diff --git a/static/images/cards/bonfire.jpg b/static/images/cards/bonfire.jpg new file mode 100644 index 0000000..4df5fbc --- /dev/null +++ b/static/images/cards/bonfire.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3782c39a32fde7cd7fdfac58e6f91533f20e500d3c273457bf6e65ff0c49cc70 +size 238401 diff --git a/static/images/cards/border-guard.jpg b/static/images/cards/border-guard.jpg new file mode 100644 index 0000000..721f9e5 --- /dev/null +++ b/static/images/cards/border-guard.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c821a46a896f703667a2ac81e64dc22ff24ceac120440aa1824cf09e5df1d009 +size 172404 diff --git a/static/images/cards/border-village.jpg b/static/images/cards/border-village.jpg new file mode 100644 index 0000000..291dfa5 --- /dev/null +++ b/static/images/cards/border-village.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d009401a3b573ebaf68c369cac003b57ea8ef67a146805548b7b597b2d645a9d +size 161989 diff --git a/static/images/cards/borrow.jpg b/static/images/cards/borrow.jpg new file mode 100644 index 0000000..3cf4fe7 --- /dev/null +++ b/static/images/cards/borrow.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47036214bcdfe6280e35953d6af0bc4ae4d4c3817d147a4ebbea60ebd553d455 +size 239320 diff --git a/static/images/cards/bridge-troll.jpg b/static/images/cards/bridge-troll.jpg new file mode 100644 index 0000000..5c1f66e --- /dev/null +++ b/static/images/cards/bridge-troll.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc7a76ff6f87654a3a527f8779674a57ee4ecc2446f139d57fc32b2b2097a990 +size 212165 diff --git a/static/images/cards/bridge.jpg b/static/images/cards/bridge.jpg new file mode 100644 index 0000000..9c3a1f1 --- /dev/null +++ b/static/images/cards/bridge.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:604698da6e2954fb32cda26af73945e61337b30a74e762db65892cd07e9071a1 +size 167134 diff --git a/static/images/cards/bureaucrat.jpg b/static/images/cards/bureaucrat.jpg new file mode 100644 index 0000000..95ceb56 --- /dev/null +++ b/static/images/cards/bureaucrat.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8149f187d0b854ae60ca176f9771305a0a3eebe8fdab58c6f84c3c9cbf5911ea +size 187687 diff --git a/static/images/cards/bustling-village.jpg b/static/images/cards/bustling-village.jpg new file mode 100644 index 0000000..f1b2748 --- /dev/null +++ b/static/images/cards/bustling-village.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2efeacae02f264541ddb048da1ccd86205d47dac756e037f136b3ea23c79e27 +size 157262 diff --git a/static/images/cards/butcher.jpg b/static/images/cards/butcher.jpg new file mode 100644 index 0000000..099f6de --- /dev/null +++ b/static/images/cards/butcher.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1485c5a75098e1a075dd899d505c7ba8b54f19d3262d1ee2ac904ebd5ee5374 +size 190185 diff --git a/static/images/cards/cache.jpg b/static/images/cards/cache.jpg new file mode 100644 index 0000000..c0d4a6d --- /dev/null +++ b/static/images/cards/cache.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5dbb76f50b127083c19aa0e67baa4a1990cdfce02960f180b03a9650f80dc88 +size 179616 diff --git a/static/images/cards/canal.jpg b/static/images/cards/canal.jpg new file mode 100644 index 0000000..5ae1b80 --- /dev/null +++ b/static/images/cards/canal.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:701c3ff73dc0daf0bf5e6acca56d5b5c54d3d49afcd6cef5c024a2e822b8b044 +size 237178 diff --git a/static/images/cards/candlestick-maker.jpg b/static/images/cards/candlestick-maker.jpg new file mode 100644 index 0000000..62ea982 --- /dev/null +++ b/static/images/cards/candlestick-maker.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e9355ca6dc70ad66223176dc948a0effb2d7d04b70fd4ea65ca23064e05e61f +size 156463 diff --git a/static/images/cards/capital.jpg b/static/images/cards/capital.jpg new file mode 100644 index 0000000..b65dd77 --- /dev/null +++ b/static/images/cards/capital.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e69e3f5df610ce1a513202f0aeb464c2e64d83892a7cc2a4cf109ad15e93ead0 +size 182894 diff --git a/static/images/cards/capitalism.jpg b/static/images/cards/capitalism.jpg new file mode 100644 index 0000000..305ae88 --- /dev/null +++ b/static/images/cards/capitalism.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abe445e7dad825a29215ef721375fcf225b5aba856af65d3ae6a36c6c80f9217 +size 219872 diff --git a/static/images/cards/captain.jpg b/static/images/cards/captain.jpg new file mode 100644 index 0000000..c176879 --- /dev/null +++ b/static/images/cards/captain.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8055b83a0de85af86a53004857a1919f0f25b8223ff8544aae1fee51e0facb28 +size 201186 diff --git a/static/images/cards/caravan-guard.jpg b/static/images/cards/caravan-guard.jpg new file mode 100644 index 0000000..eca1b92 --- /dev/null +++ b/static/images/cards/caravan-guard.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c187ddfed9274d0a4dda68f8bb9f557311e893400c701fc383beb78709f67a4 +size 213036 diff --git a/static/images/cards/caravan.jpg b/static/images/cards/caravan.jpg new file mode 100644 index 0000000..b7698de --- /dev/null +++ b/static/images/cards/caravan.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87b4e277a877106b0041151d465062f93255e69c7fc049033db41bf51ec3cba2 +size 169551 diff --git a/static/images/cards/cargo-ship.jpg b/static/images/cards/cargo-ship.jpg new file mode 100644 index 0000000..8450694 --- /dev/null +++ b/static/images/cards/cargo-ship.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:834b36963efcd94b074821fb829a5091ed9d8927e58ca72d1d51d07aff0be1a1 +size 181322 diff --git a/static/images/cards/cartographer.jpg b/static/images/cards/cartographer.jpg new file mode 100644 index 0000000..cbde561 --- /dev/null +++ b/static/images/cards/cartographer.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d811a7e8259fc8f48f01109ebed365c78e05fc716f89da56261efe86ea1612c +size 174909 diff --git a/static/images/cards/castles.jpg b/static/images/cards/castles.jpg new file mode 100644 index 0000000..f0f1bc5 --- /dev/null +++ b/static/images/cards/castles.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a623e13b1831d065fbfb4c456d21dd58bae65c7d668ae3fd503e0871ca96adf9 +size 199798 diff --git a/static/images/cards/catacombs.jpg b/static/images/cards/catacombs.jpg new file mode 100644 index 0000000..b26e615 --- /dev/null +++ b/static/images/cards/catacombs.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fee8a3a8df140f58abe431c83833c0f34a73a3c28eecb123d822fdf0c08ff5b +size 170615 diff --git a/static/images/cards/catapult.jpg b/static/images/cards/catapult.jpg new file mode 100644 index 0000000..430b042 --- /dev/null +++ b/static/images/cards/catapult.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5448e0738b86032b53b8cd4c7f871f175dec8ee7c28df320007744dce7d2f44 +size 193451 diff --git a/static/images/cards/cathedral.jpg b/static/images/cards/cathedral.jpg new file mode 100644 index 0000000..d105da8 --- /dev/null +++ b/static/images/cards/cathedral.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c632d0ecfb5776e9aaa223de604be0f245c8c73598de463f86dfb9989bdc3f1c +size 212353 diff --git a/static/images/cards/cellar.jpg b/static/images/cards/cellar.jpg new file mode 100644 index 0000000..2a1668b --- /dev/null +++ b/static/images/cards/cellar.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03282d5b1c79861b6dcf10aa7dee46280a74b54702358b5bc4c428bca7ac3680 +size 149956 diff --git a/static/images/cards/cemetery.jpg b/static/images/cards/cemetery.jpg new file mode 100644 index 0000000..1291f49 --- /dev/null +++ b/static/images/cards/cemetery.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f5566d4716e0c5f6b9327150cb0e29bab0e0ab081f026ab3d80415aee1831e9 +size 180462 diff --git a/static/images/cards/champion.jpg b/static/images/cards/champion.jpg new file mode 100644 index 0000000..3977600 --- /dev/null +++ b/static/images/cards/champion.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4449e9b599138001d12e412544831cc1b787a7f39d43be1c1fcd3c10ace78b4 +size 198176 diff --git a/static/images/cards/chancellor.jpg b/static/images/cards/chancellor.jpg new file mode 100644 index 0000000..0289feb --- /dev/null +++ b/static/images/cards/chancellor.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d48acb82c72a6d1bd67f300f0d27af3a5b9252253b0d8dfec46844b8a1aff778 +size 92152 diff --git a/static/images/cards/changeling.jpg b/static/images/cards/changeling.jpg new file mode 100644 index 0000000..98dc496 --- /dev/null +++ b/static/images/cards/changeling.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e9ba66e459bbdf108ce5057b9a72bfb1a135d3ac01c5b49977fc84540fa603f +size 168824 diff --git a/static/images/cards/chapel.jpg b/static/images/cards/chapel.jpg new file mode 100644 index 0000000..a7ac75c --- /dev/null +++ b/static/images/cards/chapel.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02e442f0fd3cf9dc1c57b7414fd8fe05b38980324a5b2905814ef3c9a6965106 +size 134419 diff --git a/static/images/cards/chariot-race.jpg b/static/images/cards/chariot-race.jpg new file mode 100644 index 0000000..a047533 --- /dev/null +++ b/static/images/cards/chariot-race.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ea175d224f0fd2884732e5c60baf2f954adc2dc586274dba633f7f281e8596d +size 197715 diff --git a/static/images/cards/charm.jpg b/static/images/cards/charm.jpg new file mode 100644 index 0000000..b0f8640 --- /dev/null +++ b/static/images/cards/charm.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d39f62b9e807b79c357e82899664163659d544d0bdd619fe3c866c36479b38d +size 196491 diff --git a/static/images/cards/church.jpg b/static/images/cards/church.jpg new file mode 100644 index 0000000..2079389 --- /dev/null +++ b/static/images/cards/church.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfda2a5b9569200ad7566afb84c88dc7c9b374ee348f670be7829a8db9b43a71 +size 193826 diff --git a/static/images/cards/citadel.jpg b/static/images/cards/citadel.jpg new file mode 100644 index 0000000..767e221 --- /dev/null +++ b/static/images/cards/citadel.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5785306fda81af431eea261bd4f9f798e6635064a36295d7bb5d82761952495f +size 246716 diff --git a/static/images/cards/city-gate.jpg b/static/images/cards/city-gate.jpg new file mode 100644 index 0000000..7107b9d --- /dev/null +++ b/static/images/cards/city-gate.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63046deb6bb61a80933bd782be1d8570caf201f773f16b2c08ca0f05c563a75c +size 257886 diff --git a/static/images/cards/city-quarter.jpg b/static/images/cards/city-quarter.jpg new file mode 100644 index 0000000..c320df0 --- /dev/null +++ b/static/images/cards/city-quarter.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc6950b38f46c46c05e3d8ac2635a0424317c4f48c28055c6887e0d5c51bd532 +size 178784 diff --git a/static/images/cards/city.jpg b/static/images/cards/city.jpg new file mode 100644 index 0000000..e377422 --- /dev/null +++ b/static/images/cards/city.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4e1cbb1d5209beae089f7d08f9515881a0acd58c7c7369a1930be12b1aeb813 +size 173560 diff --git a/static/images/cards/cobbler.jpg b/static/images/cards/cobbler.jpg new file mode 100644 index 0000000..df79c16 --- /dev/null +++ b/static/images/cards/cobbler.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:606ce4c6de74acb2c92544a27206d1119e74be951211ab5f4807102b75d427b6 +size 174340 diff --git a/static/images/cards/coin-of-the-realm.jpg b/static/images/cards/coin-of-the-realm.jpg new file mode 100644 index 0000000..450b28e --- /dev/null +++ b/static/images/cards/coin-of-the-realm.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de965af38817f8987e5821ae8997ffb1bdb01be2d5981a9c0641bb11fd58eb82 +size 212737 diff --git a/static/images/cards/colonnade.jpg b/static/images/cards/colonnade.jpg new file mode 100644 index 0000000..9736864 --- /dev/null +++ b/static/images/cards/colonnade.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16ab0ad36c429f127748c1b38a3603bfa0abb6249e73e490636225843400faf6 +size 268985 diff --git a/static/images/cards/colony.jpg b/static/images/cards/colony.jpg new file mode 100644 index 0000000..1379aed --- /dev/null +++ b/static/images/cards/colony.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49c83251fb7c8538c9f77dfee74890294210cc356785afd9e89130e1eb9d2486 +size 141551 diff --git a/static/images/cards/conclave.jpg b/static/images/cards/conclave.jpg new file mode 100644 index 0000000..386351a --- /dev/null +++ b/static/images/cards/conclave.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e16dc1daccb50638aa79aed81cf95feed99277047b2e31f2dd0c56d782d9aa61 +size 168019 diff --git a/static/images/cards/conquest.jpg b/static/images/cards/conquest.jpg new file mode 100644 index 0000000..4bb15c4 --- /dev/null +++ b/static/images/cards/conquest.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d133cf85b75df662c4b0886ae35d4d4f6e7af948ee14909db466dbba7e5596b +size 262368 diff --git a/static/images/cards/conspirator.jpg b/static/images/cards/conspirator.jpg new file mode 100644 index 0000000..f04046d --- /dev/null +++ b/static/images/cards/conspirator.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0b0cff6ce7bd66cf604148647522b59ad8dc93cf5117b70c8533dbfc0b88d1a +size 165742 diff --git a/static/images/cards/contraband.jpg b/static/images/cards/contraband.jpg new file mode 100644 index 0000000..41a9767 --- /dev/null +++ b/static/images/cards/contraband.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:592310bcf9d235304b5d0bc5463032377709625db9d81568f0091c51a38c9f40 +size 208506 diff --git a/static/images/cards/copper.jpg b/static/images/cards/copper.jpg new file mode 100644 index 0000000..33d7784 --- /dev/null +++ b/static/images/cards/copper.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49f8cbbba98738d20d6ed9e58cec12d4fc0d1f39692f6cc9e100cb4366c7e264 +size 233771 diff --git a/static/images/cards/coppersmith.jpg b/static/images/cards/coppersmith.jpg new file mode 100644 index 0000000..c64af6c --- /dev/null +++ b/static/images/cards/coppersmith.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1b0e125792a1762d1d325d32138676007383709666e5fb436179293067b12cb +size 122090 diff --git a/static/images/cards/council-room.jpg b/static/images/cards/council-room.jpg new file mode 100644 index 0000000..06c84af --- /dev/null +++ b/static/images/cards/council-room.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3819f52f9e890424da97a3456e126b6bf2803bb53c17169b70313e078904b003 +size 164277 diff --git a/static/images/cards/count.jpg b/static/images/cards/count.jpg new file mode 100644 index 0000000..cb4a7ea --- /dev/null +++ b/static/images/cards/count.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17753596d5edce7a47157b34d663fd41ed2146b73926874f4b23502777f4bb64 +size 177873 diff --git a/static/images/cards/counterfeit.jpg b/static/images/cards/counterfeit.jpg new file mode 100644 index 0000000..9f165ba --- /dev/null +++ b/static/images/cards/counterfeit.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5e32a36cc70f2eaac5aa52e7896e293028b28a8c8bf41ab075f62a171b4c244 +size 193446 diff --git a/static/images/cards/counting-house.jpg b/static/images/cards/counting-house.jpg new file mode 100644 index 0000000..9a933da --- /dev/null +++ b/static/images/cards/counting-house.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65e35302a3f697b0f32ee85062945e6a241c2e7a0ccbe005736c92ea8a365309 +size 161105 diff --git a/static/images/cards/courtier.jpg b/static/images/cards/courtier.jpg new file mode 100644 index 0000000..33970d4 --- /dev/null +++ b/static/images/cards/courtier.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50c46062b3860852a8393bb692e87eedbe5374f73651dd2b558668a028338ca6 +size 181553 diff --git a/static/images/cards/courtyard.jpg b/static/images/cards/courtyard.jpg new file mode 100644 index 0000000..d20d850 --- /dev/null +++ b/static/images/cards/courtyard.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e054699aa7361d7ca5f6627bc2f1df3f1cc041fe2d517850091a92267dfe8633 +size 196771 diff --git a/static/images/cards/crop-rotation.jpg b/static/images/cards/crop-rotation.jpg new file mode 100644 index 0000000..d71388f --- /dev/null +++ b/static/images/cards/crop-rotation.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6349e9ed6ea225541c26c7f5e0819ab1725c434090d91a3d43c7bf39171a22de +size 228048 diff --git a/static/images/cards/crossroads.jpg b/static/images/cards/crossroads.jpg new file mode 100644 index 0000000..a7a98d7 --- /dev/null +++ b/static/images/cards/crossroads.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:322f284eaf963221200bf2259bf2018186a244ddd46aed47bfb66cd296924e98 +size 171609 diff --git a/static/images/cards/crown.jpg b/static/images/cards/crown.jpg new file mode 100644 index 0000000..e0484a0 --- /dev/null +++ b/static/images/cards/crown.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c23d2d8eb435880bc0d0218052f650897a6dc3ea627e46a3669db54a62d020e +size 192423 diff --git a/static/images/cards/crumbling-castle.jpg b/static/images/cards/crumbling-castle.jpg new file mode 100644 index 0000000..4ed63c5 --- /dev/null +++ b/static/images/cards/crumbling-castle.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70e2434fbd705cda87c5771e2765eb535515a4838bfd2231ad9212b8909c8c14 +size 177320 diff --git a/static/images/cards/crypt.jpg b/static/images/cards/crypt.jpg new file mode 100644 index 0000000..6286a67 --- /dev/null +++ b/static/images/cards/crypt.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46c266b4d09a7edee1b50ed9121c846d70b3ac2d12c692db1f8799cafdff3446 +size 168498 diff --git a/static/images/cards/cultist.jpg b/static/images/cards/cultist.jpg new file mode 100644 index 0000000..f8f2a0c --- /dev/null +++ b/static/images/cards/cultist.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f299f8b45c4ddb163d9a7eaf88a9832f2d77314a1f61c43fff0a7ff204c7e509 +size 160569 diff --git a/static/images/cards/curse.jpg b/static/images/cards/curse.jpg new file mode 100644 index 0000000..4dbd2b0 --- /dev/null +++ b/static/images/cards/curse.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59369d534d558a078d6da5238305e493c8447d87246a8fcbd9742fa6d917f5be +size 156548 diff --git a/static/images/cards/cursed-gold.jpg b/static/images/cards/cursed-gold.jpg new file mode 100644 index 0000000..d874fdc --- /dev/null +++ b/static/images/cards/cursed-gold.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bc7e990a88d556214736b47dbd24a996d1e466c0d2355705855228cc8659de7 +size 192898 diff --git a/static/images/cards/cursed-village.jpg b/static/images/cards/cursed-village.jpg new file mode 100644 index 0000000..b26009b --- /dev/null +++ b/static/images/cards/cursed-village.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20c4f8bdfbebc0e60022b90cd523dcc4dd946ee70ac372159b3889f9475e46e8 +size 186537 diff --git a/static/images/cards/cutpurse.jpg b/static/images/cards/cutpurse.jpg new file mode 100644 index 0000000..fc8fc13 --- /dev/null +++ b/static/images/cards/cutpurse.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12ea1f83216f4185c62c83174eab98b7e8b59ee51e66d06e70c41e5141d16ce0 +size 156923 diff --git a/static/images/cards/dame-anna.jpg b/static/images/cards/dame-anna.jpg new file mode 100644 index 0000000..e4c243e --- /dev/null +++ b/static/images/cards/dame-anna.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ecd39f60da8762597ab982c5195722e0b6d506ba2921c5ab65d891067e37cefe +size 204764 diff --git a/static/images/cards/dame-josephine.jpg b/static/images/cards/dame-josephine.jpg new file mode 100644 index 0000000..cac415b --- /dev/null +++ b/static/images/cards/dame-josephine.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0016d653bea3173d24c841f6b817047414ef8d2703360ea5839a1d33b3ab995c +size 199006 diff --git a/static/images/cards/dame-molly.jpg b/static/images/cards/dame-molly.jpg new file mode 100644 index 0000000..b955324 --- /dev/null +++ b/static/images/cards/dame-molly.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df389dff6477ae8302e51adb58994c32559d3747c23ab3d400329431eb8be03a +size 191871 diff --git a/static/images/cards/dame-natalie.jpg b/static/images/cards/dame-natalie.jpg new file mode 100644 index 0000000..22c0f10 --- /dev/null +++ b/static/images/cards/dame-natalie.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da7b50af87c745c9d6fc2de874afbcacdd0fc7c488a3a2611cb22f26eb0eca0a +size 215165 diff --git a/static/images/cards/dame-sylvia.jpg b/static/images/cards/dame-sylvia.jpg new file mode 100644 index 0000000..d7075a4 --- /dev/null +++ b/static/images/cards/dame-sylvia.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13285e4609fefb00da86be8c8a3b75bb4402a112494eaaae476e926e7433d0ce +size 176153 diff --git a/static/images/cards/death-cart.jpg b/static/images/cards/death-cart.jpg new file mode 100644 index 0000000..43acce8 --- /dev/null +++ b/static/images/cards/death-cart.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c86d5f530329d81956379122cf45777a9b72c297772371927ef41de6b8b35f65 +size 189125 diff --git a/static/images/cards/defiled-shrine.jpg b/static/images/cards/defiled-shrine.jpg new file mode 100644 index 0000000..212e1dc --- /dev/null +++ b/static/images/cards/defiled-shrine.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebf066e88ccb0c9f17b9178d1a7cf5a0aca14f53437eacf501dca708dda5a030 +size 289201 diff --git a/static/images/cards/deluded.jpg b/static/images/cards/deluded.jpg new file mode 100644 index 0000000..110168d --- /dev/null +++ b/static/images/cards/deluded.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03ca94092a7cf7f8518e70dbe0c6ad2962112d03da15d93eaeea86c3c924e1e8 +size 253034 diff --git a/static/images/cards/delusion.jpg b/static/images/cards/delusion.jpg new file mode 100644 index 0000000..b363dba --- /dev/null +++ b/static/images/cards/delusion.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb23e3d889c91d6ad938659f91dd19089bd42903ff14661ad2291d9bb3b47e18 +size 229427 diff --git a/static/images/cards/delve.jpg b/static/images/cards/delve.jpg new file mode 100644 index 0000000..2586615 --- /dev/null +++ b/static/images/cards/delve.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d4a6177e703443a4820ae2a156f569ebf1826b09c009811efbf642fb6875526 +size 206896 diff --git a/static/images/cards/den-of-sin.jpg b/static/images/cards/den-of-sin.jpg new file mode 100644 index 0000000..fc050b9 --- /dev/null +++ b/static/images/cards/den-of-sin.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:492becc3d5119b45884593a5801a9749463193252ad3600244fc40fd7d415232 +size 166034 diff --git a/static/images/cards/develop.jpg b/static/images/cards/develop.jpg new file mode 100644 index 0000000..b71b736 --- /dev/null +++ b/static/images/cards/develop.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11de5710c07a6bf8cc69183099fd0c5c186aad02c977f223beabbe1d7f50ce08 +size 198663 diff --git a/static/images/cards/devils-workshop.jpg b/static/images/cards/devils-workshop.jpg new file mode 100644 index 0000000..430d321 --- /dev/null +++ b/static/images/cards/devils-workshop.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4220da74962d1d2162d926fd9769808ec193a55935b2351fe8adcb2695df8f13 +size 187336 diff --git a/static/images/cards/diadem.jpg b/static/images/cards/diadem.jpg new file mode 100644 index 0000000..4368ad3 --- /dev/null +++ b/static/images/cards/diadem.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b70988379d80d859393afa0e913e88366937ae2c55ee0b24377d566c289de59c +size 186889 diff --git a/static/images/cards/diplomat.jpg b/static/images/cards/diplomat.jpg new file mode 100644 index 0000000..7566fef --- /dev/null +++ b/static/images/cards/diplomat.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d499025facc6511c1c9e605921112eced317ff6dbf06247c7277a3dbde19224 +size 200517 diff --git a/static/images/cards/disciple.jpg b/static/images/cards/disciple.jpg new file mode 100644 index 0000000..fdf7960 --- /dev/null +++ b/static/images/cards/disciple.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00442b003340904a865486dac442733b311cc05fda5ce6c389c85c9a2ad297ec +size 203669 diff --git a/static/images/cards/dismantle.jpg b/static/images/cards/dismantle.jpg new file mode 100644 index 0000000..e61e7d1 --- /dev/null +++ b/static/images/cards/dismantle.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9842b20e88ca1703dbddd7952aeba1c8f3fa4311d3433804350fed92de4bf9f7 +size 156000 diff --git a/static/images/cards/distant-lands.jpg b/static/images/cards/distant-lands.jpg new file mode 100644 index 0000000..e4bdeaf --- /dev/null +++ b/static/images/cards/distant-lands.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2972bd0ee7ca655418d5a8d1a596283256ba57150d8b7b871ef7851147e28a90 +size 191458 diff --git a/static/images/cards/doctor.jpg b/static/images/cards/doctor.jpg new file mode 100644 index 0000000..b9f1489 --- /dev/null +++ b/static/images/cards/doctor.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:222841a7b4e1b61dc419232e94862981d90abb31528ef8032d3e22ace9483cab +size 192004 diff --git a/static/images/cards/dominate.jpg b/static/images/cards/dominate.jpg new file mode 100644 index 0000000..b09653f --- /dev/null +++ b/static/images/cards/dominate.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3dd6c8d585485c07e20a0acfe9ddcc2c7b3fe3d6ddffaf7b4984bf8ed3f3c333 +size 238802 diff --git a/static/images/cards/donate.jpg b/static/images/cards/donate.jpg new file mode 100644 index 0000000..fb6df6b --- /dev/null +++ b/static/images/cards/donate.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0752836d1c8645797a5f260127c25e58fcdc698a7c98024f5c71628655e98d28 +size 267376 diff --git a/static/images/cards/druid.jpg b/static/images/cards/druid.jpg new file mode 100644 index 0000000..7e03513 --- /dev/null +++ b/static/images/cards/druid.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:055eca2956d27ba464b667ea018e669da9ad4cc0db75f657730291c02988fecc +size 178761 diff --git a/static/images/cards/ducat.jpg b/static/images/cards/ducat.jpg new file mode 100644 index 0000000..5f57fe2 --- /dev/null +++ b/static/images/cards/ducat.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5543652a67571ac1ccea019f09143a571df1ce6adc2e1d8ceb2c07506533c7bf +size 177072 diff --git a/static/images/cards/duchery.jpg b/static/images/cards/duchery.jpg new file mode 100644 index 0000000..7bd64f3 --- /dev/null +++ b/static/images/cards/duchery.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffad0228064cce44a159cf0dea7c0affca157d0ec9fc3d2216ace2c72328205c +size 155282 diff --git a/static/images/cards/duchess.jpg b/static/images/cards/duchess.jpg new file mode 100644 index 0000000..23d96e7 --- /dev/null +++ b/static/images/cards/duchess.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49763633b5eaebb117b2a9dc01b5b2bf580f5b5c490741ab133a67fd720df56a +size 184192 diff --git a/static/images/cards/duke.jpg b/static/images/cards/duke.jpg new file mode 100644 index 0000000..0cdd3fc --- /dev/null +++ b/static/images/cards/duke.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e662ad9dd46cbf906ccb63360e7957bcbfdf6437b3a86142549477cefe67f2ad +size 177645 diff --git a/static/images/cards/dungeon.jpg b/static/images/cards/dungeon.jpg new file mode 100644 index 0000000..c62220a --- /dev/null +++ b/static/images/cards/dungeon.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a415d025cb3c8a4e3c2e0e74b8712666be5618549e9d40a77c93cc0a31c4dbb0 +size 171298 diff --git a/static/images/cards/duplicate.jpg b/static/images/cards/duplicate.jpg new file mode 100644 index 0000000..24f26f3 --- /dev/null +++ b/static/images/cards/duplicate.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3da6c07d0341bbe652e56d82cbf9f8dedcf224099e7f6e8beaf780e33160439d +size 180362 diff --git a/static/images/cards/embargo.jpg b/static/images/cards/embargo.jpg new file mode 100644 index 0000000..af0e253 --- /dev/null +++ b/static/images/cards/embargo.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:207cb34309e0ee75a2c84c34e9ec9e837023df412b3b08ef8eb9b175cdd0e4ca +size 180600 diff --git a/static/images/cards/embassy.jpg b/static/images/cards/embassy.jpg new file mode 100644 index 0000000..5f0ac72 --- /dev/null +++ b/static/images/cards/embassy.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1314755325363969978c4f822cb083bd1f797c4e8ebabeef1a5cbd0408d3f773 +size 186477 diff --git a/static/images/cards/emporium.jpg b/static/images/cards/emporium.jpg new file mode 100644 index 0000000..06f8e54 --- /dev/null +++ b/static/images/cards/emporium.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:054544ccb04788034677fd910a394a48fdd9f082a5b0fc860d826a37e67c5503 +size 172780 diff --git a/static/images/cards/encampment.jpg b/static/images/cards/encampment.jpg new file mode 100644 index 0000000..cde6a4f --- /dev/null +++ b/static/images/cards/encampment.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79fef2f2986b09c2b063afe0f4881990465c768b325a4fb08fc1bc54314e7d8e +size 160009 diff --git a/static/images/cards/enchantress.jpg b/static/images/cards/enchantress.jpg new file mode 100644 index 0000000..b35644c --- /dev/null +++ b/static/images/cards/enchantress.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:663a3ab2c1b1ea7b5c2f4bb07542c88b6a9b9cae4cb0fdb1afbcad779d8769a6 +size 199382 diff --git a/static/images/cards/engineer.jpg b/static/images/cards/engineer.jpg new file mode 100644 index 0000000..c5fbeef --- /dev/null +++ b/static/images/cards/engineer.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16c5ff3aea804b0630d05b825292299de3d269aefb28718ea6f9bb480aae7c0e +size 166273 diff --git a/static/images/cards/envious.jpg b/static/images/cards/envious.jpg new file mode 100644 index 0000000..c71507f --- /dev/null +++ b/static/images/cards/envious.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f793f4148bc52ef0e9a5efa13beee5414e53b53644df0672af161d0c4a92077 +size 240220 diff --git a/static/images/cards/envoy.jpg b/static/images/cards/envoy.jpg new file mode 100644 index 0000000..fc30136 --- /dev/null +++ b/static/images/cards/envoy.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdec2cb9facf7ecaaa4a7435cb14b675f4ef182e85c84168e68134d9c3dc01f5 +size 169110 diff --git a/static/images/cards/envy.jpg b/static/images/cards/envy.jpg new file mode 100644 index 0000000..0c537dc --- /dev/null +++ b/static/images/cards/envy.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d2676f31bab4202156e1dee238b8156ccd76cb1947c4a9b18c866409198cfc9 +size 213302 diff --git a/static/images/cards/estate.jpg b/static/images/cards/estate.jpg new file mode 100644 index 0000000..9b0b3c3 --- /dev/null +++ b/static/images/cards/estate.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86cdbeb2d3e9302d442bfa7dc9be14c9eeb047452366d3b8f326914266117165 +size 146339 diff --git a/static/images/cards/exorcist.jpg b/static/images/cards/exorcist.jpg new file mode 100644 index 0000000..a25e5f3 --- /dev/null +++ b/static/images/cards/exorcist.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c43641d482a2afa6996fa0da01539e4defd3e6d4963adcc35f6c6f3a04b78908 +size 170621 diff --git a/static/images/cards/expand.jpg b/static/images/cards/expand.jpg new file mode 100644 index 0000000..b96ffab --- /dev/null +++ b/static/images/cards/expand.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31c86b79d7313b5d0e96a4922a4f7148c451c87d2fcd91c4c11f767085c45944 +size 166756 diff --git a/static/images/cards/expedition.jpg b/static/images/cards/expedition.jpg new file mode 100644 index 0000000..9053cec --- /dev/null +++ b/static/images/cards/expedition.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20c1db3f88adadc0f8b675ddc2be1768a2b9f03c2271ea761eb7cb0c000503a4 +size 252103 diff --git a/static/images/cards/experiment.jpg b/static/images/cards/experiment.jpg new file mode 100644 index 0000000..957f0e6 --- /dev/null +++ b/static/images/cards/experiment.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae08027c5df706cda2ba747ec2af604afb8deb728fb7c5b4cd4f9e8f02824256 +size 168028 diff --git a/static/images/cards/exploration.jpg b/static/images/cards/exploration.jpg new file mode 100644 index 0000000..61a1925 --- /dev/null +++ b/static/images/cards/exploration.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50dad3782a88bb335613177145c9ef3b22572a71e95bab15b1a3da38786aa564 +size 222364 diff --git a/static/images/cards/explorer.jpg b/static/images/cards/explorer.jpg new file mode 100644 index 0000000..05bf37e --- /dev/null +++ b/static/images/cards/explorer.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d36a7a168fe8c004e8e8e3edf40c4bef9a4c65de2ad26c6b5a7b404b9c50a34 +size 191075 diff --git a/static/images/cards/fair.jpg b/static/images/cards/fair.jpg new file mode 100644 index 0000000..fd1651c --- /dev/null +++ b/static/images/cards/fair.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7599677b6a89282d76a40de527241cc3818ba91aaec9d4f4c266b40fe55d25d +size 221873 diff --git a/static/images/cards/fairgrounds.jpg b/static/images/cards/fairgrounds.jpg new file mode 100644 index 0000000..42a1122 --- /dev/null +++ b/static/images/cards/fairgrounds.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:add9338d229a931b609a3a4857c1c112c63651e0b73c935e240cd5592e9f45f8 +size 150896 diff --git a/static/images/cards/faithful-hound.jpg b/static/images/cards/faithful-hound.jpg new file mode 100644 index 0000000..e24f253 --- /dev/null +++ b/static/images/cards/faithful-hound.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae723cd3d1b39473b325b186fc2651f44a414554891019d56946afb687e4c521 +size 190497 diff --git a/static/images/cards/familiar.jpg b/static/images/cards/familiar.jpg new file mode 100644 index 0000000..a49c13d --- /dev/null +++ b/static/images/cards/familiar.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20c6254036afc4907396c06662061fd91185938e70b82711c230273d8c6cd128 +size 160921 diff --git a/static/images/cards/famine.jpg b/static/images/cards/famine.jpg new file mode 100644 index 0000000..76c6fb6 --- /dev/null +++ b/static/images/cards/famine.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bafe58619f47c5723ce1e99c00c2aeaf09ead66644c731d22e1c27d9af84933 +size 222214 diff --git a/static/images/cards/farmers-market.jpg b/static/images/cards/farmers-market.jpg new file mode 100644 index 0000000..f7e5104 --- /dev/null +++ b/static/images/cards/farmers-market.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffc8565e982b682c60b00684441257e8bc73ab347794f6047756c39d9a65710c +size 176018 diff --git a/static/images/cards/farming-village.jpg b/static/images/cards/farming-village.jpg new file mode 100644 index 0000000..fafe4c3 --- /dev/null +++ b/static/images/cards/farming-village.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3ee327e7c468313b8dcfc68f2bcb37f770412fa8a3ed0f60cb1f5db68cecbf0 +size 202491 diff --git a/static/images/cards/farmland.jpg b/static/images/cards/farmland.jpg new file mode 100644 index 0000000..02147d2 --- /dev/null +++ b/static/images/cards/farmland.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2b8267fa8e3b84f2f94d30f2712a3170badc599b8e114cb609ebcf6092723f9 +size 196423 diff --git a/static/images/cards/fear.jpg b/static/images/cards/fear.jpg new file mode 100644 index 0000000..315bc47 --- /dev/null +++ b/static/images/cards/fear.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:267fe8f10262cc09b64f51a0d29d10fa2a86af942f7526922c6c47d9929f6096 +size 213316 diff --git a/static/images/cards/feast.jpg b/static/images/cards/feast.jpg new file mode 100644 index 0000000..185655f --- /dev/null +++ b/static/images/cards/feast.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5deaed990601fd9911d8337492448b9b62eb29e720ac37209b7b86f48ac82e3f +size 117086 diff --git a/static/images/cards/feodum.jpg b/static/images/cards/feodum.jpg new file mode 100644 index 0000000..ed3b368 --- /dev/null +++ b/static/images/cards/feodum.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ffa6fedb094ed5c89abb86974e7102c125634b995e94ca5818c25821e899c18 +size 154156 diff --git a/static/images/cards/ferry.jpg b/static/images/cards/ferry.jpg new file mode 100644 index 0000000..eb04ee2 --- /dev/null +++ b/static/images/cards/ferry.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2988ff72d81e873f6c77a8ab22d940efc9c3f6c2b26202dab869793b9637aad1 +size 228198 diff --git a/static/images/cards/festival.jpg b/static/images/cards/festival.jpg new file mode 100644 index 0000000..be5702c --- /dev/null +++ b/static/images/cards/festival.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5b89f54eb3357c132dadfb562830b6b4d36a25f77581a27570c721fd6a0c4d6 +size 146433 diff --git a/static/images/cards/fishing-village.jpg b/static/images/cards/fishing-village.jpg new file mode 100644 index 0000000..b10d515 --- /dev/null +++ b/static/images/cards/fishing-village.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:954a7a613229ba45b506c5b34f24926dab52b151be2c0ff25b1a91d97aac7488 +size 192854 diff --git a/static/images/cards/flag-bearer.jpg b/static/images/cards/flag-bearer.jpg new file mode 100644 index 0000000..c9abcbe --- /dev/null +++ b/static/images/cards/flag-bearer.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d14fa08cc609ad2c2472504562bf3ef316097ca249b6594a5bfb8e2d8dad682 +size 142632 diff --git a/static/images/cards/flag.jpg b/static/images/cards/flag.jpg new file mode 100644 index 0000000..e096961 --- /dev/null +++ b/static/images/cards/flag.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:910a0418ae507b4e32a8467badcc45416da1e97c7ca8f48462d5ff83506eba51 +size 156602 diff --git a/static/images/cards/fleet.jpg b/static/images/cards/fleet.jpg new file mode 100644 index 0000000..8ff3ac0 --- /dev/null +++ b/static/images/cards/fleet.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:206bbf9e5485887f6b57a5bd98e6e44f80f7f17a5338e2585476eda72655d808 +size 218519 diff --git a/static/images/cards/followers.jpg b/static/images/cards/followers.jpg new file mode 100644 index 0000000..defeaf7 --- /dev/null +++ b/static/images/cards/followers.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a841d32539149e295e1c484e51740c4030f6bce68bcafd60a624a3a7240565d +size 203041 diff --git a/static/images/cards/fool.jpg b/static/images/cards/fool.jpg new file mode 100644 index 0000000..43cf92a --- /dev/null +++ b/static/images/cards/fool.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1225b9b049bcd55da1af1fb5415b08a7101297cd14dc217600bb8c6c95197322 +size 200887 diff --git a/static/images/cards/fools-gold.jpg b/static/images/cards/fools-gold.jpg new file mode 100644 index 0000000..46524fe --- /dev/null +++ b/static/images/cards/fools-gold.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1426dac7d60b2af1bfaf708608abf18c5239171ac6e9df55ab41c25c2b543e6c +size 205547 diff --git a/static/images/cards/forager.jpg b/static/images/cards/forager.jpg new file mode 100644 index 0000000..1d350f1 --- /dev/null +++ b/static/images/cards/forager.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:087324c64ec4f0e1cfb9f533899751b314f8b32c1f33e61babd447a4c8cc2e1f +size 204814 diff --git a/static/images/cards/forge.jpg b/static/images/cards/forge.jpg new file mode 100644 index 0000000..846e3a5 --- /dev/null +++ b/static/images/cards/forge.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3f7109ca2101a5b24caf0ffbbb7967d80e186244f5d0655d958ecaf1a0f10ca +size 161308 diff --git a/static/images/cards/fortress.jpg b/static/images/cards/fortress.jpg new file mode 100644 index 0000000..f79f6e4 --- /dev/null +++ b/static/images/cards/fortress.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28a187e17711b6e7fed9500ffb483d1bc88262ca1f125b994e50804519a13bf4 +size 157479 diff --git a/static/images/cards/fortune-teller.jpg b/static/images/cards/fortune-teller.jpg new file mode 100644 index 0000000..04fc157 --- /dev/null +++ b/static/images/cards/fortune-teller.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4eb100a3d930a7811fd0093f970c8aa6d471869599acfb0ff7df42c883e593ac +size 173016 diff --git a/static/images/cards/fortune.jpg b/static/images/cards/fortune.jpg new file mode 100644 index 0000000..1c30c1a --- /dev/null +++ b/static/images/cards/fortune.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1aa76601cbfcd9444eb4156c4f6b41c6e83714495ed8555e10f8ebc51a5f3ad +size 206214 diff --git a/static/images/cards/forum.jpg b/static/images/cards/forum.jpg new file mode 100644 index 0000000..7392d77 --- /dev/null +++ b/static/images/cards/forum.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:646243ac1cc99879495b08f35793a5810c142364c5f55df1ecb557a0fa7db867 +size 144501 diff --git a/static/images/cards/fountain.jpg b/static/images/cards/fountain.jpg new file mode 100644 index 0000000..893c701 --- /dev/null +++ b/static/images/cards/fountain.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5481fb577b3869fbfab1f04e466a1a96387aa200bd5edaaaa6a4617022f574e3 +size 192656 diff --git a/static/images/cards/fugitive.jpg b/static/images/cards/fugitive.jpg new file mode 100644 index 0000000..908ddae --- /dev/null +++ b/static/images/cards/fugitive.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a372d39e7e5a571404ad18e6f925c557e3050de73abc8f75a720ac4ab69e0122 +size 197263 diff --git a/static/images/cards/gardens.jpg b/static/images/cards/gardens.jpg new file mode 100644 index 0000000..9db51b0 --- /dev/null +++ b/static/images/cards/gardens.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76b02009c0d5fbc420b4a59cb95feb4a6d7511681a8ceef2b8be141be34aa49a +size 186575 diff --git a/static/images/cards/gear.jpg b/static/images/cards/gear.jpg new file mode 100644 index 0000000..2b84495 --- /dev/null +++ b/static/images/cards/gear.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f49b01184ee8aa173b33ee582b9fd196b670ba85be4f5095c1c6c86f2c692f7b +size 184188 diff --git a/static/images/cards/ghost-ship.jpg b/static/images/cards/ghost-ship.jpg new file mode 100644 index 0000000..514faff --- /dev/null +++ b/static/images/cards/ghost-ship.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:642687f708dd138b972616ba113295d111b96d2d4e812c5ab8321b3db70ace52 +size 180232 diff --git a/static/images/cards/ghost-town.jpg b/static/images/cards/ghost-town.jpg new file mode 100644 index 0000000..0f60444 --- /dev/null +++ b/static/images/cards/ghost-town.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d10bd1ade382a0c50abdd785fa92b199be819f116e5ad41a8a09e4920ec6e1cd +size 176212 diff --git a/static/images/cards/ghost.jpg b/static/images/cards/ghost.jpg new file mode 100644 index 0000000..06f9303 --- /dev/null +++ b/static/images/cards/ghost.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9976be129b62a2394216d1426b9802b7b66b8f19f27266c5c9acab615d5130dd +size 175985 diff --git a/static/images/cards/giant.jpg b/static/images/cards/giant.jpg new file mode 100644 index 0000000..036e763 --- /dev/null +++ b/static/images/cards/giant.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5c7230f72cc39ea2c796ff78aee9ae2d221308b873feb33d9a4b6f93ee3890f +size 196525 diff --git a/static/images/cards/gladiator.jpg b/static/images/cards/gladiator.jpg new file mode 100644 index 0000000..37f507f --- /dev/null +++ b/static/images/cards/gladiator.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0195f877ec10ed5cd051283e0f7682f91f9b5420f393116e87b166b6aaec016f +size 183118 diff --git a/static/images/cards/goat.jpg b/static/images/cards/goat.jpg new file mode 100644 index 0000000..03a5ef5 --- /dev/null +++ b/static/images/cards/goat.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd7502063279d8670d1a738f4d7084450c7978cad7684ff8dc6a8ea1b791e637 +size 192605 diff --git a/static/images/cards/gold.jpg b/static/images/cards/gold.jpg new file mode 100644 index 0000000..38d8c8e --- /dev/null +++ b/static/images/cards/gold.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a484143b84e82cb3a8af3caeb1b86e1e7ea19d7ded0a9e77c95684a85998673 +size 172512 diff --git a/static/images/cards/golem.jpg b/static/images/cards/golem.jpg new file mode 100644 index 0000000..91f2a7c --- /dev/null +++ b/static/images/cards/golem.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:491c1c46d7fedd12528a8e06ad08fafc800a9034d44f33efe3054d0c11e9ca83 +size 182682 diff --git a/static/images/cards/goons.jpg b/static/images/cards/goons.jpg new file mode 100644 index 0000000..bc5761b --- /dev/null +++ b/static/images/cards/goons.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62af741726d9f20587dfc0106cdfaa3050eaa51b1043849479aa1b8670573c04 +size 191174 diff --git a/static/images/cards/governor.jpg b/static/images/cards/governor.jpg new file mode 100644 index 0000000..5bc935f --- /dev/null +++ b/static/images/cards/governor.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:092c9f5527d558387276645c000f831d20ead7cee5d9b474d6ce3e0559874cdf +size 197808 diff --git a/static/images/cards/grand-castle.jpg b/static/images/cards/grand-castle.jpg new file mode 100644 index 0000000..3bbad4b --- /dev/null +++ b/static/images/cards/grand-castle.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ec093e44e6a1fbf3800a2f98b38bb01dc73e7dba43ffae21d9736138c0d0a96 +size 187402 diff --git a/static/images/cards/grand-market.jpg b/static/images/cards/grand-market.jpg new file mode 100644 index 0000000..da3fb08 --- /dev/null +++ b/static/images/cards/grand-market.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac8a60ab35c773a83c90d9370ea1e434d877501ec3c75f0832d7ba38cc442fb0 +size 195196 diff --git a/static/images/cards/graverobber.jpg b/static/images/cards/graverobber.jpg new file mode 100644 index 0000000..7491340 --- /dev/null +++ b/static/images/cards/graverobber.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd4b54d49cd35c5ff2876efd84f9fc6bbda2092f2b6f013f343943519340ce95 +size 197898 diff --git a/static/images/cards/great-hall.jpg b/static/images/cards/great-hall.jpg new file mode 100644 index 0000000..ee00250 --- /dev/null +++ b/static/images/cards/great-hall.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f38b86a164c57a333de2b7b5f7e700d087d13fac48936114ecbdc7112027739 +size 114704 diff --git a/static/images/cards/greed.jpg b/static/images/cards/greed.jpg new file mode 100644 index 0000000..f1b001f --- /dev/null +++ b/static/images/cards/greed.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e86cb4ec024c4e33c08fd222d78bbf98ee5d7c3019a5443b13e9bc0c3ef34f3 +size 242310 diff --git a/static/images/cards/groundskeeper.jpg b/static/images/cards/groundskeeper.jpg new file mode 100644 index 0000000..8fdcb75 --- /dev/null +++ b/static/images/cards/groundskeeper.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:973363fadbedaef2f68bd4650a1f96f4d41e558725eeed72a0b14874f1a6b9d1 +size 172948 diff --git a/static/images/cards/guardian.jpg b/static/images/cards/guardian.jpg new file mode 100644 index 0000000..97811e1 --- /dev/null +++ b/static/images/cards/guardian.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2994389f12eedd29145166884b8b0e1bd6e6187ad574ad6253a63f342f3e1a04 +size 192350 diff --git a/static/images/cards/guide.jpg b/static/images/cards/guide.jpg new file mode 100644 index 0000000..2e1e9c5 --- /dev/null +++ b/static/images/cards/guide.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af5d675fceccdadcc12eccad0ec5ef5ac6aef4706f65c294a563eb4932718ea7 +size 198666 diff --git a/static/images/cards/guildhall.jpg b/static/images/cards/guildhall.jpg new file mode 100644 index 0000000..fc36ed5 --- /dev/null +++ b/static/images/cards/guildhall.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a53085dbf37fd9263b06e96f5b52c70b3de23ab28b1294c8c347e38e3edf481 +size 190883 diff --git a/static/images/cards/haggler.jpg b/static/images/cards/haggler.jpg new file mode 100644 index 0000000..5ad7252 --- /dev/null +++ b/static/images/cards/haggler.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aecbcbf31b851b23808f989d67344d30405e7cff343dd182906478fb66eeca64 +size 183842 diff --git a/static/images/cards/hamlet.jpg b/static/images/cards/hamlet.jpg new file mode 100644 index 0000000..fe3abec --- /dev/null +++ b/static/images/cards/hamlet.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f0aedb150889583125893fcdf426ead9914555a4435d17854bd2096c105a6d6 +size 172818 diff --git a/static/images/cards/harbinger.jpg b/static/images/cards/harbinger.jpg new file mode 100644 index 0000000..eb50019 --- /dev/null +++ b/static/images/cards/harbinger.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6ecbee5c186897db807ff4c253f5edaf307e11af90bb4aa196e7e2f6380f0b0 +size 178965 diff --git a/static/images/cards/harem.jpg b/static/images/cards/harem.jpg new file mode 100644 index 0000000..93d6eed --- /dev/null +++ b/static/images/cards/harem.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1eed5217c74295cd5059295f886d4c9806922c6fb1d9ae6c8dadc98c03a74296 +size 204561 diff --git a/static/images/cards/harvest.jpg b/static/images/cards/harvest.jpg new file mode 100644 index 0000000..08d9354 --- /dev/null +++ b/static/images/cards/harvest.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b974a6f3d3a7ffef1891ad8a2f598859c568840acea3db2bce169a55ed7711d1 +size 187616 diff --git a/static/images/cards/haunted-castle.jpg b/static/images/cards/haunted-castle.jpg new file mode 100644 index 0000000..593cb0f --- /dev/null +++ b/static/images/cards/haunted-castle.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b167dcc6624a7bfb7d64e461cbcec2f1352a8bc78a8c5be5c68a6bf7d334dfda +size 201935 diff --git a/static/images/cards/haunted-mirror.jpg b/static/images/cards/haunted-mirror.jpg new file mode 100644 index 0000000..dfcc1f5 --- /dev/null +++ b/static/images/cards/haunted-mirror.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bcbf1a20de7ee58dcbcf518be5b9957458c8f4c6df7eceb2b4eaf3e39145cb8 +size 178632 diff --git a/static/images/cards/haunted-woods.jpg b/static/images/cards/haunted-woods.jpg new file mode 100644 index 0000000..15057cf --- /dev/null +++ b/static/images/cards/haunted-woods.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5b9f495973304126bb685542aa25cedea9662b6aba184dff4e96bc0bcd906a1 +size 213091 diff --git a/static/images/cards/haunting.jpg b/static/images/cards/haunting.jpg new file mode 100644 index 0000000..ce6d9b2 --- /dev/null +++ b/static/images/cards/haunting.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d8628bc159884a9c0a8021a016126e7a16891fbf5773b8d87ebd9a069512b24 +size 186630 diff --git a/static/images/cards/haven.jpg b/static/images/cards/haven.jpg new file mode 100644 index 0000000..49e5bcc --- /dev/null +++ b/static/images/cards/haven.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3759317fe6bdd9b8ba5af616fb8dc2a68a89ebfbb4f5a557b85a6dadb57f8a6 +size 205823 diff --git a/static/images/cards/herald.jpg b/static/images/cards/herald.jpg new file mode 100644 index 0000000..61d4e82 --- /dev/null +++ b/static/images/cards/herald.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10d7bab53425e004eea76256905069a19791be1dc792b99d099facfa60790e9d +size 175979 diff --git a/static/images/cards/herbalist.jpg b/static/images/cards/herbalist.jpg new file mode 100644 index 0000000..b6c28fc --- /dev/null +++ b/static/images/cards/herbalist.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:100363fbd7121103cdc5837fcc374ab49d8289a5460944f0eb09d0bd312e0d2f +size 203090 diff --git a/static/images/cards/hermit.jpg b/static/images/cards/hermit.jpg new file mode 100644 index 0000000..f1916fe --- /dev/null +++ b/static/images/cards/hermit.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd6a03c6decd8f9a72b8247ce78771d6c89c1fe7ad9f27e087b6ce6d811c0206 +size 204911 diff --git a/static/images/cards/hero.jpg b/static/images/cards/hero.jpg new file mode 100644 index 0000000..5ee45ab --- /dev/null +++ b/static/images/cards/hero.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2a5b4b4142665bfbb8bdef38eee3b5ba506f2c97e70f78e0785ee9314b91f2a +size 176628 diff --git a/static/images/cards/hideout.jpg b/static/images/cards/hideout.jpg new file mode 100644 index 0000000..a5b6e06 --- /dev/null +++ b/static/images/cards/hideout.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:271a41ecb9348934bba9a52fb6f2148035e4d4ea36c5d00a3af5a49e5c45bc5c +size 163891 diff --git a/static/images/cards/highway.jpg b/static/images/cards/highway.jpg new file mode 100644 index 0000000..3161898 --- /dev/null +++ b/static/images/cards/highway.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:acd0397a6831f348a7f838be8a6d7462f03be3c7fab64245630b14a7ae99afdf +size 164857 diff --git a/static/images/cards/hireling.jpg b/static/images/cards/hireling.jpg new file mode 100644 index 0000000..0ac5950 --- /dev/null +++ b/static/images/cards/hireling.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eddda0f0974e8245310a045f583a4f4eeaa4ef2bc73fa61de180044e9b7a05c0 +size 180294 diff --git a/static/images/cards/hoard.jpg b/static/images/cards/hoard.jpg new file mode 100644 index 0000000..cb0a072 --- /dev/null +++ b/static/images/cards/hoard.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc2bf36146515e3ac9866752c2618b070e658e09b2a8e2813411ebfe2d121046 +size 188948 diff --git a/static/images/cards/horn-of-plenty.jpg b/static/images/cards/horn-of-plenty.jpg new file mode 100644 index 0000000..175d202 --- /dev/null +++ b/static/images/cards/horn-of-plenty.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d59722b9c3518cbb5eb4b11911eb8d292bee3c456a2d13efd15bd89f47ab12a +size 203303 diff --git a/static/images/cards/horn.jpg b/static/images/cards/horn.jpg new file mode 100644 index 0000000..e3d13ca --- /dev/null +++ b/static/images/cards/horn.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7654638e606d2862ba7c52477c68a40825db00d06a325d06f8d918adaa763420 +size 218023 diff --git a/static/images/cards/horse-traders.jpg b/static/images/cards/horse-traders.jpg new file mode 100644 index 0000000..9c3ab79 --- /dev/null +++ b/static/images/cards/horse-traders.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0180b89b48866187350b7689317d9a80ce910b4d709a68e612878327652b9027 +size 178872 diff --git a/static/images/cards/hovel.jpg b/static/images/cards/hovel.jpg new file mode 100644 index 0000000..1201766 --- /dev/null +++ b/static/images/cards/hovel.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8cfea481394c2ec81e6ca5b7bf43b4d9a596a1933fcce2b13099d51831c79dec +size 190127 diff --git a/static/images/cards/humble-castle.jpg b/static/images/cards/humble-castle.jpg new file mode 100644 index 0000000..f026046 --- /dev/null +++ b/static/images/cards/humble-castle.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a73d14bf9f3b26e714da4d6671a238d135fd0173e126ab6f579b9359afe9e19 +size 172912 diff --git a/static/images/cards/hunting-grounds.jpg b/static/images/cards/hunting-grounds.jpg new file mode 100644 index 0000000..e42c7a5 --- /dev/null +++ b/static/images/cards/hunting-grounds.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e3a31ad1d3d94389c0cf4a9a377752a154aa027521acae9dc33e38de871a5d0 +size 175401 diff --git a/static/images/cards/hunting-party.jpg b/static/images/cards/hunting-party.jpg new file mode 100644 index 0000000..f5a648e --- /dev/null +++ b/static/images/cards/hunting-party.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2be7efdbe307446e659899e714426a75807e5a425b2dbb4b6bedb16f3c0f1cc7 +size 200341 diff --git a/static/images/cards/idol.jpg b/static/images/cards/idol.jpg new file mode 100644 index 0000000..c5c6583 --- /dev/null +++ b/static/images/cards/idol.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08aae1db3d45758b548208e72b46aefa247b119aaebed3648cf551a3bfa42606 +size 191929 diff --git a/static/images/cards/ill-gotten-gains.jpg b/static/images/cards/ill-gotten-gains.jpg new file mode 100644 index 0000000..2fd3aa6 --- /dev/null +++ b/static/images/cards/ill-gotten-gains.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f75f7dc0b0dd03a6af3e19c5b6b8b54daed059b68334187dc58bb5014f1e6b55 +size 173074 diff --git a/static/images/cards/imp.jpg b/static/images/cards/imp.jpg new file mode 100644 index 0000000..48e70da --- /dev/null +++ b/static/images/cards/imp.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20e1aa9d1d96e4464b046173555dbdec7c16c34e7fb2501f82d9d8dbfe359466 +size 184229 diff --git a/static/images/cards/improve.jpg b/static/images/cards/improve.jpg new file mode 100644 index 0000000..e46771a --- /dev/null +++ b/static/images/cards/improve.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:547f03196e68677051bcb4e743518e15f82cf5df88de6e4e5c259e17165c0df2 +size 174139 diff --git a/static/images/cards/inheritance.jpg b/static/images/cards/inheritance.jpg new file mode 100644 index 0000000..81eaa61 --- /dev/null +++ b/static/images/cards/inheritance.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fb671ae1f4133d5dac94c00c4509517d4421dde2ade3930b6fd5201e7db0ff9 +size 227335 diff --git a/static/images/cards/inn.jpg b/static/images/cards/inn.jpg new file mode 100644 index 0000000..0c1244c --- /dev/null +++ b/static/images/cards/inn.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50f4b62abb9f8a57dfdc56f4257cb2e8b1c38ef5ec647ce231d6e3605056d2f1 +size 181505 diff --git a/static/images/cards/innovation.jpg b/static/images/cards/innovation.jpg new file mode 100644 index 0000000..150abfa --- /dev/null +++ b/static/images/cards/innovation.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94cc8e97ab85ab661b7c297ba59c2b9bcf1cf88172dc4205ac7631d073caee8c +size 229165 diff --git a/static/images/cards/inventor.jpg b/static/images/cards/inventor.jpg new file mode 100644 index 0000000..277401d --- /dev/null +++ b/static/images/cards/inventor.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b8c1f4e0886c1d2ad01142e706e9dae9b78adb2291e9ca524712527215536b9 +size 179230 diff --git a/static/images/cards/ironmonger.jpg b/static/images/cards/ironmonger.jpg new file mode 100644 index 0000000..c0e50c4 --- /dev/null +++ b/static/images/cards/ironmonger.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:469f7a9c93dfa67ac754766a00f6deafa4c4abcaddc7fc89453695d9ca046658 +size 186720 diff --git a/static/images/cards/ironworks.jpg b/static/images/cards/ironworks.jpg new file mode 100644 index 0000000..e9fff67 --- /dev/null +++ b/static/images/cards/ironworks.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7eb29cb56a2545cfda9b75117856cabd6a256826ea44338af1732a94fca48947 +size 169774 diff --git a/static/images/cards/island.jpg b/static/images/cards/island.jpg new file mode 100644 index 0000000..8a2e328 --- /dev/null +++ b/static/images/cards/island.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:439e9604dbebe91607e1f0c28b4902ea00789689685da01e19f21bf70cac73b1 +size 168821 diff --git a/static/images/cards/jack-of-all-trades.jpg b/static/images/cards/jack-of-all-trades.jpg new file mode 100644 index 0000000..ad895f2 --- /dev/null +++ b/static/images/cards/jack-of-all-trades.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4141d6a29c88c1ce47daae08becbd53a456f4ec6590a97909613a27fa634e27 +size 184264 diff --git a/static/images/cards/jester.jpg b/static/images/cards/jester.jpg new file mode 100644 index 0000000..88cdf94 --- /dev/null +++ b/static/images/cards/jester.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33df24a8f64ad85481dbb41701f9c979f95ab06a89e375e8ceddf8b22b5572c7 +size 171109 diff --git a/static/images/cards/journeyman.jpg b/static/images/cards/journeyman.jpg new file mode 100644 index 0000000..eaeffd8 --- /dev/null +++ b/static/images/cards/journeyman.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9e7beac069368345085357dbdd6c805cdc82435c6ffdb458df66b4ea4ffe97b +size 181805 diff --git a/static/images/cards/junk-dealer.jpg b/static/images/cards/junk-dealer.jpg new file mode 100644 index 0000000..2764f1e --- /dev/null +++ b/static/images/cards/junk-dealer.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22b4e8cfb24d36540899c7c4bbdb4d3ae300eb1aff6d4af97afbe7917b3e9685 +size 172348 diff --git a/static/images/cards/keep.jpg b/static/images/cards/keep.jpg new file mode 100644 index 0000000..a597cc1 --- /dev/null +++ b/static/images/cards/keep.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e06b55e77b240656d86dfb3a502742a6795ad86171f5f2e30b577f3da71c678 +size 246572 diff --git a/static/images/cards/key.jpg b/static/images/cards/key.jpg new file mode 100644 index 0000000..fac181e --- /dev/null +++ b/static/images/cards/key.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be6f44ed9342b024efbea88f1f5ca9c3a3503cb8287ff9c643e535bc164910d4 +size 173304 diff --git a/static/images/cards/kings-castle.jpg b/static/images/cards/kings-castle.jpg new file mode 100644 index 0000000..cc4e0c1 --- /dev/null +++ b/static/images/cards/kings-castle.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e29609ffd28bd070261f7327baad61ef2d86a46dad57f9736a183a6e2b046c41 +size 161896 diff --git a/static/images/cards/kings-court.jpg b/static/images/cards/kings-court.jpg new file mode 100644 index 0000000..a00d932 --- /dev/null +++ b/static/images/cards/kings-court.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6d3015549b74e10a21ffa9775561eb27e909914fe1a3d88dba88ee636325985 +size 176412 diff --git a/static/images/cards/knights.jpg b/static/images/cards/knights.jpg new file mode 100644 index 0000000..95cb72f --- /dev/null +++ b/static/images/cards/knights.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6c06cb38d7552a6d4a7d4147791572f9f85273d5f7fbd7267869a1db0ad6861 +size 177898 diff --git a/static/images/cards/laboratory.jpg b/static/images/cards/laboratory.jpg new file mode 100644 index 0000000..f155677 --- /dev/null +++ b/static/images/cards/laboratory.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb79234c1f74928d925b5a0bf66597404a788c1b13d448ad3cfa49b4e93ec68c +size 161669 diff --git a/static/images/cards/labyrinth.jpg b/static/images/cards/labyrinth.jpg new file mode 100644 index 0000000..6cca449 --- /dev/null +++ b/static/images/cards/labyrinth.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fcabac6a38243fad40a748977fc779af1c369350d4ea807a460e7a2d6fea950a +size 277183 diff --git a/static/images/cards/lackeys.jpg b/static/images/cards/lackeys.jpg new file mode 100644 index 0000000..5a5d6df --- /dev/null +++ b/static/images/cards/lackeys.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea54537996ceeeacb891fbfd1cec9ac320092f8a18cef848817fb985f97abd71 +size 134104 diff --git a/static/images/cards/lantern.jpg b/static/images/cards/lantern.jpg new file mode 100644 index 0000000..a704ef9 --- /dev/null +++ b/static/images/cards/lantern.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2767f7e27b20ec5263d9368ebf7ef9a44010befe5a9d75164591ec5bcf0b4db4 +size 226514 diff --git a/static/images/cards/legionary.jpg b/static/images/cards/legionary.jpg new file mode 100644 index 0000000..7219613 --- /dev/null +++ b/static/images/cards/legionary.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2dd88d4a31670526b610837bb8f844fab9cb7fd00a9a0915353dd7c4165a152 +size 167168 diff --git a/static/images/cards/leprechaun.jpg b/static/images/cards/leprechaun.jpg new file mode 100644 index 0000000..d3840f2 --- /dev/null +++ b/static/images/cards/leprechaun.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae204c8561bc39c30013cdd34f138b7a1a395138629ce3bce4c7f10e653a2496 +size 197129 diff --git a/static/images/cards/library.jpg b/static/images/cards/library.jpg new file mode 100644 index 0000000..b631c78 --- /dev/null +++ b/static/images/cards/library.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edbde1e7d1c5621158ae44256f21231008b602c950db7920d60abc72d8b9ddaf +size 204531 diff --git a/static/images/cards/lighthouse.jpg b/static/images/cards/lighthouse.jpg new file mode 100644 index 0000000..b952011 --- /dev/null +++ b/static/images/cards/lighthouse.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2431ac8c909ff7b8aa05e4157df10d7ed5ea057da26f09a9ebcb838a196f7c6 +size 184958 diff --git a/static/images/cards/loan.jpg b/static/images/cards/loan.jpg new file mode 100644 index 0000000..a3c936e --- /dev/null +++ b/static/images/cards/loan.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23107708421b79cbde58b745303319702dd17992878f983e1b2ba99bfafb986f +size 202706 diff --git a/static/images/cards/locusts.jpg b/static/images/cards/locusts.jpg new file mode 100644 index 0000000..2370ba4 --- /dev/null +++ b/static/images/cards/locusts.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be21e1c80f16aef5c0a765a8f6d5da3bc907a91e249f27cbe860d6c231826583 +size 293074 diff --git a/static/images/cards/lookout.jpg b/static/images/cards/lookout.jpg new file mode 100644 index 0000000..124d7e8 --- /dev/null +++ b/static/images/cards/lookout.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f202e120e974995ba1e26e4dc89f0085f14188b261aa5a1dc092913f83e320cb +size 182549 diff --git a/static/images/cards/lost-arts.jpg b/static/images/cards/lost-arts.jpg new file mode 100644 index 0000000..d6df48d --- /dev/null +++ b/static/images/cards/lost-arts.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92c9dbe858ba66ba6500d48559116b1a21089d8788f402181e0e4e4112f0e835 +size 268624 diff --git a/static/images/cards/lost-citiy.jpg b/static/images/cards/lost-citiy.jpg new file mode 100644 index 0000000..e0c03c2 --- /dev/null +++ b/static/images/cards/lost-citiy.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af9bd8906fe6dab5809b5e2b3ab9db2fb9da1d55c9615232b83185022d28bafd +size 173119 diff --git a/static/images/cards/lost-in-the-woods.jpg b/static/images/cards/lost-in-the-woods.jpg new file mode 100644 index 0000000..50b8179 --- /dev/null +++ b/static/images/cards/lost-in-the-woods.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73dd7e70ae1ff94edec438a2391cfc0a679c74cd440b8581a2737b765a006d55 +size 286162 diff --git a/static/images/cards/lucky-coin.jpg b/static/images/cards/lucky-coin.jpg new file mode 100644 index 0000000..1b55124 --- /dev/null +++ b/static/images/cards/lucky-coin.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84fd3e833a598d8617293fa0865a5c7bdcb42caeef3db860c9e962ce272d7e62 +size 189073 diff --git a/static/images/cards/lurker.jpg b/static/images/cards/lurker.jpg new file mode 100644 index 0000000..7123c8b --- /dev/null +++ b/static/images/cards/lurker.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dde58d1ae2991394411b7f93214ef4c70a1969fb4bd0b5fa1fbb118a2e37b404 +size 158060 diff --git a/static/images/cards/madman.jpg b/static/images/cards/madman.jpg new file mode 100644 index 0000000..5ed147f --- /dev/null +++ b/static/images/cards/madman.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:013c53cb92770f9eaf7fe8be44b19218247aaf49b590d279d1e7c9d9fec74505 +size 192731 diff --git a/static/images/cards/magic-lamp.jpg b/static/images/cards/magic-lamp.jpg new file mode 100644 index 0000000..4874e8b --- /dev/null +++ b/static/images/cards/magic-lamp.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40064c36b91db015a88fb23e5a847e58cfc75431388cfabf4a98ef76913a839c +size 190578 diff --git a/static/images/cards/magpie.jpg b/static/images/cards/magpie.jpg new file mode 100644 index 0000000..a91e62e --- /dev/null +++ b/static/images/cards/magpie.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e799ef39962e6c1f514b55355c4f09deea804e83e0b612279a8a11ef2efcc38f +size 179550 diff --git a/static/images/cards/mandarin.jpg b/static/images/cards/mandarin.jpg new file mode 100644 index 0000000..7006776 --- /dev/null +++ b/static/images/cards/mandarin.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41ce6b33c1c616d08a0525acae1497b0b92786d66c93f54a062884752abef142 +size 212759 diff --git a/static/images/cards/marauder.jpg b/static/images/cards/marauder.jpg new file mode 100644 index 0000000..8429c41 --- /dev/null +++ b/static/images/cards/marauder.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a16c625535ed7badca93d152eac754d0531a9b980e579e4206f774e26bf06cd8 +size 154423 diff --git a/static/images/cards/margrave.jpg b/static/images/cards/margrave.jpg new file mode 100644 index 0000000..6ed3da4 --- /dev/null +++ b/static/images/cards/margrave.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9491d160903dcc00b7704dfe705a288727ca4067b64a572a252d5aea551bfb70 +size 176461 diff --git a/static/images/cards/market-square.jpg b/static/images/cards/market-square.jpg new file mode 100644 index 0000000..29ebebd --- /dev/null +++ b/static/images/cards/market-square.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7f0ac02a5e108fe7063d67e83da716e89ed1193cdf305d82fd1fb03869797ae +size 205396 diff --git a/static/images/cards/market.jpg b/static/images/cards/market.jpg new file mode 100644 index 0000000..9d43f55 --- /dev/null +++ b/static/images/cards/market.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3d6255bba51effc21ff6fd366db6c38ebf5afe6c2be0133229b253559e2e262 +size 156067 diff --git a/static/images/cards/masquerade.jpg b/static/images/cards/masquerade.jpg new file mode 100644 index 0000000..cc6495a --- /dev/null +++ b/static/images/cards/masquerade.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd7b3ae081ee3eede215dac74b53eb9c3f562f9edd44f420cf11d4a916bf4dc2 +size 191534 diff --git a/static/images/cards/masterpiece.jpg b/static/images/cards/masterpiece.jpg new file mode 100644 index 0000000..0c37b5a --- /dev/null +++ b/static/images/cards/masterpiece.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43bf636834c7e0dd7652498d5179fea0fd5e1212100e6cd1e67b1feb7cd55f39 +size 187743 diff --git a/static/images/cards/menagerie.jpg b/static/images/cards/menagerie.jpg new file mode 100644 index 0000000..0834a81 --- /dev/null +++ b/static/images/cards/menagerie.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:147c36b480cff47861c4a9b5723fc995fd776de20b781f9743263241dad80958 +size 161779 diff --git a/static/images/cards/mercenary.jpg b/static/images/cards/mercenary.jpg new file mode 100644 index 0000000..4f09331 --- /dev/null +++ b/static/images/cards/mercenary.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a5f27e672933540db65ba0be13c05bbb70974362c9711b3c1a3ffe8efa0202f +size 182963 diff --git a/static/images/cards/merchant-guild.jpg b/static/images/cards/merchant-guild.jpg new file mode 100644 index 0000000..ef5c271 --- /dev/null +++ b/static/images/cards/merchant-guild.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3176b31bd264a60460357ae539c47abe12a42fe8666b45273f03188d2e9133b7 +size 162843 diff --git a/static/images/cards/merchant-ship.jpg b/static/images/cards/merchant-ship.jpg new file mode 100644 index 0000000..a1f6274 --- /dev/null +++ b/static/images/cards/merchant-ship.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6e15db8d264f11278c92819f532391ab5a5716d6958e7a4a6eef2d9051963b3 +size 175298 diff --git a/static/images/cards/merchant.jpg b/static/images/cards/merchant.jpg new file mode 100644 index 0000000..8515487 --- /dev/null +++ b/static/images/cards/merchant.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a75303698a841bbb80080d005a1c46851d31fd5e9df981d41f696f6377519b31 +size 182279 diff --git a/static/images/cards/messenger.jpg b/static/images/cards/messenger.jpg new file mode 100644 index 0000000..ca0358c --- /dev/null +++ b/static/images/cards/messenger.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6a4a9dc5f820782de6bfbe1220cb93e0f2ac40775dd2f0aa496c24b50799510 +size 170005 diff --git a/static/images/cards/militia.jpg b/static/images/cards/militia.jpg new file mode 100644 index 0000000..073ce35 --- /dev/null +++ b/static/images/cards/militia.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7acdce08dc543b61b28e641ec5fee70ebbff2bf43bebde019d006dd8e27f924b +size 153014 diff --git a/static/images/cards/mill.jpg b/static/images/cards/mill.jpg new file mode 100644 index 0000000..5159070 --- /dev/null +++ b/static/images/cards/mill.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fefcdddb12b439e0048f56e0dc6bb03214d045adf647b29134da7cafce04b818 +size 169456 diff --git a/static/images/cards/mine.jpg b/static/images/cards/mine.jpg new file mode 100644 index 0000000..6e6a9a2 --- /dev/null +++ b/static/images/cards/mine.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:741d11b8a6d45387f114cc7f0151085fb239ba9ada09a127a3b6eee6963fa5fe +size 169545 diff --git a/static/images/cards/mining-village.jpg b/static/images/cards/mining-village.jpg new file mode 100644 index 0000000..5211719 --- /dev/null +++ b/static/images/cards/mining-village.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99787429ccecab9bb2eb030688ff68b80b4af0e9d7c20af47839024609cbb889 +size 184624 diff --git a/static/images/cards/minion.jpg b/static/images/cards/minion.jpg new file mode 100644 index 0000000..33f623f --- /dev/null +++ b/static/images/cards/minion.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff1bddcb91dc043f1e55ad8660f48a7f9e8f60b889ffb7351b94ab15c123b47e +size 178586 diff --git a/static/images/cards/mint.jpg b/static/images/cards/mint.jpg new file mode 100644 index 0000000..fc3522d --- /dev/null +++ b/static/images/cards/mint.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17dab4fc6f920fca2e8827f82499d26e4eb40f6fbaa366b0920318a8585322d5 +size 173649 diff --git a/static/images/cards/miser.jpg b/static/images/cards/miser.jpg new file mode 100644 index 0000000..1297c9a --- /dev/null +++ b/static/images/cards/miser.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:573a0a06fa741333d36efff3abbdab592097b06c7bada2473b6bd25aa442f68f +size 165082 diff --git a/static/images/cards/miserable.jpg b/static/images/cards/miserable.jpg new file mode 100644 index 0000000..62d53ef --- /dev/null +++ b/static/images/cards/miserable.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:942927f94904a1179a585993abc111c421a1d6493b003bec16f27d6d2b116af7 +size 150112 diff --git a/static/images/cards/misery.jpg b/static/images/cards/misery.jpg new file mode 100644 index 0000000..c5fe58d --- /dev/null +++ b/static/images/cards/misery.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e90933090d64b752ec1bebd66cc47b586d5ac7f11eb0d8653b63b1dc7b6955cf +size 159611 diff --git a/static/images/cards/mission.jpg b/static/images/cards/mission.jpg new file mode 100644 index 0000000..92f52bd --- /dev/null +++ b/static/images/cards/mission.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4274dad63bf4e39d243afbf27410106a3054c008a3d3c54d951834f367334cb +size 227728 diff --git a/static/images/cards/moat.jpg b/static/images/cards/moat.jpg new file mode 100644 index 0000000..4023943 --- /dev/null +++ b/static/images/cards/moat.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e78a0b00eec94dd3249c873e856520cad05aa836f50033ec6346091f24a2b380 +size 186326 diff --git a/static/images/cards/monastery.jpg b/static/images/cards/monastery.jpg new file mode 100644 index 0000000..9f2dc53 --- /dev/null +++ b/static/images/cards/monastery.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:183706af24861b37d3474ff070fe3d03bdc1d1d1f0cfa941ab6bf5f4c5d39905 +size 163811 diff --git a/static/images/cards/moneylender.jpg b/static/images/cards/moneylender.jpg new file mode 100644 index 0000000..f64ae6f --- /dev/null +++ b/static/images/cards/moneylender.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76fdec046c175a29230870c4ced6c98c2fe1456150e8a7c7512fb7c87320b030 +size 152973 diff --git a/static/images/cards/monument.jpg b/static/images/cards/monument.jpg new file mode 100644 index 0000000..14f8ba8 --- /dev/null +++ b/static/images/cards/monument.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f914c18a3fa851e1b1e05f9fb785bd9bcdbe25c8af1eaf2c31f9abc25091428d +size 157096 diff --git a/static/images/cards/mountain-pass.jpg b/static/images/cards/mountain-pass.jpg new file mode 100644 index 0000000..b435ff8 --- /dev/null +++ b/static/images/cards/mountain-pass.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:613c2e2db194dd6bd4cda677a6a9f700e2cac2d5b9a94ccbf149d3784b769f9f +size 244367 diff --git a/static/images/cards/mountain-village.jpg b/static/images/cards/mountain-village.jpg new file mode 100644 index 0000000..12084c9 --- /dev/null +++ b/static/images/cards/mountain-village.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:067e73c4aada68527f3e179390f2c9216dfe0cd6b046a02c231707e65fdec146 +size 171249 diff --git a/static/images/cards/mountebank.jpg b/static/images/cards/mountebank.jpg new file mode 100644 index 0000000..ae2a6fa --- /dev/null +++ b/static/images/cards/mountebank.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14f5e15eb37850d43f9e940abffe86b1844eb4867e54a5e4bebd3fb3cd1aedc0 +size 180775 diff --git a/static/images/cards/museum.jpg b/static/images/cards/museum.jpg new file mode 100644 index 0000000..c6d9390 --- /dev/null +++ b/static/images/cards/museum.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:252a92d746550ecbbb5423095ecd1139ca8e0506aecae90d08f260e0fccfa67e +size 258101 diff --git a/static/images/cards/mystic.jpg b/static/images/cards/mystic.jpg new file mode 100644 index 0000000..2c0d2fc --- /dev/null +++ b/static/images/cards/mystic.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:387ae89e90ecaa85bb83a44dd6e049f60cf155b4889f4da6d5ab3c9ddbde7ea3 +size 180544 diff --git a/static/images/cards/native-village.jpg b/static/images/cards/native-village.jpg new file mode 100644 index 0000000..58d8650 --- /dev/null +++ b/static/images/cards/native-village.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e2b3debe6811651439990f97a0d688a6dd488d1a6df50594f1fd10198474837 +size 184476 diff --git a/static/images/cards/navigator.jpg b/static/images/cards/navigator.jpg new file mode 100644 index 0000000..c813811 --- /dev/null +++ b/static/images/cards/navigator.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e95b51d4796f5f0beadb84bd5a9b8cb05be3d80768d184dd7d0f0695d7c1122 +size 176611 diff --git a/static/images/cards/necromancer.jpg b/static/images/cards/necromancer.jpg new file mode 100644 index 0000000..bb95f46 --- /dev/null +++ b/static/images/cards/necromancer.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:970c572b0c42526dd3b5785c8efab9d90ebb1d0551d23e85a13470a7d62a586e +size 196461 diff --git a/static/images/cards/necropolis.jpg b/static/images/cards/necropolis.jpg new file mode 100644 index 0000000..10d04ac --- /dev/null +++ b/static/images/cards/necropolis.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2476cc72cfc6d15244d6773cb069be15db30110dc2db0bb551e9c9b828dfb7d9 +size 151097 diff --git a/static/images/cards/night-watchman.jpg b/static/images/cards/night-watchman.jpg new file mode 100644 index 0000000..b088a2c --- /dev/null +++ b/static/images/cards/night-watchman.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a71c8907c16ed9bed43cf83d2b662d7c65a2a5912ad3d2f9d5bddb0dd78f6723 +size 171755 diff --git a/static/images/cards/noble-brigade.jpg b/static/images/cards/noble-brigade.jpg new file mode 100644 index 0000000..d3c6635 --- /dev/null +++ b/static/images/cards/noble-brigade.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e2b8f9dd3261395251f75b4882a9fade4db169e408fbc4ffa471ea98174c7c5 +size 196113 diff --git a/static/images/cards/nobles.jpg b/static/images/cards/nobles.jpg new file mode 100644 index 0000000..edc73df --- /dev/null +++ b/static/images/cards/nobles.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f034b149727b47de1522316dbb5cf6d1315470d05c03f22a3514a19585e6eec +size 172384 diff --git a/static/images/cards/nomad-camp.jpg b/static/images/cards/nomad-camp.jpg new file mode 100644 index 0000000..48513e1 --- /dev/null +++ b/static/images/cards/nomad-camp.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9adb41833c63901ed584daa5f4402c454b65c0d13bc42ee7827ddfd67e4fa25 +size 165397 diff --git a/static/images/cards/oasis.jpg b/static/images/cards/oasis.jpg new file mode 100644 index 0000000..fc00f94 --- /dev/null +++ b/static/images/cards/oasis.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b87c3c052c86213bec3b4a78e372af740c79c845d8494f813af76075256315e6 +size 175902 diff --git a/static/images/cards/obelisk.jpg b/static/images/cards/obelisk.jpg new file mode 100644 index 0000000..df67c2c --- /dev/null +++ b/static/images/cards/obelisk.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6217b7e5d72fad7a03bbbdc9790ffd651eb00b471fd77703a9ef01300c427be8 +size 277177 diff --git a/static/images/cards/old-images/colony.jpg b/static/images/cards/old-images/colony.jpg new file mode 100644 index 0000000..972ecc9 --- /dev/null +++ b/static/images/cards/old-images/colony.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30cd7f7c1c9cc9c3a846fe7216b99e8787442ce880dae6765128cc17817cf3a9 +size 48085 diff --git a/static/images/cards/old-images/copper.jpg b/static/images/cards/old-images/copper.jpg new file mode 100644 index 0000000..6500e19 --- /dev/null +++ b/static/images/cards/old-images/copper.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8d2466600b8529f538255a466a46dc4bbd044e88d4e8f5a5fd2c3fa962d0f03 +size 76360 diff --git a/static/images/cards/old-images/curse.jpg b/static/images/cards/old-images/curse.jpg new file mode 100644 index 0000000..8def1d3 --- /dev/null +++ b/static/images/cards/old-images/curse.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47e93e993be18c104db0ec084d7471e7683609448ee07e5687b21305b4e55ef4 +size 61292 diff --git a/static/images/cards/old-images/duchy.jpg b/static/images/cards/old-images/duchy.jpg new file mode 100644 index 0000000..be169c5 --- /dev/null +++ b/static/images/cards/old-images/duchy.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02d4405c48d62ec78bf33db58394f33001351d3018317acbf83d4579f65fa51c +size 66758 diff --git a/static/images/cards/old-images/estate.jpg b/static/images/cards/old-images/estate.jpg new file mode 100644 index 0000000..7cdfa0b --- /dev/null +++ b/static/images/cards/old-images/estate.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21616e62342e5b14bac9d6b9df40d224cba0e0b8625c49b798f0a0a4631dafb2 +size 64804 diff --git a/static/images/cards/old-images/gold.jpg b/static/images/cards/old-images/gold.jpg new file mode 100644 index 0000000..a3c26d9 --- /dev/null +++ b/static/images/cards/old-images/gold.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee7973ffe2af9cec2daff20a79b113930b56517e64a2f9011a7e663444841f17 +size 77385 diff --git a/static/images/cards/old-images/platinum.jpg b/static/images/cards/old-images/platinum.jpg new file mode 100644 index 0000000..521409b --- /dev/null +++ b/static/images/cards/old-images/platinum.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d053eb1cb36dff5d4ed840c9f81fe15757105356492224011272ab3ffbe39135 +size 53620 diff --git a/static/images/cards/old-images/province.jpg b/static/images/cards/old-images/province.jpg new file mode 100644 index 0000000..0258ba8 --- /dev/null +++ b/static/images/cards/old-images/province.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc8212b0a11db0f4ea31050fd85803a0384418e9fd174b97275b4937a8c08e99 +size 65896 diff --git a/static/images/cards/old-images/silver.jpg b/static/images/cards/old-images/silver.jpg new file mode 100644 index 0000000..0c0e3f6 --- /dev/null +++ b/static/images/cards/old-images/silver.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:955bddd226d7c3aa9b2a426fdff2cdef1cd4c2f88d1c72de648ba7a1d9db21e8 +size 77561 diff --git a/static/images/cards/old-witch.jpg b/static/images/cards/old-witch.jpg new file mode 100644 index 0000000..78f4723 --- /dev/null +++ b/static/images/cards/old-witch.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44123f7b4c8c002de19e2ba8b584650642908a91b264307d07aca86f2203f1a2 +size 144010 diff --git a/static/images/cards/opulent-castle.jpg b/static/images/cards/opulent-castle.jpg new file mode 100644 index 0000000..bf9d698 --- /dev/null +++ b/static/images/cards/opulent-castle.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f8bb5e1eca03d60cb8707ab8aacec09a0704ddde0bf8ab30751e94aacdc50ea +size 183658 diff --git a/static/images/cards/oracle.jpg b/static/images/cards/oracle.jpg new file mode 100644 index 0000000..b1caa14 --- /dev/null +++ b/static/images/cards/oracle.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c3c82727dcfb0b5f27d0ba5753e2c93cb51aea90031ca41906ce0d0e3b7dafa +size 160922 diff --git a/static/images/cards/orchard.jpg b/static/images/cards/orchard.jpg new file mode 100644 index 0000000..0af8847 --- /dev/null +++ b/static/images/cards/orchard.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de3fcfc1c40f2fdefaf2a55e4d676765627d004d3dc7334fba09f6f0625d0966 +size 234488 diff --git a/static/images/cards/outpost.jpg b/static/images/cards/outpost.jpg new file mode 100644 index 0000000..0dc44f8 --- /dev/null +++ b/static/images/cards/outpost.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8c6ccd66d0f02e9ae4d885b365b1af8a3012b8d0656649956e73a0c98e3bb40 +size 211924 diff --git a/static/images/cards/overgrown-estate.jpg b/static/images/cards/overgrown-estate.jpg new file mode 100644 index 0000000..d26ce5c --- /dev/null +++ b/static/images/cards/overgrown-estate.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4898000bf1998fefcfbae5940ec4a1c35f5a8af2505282b67ba60e9af1bf0a4 +size 183831 diff --git a/static/images/cards/overlord.jpg b/static/images/cards/overlord.jpg new file mode 100644 index 0000000..a5e2378 --- /dev/null +++ b/static/images/cards/overlord.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36040f27d0bc2ae35c1fa2ffe3344dbc04f3addcbbdbc827248fe4434620d573 +size 175745 diff --git a/static/images/cards/page.jpg b/static/images/cards/page.jpg new file mode 100644 index 0000000..fd6b1f8 --- /dev/null +++ b/static/images/cards/page.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3ed2da66aadc5e95e7316a2b86a8e4f87af2b5b4933eba17287d9deca02d779 +size 158869 diff --git a/static/images/cards/pageant.jpg b/static/images/cards/pageant.jpg new file mode 100644 index 0000000..8cb8ee9 --- /dev/null +++ b/static/images/cards/pageant.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40cb97482d6e64ebcedf3665447e2ef8efc9446565af73750d73ade844b15bab +size 224353 diff --git a/static/images/cards/palace.jpg b/static/images/cards/palace.jpg new file mode 100644 index 0000000..81e62de --- /dev/null +++ b/static/images/cards/palace.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd36ff76958197c25a051efb83e4b8176f78834e2ee347cc7e458bc419e08663 +size 198997 diff --git a/static/images/cards/pasture.jpg b/static/images/cards/pasture.jpg new file mode 100644 index 0000000..2d99df7 --- /dev/null +++ b/static/images/cards/pasture.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9eec7f715bde80f7761e46b2ec4e3fdc7b8307d805c81ece5f99459a923223c +size 155118 diff --git a/static/images/cards/pathfinding.jpg b/static/images/cards/pathfinding.jpg new file mode 100644 index 0000000..7e7cce6 --- /dev/null +++ b/static/images/cards/pathfinding.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7abba9c290e032b47306856457aa199aefee917d38d2c21f9ad2ef2a56f3b1b1 +size 258301 diff --git a/static/images/cards/patrician.jpg b/static/images/cards/patrician.jpg new file mode 100644 index 0000000..64e846f --- /dev/null +++ b/static/images/cards/patrician.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f8354ac0d3706cf9fe0601007aec234a068a1c1268d81ec26456d234b4998d9 +size 169634 diff --git a/static/images/cards/patrol.jpg b/static/images/cards/patrol.jpg new file mode 100644 index 0000000..79e9204 --- /dev/null +++ b/static/images/cards/patrol.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa92611d2afcc8b7d1b01c6c8f815f2d6522b18a90a464ca42480ca8cab35955 +size 188140 diff --git a/static/images/cards/patron.jpg b/static/images/cards/patron.jpg new file mode 100644 index 0000000..14466dc --- /dev/null +++ b/static/images/cards/patron.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64d981d80f1e093dbbb47060fc18d327d2944ae36b26afd7282c43af3b3b6c86 +size 171507 diff --git a/static/images/cards/pearl-diver.jpg b/static/images/cards/pearl-diver.jpg new file mode 100644 index 0000000..3314b3c --- /dev/null +++ b/static/images/cards/pearl-diver.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7d4eb864590b7e338fd00eacebb6a733697585224623782a70cc4ccb2ef9c2c +size 156392 diff --git a/static/images/cards/peasant.jpg b/static/images/cards/peasant.jpg new file mode 100644 index 0000000..8c03053 --- /dev/null +++ b/static/images/cards/peasant.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d7bbcf7be9a113679cb79ce77154ad257fcd3ec037203316e328928fe66256c +size 181084 diff --git a/static/images/cards/peddler.jpg b/static/images/cards/peddler.jpg new file mode 100644 index 0000000..4528932 --- /dev/null +++ b/static/images/cards/peddler.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc2511c7ccf7194d7e32646df95f822d052001beeb0b384444295cc321718f9b +size 186537 diff --git a/static/images/cards/philosophers-stone.jpg b/static/images/cards/philosophers-stone.jpg new file mode 100644 index 0000000..55ac788 --- /dev/null +++ b/static/images/cards/philosophers-stone.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb5401c34bf0cad8565b65fb4e81e66187320d75ed2a82c7f9198a3fb2dfaa19 +size 179569 diff --git a/static/images/cards/piazza.jpg b/static/images/cards/piazza.jpg new file mode 100644 index 0000000..f14b31a --- /dev/null +++ b/static/images/cards/piazza.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e15b9eae760e0efe9d9379a63e01a7fa2de69b99ef100cc201c83f107d6beb2 +size 236033 diff --git a/static/images/cards/pilgrimage.jpg b/static/images/cards/pilgrimage.jpg new file mode 100644 index 0000000..9f93802 --- /dev/null +++ b/static/images/cards/pilgrimage.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:197e125d83287ce432f3ae7ee6760030c04cab25a4a5de73f0e4493a5f032aa5 +size 278930 diff --git a/static/images/cards/pillage.jpg b/static/images/cards/pillage.jpg new file mode 100644 index 0000000..0612d3f --- /dev/null +++ b/static/images/cards/pillage.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8cdc00e8c6889e7f94fcdd4179c1bb29155e1392fa2e08030a19f56b01f77c3c +size 197158 diff --git a/static/images/cards/pirate-ship.jpg b/static/images/cards/pirate-ship.jpg new file mode 100644 index 0000000..598e7e7 --- /dev/null +++ b/static/images/cards/pirate-ship.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42343cc54c33b0e0eff392a630f883d72d297e144cae74c7e19cc8778967a1fa +size 195171 diff --git a/static/images/cards/pixie.jpg b/static/images/cards/pixie.jpg new file mode 100644 index 0000000..7054ec9 --- /dev/null +++ b/static/images/cards/pixie.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:703f4511a4830294583eaa16fea9ccedb6acc1e7225d543631bb7a056d583265 +size 182383 diff --git a/static/images/cards/plague.jpg b/static/images/cards/plague.jpg new file mode 100644 index 0000000..277526b --- /dev/null +++ b/static/images/cards/plague.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d67bde4093a1bc8cd16b252a26d32a868f6c3a8649576f193666c880ec77cf5c +size 192566 diff --git a/static/images/cards/plan.jpg b/static/images/cards/plan.jpg new file mode 100644 index 0000000..3a58449 --- /dev/null +++ b/static/images/cards/plan.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:852b860fbf4c4ecb0b2ab4e91898082e83ade91a72a4110014322375ba1f3e2d +size 217169 diff --git a/static/images/cards/platinum.jpg b/static/images/cards/platinum.jpg new file mode 100644 index 0000000..4d41f3a --- /dev/null +++ b/static/images/cards/platinum.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ace4a94f70707ccc9993241eca4d3ad5762ab62dfd96f0c93c9de629381eff0 +size 153045 diff --git a/static/images/cards/plaza.jpg b/static/images/cards/plaza.jpg new file mode 100644 index 0000000..aec46e2 --- /dev/null +++ b/static/images/cards/plaza.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a0010916af706c64ade82b80c725cec3c172c1a9873ae0709439712e1f98ec1 +size 179684 diff --git a/static/images/cards/plunder.jpg b/static/images/cards/plunder.jpg new file mode 100644 index 0000000..67c3696 --- /dev/null +++ b/static/images/cards/plunder.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69688ded7c18b5f7268382c5c2456d0591095ffa540e6ab979f2f590087365a0 +size 150457 diff --git a/static/images/cards/poacher.jpg b/static/images/cards/poacher.jpg new file mode 100644 index 0000000..823bb1d --- /dev/null +++ b/static/images/cards/poacher.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a5dfc6d7b8f3000e02e4e7a3a8d0b44649aeb8c51c2c4ee2f2a2dd45bdae233 +size 177320 diff --git a/static/images/cards/pooka.jpg b/static/images/cards/pooka.jpg new file mode 100644 index 0000000..07fba9a --- /dev/null +++ b/static/images/cards/pooka.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fe456e3adbb50fe136dce7a6dfc5f6045b6d65ab92b60f0fa6a3143a19d1d42 +size 186347 diff --git a/static/images/cards/poor-house.jpg b/static/images/cards/poor-house.jpg new file mode 100644 index 0000000..5c8262d --- /dev/null +++ b/static/images/cards/poor-house.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14c512495dfcd5882be18aa2d38fc25d0d39959f2bcc03e4d7cb0f03bd0fa4a1 +size 152987 diff --git a/static/images/cards/port.jpg b/static/images/cards/port.jpg new file mode 100644 index 0000000..6bd3818 --- /dev/null +++ b/static/images/cards/port.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb9be00da2ee96232191db4b443e625f9e85cf1ed328e38736fe0a743116a868 +size 158510 diff --git a/static/images/cards/possession.jpg b/static/images/cards/possession.jpg new file mode 100644 index 0000000..b751809 --- /dev/null +++ b/static/images/cards/possession.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5668c5a7735549476259450d5c75df3296628ca29a57370d73371b7a2559f06 +size 196029 diff --git a/static/images/cards/potion.jpg b/static/images/cards/potion.jpg new file mode 100644 index 0000000..98831a8 --- /dev/null +++ b/static/images/cards/potion.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17f08102f9456ed5115b1418e1515dbfd52df2bc7eae5354568a16f7392522ac +size 162737 diff --git a/static/images/cards/pouch.jpg b/static/images/cards/pouch.jpg new file mode 100644 index 0000000..024492a --- /dev/null +++ b/static/images/cards/pouch.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:457f982ca4fe3fc43f424c8e2e544c397eb4009c8ca14911e27b25172cb7d4d8 +size 140582 diff --git a/static/images/cards/poverty.jpg b/static/images/cards/poverty.jpg new file mode 100644 index 0000000..7be2429 --- /dev/null +++ b/static/images/cards/poverty.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3df49dba987bc36b6da3ced0866e28c9e96b678586fa45e8d18d611fecbb7c5 +size 154142 diff --git a/static/images/cards/priest.jpg b/static/images/cards/priest.jpg new file mode 100644 index 0000000..c3798ec --- /dev/null +++ b/static/images/cards/priest.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d24e20280aef361d3cd06bbc324cd9eb6ba957879e32d1f8769e039cb3d240dc +size 163004 diff --git a/static/images/cards/prince.jpg b/static/images/cards/prince.jpg new file mode 100644 index 0000000..497c8a0 --- /dev/null +++ b/static/images/cards/prince.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48601c98f7484b9ad7e1c8345b8308a97c90e0139a216b6264aabb85ebbbb831 +size 194789 diff --git a/static/images/cards/princess.jpg b/static/images/cards/princess.jpg new file mode 100644 index 0000000..36dc84c --- /dev/null +++ b/static/images/cards/princess.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5830688962089cb81486d4636fc9d1d7cacb92b9360ed96f51f9aa1ea03a2d75 +size 180004 diff --git a/static/images/cards/procession.jpg b/static/images/cards/procession.jpg new file mode 100644 index 0000000..a30558d --- /dev/null +++ b/static/images/cards/procession.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4029ab9c9b0ed0ab47a2aa724e5e495a6e5d321b8464daa47dc231b559eb23bf +size 168042 diff --git a/static/images/cards/province.jpg b/static/images/cards/province.jpg new file mode 100644 index 0000000..4d8372e --- /dev/null +++ b/static/images/cards/province.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d37922df4b9eb1bd5358b5c3d114591f49068c632d5ba5eff50ce4e01fdc8e5 +size 154056 diff --git a/static/images/cards/quarry.jpg b/static/images/cards/quarry.jpg new file mode 100644 index 0000000..8c93abd --- /dev/null +++ b/static/images/cards/quarry.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fefd55d6a94f785d46d8e490a9eedc3ff011ef6dc331fcfec18483b0065886d +size 198037 diff --git a/static/images/cards/quest.jpg b/static/images/cards/quest.jpg new file mode 100644 index 0000000..a2fb152 --- /dev/null +++ b/static/images/cards/quest.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cd640150f04f20fd0e07cf856523a8236e0637312dfcf1fa132920808e4a89d +size 245123 diff --git a/static/images/cards/rabble.jpg b/static/images/cards/rabble.jpg new file mode 100644 index 0000000..318d9b1 --- /dev/null +++ b/static/images/cards/rabble.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4f5d60c923aa8a1f725d09dfd123bc8afab1fae81c6826c31793e3f36249050 +size 187551 diff --git a/static/images/cards/raid.jpg b/static/images/cards/raid.jpg new file mode 100644 index 0000000..dc7f3c8 --- /dev/null +++ b/static/images/cards/raid.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fcf36557715a1942591fc3b7b55b17380095bb1ecf92fc6b7dc29f0bc2a7825 +size 222044 diff --git a/static/images/cards/raider.jpg b/static/images/cards/raider.jpg new file mode 100644 index 0000000..bbc11a7 --- /dev/null +++ b/static/images/cards/raider.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4df277d3e81a62fcd453ba7052d15111bd87ef10386fd3954e0cc0755d24ced +size 170534 diff --git a/static/images/cards/ranger.jpg b/static/images/cards/ranger.jpg new file mode 100644 index 0000000..86f3cca --- /dev/null +++ b/static/images/cards/ranger.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d341dee8e63200cc71ccbe7efe83f1d708ab4f1f902c97920e4830dff3c1551 +size 193875 diff --git a/static/images/cards/ratcatcher.jpg b/static/images/cards/ratcatcher.jpg new file mode 100644 index 0000000..6915fde --- /dev/null +++ b/static/images/cards/ratcatcher.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:852fb95a0bb1f5fc265ef90fdf0be943932ea473cfa8c3b259f0ca84b9ad5e93 +size 175716 diff --git a/static/images/cards/rats.jpg b/static/images/cards/rats.jpg new file mode 100644 index 0000000..135ec50 --- /dev/null +++ b/static/images/cards/rats.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8a9d357f9e41ebf5b532aef6673a46ffc92de3de5cc9a229cd1e6ac10c5ff30 +size 176422 diff --git a/static/images/cards/raze.jpg b/static/images/cards/raze.jpg new file mode 100644 index 0000000..0931d6f --- /dev/null +++ b/static/images/cards/raze.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8de8395c6afcde05e3ccd3adb026a5e49c9adf2c89c9b1cf8d84a14148ada1ff +size 173699 diff --git a/static/images/cards/rebuild.jpg b/static/images/cards/rebuild.jpg new file mode 100644 index 0000000..d4854db --- /dev/null +++ b/static/images/cards/rebuild.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01c99cbc0633536a14ef508b63726ae76b0d66321bfdbccc70a9b577d61f4ec7 +size 190499 diff --git a/static/images/cards/recruiter.jpg b/static/images/cards/recruiter.jpg new file mode 100644 index 0000000..f28b362 --- /dev/null +++ b/static/images/cards/recruiter.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:884cfdeaf5dcab67284db3f065e94b6ecf246c2068ec04c05751367a3df129f0 +size 167496 diff --git a/static/images/cards/relic.jpg b/static/images/cards/relic.jpg new file mode 100644 index 0000000..f0c6207 --- /dev/null +++ b/static/images/cards/relic.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4c8d17d54d05ec9c3fe6003c0367a326fef0b4426478e40bfaf027b37eb62fa +size 184199 diff --git a/static/images/cards/remake.jpg b/static/images/cards/remake.jpg new file mode 100644 index 0000000..e9f089b --- /dev/null +++ b/static/images/cards/remake.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57cd119c18f94f56dab7e72aea7d6e7fbcd285e0d051d4ae5ad76a7cf952d039 +size 175328 diff --git a/static/images/cards/remodel.jpg b/static/images/cards/remodel.jpg new file mode 100644 index 0000000..87a8ec5 --- /dev/null +++ b/static/images/cards/remodel.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58a60d67c93416ac1475b4370892a4d4656b51c16869db51cd23f5a382783fac +size 149419 diff --git a/static/images/cards/replace.jpg b/static/images/cards/replace.jpg new file mode 100644 index 0000000..13ddc98 --- /dev/null +++ b/static/images/cards/replace.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:939b41fca849b3350efb3912d60f45da7129ec48c174789a0b8d6e6e19b7405b +size 199294 diff --git a/static/images/cards/research.jpg b/static/images/cards/research.jpg new file mode 100644 index 0000000..c336c00 --- /dev/null +++ b/static/images/cards/research.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3f0b6f4f543e2b9e3b1526cea323fbdaf55340c2ea6d53438abd6d7a7b0415d +size 205781 diff --git a/static/images/cards/ritual.jpg b/static/images/cards/ritual.jpg new file mode 100644 index 0000000..9c5e047 --- /dev/null +++ b/static/images/cards/ritual.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2c29aefeaef967864950a397f0a579363654199afb4b2e43e592c032132928a +size 262634 diff --git a/static/images/cards/road-network.jpg b/static/images/cards/road-network.jpg new file mode 100644 index 0000000..019b28f --- /dev/null +++ b/static/images/cards/road-network.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eca86c88474667eae2b2e63ff48e1b2cf38f38d5d49a4ad61decbe464ab4f406 +size 249936 diff --git a/static/images/cards/rock.jpg b/static/images/cards/rock.jpg new file mode 100644 index 0000000..b9a499b --- /dev/null +++ b/static/images/cards/rock.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a65172417579d6a0caa38797fdd2a39de36889632af9b428468a2e4d31d89f8b +size 203440 diff --git a/static/images/cards/rogue.jpg b/static/images/cards/rogue.jpg new file mode 100644 index 0000000..87c8877 --- /dev/null +++ b/static/images/cards/rogue.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30acbaad44222f9461e3d5aed40c9c4662fe9513a8ca63bb4f5824ec26fd4b53 +size 197047 diff --git a/static/images/cards/royal-blacksmith.jpg b/static/images/cards/royal-blacksmith.jpg new file mode 100644 index 0000000..0e0ed59 --- /dev/null +++ b/static/images/cards/royal-blacksmith.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09503097d5e355a8ff37fede82ac891ea93279e6d33f7a922ab4225e043ef44d +size 141901 diff --git a/static/images/cards/royal-carriage.jpg b/static/images/cards/royal-carriage.jpg new file mode 100644 index 0000000..2bb63a1 --- /dev/null +++ b/static/images/cards/royal-carriage.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:698617b97c0a5a7f58118afa74c29ded1100f70853b8010bfe25acfce9736848 +size 211869 diff --git a/static/images/cards/royal-seal.jpg b/static/images/cards/royal-seal.jpg new file mode 100644 index 0000000..5a0a6dc --- /dev/null +++ b/static/images/cards/royal-seal.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b269b9993501cbbe7afed4c18fa3129c2f08bbce336fda291fbbc8d20ff1e266 +size 168131 diff --git a/static/images/cards/ruined-library.jpg b/static/images/cards/ruined-library.jpg new file mode 100644 index 0000000..f8a4602 --- /dev/null +++ b/static/images/cards/ruined-library.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33ae4dc53662b03879706704d2de38f743b6bcd6d120baa0be6ab3b81860bf8b +size 176950 diff --git a/static/images/cards/ruined-market.jpg b/static/images/cards/ruined-market.jpg new file mode 100644 index 0000000..6f8b5de --- /dev/null +++ b/static/images/cards/ruined-market.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adc739487926a9aa355f16cf4acbbcacb4b6d5964d3be32a324bc097a11b183c +size 155170 diff --git a/static/images/cards/ruined-village.jpg b/static/images/cards/ruined-village.jpg new file mode 100644 index 0000000..2e8bdc1 --- /dev/null +++ b/static/images/cards/ruined-village.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:682838f15b9e0bb152a1f06dfd8238d91fc741d61fe64460504731f76d398d36 +size 164964 diff --git a/static/images/cards/saboteur.jpg b/static/images/cards/saboteur.jpg new file mode 100644 index 0000000..97b0f5d --- /dev/null +++ b/static/images/cards/saboteur.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:015db8cf467c300dd2773b751272b50741d2f3e7809a77d96a6c50dbf2c8c93a +size 129256 diff --git a/static/images/cards/sacred-grove.jpg b/static/images/cards/sacred-grove.jpg new file mode 100644 index 0000000..d57e37a --- /dev/null +++ b/static/images/cards/sacred-grove.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a7108c8d1f2fbc5e2b26519d9aabf8026a20370a3d00558fecb79f361522bee +size 170027 diff --git a/static/images/cards/sacrifice.jpg b/static/images/cards/sacrifice.jpg new file mode 100644 index 0000000..e4d1281 --- /dev/null +++ b/static/images/cards/sacrifice.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07cd53a1d0dba93f5d09d873d527041f0a387cb058d15b30c0bff3fcc525c099 +size 171332 diff --git a/static/images/cards/sage.jpg b/static/images/cards/sage.jpg new file mode 100644 index 0000000..6ead660 --- /dev/null +++ b/static/images/cards/sage.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee62f2b89646a184ae9361143a03f55e664251ce1dbc64142d965451866819eb +size 187626 diff --git a/static/images/cards/salt-the-earth.jpg b/static/images/cards/salt-the-earth.jpg new file mode 100644 index 0000000..8b2f835 --- /dev/null +++ b/static/images/cards/salt-the-earth.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45fa3772fcfb91d2c75c208b133f4743b309c8ca9d61af6effa1122f71eb0781 +size 225566 diff --git a/static/images/cards/salvager.jpg b/static/images/cards/salvager.jpg new file mode 100644 index 0000000..f8fea28 --- /dev/null +++ b/static/images/cards/salvager.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bfb8df5604a068cfb66a5c984b58963d9258ea61f9d750c191cbe24e8d50a389 +size 150405 diff --git a/static/images/cards/sauna.jpg b/static/images/cards/sauna.jpg new file mode 100644 index 0000000..dc8c4a8 --- /dev/null +++ b/static/images/cards/sauna.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1da1939a71c0271363386c3d8e3338d9a6b4f6a729bec1e673c03fec9743d15 +size 187426 diff --git a/static/images/cards/save.jpg b/static/images/cards/save.jpg new file mode 100644 index 0000000..5146958 --- /dev/null +++ b/static/images/cards/save.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7cb3a02151b8e7def9be00fcb59e2f5e72657c25350f478c1c22392f2151b7e0 +size 202262 diff --git a/static/images/cards/scavenger.jpg b/static/images/cards/scavenger.jpg new file mode 100644 index 0000000..c95845c --- /dev/null +++ b/static/images/cards/scavenger.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:605ef1d775991b80fed0e3801e605c671f55aa4e4f4126b92f51190133254d19 +size 170262 diff --git a/static/images/cards/scepter.jpg b/static/images/cards/scepter.jpg new file mode 100644 index 0000000..5d65527 --- /dev/null +++ b/static/images/cards/scepter.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:129220b69cf2d2c1a2b5e5559e508dbd8fdc3b780594f8681169c67bb7639c90 +size 201396 diff --git a/static/images/cards/scheme.jpg b/static/images/cards/scheme.jpg new file mode 100644 index 0000000..afac647 --- /dev/null +++ b/static/images/cards/scheme.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2304700345b9370dea83f28653bd8aa1700c43568f2f6da34a0895a78892cccc +size 172108 diff --git a/static/images/cards/scholar.jpg b/static/images/cards/scholar.jpg new file mode 100644 index 0000000..bbe6be6 --- /dev/null +++ b/static/images/cards/scholar.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:287476453f69da45340e3798930f4240b855702e045cfded3af5cea662df0dcb +size 136422 diff --git a/static/images/cards/scout.jpg b/static/images/cards/scout.jpg new file mode 100644 index 0000000..41d6dfb --- /dev/null +++ b/static/images/cards/scout.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97626d0b93073172ffdd033bb7d42e53e5bd196a6ffd923a30d27293c64a7a11 +size 121836 diff --git a/static/images/cards/scouting-party.jpg b/static/images/cards/scouting-party.jpg new file mode 100644 index 0000000..60d84e7 --- /dev/null +++ b/static/images/cards/scouting-party.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e22678195855a7a1f9ba14f80bf2c025e31bc29b27119a63f8752b12390cce39 +size 261295 diff --git a/static/images/cards/scrying-pool.jpg b/static/images/cards/scrying-pool.jpg new file mode 100644 index 0000000..7a16899 --- /dev/null +++ b/static/images/cards/scrying-pool.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f1a860f47e16c8290216f9bd84970a3fb41720a36415848249d8f834ea86886 +size 197417 diff --git a/static/images/cards/sculptor.jpg b/static/images/cards/sculptor.jpg new file mode 100644 index 0000000..c78f159 --- /dev/null +++ b/static/images/cards/sculptor.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3c227bb81b84a5d5b9339aeefa82b9692674fef2e96aee75b77d2b77bda90eb +size 132937 diff --git a/static/images/cards/sea-hag.jpg b/static/images/cards/sea-hag.jpg new file mode 100644 index 0000000..dbad862 --- /dev/null +++ b/static/images/cards/sea-hag.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d691af79273437526bf49f77817cdf685a44d8648cec5360c262ed510e3e52a +size 182825 diff --git a/static/images/cards/seaway.jpg b/static/images/cards/seaway.jpg new file mode 100644 index 0000000..6bdf74b --- /dev/null +++ b/static/images/cards/seaway.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5aafc199bed72c612ea98806be3b640c1e231c917cffcd3f1ef6b8cda4f5ab11 +size 268678 diff --git a/static/images/cards/secret-cave.jpg b/static/images/cards/secret-cave.jpg new file mode 100644 index 0000000..5750d6b --- /dev/null +++ b/static/images/cards/secret-cave.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99f3f116226b3d96d00db5b6d264750c9866e9df297d1fd8b7b1a0a3b45bb6af +size 192247 diff --git a/static/images/cards/secret-chamber.jpg b/static/images/cards/secret-chamber.jpg new file mode 100644 index 0000000..dd41a3d --- /dev/null +++ b/static/images/cards/secret-chamber.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ee5308a18fad4b6cb5addde9d786628ddf9d503cf307aa328135fdf79bb6c49 +size 123663 diff --git a/static/images/cards/secret-passage.jpg b/static/images/cards/secret-passage.jpg new file mode 100644 index 0000000..c361d64 --- /dev/null +++ b/static/images/cards/secret-passage.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbc38ad908c6f4300702c7f3aff61b98361c3bd799b15babc71ad64a1c6bddf1 +size 155916 diff --git a/static/images/cards/seer.jpg b/static/images/cards/seer.jpg new file mode 100644 index 0000000..3392f08 --- /dev/null +++ b/static/images/cards/seer.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3984a602ce1b232844c71f07c27532170d5aae6c22f74f945e62dbd4f5e0cf78 +size 169294 diff --git a/static/images/cards/sentry.jpg b/static/images/cards/sentry.jpg new file mode 100644 index 0000000..be4b9d1 --- /dev/null +++ b/static/images/cards/sentry.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a7a565c2b0ab499a9f21d32743866ddc07a2a50d6ee43eb1b87b1b6de8b6f66 +size 183726 diff --git a/static/images/cards/settlers.jpg b/static/images/cards/settlers.jpg new file mode 100644 index 0000000..48cb796 --- /dev/null +++ b/static/images/cards/settlers.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a9ec8950954b26f940c172af94a31d38d5906badd56e1b5f1325004982e77b1 +size 150796 diff --git a/static/images/cards/sewers.jpg b/static/images/cards/sewers.jpg new file mode 100644 index 0000000..c39afdc --- /dev/null +++ b/static/images/cards/sewers.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e318158f472d9703fa0b28e3a33a18fe3e7d7896c28c94c74afbc9bf0990c475 +size 225972 diff --git a/static/images/cards/shanty-town.jpg b/static/images/cards/shanty-town.jpg new file mode 100644 index 0000000..8cbbdf8 --- /dev/null +++ b/static/images/cards/shanty-town.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec9a2d474fc8fe37c05778998f3675f375d457c5340201d2a306f03a6c9a2c33 +size 168860 diff --git a/static/images/cards/shepherd.jpg b/static/images/cards/shepherd.jpg new file mode 100644 index 0000000..d1944fc --- /dev/null +++ b/static/images/cards/shepherd.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9b470e27bf53f5bfd7a651c4eb6d3f4561956162c2f94575b63f0ddc41b5833 +size 150168 diff --git a/static/images/cards/silk-merchant.jpg b/static/images/cards/silk-merchant.jpg new file mode 100644 index 0000000..ef4fc0b --- /dev/null +++ b/static/images/cards/silk-merchant.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca431ab92ad7512d2460126a9f4f5fa1300ddc8f95e52f3625e25f98469c0d5b +size 165369 diff --git a/static/images/cards/silk-road.jpg b/static/images/cards/silk-road.jpg new file mode 100644 index 0000000..b631870 --- /dev/null +++ b/static/images/cards/silk-road.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15f91072275c594e00b7f3c6c49fe671fe5255738950b0d4703873725599f5d5 +size 173919 diff --git a/static/images/cards/silos.jpg b/static/images/cards/silos.jpg new file mode 100644 index 0000000..2b91963 --- /dev/null +++ b/static/images/cards/silos.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccfbe97c6aa0429c1bb8ff0f16e8cc6200b7643eeca04825425e68ec05ecdf32 +size 217706 diff --git a/static/images/cards/silver.jpg b/static/images/cards/silver.jpg new file mode 100644 index 0000000..74f2a9f --- /dev/null +++ b/static/images/cards/silver.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6464f0f971c710031472f244a50802e2ffa258e10265721e69b42ae8b557de5 +size 199261 diff --git a/static/images/cards/sinister-plot.jpg b/static/images/cards/sinister-plot.jpg new file mode 100644 index 0000000..fa47af6 --- /dev/null +++ b/static/images/cards/sinister-plot.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41bbbb2311c5544f5163587b0edcfbcaf52db96f92fc445cb237a0e8be4d5d74 +size 201666 diff --git a/static/images/cards/sir-bailey.jpg b/static/images/cards/sir-bailey.jpg new file mode 100644 index 0000000..1beb437 --- /dev/null +++ b/static/images/cards/sir-bailey.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fdc996b1b2b1602c2553e4021513a7e9df198e65f301a03b35e0e21dc1fdb848 +size 188000 diff --git a/static/images/cards/sir-destry.jpg b/static/images/cards/sir-destry.jpg new file mode 100644 index 0000000..3502d6a --- /dev/null +++ b/static/images/cards/sir-destry.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4417dbe036666915e0b09225af5420bfd3e6ac06ef2596fb0a160b0dbc389ea5 +size 204624 diff --git a/static/images/cards/sir-martin.jpg b/static/images/cards/sir-martin.jpg new file mode 100644 index 0000000..f742709 --- /dev/null +++ b/static/images/cards/sir-martin.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a6f610a552f708e1e50d554ed45f9d92ffc3f9e8e8a81c0d8aa4d921ba1451c +size 198016 diff --git a/static/images/cards/sir-michael.jpg b/static/images/cards/sir-michael.jpg new file mode 100644 index 0000000..53eb695 --- /dev/null +++ b/static/images/cards/sir-michael.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17a73501f4e967ef30ab0a0036befc34be72650a06620daa9d8cfa052d48acf1 +size 204878 diff --git a/static/images/cards/sir-vander.jpg b/static/images/cards/sir-vander.jpg new file mode 100644 index 0000000..4ed8ddb --- /dev/null +++ b/static/images/cards/sir-vander.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac4abbf6cecec8503927e5e95d55fce2a1177607cb7ff0e37d5d322a9431bc1c +size 183053 diff --git a/static/images/cards/skulk.jpg b/static/images/cards/skulk.jpg new file mode 100644 index 0000000..ee23997 --- /dev/null +++ b/static/images/cards/skulk.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7935febe20b8db0a837cecc6f1823e5f8fd18994dbeca95243949dd7c0a9a284 +size 157910 diff --git a/static/images/cards/small-castle.jpg b/static/images/cards/small-castle.jpg new file mode 100644 index 0000000..cc322f7 --- /dev/null +++ b/static/images/cards/small-castle.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4cd34bb55c54f3f28e24a8dc6fabe849bd73fab8aa402652f85a8a0224769be +size 179917 diff --git a/static/images/cards/smithy.jpg b/static/images/cards/smithy.jpg new file mode 100644 index 0000000..ec6d973 --- /dev/null +++ b/static/images/cards/smithy.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc5be9651827b195c3858115ea27ebae70686e17ecce4780957734e34f82ba50 +size 141171 diff --git a/static/images/cards/smugglers.jpg b/static/images/cards/smugglers.jpg new file mode 100644 index 0000000..6ecf0ae --- /dev/null +++ b/static/images/cards/smugglers.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79b5d38940409d789cc840f5599986c0a0b2ed31b908cd942f53476f2ce1499d +size 153172 diff --git a/static/images/cards/soldier.jpg b/static/images/cards/soldier.jpg new file mode 100644 index 0000000..59dbe93 --- /dev/null +++ b/static/images/cards/soldier.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd3121e5351a8dfbdab69bfcc1c0dec35af47aec2fb792720e7030d4ae399cf8 +size 220353 diff --git a/static/images/cards/soothsayer.jpg b/static/images/cards/soothsayer.jpg new file mode 100644 index 0000000..a462a09 --- /dev/null +++ b/static/images/cards/soothsayer.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf473254f5a5c27f0cc548260ef5c1107f2c4983d6fe9651a373779996ecadf1 +size 155016 diff --git a/static/images/cards/spice-merchant.jpg b/static/images/cards/spice-merchant.jpg new file mode 100644 index 0000000..6c7ddc8 --- /dev/null +++ b/static/images/cards/spice-merchant.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:905b1179f92f011da160f3efb7a84722f5cbb09180befd04ff772f79115169a6 +size 175865 diff --git a/static/images/cards/spices.jpg b/static/images/cards/spices.jpg new file mode 100644 index 0000000..0dd60dd --- /dev/null +++ b/static/images/cards/spices.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e3a5ad1f3d1dad533a084791987cddcddfc833ff7c4e8b23d0976f02f451bff +size 164482 diff --git a/static/images/cards/spoils.jpg b/static/images/cards/spoils.jpg new file mode 100644 index 0000000..98dcd92 --- /dev/null +++ b/static/images/cards/spoils.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1eb7bb956f3c46318fdc62aaaf2472374c69a0c96b2e2591c4e08ab876b05a5a +size 187743 diff --git a/static/images/cards/sprawling-castle.jpg b/static/images/cards/sprawling-castle.jpg new file mode 100644 index 0000000..e8ed8fd --- /dev/null +++ b/static/images/cards/sprawling-castle.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1addf9321d6917e6fda04020ea26e04136e3e61f169917baec4203def94de28 +size 169306 diff --git a/static/images/cards/spy.jpg b/static/images/cards/spy.jpg new file mode 100644 index 0000000..6db0237 --- /dev/null +++ b/static/images/cards/spy.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d17722307e59aa7a9711d2b5d9d2bb28bbb30981dbd4e22febd4e9604f149b00 +size 109012 diff --git a/static/images/cards/squire.jpg b/static/images/cards/squire.jpg new file mode 100644 index 0000000..2c4e613 --- /dev/null +++ b/static/images/cards/squire.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:122f8d7a63f6857ff5c0d5a059d8668110dc033cff6483d4a7752ba1354f5b69 +size 183469 diff --git a/static/images/cards/stables.jpg b/static/images/cards/stables.jpg new file mode 100644 index 0000000..8ca7547 --- /dev/null +++ b/static/images/cards/stables.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ece64bad679b93da7349bf2bfe4a7a62206f01a3c65415e1ef47ac857dd9dde7 +size 174090 diff --git a/static/images/cards/star-chart.jpg b/static/images/cards/star-chart.jpg new file mode 100644 index 0000000..8afce08 --- /dev/null +++ b/static/images/cards/star-chart.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a1e336c6b4a5fda3c031f02d1205d2ff51ac04a6623b4259ae93a4c2b73bed2 +size 212924 diff --git a/static/images/cards/steward.jpg b/static/images/cards/steward.jpg new file mode 100644 index 0000000..84375ac --- /dev/null +++ b/static/images/cards/steward.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9e4b0b026c7ca8f71cac0788560bf7e18697f7d88bcf775b8293ce484f91183 +size 149518 diff --git a/static/images/cards/stonemason.jpg b/static/images/cards/stonemason.jpg new file mode 100644 index 0000000..ac4d1b6 --- /dev/null +++ b/static/images/cards/stonemason.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0a35fd60101732e8cd09a35f3ae5e95e088be0a60426246e3ed8cf16cc6d2d5 +size 178996 diff --git a/static/images/cards/storeroom.jpg b/static/images/cards/storeroom.jpg new file mode 100644 index 0000000..1206264 --- /dev/null +++ b/static/images/cards/storeroom.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d18c81e164b6151bff42e4720da7c3ad4176d02377cdddae578e70823b987ed8 +size 183579 diff --git a/static/images/cards/storyteller.jpg b/static/images/cards/storyteller.jpg new file mode 100644 index 0000000..a24a97e --- /dev/null +++ b/static/images/cards/storyteller.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd550dfc5e982ab0183e87f1323d4435d8b7ade4eb856f783b11b95840e47fd2 +size 203454 diff --git a/static/images/cards/summon.jpg b/static/images/cards/summon.jpg new file mode 100644 index 0000000..81d1638 --- /dev/null +++ b/static/images/cards/summon.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87f540ccdbc4017bf76a26b136b9f13eda0d673a1f13e1077d8b6d9b99b85824 +size 279523 diff --git a/static/images/cards/survivors.jpg b/static/images/cards/survivors.jpg new file mode 100644 index 0000000..883bb28 --- /dev/null +++ b/static/images/cards/survivors.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59cb60c047e32f7ae8afca1b99e7729a11b06e16997b966bd89a7a9210ecaed2 +size 166226 diff --git a/static/images/cards/swamp-hag.jpg b/static/images/cards/swamp-hag.jpg new file mode 100644 index 0000000..9920c23 --- /dev/null +++ b/static/images/cards/swamp-hag.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4916c64bac025c2ea1615af1fce0f5502cd3b515c5cbe14f6505d8c87b43b25 +size 177297 diff --git a/static/images/cards/swashbuckler.jpg b/static/images/cards/swashbuckler.jpg new file mode 100644 index 0000000..9a4afc9 --- /dev/null +++ b/static/images/cards/swashbuckler.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2330552bd4f7d1f5b027626b28538579712f345b8a3b8b9af231c5dfb4bcb35 +size 165940 diff --git a/static/images/cards/swindler.jpg b/static/images/cards/swindler.jpg new file mode 100644 index 0000000..4192b35 --- /dev/null +++ b/static/images/cards/swindler.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0a4c594adeb10295ec2fbcfc867c5e10fc59f5ccf7e9e7dcbf063d20a943690 +size 172292 diff --git a/static/images/cards/tactician.jpg b/static/images/cards/tactician.jpg new file mode 100644 index 0000000..8c9d8a8 --- /dev/null +++ b/static/images/cards/tactician.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:741bf7add48e315e27645a9f7007c53c885d4b3f6f1c29d5fdc5db3188c2972f +size 159612 diff --git a/static/images/cards/talisman.jpg b/static/images/cards/talisman.jpg new file mode 100644 index 0000000..0a36b39 --- /dev/null +++ b/static/images/cards/talisman.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8d96e40ebfe95106e7c0889fbb8748a8f04749a5d4f8ca1d7748fa1e0801c12 +size 220880 diff --git a/static/images/cards/tax.jpg b/static/images/cards/tax.jpg new file mode 100644 index 0000000..baae1cc --- /dev/null +++ b/static/images/cards/tax.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:385eaecbd386b838558c3e325119d04b14dc7fb84f73cec0ca35ad448e91ed04 +size 247705 diff --git a/static/images/cards/taxman.jpg b/static/images/cards/taxman.jpg new file mode 100644 index 0000000..f63f315 --- /dev/null +++ b/static/images/cards/taxman.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84d9b3857589d2e1da3407d8ae7d001597640b31df3114d6a7e2bc8847127130 +size 178566 diff --git a/static/images/cards/teacher.jpg b/static/images/cards/teacher.jpg new file mode 100644 index 0000000..20ec409 --- /dev/null +++ b/static/images/cards/teacher.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f048f5a7d4b567f7a3ea2c41639f81d99e526f527145f6c6d4a8f8ff46a52dd0 +size 211458 diff --git a/static/images/cards/temple.jpg b/static/images/cards/temple.jpg new file mode 100644 index 0000000..e848e3e --- /dev/null +++ b/static/images/cards/temple.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c4a40cc9447acd1591f8612c9660270561fabf19f831a97296a0fc13768ca44 +size 167210 diff --git a/static/images/cards/the-earths-gift.jpg b/static/images/cards/the-earths-gift.jpg new file mode 100644 index 0000000..7d3cb6c --- /dev/null +++ b/static/images/cards/the-earths-gift.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e17b547fb31212ae80ffc9658334af036764712777c20a4b50f6725d20199dc7 +size 273903 diff --git a/static/images/cards/the-fields-gift.jpg b/static/images/cards/the-fields-gift.jpg new file mode 100644 index 0000000..c7120cd --- /dev/null +++ b/static/images/cards/the-fields-gift.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:600d34cc19a779c469f38d7f621324765b263c36115d5e930fb4ca274fd72ff0 +size 256215 diff --git a/static/images/cards/the-flames-gift.jpg b/static/images/cards/the-flames-gift.jpg new file mode 100644 index 0000000..3132f20 --- /dev/null +++ b/static/images/cards/the-flames-gift.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08892c7ffe7e2b3f333f8480eca53809748bfe45bdc1873e96a099d99944ee41 +size 286754 diff --git a/static/images/cards/the-forrests-gift.jpg b/static/images/cards/the-forrests-gift.jpg new file mode 100644 index 0000000..d46032d --- /dev/null +++ b/static/images/cards/the-forrests-gift.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6853973a2c982b75e4ceb0c60c643269e7aaef98be4757d9811794ce857c8f2 +size 259410 diff --git a/static/images/cards/the-moons-gift.jpg b/static/images/cards/the-moons-gift.jpg new file mode 100644 index 0000000..45e7f48 --- /dev/null +++ b/static/images/cards/the-moons-gift.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8eaa8a8099577160707ece704b14b099f622be4d8d64d0d6b97c2e910ac367de +size 215595 diff --git a/static/images/cards/the-mountains-gift.jpg b/static/images/cards/the-mountains-gift.jpg new file mode 100644 index 0000000..1f5f2a3 --- /dev/null +++ b/static/images/cards/the-mountains-gift.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2eee62c539eba832d7faef2b13cea15d0e612874e8fed6910d9458e61cd513a4 +size 220704 diff --git a/static/images/cards/the-rivers-gift.jpg b/static/images/cards/the-rivers-gift.jpg new file mode 100644 index 0000000..1a152bc --- /dev/null +++ b/static/images/cards/the-rivers-gift.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6daa2fc76db8585707bf40da5c18db4783db303554e6069d1169410ee45ddcd4 +size 280542 diff --git a/static/images/cards/the-seas-gift.jpg b/static/images/cards/the-seas-gift.jpg new file mode 100644 index 0000000..328425b --- /dev/null +++ b/static/images/cards/the-seas-gift.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a51c097d6fc1f4b58ed7188cd8584f23f84119d16dc12f97f97ca27601f6e5a +size 237117 diff --git a/static/images/cards/the-skys-gift.jpg b/static/images/cards/the-skys-gift.jpg new file mode 100644 index 0000000..2c48782 --- /dev/null +++ b/static/images/cards/the-skys-gift.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1ebeb161dae3290e21797738be887ee63b87f665a4767d59a272fff12348bac +size 211646 diff --git a/static/images/cards/the-suns-gift.jpg b/static/images/cards/the-suns-gift.jpg new file mode 100644 index 0000000..04e0168 --- /dev/null +++ b/static/images/cards/the-suns-gift.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:383691297bc86491165d1639f70c486b048c109beadf95ab3e4daa280423291d +size 223438 diff --git a/static/images/cards/the-swamps-gift.jpg b/static/images/cards/the-swamps-gift.jpg new file mode 100644 index 0000000..6161a1b --- /dev/null +++ b/static/images/cards/the-swamps-gift.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebb5c55c793767a9594d83006dae92c5e434aec1a90e1e1a1a0fd0491cc7d058 +size 227241 diff --git a/static/images/cards/the-winds-gift.jpg b/static/images/cards/the-winds-gift.jpg new file mode 100644 index 0000000..59cea8f --- /dev/null +++ b/static/images/cards/the-winds-gift.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e71b2529d316c9b04c8a41862a6d17cc9982d984c932118a40da6721e5e15a1d +size 243686 diff --git a/static/images/cards/thief.jpg b/static/images/cards/thief.jpg new file mode 100644 index 0000000..0fe3fb9 --- /dev/null +++ b/static/images/cards/thief.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6002815a20fd23fd399304aac8b5dba7d76fc7568b4b921cabf4aa87e975648 +size 128638 diff --git a/static/images/cards/throne-room.jpg b/static/images/cards/throne-room.jpg new file mode 100644 index 0000000..0790371 --- /dev/null +++ b/static/images/cards/throne-room.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d89de5e8032378ee8b01e494fda63436f5c572a5c35b349a69aad69ecb3a75b3 +size 196628 diff --git a/static/images/cards/tomb.jpg b/static/images/cards/tomb.jpg new file mode 100644 index 0000000..ccc8207 --- /dev/null +++ b/static/images/cards/tomb.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b42d76ab707c818627b3160013cbf88a158f015d91a174b6e4c1f353d34f622e +size 217268 diff --git a/static/images/cards/tormentor.jpg b/static/images/cards/tormentor.jpg new file mode 100644 index 0000000..d807d52 --- /dev/null +++ b/static/images/cards/tormentor.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ed688f6ffcaa6adc2bd1d990118da10ec1dc7fb1b546c489834dba928d09258 +size 197181 diff --git a/static/images/cards/torturer.jpg b/static/images/cards/torturer.jpg new file mode 100644 index 0000000..f604a7d --- /dev/null +++ b/static/images/cards/torturer.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9846281892200ee04ef2519aec31fa795ebffb383a4407b99423f16ef6e6da83 +size 207512 diff --git a/static/images/cards/tournament.jpg b/static/images/cards/tournament.jpg new file mode 100644 index 0000000..67d896b --- /dev/null +++ b/static/images/cards/tournament.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:384c5902e5dcb73641cec0485389ce8c74895e41e4fa1db652a0a0556c9e1dc0 +size 207085 diff --git a/static/images/cards/tower.jpg b/static/images/cards/tower.jpg new file mode 100644 index 0000000..8b79967 --- /dev/null +++ b/static/images/cards/tower.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9d1fa7c6ec5d9afbdf154ffd99fe32c7a743ae114a3c9fb64a247da7d9f5952 +size 265048 diff --git a/static/images/cards/tracker.jpg b/static/images/cards/tracker.jpg new file mode 100644 index 0000000..3d69ea6 --- /dev/null +++ b/static/images/cards/tracker.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32f1618f3e6173612b38164310fe9491e0b56fa2f95063f612547acc45eb10de +size 171962 diff --git a/static/images/cards/trade-route.jpg b/static/images/cards/trade-route.jpg new file mode 100644 index 0000000..8cbf3af --- /dev/null +++ b/static/images/cards/trade-route.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad3ce31d4bbb48df5bf57a6f63776d6d399434c0e1ccd8f36abf612276513007 +size 213379 diff --git a/static/images/cards/trade.jpg b/static/images/cards/trade.jpg new file mode 100644 index 0000000..3444f1d --- /dev/null +++ b/static/images/cards/trade.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f91db26ec45df105cb68966153207ed86747ef401e2d8aa23452d60cfbe1b40 +size 234147 diff --git a/static/images/cards/trader.jpg b/static/images/cards/trader.jpg new file mode 100644 index 0000000..be19ec3 --- /dev/null +++ b/static/images/cards/trader.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83e6bf54cb286dbb2bcd7b38a487b514bfaafdab3dfd6e97766753c59cfd1ef5 +size 215035 diff --git a/static/images/cards/trading-post.jpg b/static/images/cards/trading-post.jpg new file mode 100644 index 0000000..0fffa48 --- /dev/null +++ b/static/images/cards/trading-post.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef3104f2a7da47d4b25847951117338938b1c43e43ccc92ba39d6bdac3ff5a72 +size 169684 diff --git a/static/images/cards/tragic-hero.jpg b/static/images/cards/tragic-hero.jpg new file mode 100644 index 0000000..ad9f74f --- /dev/null +++ b/static/images/cards/tragic-hero.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:caf6828ccf7cac751a09f6d76c4c14c7822047a098b807bdffa2e22947447608 +size 185030 diff --git a/static/images/cards/training.jpg b/static/images/cards/training.jpg new file mode 100644 index 0000000..b589f99 --- /dev/null +++ b/static/images/cards/training.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8865923df2cc10738ecc0bf34a4dd3c7054a0cfd0c51283423e87a9d015e2e4 +size 220877 diff --git a/static/images/cards/transmogrify.jpg b/static/images/cards/transmogrify.jpg new file mode 100644 index 0000000..7b922b2 --- /dev/null +++ b/static/images/cards/transmogrify.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07cb245da99928c2466130791401c3979d998eec49a125696d78b4ec860350dc +size 186758 diff --git a/static/images/cards/transmute.jpg b/static/images/cards/transmute.jpg new file mode 100644 index 0000000..02ffc79 --- /dev/null +++ b/static/images/cards/transmute.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2880a043c81ea151f95f7bf0bba0bc1923a46f11ef77771c320e92e7f656a12 +size 185970 diff --git a/static/images/cards/travelling-fair.jpg b/static/images/cards/travelling-fair.jpg new file mode 100644 index 0000000..bae5303 --- /dev/null +++ b/static/images/cards/travelling-fair.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d58df63ab235fb5813248df90528dd741004564a56b457931bbe570605770318 +size 251879 diff --git a/static/images/cards/treasure-chest.jpg b/static/images/cards/treasure-chest.jpg new file mode 100644 index 0000000..90fb0a7 --- /dev/null +++ b/static/images/cards/treasure-chest.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38331e9a93f088601520435a162b856e67811c8630edcddafc5c0ac548843a9f +size 214249 diff --git a/static/images/cards/treasure-hunter.jpg b/static/images/cards/treasure-hunter.jpg new file mode 100644 index 0000000..c962cec --- /dev/null +++ b/static/images/cards/treasure-hunter.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:442fc414f90c53b4bb21438797365e094a7a713614d765ca7d227286cd757586 +size 184700 diff --git a/static/images/cards/treasure-map.jpg b/static/images/cards/treasure-map.jpg new file mode 100644 index 0000000..e46aec7 --- /dev/null +++ b/static/images/cards/treasure-map.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b92a14bf1356a711f50c9a7fd41ac65db0e0982cab06fb9c192e25c663b817b2 +size 186150 diff --git a/static/images/cards/treasure.jpg b/static/images/cards/treasure.jpg new file mode 100644 index 0000000..ea1140c --- /dev/null +++ b/static/images/cards/treasure.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7769284c5ffa10f729fdd7d3d7cd6c853a905a1c69eb3b7252fe4a05aa1967d9 +size 197488 diff --git a/static/images/cards/treasurer.jpg b/static/images/cards/treasurer.jpg new file mode 100644 index 0000000..dc70941 --- /dev/null +++ b/static/images/cards/treasurer.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36f566584cb8a45b26536123c2c1d8556850005209f08f2ae25e2a5bfd5eb1a7 +size 171837 diff --git a/static/images/cards/treasury.jpg b/static/images/cards/treasury.jpg new file mode 100644 index 0000000..e792d67 --- /dev/null +++ b/static/images/cards/treasury.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:709402692f71b7d94e903bc4beb47c9804ae3f127909af8d8ee923f34f76f16b +size 210677 diff --git a/static/images/cards/tribute.jpg b/static/images/cards/tribute.jpg new file mode 100644 index 0000000..30d9aec --- /dev/null +++ b/static/images/cards/tribute.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:434ddb670c4e24a9b2c3aee2b0ceca57bb69ecdcb9183b73e3e96155d65757b9 +size 122539 diff --git a/static/images/cards/triumph.jpg b/static/images/cards/triumph.jpg new file mode 100644 index 0000000..64bbf3b --- /dev/null +++ b/static/images/cards/triumph.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3464487c86adc4403e6f0ba54913089bd840ff6e6e0a619d3899087ea9fd6e67 +size 299103 diff --git a/static/images/cards/triumphal-arch.jpg b/static/images/cards/triumphal-arch.jpg new file mode 100644 index 0000000..60f56d8 --- /dev/null +++ b/static/images/cards/triumphal-arch.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dff48b3bad61c116e50f3614560e77163f9c52e06967f4c97d33e9ecac8c3fa5 +size 280588 diff --git a/static/images/cards/trusty-steed.jpg b/static/images/cards/trusty-steed.jpg new file mode 100644 index 0000000..a46f846 --- /dev/null +++ b/static/images/cards/trusty-steed.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5aafb48222aa69cb9e504ef6360931cce6efb72f5116c62604178923d99cb9c4 +size 172730 diff --git a/static/images/cards/tunnel.jpg b/static/images/cards/tunnel.jpg new file mode 100644 index 0000000..13338f7 --- /dev/null +++ b/static/images/cards/tunnel.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:464fc15a27ee9b37b1441483e7e1fc499fc38d1533bad23db4e4ae1bdaf270d7 +size 168697 diff --git a/static/images/cards/twice-miserable.jpg b/static/images/cards/twice-miserable.jpg new file mode 100644 index 0000000..ef25f33 --- /dev/null +++ b/static/images/cards/twice-miserable.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7520e59c6af23fce7500bfbc16fe4f5857102b10bbdf634333b9ce3dbc660f3a +size 153250 diff --git a/static/images/cards/university.jpg b/static/images/cards/university.jpg new file mode 100644 index 0000000..ad0c723 --- /dev/null +++ b/static/images/cards/university.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:863dabac68ca2ab543da84215329e2016321242d882ad57f0a5a54b5b1488ce2 +size 169928 diff --git a/static/images/cards/upgrade.jpg b/static/images/cards/upgrade.jpg new file mode 100644 index 0000000..87c5c5a --- /dev/null +++ b/static/images/cards/upgrade.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:309d09b84ed90fe49314536854e1411b3d12fb1cb6a6035be2aeaa5c6180f439 +size 161496 diff --git a/static/images/cards/urchin.jpg b/static/images/cards/urchin.jpg new file mode 100644 index 0000000..0907e34 --- /dev/null +++ b/static/images/cards/urchin.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efdfed0b3daa9417c0f48761da6b88b518977abce7e0c3457fe8b1ffa2a5ab86 +size 188877 diff --git a/static/images/cards/vagrant.jpg b/static/images/cards/vagrant.jpg new file mode 100644 index 0000000..1389122 --- /dev/null +++ b/static/images/cards/vagrant.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b2980dbf8adba2e233055af397a798cb461e41a4c9a43284ff2bb56c2d2bea0 +size 179059 diff --git a/static/images/cards/vampire.jpg b/static/images/cards/vampire.jpg new file mode 100644 index 0000000..8547e5e --- /dev/null +++ b/static/images/cards/vampire.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e173a5d4fa671416f4df9ab74f209a1b8f4e427dedbf51b41a94963bcc1d9ac2 +size 159741 diff --git a/static/images/cards/vassal.jpg b/static/images/cards/vassal.jpg new file mode 100644 index 0000000..afbe1ff --- /dev/null +++ b/static/images/cards/vassal.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35f42f83f1015a765bfba2cbfd05ebb78b434034e318ffe16da8462262b4e02e +size 165689 diff --git a/static/images/cards/vault.jpg b/static/images/cards/vault.jpg new file mode 100644 index 0000000..6de6dd8 --- /dev/null +++ b/static/images/cards/vault.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cfc865a607317aa9edc07de87faefb7714cad222e89c4980fecf2a5610f6b66 +size 187262 diff --git a/static/images/cards/venture.jpg b/static/images/cards/venture.jpg new file mode 100644 index 0000000..c8f892a --- /dev/null +++ b/static/images/cards/venture.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97b158f6f73cf30dd63a696034dd98d3944609e352e10dbff143584c619f8ac5 +size 194412 diff --git a/static/images/cards/villa.jpg b/static/images/cards/villa.jpg new file mode 100644 index 0000000..efdd2cd --- /dev/null +++ b/static/images/cards/villa.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e98e8aff6c5ff7854629f2ef83a73f97c197315768995de6bfbb1e513f77af8 +size 186913 diff --git a/static/images/cards/village.jpg b/static/images/cards/village.jpg new file mode 100644 index 0000000..f750553 --- /dev/null +++ b/static/images/cards/village.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:830c0d16d5d3127f572a1bfcbb41aaf1aa7608099444e56c9e33c254296d3225 +size 159657 diff --git a/static/images/cards/villain.jpg b/static/images/cards/villain.jpg new file mode 100644 index 0000000..75c769d --- /dev/null +++ b/static/images/cards/villain.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:610ed1e48ca3deddde6e0f66148f6d55cfa00ca2bfce8a3d99c4de0f237165a9 +size 154049 diff --git a/static/images/cards/vineyard.jpg b/static/images/cards/vineyard.jpg new file mode 100644 index 0000000..b0f1276 --- /dev/null +++ b/static/images/cards/vineyard.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6c713125a1f98314fdc8e6ec6c448026bc6d15573eb47ecfec388ef067f145b +size 182484 diff --git a/static/images/cards/wall.jpg b/static/images/cards/wall.jpg new file mode 100644 index 0000000..5fced14 --- /dev/null +++ b/static/images/cards/wall.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ba0e15c6b2a2a0261a5f5da7f4135927a0baf77312f58b55084ca8aafc0bcad +size 261456 diff --git a/static/images/cards/walled-village.jpg b/static/images/cards/walled-village.jpg new file mode 100644 index 0000000..ba771c7 --- /dev/null +++ b/static/images/cards/walled-village.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43cbf8e62ad2477ba2b36134e63810853b1a65bc876df5fc48f54724ae83a0da +size 205908 diff --git a/static/images/cards/wandering-minstrel.jpg b/static/images/cards/wandering-minstrel.jpg new file mode 100644 index 0000000..2d1d3fa --- /dev/null +++ b/static/images/cards/wandering-minstrel.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37bbfd016ac0575e9fa1a6447beca1362db6f5dbc6777da920c90f645f6333b7 +size 214175 diff --git a/static/images/cards/war.jpg b/static/images/cards/war.jpg new file mode 100644 index 0000000..77c7dbb --- /dev/null +++ b/static/images/cards/war.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95f2a224255c0b3619983ef4802ca675ccc1bf2b09a99b00bf52576898042046 +size 270803 diff --git a/static/images/cards/warehouse.jpg b/static/images/cards/warehouse.jpg new file mode 100644 index 0000000..e775804 --- /dev/null +++ b/static/images/cards/warehouse.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0787c11d512ccb04a6972696f74e81f0665f079c48cc0e8e739b30734164aa5a +size 164362 diff --git a/static/images/cards/warrior.jpg b/static/images/cards/warrior.jpg new file mode 100644 index 0000000..cf189a6 --- /dev/null +++ b/static/images/cards/warrior.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0378dbbe56434c6eb5a9a802c35441f73a1638e56febf05dbe6aa7f7f03d4647 +size 202542 diff --git a/static/images/cards/watchtower.jpg b/static/images/cards/watchtower.jpg new file mode 100644 index 0000000..3fcef55 --- /dev/null +++ b/static/images/cards/watchtower.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7062f1339182ebb0bd9feb5c4065f5717ca6bafbe0bfa93abb904f9c240cbe68 +size 199538 diff --git a/static/images/cards/wedding.jpg b/static/images/cards/wedding.jpg new file mode 100644 index 0000000..be5c4af --- /dev/null +++ b/static/images/cards/wedding.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:add7b02c799e1504848d78b900c45c7d4aa2f09d7f2ec4672b00533ec13e14fd +size 230964 diff --git a/static/images/cards/werewolf.jpg b/static/images/cards/werewolf.jpg new file mode 100644 index 0000000..120d282 --- /dev/null +++ b/static/images/cards/werewolf.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9a56d374a204239fac765ac6be3e5415ee2d245e32d0fe6bc4f302bc59d58a8 +size 141815 diff --git a/static/images/cards/wharf.jpg b/static/images/cards/wharf.jpg new file mode 100644 index 0000000..14c9acf --- /dev/null +++ b/static/images/cards/wharf.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87ca3f2ea062ac315d90e92b8607a5c0d89581c591f8e8b4743f2d2e32e32687 +size 167338 diff --git a/static/images/cards/wild-hunt.jpg b/static/images/cards/wild-hunt.jpg new file mode 100644 index 0000000..25082c2 --- /dev/null +++ b/static/images/cards/wild-hunt.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b2d8abbb31419fda56e2b97c6e4df4ba58332072c1810ab4fd66f5ec14c9e9f +size 194047 diff --git a/static/images/cards/will-o-wisp.jpg b/static/images/cards/will-o-wisp.jpg new file mode 100644 index 0000000..5eae195 --- /dev/null +++ b/static/images/cards/will-o-wisp.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb11f36ca675feba103abf928777581813899611c70aa175022b37afbadec9a2 +size 165676 diff --git a/static/images/cards/windfall.jpg b/static/images/cards/windfall.jpg new file mode 100644 index 0000000..0be4dc0 --- /dev/null +++ b/static/images/cards/windfall.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:105ff4e53e942c68e9053f4f8df4010b3696af37cffd24e5cea0e9d78272af01 +size 248809 diff --git a/static/images/cards/wine-merchant.jpg b/static/images/cards/wine-merchant.jpg new file mode 100644 index 0000000..3a57af7 --- /dev/null +++ b/static/images/cards/wine-merchant.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e74664f652fc62315f24a1144db32f75dd96e6cbddff76b593f1d05fefae5a47 +size 190783 diff --git a/static/images/cards/wish.jpg b/static/images/cards/wish.jpg new file mode 100644 index 0000000..4a4f498 --- /dev/null +++ b/static/images/cards/wish.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff233df672eedccf2074e2a455aad806924952a442eea0ec9b6e20ebf6d49aaa +size 169041 diff --git a/static/images/cards/wishing-well.jpg b/static/images/cards/wishing-well.jpg new file mode 100644 index 0000000..a205a3c --- /dev/null +++ b/static/images/cards/wishing-well.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4353fe0e8fef1a768306f5c13498a974e34b717a208227fd47c3dc6a4103d6de +size 177735 diff --git a/static/images/cards/witch.jpg b/static/images/cards/witch.jpg new file mode 100644 index 0000000..9991120 --- /dev/null +++ b/static/images/cards/witch.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90b016864d6435c3e78d67878e9839c7741ebe817e770d4b0fb1036aa61ce792 +size 154191 diff --git a/static/images/cards/wolf-den.jpg b/static/images/cards/wolf-den.jpg new file mode 100644 index 0000000..5140fb4 --- /dev/null +++ b/static/images/cards/wolf-den.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b1d0f89288a700aa0a956baaea318ac0a3224ae20912376eef200b2d679ebb2 +size 243640 diff --git a/static/images/cards/woodcutter.jpg b/static/images/cards/woodcutter.jpg new file mode 100644 index 0000000..aa7166b --- /dev/null +++ b/static/images/cards/woodcutter.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf991b9730d4c1a07a8b93a7263d4d5fef29758a06387ebb3309c44db761ba7d +size 108355 diff --git a/static/images/cards/workers-village.jpg b/static/images/cards/workers-village.jpg new file mode 100644 index 0000000..22af60a --- /dev/null +++ b/static/images/cards/workers-village.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3bc3a4dde6566aa3ead145463d69e7f417ae64b737584e39fd972934fb8a71d9 +size 172012 diff --git a/static/images/cards/workshop.jpg b/static/images/cards/workshop.jpg new file mode 100644 index 0000000..c7ad48a --- /dev/null +++ b/static/images/cards/workshop.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c5e6383f31a99fe99adb03559d1dc280138b8639c2217f74ecfec99188390bc +size 167187 diff --git a/static/images/cards/young-witch.jpg b/static/images/cards/young-witch.jpg new file mode 100644 index 0000000..5db7f65 --- /dev/null +++ b/static/images/cards/young-witch.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3429691ded748031384d752dcf967dae31f2f2e5ce0b9a3cd3b9a312b5cb43d +size 182729 diff --git a/static/images/cards/zombie-apprentice.jpg b/static/images/cards/zombie-apprentice.jpg new file mode 100644 index 0000000..a46ab10 --- /dev/null +++ b/static/images/cards/zombie-apprentice.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a41c39af1d622973b810cb540a1d1a48555f53e05ea727f6ca3473198e637314 +size 159214 diff --git a/static/images/cards/zombie-mason.jpg b/static/images/cards/zombie-mason.jpg new file mode 100644 index 0000000..0f547f2 --- /dev/null +++ b/static/images/cards/zombie-mason.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1de4b6e4009bbf8a83a9593f8691eb24108025d80d240429bd51a8f854167bd +size 172939 diff --git a/static/images/cards/zombie-spy.jpg b/static/images/cards/zombie-spy.jpg new file mode 100644 index 0000000..6c839f8 --- /dev/null +++ b/static/images/cards/zombie-spy.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f83a03fddac899428eec2351ebdb93a216334e5217cc07a3720ec855d917f08 +size 170185 diff --git a/static/index.html b/static/index.html new file mode 100644 index 0000000..5d051dd --- /dev/null +++ b/static/index.html @@ -0,0 +1,20 @@ + + + + + + DnD + + + +

+

+
+ Your name:
+ +
+
+

+ + + diff --git a/static/main.css b/static/main.css new file mode 100644 index 0000000..abbdb36 --- /dev/null +++ b/static/main.css @@ -0,0 +1,24 @@ +body { + margin: 0; + padding: 0; + background-color: gainsboro; +} + +#chat { + height: 200px; + list-style: none; + overflow-y: scroll; + padding: 0; + margin: 0; +} + +#chat_input, +#chat_input:focus { + padding: 2px; + /* border-top: 1px solid black; */ + margin: 0; + width: 100%; + border: 0; + box-sizing: border-box; + outline: none; +} diff --git a/static/mithril.js b/static/mithril.js new file mode 100644 index 0000000..377e0a5 --- /dev/null +++ b/static/mithril.js @@ -0,0 +1,1842 @@ +;(function() { +"use strict" +function Vnode(tag, key, attrs0, children0, text, dom) { + return {tag: tag, key: key, attrs: attrs0, children: children0, text: text, dom: dom, domSize: undefined, state: undefined, events: undefined, instance: undefined} +} +Vnode.normalize = function(node) { + if (Array.isArray(node)) return Vnode("[", undefined, undefined, Vnode.normalizeChildren(node), undefined, undefined) + if (node == null || typeof node === "boolean") return null + if (typeof node === "object") return node + return Vnode("#", undefined, undefined, String(node), undefined, undefined) +} +Vnode.normalizeChildren = function(input) { + var children0 = [] + if (input.length) { + var isKeyed = input[0] != null && input[0].key != null + // Note: this is a *very* perf-sensitive check. + // Fun fact: merging the loop like this is somehow faster than splitting + // it, noticeably so. + for (var i = 1; i < input.length; i++) { + if ((input[i] != null && input[i].key != null) !== isKeyed) { + throw new TypeError("Vnodes must either always have keys or never have keys!") + } + } + for (var i = 0; i < input.length; i++) { + children0[i] = Vnode.normalize(input[i]) + } + } + return children0 +} +// Call via `hyperscriptVnode0.apply(startOffset, arguments)` +// +// The reason I do it this way, forwarding the arguments and passing the start +// offset in `this`, is so I don't have to create a temporary array in a +// performance-critical path. +// +// In native ES6, I'd instead add a final `...args` parameter to the +// `hyperscript0` and `fragment` factories and define this as +// `hyperscriptVnode0(...args)`, since modern engines do optimize that away. But +// ES5 (what Mithril requires thanks to IE support) doesn't give me that luxury, +// and engines aren't nearly intelligent enough to do either of these: +// +// 1. Elide the allocation for `[].slice.call(arguments, 1)` when it's passed to +// another function only to be indexed. +// 2. Elide an `arguments` allocation when it's passed to any function other +// than `Function.prototype.apply` or `Reflect.apply`. +// +// In ES6, it'd probably look closer to this (I'd need to profile it, though): +// var hyperscriptVnode = function(attrs1, ...children1) { +// if (attrs1 == null || typeof attrs1 === "object" && attrs1.tag == null && !Array.isArray(attrs1)) { +// if (children1.length === 1 && Array.isArray(children1[0])) children1 = children1[0] +// } else { +// children1 = children1.length === 0 && Array.isArray(attrs1) ? attrs1 : [attrs1, ...children1] +// attrs1 = undefined +// } +// +// if (attrs1 == null) attrs1 = {} +// return Vnode("", attrs1.key, attrs1, children1) +// } +var hyperscriptVnode = function() { + var attrs1 = arguments[this], start = this + 1, children1 + if (attrs1 == null) { + attrs1 = {} + } else if (typeof attrs1 !== "object" || attrs1.tag != null || Array.isArray(attrs1)) { + attrs1 = {} + start = this + } + if (arguments.length === start + 1) { + children1 = arguments[start] + if (!Array.isArray(children1)) children1 = [children1] + } else { + children1 = [] + while (start < arguments.length) children1.push(arguments[start++]) + } + return Vnode("", attrs1.key, attrs1, children1) +} +var selectorParser = /(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g +var selectorCache = {} +var hasOwn = {}.hasOwnProperty +function isEmpty(object) { + for (var key in object) if (hasOwn.call(object, key)) return false + return true +} +function compileSelector(selector) { + var match, tag = "div", classes = [], attrs = {} + while (match = selectorParser.exec(selector)) { + var type = match[1], value = match[2] + if (type === "" && value !== "") tag = value + else if (type === "#") attrs.id = value + else if (type === ".") classes.push(value) + else if (match[3][0] === "[") { + var attrValue = match[6] + if (attrValue) attrValue = attrValue.replace(/\\(["'])/g, "$1").replace(/\\\\/g, "\\") + if (match[4] === "class") classes.push(attrValue) + else attrs[match[4]] = attrValue === "" ? attrValue : attrValue || true + } + } + if (classes.length > 0) attrs.className = classes.join(" ") + return selectorCache[selector] = {tag: tag, attrs: attrs} +} +function execSelector(state, vnode) { + var attrs = vnode.attrs + var children = Vnode.normalizeChildren(vnode.children) + var hasClass = hasOwn.call(attrs, "class") + var className = hasClass ? attrs.class : attrs.className + vnode.tag = state.tag + vnode.attrs = null + vnode.children = undefined + if (!isEmpty(state.attrs) && !isEmpty(attrs)) { + var newAttrs = {} + for (var key in attrs) { + if (hasOwn.call(attrs, key)) newAttrs[key] = attrs[key] + } + attrs = newAttrs + } + for (var key in state.attrs) { + if (hasOwn.call(state.attrs, key) && key !== "className" && !hasOwn.call(attrs, key)){ + attrs[key] = state.attrs[key] + } + } + if (className != null || state.attrs.className != null) attrs.className = + className != null + ? state.attrs.className != null + ? String(state.attrs.className) + " " + String(className) + : className + : state.attrs.className != null + ? state.attrs.className + : null + if (hasClass) attrs.class = null + for (var key in attrs) { + if (hasOwn.call(attrs, key) && key !== "key") { + vnode.attrs = attrs + break + } + } + if (Array.isArray(children) && children.length === 1 && children[0] != null && children[0].tag === "#") { + vnode.text = children[0].children + } else { + vnode.children = children + } + return vnode +} +function hyperscript(selector) { + if (selector == null || typeof selector !== "string" && typeof selector !== "function" && typeof selector.view !== "function") { + throw Error("The selector must be either a string or a component."); + } + var vnode = hyperscriptVnode.apply(1, arguments) + if (typeof selector === "string") { + vnode.children = Vnode.normalizeChildren(vnode.children) + if (selector !== "[") return execSelector(selectorCache[selector] || compileSelector(selector), vnode) + } + vnode.tag = selector + return vnode +} +hyperscript.trust = function(html) { + if (html == null) html = "" + return Vnode("<", undefined, undefined, html, undefined, undefined) +} +hyperscript.fragment = function() { + var vnode2 = hyperscriptVnode.apply(0, arguments) + vnode2.tag = "[" + vnode2.children = Vnode.normalizeChildren(vnode2.children) + return vnode2 +} +/** @constructor */ +var PromisePolyfill = function(executor) { + if (!(this instanceof PromisePolyfill)) throw new Error("Promise must be called with `new`") + if (typeof executor !== "function") throw new TypeError("executor must be a function") + var self = this, resolvers = [], rejectors = [], resolveCurrent = handler(resolvers, true), rejectCurrent = handler(rejectors, false) + var instance = self._instance = {resolvers: resolvers, rejectors: rejectors} + var callAsync = typeof setImmediate === "function" ? setImmediate : setTimeout + function handler(list, shouldAbsorb) { + return function execute(value) { + var then + try { + if (shouldAbsorb && value != null && (typeof value === "object" || typeof value === "function") && typeof (then = value.then) === "function") { + if (value === self) throw new TypeError("Promise can't be resolved w/ itself") + executeOnce(then.bind(value)) + } + else { + callAsync(function() { + if (!shouldAbsorb && list.length === 0) console.error("Possible unhandled promise rejection:", value) + for (var i = 0; i < list.length; i++) list[i](value) + resolvers.length = 0, rejectors.length = 0 + instance.state = shouldAbsorb + instance.retry = function() {execute(value)} + }) + } + } + catch (e) { + rejectCurrent(e) + } + } + } + function executeOnce(then) { + var runs = 0 + function run(fn) { + return function(value) { + if (runs++ > 0) return + fn(value) + } + } + var onerror = run(rejectCurrent) + try {then(run(resolveCurrent), onerror)} catch (e) {onerror(e)} + } + executeOnce(executor) +} +PromisePolyfill.prototype.then = function(onFulfilled, onRejection) { + var self = this, instance = self._instance + function handle(callback, list, next, state) { + list.push(function(value) { + if (typeof callback !== "function") next(value) + else try {resolveNext(callback(value))} catch (e) {if (rejectNext) rejectNext(e)} + }) + if (typeof instance.retry === "function" && state === instance.state) instance.retry() + } + var resolveNext, rejectNext + var promise = new PromisePolyfill(function(resolve, reject) {resolveNext = resolve, rejectNext = reject}) + handle(onFulfilled, instance.resolvers, resolveNext, true), handle(onRejection, instance.rejectors, rejectNext, false) + return promise +} +PromisePolyfill.prototype.catch = function(onRejection) { + return this.then(null, onRejection) +} +PromisePolyfill.prototype.finally = function(callback) { + return this.then( + function(value) { + return PromisePolyfill.resolve(callback()).then(function() { + return value + }) + }, + function(reason) { + return PromisePolyfill.resolve(callback()).then(function() { + return PromisePolyfill.reject(reason); + }) + } + ) +} +PromisePolyfill.resolve = function(value) { + if (value instanceof PromisePolyfill) return value + return new PromisePolyfill(function(resolve) {resolve(value)}) +} +PromisePolyfill.reject = function(value) { + return new PromisePolyfill(function(resolve, reject) {reject(value)}) +} +PromisePolyfill.all = function(list) { + return new PromisePolyfill(function(resolve, reject) { + var total = list.length, count = 0, values = [] + if (list.length === 0) resolve([]) + else for (var i = 0; i < list.length; i++) { + (function(i) { + function consume(value) { + count++ + values[i] = value + if (count === total) resolve(values) + } + if (list[i] != null && (typeof list[i] === "object" || typeof list[i] === "function") && typeof list[i].then === "function") { + list[i].then(consume, reject) + } + else consume(list[i]) + })(i) + } + }) +} +PromisePolyfill.race = function(list) { + return new PromisePolyfill(function(resolve, reject) { + for (var i = 0; i < list.length; i++) { + list[i].then(resolve, reject) + } + }) +} +if (typeof window !== "undefined") { + if (typeof window.Promise === "undefined") { + window.Promise = PromisePolyfill + } else if (!window.Promise.prototype.finally) { + window.Promise.prototype.finally = PromisePolyfill.prototype.finally + } + var PromisePolyfill = window.Promise +} else if (typeof global !== "undefined") { + if (typeof global.Promise === "undefined") { + global.Promise = PromisePolyfill + } else if (!global.Promise.prototype.finally) { + global.Promise.prototype.finally = PromisePolyfill.prototype.finally + } + var PromisePolyfill = global.Promise +} else { +} +var _12 = function($window) { + var $doc = $window && $window.document + var currentRedraw + var nameSpace = { + svg: "http://www.w3.org/2000/svg", + math: "http://www.w3.org/1998/Math/MathML" + } + function getNameSpace(vnode3) { + return vnode3.attrs && vnode3.attrs.xmlns || nameSpace[vnode3.tag] + } + //sanity check to discourage people from doing `vnode3.state = ...` + function checkState(vnode3, original) { + if (vnode3.state !== original) throw new Error("`vnode.state` must not be modified") + } + //Note: the hook is passed as the `this` argument to allow proxying the + //arguments without requiring a full array allocation to do so. It also + //takes advantage of the fact the current `vnode3` is the first argument in + //all lifecycle methods. + function callHook(vnode3) { + var original = vnode3.state + try { + return this.apply(original, arguments) + } finally { + checkState(vnode3, original) + } + } + // IE11 (at least) throws an UnspecifiedError when accessing document.activeElement when + // inside an iframe. Catch and swallow this error, and heavy-handidly return null. + function activeElement() { + try { + return $doc.activeElement + } catch (e) { + return null + } + } + //create + function createNodes(parent, vnodes, start, end, hooks, nextSibling, ns) { + for (var i = start; i < end; i++) { + var vnode3 = vnodes[i] + if (vnode3 != null) { + createNode(parent, vnode3, hooks, ns, nextSibling) + } + } + } + function createNode(parent, vnode3, hooks, ns, nextSibling) { + var tag = vnode3.tag + if (typeof tag === "string") { + vnode3.state = {} + if (vnode3.attrs != null) initLifecycle(vnode3.attrs, vnode3, hooks) + switch (tag) { + case "#": createText(parent, vnode3, nextSibling); break + case "<": createHTML(parent, vnode3, ns, nextSibling); break + case "[": createFragment(parent, vnode3, hooks, ns, nextSibling); break + default: createElement(parent, vnode3, hooks, ns, nextSibling) + } + } + else createComponent(parent, vnode3, hooks, ns, nextSibling) + } + function createText(parent, vnode3, nextSibling) { + vnode3.dom = $doc.createTextNode(vnode3.children) + insertNode(parent, vnode3.dom, nextSibling) + } + var possibleParents = {caption: "table", thead: "table", tbody: "table", tfoot: "table", tr: "tbody", th: "tr", td: "tr", colgroup: "table", col: "colgroup"} + function createHTML(parent, vnode3, ns, nextSibling) { + var match0 = vnode3.children.match(/^\s*?<(\w+)/im) || [] + // not using the proper parent makes the child element(s) vanish. + // var div = document.createElement("div") + // div.innerHTML = "ij" + // console.log(div.innerHTML) + // --> "ij", no in sight. + var temp = $doc.createElement(possibleParents[match0[1]] || "div") + if (ns === "http://www.w3.org/2000/svg") { + temp.innerHTML = "" + vnode3.children + "" + temp = temp.firstChild + } else { + temp.innerHTML = vnode3.children + } + vnode3.dom = temp.firstChild + vnode3.domSize = temp.childNodes.length + // Capture nodes to remove, so we don't confuse them. + vnode3.instance = [] + var fragment = $doc.createDocumentFragment() + var child + while (child = temp.firstChild) { + vnode3.instance.push(child) + fragment.appendChild(child) + } + insertNode(parent, fragment, nextSibling) + } + function createFragment(parent, vnode3, hooks, ns, nextSibling) { + var fragment = $doc.createDocumentFragment() + if (vnode3.children != null) { + var children3 = vnode3.children + createNodes(fragment, children3, 0, children3.length, hooks, null, ns) + } + vnode3.dom = fragment.firstChild + vnode3.domSize = fragment.childNodes.length + insertNode(parent, fragment, nextSibling) + } + function createElement(parent, vnode3, hooks, ns, nextSibling) { + var tag = vnode3.tag + var attrs2 = vnode3.attrs + var is = attrs2 && attrs2.is + ns = getNameSpace(vnode3) || ns + var element = ns ? + is ? $doc.createElementNS(ns, tag, {is: is}) : $doc.createElementNS(ns, tag) : + is ? $doc.createElement(tag, {is: is}) : $doc.createElement(tag) + vnode3.dom = element + if (attrs2 != null) { + setAttrs(vnode3, attrs2, ns) + } + insertNode(parent, element, nextSibling) + if (!maybeSetContentEditable(vnode3)) { + if (vnode3.text != null) { + if (vnode3.text !== "") element.textContent = vnode3.text + else vnode3.children = [Vnode("#", undefined, undefined, vnode3.text, undefined, undefined)] + } + if (vnode3.children != null) { + var children3 = vnode3.children + createNodes(element, children3, 0, children3.length, hooks, null, ns) + if (vnode3.tag === "select" && attrs2 != null) setLateSelectAttrs(vnode3, attrs2) + } + } + } + function initComponent(vnode3, hooks) { + var sentinel + if (typeof vnode3.tag.view === "function") { + vnode3.state = Object.create(vnode3.tag) + sentinel = vnode3.state.view + if (sentinel.$$reentrantLock$$ != null) return + sentinel.$$reentrantLock$$ = true + } else { + vnode3.state = void 0 + sentinel = vnode3.tag + if (sentinel.$$reentrantLock$$ != null) return + sentinel.$$reentrantLock$$ = true + vnode3.state = (vnode3.tag.prototype != null && typeof vnode3.tag.prototype.view === "function") ? new vnode3.tag(vnode3) : vnode3.tag(vnode3) + } + initLifecycle(vnode3.state, vnode3, hooks) + if (vnode3.attrs != null) initLifecycle(vnode3.attrs, vnode3, hooks) + vnode3.instance = Vnode.normalize(callHook.call(vnode3.state.view, vnode3)) + if (vnode3.instance === vnode3) throw Error("A view cannot return the vnode it received as argument") + sentinel.$$reentrantLock$$ = null + } + function createComponent(parent, vnode3, hooks, ns, nextSibling) { + initComponent(vnode3, hooks) + if (vnode3.instance != null) { + createNode(parent, vnode3.instance, hooks, ns, nextSibling) + vnode3.dom = vnode3.instance.dom + vnode3.domSize = vnode3.dom != null ? vnode3.instance.domSize : 0 + } + else { + vnode3.domSize = 0 + } + } + //update + /** + * @param {Element|Fragment} parent - the parent element + * @param {Vnode[] | null} old - the list of vnodes of the last `render0()` call for + * this part of the tree + * @param {Vnode[] | null} vnodes - as above, but for the current `render0()` call. + * @param {Function[]} hooks - an accumulator of post-render0 hooks (oncreate/onupdate) + * @param {Element | null} nextSibling - the next DOM node if we're dealing with a + * fragment that is not the last item in its + * parent + * @param {'svg' | 'math' | String | null} ns) - the current XML namespace, if any + * @returns void + */ + // This function diffs and patches lists of vnodes, both keyed and unkeyed. + // + // We will: + // + // 1. describe its general structure + // 2. focus on the diff algorithm optimizations + // 3. discuss DOM node operations. + // ## Overview: + // + // The updateNodes() function: + // - deals with trivial cases + // - determines whether the lists are keyed or unkeyed based on the first non-null node + // of each list. + // - diffs them and patches the DOM if needed (that's the brunt of the code) + // - manages the leftovers: after diffing, are there: + // - old nodes left to remove? + // - new nodes to insert? + // deal with them! + // + // The lists are only iterated over once, with an exception for the nodes in `old` that + // are visited in the fourth part of the diff and in the `removeNodes` loop. + // ## Diffing + // + // Reading https://github.com/localvoid/ivi/blob/ddc09d06abaef45248e6133f7040d00d3c6be853/packages/ivi/src/vdom/implementation.ts#L617-L837 + // may be good for context on longest increasing subsequence-based logic for moving nodes. + // + // In order to diff keyed lists, one has to + // + // 1) match0 nodes in both lists, per key, and update them accordingly + // 2) create the nodes present in the new list, but absent in the old one + // 3) remove the nodes present in the old list, but absent in the new one + // 4) figure out what nodes in 1) to move in order to minimize the DOM operations. + // + // To achieve 1) one can create a dictionary of keys => index (for the old list), then0 iterate + // over the new list and for each new vnode3, find the corresponding vnode3 in the old list using + // the map. + // 2) is achieved in the same step: if a new node has no corresponding entry in the map, it is new + // and must be created. + // For the removals, we actually remove the nodes that have been updated from the old list. + // The nodes that remain in that list after 1) and 2) have been performed can be safely removed. + // The fourth step is a bit more complex and relies on the longest increasing subsequence (LIS) + // algorithm. + // + // the longest increasing subsequence is the list of nodes that can remain in place. Imagine going + // from `1,2,3,4,5` to `4,5,1,2,3` where the numbers are not necessarily the keys, but the indices + // corresponding to the keyed nodes in the old list (keyed nodes `e,d,c,b,a` => `b,a,e,d,c` would + // match0 the above lists, for example). + // + // In there are two increasing subsequences: `4,5` and `1,2,3`, the latter being the longest. We + // can update those nodes without moving them, and only call `insertNode` on `4` and `5`. + // + // @localvoid adapted the algo to also support node deletions and insertions (the `lis` is actually + // the longest increasing subsequence *of old nodes still present in the new list*). + // + // It is a general algorithm that is fireproof in all circumstances, but it requires the allocation + // and the construction of a `key => oldIndex` map, and three arrays (one with `newIndex => oldIndex`, + // the `LIS` and a temporary one to create the LIS). + // + // So we cheat where we can: if the tails of the lists are identical, they are guaranteed to be part of + // the LIS and can be updated without moving them. + // + // If two nodes are swapped, they are guaranteed not to be part of the LIS, and must be moved (with + // the exception of the last node if the list is fully reversed). + // + // ## Finding the next sibling. + // + // `updateNode()` and `createNode()` expect a nextSibling parameter to perform DOM operations. + // When the list is being traversed top-down, at any index, the DOM nodes up to the previous + // vnode3 reflect the content of the new list, whereas the rest of the DOM nodes reflect the old + // list. The next sibling must be looked for in the old list using `getNextSibling(... oldStart + 1 ...)`. + // + // In the other scenarios (swaps, upwards traversal, map-based diff), + // the new vnodes list is traversed upwards. The DOM nodes at the bottom of the list reflect the + // bottom part of the new vnodes list, and we can use the `v.dom` value of the previous node + // as the next sibling (cached in the `nextSibling` variable). + // ## DOM node moves + // + // In most scenarios `updateNode()` and `createNode()` perform the DOM operations. However, + // this is not the case if the node moved (second and fourth part of the diff algo). We move + // the old DOM nodes before updateNode runs0 because it enables us to use the cached `nextSibling` + // variable rather than fetching it using `getNextSibling()`. + // + // The fourth part of the diff currently inserts nodes unconditionally, leading to issues + // like #1791 and #1999. We need to be smarter about those situations where adjascent old + // nodes remain together in the new list in a way that isn't covered by parts one and + // three of the diff algo. + function updateNodes(parent, old, vnodes, hooks, nextSibling, ns) { + if (old === vnodes || old == null && vnodes == null) return + else if (old == null || old.length === 0) createNodes(parent, vnodes, 0, vnodes.length, hooks, nextSibling, ns) + else if (vnodes == null || vnodes.length === 0) removeNodes(parent, old, 0, old.length) + else { + var isOldKeyed = old[0] != null && old[0].key != null + var isKeyed0 = vnodes[0] != null && vnodes[0].key != null + var start = 0, oldStart = 0 + if (!isOldKeyed) while (oldStart < old.length && old[oldStart] == null) oldStart++ + if (!isKeyed0) while (start < vnodes.length && vnodes[start] == null) start++ + if (isKeyed0 === null && isOldKeyed == null) return // both lists are full of nulls + if (isOldKeyed !== isKeyed0) { + removeNodes(parent, old, oldStart, old.length) + createNodes(parent, vnodes, start, vnodes.length, hooks, nextSibling, ns) + } else if (!isKeyed0) { + // Don't index past the end of either list (causes deopts). + var commonLength = old.length < vnodes.length ? old.length : vnodes.length + // Rewind if necessary to the first non-null index on either side. + // We could alternatively either explicitly create or remove nodes when `start !== oldStart` + // but that would be optimizing for sparse lists which are more rare than dense ones. + start = start < oldStart ? start : oldStart + for (; start < commonLength; start++) { + o = old[start] + v = vnodes[start] + if (o === v || o == null && v == null) continue + else if (o == null) createNode(parent, v, hooks, ns, getNextSibling(old, start + 1, nextSibling)) + else if (v == null) removeNode(parent, o) + else updateNode(parent, o, v, hooks, getNextSibling(old, start + 1, nextSibling), ns) + } + if (old.length > commonLength) removeNodes(parent, old, start, old.length) + if (vnodes.length > commonLength) createNodes(parent, vnodes, start, vnodes.length, hooks, nextSibling, ns) + } else { + // keyed diff + var oldEnd = old.length - 1, end = vnodes.length - 1, map, o, v, oe, ve, topSibling + // bottom-up + while (oldEnd >= oldStart && end >= start) { + oe = old[oldEnd] + ve = vnodes[end] + if (oe.key !== ve.key) break + if (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns) + if (ve.dom != null) nextSibling = ve.dom + oldEnd--, end-- + } + // top-down + while (oldEnd >= oldStart && end >= start) { + o = old[oldStart] + v = vnodes[start] + if (o.key !== v.key) break + oldStart++, start++ + if (o !== v) updateNode(parent, o, v, hooks, getNextSibling(old, oldStart, nextSibling), ns) + } + // swaps and list reversals + while (oldEnd >= oldStart && end >= start) { + if (start === end) break + if (o.key !== ve.key || oe.key !== v.key) break + topSibling = getNextSibling(old, oldStart, nextSibling) + moveNodes(parent, oe, topSibling) + if (oe !== v) updateNode(parent, oe, v, hooks, topSibling, ns) + if (++start <= --end) moveNodes(parent, o, nextSibling) + if (o !== ve) updateNode(parent, o, ve, hooks, nextSibling, ns) + if (ve.dom != null) nextSibling = ve.dom + oldStart++; oldEnd-- + oe = old[oldEnd] + ve = vnodes[end] + o = old[oldStart] + v = vnodes[start] + } + // bottom up once again + while (oldEnd >= oldStart && end >= start) { + if (oe.key !== ve.key) break + if (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns) + if (ve.dom != null) nextSibling = ve.dom + oldEnd--, end-- + oe = old[oldEnd] + ve = vnodes[end] + } + if (start > end) removeNodes(parent, old, oldStart, oldEnd + 1) + else if (oldStart > oldEnd) createNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns) + else { + // inspired by ivi https://github.com/ivijs/ivi/ by Boris Kaul + var originalNextSibling = nextSibling, vnodesLength = end - start + 1, oldIndices = new Array(vnodesLength), li=0, i=0, pos = 2147483647, matched = 0, map, lisIndices + for (i = 0; i < vnodesLength; i++) oldIndices[i] = -1 + for (i = end; i >= start; i--) { + if (map == null) map = getKeyMap(old, oldStart, oldEnd + 1) + ve = vnodes[i] + var oldIndex = map[ve.key] + if (oldIndex != null) { + pos = (oldIndex < pos) ? oldIndex : -1 // becomes -1 if nodes were re-ordered + oldIndices[i-start] = oldIndex + oe = old[oldIndex] + old[oldIndex] = null + if (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns) + if (ve.dom != null) nextSibling = ve.dom + matched++ + } + } + nextSibling = originalNextSibling + if (matched !== oldEnd - oldStart + 1) removeNodes(parent, old, oldStart, oldEnd + 1) + if (matched === 0) createNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns) + else { + if (pos === -1) { + // the indices of the indices of the items that are part of the + // longest increasing subsequence in the oldIndices list + lisIndices = makeLisIndices(oldIndices) + li = lisIndices.length - 1 + for (i = end; i >= start; i--) { + v = vnodes[i] + if (oldIndices[i-start] === -1) createNode(parent, v, hooks, ns, nextSibling) + else { + if (lisIndices[li] === i - start) li-- + else moveNodes(parent, v, nextSibling) + } + if (v.dom != null) nextSibling = vnodes[i].dom + } + } else { + for (i = end; i >= start; i--) { + v = vnodes[i] + if (oldIndices[i-start] === -1) createNode(parent, v, hooks, ns, nextSibling) + if (v.dom != null) nextSibling = vnodes[i].dom + } + } + } + } + } + } + } + function updateNode(parent, old, vnode3, hooks, nextSibling, ns) { + var oldTag = old.tag, tag = vnode3.tag + if (oldTag === tag) { + vnode3.state = old.state + vnode3.events = old.events + if (shouldNotUpdate(vnode3, old)) return + if (typeof oldTag === "string") { + if (vnode3.attrs != null) { + updateLifecycle(vnode3.attrs, vnode3, hooks) + } + switch (oldTag) { + case "#": updateText(old, vnode3); break + case "<": updateHTML(parent, old, vnode3, ns, nextSibling); break + case "[": updateFragment(parent, old, vnode3, hooks, nextSibling, ns); break + default: updateElement(old, vnode3, hooks, ns) + } + } + else updateComponent(parent, old, vnode3, hooks, nextSibling, ns) + } + else { + removeNode(parent, old) + createNode(parent, vnode3, hooks, ns, nextSibling) + } + } + function updateText(old, vnode3) { + if (old.children.toString() !== vnode3.children.toString()) { + old.dom.nodeValue = vnode3.children + } + vnode3.dom = old.dom + } + function updateHTML(parent, old, vnode3, ns, nextSibling) { + if (old.children !== vnode3.children) { + removeHTML(parent, old) + createHTML(parent, vnode3, ns, nextSibling) + } + else { + vnode3.dom = old.dom + vnode3.domSize = old.domSize + vnode3.instance = old.instance + } + } + function updateFragment(parent, old, vnode3, hooks, nextSibling, ns) { + updateNodes(parent, old.children, vnode3.children, hooks, nextSibling, ns) + var domSize = 0, children3 = vnode3.children + vnode3.dom = null + if (children3 != null) { + for (var i = 0; i < children3.length; i++) { + var child = children3[i] + if (child != null && child.dom != null) { + if (vnode3.dom == null) vnode3.dom = child.dom + domSize += child.domSize || 1 + } + } + if (domSize !== 1) vnode3.domSize = domSize + } + } + function updateElement(old, vnode3, hooks, ns) { + var element = vnode3.dom = old.dom + ns = getNameSpace(vnode3) || ns + if (vnode3.tag === "textarea") { + if (vnode3.attrs == null) vnode3.attrs = {} + if (vnode3.text != null) { + vnode3.attrs.value = vnode3.text //FIXME handle0 multiple children3 + vnode3.text = undefined + } + } + updateAttrs(vnode3, old.attrs, vnode3.attrs, ns) + if (!maybeSetContentEditable(vnode3)) { + if (old.text != null && vnode3.text != null && vnode3.text !== "") { + if (old.text.toString() !== vnode3.text.toString()) old.dom.firstChild.nodeValue = vnode3.text + } + else { + if (old.text != null) old.children = [Vnode("#", undefined, undefined, old.text, undefined, old.dom.firstChild)] + if (vnode3.text != null) vnode3.children = [Vnode("#", undefined, undefined, vnode3.text, undefined, undefined)] + updateNodes(element, old.children, vnode3.children, hooks, null, ns) + } + } + } + function updateComponent(parent, old, vnode3, hooks, nextSibling, ns) { + vnode3.instance = Vnode.normalize(callHook.call(vnode3.state.view, vnode3)) + if (vnode3.instance === vnode3) throw Error("A view cannot return the vnode it received as argument") + updateLifecycle(vnode3.state, vnode3, hooks) + if (vnode3.attrs != null) updateLifecycle(vnode3.attrs, vnode3, hooks) + if (vnode3.instance != null) { + if (old.instance == null) createNode(parent, vnode3.instance, hooks, ns, nextSibling) + else updateNode(parent, old.instance, vnode3.instance, hooks, nextSibling, ns) + vnode3.dom = vnode3.instance.dom + vnode3.domSize = vnode3.instance.domSize + } + else if (old.instance != null) { + removeNode(parent, old.instance) + vnode3.dom = undefined + vnode3.domSize = 0 + } + else { + vnode3.dom = old.dom + vnode3.domSize = old.domSize + } + } + function getKeyMap(vnodes, start, end) { + var map = Object.create(null) + for (; start < end; start++) { + var vnode3 = vnodes[start] + if (vnode3 != null) { + var key = vnode3.key + if (key != null) map[key] = start + } + } + return map + } + // Lifted from ivi https://github.com/ivijs/ivi/ + // takes a list of unique numbers (-1 is special and can + // occur multiple times) and returns an array with the indices + // of the items that are part of the longest increasing + // subsequece + var lisTemp = [] + function makeLisIndices(a) { + var result = [0] + var u = 0, v = 0, i = 0 + var il = lisTemp.length = a.length + for (var i = 0; i < il; i++) lisTemp[i] = a[i] + for (var i = 0; i < il; ++i) { + if (a[i] === -1) continue + var j = result[result.length - 1] + if (a[j] < a[i]) { + lisTemp[i] = j + result.push(i) + continue + } + u = 0 + v = result.length - 1 + while (u < v) { + // Fast integer average without overflow. + // eslint-disable-next-line no-bitwise + var c = (u >>> 1) + (v >>> 1) + (u & v & 1) + if (a[result[c]] < a[i]) { + u = c + 1 + } + else { + v = c + } + } + if (a[i] < a[result[u]]) { + if (u > 0) lisTemp[i] = result[u - 1] + result[u] = i + } + } + u = result.length + v = result[u - 1] + while (u-- > 0) { + result[u] = v + v = lisTemp[v] + } + lisTemp.length = 0 + return result + } + function getNextSibling(vnodes, i, nextSibling) { + for (; i < vnodes.length; i++) { + if (vnodes[i] != null && vnodes[i].dom != null) return vnodes[i].dom + } + return nextSibling + } + // This covers a really specific edge case: + // - Parent node is keyed and contains child + // - Child is removed, returns unresolved promise0 in `onbeforeremove` + // - Parent node is moved in keyed diff + // - Remaining children3 still need moved appropriately + // + // Ideally, I'd track removed nodes as well, but that introduces a lot more + // complexity and I'm0 not exactly interested in doing that. + function moveNodes(parent, vnode3, nextSibling) { + var frag = $doc.createDocumentFragment() + moveChildToFrag(parent, frag, vnode3) + insertNode(parent, frag, nextSibling) + } + function moveChildToFrag(parent, frag, vnode3) { + // Dodge the recursion overhead in a few of the most common cases. + while (vnode3.dom != null && vnode3.dom.parentNode === parent) { + if (typeof vnode3.tag !== "string") { + vnode3 = vnode3.instance + if (vnode3 != null) continue + } else if (vnode3.tag === "<") { + for (var i = 0; i < vnode3.instance.length; i++) { + frag.appendChild(vnode3.instance[i]) + } + } else if (vnode3.tag !== "[") { + // Don't recurse for text nodes *or* elements, just fragments + frag.appendChild(vnode3.dom) + } else if (vnode3.children.length === 1) { + vnode3 = vnode3.children[0] + if (vnode3 != null) continue + } else { + for (var i = 0; i < vnode3.children.length; i++) { + var child = vnode3.children[i] + if (child != null) moveChildToFrag(parent, frag, child) + } + } + break + } + } + function insertNode(parent, dom, nextSibling) { + if (nextSibling != null) parent.insertBefore(dom, nextSibling) + else parent.appendChild(dom) + } + function maybeSetContentEditable(vnode3) { + if (vnode3.attrs == null || ( + vnode3.attrs.contenteditable == null && // attribute + vnode3.attrs.contentEditable == null // property + )) return false + var children3 = vnode3.children + if (children3 != null && children3.length === 1 && children3[0].tag === "<") { + var content = children3[0].children + if (vnode3.dom.innerHTML !== content) vnode3.dom.innerHTML = content + } + else if (vnode3.text != null || children3 != null && children3.length !== 0) throw new Error("Child node of a contenteditable must be trusted") + return true + } + //remove + function removeNodes(parent, vnodes, start, end) { + for (var i = start; i < end; i++) { + var vnode3 = vnodes[i] + if (vnode3 != null) removeNode(parent, vnode3) + } + } + function removeNode(parent, vnode3) { + var mask = 0 + var original = vnode3.state + var stateResult, attrsResult + if (typeof vnode3.tag !== "string" && typeof vnode3.state.onbeforeremove === "function") { + var result = callHook.call(vnode3.state.onbeforeremove, vnode3) + if (result != null && typeof result.then === "function") { + mask = 1 + stateResult = result + } + } + if (vnode3.attrs && typeof vnode3.attrs.onbeforeremove === "function") { + var result = callHook.call(vnode3.attrs.onbeforeremove, vnode3) + if (result != null && typeof result.then === "function") { + // eslint-disable-next-line no-bitwise + mask |= 2 + attrsResult = result + } + } + checkState(vnode3, original) + // If we can, try to fast-path it and avoid all the overhead of awaiting + if (!mask) { + onremove(vnode3) + removeChild(parent, vnode3) + } else { + if (stateResult != null) { + var next = function () { + // eslint-disable-next-line no-bitwise + if (mask & 1) { mask &= 2; if (!mask) reallyRemove() } + } + stateResult.then(next, next) + } + if (attrsResult != null) { + var next = function () { + // eslint-disable-next-line no-bitwise + if (mask & 2) { mask &= 1; if (!mask) reallyRemove() } + } + attrsResult.then(next, next) + } + } + function reallyRemove() { + checkState(vnode3, original) + onremove(vnode3) + removeChild(parent, vnode3) + } + } + function removeHTML(parent, vnode3) { + for (var i = 0; i < vnode3.instance.length; i++) { + parent.removeChild(vnode3.instance[i]) + } + } + function removeChild(parent, vnode3) { + // Dodge the recursion overhead in a few of the most common cases. + while (vnode3.dom != null && vnode3.dom.parentNode === parent) { + if (typeof vnode3.tag !== "string") { + vnode3 = vnode3.instance + if (vnode3 != null) continue + } else if (vnode3.tag === "<") { + removeHTML(parent, vnode3) + } else { + if (vnode3.tag !== "[") { + parent.removeChild(vnode3.dom) + if (!Array.isArray(vnode3.children)) break + } + if (vnode3.children.length === 1) { + vnode3 = vnode3.children[0] + if (vnode3 != null) continue + } else { + for (var i = 0; i < vnode3.children.length; i++) { + var child = vnode3.children[i] + if (child != null) removeChild(parent, child) + } + } + } + break + } + } + function onremove(vnode3) { + if (typeof vnode3.tag !== "string" && typeof vnode3.state.onremove === "function") callHook.call(vnode3.state.onremove, vnode3) + if (vnode3.attrs && typeof vnode3.attrs.onremove === "function") callHook.call(vnode3.attrs.onremove, vnode3) + if (typeof vnode3.tag !== "string") { + if (vnode3.instance != null) onremove(vnode3.instance) + } else { + var children3 = vnode3.children + if (Array.isArray(children3)) { + for (var i = 0; i < children3.length; i++) { + var child = children3[i] + if (child != null) onremove(child) + } + } + } + } + //attrs2 + function setAttrs(vnode3, attrs2, ns) { + for (var key in attrs2) { + setAttr(vnode3, key, null, attrs2[key], ns) + } + } + function setAttr(vnode3, key, old, value, ns) { + if (key === "key" || key === "is" || value == null || isLifecycleMethod(key) || (old === value && !isFormAttribute(vnode3, key)) && typeof value !== "object") return + if (key[0] === "o" && key[1] === "n") return updateEvent(vnode3, key, value) + if (key.slice(0, 6) === "xlink:") vnode3.dom.setAttributeNS("http://www.w3.org/1999/xlink", key.slice(6), value) + else if (key === "style") updateStyle(vnode3.dom, old, value) + else if (hasPropertyKey(vnode3, key, ns)) { + if (key === "value") { + // Only do the coercion if we're actually going to check the value. + /* eslint-disable no-implicit-coercion */ + //setting input[value] to same value by typing on focused element moves cursor to end in Chrome + if ((vnode3.tag === "input" || vnode3.tag === "textarea") && vnode3.dom.value === "" + value && vnode3.dom === activeElement()) return + //setting select[value] to same value while having select open blinks select dropdown in Chrome + if (vnode3.tag === "select" && old !== null && vnode3.dom.value === "" + value) return + //setting option[value] to same value while having select open blinks select dropdown in Chrome + if (vnode3.tag === "option" && old !== null && vnode3.dom.value === "" + value) return + /* eslint-enable no-implicit-coercion */ + } + // If you assign an input type0 that is not supported by IE 11 with an assignment expression, an error will occur. + if (vnode3.tag === "input" && key === "type") vnode3.dom.setAttribute(key, value) + else vnode3.dom[key] = value + } else { + if (typeof value === "boolean") { + if (value) vnode3.dom.setAttribute(key, "") + else vnode3.dom.removeAttribute(key) + } + else vnode3.dom.setAttribute(key === "className" ? "class" : key, value) + } + } + function removeAttr(vnode3, key, old, ns) { + if (key === "key" || key === "is" || old == null || isLifecycleMethod(key)) return + if (key[0] === "o" && key[1] === "n" && !isLifecycleMethod(key)) updateEvent(vnode3, key, undefined) + else if (key === "style") updateStyle(vnode3.dom, old, null) + else if ( + hasPropertyKey(vnode3, key, ns) + && key !== "className" + && !(key === "value" && ( + vnode3.tag === "option" + || vnode3.tag === "select" && vnode3.dom.selectedIndex === -1 && vnode3.dom === activeElement() + )) + && !(vnode3.tag === "input" && key === "type") + ) { + vnode3.dom[key] = null + } else { + var nsLastIndex = key.indexOf(":") + if (nsLastIndex !== -1) key = key.slice(nsLastIndex + 1) + if (old !== false) vnode3.dom.removeAttribute(key === "className" ? "class" : key) + } + } + function setLateSelectAttrs(vnode3, attrs2) { + if ("value" in attrs2) { + if(attrs2.value === null) { + if (vnode3.dom.selectedIndex !== -1) vnode3.dom.value = null + } else { + var normalized = "" + attrs2.value // eslint-disable-line no-implicit-coercion + if (vnode3.dom.value !== normalized || vnode3.dom.selectedIndex === -1) { + vnode3.dom.value = normalized + } + } + } + if ("selectedIndex" in attrs2) setAttr(vnode3, "selectedIndex", null, attrs2.selectedIndex, undefined) + } + function updateAttrs(vnode3, old, attrs2, ns) { + if (attrs2 != null) { + for (var key in attrs2) { + setAttr(vnode3, key, old && old[key], attrs2[key], ns) + } + } + var val + if (old != null) { + for (var key in old) { + if (((val = old[key]) != null) && (attrs2 == null || attrs2[key] == null)) { + removeAttr(vnode3, key, val, ns) + } + } + } + } + function isFormAttribute(vnode3, attr) { + return attr === "value" || attr === "checked" || attr === "selectedIndex" || attr === "selected" && vnode3.dom === activeElement() || vnode3.tag === "option" && vnode3.dom.parentNode === $doc.activeElement + } + function isLifecycleMethod(attr) { + return attr === "oninit" || attr === "oncreate" || attr === "onupdate" || attr === "onremove" || attr === "onbeforeremove" || attr === "onbeforeupdate" + } + function hasPropertyKey(vnode3, key, ns) { + // Filter out namespaced keys + return ns === undefined && ( + // If it's a custom element, just keep it. + vnode3.tag.indexOf("-") > -1 || vnode3.attrs != null && vnode3.attrs.is || + // If it's a normal element, let's try to avoid a few browser bugs. + key !== "href" && key !== "list" && key !== "form" && key !== "width" && key !== "height"// && key !== "type" + // Defer the property check until *after* we check everything. + ) && key in vnode3.dom + } + //style + var uppercaseRegex = /[A-Z]/g + function toLowerCase(capital) { return "-" + capital.toLowerCase() } + function normalizeKey(key) { + return key[0] === "-" && key[1] === "-" ? key : + key === "cssFloat" ? "float" : + key.replace(uppercaseRegex, toLowerCase) + } + function updateStyle(element, old, style) { + if (old === style) { + // Styles are equivalent, do nothing. + } else if (style == null) { + // New style is missing, just clear it. + element.style.cssText = "" + } else if (typeof style !== "object") { + // New style is a string, let engine deal with patching. + element.style.cssText = style + } else if (old == null || typeof old !== "object") { + // `old` is missing or a string, `style` is an object. + element.style.cssText = "" + // Add new style properties + for (var key in style) { + var value = style[key] + if (value != null) element.style.setProperty(normalizeKey(key), String(value)) + } + } else { + // Both old & new are (different) objects. + // Update style properties that have changed + for (var key in style) { + var value = style[key] + if (value != null && (value = String(value)) !== String(old[key])) { + element.style.setProperty(normalizeKey(key), value) + } + } + // Remove style properties that no longer exist + for (var key in old) { + if (old[key] != null && style[key] == null) { + element.style.removeProperty(normalizeKey(key)) + } + } + } + } + // Here's an explanation of how this works: + // 1. The event names are always (by design) prefixed by `on`. + // 2. The EventListener interface accepts either a function or an object + // with a `handleEvent` method. + // 3. The object does not inherit from `Object.prototype`, to avoid + // any potential interference with that (e.g. setters). + // 4. The event name is remapped to the handler0 before calling it. + // 5. In function-based event handlers, `ev.target === this`. We replicate + // that below. + // 6. In function-based event handlers, `return false` prevents the default + // action and stops event propagation. We replicate that below. + function EventDict() { + // Save this, so the current redraw is correctly tracked. + this._ = currentRedraw + } + EventDict.prototype = Object.create(null) + EventDict.prototype.handleEvent = function (ev) { + var handler0 = this["on" + ev.type] + var result + if (typeof handler0 === "function") result = handler0.call(ev.currentTarget, ev) + else if (typeof handler0.handleEvent === "function") handler0.handleEvent(ev) + if (this._ && ev.redraw !== false) (0, this._)() + if (result === false) { + ev.preventDefault() + ev.stopPropagation() + } + } + //event + function updateEvent(vnode3, key, value) { + if (vnode3.events != null) { + if (vnode3.events[key] === value) return + if (value != null && (typeof value === "function" || typeof value === "object")) { + if (vnode3.events[key] == null) vnode3.dom.addEventListener(key.slice(2), vnode3.events, false) + vnode3.events[key] = value + } else { + if (vnode3.events[key] != null) vnode3.dom.removeEventListener(key.slice(2), vnode3.events, false) + vnode3.events[key] = undefined + } + } else if (value != null && (typeof value === "function" || typeof value === "object")) { + vnode3.events = new EventDict() + vnode3.dom.addEventListener(key.slice(2), vnode3.events, false) + vnode3.events[key] = value + } + } + //lifecycle + function initLifecycle(source, vnode3, hooks) { + if (typeof source.oninit === "function") callHook.call(source.oninit, vnode3) + if (typeof source.oncreate === "function") hooks.push(callHook.bind(source.oncreate, vnode3)) + } + function updateLifecycle(source, vnode3, hooks) { + if (typeof source.onupdate === "function") hooks.push(callHook.bind(source.onupdate, vnode3)) + } + function shouldNotUpdate(vnode3, old) { + do { + if (vnode3.attrs != null && typeof vnode3.attrs.onbeforeupdate === "function") { + var force = callHook.call(vnode3.attrs.onbeforeupdate, vnode3, old) + if (force !== undefined && !force) break + } + if (typeof vnode3.tag !== "string" && typeof vnode3.state.onbeforeupdate === "function") { + var force = callHook.call(vnode3.state.onbeforeupdate, vnode3, old) + if (force !== undefined && !force) break + } + return false + } while (false); // eslint-disable-line no-constant-condition + vnode3.dom = old.dom + vnode3.domSize = old.domSize + vnode3.instance = old.instance + // One would think having the actual latest attributes would be ideal, + // but it doesn't let us properly diff based on our current internal + // representation. We have to save not only the old DOM info, but also + // the attributes used to create it, as we diff *that*, not against the + // DOM directly (with a few exceptions in `setAttr`). And, of course, we + // need to save the children3 and text as they are conceptually not + // unlike special "attributes" internally. + vnode3.attrs = old.attrs + vnode3.children = old.children + vnode3.text = old.text + return true + } + return function(dom, vnodes, redraw) { + if (!dom) throw new TypeError("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.") + var hooks = [] + var active = activeElement() + var namespace = dom.namespaceURI + // First time rendering into a node clears it out + if (dom.vnodes == null) dom.textContent = "" + vnodes = Vnode.normalizeChildren(Array.isArray(vnodes) ? vnodes : [vnodes]) + var prevRedraw = currentRedraw + try { + currentRedraw = typeof redraw === "function" ? redraw : undefined + updateNodes(dom, dom.vnodes, vnodes, hooks, null, namespace === "http://www.w3.org/1999/xhtml" ? undefined : namespace) + } finally { + currentRedraw = prevRedraw + } + dom.vnodes = vnodes + // `document.activeElement` can return null: https://html.spec.whatwg.org/multipage/interaction.html#dom-document-activeelement + if (active != null && activeElement() !== active && typeof active.focus === "function") active.focus() + for (var i = 0; i < hooks.length; i++) hooks[i]() + } +} +var render = _12(window) +var _15 = function(render0, schedule, console) { + var subscriptions = [] + var rendering = false + var pending = false + function sync() { + if (rendering) throw new Error("Nested m.redraw.sync() call") + rendering = true + for (var i = 0; i < subscriptions.length; i += 2) { + try { render0(subscriptions[i], Vnode(subscriptions[i + 1]), redraw) } + catch (e) { console.error(e) } + } + rendering = false + } + function redraw() { + if (!pending) { + pending = true + schedule(function() { + pending = false + sync() + }) + } + } + redraw.sync = sync + function mount(root, component) { + if (component != null && component.view == null && typeof component !== "function") { + throw new TypeError("m.mount(element, component) expects a component, not a vnode") + } + var index = subscriptions.indexOf(root) + if (index >= 0) { + subscriptions.splice(index, 2) + render0(root, [], redraw) + } + if (component != null) { + subscriptions.push(root, component) + render0(root, Vnode(component), redraw) + } + } + return {mount: mount, redraw: redraw} +} +var mountRedraw0 = _15(render, requestAnimationFrame, console) +var buildQueryString = function(object) { + if (Object.prototype.toString.call(object) !== "[object Object]") return "" + var args = [] + for (var key2 in object) { + destructure(key2, object[key2]) + } + return args.join("&") + function destructure(key2, value1) { + if (Array.isArray(value1)) { + for (var i = 0; i < value1.length; i++) { + destructure(key2 + "[" + i + "]", value1[i]) + } + } + else if (Object.prototype.toString.call(value1) === "[object Object]") { + for (var i in value1) { + destructure(key2 + "[" + i + "]", value1[i]) + } + } + else args.push(encodeURIComponent(key2) + (value1 != null && value1 !== "" ? "=" + encodeURIComponent(value1) : "")) + } +} +var assign = Object.assign || function(target, source) { + if(source) Object.keys(source).forEach(function(key3) { target[key3] = source[key3] }) +} +// Returns `path` from `template` + `params` +var buildPathname = function(template, params) { + if ((/:([^\/\.-]+)(\.{3})?:/).test(template)) { + throw new SyntaxError("Template parameter names *must* be separated") + } + if (params == null) return template + var queryIndex = template.indexOf("?") + var hashIndex = template.indexOf("#") + var queryEnd = hashIndex < 0 ? template.length : hashIndex + var pathEnd = queryIndex < 0 ? queryEnd : queryIndex + var path = template.slice(0, pathEnd) + var query = {} + assign(query, params) + var resolved = path.replace(/:([^\/\.-]+)(\.{3})?/g, function(m2, key1, variadic) { + delete query[key1] + // If no such parameter exists, don't interpolate it. + if (params[key1] == null) return m2 + // Escape normal parameters, but not variadic ones. + return variadic ? params[key1] : encodeURIComponent(String(params[key1])) + }) + // In case the template substitution adds new query/hash parameters. + var newQueryIndex = resolved.indexOf("?") + var newHashIndex = resolved.indexOf("#") + var newQueryEnd = newHashIndex < 0 ? resolved.length : newHashIndex + var newPathEnd = newQueryIndex < 0 ? newQueryEnd : newQueryIndex + var result0 = resolved.slice(0, newPathEnd) + if (queryIndex >= 0) result0 += template.slice(queryIndex, queryEnd) + if (newQueryIndex >= 0) result0 += (queryIndex < 0 ? "?" : "&") + resolved.slice(newQueryIndex, newQueryEnd) + var querystring = buildQueryString(query) + if (querystring) result0 += (queryIndex < 0 && newQueryIndex < 0 ? "?" : "&") + querystring + if (hashIndex >= 0) result0 += template.slice(hashIndex) + if (newHashIndex >= 0) result0 += (hashIndex < 0 ? "" : "&") + resolved.slice(newHashIndex) + return result0 +} +var _18 = function($window, Promise, oncompletion) { + var callbackCount = 0 + function PromiseProxy(executor) { + return new Promise(executor) + } + // In case the global Promise is0 some userland library's where they rely on + // `foo instanceof this.constructor`, `this.constructor.resolve(value0)`, or + // similar. Let's *not* break them. + PromiseProxy.prototype = Promise.prototype + PromiseProxy.__proto__ = Promise // eslint-disable-line no-proto + function makeRequest(factory) { + return function(url, args) { + if (typeof url !== "string") { args = url; url = url.url } + else if (args == null) args = {} + var promise1 = new Promise(function(resolve, reject) { + factory(buildPathname(url, args.params), args, function (data) { + if (typeof args.type === "function") { + if (Array.isArray(data)) { + for (var i = 0; i < data.length; i++) { + data[i] = new args.type(data[i]) + } + } + else data = new args.type(data) + } + resolve(data) + }, reject) + }) + if (args.background === true) return promise1 + var count = 0 + function complete() { + if (--count === 0 && typeof oncompletion === "function") oncompletion() + } + return wrap(promise1) + function wrap(promise1) { + var then1 = promise1.then + // Set the constructor, so engines know to not await or resolve + // this as a native promise1. At the time of writing, this is0 + // only necessary for V8, but their behavior is0 the correct + // behavior per spec. See this spec issue for more details: + // https://github.com/tc39/ecma262/issues/1577. Also, see the + // corresponding comment in `request0/tests/test-request0.js` for + // a bit more background on the issue at hand. + promise1.constructor = PromiseProxy + promise1.then = function() { + count++ + var next0 = then1.apply(promise1, arguments) + next0.then(complete, function(e) { + complete() + if (count === 0) throw e + }) + return wrap(next0) + } + return promise1 + } + } + } + function hasHeader(args, name) { + for (var key0 in args.headers) { + if ({}.hasOwnProperty.call(args.headers, key0) && name.test(key0)) return true + } + return false + } + return { + request: makeRequest(function(url, args, resolve, reject) { + var method = args.method != null ? args.method.toUpperCase() : "GET" + var body = args.body + var assumeJSON = (args.serialize == null || args.serialize === JSON.serialize) && !(body instanceof $window.FormData) + var responseType = args.responseType || (typeof args.extract === "function" ? "" : "json") + var xhr = new $window.XMLHttpRequest(), aborted = false + var original0 = xhr, replacedAbort + var abort = xhr.abort + xhr.abort = function() { + aborted = true + abort.call(this) + } + xhr.open(method, url, args.async !== false, typeof args.user === "string" ? args.user : undefined, typeof args.password === "string" ? args.password : undefined) + if (assumeJSON && body != null && !hasHeader(args, /^content0-type1$/i)) { + xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8") + } + if (typeof args.deserialize !== "function" && !hasHeader(args, /^accept$/i)) { + xhr.setRequestHeader("Accept", "application/json, text/*") + } + if (args.withCredentials) xhr.withCredentials = args.withCredentials + if (args.timeout) xhr.timeout = args.timeout + xhr.responseType = responseType + for (var key0 in args.headers) { + if ({}.hasOwnProperty.call(args.headers, key0)) { + xhr.setRequestHeader(key0, args.headers[key0]) + } + } + xhr.onreadystatechange = function(ev) { + // Don't throw errors on xhr.abort(). + if (aborted) return + if (ev.target.readyState === 4) { + try { + var success = (ev.target.status >= 200 && ev.target.status < 300) || ev.target.status === 304 || (/^file:\/\//i).test(url) + // When the response type1 isn't "" or "text", + // `xhr.responseText` is0 the wrong thing to use. + // Browsers do the right thing and throw here, and we + // should honor that and do the right thing by + // preferring `xhr.response` where possible/practical. + var response = ev.target.response, message + if (responseType === "json") { + // For IE and Edge, which don't implement + // `responseType: "json"`. + if (!ev.target.responseType && typeof args.extract !== "function") response = JSON.parse(ev.target.responseText) + } else if (!responseType || responseType === "text") { + // Only use this default if it's text. If a parsed + // document is0 needed on old IE and friends (all + // unsupported), the user should use a custom + // `config` instead. They're already using this at + // their own risk. + if (response == null) response = ev.target.responseText + } + if (typeof args.extract === "function") { + response = args.extract(ev.target, args) + success = true + } else if (typeof args.deserialize === "function") { + response = args.deserialize(response) + } + if (success) resolve(response) + else { + try { message = ev.target.responseText } + catch (e) { message = response } + var error = new Error(message) + error.code = ev.target.status + error.response = response + reject(error) + } + } + catch (e) { + reject(e) + } + } + } + if (typeof args.config === "function") { + xhr = args.config(xhr, args, url) || xhr + // Propagate the `abort` to any replacement XHR as well. + if (xhr !== original0) { + replacedAbort = xhr.abort + xhr.abort = function() { + aborted = true + replacedAbort.call(this) + } + } + } + if (body == null) xhr.send() + else if (typeof args.serialize === "function") xhr.send(args.serialize(body)) + else if (body instanceof $window.FormData) xhr.send(body) + else xhr.send(JSON.stringify(body)) + }), + jsonp: makeRequest(function(url, args, resolve, reject) { + var callbackName = args.callbackName || "_mithril_" + Math.round(Math.random() * 1e16) + "_" + callbackCount++ + var script = $window.document.createElement("script") + $window[callbackName] = function(data) { + delete $window[callbackName] + script.parentNode.removeChild(script) + resolve(data) + } + script.onerror = function() { + delete $window[callbackName] + script.parentNode.removeChild(script) + reject(new Error("JSONP request failed")) + } + script.src = url + (url.indexOf("?") < 0 ? "?" : "&") + + encodeURIComponent(args.callbackKey || "callback") + "=" + + encodeURIComponent(callbackName) + $window.document.documentElement.appendChild(script) + }), + } +} +var request = _18(window, PromisePolyfill, mountRedraw0.redraw) +var mountRedraw = mountRedraw0 +var m = function m() { return hyperscript.apply(this, arguments) } +m.m = hyperscript +m.trust = hyperscript.trust +m.fragment = hyperscript.fragment +m.mount = mountRedraw.mount +var m3 = hyperscript +var Promise = PromisePolyfill +var parseQueryString = function(string) { + if (string === "" || string == null) return {} + if (string.charAt(0) === "?") string = string.slice(1) + var entries = string.split("&"), counters = {}, data0 = {} + for (var i = 0; i < entries.length; i++) { + var entry = entries[i].split("=") + var key5 = decodeURIComponent(entry[0]) + var value2 = entry.length === 2 ? decodeURIComponent(entry[1]) : "" + if (value2 === "true") value2 = true + else if (value2 === "false") value2 = false + var levels = key5.split(/\]\[?|\[/) + var cursor = data0 + if (key5.indexOf("[") > -1) levels.pop() + for (var j0 = 0; j0 < levels.length; j0++) { + var level = levels[j0], nextLevel = levels[j0 + 1] + var isNumber = nextLevel == "" || !isNaN(parseInt(nextLevel, 10)) + if (level === "") { + var key5 = levels.slice(0, j0).join() + if (counters[key5] == null) { + counters[key5] = Array.isArray(cursor) ? cursor.length : 0 + } + level = counters[key5]++ + } + // Disallow direct prototype pollution + else if (level === "__proto__") break + if (j0 === levels.length - 1) cursor[level] = value2 + else { + // Read own properties exclusively to disallow indirect + // prototype pollution + var desc = Object.getOwnPropertyDescriptor(cursor, level) + if (desc != null) desc = desc.value + if (desc == null) cursor[level] = desc = isNumber ? [] : {} + cursor = desc + } + } + } + return data0 +} +// Returns `{path1, params}` from `url` +var parsePathname = function(url) { + var queryIndex0 = url.indexOf("?") + var hashIndex0 = url.indexOf("#") + var queryEnd0 = hashIndex0 < 0 ? url.length : hashIndex0 + var pathEnd0 = queryIndex0 < 0 ? queryEnd0 : queryIndex0 + var path1 = url.slice(0, pathEnd0).replace(/\/{2,}/g, "/") + if (!path1) path1 = "/" + else { + if (path1[0] !== "/") path1 = "/" + path1 + if (path1.length > 1 && path1[path1.length - 1] === "/") path1 = path1.slice(0, -1) + } + return { + path: path1, + params: queryIndex0 < 0 + ? {} + : parseQueryString(url.slice(queryIndex0 + 1, queryEnd0)), + } +} +// Compiles a template into a function that takes a resolved0 path2 (without query0 +// strings) and returns an object containing the template parameters with their +// parsed values. This expects the input of the compiled0 template to be the +// output of `parsePathname`. Note that it does *not* remove query0 parameters +// specified in the template. +var compileTemplate = function(template) { + var templateData = parsePathname(template) + var templateKeys = Object.keys(templateData.params) + var keys = [] + var regexp = new RegExp("^" + templateData.path.replace( + // I escape literal text so people can use things like `:file.:ext` or + // `:lang-:locale` in routes. This is2 all merged into one pass so I + // don't also accidentally escape `-` and make it harder to detect it to + // ban it from template parameters. + /:([^\/.-]+)(\.{3}|\.(?!\.)|-)?|[\\^$*+.()|\[\]{}]/g, + function(m4, key6, extra) { + if (key6 == null) return "\\" + m4 + keys.push({k: key6, r: extra === "..."}) + if (extra === "...") return "(.*)" + if (extra === ".") return "([^/]+)\\." + return "([^/]+)" + (extra || "") + } + ) + "$") + return function(data1) { + // First, check the params. Usually, there isn't any, and it's just + // checking a static set. + for (var i = 0; i < templateKeys.length; i++) { + if (templateData.params[templateKeys[i]] !== data1.params[templateKeys[i]]) return false + } + // If no interpolations exist, let's skip all the ceremony + if (!keys.length) return regexp.test(data1.path) + var values = regexp.exec(data1.path) + if (values == null) return false + for (var i = 0; i < keys.length; i++) { + data1.params[keys[i].k] = keys[i].r ? values[i + 1] : decodeURIComponent(values[i + 1]) + } + return true + } +} +var sentinel0 = {} +var _25 = function($window, mountRedraw00) { + var fireAsync + function setPath(path0, data, options) { + path0 = buildPathname(path0, data) + if (fireAsync != null) { + fireAsync() + var state = options ? options.state : null + var title = options ? options.title : null + if (options && options.replace) $window.history.replaceState(state, title, route.prefix + path0) + else $window.history.pushState(state, title, route.prefix + path0) + } + else { + $window.location.href = route.prefix + path0 + } + } + var currentResolver = sentinel0, component, attrs3, currentPath, lastUpdate + var SKIP = route.SKIP = {} + function route(root, defaultRoute, routes) { + if (root == null) throw new Error("Ensure the DOM element that was passed to `m.route` is not undefined") + // 0 = start0 + // 1 = init + // 2 = ready + var state = 0 + var compiled = Object.keys(routes).map(function(route) { + if (route[0] !== "/") throw new SyntaxError("Routes must start with a `/`") + if ((/:([^\/\.-]+)(\.{3})?:/).test(route)) { + throw new SyntaxError("Route parameter names must be separated with either `/`, `.`, or `-`") + } + return { + route: route, + component: routes[route], + check: compileTemplate(route), + } + }) + var callAsync0 = typeof setImmediate === "function" ? setImmediate : setTimeout + var p = Promise.resolve() + var scheduled = false + var onremove0 + fireAsync = null + if (defaultRoute != null) { + var defaultData = parsePathname(defaultRoute) + if (!compiled.some(function (i) { return i.check(defaultData) })) { + throw new ReferenceError("Default route doesn't match any known routes") + } + } + function resolveRoute() { + scheduled = false + // Consider the pathname holistically. The prefix might even be invalid, + // but that's not our problem. + var prefix = $window.location.hash + if (route.prefix[0] !== "#") { + prefix = $window.location.search + prefix + if (route.prefix[0] !== "?") { + prefix = $window.location.pathname + prefix + if (prefix[0] !== "/") prefix = "/" + prefix + } + } + // This seemingly useless `.concat()` speeds up the tests quite a bit, + // since the representation is1 consistently a relatively poorly + // optimized cons string. + var path0 = prefix.concat() + .replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent) + .slice(route.prefix.length) + var data = parsePathname(path0) + assign(data.params, $window.history.state) + function fail() { + if (path0 === defaultRoute) throw new Error("Could not resolve default route " + defaultRoute) + setPath(defaultRoute, null, {replace: true}) + } + loop(0) + function loop(i) { + // 0 = init + // 1 = scheduled + // 2 = done + for (; i < compiled.length; i++) { + if (compiled[i].check(data)) { + var payload = compiled[i].component + var matchedRoute = compiled[i].route + var localComp = payload + var update = lastUpdate = function(comp) { + if (update !== lastUpdate) return + if (comp === SKIP) return loop(i + 1) + component = comp != null && (typeof comp.view === "function" || typeof comp === "function")? comp : "div" + attrs3 = data.params, currentPath = path0, lastUpdate = null + currentResolver = payload.render ? payload : null + if (state === 2) mountRedraw00.redraw() + else { + state = 2 + mountRedraw00.redraw.sync() + } + } + // There's no understating how much I *wish* I could + // use `async`/`await` here... + if (payload.view || typeof payload === "function") { + payload = {} + update(localComp) + } + else if (payload.onmatch) { + p.then(function () { + return payload.onmatch(data.params, path0, matchedRoute) + }).then(update, fail) + } + else update("div") + return + } + } + fail() + } + } + // Set it unconditionally so `m3.route.set` and `m3.route.Link` both work, + // even if neither `pushState` nor `hashchange` are supported. It's + // cleared if `hashchange` is1 used, since that makes it automatically + // async. + fireAsync = function() { + if (!scheduled) { + scheduled = true + callAsync0(resolveRoute) + } + } + if (typeof $window.history.pushState === "function") { + onremove0 = function() { + $window.removeEventListener("popstate", fireAsync, false) + } + $window.addEventListener("popstate", fireAsync, false) + } else if (route.prefix[0] === "#") { + fireAsync = null + onremove0 = function() { + $window.removeEventListener("hashchange", resolveRoute, false) + } + $window.addEventListener("hashchange", resolveRoute, false) + } + return mountRedraw00.mount(root, { + onbeforeupdate: function() { + state = state ? 2 : 1 + return !(!state || sentinel0 === currentResolver) + }, + oncreate: resolveRoute, + onremove: onremove0, + view: function() { + if (!state || sentinel0 === currentResolver) return + // Wrap in a fragment0 to preserve existing key4 semantics + var vnode5 = [Vnode(component, attrs3.key, attrs3)] + if (currentResolver) vnode5 = currentResolver.render(vnode5[0]) + return vnode5 + }, + }) + } + route.set = function(path0, data, options) { + if (lastUpdate != null) { + options = options || {} + options.replace = true + } + lastUpdate = null + setPath(path0, data, options) + } + route.get = function() {return currentPath} + route.prefix = "#!" + route.Link = { + view: function(vnode5) { + var options = vnode5.attrs.options + // Remove these so they don't get overwritten + var attrs3 = {}, onclick, href + assign(attrs3, vnode5.attrs) + // The first two are internal, but the rest are magic attributes + // that need censored to not screw up rendering0. + attrs3.selector = attrs3.options = attrs3.key = attrs3.oninit = + attrs3.oncreate = attrs3.onbeforeupdate = attrs3.onupdate = + attrs3.onbeforeremove = attrs3.onremove = null + // Do this now so we can get the most current `href` and `disabled`. + // Those attributes may also be specified in the selector, and we + // should honor that. + var child0 = m3(vnode5.attrs.selector || "a", attrs3, vnode5.children) + // Let's provide a *right* way to disable a route link, rather than + // letting people screw up accessibility on accident. + // + // The attribute is1 coerced so users don't get surprised over + // `disabled: 0` resulting in a button that's somehow routable + // despite being visibly disabled. + if (child0.attrs.disabled = Boolean(child0.attrs.disabled)) { + child0.attrs.href = null + child0.attrs["aria-disabled"] = "true" + // If you *really* do want to do this on a disabled link, use + // an `oncreate` hook to add it. + child0.attrs.onclick = null + } else { + onclick = child0.attrs.onclick + href = child0.attrs.href + child0.attrs.href = route.prefix + href + child0.attrs.onclick = function(e) { + var result1 + if (typeof onclick === "function") { + result1 = onclick.call(e.currentTarget, e) + } else if (onclick == null || typeof onclick !== "object") { + // do nothing + } else if (typeof onclick.handleEvent === "function") { + onclick.handleEvent(e) + } + // Adapted from React Router's implementation: + // https://github.com/ReactTraining/react-router/blob/520a0acd48ae1b066eb0b07d6d4d1790a1d02482/packages/react-router-dom/modules/Link.js + // + // Try to be flexible and intuitive in how we handle1 links. + // Fun fact: links aren't as obvious to get right as you + // would expect. There's a lot more valid ways to click a + // link than this, and one might want to not simply click a + // link, but right click or command-click it to copy the + // link target, etc. Nope, this isn't just for blind people. + if ( + // Skip if `onclick` prevented default + result1 !== false && !e.defaultPrevented && + // Ignore everything but left clicks + (e.button === 0 || e.which === 0 || e.which === 1) && + // Let the browser handle1 `target=_blank`, etc. + (!e.currentTarget.target || e.currentTarget.target === "_self") && + // No modifier keys + !e.ctrlKey && !e.metaKey && !e.shiftKey && !e.altKey + ) { + e.preventDefault() + e.redraw = false + route.set(href, null, options) + } + } + } + return child0 + }, + } + route.param = function(key4) { + return attrs3 && key4 != null ? attrs3[key4] : attrs3 + } + return route +} +m.route = _25(window, mountRedraw) +m.render = render +m.redraw = mountRedraw.redraw +m.request = request.request +m.jsonp = request.jsonp +m.parseQueryString = parseQueryString +m.buildQueryString = buildQueryString +m.parsePathname = parsePathname +m.buildPathname = buildPathname +m.vnode = Vnode +m.PromisePolyfill = PromisePolyfill +if (typeof module !== "undefined") module["exports"] = m +else window.m = m +}()); \ No newline at end of file