From 988d5f86c5eb01746e37439f0801a7e6e55a819a Mon Sep 17 00:00:00 2001 From: davotronic5000 Date: Fri, 2 Feb 2024 09:21:41 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20davotron?= =?UTF-8?q?ic5000/townsquare@4f918a991f15279002042d7ad7202b20a387795b=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- img/villageidiot.8a70dda9.png | Bin 0 -> 85372 bytes index.html | 2 +- js/app.736669a7.js | 2 -- js/app.736669a7.js.map | 1 - js/app.a384721b.js | 2 ++ js/app.a384721b.js.map | 1 + 6 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 img/villageidiot.8a70dda9.png delete mode 100644 js/app.736669a7.js delete mode 100644 js/app.736669a7.js.map create mode 100644 js/app.a384721b.js create mode 100644 js/app.a384721b.js.map diff --git a/img/villageidiot.8a70dda9.png b/img/villageidiot.8a70dda9.png new file mode 100644 index 0000000000000000000000000000000000000000..7c939809b25597071efa3b0a0df4cae7bbf109ac GIT binary patch literal 85372 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index d055303b..77cac8b8 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Blood on the Clocktower Town Square
\ No newline at end of file +Blood on the Clocktower Town Square
\ No newline at end of file diff --git a/js/app.736669a7.js b/js/app.736669a7.js deleted file mode 100644 index 2d3e7d48..00000000 --- a/js/app.736669a7.js +++ /dev/null @@ -1,2 +0,0 @@ -(()=>{var e={3821:(e,t,i)=>{var o={"./bmr-demon.png":387,"./bmr-minion.png":9764,"./bmr-outsider.png":3396,"./bmr-townsfolk.png":4174,"./bmr.png":4085,"./custom.png":5592,"./for.png":3331,"./ib.png":9737,"./luf.png":8142,"./snv-demon.png":2867,"./snv-minion.png":3571,"./snv-outsider.png":3429,"./snv-townsfolk.png":1822,"./snv.png":9857,"./tb-demon.png":6737,"./tb-minion.png":972,"./tb-outsider.png":2338,"./tb-townsfolk.png":9600,"./tb.png":6827};function s(e){var t=a(e);return i(t)}function a(e){if(!i.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}s.keys=function(){return Object.keys(o)},s.resolve=a,e.exports=s,s.id=3821},6003:(e,t,i)=>{var o={"./acrobat.png":8035,"./actor_fall_of_rome.png":1465,"./alchemist.png":9799,"./alhadikhia.png":8723,"./amnesiac.png":5118,"./angel.png":6474,"./apprentice.png":819,"./architect_fall_of_rome.png":1607,"./artist.png":6835,"./assassin.png":3169,"./atheist.png":946,"./augur_fall_of_rome.png":7726,"./badger.png":1584,"./badomen_fall_of_rome.png":6577,"./balloonist.png":5926,"./barber.png":8069,"./barista.png":2437,"./baron.png":8230,"./beggar.png":1082,"./bishop.png":5343,"./blacksmith_fall_of_rome.png":9363,"./bonecollector.png":1594,"./boomdandy.png":3682,"./bountyhunter.png":7479,"./buddhist.png":1990,"./bureaucrat.png":367,"./butcher.png":177,"./butler.png":4697,"./caesar_fall_of_rome.png":7946,"./cannibal.png":6214,"./centurion1_fall_of_rome.png":1708,"./cerenovus.png":7637,"./chambermaid.png":1146,"./chef.png":1248,"./choirboy.png":5081,"./cleopatra_fall_of_rome.png":9114,"./clockmaker.png":5102,"./courtier.png":759,"./crassus_fall_of_rome.png":4163,"./cultleader.png":2763,"./custom.png":7037,"./damsel.png":5533,"./deusexfiasco.png":8141,"./deviant.png":1683,"./devilsadvocate.png":5549,"./djinn.png":393,"./doomsayer.png":5142,"./dreamer.png":1610,"./drunk.png":3669,"./duchess.png":2491,"./empath.png":5695,"./emperor_fall_of_rome.png":4595,"./engineer.png":7571,"./evil.png":1836,"./eviltwin.png":7664,"./exorcist.png":5858,"./fabled.png":5025,"./fanggu.png":1833,"./farmer.png":4390,"./fearmonger.png":5297,"./fibbin.png":9332,"./fiddler.png":5076,"./fisherman.png":2776,"./flowergirl.png":6053,"./fool.png":647,"./fortuneteller.png":9336,"./gambler.png":4306,"./gangster.png":782,"./general.png":2990,"./gladiator_fall_of_rome.png":7434,"./glykon1_fall_of_rome.png":8791,"./goblin.png":1730,"./godfather.png":8536,"./golem.png":7274,"./good.png":6832,"./goon.png":1273,"./gossip.png":5965,"./grandmother.png":4950,"./grinch.png":2325,"./gunslinger.png":7768,"./hannibal_fall_of_rome.png":4896,"./harlot.png":6226,"./harpy.png":3865,"./haruspex_fall_of_rome.png":5649,"./hatter.png":3490,"./hellslibrarian.png":5477,"./heretic.png":6314,"./highpriest1_fall_of_rome.png":934,"./highpriest2_fall_of_rome.png":212,"./highpriestess.png":6251,"./huntsman.png":7893,"./iamspartacus_fall_of_rome.png":4671,"./imp.png":2830,"./innkeeper.png":6580,"./investigator.png":9813,"./judge.png":6306,"./juggler.png":8785,"./kazali.png":3108,"./king.png":6865,"./klutz.png":1938,"./knight.png":3395,"./legion.png":2339,"./legionary.png":4394,"./legionary_fall_of_rome.png":2429,"./leviathan.png":3245,"./librarian.png":651,"./lilmonsta.png":4090,"./lleech.png":1424,"./lunatic.png":2561,"./lycanthrope.png":8746,"./magician.png":4214,"./marionette.png":712,"./mastermind.png":7100,"./mathematician.png":3850,"./matron.png":8054,"./mayor.png":8827,"./mephit.png":3304,"./mercenary_fall_of_rome.png":2841,"./merchant_fall_of_rome.png":7377,"./mezepheles.png":295,"./minion.png":847,"./minstrel.png":3415,"./monk.png":3100,"./moonchild.png":8749,"./mortician_fall_of_rome.png":1021,"./mutant.png":4473,"./nightwatchman.png":2666,"./noble.png":1004,"./nodashii.png":2458,"./ojo.png":3073,"./oracle.png":9624,"./organgrinder.png":5705,"./outsider.png":8814,"./pacifist.png":5873,"./philosopher.png":3300,"./physician.png":4555,"./physician_fall_of_rome.png":9979,"./pithag.png":1282,"./pixie.png":8637,"./plaguedoctor.png":5985,"./plus.png":4511,"./plusone.png":4908,"./po.png":5631,"./poisoner.png":6763,"./politician.png":4265,"./poppygrower.png":8828,"./preacher.png":3213,"./professor.png":889,"./psychopath.png":7826,"./pukka.png":4486,"./puzzlemaster.png":7002,"./ravenkeeper.png":6965,"./recluse.png":3035,"./revolutionary.png":9038,"./riot.png":8118,"./sage.png":6544,"./sailor.png":8984,"./saint.png":4811,"./saintnick.png":7316,"./savant.png":7884,"./scapegoat.png":6701,"./scarletwoman.png":3957,"./scholar_fall_of_rome.png":7330,"./sculptor.png":791,"./sculptor_fall_of_rome.png":8374,"./seamstress.png":4201,"./sentinel.png":4213,"./septemberchild.png":4017,"./shabaloth.png":2034,"./shugenja.png":922,"./sibyl_fall_of_rome.png":4885,"./slayer.png":8081,"./snakecharmer.png":9900,"./snitch.png":7988,"./soldier.png":2231,"./spartacus_fall_of_rome.png":1977,"./spiritofivory.png":3379,"./spy.png":4013,"./standardbearer_fall_of_rome.png":5165,"./steward.png":6050,"./stormcatcher.png":3877,"./sweetheart.png":6356,"./tealady.png":3009,"./temptress_fall_of_rome.png":5274,"./thetwins_fall_of_rome.png":5603,"./thief.png":7112,"./tinker.png":5380,"./towncrier.png":4055,"./toymaker.png":3163,"./trumpeter_fall_of_rome.png":8892,"./undertaker.png":5466,"./vestalvirgin.png":1647,"./vestalvirgin_fall_of_rome.png":2349,"./vigormortis.png":4969,"./virgin.png":6954,"./vizier.png":5485,"./vortox.png":6142,"./voudon.png":152,"./washerwoman.png":245,"./widow.png":3729,"./winemaker_fall_of_rome.png":1409,"./witch.png":6909,"./x.png":1139,"./zombuul.png":8899};function s(e){var t=a(e);return i(t)}function a(e){if(!i.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}s.keys=function(){return Object.keys(o)},s.resolve=a,e.exports=s,s.id=6003},487:(e,t,i)=>{"use strict";var o=i(9963),s=i(6252),a=i(3577);const r=["src"],n=(0,s._)("div",{class:"backdrop"},null,-1),l={id:"version"};function h(e,t,i,o,h,d){const m=(0,s.up)("Intro"),c=(0,s.up)("TownInfo"),g=(0,s.up)("Vote"),p=(0,s.up)("TownSquare"),y=(0,s.up)("Menu"),u=(0,s.up)("EditionModal"),f=(0,s.up)("FabledModal"),b=(0,s.up)("RolesModal"),w=(0,s.up)("ReferenceModal"),k=(0,s.up)("NightOrderModal"),N=(0,s.up)("VoteHistoryModal"),v=(0,s.up)("GameStateModal"),A=(0,s.up)("Gradients");return(0,s.wg)(),(0,s.iD)("div",{id:"townsquare-app",onKeyup:t[0]||(t[0]=(...e)=>d.keyup&&d.keyup(...e)),tabindex:"-1",class:(0,a.C_)({night:e.grimoire.isNight,static:e.grimoire.isStatic}),style:(0,a.j5)({backgroundImage:e.grimoire.background?`url('${e.grimoire.background}')`:""})},[e.grimoire.background&&e.grimoire.background.match(/\.(mp4|webm)$/i)?((0,s.wg)(),(0,s.iD)("video",{key:0,id:"background",src:e.grimoire.background,autoplay:"",loop:""},null,8,r)):(0,s.kq)("",!0),n,e.players.length?(0,s.kq)("",!0):((0,s.wg)(),(0,s.j4)(m,{key:1})),e.players.length&&!e.session.nomination?((0,s.wg)(),(0,s.j4)(c,{key:2})):(0,s.kq)("",!0),e.session.nomination?((0,s.wg)(),(0,s.j4)(g,{key:3})):(0,s.kq)("",!0),(0,s.Wm)(p),(0,s.Wm)(y,{ref:"menu"},null,512),(0,s.Wm)(u),(0,s.Wm)(f),(0,s.Wm)(b),(0,s.Wm)(w),(0,s.Wm)(k),(0,s.Wm)(N),(0,s.Wm)(v),(0,s.Wm)(A),(0,s._)("span",l,"v"+(0,a.zw)(h.version),1)],38)}var d=i(3907);const m={i8:"2.16.0"},c={key:0},g={key:1},p=["onClick"],y=(0,s._)("span",null,"Fabled",-1),u=["onClick"],f={key:0,class:"night-order first"},b={key:0},w={key:1,class:"night-order other"},k={key:0};function N(e,t,i,r,n,l){const h=(0,s.up)("Player"),d=(0,s.up)("font-awesome-icon"),m=(0,s.up)("Token"),N=(0,s.up)("ReminderModal"),v=(0,s.up)("RoleModal");return(0,s.wg)(),(0,s.iD)("div",{id:"townsquare",class:(0,a.C_)(["square",{public:e.grimoire.isPublic,spectator:e.session.isSpectator,vote:e.session.nomination}])},[(0,s._)("ul",{class:(0,a.C_)(["circle",["size-"+e.players.length]])},[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.players,((e,t)=>((0,s.wg)(),(0,s.j4)(h,{key:t,player:e,onTrigger:e=>l.handleTrigger(t,e),class:(0,a.C_)({from:Math.max(n.swap,n.move,n.nominate)===t,swap:n.swap>-1,move:n.move>-1,nominate:n.nominate>-1})},null,8,["player","onTrigger","class"])))),128))],2),e.players.length?((0,s.wg)(),(0,s.iD)("div",{key:0,class:(0,a.C_)(["bluffs",{closed:!n.isBluffsOpen}]),ref:"bluffs"},[(0,s._)("h3",null,[e.session.isSpectator?((0,s.wg)(),(0,s.iD)("span",c,"Other characters")):((0,s.wg)(),(0,s.iD)("span",g,"Demon bluffs")),(0,s._)("span",{onClick:t[0]||(t[0]=(0,o.iM)(((...e)=>l.toggleBluffs&&l.toggleBluffs(...e)),["stop"]))},[(0,s.Wm)(d,{icon:["fas",n.isBluffsOpen?"minus-circle":"plus-circle"]},null,8,["icon"])])]),(0,s._)("ul",null,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(n.bluffSize,(t=>((0,s.wg)(),(0,s.iD)("li",{key:t,onClick:e=>l.openRoleModal(-1*t)},[(0,s.Wm)(m,{role:e.bluffs[t-1]},null,8,["role"])],8,p)))),128))])],2)):(0,s.kq)("",!0),e.fabled.length?((0,s.wg)(),(0,s.iD)("div",{key:1,class:(0,a.C_)(["fabled",{closed:!n.isFabledOpen}])},[(0,s._)("h3",null,[y,(0,s._)("span",{onClick:t[1]||(t[1]=(0,o.iM)(((...e)=>l.toggleFabled&&l.toggleFabled(...e)),["stop"]))},[(0,s.Wm)(d,{icon:["fas",n.isFabledOpen?"minus-circle":"plus-circle"]},null,8,["icon"])])]),(0,s._)("ul",null,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.fabled,((t,i)=>((0,s.wg)(),(0,s.iD)("li",{key:i,onClick:e=>l.removeFabled(i)},[e.nightOrder.get(t).first&&e.grimoire.isNightOrder?((0,s.wg)(),(0,s.iD)("div",f,[(0,s._)("em",null,(0,a.zw)(e.nightOrder.get(t).first)+".",1),t.firstNightReminder?((0,s.wg)(),(0,s.iD)("span",b,(0,a.zw)(t.firstNightReminder),1)):(0,s.kq)("",!0)])):(0,s.kq)("",!0),e.nightOrder.get(t).other&&e.grimoire.isNightOrder?((0,s.wg)(),(0,s.iD)("div",w,[(0,s._)("em",null,(0,a.zw)(e.nightOrder.get(t).other)+".",1),t.otherNightReminder?((0,s.wg)(),(0,s.iD)("span",k,(0,a.zw)(t.otherNightReminder),1)):(0,s.kq)("",!0)])):(0,s.kq)("",!0),(0,s.Wm)(m,{role:t},null,8,["role"])],8,u)))),128))])],2)):(0,s.kq)("",!0),(0,s.Wm)(N,{"player-index":n.selectedPlayer},null,8,["player-index"]),(0,s.Wm)(v,{"player-index":n.selectedPlayer},null,8,["player-index"])],2)}const v={key:0,class:"night-order first"},A={key:0},R={key:1,class:"night-order other"},S={key:0},I={class:"marked"},D={key:1,class:"pronouns"},M={key:0,class:"menu"},T=["onClick"],G={class:"text"},C=(0,s._)("span",{class:"icon"},null,-1),x=[C],E=(0,s._)("div",{class:"reminderHoverTarget"},null,-1);function B(e,t,r,n,l,h){const d=(0,s.up)("Token"),m=(0,s.up)("font-awesome-icon");return(0,s.wg)(),(0,s.iD)("li",{style:(0,a.j5)(h.zoom)},[(0,s._)("div",{ref:"player",class:(0,a.C_)(["player",[{dead:r.player.isDead,marked:(!e.session.isSpectator||e.session.isVoteWatchingAllowed)&&e.session.markedPlayer===h.index,"no-vote":r.player.isVoteless,you:e.session.sessionId&&r.player.id&&r.player.id===e.session.playerId,"vote-yes":(!e.session.isSpectator||e.session.isVoteWatchingAllowed)&&e.session.votes[h.index],"vote-lock":h.voteLocked},r.player.role.team]])},[(0,s._)("div",{class:"shroud",onClick:t[0]||(t[0]=e=>h.toggleStatus())}),(0,s._)("div",{class:"life",onClick:t[1]||(t[1]=e=>h.toggleStatus())}),e.nightOrder.get(r.player).first&&e.grimoire.isNightOrder?((0,s.wg)(),(0,s.iD)("div",v,[(0,s._)("em",null,(0,a.zw)(e.nightOrder.get(r.player).first)+".",1),r.player.role.firstNightReminder?((0,s.wg)(),(0,s.iD)("span",A,(0,a.zw)(r.player.role.firstNightReminder),1)):(0,s.kq)("",!0)])):(0,s.kq)("",!0),e.nightOrder.get(r.player).other&&e.grimoire.isNightOrder?((0,s.wg)(),(0,s.iD)("div",R,[(0,s._)("em",null,(0,a.zw)(e.nightOrder.get(r.player).other)+".",1),r.player.role.otherNightReminder?((0,s.wg)(),(0,s.iD)("span",S,(0,a.zw)(r.player.role.otherNightReminder),1)):(0,s.kq)("",!0)])):(0,s.kq)("",!0),(0,s.Wm)(d,{role:r.player.role,onSetRole:t[2]||(t[2]=t=>e.$emit("trigger",["openRoleModal"]))},null,8,["role"]),(0,s._)("div",{class:"overlay",onClick:t[3]||(t[3]=e=>h.vote())},[(0,s.Wm)(m,{icon:"hand-paper",class:"vote",title:"Hand UP"})]),(0,s._)("div",{class:"overlay",onClick:t[4]||(t[4]=e=>h.vote())},[(0,s.Wm)(m,{icon:"xmark",class:"vote",title:"Hand DOWN"})]),(0,s._)("div",{class:"overlay",onClick:t[5]||(t[5]=e=>h.cancel())},[(0,s.Wm)(m,{icon:"times-circle",class:"cancel",title:"Cancel"})]),(0,s._)("div",{class:"overlay",onClick:t[6]||(t[6]=e=>h.swapPlayer(r.player))},[(0,s.Wm)(m,{icon:"exchange-alt",class:"swap",title:"Swap seats with this player"})]),(0,s._)("div",{class:"overlay",onClick:t[7]||(t[7]=e=>h.movePlayer(r.player))},[(0,s.Wm)(m,{icon:"redo-alt",class:"move",title:"Move player to this seat"})]),(0,s._)("div",{class:"overlay",onClick:t[8]||(t[8]=e=>h.nominatePlayer(r.player))},[(0,s.Wm)(m,{icon:"hand-point-right",class:"nominate",title:"Nominate this player"})]),r.player.id&&e.session.sessionId?((0,s.wg)(),(0,s.j4)(m,{key:2,icon:"chair",class:(0,a.C_)(["seat",{highlight:e.session.isRolesDistributed}])},null,8,["class"])):(0,s.kq)("",!0),(0,s._)("div",{onClick:t[9]||(t[9]=e=>h.updatePlayer("isVoteless",!0))},[r.player.isDead&&!r.player.isVoteless?((0,s.wg)(),(0,s.j4)(m,{key:0,icon:"vote-yea",class:"has-vote",title:"Ghost vote"})):(0,s.kq)("",!0)]),(0,s._)("div",I,[(0,s.Wm)(m,{icon:"skull"})]),(0,s._)("div",{class:(0,a.C_)(["name",{active:l.isMenuOpen}]),onClick:t[10]||(t[10]=e=>l.isMenuOpen=!l.isMenuOpen)},[(0,s._)("span",null,(0,a.zw)(r.player.name),1),r.player.pronouns?((0,s.wg)(),(0,s.j4)(m,{key:0,icon:"venus-mars"})):(0,s.kq)("",!0),r.player.pronouns?((0,s.wg)(),(0,s.iD)("div",D,[(0,s._)("span",null,(0,a.zw)(r.player.pronouns),1)])):(0,s.kq)("",!0)],2),(0,s.Wm)(o.uT,{name:"fold"},{default:(0,s.w5)((()=>[l.isMenuOpen?((0,s.wg)(),(0,s.iD)("ul",M,[!e.session.isSpectator||e.session.isSpectator&&r.player.id===e.session.playerId?((0,s.wg)(),(0,s.iD)("li",{key:0,onClick:t[11]||(t[11]=(...e)=>h.changePronouns&&h.changePronouns(...e))},[(0,s.Wm)(m,{icon:"venus-mars"}),(0,s.Uk)("Change Pronouns ")])):(0,s.kq)("",!0),e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)(s.HY,{key:1},[(0,s._)("li",{onClick:t[12]||(t[12]=(...e)=>h.changeName&&h.changeName(...e))},[(0,s.Wm)(m,{icon:"user-edit"}),(0,s.Uk)("Rename ")]),(0,s._)("li",{onClick:t[13]||(t[13]=e=>h.movePlayer()),class:(0,a.C_)({disabled:e.session.lockedVote})},[(0,s.Wm)(m,{icon:"redo-alt"}),(0,s.Uk)(" Move player ")],2),(0,s._)("li",{onClick:t[14]||(t[14]=e=>h.swapPlayer()),class:(0,a.C_)({disabled:e.session.lockedVote})},[(0,s.Wm)(m,{icon:"exchange-alt"}),(0,s.Uk)(" Swap seats ")],2),(0,s._)("li",{onClick:t[15]||(t[15]=(...e)=>h.removePlayer&&h.removePlayer(...e)),class:(0,a.C_)({disabled:e.session.lockedVote})},[(0,s.Wm)(m,{icon:"times-circle"}),(0,s.Uk)(" Remove ")],2),r.player.id&&e.session.sessionId?((0,s.wg)(),(0,s.iD)("li",{key:0,onClick:t[16]||(t[16]=e=>h.updatePlayer("id","",!0))},[(0,s.Wm)(m,{icon:"chair"}),(0,s.Uk)(" Empty seat ")])):(0,s.kq)("",!0),e.session.nomination?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("li",{key:1,onClick:t[17]||(t[17]=e=>h.nominatePlayer())},[(0,s.Wm)(m,{icon:"hand-point-right"}),(0,s.Uk)(" Nomination ")]))],64)),e.session.isSpectator?((0,s.wg)(),(0,s.iD)("li",{key:2,onClick:t[18]||(t[18]=(...e)=>h.claimSeat&&h.claimSeat(...e)),class:(0,a.C_)({disabled:r.player.id&&r.player.id!==e.session.playerId})},[(0,s.Wm)(m,{icon:"chair"}),r.player.id?r.player.id===e.session.playerId?((0,s.wg)(),(0,s.iD)(s.HY,{key:1},[(0,s.Uk)(" Vacate seat ")],64)):((0,s.wg)(),(0,s.iD)(s.HY,{key:2},[(0,s.Uk)(" Seat occupied")],64)):((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[(0,s.Uk)(" Claim seat ")],64))],2)):(0,s.kq)("",!0)])):(0,s.kq)("",!0)])),_:1})],2),r.player.reminders?((0,s.wg)(!0),(0,s.iD)(s.HY,{key:0},(0,s.Ko)(r.player.reminders,(t=>((0,s.wg)(),(0,s.iD)("div",{class:(0,a.C_)(["reminder",[t.role]]),key:t.role+" "+t.name,onClick:e=>h.removeReminder(t)},[(0,s._)("span",{class:"icon",style:(0,a.j5)({backgroundImage:`url(${t.image&&e.grimoire.isImageOptIn?t.image:i(6003)("./"+(t.imageAlt||t.role)+".png")})`})},null,4),(0,s._)("span",G,(0,a.zw)(t.name),1)],10,T)))),128)):(0,s.kq)("",!0),(0,s._)("div",{class:"reminder add",onClick:t[19]||(t[19]=t=>e.$emit("trigger",["openReminderModal"]))},x),E],4)}const Y=e=>((0,s.dD)("data-v-6a512cb0"),e=e(),(0,s.Cn)(),e),W={key:1,class:"leaf-left"},Z={key:2,class:"leaf-right"},V={key:4,class:"leaf-orange"},P={viewBox:"0 0 150 150",class:"name"},j=Y((()=>(0,s._)("path",{d:"M 13 75 C 13 160, 138 160, 138 75",id:"curve",fill:"transparent"},null,-1))),O=["font-size"],z={"xlink:href":"#curve"},U={key:5,class:"ability"};function H(e,t,o,r,n,l){return(0,s.wg)(),(0,s.iD)("div",{class:(0,a.C_)(["token",[o.role.id]]),onClick:t[0]||(t[0]=(...e)=>l.setRole&&l.setRole(...e))},[o.role.id?((0,s.wg)(),(0,s.iD)("span",{key:0,class:"icon",style:(0,a.j5)({backgroundImage:`url(${o.role.image&&e.grimoire.isImageOptIn?o.role.image:i(6003)("./"+(o.role.imageAlt||o.role.id)+".png")})`})},null,4)):(0,s.kq)("",!0),o.role.firstNight||o.role.firstNightReminder?((0,s.wg)(),(0,s.iD)("span",W)):(0,s.kq)("",!0),o.role.otherNight||o.role.otherNightReminder?((0,s.wg)(),(0,s.iD)("span",Z)):(0,s.kq)("",!0),l.reminderLeaves?((0,s.wg)(),(0,s.iD)("span",{key:3,class:(0,a.C_)(["leaf-top"+l.reminderLeaves])},null,2)):(0,s.kq)("",!0),o.role.setup?((0,s.wg)(),(0,s.iD)("span",V)):(0,s.kq)("",!0),((0,s.wg)(),(0,s.iD)("svg",P,[j,(0,s._)("text",{width:"150",x:"66.6%","text-anchor":"middle",class:"label mozilla","font-size":l.nameToFontSize(o.role.name)},[(0,s._)("textPath",z,(0,a.zw)(o.role.name),1)],8,O)])),(0,s._)("div",{class:(0,a.C_)(["edition",[`edition-${o.role.edition}`,o.role.team]])},null,2),o.role.ability?((0,s.wg)(),(0,s.iD)("div",U,(0,a.zw)(o.role.ability),1)):(0,s.kq)("",!0)],2)}const F={name:"Token",props:{role:{type:Object,default:()=>({})}},computed:{reminderLeaves:function(){return(this.role.reminders||[]).length+(this.role.remindersGlobal||[]).length},...(0,d.rn)(["grimoire"])},data(){return{}},methods:{nameToFontSize(e){return e&&e.length>14?"80%":e&&e.length>10?"90%":"110%"},setRole(){this.$emit("set-role")}}};var J=i(3744);const L=(0,J.Z)(F,[["render",H],["__scopeId","data-v-6a512cb0"]]),Q=L,q={components:{Token:Q},props:{player:{type:Object,required:!0}},computed:{...(0,d.rn)("players",["players"]),...(0,d.rn)(["grimoire","session"]),...(0,d.Se)({nightOrder:"players/nightOrder"}),index:function(){return this.players.indexOf(this.player)},voteLocked:function(){const e=this.session,t=this.players.length;if(!e.nomination)return!1;const i=(this.index-1+t-e.nomination[1])%t;return iwindow.innerHeight?"vh":"vw";return this.players.length<7?{width:18+this.grimoire.zoom+e}:this.players.length<=10?{width:16+this.grimoire.zoom+e}:this.players.length<=15?{width:14+this.grimoire.zoom+e}:{width:12+this.grimoire.zoom+e}}},data(){return{isMenuOpen:!1,isSwap:!1}},methods:{changePronouns(){if(this.session.isSpectator&&this.player.id!==this.session.playerId)return;const e=prompt("Player pronouns",this.player.pronouns);null!==e&&this.updatePlayer("pronouns",e,!0)},toggleStatus(){this.grimoire.isPublic?this.player.isDead?this.player.isVoteless?(this.updatePlayer("isVoteless",!1),this.updatePlayer("isDead",!1)):this.updatePlayer("isVoteless",!0):(this.updatePlayer("isDead",!0),this.player.isMarked&&this.updatePlayer("isMarked",!1)):(this.updatePlayer("isDead",!this.player.isDead),this.player.isMarked&&this.updatePlayer("isMarked",!1),this.player.isVoteless&&this.updatePlayer("isVoteless",!1))},changeName(){if(this.session.isSpectator)return;const e=prompt("Player name",this.player.name)||this.player.name;this.updatePlayer("name",e,!0)},removeReminder(e){const t=[...this.player.reminders];t.splice(this.player.reminders.indexOf(e),1),this.updatePlayer("reminders",t,!0)},updatePlayer(e,t,i=!1){this.session.isSpectator&&"reminders"!==e&&"pronouns"!==e||(this.$store.commit("players/update",{player:this.player,property:e,value:t}),i&&(this.isMenuOpen=!1))},removePlayer(){this.isMenuOpen=!1,this.$emit("trigger",["removePlayer"])},swapPlayer(e){this.isMenuOpen=!1,this.$emit("trigger",["swapPlayer",e])},movePlayer(e){this.isMenuOpen=!1,this.$emit("trigger",["movePlayer",e])},nominatePlayer(e){this.isMenuOpen=!1,this.$emit("trigger",["nominatePlayer",e])},cancel(){this.$emit("trigger",["cancel"])},claimSeat(){this.isMenuOpen=!1,this.$emit("trigger",["claimSeat"])},vote(){this.session.isSpectator||this.voteLocked&&this.$store.commit("session/voteSync",[this.index,!this.session.votes[this.index]])}}},X=(0,J.Z)(q,[["render",B]]),K=X,_=e=>((0,s.dD)("data-v-bc7a83f6"),e=e(),(0,s.Cn)(),e),$=_((()=>(0,s._)("h3",null,"Choose a reminder token:",-1))),ee={class:"reminders"},te=["onClick"],ie={class:"text"};function oe(e,t,o,r,n,l){const h=(0,s.up)("Modal");return e.modals.reminder&&l.availableReminders.length&&e.players[o.playerIndex]?((0,s.wg)(),(0,s.j4)(h,{key:0,onClose:t[0]||(t[0]=t=>e.toggleModal("reminder"))},{default:(0,s.w5)((()=>[$,(0,s._)("ul",ee,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(l.availableReminders,(t=>((0,s.wg)(),(0,s.iD)("li",{class:(0,a.C_)(["reminder",[t.role]]),key:t.role+" "+t.name,onClick:e=>l.addReminder(t)},[(0,s._)("span",{class:"icon",style:(0,a.j5)({backgroundImage:`url(${t.image&&e.grimoire.isImageOptIn?t.image:i(6003)("./"+(t.imageAlt||t.role)+".png")})`})},null,4),(0,s._)("span",ie,(0,a.zw)(t.name),1)],10,te)))),128))])])),_:1})):(0,s.kq)("",!0)}const se={class:"top-right-buttons"},ae={class:"slot"};function re(e,t,i,r,n,l){const h=(0,s.up)("font-awesome-icon");return(0,s.wg)(),(0,s.j4)(o.uT,{name:"modal-fade"},{default:(0,s.w5)((()=>[(0,s._)("div",{class:"modal-backdrop",onClick:t[3]||(t[3]=(...e)=>l.close&&l.close(...e))},[(0,s._)("div",{class:(0,a.C_)(["modal",{maximized:e.isMaximized}]),role:"dialog","aria-labelledby":"modalTitle","aria-describedby":"modalDescription",onClick:t[2]||(t[2]=(0,o.iM)((()=>{}),["stop"]))},[(0,s._)("div",se,[(0,s._)("div",{onClick:t[0]||(t[0]=t=>e.isMaximized=!e.isMaximized),style:{display:"inline-block"}},[(0,s.Wm)(h,{class:"top-right-button",icon:["fas",e.isMaximized?"window-minimize":"window-maximize"]},null,8,["icon"])]),(0,s._)("div",{onClick:t[1]||(t[1]=(...e)=>l.close&&l.close(...e)),style:{display:"inline-block"}},[(0,s.Wm)(h,{class:"top-right-button",icon:"times-circle"})])]),(0,s._)("div",ae,[(0,s.WI)(e.$slots,"default")])],2)])])),_:3})}const ne={emits:["close"],data:function(){return{isMaximized:!1}},methods:{close(){this.$emit("close")}}},le=(0,J.Z)(ne,[["render",re]]),he=le,de=({id:e,image:t,imageAlt:i})=>o=>({role:e,image:t,imageAlt:i,name:o}),me={components:{Modal:he},props:["playerIndex"],computed:{availableReminders(){let e=[];const{players:t,bluffs:i}=this.$store.state.players;return this.$store.state.roles.forEach((o=>{(t.some((e=>e.role.id===o.id))||i.some((e=>e.id===o.id)))&&(e=[...e,...o.reminders.map(de(o))]),o.remindersGlobal&&o.remindersGlobal.length&&(e=[...e,...o.remindersGlobal.map(de(o))])})),this.$store.state.players.fabled.forEach((t=>{e=[...e,...t.reminders.map(de(t))]})),this.$store.state.otherTravelers.forEach((i=>{t.some((e=>e.role.id===i.id))&&(e=[...e,...i.reminders.map(de(i))])})),this.$store.state.otherRoles.forEach((o=>{(t.some((e=>e.role.id===o.id))||i.some((e=>e.id===o.id)))&&(e=[...e,...o.reminders.map(de(o))])})),e.push({role:"good",name:"Good"}),e.push({role:"evil",name:"Evil"}),e.push({role:"custom",name:"Custom note"}),e},...(0,d.rn)(["modals","grimoire"]),...(0,d.rn)("players",["players"])},methods:{addReminder(e){const t=this.$store.state.players.players[this.playerIndex];let i;if("custom"===e.role){const e=prompt("Add a custom reminder note");if(!e)return;i=[...t.reminders,{role:"custom",name:e}]}else i=[...t.reminders,e];this.$store.commit("players/update",{player:t,property:"reminders",value:i}),this.$store.commit("toggleModal","reminder")},...(0,d.OI)(["toggleModal"])}},ce=(0,J.Z)(me,[["render",oe],["__scopeId","data-v-bc7a83f6"]]),ge=ce,pe=e=>((0,s.dD)("data-v-738a124c"),e=e(),(0,s.Cn)(),e),ye={key:0},ue=pe((()=>(0,s._)("span",null,"Find a Plus One character: ",-1))),fe={key:1,class:"tokens"},be=["onClick"],we={key:2,class:"tokens"},ke=["onClick"],Ne={key:3,class:"tokens"},ve=["onClick"],Ae={key:4,class:"button-group"};function Re(e,t,i,r,n,l){const h=(0,s.up)("token"),d=(0,s.up)("Token"),m=(0,s.up)("Modal");return e.modals.role&&l.availableRoles.length?((0,s.wg)(),(0,s.j4)(m,{key:0,onClose:l.close},{default:(0,s.w5)((()=>[(0,s._)("h3",null," Choose a new character for "+(0,a.zw)(i.playerIndex>=0&&e.players.length?e.players[i.playerIndex].name:"bluffing"),1),e.fabled.find((e=>"plusone"===e.id))&&"editionRoles"===n.tab?((0,s.wg)(),(0,s.iD)("div",ye,[ue,(0,s.wy)((0,s._)("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=e=>n.filter=e)},null,512),[[o.nr,n.filter]])])):(0,s.kq)("",!0),l.filteredRoles.length>0?((0,s.wg)(),(0,s.iD)("ul",fe,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(l.filteredRoles.slice(0,10),(e=>((0,s.wg)(),(0,s.iD)("li",{class:(0,a.C_)([e.team]),key:e.id,onClick:t=>l.setRole(e)},[(0,s.Wm)(h,{role:e},null,8,["role"])],10,be)))),128))])):(0,s.kq)("",!0),"editionRoles"===n.tab||!e.otherTravelers.length>0?((0,s.wg)(),(0,s.iD)("ul",we,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(l.availableRoles,(e=>((0,s.wg)(),(0,s.iD)("li",{class:(0,a.C_)([e.team]),key:e.id,onClick:t=>l.setRole(e)},[(0,s.Wm)(d,{role:e},null,8,["role"])],10,ke)))),128))])):(0,s.kq)("",!0),"otherTravelers"===n.tab&&e.otherTravelers.length>0?((0,s.wg)(),(0,s.iD)("ul",Ne,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.otherTravelers,(e=>((0,s.wg)(),(0,s.iD)("li",{class:(0,a.C_)([e.team]),key:e.id,onClick:t=>l.setRole(e)},[(0,s.Wm)(d,{role:e},null,8,["role"])],10,ve)))),128))])):(0,s.kq)("",!0),i.playerIndex>=0&&e.otherTravelers.length>0&&!e.session.isSpectator?((0,s.wg)(),(0,s.iD)("div",Ae,[(0,s._)("span",{class:(0,a.C_)(["button",{townsfolk:"editionRoles"===n.tab}]),onClick:t[1]||(t[1]=e=>n.tab="editionRoles")},"Edition Roles",2),(0,s._)("span",{class:(0,a.C_)(["button",{townsfolk:"otherTravelers"===n.tab}]),onClick:t[2]||(t[2]=e=>n.tab="otherTravelers")},"Other Travelers",2)])):(0,s.kq)("",!0)])),_:1},8,["onClose"])):(0,s.kq)("",!0)}const Se={components:{Token:Q,Modal:he},props:["playerIndex"],computed:{filteredRoles(){if(""===this.filter)return[];var e=this.otherRoles.filter((e=>e.name.toLowerCase().includes(this.filter.toLowerCase())));return e},availableRoles(){const e=[],t=this.$store.state.players.players;return this.$store.state.roles.forEach((i=>{(this.playerIndex>=0||this.playerIndex<0&&!t.some((e=>e.role.id===i.id)))&&e.push(i)})),e.push({}),e},...(0,d.rn)(["modals","roles","session"]),...(0,d.rn)("players",["players","fabled"]),...(0,d.rn)(["otherTravelers"]),...(0,d.rn)(["otherRoles"])},data(){return{tab:"editionRoles",filter:""}},methods:{setRole(e){if(this.playerIndex<0)this.$store.commit("players/setBluff",{index:-1*this.playerIndex-1,role:e});else{if(this.session.isSpectator&&"traveler"===e.team)return;const t=this.$store.state.players.players[this.playerIndex];this.$store.commit("players/update",{player:t,property:"role",value:e})}this.tab="editionRoles",this.$store.commit("toggleModal","role")},close(){this.tab="editionRoles",this.filter="",this.toggleModal("role")},...(0,d.OI)(["toggleModal"])}},Ie=(0,J.Z)(Se,[["render",Re],["__scopeId","data-v-738a124c"]]),De=Ie,Me={components:{Player:K,Token:Q,RoleModal:De,ReminderModal:ge},computed:{...(0,d.Se)({nightOrder:"players/nightOrder"}),...(0,d.rn)(["grimoire","roles","session"]),...(0,d.rn)("players",["players","bluffs","fabled"])},data(){return{selectedPlayer:0,bluffSize:3,swap:-1,move:-1,nominate:-1,isBluffsOpen:!0,isFabledOpen:!0}},methods:{toggleBluffs(){this.isBluffsOpen=!this.isBluffsOpen},toggleFabled(){this.isFabledOpen=!this.isFabledOpen},removeFabled(e){this.session.isSpectator||this.$store.commit("players/setFabled",{index:e})},handleTrigger(e,[t,i]){"function"===typeof this[t]&&this[t](e,i)},claimSeat(e){this.session.isSpectator&&(this.session.playerId===this.players[e].id?this.$store.commit("session/claimSeat",-1):this.$store.commit("session/claimSeat",e))},openReminderModal(e){this.selectedPlayer=e,this.$store.commit("toggleModal","reminder")},openRoleModal(e){const t=this.players[e];this.session.isSpectator&&t&&"traveler"===t.role.team||(this.selectedPlayer=e,this.$store.commit("toggleModal","role"))},removePlayer(e){if(!this.session.isSpectator&&!this.session.lockedVote&&confirm(`Do you really want to remove ${this.players[e].name}?`)){const{nomination:t}=this.session;t&&(t.includes(e)?this.$store.commit("session/nomination"):(t[0]>e||t[1]>e)&&this.$store.commit("session/setNomination",[t[0]>e?t[0]-1:t[0],t[1]>e?t[1]-1:t[1]])),this.$store.commit("players/remove",e)}},swapPlayer(e,t){if(!this.session.isSpectator&&!this.session.lockedVote)if(void 0===t)this.cancel(),this.swap=e;else{if(this.session.nomination){const e=this.players.indexOf(t),i=this.session.nomination.map((t=>t===this.swap?e:t===e?this.swap:t));this.session.nomination[0]===i[0]&&this.session.nomination[1]===i[1]||this.$store.commit("session/setNomination",i)}this.$store.commit("players/swap",[this.swap,this.players.indexOf(t)]),this.cancel()}},movePlayer(e,t){if(!this.session.isSpectator&&!this.session.lockedVote)if(void 0===t)this.cancel(),this.move=e;else{if(this.session.nomination){const e=this.players.indexOf(t),i=this.session.nomination.map((t=>t===this.move?e:t>this.move&&t<=e?t-1:t=e?t+1:t));this.session.nomination[0]===i[0]&&this.session.nomination[1]===i[1]||this.$store.commit("session/setNomination",i)}this.$store.commit("players/move",[this.move,this.players.indexOf(t)]),this.cancel()}},nominatePlayer(e,t){if(!this.session.isSpectator&&!this.session.lockedVote)if(void 0===t)this.cancel(),e!==this.nominate&&(this.nominate=e);else{const e=[this.nominate,this.players.indexOf(t)];this.$store.commit("session/nomination",{nomination:e}),this.cancel()}},cancel(){this.move=-1,this.swap=-1,this.nominate=-1}}},Te=(0,J.Z)(Me,[["render",N]]),Ge=Te,Ce={class:"info"},xe={key:0},Ee={key:0,class:"meta"},Be={key:1},Ye={key:0},We={key:1};function Ze(e,t,o,r,n,l){const h=(0,s.up)("font-awesome-icon");return(0,s.wg)(),(0,s.iD)("ul",Ce,[(0,s._)("li",{class:(0,a.C_)(["edition",["edition-"+e.edition.id]]),style:(0,a.j5)({backgroundImage:`url(${e.edition.logo&&e.grimoire.isImageOptIn?e.edition.logo:i(3821)("./"+e.edition.id+".png")})`})},null,6),e.players.length-l.teams.traveler<5?((0,s.wg)(),(0,s.iD)("li",xe," Please add more players! ")):(0,s.kq)("",!0),(0,s._)("li",null,[e.edition.isOfficial?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("span",Ee,(0,a.zw)(e.edition.name)+" "+(0,a.zw)(e.edition.author?"by "+e.edition.author:""),1)),(0,s._)("span",null,[(0,s.Uk)((0,a.zw)(e.players.length)+" ",1),(0,s.Wm)(h,{class:"players",icon:"users"})]),(0,s._)("span",null,[(0,s.Uk)((0,a.zw)(l.teams.alive)+" ",1),(0,s.Wm)(h,{class:"alive",icon:"heartbeat"})]),(0,s._)("span",null,[(0,s.Uk)((0,a.zw)(l.teams.votes)+" ",1),(0,s.Wm)(h,{class:"votes",icon:"vote-yea"})])]),e.players.length-l.teams.traveler>=5?((0,s.wg)(),(0,s.iD)("li",Be,[(0,s._)("span",null,[(0,s.Uk)((0,a.zw)(l.teams.townsfolk)+" ",1),(0,s.Wm)(h,{class:"townsfolk",icon:"user-friends"})]),(0,s._)("span",null,[(0,s.Uk)((0,a.zw)(l.teams.outsider)+" ",1),(0,s.Wm)(h,{class:"outsider",icon:l.teams.outsider>1?"user-friends":"user"},null,8,["icon"])]),(0,s._)("span",null,[(0,s.Uk)((0,a.zw)(l.teams.minion)+" ",1),(0,s.Wm)(h,{class:"minion",icon:l.teams.minion>1?"user-friends":"user"},null,8,["icon"])]),(0,s._)("span",null,[(0,s.Uk)((0,a.zw)(l.teams.demon)+" ",1),(0,s.Wm)(h,{class:"demon",icon:l.teams.demon>1?"user-friends":"user"},null,8,["icon"])]),l.teams.traveler?((0,s.wg)(),(0,s.iD)("span",Ye,[(0,s.Uk)((0,a.zw)(l.teams.traveler)+" ",1),(0,s.Wm)(h,{class:"traveler",icon:l.teams.traveler>1?"user-friends":"user"},null,8,["icon"])])):(0,s.kq)("",!0),e.grimoire.isNight?((0,s.wg)(),(0,s.iD)("span",We,[(0,s.Uk)(" Night phase "),(0,s.Wm)(h,{icon:["fas","cloud-moon"]})])):(0,s.kq)("",!0)])):(0,s.kq)("",!0)])}const Ve=JSON.parse('[{"townsfolk":3,"outsider":0,"minion":1,"demon":1},{"townsfolk":3,"outsider":1,"minion":1,"demon":1},{"townsfolk":5,"outsider":0,"minion":1,"demon":1},{"townsfolk":5,"outsider":1,"minion":1,"demon":1},{"townsfolk":5,"outsider":2,"minion":1,"demon":1},{"townsfolk":7,"outsider":0,"minion":2,"demon":1},{"townsfolk":7,"outsider":1,"minion":2,"demon":1},{"townsfolk":7,"outsider":2,"minion":2,"demon":1},{"townsfolk":9,"outsider":0,"minion":3,"demon":1},{"townsfolk":9,"outsider":1,"minion":3,"demon":1},{"townsfolk":9,"outsider":2,"minion":3,"demon":1}]'),Pe={computed:{teams:function(){const{players:e}=this.$store.state.players,t=this.$store.getters["players/nonTravelers"],i=e.filter((e=>!0!==e.isDead)).length;return{...Ve[t-5],traveler:e.length-t,alive:i,votes:i+e.filter((e=>!0===e.isDead&&!0!==e.isVoteless)).length}},...(0,d.rn)(["edition","grimoire"]),...(0,d.rn)("players",["players"])}},je=(0,J.Z)(Pe,[["render",Ze],["__scopeId","data-v-6e9c5c8e"]]),Oe=je,ze=e=>((0,s.dD)("data-v-02f0607a"),e=e(),(0,s.Cn)(),e),Ue={id:"controls"},He=["title"],Fe=["title"],Je=ze((()=>(0,s._)("li",{class:"headline"},"Grimoire",-1))),Le=ze((()=>(0,s._)("em",null,"[G]",-1))),Qe=ze((()=>(0,s._)("em",null,"[S]",-1))),qe={key:3},Xe=ze((()=>(0,s._)("small",null,"Show Custom Images",-1))),Ke={key:0,class:"headline"},_e={key:1,class:"headline"},$e=ze((()=>(0,s._)("em",null,"[H]",-1))),et=ze((()=>(0,s._)("em",null,"[J]",-1))),tt={key:0},it=ze((()=>(0,s._)("em",null,"[V]",-1))),ot=ze((()=>(0,s._)("li",{class:"headline"},"Players",-1))),st=ze((()=>(0,s._)("em",null,"[A]",-1))),at=ze((()=>(0,s._)("li",{class:"headline"},"Characters",-1))),rt=ze((()=>(0,s._)("em",null,"[E]",-1))),nt=ze((()=>(0,s._)("em",null,"[C]",-1))),lt=ze((()=>(0,s._)("li",{class:"headline"},"Help",-1))),ht=ze((()=>(0,s._)("em",null,"[R]",-1))),dt=ze((()=>(0,s._)("em",null,"[N]",-1))),mt=ze((()=>(0,s._)("a",{href:"https://discord.gg/Gd7ybwWbFk",target:"_blank"}," Join Discord ",-1))),ct={href:"https://discord.gg/Gd7ybwWbFk",target:"_blank"},gt=ze((()=>(0,s._)("a",{href:"https://github.com/bra1n/townsquare",target:"_blank"}," Source code ",-1))),pt={href:"https://github.com/bra1n/townsquare",target:"_blank"};function yt(e,t,i,r,n,l){const h=(0,s.up)("font-awesome-icon");return(0,s.wg)(),(0,s.iD)("div",Ue,[(0,s.wy)((0,s._)("span",{class:"nomlog-summary",onClick:t[0]||(t[0]=t=>e.toggleModal("voteHistory")),title:`${e.session.voteHistory.length} recent ${1==e.session.voteHistory.length?"nomination":"nominations"}`},[(0,s.Wm)(h,{icon:"book-dead"}),(0,s.Uk)(" "+(0,a.zw)(e.session.voteHistory.length),1)],8,He),[[o.F8,e.session.sessionId]]),e.session.sessionId?((0,s.wg)(),(0,s.iD)("span",{key:0,class:(0,a.C_)(["session",{spectator:e.session.isSpectator,reconnecting:e.session.isReconnecting}]),onClick:t[1]||(t[1]=(...e)=>l.leaveSession&&l.leaveSession(...e)),title:`${e.session.playerCount} other players in this session${e.session.ping?" ("+e.session.ping+"ms latency)":""}`},[(0,s.Wm)(h,{icon:"broadcast-tower"}),(0,s.Uk)(" "+(0,a.zw)(e.session.playerCount),1)],10,Fe)):(0,s.kq)("",!0),(0,s._)("div",{class:(0,a.C_)(["menu",{open:e.grimoire.isMenuOpen}])},[(0,s._)("span",{onClick:t[2]||(t[2]=(...t)=>e.toggleMenu&&e.toggleMenu(...t))},[(0,s.Wm)(h,{icon:"cog",class:"menuCog"})]),(0,s._)("ul",null,[(0,s._)("li",{class:(0,a.C_)(["tabs",n.tab])},[(0,s._)("span",{onClick:t[3]||(t[3]=e=>n.tab="grimoire")},[(0,s.Wm)(h,{icon:"book-open"})]),(0,s._)("span",{onClick:t[4]||(t[4]=e=>n.tab="session")},[(0,s.Wm)(h,{icon:"broadcast-tower"})]),(0,s._)("span",{onClick:t[5]||(t[5]=e=>n.tab="players")},[e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.j4)(h,{key:0,icon:"users"}))]),(0,s._)("span",{onClick:t[6]||(t[6]=e=>n.tab="characters")},[(0,s.Wm)(h,{icon:"theater-masks"})]),(0,s._)("span",{onClick:t[7]||(t[7]=e=>n.tab="help")},[(0,s.Wm)(h,{icon:"question"})])],2),"grimoire"===n.tab?((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[Je,e.players.length?((0,s.wg)(),(0,s.iD)("li",{key:0,onClick:t[8]||(t[8]=(...t)=>e.toggleGrimoire&&e.toggleGrimoire(...t))},[e.grimoire.isPublic?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[(0,s.Uk)("Hide")],64)),e.grimoire.isPublic?((0,s.wg)(),(0,s.iD)(s.HY,{key:1},[(0,s.Uk)("Show")],64)):(0,s.kq)("",!0),Le])):(0,s.kq)("",!0),e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("li",{key:1,onClick:t[9]||(t[9]=(...e)=>l.toggleNight&&l.toggleNight(...e))},[e.grimoire.isNight?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[(0,s.Uk)("Switch to Night")],64)),e.grimoire.isNight?((0,s.wg)(),(0,s.iD)(s.HY,{key:1},[(0,s.Uk)("Switch to Day")],64)):(0,s.kq)("",!0),Qe])),e.players.length?((0,s.wg)(),(0,s.iD)("li",{key:2,onClick:t[10]||(t[10]=(...t)=>e.toggleNightOrder&&e.toggleNightOrder(...t))},[(0,s.Uk)(" Night order "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:["fas",e.grimoire.isNightOrder?"check-square":"square"]},null,8,["icon"])])])):(0,s.kq)("",!0),e.players.length?((0,s.wg)(),(0,s.iD)("li",qe,[(0,s.Uk)(" Zoom "),(0,s._)("em",null,[(0,s._)("span",{onClick:t[11]||(t[11]=t=>e.setZoom(e.grimoire.zoom-1)),class:"zoom"},[(0,s.Wm)(h,{icon:"search-minus"})]),(0,s.Uk)(" "+(0,a.zw)(Math.round(100+10*e.grimoire.zoom))+"% ",1),(0,s._)("span",{onClick:t[12]||(t[12]=t=>e.setZoom(e.grimoire.zoom+1)),class:"zoom"},[(0,s.Wm)(h,{icon:"search-plus"})])])])):(0,s.kq)("",!0),(0,s._)("li",{onClick:t[13]||(t[13]=(...e)=>l.setBackground&&l.setBackground(...e))},[(0,s.Uk)(" Background image "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:"image"})])]),e.edition.isOfficial?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("li",{key:4,onClick:t[14]||(t[14]=(...e)=>l.imageOptIn&&l.imageOptIn(...e))},[Xe,(0,s._)("em",null,[(0,s.Wm)(h,{icon:["fas",e.grimoire.isImageOptIn?"check-square":"square"]},null,8,["icon"])])])),(0,s._)("li",{onClick:t[15]||(t[15]=(...t)=>e.toggleStatic&&e.toggleStatic(...t))},[(0,s.Uk)(" Disable Animations "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:["fas",e.grimoire.isStatic?"check-square":"square"]},null,8,["icon"])])]),(0,s._)("li",{onClick:t[16]||(t[16]=(...t)=>e.toggleMuted&&e.toggleMuted(...t))},[(0,s.Uk)(" Mute Sounds "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:["fas",e.grimoire.isMuted?"volume-mute":"volume-up"]},null,8,["icon"])])])],64)):(0,s.kq)("",!0),"session"===n.tab?((0,s.wg)(),(0,s.iD)(s.HY,{key:1},[e.session.sessionId?((0,s.wg)(),(0,s.iD)("li",Ke,(0,a.zw)(e.session.isSpectator?"Playing":"Hosting"),1)):((0,s.wg)(),(0,s.iD)("li",_e,"Live Session")),e.session.sessionId?((0,s.wg)(),(0,s.iD)(s.HY,{key:3},[e.session.ping?((0,s.wg)(),(0,s.iD)("li",tt,[(0,s.Uk)(" Delay to "+(0,a.zw)(e.session.isSpectator?"host":"players")+" ",1),(0,s._)("em",null,(0,a.zw)(e.session.ping)+"ms",1)])):(0,s.kq)("",!0),(0,s._)("li",{onClick:t[19]||(t[19]=(...e)=>l.copySessionUrl&&l.copySessionUrl(...e))},[(0,s.Uk)(" Copy player link "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:"copy"})])]),e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("li",{key:1,onClick:t[20]||(t[20]=(...e)=>l.distributeRoles&&l.distributeRoles(...e))},[(0,s.Uk)(" Send Characters "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:"theater-masks"})])])),e.session.voteHistory.length||!e.session.isSpectator?((0,s.wg)(),(0,s.iD)("li",{key:2,onClick:t[21]||(t[21]=t=>e.toggleModal("voteHistory"))},[(0,s.Uk)(" Vote history"),it])):(0,s.kq)("",!0),(0,s._)("li",{onClick:t[22]||(t[22]=(...e)=>l.leaveSession&&l.leaveSession(...e))},[(0,s.Uk)(" Leave Session "),(0,s._)("em",null,(0,a.zw)(e.session.sessionId),1)])],64)):((0,s.wg)(),(0,s.iD)(s.HY,{key:2},[(0,s._)("li",{onClick:t[17]||(t[17]=(...e)=>l.hostSession&&l.hostSession(...e))},[(0,s.Uk)("Host (Storyteller)"),$e]),(0,s._)("li",{onClick:t[18]||(t[18]=(...e)=>l.joinSession&&l.joinSession(...e))},[(0,s.Uk)("Join (Player)"),et])],64))],64)):(0,s.kq)("",!0),"players"!==n.tab||e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)(s.HY,{key:2},[ot,e.players.length<20?((0,s.wg)(),(0,s.iD)("li",{key:0,onClick:t[23]||(t[23]=(...e)=>l.addPlayer&&l.addPlayer(...e))},[(0,s.Uk)("Add"),st])):(0,s.kq)("",!0),e.players.length>2?((0,s.wg)(),(0,s.iD)("li",{key:1,onClick:t[24]||(t[24]=(...e)=>l.randomizeSeatings&&l.randomizeSeatings(...e))},[(0,s.Uk)(" Randomize "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:"dice"})])])):(0,s.kq)("",!0),e.players.length?((0,s.wg)(),(0,s.iD)("li",{key:2,onClick:t[25]||(t[25]=(...e)=>l.clearPlayers&&l.clearPlayers(...e))},[(0,s.Uk)(" Remove all "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:"trash-alt"})])])):(0,s.kq)("",!0)],64)),"characters"===n.tab?((0,s.wg)(),(0,s.iD)(s.HY,{key:3},[at,e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("li",{key:0,onClick:t[26]||(t[26]=t=>e.toggleModal("edition"))},[(0,s.Uk)(" Select Edition "),rt])),!e.session.isSpectator&&e.players.length>4?((0,s.wg)(),(0,s.iD)("li",{key:1,onClick:t[27]||(t[27]=t=>e.toggleModal("roles"))},[(0,s.Uk)(" Choose & Assign "),nt])):(0,s.kq)("",!0),e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("li",{key:2,onClick:t[28]||(t[28]=t=>e.toggleModal("fabled"))},[(0,s.Uk)(" Add Fabled "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:"dragon"})])])),e.players.length?((0,s.wg)(),(0,s.iD)("li",{key:3,onClick:t[29]||(t[29]=(...e)=>l.clearRoles&&l.clearRoles(...e))},[(0,s.Uk)(" Remove all "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:"trash-alt"})])])):(0,s.kq)("",!0)],64)):(0,s.kq)("",!0),"help"===n.tab?((0,s.wg)(),(0,s.iD)(s.HY,{key:4},[lt,(0,s._)("li",{onClick:t[30]||(t[30]=t=>e.toggleModal("reference"))},[(0,s.Uk)(" Reference Sheet "),ht]),(0,s._)("li",{onClick:t[31]||(t[31]=t=>e.toggleModal("nightOrder"))},[(0,s.Uk)(" Night Order Sheet "),dt]),(0,s._)("li",{onClick:t[32]||(t[32]=t=>e.toggleModal("gameState"))},[(0,s.Uk)(" Game State JSON "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:"file-code"})])]),(0,s._)("li",null,[mt,(0,s._)("em",null,[(0,s._)("a",ct,[(0,s.Wm)(h,{icon:["fab","discord"]})])])]),(0,s._)("li",null,[gt,(0,s._)("em",null,[(0,s._)("a",pt,[(0,s.Wm)(h,{icon:["fab","github"]})])])])],64)):(0,s.kq)("",!0)])],2)])}const ut={computed:{...(0,d.rn)(["grimoire","session","edition"]),...(0,d.rn)("players",["players"])},data(){return{tab:"grimoire"}},methods:{setBackground(){const e=prompt("Enter custom background URL");(e||""===e)&&this.$store.commit("setBackground",e)},hostSession(){if(this.session.sessionId)return;const e=prompt("Enter a channel number / name for your session",Math.round(1e4*Math.random()));e&&(this.$store.commit("session/clearVoteHistory"),this.$store.commit("session/setSpectator",!1),this.$store.commit("session/setSessionId",e),this.copySessionUrl())},copySessionUrl(){const e=window.location.href.split("#")[0],t=e+"#"+this.session.sessionId;navigator.clipboard.writeText(t)},distributeRoles(){if(this.session.isSpectator)return;const e="Do you want to distribute assigned characters to all SEATED players?";confirm(e)&&(this.$store.commit("session/distributeRoles",!0),setTimeout((()=>{this.$store.commit("session/distributeRoles",!1)}).bind(this),2e3))},imageOptIn(){const e="Are you sure you want to allow custom images? A malicious script file author might track your IP address this way.";(this.grimoire.isImageOptIn||confirm(e))&&this.toggleImageOptIn()},joinSession(){if(this.session.sessionId)return this.leaveSession();let e=prompt("Enter the channel number / name of the session you want to join");e.match(/^https?:\/\//i)&&(e=e.split("#").pop()),e&&(this.$store.commit("session/clearVoteHistory"),this.$store.commit("session/setSpectator",!0),this.$store.commit("toggleGrimoire",!1),this.$store.commit("session/setSessionId",e))},leaveSession(){confirm("Are you sure you want to leave the active live game?")&&(this.$store.commit("session/setSpectator",!1),this.$store.commit("session/setSessionId",""))},addPlayer(){if(this.session.isSpectator)return;if(this.players.length>=20)return;const e=prompt("Player name");e&&this.$store.commit("players/add",e)},randomizeSeatings(){this.session.isSpectator||confirm("Are you sure you want to randomize seatings?")&&this.$store.dispatch("players/randomize")},clearPlayers(){this.session.isSpectator||confirm("Are you sure you want to remove all players?")&&(this.session.nomination&&this.$store.commit("session/nomination"),this.$store.commit("players/clear"))},clearRoles(){confirm("Are you sure you want to remove all player roles?")&&this.$store.dispatch("players/clearRoles")},toggleNight(){this.$store.commit("toggleNight"),this.grimoire.isNight&&this.$store.commit("session/setMarkedPlayer",-1)},...(0,d.OI)(["toggleGrimoire","toggleMenu","toggleImageOptIn","toggleMuted","toggleNightOrder","toggleStatic","setZoom","toggleModal"])}},ft=(0,J.Z)(ut,[["render",yt],["__scopeId","data-v-02f0607a"]]),bt=ft,wt=e=>((0,s.dD)("data-v-66bef8a1"),e=e(),(0,s.Cn)(),e),kt=["onClick"],Nt={key:1,class:"buttons"},vt=["onClick"],At=["onClick"],Rt={key:0,class:"warning"},St=wt((()=>(0,s._)("span",null," Warning: there are characters selected that modify the game setup! The randomizer does not account for these characters. ",-1))),It={class:"button-group"};function Dt(e,t,i,r,n,l){const h=(0,s.up)("Token"),d=(0,s.up)("font-awesome-icon"),m=(0,s.up)("Modal");return e.modals.roles&&e.nonTravelers>=5?((0,s.wg)(),(0,s.j4)(m,{key:0,class:"roles",onClose:t[3]||(t[3]=t=>e.toggleModal("roles"))},{default:(0,s.w5)((()=>[(0,s._)("h3",null,"Select the characters for "+(0,a.zw)(e.nonTravelers)+" players:",1),((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.roleSelection,((t,i)=>((0,s.wg)(),(0,s.iD)("ul",{class:"tokens",key:i},[(0,s._)("li",{class:(0,a.C_)(["count",[i]])},(0,a.zw)(t.reduce(((e,{selected:t})=>e+t),0))+" / "+(0,a.zw)(e.game[e.nonTravelers-5][i]),3),((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(t,(t=>((0,s.wg)(),(0,s.iD)("li",{class:(0,a.C_)([t.team,t.selected?"selected":""]),key:t.id,onClick:e=>t.selected=t.selected?0:1},[(0,s.Wm)(h,{role:t},null,8,["role"]),t.setup?((0,s.wg)(),(0,s.j4)(d,{key:0,icon:"exclamation-triangle"})):(0,s.kq)("",!0),e.allowMultiple?((0,s.wg)(),(0,s.iD)("div",Nt,[(0,s._)("div",{onClick:(0,o.iM)((e=>t.selected--),["stop"])},[(0,s.Wm)(d,{icon:"minus-circle"})],8,vt),(0,s._)("span",null,(0,a.zw)(t.selected>1?"x"+t.selected:""),1),(0,s._)("div",{onClick:(0,o.iM)((e=>t.selected++),["stop"])},[(0,s.Wm)(d,{icon:"plus-circle"})],8,At)])):(0,s.kq)("",!0)],10,kt)))),128))])))),128)),l.hasSelectedSetupRoles?((0,s.wg)(),(0,s.iD)("div",Rt,[(0,s.Wm)(d,{icon:"exclamation-triangle"}),St])):(0,s.kq)("",!0),(0,s._)("label",{class:(0,a.C_)(["multiple",{checked:e.allowMultiple}])},[(0,s.Wm)(d,{icon:e.allowMultiple?"check-square":"square"},null,8,["icon"]),(0,s.wy)((0,s._)("input",{type:"checkbox",name:"allow-multiple","onUpdate:modelValue":t[0]||(t[0]=t=>e.allowMultiple=t)},null,512),[[o.e8,e.allowMultiple]]),(0,s.Uk)(" Allow duplicate characters ")],2),(0,s._)("div",It,[(0,s._)("div",{class:(0,a.C_)(["button",{disabled:l.selectedRoles>e.nonTravelers||!l.selectedRoles}]),onClick:t[1]||(t[1]=(...e)=>l.assignRoles&&l.assignRoles(...e))},[(0,s.Wm)(d,{icon:"people-arrows"}),(0,s.Uk)(" Assign "+(0,a.zw)(l.selectedRoles)+" characters randomly ",1)],2),(0,s._)("div",{class:"button",onClick:t[2]||(t[2]=(...e)=>l.selectRandomRoles&&l.selectRandomRoles(...e))},[(0,s.Wm)(d,{icon:"random"}),(0,s.Uk)(" Shuffle characters ")])])])),_:1})):(0,s.kq)("",!0)}const Mt=e=>e[Math.floor(Math.random()*e.length)],Tt={components:{Token:Q,Modal:he},data:function(){return{roleSelection:{},game:Ve,allowMultiple:!1}},computed:{selectedRoles:function(){return Object.values(this.roleSelection).map((e=>e.reduce(((e,{selected:t})=>e+t),0))).reduce(((e,t)=>e+t),0)},hasSelectedSetupRoles:function(){return Object.values(this.roleSelection).some((e=>e.some((e=>e.selected&&e.setup))))},...(0,d.rn)(["roles","modals"]),...(0,d.rn)("players",["players"]),...(0,d.Se)({nonTravelers:"players/nonTravelers"})},methods:{selectRandomRoles(){this.roleSelection={},this.roles.forEach((e=>{this.roleSelection[e.team]||(this.roleSelection[e.team]=[]),this.roleSelection[e.team].push(e),e["selected"]=0})),delete this.roleSelection["traveler"];const e=Math.max(5,this.nonTravelers),t=this.game[e-5];Object.keys(t).forEach((e=>{for(let i=0;i!e.selected));t.length&&(Mt(t).selected=1)}}))},assignRoles(){if(this.selectedRoles<=this.nonTravelers&&this.selectedRoles){const e=Object.values(this.roleSelection).map((e=>e.reduce(((e,t)=>[...e,...Array(t.selected).fill(t)]),[]))).reduce(((e,t)=>[...e,...t]),[]).map((e=>[Math.random(),e])).sort(((e,t)=>e[0]-t[0])).map((e=>e[1]));this.players.forEach((t=>{if("traveler"!==t.role.team&&e.length){const i=e.pop();this.$store.commit("players/update",{player:t,property:"role",value:i})}})),this.$store.commit("toggleModal","roles")}},...(0,d.OI)(["toggleModal"])},mounted:function(){Object.keys(this.roleSelection).length||this.selectRandomRoles()},watch:{roles(){this.selectRandomRoles()}}},Gt=(0,J.Z)(Tt,[["render",Dt],["__scopeId","data-v-66bef8a1"]]),Ct=Gt,xt=e=>((0,s.dD)("data-v-e5f62d38"),e=e(),(0,s.Cn)(),e),Et={key:0},Bt=xt((()=>(0,s._)("h3",null,"Select an edition:",-1))),Yt={class:"editions"},Wt=["onClick"],Zt={key:1,class:"custom"},Vt=xt((()=>(0,s._)("h3",null,"Load custom script / characters",-1))),Pt=xt((()=>(0,s._)("a",{href:"https://script.bloodontheclocktower.com/",target:"_blank"},"Script Tool",-1))),jt=xt((()=>(0,s._)("br",null,null,-1))),Ot=xt((()=>(0,s._)("br",null,null,-1))),zt=xt((()=>(0,s._)("a",{href:"https://github.com/bra1n/townsquare#custom-characters",target:"_blank"},"the documentation",-1))),Ut=xt((()=>(0,s._)("b",null,"Only load custom JSON files from sources that you trust!",-1))),Ht=xt((()=>(0,s._)("h3",null,"Some popular custom scripts:",-1))),Ft={class:"scripts"},Jt=["onClick"],Lt={class:"button-group"};function Qt(e,t,o,r,n,l){const h=(0,s.up)("font-awesome-icon"),d=(0,s.up)("Modal");return e.modals.edition?((0,s.wg)(),(0,s.j4)(d,{key:0,class:"editions",onClose:t[6]||(t[6]=t=>e.toggleModal("edition"))},{default:(0,s.w5)((()=>[e.isCustom?((0,s.wg)(),(0,s.iD)("div",Zt,[Vt,(0,s.Uk)(" To play with a custom script, you need to select the characters you want to play with in the official "),Pt,(0,s.Uk)(' and then upload the generated "custom-list.json" either directly here or provide a URL to such a hosted JSON file.'),jt,Ot,(0,s.Uk)(" To play with custom characters, please read "),zt,(0,s.Uk)(" on how to write a custom character definition file. "),Ut,Ht,(0,s._)("ul",Ft,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.scripts,((e,t)=>((0,s.wg)(),(0,s.iD)("li",{key:t,onClick:t=>l.handleURL(e[1])},(0,a.zw)(e[0]),9,Jt)))),128))]),(0,s._)("input",{type:"file",ref:"upload",accept:"application/json",onChange:t[1]||(t[1]=(...e)=>l.handleUpload&&l.handleUpload(...e))},null,544),(0,s._)("div",Lt,[(0,s._)("div",{class:"button",onClick:t[2]||(t[2]=(...e)=>l.openUpload&&l.openUpload(...e))},[(0,s.Wm)(h,{icon:"file-upload"}),(0,s.Uk)(" Upload JSON ")]),(0,s._)("div",{class:"button",onClick:t[3]||(t[3]=(...e)=>l.promptURL&&l.promptURL(...e))},[(0,s.Wm)(h,{icon:"link"}),(0,s.Uk)(" Enter URL ")]),(0,s._)("div",{class:"button",onClick:t[4]||(t[4]=(...e)=>l.readFromClipboard&&l.readFromClipboard(...e))},[(0,s.Wm)(h,{icon:"clipboard"}),(0,s.Uk)(" Use JSON from Clipboard ")]),(0,s._)("div",{class:"button",onClick:t[5]||(t[5]=t=>e.isCustom=!1)},[(0,s.Wm)(h,{icon:"undo"}),(0,s.Uk)(" Back ")])])])):((0,s.wg)(),(0,s.iD)("div",Et,[Bt,(0,s._)("ul",Yt,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.editions,(t=>((0,s.wg)(),(0,s.iD)("li",{class:(0,a.C_)(["edition",["edition-"+t.id]]),style:(0,a.j5)({backgroundImage:`url(${i(3821)("./"+t.id+".png")})`}),key:t.id,onClick:i=>e.setEdition(t)},(0,a.zw)(t.name),15,Wt)))),128)),(0,s._)("li",{class:"edition edition-custom",onClick:t[0]||(t[0]=t=>e.isCustom=!0),style:(0,a.j5)({backgroundImage:`url(${i(5592)})`})}," Custom Script / Characters ",4)])]))])),_:1})):(0,s.kq)("",!0)}const qt=JSON.parse('[{"id":"ib","name":"Indigestion Brewing","author":"Mozart is Lift Music","description":"Spicy TB","level":"Veteran","roles":["noble","clockmaker","grandmother","pixie","sailor","cultleader","snakecharmer","innkeeper","professor","amnesiac","tealady","farmer","cannibal","goon","snitch","klutz","puzzlemaster","godfather","cerenovus","devilsadvocate","widow","lilmonsta","fanggu","lleech","legion"],"isOfficial":true},{"id":"for","name":"Fall Of Rome","author":"Alex","description":"I am Spartacus","level":"Veteran","roles":["sculptor_fall_of_rome","vestalvirgin_fall_of_rome","physician_fall_of_rome","legionary_fall_of_rome","trumpeter_fall_of_rome","mortician_fall_of_rome","standardbearer_fall_of_rome","centurion1_fall_of_rome","merchant_fall_of_rome","gladiator_fall_of_rome","actor_fall_of_rome","blacksmith_fall_of_rome","scholar_fall_of_rome","thetwins_fall_of_rome","winemaker_fall_of_rome","spartacus_fall_of_rome","badomen_fall_of_rome","temptress_fall_of_rome","haruspex_fall_of_rome","glykon1_fall_of_rome","augur_fall_of_rome","cleopatra_fall_of_rome","crassus_fall_of_rome","hannibal_fall_of_rome","caesar_fall_of_rome","mercenary_fall_of_rome","architect_fall_of_rome","sibyl_fall_of_rome","highpriest1_fall_of_rome","highpriest2_fall_of_rome","emperor_fall_of_rome","iamspartacus_fall_of_rome"]},{"id":"tb","name":"Trouble Brewing","author":"The Pandemonium Institute","description":"Clouds roll in over Ravenswood Bluff, engulfing this sleepy town and its superstitious inhabitants in foreboding shadow. Freshly-washed clothes dance eerily on lines strung between cottages. Chimneys cough plumes of smoke into the air. Exotic scents waft through cracks in windows and under doors, as hidden cauldrons lay bubbling. An unusually warm Autumn breeze wraps around vine-covered walls and whispers ominously to those brave enough to walk the cobbled streets.\\n\\nAnxious mothers call their children home from play, as thunder begins to clap on the horizon. If you listen more closely, however, noises stranger still can be heard echoing from the neighbouring forest. Under the watchful eye of a looming monastery, silhouetted figures skip from doorway to doorway. Those who can read the signs know there is... Trouble Brewing.","level":"Beginner","roles":[],"isOfficial":true},{"id":"bmr","name":"Bad Moon Rising","author":"The Pandemonium Institute","description":"The sun is swallowed by a jagged horizon as another winter\'s day surrenders to the night. Flecks of orange and red decay into deeper browns, the forest transforming in silent anticipation of the coming snow.\\n\\nRavenous wolves howl from the bowels of a rocky crevasse beyond the town borders, sending birds scattering from their cozy rooks. Travelers hurry into the inn, seeking shelter from the gathering chill. They warm themselves with hot tea, sweet strains of music and hearty ale, unaware that strange and nefarious eyes stalk them from the ruins of this once great city.\\n\\nTonight, even the livestock know there is a... Bad Moon Rising.","level":"Intermediate","roles":[],"isOfficial":true},{"id":"snv","name":"Sects & Violets","author":"The Pandemonium Institute","description":"Vibrant spring gives way to a warm and inviting summer. Flowers of every description blossom as far as the eye can see, tenderly nurtured in public gardens and window boxes overlooking the lavish promenade. Birds sing, artists paint and philosophers ponder life\'s greatest mysteries inside a bustling tavern as a circus pitches its endearingly ragged tent on the edge of town.\\n\\nAs the townsfolk bask in frivolity and mischief, indulging themselves in fine entertainment and even finer wine, dark and clandestine forces are assembling. Witches and cults lurk in majestic ruins on the fringes of the community, hosting secret meetings in underground caves and malevolently plotting the downfall of Ravenswood Bluff and its revelers.\\n\\nThe time is ripe for... Sects & Violets.","level":"Intermediate","roles":[],"isOfficial":true},{"id":"luf","name":"Laissez un Faire","author":"The Pandemonium Institute","description":"","level":"Veteran","roles":["balloonist","savant","amnesiac","fisherman","artist","cannibal","mutant","lunatic","widow","goblin","leviathan"],"isOfficial":true}]'),Xt={components:{Modal:he},data:function(){return{editions:qt,isCustom:!1,scripts:[["Deadly Penance Day","https://gist.githubusercontent.com/bra1n/0337cc44c6fd2c44f7589256ed5486d2/raw/16be38fa3c01aaf49827303ac80577bdb52c0b25/penanceday.json"],["Catfishing 11.1","https://gist.githubusercontent.com/bra1n/8a5ec41a7bbf945f6b7dfc1cef72b569/raw/a312ab93c2f302e0ef83c8b65a4e8e82760fda3a/catfishing.json"],["On Thin Ice (Teensyville)","https://gist.githubusercontent.com/bra1n/8dacd9f2abc6f428331ea1213ab153f5/raw/0cacbcaf8ed9bddae0cca25a9ada97e9958d868b/on-thin-ice.json"],["Race To The Bottom (Teensyville)","https://gist.githubusercontent.com/bra1n/63e1354cb3dc9d4032bcd0623dc48888/raw/5acb0eedcc0a67a64a99c7e0e6271de0b7b2e1b2/race-to-the-bottom.json"],["Frankenstein's Mayor by Ted (Teensyville)","https://gist.githubusercontent.com/bra1n/32c52b422cc01b934a4291eeb81dbcee/raw/5bf770693bbf7aff5e86601c82ca4af3222f4ba6/Frankensteins_Mayor_by_Ted.json"],["Vigormortis High School (Teensyville)","https://gist.githubusercontent.com/bra1n/1f65bd4a999524719d5dabe98c3c2d27/raw/22bbec6bf56a51a7459e5ae41ed47e41971c5445/VigormortisHighSchool.json"]]}},computed:(0,d.rn)(["modals"]),methods:{openUpload(){this.$refs.upload.click()},handleUpload(){const e=this.$refs.upload.files[0];if(e&&e.size){const t=new FileReader;t.addEventListener("load",(()=>{try{const e=JSON.parse(t.result);this.parseRoles(e)}catch(e){alert("Error reading custom script: "+e.message)}this.$refs.upload.value=""})),t.readAsText(e)}},promptURL(){const e=prompt("Enter URL to a custom-script.json file");e&&this.handleURL(e)},async handleURL(e){const t=await fetch(e);if(t&&t.json)try{const e=await t.json();this.parseRoles(e)}catch(i){alert("Error loading custom script: "+i.message)}},async readFromClipboard(){const e=await navigator.clipboard.readText();try{const t=JSON.parse(e);this.parseRoles(t)}catch(t){alert("Error reading custom script: "+t.message)}},parseRoles(e){if(!e||!e.length)return;const t=e.findIndex((({id:e})=>"_meta"===e));let i={};if(t>-1&&(i=e.splice(t,1).pop()),this.$store.commit("setCustomRoles",e.map((e=>"string"===typeof e||e instanceof String?{id:e}:e))),this.$store.commit("setEdition",Object.assign({},i,{id:"custom"})),e.some((({id:e})=>this.$store.state.fabled.has(e)))){const t=[];e.forEach((({id:e})=>{this.$store.state.fabled.has(e)&&t.push(this.$store.state.fabled.get(e))})),this.$store.commit("players/setFabled",{fabled:t})}this.isCustom=!1},...(0,d.OI)(["toggleModal","setEdition"])}},Kt=(0,J.Z)(Xt,[["render",Qt],["__scopeId","data-v-e5f62d38"]]),_t=Kt,$t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACjCAYAAABotuf8AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAGtdJREFUeJztXQmUFNW5Di64RUmqq4dFUQQNiqKAzwUF3HF5GpeYuOCOuOtzQU1iDC4QNa6I0SQuT03iFhXxBEGiBlBAq7q7qnq6Z98HGGZhWGYfZubm/6u7x+rb1V1rd3VP13fOd8Tpqrv896u7/vfeH/3IhYt8hUfgRzECfxET4OYDlwA/Bq4ErgWuG6JcA1wRzetLwPs9AvdzsEWB0+WR02BFfgSI6TYw6GpgM5C45AaAjcCvPAHuJlbw7e90OeUERgb5YSCmqWC0f4DxerKgILOd3WCvt6AWm+wNh4c5XX5ZCUbgJoCh/iwby/kCyzV2AZd4AvwhTpdjVgG+uBvAMJuyoIBynfVgy6ucLk/HAUbwMAF+SRYUyJAidPKfBdv+1OnydQSQcS8Y4SunC2EIcwUr+hinyzmjgNEM1FRccRYYf6hTYiXfCKfLOyNgcU4qwG3IAqPnC1dDp97rdLmnFR7Rtxdk9KMsMHa+8e9ewb+n0+WfNkAGH2Eik3xOGzrf2A+DpPlOl39aAJ31KZDBviwwsioPlvzkuLBELqsoJffWVZMnN28krzc1ko9aW8jn27eRNTt3kNVA/Df+7TX47Q/wDD57aXkJmQbvHiz6Hc9HCvZCGRzhtA5shVcKDGcia19OG3eQbICXhfRAXQ1Z2rqVVHR3kd6BAWIWPfBuOYSBorsPxDY1JEEczueT4hcjC317OK0H28AI/FxGro4dNyyZXlRIXtiymRR3dZJdFoSkBRRpqLODPNOwiZwQDjqe7yj7oSM/x2k92AKofveGDH3npEG9Ak+uqiwjX+/YnjYhaWElNKGXQzObBbXYalbyDXdaF5YBX8jPnTLiGNFH7qypkpu5bAHWlDdXV5LRgs8pYQ3Axz7baV1YBmRkuRMGnAM1FDZF6WvszAPTJHa0k19CDeaQuD50WheWwAq+EZCJ3kwaDTvNOHLLFXywtZmMgqY6w8Lq8gR8+zqtD9OIen1m1GgTgwIJQ02VK7gfRpBO1FrQHJ7ltD5MgxG4v2ZKTI9vqpc76fj/JxUFSVt/n9Oa0QR26B3rzAvcC07rwzQgA/50G2hmcYiUd0U653+EoX3s79dVlad1OsEqMM0/CwacEVWE65zWhyl4JD/2rxrSaRzs/Lb1/VAz4dzRrTWV8m8eIM6MZ6O02qE2vbCsOGm+jhRXkYdLHiPPl84ndxY9S8YI36bDfnVsUNjHaZ0YBvphQ+I70yUqHLJ39PcnFFrLrl3kNKjF8BnsFC/bttUB6aTG7zfWJc3XZaE3yKa66aSzfvIg+erzyVTpX3bbcCeU0eFO68QwPAI3k0nTgjPOTaVafqnv6SGHSJF1u4NEH6nMonmsr3ZsT5qvieKXpLJ2VpyoYlxReSUZKay30464dni80zoxDOgcnpsOUeEisZ6+0/JtrYOTkDOKC0kz1GROo6a7mxxdKCbN2x1Fz6mKCtlefwyZXfiunbbEj/5Up3ViGJBo26caLoJ+yY4+faM9lB6uCcZGXdiZ7x5IbDozhU5oti/TmBB9r2JuUmEhF5QssNWe0Kqc47RODAMSfrGdRsCJzyr44o2gGwoT+2L4Pgps4ab6NMlGG4tgIOFJkreDhbXkweJFZGPt9JTCCtWcRW4MLyEFgQ2usOwgdsKFjnZTBYo1BXo0yIYErjAxK4+1H/bpsMYzM4Wxrm2n7KZD52uC+B+5FqqrPSWloNQEdnPRi5ZHi3kvrMXQpFkB+knF+jYTpAAJpBBpFwhxAwjhjeZGMr+uhpxfWiQ78R0F7x9ZKMjhnARCvaKijDwBNeCHW1vkOalkjWxtTzeZHIrvVx0IgngIaiijgqIp1cwmc8J/Jt7Ad66wjBLnqrpUphWMAtcP0dsBw5xVHCJNu3oHfxuQf28lt8NoE0VUYHDtbqzoJ2eWhMljIDSlJwXWcFdXlsU9Oz24lKyrvoh0QGfciqhi3FE/hXxUcT3Ufl+7wtLLcZKfBG1c9/tTY8Ng2NiR3ta3i/ytpclWRzwUJdZm37W3yU5+yt/OL/wbaag7yRZB0QxD8zjN4FxX3grr+QZrTSANrJlurq4YDH+8lD4fdRwseBU13yhhPfmm6uK0iCrGt8pvdYWlxUnQn1GbWbcK7A+NS6OgktZkMJL7tPKatArrqdLfuMLS4j9amm0XVbizk0wJSRkXVYxjhW+g076QfF99AdlSd6Llfha+vxma1rVVl5Drwn8y3InPO2GdCp3rdpvdXj7b1jq4zOM0cdpjnLCanBb8kLTWHWdKVFW1s8iJ0jJyiLDGfDryTVivNm6xVVSrdmwjh2aJqJR8tvRBSzUWzmVZEng+CQv7Vs2KqQCrWN+2k4zMvOuvJucVLSY766dYElZT3fGW1g/zSli/rq+1TVSlXZ3k2FDyRV+neErwE1JdO9OWDju61Bwh/tsVlhYLbZq3wknVi8pLHBcRzZEwOvRXn2fraPCTiutcYaUiznrbhWepycls4Ytl9+sSi1h9Drmg8B3NhekY7yn+oyusZETPSjtQ09MtO/g5LSKaZwQ/IM3QL9ISSVv9sYN9p3uLn9IlrNraGWSKtNwVlhq/hY62Hbgl6iqTbXy17G5dIvlnxQ2D7+DEarBmtq73jPpr5YWw0Hug1QYvT197++BiczYRXVz09K1w4pRe87s09CZph1pM691llde4wqJ5RUWpLTtqcFTptIjUhbWOcNX/qymO50sfSHAIxHXGpRXXar77WeXVrrBoPm6DdyfWeMdk4fRCjDODH5Mbwi+TuUUvyfNYtxS9KPNmmYtl36qxwlrVd3FKAZdtbi16Qd4SdnfRM+Su4mdkP3nkbUXPkxOkZa6waNqxNvjF9m2OiyeXOOSF5Q3wsvuuVdxT68w5CLnKIS8sdGOpMbhRQg149KPThZVLHPLCwhGhVd8r3DSR7gM28FTAhZvr5d0+yfiEDj5ukI/p5MMba8lYAyPiIS8sPB3GKsq6utL+hb+/1X4fMTvRNzBgaG10yAvrjJKwZaPicdn5LizEKdGtbq6wApGTjHG/nxWmOmgjn4R1OnykrrByjLkgrLNLXWHlHHNBWKeXhFxhxXgyNIW4hd4Kcbe0Kyy3jxVHO0aFOMGa78LqJwPy4SmusKLEsw16LJ4XiifR5LuwcGf3EUHBFVaMuIMGT+GzAjwNJt2bJrJdWLgZ18gNZENeWLgV/fv2NsuGnWGgfzEUhfWfnTuSnsGVl8JC/rO1xbJhf5fmuaxsFxYecGIkP3khLDw62yrWp7kDn+3CesTgh5UXwrq2qtyyYXEh28hweygJC4c+Wmec5qWwcPF0u86Da1MBr9zNR2HhqdATDYwI80ZYSNwIYRXo15WucxrQkfBdEJfdNHu+qhJrTSzC542w7OhnIRZkYEHaLuL+R96GEfFvTWwiyRth2TEDj9jet4sc5uwFSLp5Z22VLXk2s4kkb4SFHqB4yrAdwP6QkTkdJ4jib+q1frJOSVenqfjzRljIJ2w65B/PY5+nOG8021hg4wVSD9XXuMLS4rSQpPtaEy3gTWCnF+t3I8kUsSZFH3U7TljFPB5VaGw0mJfCQqPbef4o3vyFlwY4LSYl50JN2mnTwb2vNzWabvLzSlhIvA2i28YTk4MdHVmzQxovRLDqyREDTggbcezLe2HhF7i01d4LLPHEZDsvCjDDayvLbaupEH83uDaY98JCogj6bL7TuQFGYJcbXPawk+gpu8WGUSACaz2rtXBeCguJ/Qe7gTXGedDUZkpMuAPpQRi1xfpBeOeiHZegv2iDK3beCgvXvozeUaiFl7Y0DBYyrk+myzlwQjAgX8TZ3t8vLxDfUVM1+Bt6IViRVnFXJxlvw4Akb4WFvL2m0rYm0dfeRkZHhYRXxGGzhKcI4tlcdm3Px/t5Ht1ULx9XqQS6Dc+O1pR4/+JHJv3PsLa7vqrclrTmtbDsmn5At91J0fkenH4QqYVfFNkrjQ3kAmiqsDbQO4THiU6s+W6sqpA3zqa6BB2nPmJ3F+JBKGbWCP/StMW2WjWvhRUrhHILN9FjbYGCidUW72oIdVNPD1m1Y7tciNhsYTN2AwgHfcbmVVfKXg5Pbd4Io7Jm2aXayIEm3+zcMVhr4inRRi5LCHd22Hpob94LC3lWSVheXDaD26n+Tb8th1Kah7Kfd2VFGenW0dTjxZ0ziu11YsxVYdl+i/01JuaB8F6e2PuXlpfYsoxiFdhnxGuBY+L6TX1tyn4kXlj1qzRMk+SksDwCf57dhkDeV1etWxx4OVPsvCj82jf3WttiZieUzTOOTN9paVJ9DgWXtuPFBe50p3ViGCCsUyHxA7Z/ZUB0P9ZqPNCT9BhFR5mzwZnObqDQY+uY2HfC1QElUFRGN0gYYK8nwJ/otE4MA4Q1BRLflQ6joLjw2O1ka244dzQ9uqkC9ywu396aCZ2Ywoa2nYP3KOIlnXXRaQq8CyjNZ6q2QVN4hNM6MQxW5BlI/JZ0GQbFhd6X9A33KLY7FZ31BTZdo5JOvNbUKE9bYHpxkRqnPuam35dsIyv49nNaJ6YAiQ+m2Thyp7ZFcaMF3lTPRgtpTmVZgvCyEdjk3auonSYXZsQTg3NaH6YBiX8rAwaSmxCcQccmb1RUVDOhs95iwxUqmQLOqGfS+wJq/Fec1odpMAJ/ZaYMdSB0fmPrZ/jvIqojnM3AWvW5hk2DH0VGhCXwFzqtD9NgRV8BZKI/U8aKEQ9hyxXgnsIzS8KZ3vixi5V8P3FaH5YAmVibaWHhSBAXgq0ejZROVHd3yyPbdJ9Nn4QrndaFZTACd7UDhpOJmwxwzsuuzRl2YCv0+3AnktHt8HbSE+B/4bQuLAPa8gMgMyGnjIjEQsRlkwoLC9lWUdbVKS/jZMHGDj90UXJzmoEGZOYuJg2z8GaI15agdwPOzKdzKRqnELC5wzOrLs6eS8/7YUA1z2k92AaoerHWkrLAsIPEJRT0f8fRGPpmtVuc70KRYpOLYeFF5yimLLzplfMEhkhtFQM0iTOYLKm1aOKI7PBggMwqDsnemU9Dvwy36ONJzKHODtkXDJdacPt/aVcXCcLf8Dd0QMSNp/gOzpuh92gWb+vvhzI4zmkdpAWQucVZYOB8JH7QTzpd/mmDR/DtDxlckwWGzjeuYiV+X6fLP62AzuNhkNGKLDB2vrDII3CHOF3uGQErcOMhw81ZYPShzgavyB/kdHlnFNCRPJzJspHiEKMPbHyo0+XsCCDjB4MBVmZBIQwtCtxnrMCPcbp8HcVB9fXDwBiPAbsdL5DcZyf0p37rdJlmFaBTfzQY5l+MA94QQ4Bos6WeAJ97rsaZgEf07x7d3fM1sC8LCizbiTZa5QlwZ0PTt5vT5ZcT8Ihy5/5pYG0WFGC2sQr4B1b0jXe6nHIWowRht+gI8hrgQuAyYAmwDtjARDZsDEU2RPNYDFwKfBw4B7oME7zhsFs7pQtjQoHd4Yvd2yvw+wxFynkLSbs7bWcXLly4cOHChQsXLly4cOHChQsXLly4cOHChQsXLly4cOHChQsXLly4cOHChQsXLly4cOHChQsXLly4cOHChYucx6hAYJg36N9vpODfy+m0uEgDvAI/3CPwk5gAdy0TOXboFeAbwJeBv2MC/GXw+wSP4LO8e9eDdx0K/HVM5PSZndHzCvCA1jLgYrwZtEBUjwfScBM886atFHjdV9x6RN+PIQ0neALcPHj3SeCrwL8CnwPeC3Y6F34vGFPqG2bULpCOO5Tp8gjcqUbDkNMo8LfEh8OPVvz2Y/jbC9bsxR2tJxF7AW+EF74B9jKpD6voAK6A58/1Cr49zWWaO5nRvuewB55bwoIR6Pfht7c13jXD23TYiYWCfxieLWK0jx1vjBbosUZsA+98TIVTwgo+1kgY0XDeU4YD6TgyLh+RcyPM2yvVJebjBGEY1AznRw1lNHA8r2md0XPF4fnTo+LUG88aRuSGU0bLqLAKCn27gaAeiIrFaLg9mF7I9yg99lERFnLxSEkyVPs5JqyCoH84PPAMk/qMKhQP1mCpvk4wHD8XEruHVmbhGTzwdrNKGC1M5KzSimhBxP6O8a7xBHxxhcJEmufuFOxhEvOR6nnkzUnSPJaJnH6TytB9jHZNXwlhnaFDEGrCQhufrfUuFY4RYQ3osE88BS4xPdC/2Qt+fD2JAZqg77AEXsTjdGZBIo6HJglrmRuA7wK3q7zTC89coiOz9OUCffDeIuizyaf+spJvONSgZ8Hfv49mYBErJp5dDmkaB5yWgufAu52KeL7XeB7ppeOBJuhAeNeX5IMLeSLHDl0MhX4y/PsE7B6A3fBOoS8Y9WMx27UEkkRYyApW1D+4MSisQrnPqG0jJQ+gIuR3h4BeYhJroUbsFIPoDkhIZXyh4sWXDzHxt9cvZkVfykxDuHRmQFTqlwmBAfeFgprKFhnv/EbzOCZSiINxfWk0DBg47M2on/gsgvhnQi06PNm7BweDw6Lnfb3BJLYI2+C3WcnTnlRYeNXK0/ptYEhY340Marc4KQE1xFUqouK9Ij/SUDgiP5WJjODeHlddrSkAeG4WFeeqAilgLTNJ47IuLAjjZSq9aLOX8Uwrg+FcRH2EyBAMShj155MLK1IL8zP0xZtBYTGCbwQEspVK7EoYPpu64hWMzHolf9IvVwn4yq+i4n3KTJx6YFVYcpOW0JTxD2Mn3kx64GM+TcXuS9TTniCsKur/N8BHvb9WnBkVFhTuo1QisUM51nSAhuKGPlt83LqrdaOwIizo0+0Jz39OpXUZFKaloxuhvzoXwtmlCLOHFbmEViJBWAJ/MTafVHoe0YwvU8KCBP4EAqinIpttKjAz8QfkaQalcb70Biy268njMi0s7MQy8V2FBqhxLF8p4g2H8az7zygbLEpMe4KwJgAfot7rhVbm8FTxZUxYUGNcThksYCogk4h2+rco4u8Dg12VjrisCItJHLkutCtdINDJVNjFHiFAz9ElCAtqy32YyOS18t11Xsm3T4p8ZKjGCnDPxyeMv8VUQBbARJaI4jqjIPjrC0R9/TT98VgSVrHivW6cbrE3bVy5Inzo1PPTqN8ThIV/h3QcxVBzfCDU+SniyZiwVigC6of+1pHab8kd9LHAKSY4kQ7LI3I42biREhfSDwY+01TGVPNqTlijJWkPJn56oNRT6Le1uWYiUz3KvM+hflcVVvS3x6h3cepiUpJ4jAgrCOX1PynLU/AVJMuQck6m3pNkuKvy3msqQtDD79TCg3inw29tKs9jM/0prq3B6MvU/NUPaTYnLIj7QCpNK62kQz1t3PVUHA9QvycVFqRvP/jbt9T766HQEwYWBoWlhw8my5CyCg5Du63rQmoLwlqTNEyBP4VJft1cB/z+tNfCbaEWhPUzKi0fmk1DijguoeJYEJ/25MKKvn8qQ6+1CvxNdDyZFJay71CeMCWfBBaE9X7qcPm9GQFdTJIuSIuQRlOjMbPCYgX+UCoNn5qJPxWgT/krKo64m7y0hBV9ZiEVxlaw1UTqmYwJa53ioTas9nUa4nYmch2HFnkqIbpGU5AOFAH6+HSqZGY1Iya6zWjBrLC8kn8EFf/3RuPWTFvi1EGcV4UeYY2U/LjWS0+cfsRKP7gxGRRWKxNZaP80GZOuBcOP71AR2TqHBWE+TGX0F0bejzoY/puhl5sE/lHjabE0KmxRvNfsEX2jtd8ykjY5j7HwBxiqHPQICxF1P1IuFQ2gT50inIyNCu+LL3j+TVMBqcAj8eiC87Ui/B4wiOF79aATivM11LQIt61AMuaybFFYn8cVVoC/xmg+ksEj+fZn4pv+Jlbk40ZbeoXlhQ47kzjCbGYDES+NzAlL4I6hMtXlMeGZqAZIKK6FKS+3XMdSznm6wxIDKK5gvFG4mUbCsDjzTi89fQnDbVvm2SBd91NhJ/Th9AoLwUYEUkqF+T50H3bPmLDGFHLDmMQ1sHc8hX5L/usgTlxbC1HhPqD9ZnIw9HyNwN1j7H3zwoKaAI2uvD9xAB0ZjeciHlDz4YizkSrshLk7I8KSn0/8qHFF4+qMCSsSIDedEkAvFNqtZsMbX+kb5klsuhqsLmxDOm+kwvy9kfetejfA849Q8W9TFoxRQI2HmxdWUWFKo8XEj9qosNC9HJ57iwobPXFXZ0xY0YR/QCWiGwpy3piwsUlJ6Btgv2oRQ9/vLHB3W0pgJI3PxhkloO4QmPx9q24zPlywD1N2qvVQyy96wAbkftVyKqwusJOqs59RYUXSy+E6bDkVR9wgKAOOfrwXAiqkEoHieBkMqsvhHwyM8z2f04nHAmQlTtO95MCQfzf80pKk7yAIp4YyivZWIwXscPSDOKcyiQ56WHPdxejw70dvBnh2BpM4EYw2W1AgcKr5NyOsSHq5y5gUfvdpF5ac+IjRNqkkoBr4tEdMXH9iS0rQUOgFinvomlTe5WFoPkbbAD5cL1wJfIqV+H3if5M3W9BLFrWjQ6KhfqAdwoqmB5df6I0ZKIwNwLthFJswFYEeB1DI6EP1CZWGWO37/14xpVeCKWGNkvzYYX+Hji+jwpIzIHATmch9xKoJiYrHHy1o/OpoZzMl12lNuLKQceiP/RKebVa8V4fLN1hI8F/0D6dn4fuhkK43nDebhIWA+LEjvCNJvgeitStu/ljPRFY31CZ6kbi4/TYjpV7UNissBHRPsAlvUYtfQ1i4YRjdctbqpsCdkMJocg2BX1a/WmJ0sBsK8S9QC43QLCDR52ES+y1afNersUlDDXYKS057gFNr0oywGWqq/wM7aU5bWBFWJK3y7vKELX02LOnEM9WGVQRU53vBV3kpE9kYYSTwbyDwMxhJ/3Z7MNI0JnEpIlnCP0SvVyNGHYzHZmEhWNkDl/81E1/jahGb0fc8BsRhWVgR1+qEDRkZF9ZgZAF+NyCeR4AelAEm4u2JVSRW7dgUbGIi1eVCK0PvyASo3PyhmzTd+e+JxM1fYTZ8BLw/OiqAziiXWwlPiVGFAhQcfyET6c+EovHsjAq5NfrhrICP9Va1vYraaZfnnzoHKfCHGg0j2hLVKsNRLlLDv7H1qI6LxygF7iyj6ZLBSr6fohsJCG0y/Pcw+H/NnSFGgJkDngeJvBM4H3gT/P+JbJC3PMsNHwh+tUcDj4lyvB1ppoHb3nFDBBYaCGASzt+xQWvesJDWQxTpBpqzB7x7qDIcqHEHuxSs6EOHxknx8RikoL1TyIULU/gvEypdcTvljmMAAAAASUVORK5CYII=",ei=e=>((0,s.dD)("data-v-14bc5701"),e=e(),(0,s.Cn)(),e),ti={class:"intro"},ii=ei((()=>(0,s._)("img",{src:"static/apple-icon.png",alt:"",class:"logo"},null,-1))),oi=ei((()=>(0,s._)("b",null,"Virtual Town Square and Grimoire",-1))),si=ei((()=>(0,s._)("b",null,"[A]",-1))),ai=ei((()=>(0,s._)("b",null,"[J]",-1))),ri=ei((()=>(0,s._)("br",null,null,-1))),ni=ei((()=>(0,s._)("div",{class:"footer"},[(0,s.Uk)(" This project is free and open source and can be found on "),(0,s._)("a",{href:"https://github.com/bra1n/townsquare",target:"_blank"},"GitHub"),(0,s.Uk)('. It is not affiliated with The Pandemonium Institute. "Blood on the Clocktower" is a trademark of Steven Medway and The Pandemonium Institute. ')],-1))),li={key:0,class:"redirect",href:"https://clocktower.gstonegames.com"},hi=ei((()=>(0,s._)("img",{src:$t,class:"gstone",alt:""},null,-1)));function di(e,t,i,o,a,r){const n=(0,s.up)("font-awesome-icon");return(0,s.wg)(),(0,s.iD)("div",ti,[ii,(0,s._)("div",null,[(0,s.Uk)(" Welcome to the (unofficial) "),oi,(0,s.Uk)(" for Blood on the Clocktower! Please add more players through the "),(0,s._)("span",{class:"button",onClick:t[0]||(t[0]=(...t)=>e.toggleMenu&&e.toggleMenu(...t))},[(0,s.Wm)(n,{icon:"cog"}),(0,s.Uk)(" Menu ")]),(0,s.Uk)(" on the top right or by pressing "),si,(0,s.Uk)(". You can also join a game session by pressing "),ai,(0,s.Uk)("."),ri,ni]),"zh-CN"===a.language?((0,s.wg)(),(0,s.iD)("a",li,[hi,(0,s.Uk)(" 你想使用中文版魔典吗? ")])):(0,s.kq)("",!0)])}const mi={data(){return{language:window.navigator.userLanguage||window.navigator.language}},methods:(0,d.OI)(["toggleMenu"])},ci=(0,J.Z)(mi,[["render",di],["__scopeId","data-v-14bc5701"]]),gi=ci,pi=e=>((0,s.dD)("data-v-40670158"),e=e(),(0,s.Cn)(),e),yi={class:"role"},ui={key:0,class:"player"},fi={class:"name"},bi={class:"ability"},wi={key:0,class:"team jinxed"},ki=pi((()=>(0,s._)("aside",null,[(0,s._)("h4",null,"Jinxed")],-1))),Ni={class:"role"},vi={class:"name"},Ai={class:"ability"},Ri=pi((()=>(0,s._)("li",null,null,-1))),Si=pi((()=>(0,s._)("li",null,null,-1)));function Ii(e,t,o,r,n,l){const h=(0,s.up)("font-awesome-icon"),d=(0,s.up)("Modal");return e.modals.reference&&e.roles.size?((0,s.wg)(),(0,s.j4)(d,{key:0,class:"characters",onClose:t[1]||(t[1]=t=>e.toggleModal("reference"))},{default:(0,s.w5)((()=>[(0,s._)("div",{onClick:t[0]||(t[0]=t=>e.toggleModal("nightOrder"))},[(0,s.Wm)(h,{icon:"cloud-moon",class:"toggle",title:"Show Night Order"})]),(0,s._)("h3",null,[(0,s.Uk)(" Character Reference "),(0,s.Wm)(h,{icon:"address-card"}),(0,s.Uk)(" "+(0,a.zw)(e.edition.name||"Custom Script"),1)]),((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(l.rolesGrouped,((t,o)=>((0,s.wg)(),(0,s.iD)("div",{key:o,class:(0,a.C_)(["team",o])},[(0,s._)("aside",null,[(0,s._)("h4",null,(0,a.zw)(o),1)]),(0,s._)("ul",null,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(t,(t=>((0,s.wg)(),(0,s.iD)("li",{class:(0,a.C_)([o]),key:t.id},[t.id?((0,s.wg)(),(0,s.iD)("span",{key:0,class:"icon",style:(0,a.j5)({backgroundImage:`url(${t.image&&e.grimoire.isImageOptIn?t.image:i(6003)("./"+(t.imageAlt||t.id)+".png")})`})},null,4)):(0,s.kq)("",!0),(0,s._)("div",yi,[Object.keys(l.playersByRole).length?((0,s.wg)(),(0,s.iD)("span",ui,(0,a.zw)(l.playersByRole[t.id]?l.playersByRole[t.id].join(", "):""),1)):(0,s.kq)("",!0),(0,s._)("span",fi,(0,a.zw)(t.name),1),(0,s._)("span",bi,(0,a.zw)(t.ability),1)])],2)))),128)),(0,s._)("li",{class:(0,a.C_)([o])},null,2),(0,s._)("li",{class:(0,a.C_)([o])},null,2)])],2)))),128)),l.jinxed.length?((0,s.wg)(),(0,s.iD)("div",wi,[ki,(0,s._)("ul",null,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(l.jinxed,((e,t)=>((0,s.wg)(),(0,s.iD)("li",{key:t},[(0,s._)("span",{class:"icon",style:(0,a.j5)({backgroundImage:`url(${i(6003)("./"+e.first.id+".png")})`})},null,4),(0,s._)("span",{class:"icon",style:(0,a.j5)({backgroundImage:`url(${i(6003)("./"+e.second.id+".png")})`})},null,4),(0,s._)("div",Ni,[(0,s._)("span",vi,(0,a.zw)(e.first.name)+" & "+(0,a.zw)(e.second.name),1),(0,s._)("span",Ai,(0,a.zw)(e.reason),1)])])))),128)),Ri,Si])])):(0,s.kq)("",!0)])),_:1})):(0,s.kq)("",!0)}const Di={components:{Modal:he},computed:{jinxed:function(){const e=[];return this.roles.forEach((t=>{this.jinxes.get(t.id)&&this.jinxes.get(t.id).forEach(((i,o)=>{this.roles.get(o)&&e.push({first:t,second:this.roles.get(o),reason:i})}))})),e},rolesGrouped:function(){const e={};return this.roles.forEach((t=>{e[t.team]||(e[t.team]=[]),e[t.team].push(t)})),delete e["traveler"],e},playersByRole:function(){const e={};return this.players.forEach((({name:t,role:i})=>{i&&i.id&&"traveler"!==i.team&&(e[i.id]||(e[i.id]=[]),e[i.id].push(t))})),e},...(0,d.rn)(["roles","modals","edition","grimoire","jinxes"]),...(0,d.rn)("players",["players"])},methods:{...(0,d.OI)(["toggleModal"])}},Mi=(0,J.Z)(Di,[["render",Ii],["__scopeId","data-v-40670158"]]),Ti=Mi,Gi=e=>((0,s.dD)("data-v-67598266"),e=e(),(0,s.Cn)(),e),Ci={id:"vote"},xi={class:"arrows"},Ei={class:"overlay"},Bi={class:"blue"},Yi=Gi((()=>(0,s._)("br",null,null,-1))),Wi={class:"blue"},Zi={key:0},Vi={key:1},Pi={key:0},ji={class:"button-group"},Oi={key:1,class:"button-group mark"},zi={key:0},Ui={class:"button-group"},Hi={key:4},Fi={key:0,class:"countdown"},Ji=Gi((()=>(0,s._)("span",null,"3",-1))),Li=Gi((()=>(0,s._)("span",null,"2",-1))),Qi=Gi((()=>(0,s._)("span",null,"1",-1))),qi=Gi((()=>(0,s._)("span",null,"GO",-1))),Xi=["autoplay","muted"];function Ki(e,t,i,r,n,l){const h=(0,s.up)("font-awesome-icon");return(0,s.wg)(),(0,s.iD)("div",Ci,[(0,s._)("div",xi,[(0,s._)("span",{class:"nominee",style:(0,a.j5)(l.nomineeStyle)},null,4),(0,s._)("span",{class:"nominator",style:(0,a.j5)(l.nominatorStyle)},null,4)]),(0,s._)("div",Ei,[(0,s._)("em",Bi,(0,a.zw)(l.nominator.name),1),(0,s.Uk)(" nominated "),(0,s._)("em",null,(0,a.zw)(l.nominee.name),1),(0,s.Uk)("! "),Yi,(0,s._)("em",Wi,(0,a.zw)(l.voters.length)+" vote"+(0,a.zw)(1!==l.voters.length?"s":""),1),(0,s.Uk)(" in favor "),"traveler"!==l.nominee.role.team?((0,s.wg)(),(0,s.iD)("em",Zi," (majority is "+(0,a.zw)(Math.ceil(e.alive/2))+") ",1)):((0,s.wg)(),(0,s.iD)("em",Vi,"(majority is "+(0,a.zw)(Math.ceil(e.players.length/2))+")",1)),e.session.isSpectator?l.canVote?((0,s.wg)(),(0,s.iD)(s.HY,{key:3},[e.session.isVoteWatchingAllowed&&!e.session.isVoteInProgress?((0,s.wg)(),(0,s.iD)("div",zi,(0,a.zw)(e.session.votingSpeed/1e3)+" seconds between votes ",1)):(0,s.kq)("",!0),(0,s._)("div",Ui,[(0,s._)("div",{class:(0,a.C_)(["button townsfolk",{disabled:!l.currentVote}]),onClick:t[9]||(t[9]=e=>l.vote(!1))}," Hand DOWN ",2),(0,s._)("div",{class:(0,a.C_)(["button demon",{disabled:l.currentVote}]),onClick:t[10]||(t[10]=e=>l.vote(!0))}," Hand UP ",2)])],64)):l.player?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",Hi,"Please claim a seat to vote.")):((0,s.wg)(),(0,s.iD)(s.HY,{key:2},[e.session.isVoteWatchingAllowed&&!e.session.isVoteInProgress&&e.session.lockedVote<1?((0,s.wg)(),(0,s.iD)("div",Pi,[(0,s.Uk)(" Time per player: "),(0,s._)("span",{onMousedown:t[0]||(t[0]=(0,o.iM)((e=>l.setVotingSpeed(-500)),["prevent"]))},[(0,s.Wm)(h,{icon:"minus-circle"})],32),(0,s.Uk)(" "+(0,a.zw)(e.session.votingSpeed/1e3)+"s ",1),(0,s._)("span",{onMousedown:t[1]||(t[1]=(0,o.iM)((e=>l.setVotingSpeed(500)),["prevent"]))},[(0,s.Wm)(h,{icon:"plus-circle"})],32)])):(0,s.kq)("",!0),(0,s._)("div",ji,[e.session.isVoteInProgress?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",{key:0,class:"button townsfolk",onClick:t[2]||(t[2]=(...e)=>l.countdown&&l.countdown(...e))}," Countdown ")),e.session.isVoteInProgress?((0,s.wg)(),(0,s.iD)(s.HY,{key:2},[(0,s._)("div",{class:(0,a.C_)(["button townsfolk",{disabled:!e.session.lockedVote}]),onClick:t[4]||(t[4]=(...e)=>l.pause&&l.pause(...e))},(0,a.zw)(n.voteTimer?"Pause":"Resume"),3),(0,s._)("div",{class:"button",onClick:t[5]||(t[5]=(...e)=>l.stop&&l.stop(...e))},"Reset")],64)):((0,s.wg)(),(0,s.iD)("div",{key:1,class:"button",onClick:t[3]||(t[3]=(...e)=>l.start&&l.start(...e))},(0,a.zw)(e.session.lockedVote?"Restart":"Start"),1)),(0,s._)("div",{class:"button demon",onClick:t[6]||(t[6]=(...e)=>l.finish&&l.finish(...e))},"Close")]),"traveler"!==l.nominee.role.team?((0,s.wg)(),(0,s.iD)("div",Oi,[(0,s._)("div",{class:(0,a.C_)(["button",{disabled:e.session.nomination[1]===e.session.markedPlayer}]),onClick:t[7]||(t[7]=(...e)=>l.setMarked&&l.setMarked(...e))}," Mark for execution ",2),(0,s._)("div",{class:"button",onClick:t[8]||(t[8]=(...e)=>l.removeMarked&&l.removeMarked(...e))},"Clear mark")])):(0,s.kq)("",!0)],64))]),(0,s.Wm)(o.uT,{name:"blur"},{default:(0,s.w5)((()=>[e.session.isVoteInProgress&&!e.session.lockedVote?((0,s.wg)(),(0,s.iD)("div",Fi,[Ji,Li,Qi,qi,(0,s._)("audio",{autoplay:!e.grimoire.isMuted,src:"/countdown.mp3",muted:e.grimoire.isMuted},null,8,Xi)])):(0,s.kq)("",!0)])),_:1})])}const _i={computed:{...(0,d.rn)("players",["players"]),...(0,d.rn)(["session","grimoire"]),...(0,d.Se)({alive:"players/alive"}),nominator:function(){return this.players[this.session.nomination[0]]},nominatorStyle:function(){const e=this.players.length,t=this.session.nomination[0];return{transform:`rotate(${Math.round(t/e*360)}deg)`,transitionDuration:this.session.votingSpeed-100+"ms"}},nominee:function(){return this.players[this.session.nomination[1]]},nomineeStyle:function(){const e=this.players.length,t=this.session.nomination[1],i=this.session.lockedVote,o=360*(t+Math.min(i,e))/e;return{transform:`rotate(${Math.round(o)}deg)`,transitionDuration:this.session.votingSpeed-100+"ms"}},player:function(){return this.players.find((e=>e.id===this.session.playerId))},currentVote:function(){const e=this.players.findIndex((e=>e.id===this.session.playerId));return e>=0?!!this.session.votes[e]:void 0},canVote:function(){if(!this.player)return!1;if(this.player.isVoteless&&"traveler"!==this.nominee.role.team)return!1;const e=this.session,t=this.players.length,i=this.players.indexOf(this.player),o=(i-1+t-e.nomination[1])%t;return o>=e.lockedVote-1},voters:function(){const e=this.session.nomination[1],t=Array(this.players.length).fill("").map(((e,t)=>this.session.votes[t]?this.players[t].name:"")),i=[...t.slice(e+1),...t.slice(0,e+1)];return(this.session.lockedVote?i.slice(0,this.session.lockedVote-1):i).filter((e=>!!e))}},data(){return{voteTimer:null}},methods:{countdown(){this.$store.commit("session/lockVote",0),this.$store.commit("session/setVoteInProgress",!0),this.voteTimer=setInterval((()=>{this.start()}),4e3)},start(){this.$store.commit("session/lockVote",1),this.$store.commit("session/setVoteInProgress",!0),clearInterval(this.voteTimer),this.session.isVoteWatchingAllowed?this.voteTimer=setInterval((()=>{this.$store.commit("session/lockVote"),this.session.lockedVote>this.players.length&&(clearInterval(this.voteTimer),this.$store.commit("session/setVoteInProgress",!1))}),this.session.votingSpeed):this.$store.commit("session/lockVote",this.players,length+1)},pause(){this.voteTimer?(clearInterval(this.voteTimer),this.voteTimer=null):this.voteTimer=setInterval((()=>{this.$store.commit("session/lockVote"),this.session.lockedVote>this.players.length&&(clearInterval(this.voteTimer),this.$store.commit("session/setVoteInProgress",!1))}),this.session.votingSpeed)},stop(){clearInterval(this.voteTimer),this.voteTimer=null,this.$store.commit("session/setVoteInProgress",!1),this.$store.commit("session/lockVote",0)},finish(){clearInterval(this.voteTimer),this.$store.commit("session/addHistory",this.players),this.$store.commit("session/nomination")},vote(e){if(!this.canVote)return!1;const t=this.players.findIndex((e=>e.id===this.session.playerId));t>=0&&!!this.session.votes[t]!==e&&this.$store.commit("session/voteSync",[t,e])},setVotingSpeed(e){const t=Math.round(this.session.votingSpeed+e);t>0&&this.$store.commit("session/setVotingSpeed",t)},setMarked(){this.$store.commit("session/setMarkedPlayer",this.session.nomination[1])},removeMarked(){this.$store.commit("session/setMarkedPlayer",-1)}}},$i=(0,J.Z)(_i,[["render",Ki],["__scopeId","data-v-67598266"]]),eo=$i,to={id:"gradients"},io=["id"];function oo(e,t,i,o,r,n){return(0,s.wg)(),(0,s.iD)("div",to,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(r.gradients,((e,t)=>((0,s.wg)(),(0,s.iD)("svg",{width:"0",height:"0",key:t},[(0,s._)("linearGradient",{id:e[0],x1:"50%",y1:"100%",x2:"50%",y2:"0%"},[(0,s._)("stop",{offset:"0%",style:(0,a.j5)({"stop-color":e[2],"stop-opacity":1})},null,4),(0,s._)("stop",{offset:"100%",style:(0,a.j5)({"stop-color":e[1],"stop-opacity":1})},null,4)],8,io)])))),128))])}const so={data(){return{gradients:[["demon","#ce0100","#000"],["townsfolk","#1f65ff","#000"],["default","#4E4E4E","#000"]]}}},ao=(0,J.Z)(so,[["render",oo],["__scopeId","data-v-1e202a64"]]),ro=ao,no=e=>((0,s.dD)("data-v-358fb701"),e=e(),(0,s.Cn)(),e),lo={class:"night"},ho={class:"first"},mo=no((()=>(0,s._)("li",{class:"headline"},"First Night",-1))),co={class:"name"},go={key:0,class:"player"},po=no((()=>(0,s._)("br",null,null,-1))),yo={key:1,class:"reminder"},uo={class:"other"},fo=no((()=>(0,s._)("li",{class:"headline"},"Other Nights",-1))),bo={class:"name"},wo={key:0,class:"player"},ko=no((()=>(0,s._)("br",null,null,-1))),No={key:1,class:"reminder"};function vo(e,t,o,r,n,l){const h=(0,s.up)("font-awesome-icon"),d=(0,s.up)("Modal");return e.modals.nightOrder&&e.roles.size?((0,s.wg)(),(0,s.j4)(d,{key:0,class:"night-reference",onClose:t[1]||(t[1]=t=>e.toggleModal("nightOrder"))},{default:(0,s.w5)((()=>[(0,s._)("div",{onClick:t[0]||(t[0]=t=>e.toggleModal("reference"))},[(0,s.Wm)(h,{icon:"address-card",class:"toggle",title:"Show Character Reference"})]),(0,s._)("h3",null,[(0,s.Uk)(" Night Order "),(0,s.Wm)(h,{icon:"cloud-moon"}),(0,s.Uk)(" "+(0,a.zw)(e.edition.name||"Custom Script"),1)]),(0,s._)("div",lo,[(0,s._)("ul",ho,[mo,((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(l.rolesFirstNight,(t=>((0,s.wg)(),(0,s.iD)("li",{key:t.name,class:(0,a.C_)([t.team])},[(0,s._)("span",co,[(0,s.Uk)((0,a.zw)(t.name)+" ",1),t.players.length?((0,s.wg)(),(0,s.iD)("span",go,[po,((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(t.players,((e,i)=>((0,s.wg)(),(0,s.iD)("small",{class:(0,a.C_)({dead:e.isDead}),key:i},(0,a.zw)(e.name+(t.players.length>i+1?",":"")),3)))),128))])):(0,s.kq)("",!0)]),t.id?((0,s.wg)(),(0,s.iD)("span",{key:0,class:"icon",style:(0,a.j5)({backgroundImage:`url(${t.image&&e.grimoire.isImageOptIn?t.image:i(6003)("./"+(t.imageAlt||t.id)+".png")})`})},null,4)):(0,s.kq)("",!0),t.firstNightReminder?((0,s.wg)(),(0,s.iD)("span",yo,(0,a.zw)(t.firstNightReminder),1)):(0,s.kq)("",!0)],2)))),128))]),(0,s._)("ul",uo,[fo,((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(l.rolesOtherNight,(t=>((0,s.wg)(),(0,s.iD)("li",{key:t.name,class:(0,a.C_)([t.team])},[t.id?((0,s.wg)(),(0,s.iD)("span",{key:0,class:"icon",style:(0,a.j5)({backgroundImage:`url(${t.image&&e.grimoire.isImageOptIn?t.image:i(6003)("./"+(t.imageAlt||t.id)+".png")})`})},null,4)):(0,s.kq)("",!0),(0,s._)("span",bo,[(0,s.Uk)((0,a.zw)(t.name)+" ",1),t.players.length?((0,s.wg)(),(0,s.iD)("span",wo,[ko,((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(t.players,((e,i)=>((0,s.wg)(),(0,s.iD)("small",{class:(0,a.C_)({dead:e.isDead}),key:i},(0,a.zw)(e.name+(t.players.length>i+1?",":"")),3)))),128))])):(0,s.kq)("",!0)]),t.otherNightReminder?((0,s.wg)(),(0,s.iD)("span",No,(0,a.zw)(t.otherNightReminder),1)):(0,s.kq)("",!0)],2)))),128))])])])),_:1})):(0,s.kq)("",!0)}const Ao={components:{Modal:he},computed:{rolesFirstNight:function(){const e=[];return this.players.length>6&&e.push({id:"evil",name:"Minion info",firstNight:5,team:"minion",players:this.players.filter((e=>"minion"===e.role.team)),firstNightReminder:"• If more than one Minion, they all make eye contact with each other. • Show the “This is the Demon” card. Point to the Demon."},{id:"evil",name:"Demon info & bluffs",firstNight:8,team:"demon",players:this.players.filter((e=>"demon"===e.role.team)),firstNightReminder:"• Show the “These are your minions” card. Point to each Minion. • Show the “These characters are not in play” card. Show 3 character tokens of good characters not in play."}),this.roles.forEach((t=>{const i=this.players.filter((e=>e.role.id===t.id));t.firstNight&&("traveler"!==t.team||i.length)&&e.push(Object.assign({players:i},t))})),this.fabled.filter((({firstNight:e})=>e)).forEach((t=>{e.push(Object.assign({players:[]},t))})),e.sort(((e,t)=>e.firstNight-t.firstNight)),e},rolesOtherNight:function(){const e=[];return this.roles.forEach((t=>{const i=this.players.filter((e=>e.role.id===t.id));t.otherNight&&("traveler"!==t.team||i.length)&&e.push(Object.assign({players:i},t))})),this.fabled.filter((({otherNight:e})=>e)).forEach((t=>{e.push(Object.assign({players:[]},t))})),e.sort(((e,t)=>e.otherNight-t.otherNight)),e},...(0,d.rn)(["roles","modals","edition","grimoire"]),...(0,d.rn)("players",["players","fabled"])},methods:{...(0,d.OI)(["toggleModal"])}},Ro=(0,J.Z)(Ao,[["render",vo],["__scopeId","data-v-358fb701"]]),So=Ro,Io=e=>((0,s.dD)("data-v-d6b399a0"),e=e(),(0,s.Cn)(),e),Do=Io((()=>(0,s._)("h3",null," Choose a fabled character to add to the game ",-1))),Mo={class:"tokens"},To=["onClick"];function Go(e,t,i,o,a,r){const n=(0,s.up)("Token"),l=(0,s.up)("Modal");return e.modals.fabled&&r.fabled.length?((0,s.wg)(),(0,s.j4)(l,{key:0,onClose:t[0]||(t[0]=t=>e.toggleModal("fabled"))},{default:(0,s.w5)((()=>[Do,(0,s._)("ul",Mo,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(r.fabled,(e=>((0,s.wg)(),(0,s.iD)("li",{key:e.id,onClick:t=>r.setFabled(e)},[(0,s.Wm)(n,{role:e},null,8,["role"])],8,To)))),128))])])),_:1})):(0,s.kq)("",!0)}const Co={components:{Token:Q,Modal:he},computed:{...(0,d.rn)(["modals","fabled","grimoire"]),fabled(){const e=[];return this.$store.state.fabled.forEach((t=>{this.$store.state.players.fabled.some((e=>e.id===t.id))||e.push(t)})),e}},methods:{setFabled(e){this.$store.commit("players/setFabled",{fabled:e}),this.$store.commit("toggleModal","fabled")},...(0,d.OI)(["toggleModal"])}},xo=(0,J.Z)(Co,[["render",Go],["__scopeId","data-v-d6b399a0"]]),Eo=xo,Bo=e=>((0,s.dD)("data-v-9cbf0edc"),e=e(),(0,s.Cn)(),e),Yo=Bo((()=>(0,s._)("h3",null,"Vote history",-1))),Wo={key:0,class:"options"},Zo=Bo((()=>(0,s._)("td",null,"Time",-1))),Vo=Bo((()=>(0,s._)("td",null,"Nominator",-1))),Po=Bo((()=>(0,s._)("td",null,"Nominee",-1))),jo=Bo((()=>(0,s._)("td",null,"Type",-1))),Oo=Bo((()=>(0,s._)("td",null,"Votes",-1))),zo=Bo((()=>(0,s._)("td",null,"Majority",-1)));function Uo(e,t,i,o,r,n){const l=(0,s.up)("font-awesome-icon"),h=(0,s.up)("Modal");return!e.modals.voteHistory||!e.session.voteHistory&&e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.j4)(h,{key:0,class:"vote-history",onClose:t[4]||(t[4]=t=>e.toggleModal("voteHistory"))},{default:(0,s.w5)((()=>[(0,s._)("div",{onClick:t[0]||(t[0]=(...e)=>n.clearVoteHistory&&n.clearVoteHistory(...e))},[e.session.isSpectator?((0,s.wg)(),(0,s.j4)(l,{key:0,icon:"trash-alt",class:"clear",title:"Clear vote history"})):(0,s.kq)("",!0)]),Yo,e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",Wo,[(0,s._)("div",{class:"option",onClick:t[1]||(t[1]=(...e)=>n.setRecordVoteHistory&&n.setRecordVoteHistory(...e))},[(0,s.Wm)(l,{icon:["fas",e.session.isVoteHistoryAllowed?"check-square":"square"]},null,8,["icon"]),(0,s.Uk)(" Accessible to players ")]),(0,s._)("div",{class:"option",onClick:t[2]||(t[2]=(...e)=>n.setVoteWatching&&n.setVoteWatching(...e))},[(0,s.Wm)(l,{icon:["fas",e.session.isVoteWatchingAllowed?"check-square":"square"]},null,8,["icon"]),(0,s.Uk)(" Vote Watching ")]),(0,s._)("div",{class:"option",onClick:t[3]||(t[3]=(...e)=>n.clearVoteHistory&&n.clearVoteHistory(...e))},[(0,s.Wm)(l,{icon:"trash-alt"}),(0,s.Uk)(" Clear for everyone ")])])),(0,s._)("table",null,[(0,s._)("thead",null,[(0,s._)("tr",null,[Zo,Vo,Po,jo,Oo,zo,(0,s._)("td",null,[(0,s.Wm)(l,{icon:"user-friends"}),(0,s.Uk)(" Voters ")])])]),(0,s._)("tbody",null,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.session.voteHistory,((e,t)=>((0,s.wg)(),(0,s.iD)("tr",{key:t},[(0,s._)("td",null,(0,a.zw)(e.timestamp.getHours().toString().padStart(2,"0"))+":"+(0,a.zw)(e.timestamp.getMinutes().toString().padStart(2,"0")),1),(0,s._)("td",null,(0,a.zw)(e.nominator),1),(0,s._)("td",null,(0,a.zw)(e.nominee),1),(0,s._)("td",null,(0,a.zw)(e.type),1),(0,s._)("td",null,[(0,s.Uk)((0,a.zw)(e.votes.length)+" ",1),(0,s.Wm)(l,{icon:"hand-paper"})]),(0,s._)("td",null,[(0,s.Uk)((0,a.zw)(e.majority)+" ",1),(0,s.Wm)(l,{icon:["fas",e.votes.length>=e.majority?"check-square":"square"]},null,8,["icon"])]),(0,s._)("td",null,(0,a.zw)(e.votes.join(", ")),1)])))),128))])])])),_:1}))}const Ho={components:{Modal:he},computed:{...(0,d.rn)(["session","modals"])},methods:{clearVoteHistory(){this.$store.commit("session/clearVoteHistory")},setRecordVoteHistory(){this.$store.commit("session/setVoteHistoryAllowed",!this.session.isVoteHistoryAllowed),this.session.isVoteHistoryAllowed&&this.$store.commit("session/setVoteWatchingAllowed",!0)},setVoteWatching(){this.$store.commit("session/setVoteWatchingAllowed",!this.session.isVoteWatchingAllowed),this.session.isVoteWatchingAllowed||this.$store.commit("session/setVoteHistoryAllowed",!1)},...(0,d.OI)(["toggleModal"])}},Fo=(0,J.Z)(Ho,[["render",Uo],["__scopeId","data-v-9cbf0edc"]]),Jo=Fo,Lo=e=>((0,s.dD)("data-v-7971ea6f"),e=e(),(0,s.Cn)(),e),Qo=Lo((()=>(0,s._)("h3",null,"Current Game State",-1))),qo=["value"],Xo={class:"button-group"};function Ko(e,t,i,a,r,n){const l=(0,s.up)("font-awesome-icon"),h=(0,s.up)("Modal");return e.modals.gameState?((0,s.wg)(),(0,s.j4)(h,{key:0,class:"game-state",onClose:t[5]||(t[5]=t=>e.toggleModal("gameState"))},{default:(0,s.w5)((()=>[Qo,(0,s._)("textarea",{value:n.gamestate,onInput:t[0]||(t[0]=(0,o.iM)((e=>r.input=e.target.value),["stop"])),onClick:t[1]||(t[1]=e=>e.target.select()),onKeyup:t[2]||(t[2]=(0,o.iM)((()=>{}),["stop"]))},null,40,qo),(0,s._)("div",Xo,[(0,s._)("div",{class:"button townsfolk",onClick:t[3]||(t[3]=(...e)=>n.copy&&n.copy(...e))},[(0,s.Wm)(l,{icon:"copy"}),(0,s.Uk)(" Copy JSON ")]),e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",{key:0,class:"button demon",onClick:t[4]||(t[4]=(...e)=>n.load&&n.load(...e))},[(0,s.Wm)(l,{icon:"cog"}),(0,s.Uk)(" Load State ")]))])])),_:1})):(0,s.kq)("",!0)}const _o={components:{Modal:he},computed:{gamestate:function(){return JSON.stringify({bluffs:this.players.bluffs.map((({id:e})=>e)),edition:this.edition.isOfficial?{id:this.edition.id}:this.edition,roles:this.edition.isOfficial?"":this.$store.getters.customRolesStripped,fabled:this.players.fabled.map((e=>e.isCustom?e:{id:e.id})),players:this.players.players.map((e=>({...e,role:e.role.id||{}})))})},...(0,d.rn)(["modals","players","edition","roles","session"])},data(){return{input:""}},methods:{copy:function(){navigator.clipboard.writeText(this.input||this.gamestate)},load:function(){if(!this.session.isSpectator)try{const e=JSON.parse(this.input||this.gamestate),{bluffs:t,edition:i,roles:o,fabled:s,players:a}=e;o&&this.$store.commit("setCustomRoles",o),i&&this.$store.commit("setEdition",i),t.length&&t.forEach(((e,t)=>{this.$store.commit("players/setBluff",{index:t,role:this.$store.state.roles.get(e)||{}})})),s&&this.$store.commit("players/setFabled",{fabled:s.map((e=>this.$store.state.fabled.get(e)||this.$store.state.fabled.get(e.id)||e))}),a&&this.$store.commit("players/set",a.map((e=>({...e,role:this.$store.state.roles.get(e.role)||this.$store.getters.rolesJSONbyId.get(e.role)||{}})))),this.toggleModal("gameState")}catch(e){alert("Unable to parse JSON: "+e)}},...(0,d.OI)(["toggleModal"])}},$o=(0,J.Z)(_o,[["render",Ko],["__scopeId","data-v-7971ea6f"]]),es=$o,ts={components:{GameStateModal:es,VoteHistoryModal:Jo,FabledModal:Eo,NightOrderModal:So,Vote:eo,ReferenceModal:Ti,Intro:gi,TownInfo:Oe,TownSquare:Ge,Menu:bt,EditionModal:_t,RolesModal:Ct,Gradients:ro},computed:{...(0,d.rn)(["grimoire","session","modals"]),...(0,d.rn)("players",["players"])},data(){return{version:m.i8}},methods:{keyup({key:e,ctrlKey:t,metaKey:i}){if(!(t||i||this.modals.role))switch(e.toLocaleLowerCase()){case"g":this.$store.commit("toggleGrimoire");break;case"a":this.$refs.menu.addPlayer();break;case"h":this.$refs.menu.hostSession();break;case"j":this.$refs.menu.joinSession();break;case"r":this.$store.commit("toggleModal","reference");break;case"n":this.$store.commit("toggleModal","nightOrder");break;case"e":if(this.session.isSpectator)return;this.$store.commit("toggleModal","edition");break;case"c":if(this.session.isSpectator)return;this.$store.commit("toggleModal","roles");break;case"v":!this.session.voteHistory.length&&this.session.isSpectator||this.$store.commit("toggleModal","voteHistory");break;case"s":if(this.session.isSpectator)return;this.$refs.menu.toggleNight();break;case"escape":this.$store.commit("toggleModal")}}}},is=(0,J.Z)(ts,[["render",h]]),os=is;var ss=i(2464),as=i.n(ss);class rs{constructor(e){this._wss="wss://townsquaremsg.clocktower.guru:8080/",this._socket=null,this._isSpectator=!0,this._gamestate=[],this._store=e,this._pingInterval=3e4,this._pingTimer=null,this._reconnectTimer=null,this._players={},this._pings={},this._store.state.session.sessionId&&this.connect(this._store.state.session.sessionId)}_open(e){this.disconnect(),this._socket=new WebSocket(this._wss+e+"/"+(this._isSpectator?this._store.state.session.playerId:"host")),this._socket.addEventListener("message",this._handleMessage.bind(this)),this._socket.onopen=this._onOpen.bind(this),this._socket.onclose=t=>{this._socket=null,clearInterval(this._pingTimer),this._pingTimer=null,1e3!==t.code?(this._store.commit("session/setReconnecting",!0),this._reconnectTimer=setTimeout((()=>this.connect(e)),3e3)):(this._store.commit("session/setSessionId",""),t.reason&&alert(t.reason))}}_send(e,t){this._socket&&1===this._socket.readyState&&this._socket.send(JSON.stringify([e,t]))}_sendDirect(e,t,i){e?this._send("direct",{[e]:[t,i]}):this._send(t,i)}_onOpen(){this._isSpectator?this._sendDirect("host","getGamestate",this._store.state.session.playerId):this.sendGamestate(),this._ping()}_ping(){this._handlePing(),this._send("ping",[this._isSpectator?this._store.state.session.playerId:Object.keys(this._players).length,"latency"]),clearTimeout(this._pingTimer),this._pingTimer=setTimeout(this._ping.bind(this),this._pingInterval)}_handleMessage({data:e}){let t,i;try{[t,i]=JSON.parse(e)}catch(o){console.log("unsupported socket message",e)}switch(t){case"getGamestate":this.sendGamestate(i);break;case"edition":this._updateEdition(i);break;case"fabled":this._updateFabled(i);break;case"gs":this._updateGamestate(i);break;case"player":this._updatePlayer(i);break;case"claim":this._updateSeat(i);break;case"ping":this._handlePing(i);break;case"nomination":if(!this._isSpectator)return;i||this._store.commit("session/addHistory",this._store.state.players.players),this._store.commit("session/nomination",{nomination:i});break;case"swap":if(!this._isSpectator)return;this._store.commit("players/swap",i);break;case"move":if(!this._isSpectator)return;this._store.commit("players/move",i);break;case"remove":if(!this._isSpectator)return;this._store.commit("players/remove",i);break;case"marked":if(!this._isSpectator)return;this._store.commit("session/setMarkedPlayer",i);break;case"isNight":if(!this._isSpectator)return;this._store.commit("toggleNight",i);break;case"isVoteHistoryAllowed":if(!this._isSpectator)return;this._store.commit("session/setVoteHistoryAllowed",i),this._store.commit("session/clearVoteHistory");break;case"isVoteWatchingAllowed":if(!this._isSpectator)return;this._store.commit("session/setVoteWatchingAllowed",i);break;case"votingSpeed":if(!this._isSpectator)return;this._store.commit("session/setVotingSpeed",i);break;case"clearVoteHistory":if(!this._isSpectator)return;this._store.commit("session/clearVoteHistory");break;case"isVoteInProgress":if(!this._isSpectator)return;this._store.commit("session/setVoteInProgress",i);break;case"vote":this._handleVote(i);break;case"lock":this._handleLock(i);break;case"bye":this._handleBye(i);break;case"pronouns":this._updatePlayerPronouns(i);break}}connect(e){this._store.state.session.playerId||this._store.commit("session/setPlayerId",Math.random().toString(36).substr(2)),this._pings={},this._store.commit("session/setPlayerCount",0),this._store.commit("session/setPing",0),this._isSpectator=this._store.state.session.isSpectator,this._open(e)}disconnect(){this._pings={},this._store.commit("session/setPlayerCount",0),this._store.commit("session/setPing",0),this._store.commit("session/setReconnecting",!1),clearTimeout(this._reconnectTimer),this._socket&&(this._isSpectator&&this._sendDirect("host","bye",this._store.state.session.playerId),this._socket.close(1e3),this._socket=null)}sendGamestate(e="",t=!1){if(!this._isSpectator)if(this._gamestate=this._store.state.players.players.map((e=>({name:e.name,id:e.id,isDead:e.isDead,isVoteless:e.isVoteless,pronouns:e.pronouns,...e.role&&"traveler"===e.role.team?{roleId:e.role.id}:{}}))),t)this._sendDirect(e,"gs",{gamestate:this._gamestate,isLightweight:t});else{const{session:t,grimoire:i}=this._store.state,{fabled:o}=this._store.state.players;this.sendEdition(e),this._sendDirect(e,"gs",{gamestate:this._gamestate,isNight:i.isNight,isVoteHistoryAllowed:t.isVoteHistoryAllowed,isVoteWatchingAllowed:t.isVoteWatchingAllowed,nomination:t.nomination,votingSpeed:t.votingSpeed,lockedVote:t.lockedVote,isVoteInProgress:t.isVoteInProgress,markedPlayer:t.markedPlayer,fabled:o.map((e=>e.isCustom?e:{id:e.id})),...t.nomination?{votes:t.votes}:{}})}}_updateGamestate(e){if(!this._isSpectator)return;const{gamestate:t,isLightweight:i,isNight:o,isVoteHistoryAllowed:s,isVoteWatchingAllowed:a,nomination:r,votingSpeed:n,votes:l,lockedVote:h,isVoteInProgress:d,markedPlayer:m,fabled:c}=e,g=this._store.state.players.players;if(g.lengtht.length)for(let p=g.length;p>t.length;p--)this._store.commit("players/remove",p-1);t.forEach(((e,t)=>{const i=g[t],{roleId:o}=e;if(["name","id","isDead","isVoteless","pronouns"].forEach((t=>{const o=e[t];i[t]!==o&&this._store.commit("players/update",{player:i,property:t,value:o})})),o&&i.role.id!==o){const e=this._store.state.roles.get(o)||this._store.getters.rolesJSONbyId.get(o);e&&this._store.commit("players/update",{player:i,property:"role",value:e})}else o||"traveler"!==i.role.team||this._store.commit("players/update",{player:i,property:"role",value:{}})})),i||(this._store.commit("toggleNight",!!o),this._store.commit("session/setVoteHistoryAllowed",s),this._store.commit("session/setVoteWatchingAllowed",a),this._store.commit("session/nomination",{nomination:r,votes:l,votingSpeed:n,lockedVote:h,isVoteInProgress:d}),this._store.commit("session/setMarkedPlayer",m),this._store.commit("players/setFabled",{fabled:c.map((e=>this._store.state.fabled.get(e.id)||e))}))}sendEdition(e=""){if(this._isSpectator)return;const{edition:t}=this._store.state;let i;t.isOfficial||(i=this._store.getters.customRolesStripped),this._sendDirect(e,"edition",{edition:t.isOfficial?{id:t.id}:t,...i?{roles:i}:{}})}_updateEdition({edition:e,roles:t}){if(this._isSpectator&&(this._store.commit("setEdition",e),t&&(this._store.commit("setCustomRoles",t),this._store.state.roles.size!==t.length))){const e=[];t.forEach((({id:t})=>{this._store.state.roles.get(t)||e.push(t)})),alert(`This session contains custom characters that can't be found. Please load them before joining! Missing roles: ${e.join(", ")}`),this.disconnect(),this._store.commit("toggleModal","edition")}}sendFabled(){if(this._isSpectator)return;const{fabled:e}=this._store.state.players;this._send("fabled",e.map((e=>e.isCustom?e:{id:e.id})))}_updateFabled(e){this._isSpectator&&this._store.commit("players/setFabled",{fabled:e.map((e=>this._store.state.fabled.get(e.id)||e))})}sendPlayer({player:e,property:t,value:i}){if(this._isSpectator||"reminders"===t)return;const o=this._store.state.players.players.indexOf(e);"role"===t?i.team&&"traveler"===i.team?(this._gamestate[o].roleId=i.id,this._send("player",{index:o,property:t,value:i.id})):this._gamestate[o].roleId&&(delete this._gamestate[o].roleId,this._send("player",{index:o,property:t,value:""})):this._send("player",{index:o,property:t,value:i})}_updatePlayer({index:e,property:t,value:i}){if(!this._isSpectator)return;const o=this._store.state.players.players[e];if(o)if("role"===t)if(i||"traveler"!==o.role.team){const e=this._store.state.roles.get(i)||this._store.getters.rolesJSONbyId.get(i)||{};this._store.commit("players/update",{player:o,property:"role",value:e})}else this._store.commit("players/update",{player:o,property:"role",value:{}});else this._store.commit("players/update",{player:o,property:t,value:i})}sendPlayerPronouns({player:e,value:t,isFromSockets:i}){if(i||this._isSpectator&&this._store.state.session.playerId!==e.id)return;const o=this._store.state.players.players.indexOf(e);this._send("pronouns",[o,t])}_updatePlayerPronouns([e,t]){const i=this._store.state.players.players[e];this._store.commit("players/update",{player:i,property:"pronouns",value:t,isFromSockets:!0})}_handlePing([e=0,t]=[]){const i=(new Date).getTime();if(this._isSpectator)t&&this._store.commit("session/setPing",parseInt(t,10));else{for(let e in this._players)i-this._players[e]>2*this._pingInterval&&(delete this._players[e],delete this._pings[e]);if(this._store.state.players.players.forEach((e=>{e.id&&!this._players[e.id]&&this._store.commit("players/update",{player:e,property:"id",value:""})})),e){this._players[e]=i;const o=parseInt(t,10);if(o&&o>0&&o<3e4){this._pings[e]=o;const t=Object.values(this._pings);this._store.commit("session/setPing",Math.round(t.reduce(((e,t)=>e+t),0)/t.length))}}}this._isSpectator&&!e||this._store.commit("session/setPlayerCount",this._isSpectator?e:Object.keys(this._players).length)}_handleBye(e){this._isSpectator||(delete this._players[e],this._store.commit("session/setPlayerCount",Object.keys(this._players).length))}claimSeat(e){if(!this._isSpectator)return;const t=this._store.state.players.players;t.length>e&&(e<0||!t[e].id)&&this._send("claim",[e,this._store.state.session.playerId])}_updateSeat([e,t]){if(this._isSpectator)return;const i="id",o=this._store.state.players.players,s=o.findIndex((({id:e})=>e===t));if(s>=0&&s!==e&&this._store.commit("players/update",{player:o[s],property:i,value:""}),e>=0){const s=o[e];if(!s)return;this._store.commit("players/update",{player:s,property:i,value:t})}this._handlePing([!0,t,0])}distributeRoles(){if(this._isSpectator)return;const e={};this._store.state.players.players.forEach(((t,i)=>{t.id&&t.role&&(e[t.id]=["player",{index:i,property:"role",value:t.role.id}])})),Object.keys(e).length&&this._send("direct",e)}nomination(e){if(this._isSpectator)return;const t=e&&e.nomination||e,i=this._store.state.players.players;(!t||i.length>t[0]&&i.length>t[1])&&(this.setVotingSpeed(this._store.state.session.votingSpeed),this._send("nomination",t))}setVoteInProgress(){this._isSpectator||this._send("isVoteInProgress",this._store.state.session.isVoteInProgress)}setIsNight(){this._isSpectator||this._send("isNight",this._store.state.grimoire.isNight)}setVoteHistoryAllowed(){this._isSpectator||this._send("isVoteHistoryAllowed",this._store.state.session.isVoteHistoryAllowed)}setVoteWatchingAllowed(){this._isSpectator||this._send("isVoteWatchingAllowed",this._store.state.session.isVoteWatchingAllowed)}setVotingSpeed(e){this._isSpectator||e&&this._send("votingSpeed",e)}setMarked(e){this._isSpectator||this._send("marked",e)}clearVoteHistory(){this._isSpectator||this._send("clearVoteHistory")}vote([e]){const t=this._store.state.players.players[e];this._store.state.session.playerId!==t.id&&this._isSpectator||this._send("vote",[e,this._store.state.session.votes[e],!this._isSpectator])}_handleVote([e,t,i]){const{session:o,players:s}=this._store.state,a=s.players.length,r=(e-1+a-o.nomination[1])%a;(i||r>=o.lockedVote-1)&&this._store.commit("session/vote",[e,t])}lockVote(){if(this._isSpectator)return;const{lockedVote:e,votes:t,nomination:i}=this._store.state.session,{players:o}=this._store.state.players,s=(i[1]+e-1)%o.length;this._send("lock",[this._store.state.session.lockedVote,t[s]])}_handleLock([e,t]){if(this._isSpectator&&(this._store.commit("session/lockVote",e),e>1)){const{lockedVote:e,nomination:i}=this._store.state.session,{players:o}=this._store.state.players,s=(i[1]+e-1)%o.length;this._store.state.session.votes[s]!==t&&this._store.commit("session/vote",[s,t])}}swapPlayer(e){this._isSpectator||this._send("swap",e)}movePlayer(e){this._isSpectator||this._send("move",e)}removePlayer(e){this._isSpectator||this._send("remove",e)}}const ns=e=>{const t=new rs(e);e.subscribe((({type:e,payload:i},o)=>{switch(e){case"session/setSessionId":o.session.sessionId?t.connect(o.session.sessionId):(window.location.hash="",t.disconnect());break;case"session/claimSeat":t.claimSeat(i);break;case"session/distributeRoles":i&&t.distributeRoles();break;case"session/nomination":case"session/setNomination":t.nomination(i);break;case"session/setVoteInProgress":t.setVoteInProgress(i);break;case"session/voteSync":t.vote(i);break;case"session/lockVote":t.lockVote();break;case"session/setVotingSpeed":t.setVotingSpeed(i);break;case"session/clearVoteHistory":t.clearVoteHistory();break;case"session/setVoteHistoryAllowed":t.setVoteHistoryAllowed();break;case"session/setVoteWatchingAllowed":t.setVoteWatchingAllowed();break;case"toggleNight":t.setIsNight();break;case"setEdition":t.sendEdition();break;case"players/setFabled":t.sendFabled();break;case"session/setMarkedPlayer":t.setMarked(i);break;case"players/swap":t.swapPlayer(i);break;case"players/move":t.movePlayer(i);break;case"players/remove":t.removePlayer(i);break;case"players/set":case"players/clear":case"players/add":t.sendGamestate("",!0);break;case"players/update":"pronouns"===i.property?t.sendPlayerPronouns(i):t.sendPlayer(i);break}}));const i=window.location.hash.substr(1);i&&(e.commit("session/setSpectator",!0),e.commit("session/setSessionId",i),e.commit("toggleGrimoire",!1))},ls={name:"",id:"",role:{},reminders:[],isVoteless:!1,isDead:!1,pronouns:""},hs=()=>({players:[],fabled:[],bluffs:[]}),ds={alive({players:e}){return e.filter((e=>!e.isDead)).length},nonTravelers({players:e}){const t=e.filter((e=>"traveler"!==e.role.team));return Math.min(t.length,15)},nightOrder({players:e,fabled:t}){const i=[0],o=[0];e.forEach((({role:e})=>{e.firstNight&&!i.includes(e.firstNight)&&i.push(e.firstNight),e.otherNight&&!o.includes(e.otherNight)&&o.push(e.otherNight)})),t.forEach((e=>{e.firstNight&&!i.includes(e.firstNight)&&i.push(e.firstNight),e.otherNight&&!o.includes(e.otherNight)&&o.push(e.otherNight)})),i.sort(((e,t)=>e-t)),o.sort(((e,t)=>e-t));const s=new Map;return e.forEach((e=>{const t=Math.max(i.indexOf(e.role.firstNight),0),a=Math.max(o.indexOf(e.role.otherNight),0);s.set(e,{first:t,other:a})})),t.forEach((e=>{const t=Math.max(i.indexOf(e.firstNight),0),a=Math.max(o.indexOf(e.otherNight),0);s.set(e,{first:t,other:a})})),s}},ms={randomize({state:e,commit:t}){const i=e.players.map((e=>[Math.random(),e])).sort(((e,t)=>e[0]-t[0])).map((e=>e[1]));t("set",i)},clearRoles({state:e,commit:t,rootState:i}){let o;i.session.isSpectator?o=e.players.map((e=>("traveler"!==e.role.team&&(e.role={}),e.reminders=[],e))):(o=e.players.map((({name:e,id:t,pronouns:i})=>({...ls,name:e,id:t,pronouns:i}))),t("setFabled",{fabled:[]})),t("set",o),t("setBluff")}},cs={clear(e){e.players=[],e.bluffs=[],e.fabled=[]},set(e,t=[]){e.players=t},update(e,{player:t,property:i,value:o}){const s=e.players.indexOf(t);s>=0&&(e.players[s][i]=o)},add(e,t){e.players.push({...ls,name:t})},remove(e,t){e.players.splice(t,1)},swap(e,[t,i]){[e.players[t],e.players[i]]=[e.players[i],e.players[t]],e.players.splice(0,0)},move(e,[t,i]){e.players.splice(i,0,e.players.splice(t,1)[0])},setBluff(e,{index:t,role:i}={}){void 0!==t?e.bluffs.splice(t,1,i):e.bluffs=[]},setFabled(e,{index:t,fabled:i}={}){void 0!==t?e.fabled.splice(t,1):i&&(Array.isArray(i)?e.fabled=i:e.fabled.push(i))}},gs={namespaced:!0,state:hs,getters:ds,actions:ms,mutations:cs},ps=(e,[t,i])=>{e.nomination&&(e.votes=[...e.votes],e.votes[t]=void 0===i?!e.votes[t]:i)},ys=()=>({sessionId:"",isSpectator:!1,isReconnecting:!1,playerCount:0,ping:0,playerId:"",claimedSeat:-1,nomination:!1,votes:[],lockedVote:0,votingSpeed:3e3,isVoteInProgress:!1,voteHistory:[],markedPlayer:-1,isVoteHistoryAllowed:!1,isVoteWatchingAllowed:!0,isRolesDistributed:!1}),us={},fs={},bs=e=>(t,i)=>{t[e]=i},ws={setPlayerId:bs("playerId"),setSpectator:bs("isSpectator"),setReconnecting:bs("isReconnecting"),setPlayerCount:bs("playerCount"),setPing:bs("ping"),setVotingSpeed:bs("votingSpeed"),setVoteInProgress:bs("isVoteInProgress"),setMarkedPlayer:bs("markedPlayer"),setNomination:bs("nomination"),setVoteHistoryAllowed:bs("isVoteHistoryAllowed"),setVoteWatchingAllowed:bs("isVoteWatchingAllowed"),claimSeat:bs("claimedSeat"),distributeRoles:bs("isRolesDistributed"),setSessionId(e,t){e.sessionId=t.toLocaleLowerCase().replace(/[^0-9a-z]/g,"").substr(0,10)},nomination(e,{nomination:t,votes:i,votingSpeed:o,lockedVote:s,isVoteInProgress:a}={}){e.nomination=t||!1,e.votes=i||[],e.votingSpeed=o||e.votingSpeed,e.lockedVote=s||0,e.isVoteInProgress=a||!1},addHistory(e,t){if(!e.isVoteHistoryAllowed&&e.isSpectator)return;if(!e.nomination||e.lockedVote<=t.length)return;const i="traveler"===t[e.nomination[1]].role.team;e.voteHistory.push({timestamp:new Date,nominator:t[e.nomination[0]].name,nominee:t[e.nomination[1]].name,type:i?"Exile":"Execution",majority:Math.ceil(t.filter((e=>!e.isDead||i)).length/2),votes:t.filter(((t,i)=>e.votes[i])).map((({name:e})=>e))})},clearVoteHistory(e){e.voteHistory=[]},vote:ps,voteSync:ps,lockVote(e,t){e.lockedVote=void 0!==t?t:e.lockedVote+1}},ks={namespaced:!0,state:ys,getters:us,actions:fs,mutations:ws},Ns=JSON.parse('[{"id":"washerwoman","name":"Washerwoman","edition":"tb","team":"townsfolk","firstNight":33,"firstNightReminder":"Show the character token of a Townsfolk in play. Point to two players, one of which is that character.","otherNight":0,"otherNightReminder":"","reminders":["Townsfolk","Wrong"],"setup":false,"ability":"You start knowing that 1 of 2 players is a particular Townsfolk."},{"id":"librarian","name":"Librarian","edition":"tb","team":"townsfolk","firstNight":34,"firstNightReminder":"Show the character token of an Outsider in play. Point to two players, one of which is that character.","otherNight":0,"otherNightReminder":"","reminders":["Outsider","Wrong"],"setup":false,"ability":"You start knowing that 1 of 2 players is a particular Outsider. (Or that zero are in play.)"},{"id":"investigator","name":"Investigator","edition":"tb","team":"townsfolk","firstNight":35,"firstNightReminder":"Show the character token of a Minion in play. Point to two players, one of which is that character.","otherNight":0,"otherNightReminder":"","reminders":["Minion","Wrong"],"setup":false,"ability":"You start knowing that 1 of 2 players is a particular Minion."},{"id":"chef","name":"Chef","edition":"tb","team":"townsfolk","firstNight":36,"firstNightReminder":"Show the finger signal (0, 1, 2, …) for the number of pairs of neighbouring evil players.","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"You start knowing how many pairs of evil players there are."},{"id":"empath","name":"Empath","edition":"tb","team":"townsfolk","firstNight":37,"firstNightReminder":"Show the finger signal (0, 1, 2) for the number of evil alive neighbours of the Empath.","otherNight":53,"otherNightReminder":"Show the finger signal (0, 1, 2) for the number of evil neighbours.","reminders":[],"setup":false,"ability":"Each night, you learn how many of your 2 alive neighbours are evil."},{"id":"fortuneteller","name":"Fortune Teller","edition":"tb","team":"townsfolk","firstNight":38,"firstNightReminder":"The Fortune Teller points to two players. Give the head signal (nod yes, shake no) for whether one of those players is the Demon. ","otherNight":54,"otherNightReminder":"The Fortune Teller points to two players. Show the head signal (nod \'yes\', shake \'no\') for whether one of those players is the Demon.","reminders":["Red herring"],"setup":false,"ability":"Each night, choose 2 players: you learn if either is a Demon. There is a good player that registers as a Demon to you."},{"id":"undertaker","name":"Undertaker","edition":"tb","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":55,"otherNightReminder":"If a player was executed today: Show that player’s character token.","reminders":["Executed"],"setup":false,"ability":"Each night*, you learn which character died by execution today."},{"id":"monk","name":"Monk","edition":"tb","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":12,"otherNightReminder":"The previously protected player is no longer protected. The Monk points to a player not themself. Mark that player \'Protected\'.","reminders":["Protected"],"setup":false,"ability":"Each night*, choose a player (not yourself): they are safe from the Demon tonight."},{"id":"ravenkeeper","name":"Ravenkeeper","edition":"tb","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":52,"otherNightReminder":"If the Ravenkeeper died tonight: The Ravenkeeper points to a player. Show that player’s character token.","reminders":[],"setup":false,"ability":"If you die at night, you are woken to choose a player: you learn their character."},{"id":"virgin","name":"Virgin","edition":"tb","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["No ability"],"setup":false,"ability":"The 1st time you are nominated, if the nominator is a Townsfolk, they are executed immediately."},{"id":"slayer","name":"Slayer","edition":"tb","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["No ability"],"setup":false,"ability":"Once per game, during the day, publicly choose a player: if they are the Demon, they die."},{"id":"soldier","name":"Soldier","edition":"tb","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"You are safe from the Demon."},{"id":"mayor","name":"Mayor","edition":"tb","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"If only 3 players live & no execution occurs, your team wins. If you die at night, another player might die instead."},{"id":"butler","name":"Butler","edition":"tb","team":"outsider","firstNight":39,"firstNightReminder":"The Butler points to a player. Mark that player as \'Master\'.","otherNight":67,"otherNightReminder":"The Butler points to a player. Mark that player as \'Master\'.","reminders":["Master"],"setup":false,"ability":"Each night, choose a player (not yourself): tomorrow, you may only vote if they are voting too."},{"id":"drunk","name":"Drunk","edition":"tb","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"remindersGlobal":["Drunk"],"setup":true,"ability":"You do not know you are the Drunk. You think you are a Townsfolk character, but you are not."},{"id":"recluse","name":"Recluse","edition":"tb","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"You might register as evil & as a Minion or Demon, even if dead."},{"id":"saint","name":"Saint","edition":"tb","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"If you die by execution, your team loses."},{"id":"poisoner","name":"Poisoner","edition":"tb","team":"minion","firstNight":17,"firstNightReminder":"The Poisoner points to a player. That player is poisoned.","otherNight":7,"otherNightReminder":"The previously poisoned player is no longer poisoned. The Poisoner points to a player. That player is poisoned.","reminders":["Poisoned"],"setup":false,"ability":"Each night, choose a player: they are poisoned tonight and tomorrow day."},{"id":"spy","name":"Spy","edition":"tb","team":"minion","firstNight":49,"firstNightReminder":"Show the Grimoire to the Spy for as long as they need.","otherNight":68,"otherNightReminder":"Show the Grimoire to the Spy for as long as they need.","reminders":[],"setup":false,"ability":"Each night, you see the Grimoire. You might register as good & as a Townsfolk or Outsider, even if dead."},{"id":"scarletwoman","name":"Scarlet Woman","edition":"tb","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":19,"otherNightReminder":"If the Scarlet Woman became the Demon today: Show the \'You are\' card, then the demon token.","reminders":["Demon"],"setup":false,"ability":"If there are 5 or more players alive & the Demon dies, you become the Demon. (Travellers don’t count)"},{"id":"baron","name":"Baron","edition":"tb","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":true,"ability":"There are extra Outsiders in play. [+2 Outsiders]"},{"id":"imp","name":"Imp","edition":"tb","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":24,"otherNightReminder":"The Imp points to a player. That player dies. If the Imp chose themselves: Replace the character of 1 alive minion with a spare Imp token. Show the \'You are\' card, then the Imp token.","reminders":["Dead"],"setup":false,"ability":"Each night*, choose a player: they die. If you kill yourself this way, a Minion becomes the Imp."},{"id":"bureaucrat","name":"Bureaucrat","edition":"tb","team":"traveler","firstNight":1,"firstNightReminder":"The Bureaucrat points to a player. Put the Bureaucrat\'s \'3 votes\' reminder by the chosen player\'s character token.","otherNight":1,"otherNightReminder":"The Bureaucrat points to a player. Put the Bureaucrat\'s \'3 votes\' reminder by the chosen player\'s character token.","reminders":["3 votes"],"setup":false,"ability":"Each night, choose a player (not yourself): their vote counts as 3 votes tomorrow."},{"id":"thief","name":"Thief","edition":"tb","team":"traveler","firstNight":1,"firstNightReminder":"The Thief points to a player. Put the Thief\'s \'Negative vote\' reminder by the chosen player\'s character token.","otherNight":1,"otherNightReminder":"The Thief points to a player. Put the Thief\'s \'Negative vote\' reminder by the chosen player\'s character token.","reminders":["Negative vote"],"setup":false,"ability":"Each night, choose a player (not yourself): their vote counts negatively tomorrow."},{"id":"gunslinger","name":"Gunslinger","edition":"tb","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Each day, after the 1st vote has been tallied, you may choose a player that voted: they die."},{"id":"scapegoat","name":"Scapegoat","edition":"tb","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"If a player of your alignment is executed, you might be executed instead."},{"id":"beggar","name":"Beggar","edition":"tb","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"You must use a vote token to vote. Dead players may choose to give you theirs. If so, you learn their alignment. You are sober & healthy."},{"id":"grandmother","name":"Grandmother","edition":"bmr","team":"townsfolk","firstNight":40,"firstNightReminder":"Show the marked character token. Point to the marked player.","otherNight":51,"otherNightReminder":"If the Grandmother’s grandchild was killed by the Demon tonight: The Grandmother dies.","reminders":["Grandchild"],"setup":false,"ability":"You start knowing a good player & their character. If the Demon kills them, you die too."},{"id":"sailor","name":"Sailor","edition":"bmr","team":"townsfolk","firstNight":11,"firstNightReminder":"The Sailor points to a living player. Either the Sailor, or the chosen player, is drunk.","otherNight":4,"otherNightReminder":"The previously drunk player is no longer drunk. The Sailor points to a living player. Either the Sailor, or the chosen player, is drunk.","reminders":["Drunk"],"setup":false,"ability":"Each night, choose an alive player: either you or they are drunk until dusk. You can\'t die."},{"id":"chambermaid","name":"Chambermaid","edition":"bmr","team":"townsfolk","firstNight":51,"firstNightReminder":"The Chambermaid points to two players. Show the number signal (0, 1, 2, …) for how many of those players wake tonight for their ability.","otherNight":70,"otherNightReminder":"The Chambermaid points to two players. Show the number signal (0, 1, 2, …) for how many of those players wake tonight for their ability.","reminders":[],"setup":false,"ability":"Each night, choose 2 alive players (not yourself): you learn how many woke tonight due to their ability."},{"id":"exorcist","name":"Exorcist","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":21,"otherNightReminder":"The Exorcist points to a player, different from the previous night. If that player is the Demon: Wake the Demon. Show the Exorcist token. Point to the Exorcist. The Demon does not act tonight.","reminders":["Chosen"],"setup":false,"ability":"Each night*, choose a player (different to last night): the Demon, if chosen, learns who you are then doesn\'t wake tonight."},{"id":"innkeeper","name":"Innkeeper","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":9,"otherNightReminder":"The previously protected and drunk players lose those markers. The Innkeeper points to two players. Those players are protected. One is drunk.","reminders":["Protected","Drunk"],"setup":false,"ability":"Each night*, choose 2 players: they can\'t die tonight, but 1 is drunk until dusk."},{"id":"gambler","name":"Gambler","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":10,"otherNightReminder":"The Gambler points to a player, and a character on their sheet. If incorrect, the Gambler dies.","reminders":["Dead"],"setup":false,"ability":"Each night*, choose a player & guess their character: if you guess wrong, you die."},{"id":"gossip","name":"Gossip","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":38,"otherNightReminder":"If the Gossip’s public statement was true: Choose a player not protected from dying tonight. That player dies.","reminders":["Dead"],"setup":false,"ability":"Each day, you may make a public statement. Tonight, if it was true, a player dies."},{"id":"courtier","name":"Courtier","edition":"bmr","team":"townsfolk","firstNight":19,"firstNightReminder":"The Courtier either shows a \'no\' head signal, or points to a character on the sheet. If the Courtier used their ability: If that character is in play, that player is drunk.","otherNight":8,"otherNightReminder":"Reduce the remaining number of days the marked player is poisoned. If the Courtier has not yet used their ability: The Courtier either shows a \'no\' head signal, or points to a character on the sheet. If the Courtier used their ability: If that character is in play, that player is drunk.","reminders":["Drunk 3","Drunk 2","Drunk 1","No ability"],"setup":false,"ability":"Once per game, at night, choose a character: they are drunk for 3 nights & 3 days."},{"id":"professor","name":"Professor","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":43,"otherNightReminder":"If the Professor has not used their ability: The Professor either shakes their head no, or points to a player. If that player is a Townsfolk, they are now alive.","reminders":["Alive","No ability"],"setup":false,"ability":"Once per game, at night*, choose a dead player: if they are a Townsfolk, they are resurrected."},{"id":"minstrel","name":"Minstrel","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["Everyone drunk"],"setup":false,"ability":"When a Minion dies by execution, all other players (except Travellers) are drunk until dusk tomorrow."},{"id":"tealady","name":"Tea Lady","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["Can not die"],"setup":false,"ability":"If both your alive neighbours are good, they can\'t die."},{"id":"pacifist","name":"Pacifist","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Executed good players might not die."},{"id":"fool","name":"Fool","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["No ability"],"setup":false,"ability":"The first time you die, you don\'t."},{"id":"tinker","name":"Tinker","edition":"bmr","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":49,"otherNightReminder":"The Tinker might die.","reminders":["Dead"],"setup":false,"ability":"You might die at any time."},{"id":"moonchild","name":"Moonchild","edition":"bmr","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":50,"otherNightReminder":"If the Moonchild used their ability to target a player today: If that player is good, they die.","reminders":["Dead"],"setup":false,"ability":"When you learn that you died, publicly choose 1 alive player. Tonight, if it was a good player, they die."},{"id":"goon","name":"Goon","edition":"bmr","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["Drunk"],"setup":false,"ability":"Each night, the 1st player to choose you with their ability is drunk until dusk. You become their alignment."},{"id":"lunatic","name":"Lunatic","edition":"bmr","team":"outsider","firstNight":8,"firstNightReminder":"If 7 or more players: Show the Lunatic a number of arbitrary \'Minions\', players equal to the number of Minions in play. Show 3 character tokens of arbitrary good characters. If the token received by the Lunatic is a Demon that would wake tonight: Allow the Lunatic to do the Demon actions. Place their \'attack\' markers. Wake the Demon. Show the Demon’s real character token. Show them the Lunatic player. If the Lunatic attacked players: Show the real demon each marked player. Remove any Lunatic \'attack\' markers.","otherNight":20,"otherNightReminder":"Allow the Lunatic to do the actions of the Demon. Place their \'attack\' markers. If the Lunatic selected players: Wake the Demon. Show the \'attack\' marker, then point to each marked player. Remove any Lunatic \'attack\' markers.","reminders":["Attack 1","Attack 2","Attack 3"],"setup":false,"ability":"You think you are a Demon, but you are not. The Demon knows who you are & who you choose at night."},{"id":"godfather","name":"Godfather","edition":"bmr","team":"minion","firstNight":21,"firstNightReminder":"Show each of the Outsider tokens in play.","otherNight":37,"otherNightReminder":"If an Outsider died today: The Godfather points to a player. That player dies.","reminders":["Died today","Dead"],"setup":true,"ability":"You start knowing which Outsiders are in play. If 1 died today, choose a player tonight: they die. [−1 or +1 Outsider]"},{"id":"devilsadvocate","name":"Devil\'s Advocate","edition":"bmr","team":"minion","firstNight":22,"firstNightReminder":"The Devil’s Advocate points to a living player. That player survives execution tomorrow.","otherNight":13,"otherNightReminder":"The Devil’s Advocate points to a living player, different from the previous night. That player survives execution tomorrow.","reminders":["Survives execution"],"setup":false,"ability":"Each night, choose a living player (different to last night): if executed tomorrow, they don\'t die."},{"id":"assassin","name":"Assassin","edition":"bmr","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":36,"otherNightReminder":"If the Assassin has not yet used their ability: The Assassin either shows the \'no\' head signal, or points to a player. That player dies.","reminders":["Dead","No ability"],"setup":false,"ability":"Once per game, at night*, choose a player: they die, even if for some reason they could not."},{"id":"mastermind","name":"Mastermind","edition":"bmr","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"If the Demon dies by execution (ending the game), play for 1 more day. If a player is then executed, their team loses."},{"id":"zombuul","name":"Zombuul","edition":"bmr","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":25,"otherNightReminder":"If no-one died during the day: The Zombuul points to a player. That player dies.","reminders":["Died today","Dead"],"setup":false,"ability":"Each night*, if no-one died today, choose a player: they die. The 1st time you die, you live but register as dead."},{"id":"pukka","name":"Pukka","edition":"bmr","team":"demon","firstNight":28,"firstNightReminder":"The Pukka points to a player. That player is poisoned.","otherNight":26,"otherNightReminder":"The Pukka points to a player. That player is poisoned. The previously poisoned player dies. ","reminders":["Poisoned","Dead"],"setup":false,"ability":"Each night, choose a player: they are poisoned. The previously poisoned player dies then becomes healthy."},{"id":"shabaloth","name":"Shabaloth","edition":"bmr","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":27,"otherNightReminder":"One player that the Shabaloth chose the previous night might be resurrected. The Shabaloth points to two players. Those players die.","reminders":["Dead","Alive"],"setup":false,"ability":"Each night*, choose 2 players: they die. A dead player you chose last night might be regurgitated."},{"id":"po","name":"Po","edition":"bmr","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":28,"otherNightReminder":"If the Po chose no-one the previous night: The Po points to three players. Otherwise: The Po either shows the \'no\' head signal , or points to a player. Chosen players die","reminders":["Dead","3 attacks"],"setup":false,"ability":"Each night*, you may choose a player: they die. If your last choice was no-one, choose 3 players tonight."},{"id":"apprentice","name":"Apprentice","edition":"bmr","team":"traveler","firstNight":1,"firstNightReminder":"Show the Apprentice the \'You are\' card, then a Townsfolk or Minion token. In the Grimoire, replace the Apprentice token with that character token, and put the Apprentice\'s \'Is the Apprentice\' reminder by that character token.","otherNight":0,"otherNightReminder":"","reminders":["Is the Apprentice"],"setup":false,"ability":"On your 1st night, you gain a Townsfolk ability (if good), or a Minion ability (if evil)."},{"id":"matron","name":"Matron","edition":"bmr","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Each day, you may choose up to 3 sets of 2 players to swap seats. Players may not leave their seats to talk in private."},{"id":"judge","name":"Judge","edition":"bmr","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["No ability"],"setup":false,"ability":"Once per game, if another player nominated, you may choose to force the current execution to pass or fail."},{"id":"bishop","name":"Bishop","edition":"bmr","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["Nominate good","Nominate evil"],"setup":false,"ability":"Only the Storyteller can nominate. At least 1 opposite player must be nominated each day."},{"id":"voudon","name":"Voudon","edition":"bmr","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Only you and the dead can vote. They don\'t need a vote token to do so. A 50% majority is not required."},{"id":"clockmaker","name":"Clockmaker","edition":"snv","team":"townsfolk","firstNight":41,"firstNightReminder":"Show the hand signal for the number (1, 2, 3, etc.) of places from Demon to closest Minion.","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"You start knowing how many steps from the Demon to its nearest Minion."},{"id":"dreamer","name":"Dreamer","edition":"snv","team":"townsfolk","firstNight":42,"firstNightReminder":"The Dreamer points to a player. Show 1 good and 1 evil character token; one of these is correct.","otherNight":56,"otherNightReminder":"The Dreamer points to a player. Show 1 good and 1 evil character token; one of these is correct.","reminders":[],"setup":false,"ability":"Each night, choose a player (not yourself or Travellers): you learn 1 good and 1 evil character, 1 of which is correct."},{"id":"snakecharmer","name":"Snake Charmer","edition":"snv","team":"townsfolk","firstNight":20,"firstNightReminder":"The Snake Charmer points to a player. If that player is the Demon: swap the Demon and Snake Charmer character and alignments. Wake each player to inform them of their new role and alignment. The new Snake Charmer is poisoned.","otherNight":11,"otherNightReminder":"The Snake Charmer points to a player. If that player is the Demon: swap the Demon and Snake Charmer character and alignments. Wake each player to inform them of their new role and alignment. The new Snake Charmer is poisoned.","reminders":["Poisoned"],"setup":false,"ability":"Each night, choose an alive player: a chosen Demon swaps characters & alignments with you & is then poisoned."},{"id":"mathematician","name":"Mathematician","edition":"snv","team":"townsfolk","firstNight":52,"firstNightReminder":"Show the hand signal for the number (0, 1, 2, etc.) of players whose ability malfunctioned due to other abilities.","otherNight":71,"otherNightReminder":"Show the hand signal for the number (0, 1, 2, etc.) of players whose ability malfunctioned due to other abilities.","reminders":["Abnormal"],"setup":false,"ability":"Each night, you learn how many players’ abilities worked abnormally (since dawn) due to another character\'s ability."},{"id":"flowergirl","name":"Flowergirl","edition":"snv","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":57,"otherNightReminder":"Nod \'yes\' or shake head \'no\' for whether the Demon voted today. Place the \'Demon not voted\' marker (remove \'Demon voted\', if any).","reminders":["Demon voted","Demon not voted"],"setup":false,"ability":"Each night*, you learn if a Demon voted today."},{"id":"towncrier","name":"Town Crier","edition":"snv","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":58,"otherNightReminder":"Nod \'yes\' or shake head \'no\' for whether a Minion nominated today. Place the \'Minion not nominated\' marker (remove \'Minion nominated\', if any).","reminders":["Minions not nominated","Minion nominated"],"setup":false,"ability":"Each night*, you learn if a Minion nominated today."},{"id":"oracle","name":"Oracle","edition":"snv","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":59,"otherNightReminder":"Show the hand signal for the number (0, 1, 2, etc.) of dead evil players.","reminders":[],"setup":false,"ability":"Each night*, you learn how many dead players are evil."},{"id":"savant","name":"Savant","edition":"snv","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Each day, you may visit the Storyteller to learn 2 things in private: 1 is true & 1 is false."},{"id":"seamstress","name":"Seamstress","edition":"snv","team":"townsfolk","firstNight":43,"firstNightReminder":"The Seamstress either shows a \'no\' head signal, or points to two other players. If the Seamstress chose players , nod \'yes\' or shake \'no\' for whether they are of same alignment.","otherNight":60,"otherNightReminder":"If the Seamstress has not yet used their ability: the Seamstress either shows a \'no\' head signal, or points to two other players. If the Seamstress chose players , nod \'yes\' or shake \'no\' for whether they are of same alignment.","reminders":["No ability"],"setup":false,"ability":"Once per game, at night, choose 2 players (not yourself): you learn if they are the same alignment."},{"id":"philosopher","name":"Philosopher","edition":"snv","team":"townsfolk","firstNight":2,"firstNightReminder":"The Philosopher either shows a \'no\' head signal, or points to a good character on their sheet. If they chose a character: Swap the out-of-play character token with the Philosopher token and add the \'Is the Philosopher\' reminder. If the character is in play, place the drunk marker by that player.","otherNight":2,"otherNightReminder":"If the Philosopher has not used their ability: the Philosopher either shows a \'no\' head signal, or points to a good character on their sheet. If they chose a character: Swap the out-of-play character token with the Philosopher token and add the \'Is the Philosopher\' reminder. If the character is in play, place the drunk marker by that player.","reminders":["Drunk","Is the Philosopher"],"setup":false,"ability":"Once per game, at night, choose a good character: gain that ability. If this character is in play, they are drunk."},{"id":"artist","name":"Artist","edition":"snv","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["No ability"],"setup":false,"ability":"Once per game, during the day, privately ask the Storyteller any yes/no question."},{"id":"juggler","name":"Juggler","edition":"snv","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":61,"otherNightReminder":"If today was the Juggler’s first day: Show the hand signal for the number (0, 1, 2, etc.) of \'Correct\' markers. Remove markers.","reminders":["Correct"],"setup":false,"ability":"On your 1st day, publicly guess up to 5 players\' characters. That night, you learn how many you got correct."},{"id":"sage","name":"Sage","edition":"snv","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":42,"otherNightReminder":"If the Sage was killed by a Demon: Point to two players, one of which is that Demon.","reminders":[],"setup":false,"ability":"If the Demon kills you, you learn that it is 1 of 2 players."},{"id":"mutant","name":"Mutant","edition":"snv","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"If you are “mad” about being an Outsider, you might be executed."},{"id":"sweetheart","name":"Sweetheart","edition":"snv","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":41,"otherNightReminder":"Choose a player that is drunk.","reminders":["Drunk"],"setup":false,"ability":"When you die, 1 player is drunk from now on."},{"id":"barber","name":"Barber","edition":"snv","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":40,"otherNightReminder":"If the Barber died today: Wake the Demon. Show the \'This character selected you\' card, then Barber token. The Demon either shows a \'no\' head signal, or points to 2 players. If they chose players: Swap the character tokens. Wake each player. Show \'You are\', then their new character token.","reminders":["Haircuts tonight"],"setup":false,"ability":"If you died today or tonight, the Demon may choose 2 players (not another Demon) to swap characters."},{"id":"klutz","name":"Klutz","edition":"snv","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"When you learn that you died, publicly choose 1 alive player: if they are evil, your team loses."},{"id":"eviltwin","name":"Evil Twin","edition":"snv","team":"minion","firstNight":23,"firstNightReminder":"Wake the Evil Twin and their twin. Confirm that they have acknowledged each other. Point to the Evil Twin. Show their Evil Twin token to the twin player. Point to the twin. Show their character token to the Evil Twin player.","otherNight":0,"otherNightReminder":"","reminders":["Twin"],"setup":false,"ability":"You & an opposing player know each other. If the good player is executed, evil wins. Good can\'t win if you both live."},{"id":"witch","name":"Witch","edition":"snv","team":"minion","firstNight":24,"firstNightReminder":"The Witch points to a player. If that player nominates tomorrow they die immediately.","otherNight":14,"otherNightReminder":"If there are 4 or more players alive: The Witch points to a player. If that player nominates tomorrow they die immediately.","reminders":["Cursed"],"setup":false,"ability":"Each night, choose a player: if they nominate tomorrow, they die. If just 3 players live, you lose this ability."},{"id":"cerenovus","name":"Cerenovus","edition":"snv","team":"minion","firstNight":25,"firstNightReminder":"The Cerenovus points to a player, then to a character on their sheet. Wake that player. Show the \'This character selected you\' card, then the Cerenovus token. Show the selected character token. If the player is not mad about being that character tomorrow, they can be executed.","otherNight":15,"otherNightReminder":"The Cerenovus points to a player, then to a character on their sheet. Wake that player. Show the \'This character selected you\' card, then the Cerenovus token. Show the selected character token. If the player is not mad about being that character tomorrow, they can be executed.","reminders":["Mad"],"setup":false,"ability":"Each night, choose a player & a good character: they are “mad” they are this character tomorrow, or might be executed."},{"id":"pithag","name":"Pit-Hag","edition":"snv","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":16,"otherNightReminder":"The Pit-Hag points to a player and a character on the sheet. If this character is not in play, wake that player and show them the \'You are\' card and the relevant character token. If the character is in play, nothing happens.","reminders":[],"setup":false,"ability":"Each night*, choose a player & a character they become (if not-in-play). If a Demon is made, deaths tonight are arbitrary."},{"id":"fanggu","name":"Fang Gu","edition":"snv","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":29,"otherNightReminder":"The Fang Gu points to a player. That player dies. Or, if that player was an Outsider and there are no other Fang Gu in play: The Fang Gu dies instead of the chosen player. The chosen player is now an evil Fang Gu. Wake the new Fang Gu. Show the \'You are\' card, then the Fang Gu token. Show the \'You are\' card, then the thumb-down \'evil\' hand sign.","reminders":["Dead","Once"],"setup":true,"ability":"Each night*, choose a player: they die. The 1st Outsider this kills becomes an evil Fang Gu & you die instead. [+1 Outsider]"},{"id":"vigormortis","name":"Vigormortis","edition":"snv","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":32,"otherNightReminder":"The Vigormortis points to a player. That player dies. If a Minion, they keep their ability and one of their Townsfolk neighbours is poisoned.","reminders":["Dead","Has ability","Poisoned"],"setup":true,"ability":"Each night*, choose a player: they die. Minions you kill keep their ability & poison 1 Townsfolk neighbour. [−1 Outsider]"},{"id":"nodashii","name":"No Dashii","edition":"snv","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":30,"otherNightReminder":"The No Dashii points to a player. That player dies.","reminders":["Dead","Poisoned"],"setup":false,"ability":"Each night*, choose a player: they die. Your 2 Townsfolk neighbours are poisoned."},{"id":"vortox","name":"Vortox","edition":"snv","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":31,"otherNightReminder":"The Vortox points to a player. That player dies.","reminders":["Dead"],"setup":false,"ability":"Each night*, choose a player: they die. Townsfolk abilities yield false info. Each day, if no-one is executed, evil wins."},{"id":"barista","name":"Barista","edition":"snv","team":"traveler","firstNight":1,"firstNightReminder":"Choose a player, wake them and tell them which Barista power is affecting them. Treat them accordingly (sober/healthy/true info or activate their ability twice).","otherNight":1,"otherNightReminder":"Choose a player, wake them and tell them which Barista power is affecting them. Treat them accordingly (sober/healthy/true info or activate their ability twice).","reminders":["Sober & Healthy","Ability twice"],"setup":false,"ability":"Each night, until dusk, 1) a player becomes sober, healthy and gets true info, or 2) their ability works twice. They learn which."},{"id":"harlot","name":"Harlot","edition":"snv","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":1,"otherNightReminder":"The Harlot points at any player. Then, put the Harlot to sleep. Wake the chosen player, show them the \'This character selected you\' token, then the Harlot token. That player either nods their head yes or shakes their head no. If they nodded their head yes, wake the Harlot and show them the chosen player\'s character token. Then, you may decide that both players die.","reminders":["Dead"],"setup":false,"ability":"Each night*, choose a living player: if they agree, you learn their character, but you both might die."},{"id":"butcher","name":"Butcher","edition":"snv","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Each day, after the 1st execution, you may nominate again."},{"id":"bonecollector","name":"Bone Collector","edition":"snv","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":1,"otherNightReminder":"The Bone Collector either shakes their head no or points at any dead player. If they pointed at any dead player, put the Bone Collector\'s \'Has Ability\' reminder by the chosen player\'s character token. (They may need to be woken tonight to use it.)","reminders":["No ability","Has ability"],"setup":false,"ability":"Once per game, at night, choose a dead player: they regain their ability until dusk."},{"id":"deviant","name":"Deviant","edition":"snv","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"If you were funny today, you cannot die by exile."},{"id":"noble","name":"Noble","edition":"","team":"townsfolk","firstNight":44,"firstNightReminder":"Point to 3 players including one evil player, in no particular order.","otherNight":0,"otherNightReminder":"","reminders":["Seen"],"setup":false,"ability":"You start knowing 3 players, 1 and only 1 of which is evil."},{"id":"bountyhunter","name":"Bounty Hunter","edition":"","team":"townsfolk","firstNight":46,"firstNightReminder":"Point to 1 evil player. Wake the townsfolk who is evil and show them the \'You are\' card and the thumbs down evil sign.","otherNight":64,"otherNightReminder":"If the known evil player has died, point to another evil player. ","reminders":["Known"],"setup":true,"ability":"You start knowing 1 evil player. If the player you know dies, you learn another evil player tonight. [1 Townsfolk is evil]"},{"id":"pixie","name":"Pixie","edition":"","team":"townsfolk","firstNight":29,"firstNightReminder":"Show the Pixie 1 in-play Townsfolk character token.","otherNight":0,"otherNightReminder":"","reminders":["Mad","Has ability"],"setup":false,"ability":"You start knowing 1 in-play Townsfolk. If you were mad that you were this character, you gain their ability when they die."},{"id":"general","name":"General","edition":"","team":"townsfolk","firstNight":50,"firstNightReminder":"Show the General thumbs up for good winning, thumbs down for evil winning or thumb to the side for neither.","otherNight":69,"otherNightReminder":"Show the General thumbs up for good winning, thumbs down for evil winning or thumb to the side for neither.","reminders":[],"setup":false,"ability":"Each night, you learn which alignment the Storyteller believes is winning: good, evil, or neither."},{"id":"preacher","name":"Preacher","edition":"","team":"townsfolk","firstNight":14,"firstNightReminder":"The Preacher chooses a player. If a Minion is chosen, wake the Minion and show the \'This character selected you\' card and then the Preacher token.","otherNight":6,"otherNightReminder":"The Preacher chooses a player. If a Minion is chosen, wake the Minion and show the \'This character selected you\' card and then the Preacher token.","reminders":["At a sermon"],"setup":false,"ability":"Each night, choose a player: a Minion, if chosen, learns this. All chosen Minions have no ability."},{"id":"king","name":"King","edition":"","team":"townsfolk","firstNight":10,"firstNightReminder":"Wake the Demon, show them the \'This character selected you\' card, show the King token and point to the King player.","otherNight":63,"otherNightReminder":"If there are more dead than living, show the King a character token of a living player.","reminders":[],"setup":false,"ability":"Each night, if the dead outnumber the living, you learn 1 alive character. The Demon knows who you are."},{"id":"balloonist","name":"Balloonist","edition":"","team":"townsfolk","firstNight":45,"firstNightReminder":"Choose a character type. Point to a player whose character is of that type. Place the Balloonist\'s Seen reminder next to that character.","otherNight":62,"otherNightReminder":"Choose a character type that does not yet have a Seen reminder next to a character of that type. Point to a player whose character is of that type, if there are any. Place the Balloonist\'s Seen reminder next to that character.","reminders":["Seen Townsfolk","Seen Outsider","Seen Minion","Seen Demon","Seen Traveller"],"setup":true,"ability":"Each night, you learn 1 player of each character type, until there are no more types to learn. [+1 Outsider]"},{"id":"cultleader","name":"Cult Leader","edition":"","team":"townsfolk","firstNight":48,"firstNightReminder":"If the cult leader changed alignment, show them the thumbs up good signal of the thumbs down evil signal accordingly.","otherNight":66,"otherNightReminder":"If the cult leader changed alignment, show them the thumbs up good signal of the thumbs down evil signal accordingly.","reminders":[],"setup":false,"ability":"Each night, you become the alignment of an alive neighbour. If all good players choose to join your cult, your team wins."},{"id":"lycanthrope","name":"Lycanthrope","edition":"","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":22,"otherNightReminder":"The Lycanthrope points to a living player: if good, they die and no one else can die tonight.","reminders":["Dead"],"setup":false,"ability":"Each night*, choose a living player: if good, they die, but they are the only player that can die tonight."},{"id":"amnesiac","name":"Amnesiac","edition":"","team":"townsfolk","firstNight":32,"firstNightReminder":"Decide the Amnesiac\'s entire ability. If the Amnesiac\'s ability causes them to wake tonight: Wake the Amnesiac and run their ability.","otherNight":47,"otherNightReminder":"If the Amnesiac\'s ability causes them to wake tonight: Wake the Amnesiac and run their ability.","reminders":["?"],"setup":false,"ability":"You do not know what your ability is. Each day, privately guess what it is: you learn how accurate you are."},{"id":"nightwatchman","name":"Nightwatchman","edition":"","team":"townsfolk","firstNight":47,"firstNightReminder":"The Nightwatchman may point to a player. Wake that player, show the \'This character selected you\' card and the Nightwatchman token, then point to the Nightwatchman player.","otherNight":65,"otherNightReminder":"The Nightwatchman may point to a player. Wake that player, show the \'This character selected you\' card and the Nightwatchman token, then point to the Nightwatchman player.","reminders":["No ability"],"setup":false,"ability":"Once per game, at night, choose a player: they learn who you are."},{"id":"engineer","name":"Engineer","edition":"","team":"townsfolk","firstNight":13,"firstNightReminder":"The Engineer shows a \'no\' head signal, or points to a Demon or points to the relevant number of Minions. If the Engineer chose characters, replace the Demon or Minions with the choices, then wake the relevant players and show them the You are card and the relevant character tokens.","otherNight":5,"otherNightReminder":"The Engineer shows a \'no\' head signal, or points to a Demon or points to the relevant number of Minions. If the Engineer chose characters, replace the Demon or Minions with the choices, then wake the relevant players and show them the \'You are\' card and the relevant character tokens.","reminders":["No ability"],"setup":false,"ability":"Once per game, at night, choose which Minions or which Demon is in play."},{"id":"fisherman","name":"Fisherman","edition":"","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["No ability"],"setup":false,"ability":"Once per game, during the day, visit the Storyteller for some advice to help you win."},{"id":"huntsman","name":"Huntsman","edition":"","team":"townsfolk","firstNight":30,"firstNightReminder":"The Huntsman shakes their head \'no\' or points to a player. If they point to the Damsel, wake that player, show the \'You are\' card and a not-in-play character token.","otherNight":45,"otherNightReminder":"The Huntsman shakes their head \'no\' or points to a player. If they point to the Damsel, wake that player, show the \'You are\' card and a not-in-play character token.","reminders":["No ability"],"setup":true,"ability":"Once per game, at night, choose a living player: the Damsel, if chosen, becomes a not-in-play Townsfolk. [+the Damsel]"},{"id":"alchemist","name":"Alchemist","edition":"","team":"townsfolk","firstNight":3,"firstNightReminder":"Show the Alchemist a not-in-play Minion token","otherNight":0,"otherNightReminder":"","reminders":[],"remindersGlobal":["Is the Alchemist"],"setup":false,"ability":"You have a not-in-play Minion ability."},{"id":"farmer","name":"Farmer","edition":"","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":48,"otherNightReminder":"If a Farmer died tonight, choose another good player and make them the Farmer. Wake this player, show them the \'You are\' card and the Farmer character token.","reminders":[],"setup":false,"ability":"If you die at night, an alive good player becomes a Farmer."},{"id":"magician","name":"Magician","edition":"","team":"townsfolk","firstNight":5,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"The Demon thinks you are a Minion. Minions think you are a Demon."},{"id":"choirboy","name":"Choirboy","edition":"","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":44,"otherNightReminder":"If the King was killed by the Demon, wake the Choirboy and point to the Demon player.","reminders":[],"setup":true,"ability":"If the Demon kills the King, you learn which player is the Demon. [+ the King]"},{"id":"poppygrower","name":"Poppy Grower","edition":"","team":"townsfolk","firstNight":4,"firstNightReminder":"Do not inform the Demon/Minions who each other are","otherNight":3,"otherNightReminder":"If the Poppy Grower has died, show the Minions/Demon who each other are.","reminders":["Evil wakes"],"setup":false,"ability":"Minions & Demons do not know each other. If you die, they learn who each other are that night."},{"id":"atheist","name":"Atheist","edition":"","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":true,"ability":"The Storyteller can break the game rules & if executed, good wins, even if you are dead. [No evil characters]"},{"id":"cannibal","name":"Cannibal","edition":"","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["Poisoned","Died today"],"setup":false,"ability":"You have the ability of the recently killed executee. If they are evil, you are poisoned until a good player dies by execution."},{"id":"steward","name":"Steward","edition":"","team":"townsfolk","firstNight":33.3,"firstNightReminder":"Point to the marked player.","otherNight":0,"otherNightReminder":"","reminders":["Known"],"setup":false,"ability":"You start knowing 1 good player."},{"id":"knight","name":"Knight","edition":"","team":"townsfolk","firstNight":33.2,"firstNightReminder":"Point to the 2 marked players.","otherNight":0,"otherNightReminder":"","reminders":["Known"],"setup":false,"ability":"You start knowing 2 players that are not the Demon."},{"id":"highpriestess","name":"High Priestess","edition":"","team":"townsfolk","firstNight":50.2,"otherNight":69.2,"firstNightReminder":"Each night, wake the High Priestess. Point to a player. Put the High Priestess to sleep.","otherNightReminder":"Each night, wake the High Priestess. Point to a player. Put the High Priestess to sleep.","reminders":["Friend"],"setup":false,"ability":"Each night, learn which player the Storyteller believes you should talk to most."},{"id":"snitch","name":"Snitch","edition":"","team":"outsider","firstNight":7,"firstNightReminder":"After Minion info wake each Minion and show them three not-in-play character tokens. These may be the same or different to each other and the ones shown to the Demon.","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Minions start knowing 3 not-in-play characters."},{"id":"acrobat","name":"Acrobat","edition":"","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":39,"otherNightReminder":"If a good living neighbour is drunk or poisoned, the Acrobat player dies.","reminders":["Dead"],"setup":false,"ability":"Each night*, if either good living neighbour is drunk or poisoned, you die."},{"id":"puzzlemaster","name":"Puzzlemaster","edition":"","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["Drunk","Guess used"],"setup":false,"ability":"1 player is drunk, even if you die. If you guess (once) who it is, learn the Demon player, but guess wrong & get false info."},{"id":"heretic","name":"Heretic","edition":"","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Whoever wins, loses & whoever loses, wins, even if you are dead."},{"id":"damsel","name":"Damsel","edition":"","team":"outsider","firstNight":31,"firstNightReminder":"Wake all the Minions, show them the \'This character selected you\' card and the Damsel token.","otherNight":46,"otherNightReminder":"If selected by the Huntsman, wake the Damsel, show \'You are\' card and a not-in-play Townsfolk token.","reminders":["Guess used"],"setup":false,"ability":"All Minions know you are in play. If a Minion publicly guesses you (once), your team loses."},{"id":"golem","name":"Golem","edition":"","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["Can not nominate"],"setup":false,"ability":"You may only nominate once per game. When you do, if the nominee is not the Demon, they die."},{"id":"politician","name":"Politician","edition":"","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"If you were the player most responsible for your team losing, you change alignment & win, even if dead."},{"id":"plaguedoctor","reminders":["Storyteller Ability"],"setup":false,"name":"Plague Doctor","team":"outsider","ability":"If you die, the Storyteller gains a not-in-play Minion ability."},{"id":"widow","name":"Widow","edition":"","team":"minion","firstNight":18,"firstNightReminder":"Show the Grimoire to the Widow for as long as they need. The Widow points to a player. That player is poisoned. Wake a good player. Show the \'These characters are in play\' card, then the Widow character token.","otherNight":0,"otherNightReminder":"","reminders":["Poisoned"],"remindersGlobal":["Knows"],"setup":false,"ability":"On your 1st night, look at the Grimoire and choose a player: they are poisoned. 1 good player knows a Widow is in play."},{"id":"fearmonger","name":"Fearmonger","edition":"","team":"minion","firstNight":26,"firstNightReminder":"The Fearmonger points to a player. Place the Fear token next to that player and announce that a new player has been selected with the Fearmonger ability.","otherNight":17,"otherNightReminder":"The Fearmonger points to a player. If different from the previous night, place the Fear token next to that player and announce that a new player has been selected with the Fearmonger ability.","reminders":["Fear"],"setup":false,"ability":"Each night, choose a player. If you nominate & execute them, their team loses. All players know if you choose a new player."},{"id":"psychopath","name":"Psychopath","edition":"","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Each day, before nominations, you may publicly choose a player: they die. If executed, you only die if you lose roshambo."},{"id":"goblin","name":"Goblin","edition":"","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["Claimed"],"setup":false,"ability":"If you publicly claim to be the Goblin when nominated & are executed that day, your team wins."},{"id":"mephit","name":"Mephit","edition":"","team":"minion","firstNight":27,"firstNightReminder":"Show the Mephit their secret word.","otherNight":18,"otherNightReminder":"Wake the 1st good player that said the Mephit\'s secret word and show them the \'You are\' card and the thumbs down evil signal.","reminders":["Turns evil","No ability"],"setup":false,"ability":"You start knowing a secret word. The 1st good player to say this word becomes evil that night."},{"id":"mezepheles","name":"Mezepheles","edition":"","team":"minion","firstNight":27,"firstNightReminder":"Show the Mezepheles their secret word.","otherNight":18,"otherNightReminder":"Wake the 1st good player that said the Mezepheles\' secret word and show them the \'You are\' card and the thumbs down evil signal.","reminders":["Turns evil","No ability"],"setup":false,"ability":"You start knowing a secret word. The 1st good player to say this word becomes evil that night."},{"id":"marionette","name":"Marionette","edition":"","team":"minion","firstNight":12,"firstNightReminder":"Select one of the good players next to the Demon and place the Is the Marionette reminder token. Wake the Demon and show them the Marionette.","otherNight":0,"otherNightReminder":"","reminders":[],"remindersGlobal":["Is the Marionette"],"setup":true,"ability":"You think you are a good character but you are not. The Demon knows who you are. [You neighbour the Demon]"},{"id":"boomdandy","name":"Boomdandy","edition":"","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"If you are executed, all but 3 players die. 1 minute later, the player with the most players pointing at them dies."},{"id":"organgrinder","name":"Organ Grinder","edition":"","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["About to die"],"setup":false,"ability":"All players keep their eyes closed when voting & the vote tally is secret. Votes for you only count if you vote."},{"id":"vizier","name":"Vizier","edition":"","team":"minion","firstNight":55,"firstNightReminder":"Announce \'The Vizier is in play\' and state which player they are.","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"All players know who you are. You can not die during the day. If good voted, you may choose to execute immediately."},{"id":"harpy","name":"Harpy","edition":"","team":"minion","firstNight":24.2,"firstNightReminder":"Select two players, one at a time.","otherNight":14.2,"otherNightReminder":"Select two players, one at a time.","reminders":["Mad","2nd"],"setup":false,"ability":"Each night, choose 2 players: tomorrow, the 1st player is mad that the 2nd is evil, or both might die."},{"id":"lilmonsta","name":"Lil\' Monsta","edition":"","team":"demon","firstNight":15,"firstNightReminder":"Wake all Minions together, allow them to vote by pointing at who they want to babysit Lil\' Monsta.","otherNight":35,"otherNightReminder":"Wake all Minions together, allow them to vote by pointing at who they want to babysit Lil\' Monsta. Choose a player, that player dies.","reminders":[],"remindersGlobal":["Is the Demon","Dead"],"setup":true,"ability":"Each night, Minions choose who babysits Lil\' Monsta\'s token & \\"is the Demon\\". A player dies each night*. [+1 Minion]"},{"id":"lleech","name":"Lleech","edition":"","team":"demon","firstNight":16,"firstNightReminder":"The Lleech points to a player. Place the Poisoned reminder token.","otherNight":34,"otherNightReminder":"The Lleech points to a player. That player dies.","reminders":["Dead","Poisoned"],"setup":false,"ability":"Each night*, choose a player: they die. You start by choosing an alive player: they are poisoned - you die if & only if they die."},{"id":"alhadikhia","name":"Al-Hadikhia","edition":"","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":33,"otherNightReminder":"The Al-Hadikhia chooses 3 players. Announce the first player, wake them to nod yes to live or shake head no to die, kill or resurrect accordingly, then put to sleep and announce the next player. If all 3 are alive after this, all 3 die.","reminders":["1","2","3","Chose death","Chose life"],"setup":false,"ability":"Each night*, choose 3 players (all players learn who): each silently chooses to live or die, but if all live, all die."},{"id":"legion","name":"Legion","edition":"","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":23,"otherNightReminder":"Choose a player, that player dies.","reminders":["Dead","About to die"],"setup":true,"ability":"Each night*, a player might die. Executions fail if only evil voted. You register as a Minion too. [Most players are Legion]"},{"id":"leviathan","name":"Leviathan","edition":"","team":"demon","firstNight":54,"firstNightReminder":"Place the Leviathan \'Day 1\' marker. Announce \'The Leviathan is in play; this is Day 1.\'","otherNight":73,"otherNightReminder":"Change the Leviathan Day reminder for the next day.","reminders":["Day 1","Day 2","Day 3","Day 4","Day 5","Good player executed"],"setup":false,"ability":"If more than 1 good player is executed, you win. All players know you are in play. After day 5, evil wins."},{"id":"riot","name":"Riot","edition":"","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":true,"ability":"Nominees die, but may nominate again immediately (on day 3, they must). After day 3, evil wins. [All Minions are Riot]"},{"id":"ojo","firstNight":0,"otherNight":32.2,"otherNightReminder":"The Ojo points to a character on the sheet; if in play, that player dies. If it is not in play, the Storyteller chooses who dies instead.","reminders":["Dead"],"name":"Ojo","team":"demon","ability":"Each night*, choose a character: they die. If they are not in play, the Storyteller chooses who dies."},{"id":"kazali","firstNight":2.1,"firstNightReminder":"The Kazali points to a player and a Minion on the character sheet. They do this for as many Minions as should be in play. Change those players\' tokens to the chosen Minion tokens in the Grim. Wake those players, show them the \'You Are\' card, the Minions they have become, and a thumbs down.","otherNight":35.1,"otherNightReminder":"The Kazali points to a player. That player dies","reminders":["Dead"],"setup":true,"name":"Kazali","team":"demon","ability":"Each night*, choose a player: they die. [You choose which players are Minions. -? to +? Outsiders]"},{"id":"gangster","name":"Gangster","edition":"","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Once per day, you may choose to kill an alive neighbour, if your other alive neighbour agrees."},{"id":"saintnick","edition":"custom","firstNight":0,"firstNightReminder":"","otherNight":28,"otherNightReminder":"Choose two alive players to alive players to recieve a gift.","reminders":["Gift"],"remindersGlobal":[],"setup":true,"name":"Saint Nick","team":"townsfolk","ability":"Each night* you choose two alive players to recieve a gift."},{"id":"grinch","edition":"custom","firstNight":0,"firstNightReminder":"","otherNight":29,"otherNightReminder":"Find out who recieved Saint Nicks Gifts tonight and switch one for a bomb","reminders":["Bomb","Is The Grinch"],"remindersGlobal":[],"setup":true,"name":"Grinch","team":"fabled","ability":"A minion is selected to be the Grinch, Each night* the minion is woken and selects one of Saint Nick\'s gifts to switch out for a bomb"},{"id":"septemberchild","edition":"custom","firstNight":12,"firstNightReminder":"","otherNight":5,"otherNightReminder":"Wake September child for the ability they have, do not tell them what their ability is.","reminders":["Has Ability"],"remindersGlobal":[],"setup":true,"name":"September Child","team":"townsfolk","ability":"Each night* You have an in play ability. One additional September Child is drunk or evil [+0-2 September Child]"},{"id":"badger","edition":"custom","firstNight":0,"firstNightReminder":"","otherNight":23,"otherNightReminder":"Choose a player, that player dies.","reminders":["Dead"],"remindersGlobal":[],"setup":true,"name":"Badger","team":"demon","ability":"Each night*, a player might die. Dead players become evil Badgers. Good only wins if the Storyteller is executed [No evil characters]"},{"id":"sculptor_fall_of_rome","firstNightReminder":"Point to a player. Place the SCULPTURE token next to that player.","otherNightReminder":"If the player with the SCULPTURE token nominated today. Show the Sculptor an evil thumbs down sign if the nominated player is evil. Otherwise: show the Sculptor a good thumbs up sign. Remove the NOMINATED token (if any).","reminders":["Sculpture","Nominated"],"name":"Sculptor","team":"townsfolk","ability":"You start knowing a player. Each night*, you learn the alignment of their most recent nomination.","flavor":"You\'ll find I spot the finer details...","firstNight":18,"otherNight":19},{"id":"vestalvirgin_fall_of_rome","firstNightReminder":"Show 1 good and 1 evil character token: one of these is in play. Place the LEARNS next to the in-play character. ","otherNightReminder":"If the player with the LEARNS token died today, remove the token. Show 1 good and 1 evil character token: one of these is in play. Place the LEARNS next to the in-play character. ","reminders":["Learns"],"name":"Vestal Virgin","team":"townsfolk","ability":"You start knowing 1 good & 1 evil character, 1 of which is in-play. When they die, that night you learn 1 good & 1 evil character, 1 of which is in-play.","flavor":"Goddess Vesta, I have received your message in the Vestal flame and for now I am enlightened. I will be back soon... thank you...","firstNight":19,"otherNight":20},{"id":"physician_fall_of_rome","firstNightReminder":"The Physician points to two players not themselves. Mark both players with the PATIENT token.","otherNightReminder":"Remove all PATIENT tokens. The Physician points to two players not themselves. Mark both players with the PATIENT token. If a player with a PATIENT token was killed by the Demon, place the 1ST DEMON token next to the Physician and wake the Physician and show them Demon token.","reminders":["Patient","1st Demon"],"name":"Physician","team":"townsfolk","ability":"Each night, choose two players (not yourself): they are sober, healthy & get true info tonight. The 1st time the Demon kills one, you learn the Demon type.","flavor":"Some patients recover, because they believe in doctors.","firstNight":17,"otherNight":11},{"id":"legionary_fall_of_rome","firstNightReminder":"Show the hand signal for the number (0, 1, 2, etc.) of living evil players between the Legionary and the next clockwise Legionary (exclusive).","otherNightReminder":"Show the hand signal for the number (0, 1, 2, etc.) of living evil players between the Legionary and the next clockwise Legionary (exclusive).","setup":true,"name":"Legionary","team":"townsfolk","ability":"Each night, you learn how many living evil players are sat clockwise between yourself and a living Legionary. [+0 to +2 Legionary]","flavor":"We find that the Romans owed the conquest of the world to no other cause than continual military training, exact observance of discipline in their camps, and unwearied cultivation of the other arts of war.","firstNight":20,"otherNight":21},{"id":"trumpeter_fall_of_rome","otherNightReminder":"Show the hand signal for the number (0, 1, 2, etc.) of evil players who publicly claimed to be Spartacus today.","reminders":["Evil Claim"],"name":"Trumpeter","team":"townsfolk","ability":"Each night*, you learn how many evil players publicly claimed to be Spartacus today.","flavor":"I have done everything that I should, but the outcome is in the hand of fortune.","otherNight":22},{"id":"mortician_fall_of_rome","otherNightReminder":"If a player was executed today: Show the head signal (nod \'yes\', shake \'no\') for whether one of the neighbours is evil.","reminders":["Recently Executed"],"name":"Mortician","team":"townsfolk","ability":"Each night*, if a player died by execution today you learn if either of their living neighbours are evil.","flavor":"Let me lay you to rest... my old friend...","otherNight":23},{"id":"standardbearer_fall_of_rome","otherNightReminder":"If the Standard Bearer\'s public statement was true: show the head signal (nod \'true\'). Otherwise: show the head signal (shake \'false\').","reminders":["True","False"],"name":"Standard Bearer","team":"townsfolk","ability":"When you are nominated, you may make a unique public statement about the nominator (not yourself). Tonight, you learn if the statement was true.","flavor":"Say not always what you know. But always know what you say.","otherNight":24},{"id":"centurion1_fall_of_rome","reminders":["Drunk"],"name":"Centurion","team":"townsfolk","ability":"If you nominate & execute a living player, their team loses. You are safe from the Demon. If you publicly claimed to be Spartacus today, you are drunk until dawn.","flavor":"It is easier to find men who will volunteer to die, than to find those who are willing to endure pain with patience."},{"id":"merchant_fall_of_rome","otherNightReminder":"If the Merchant has not yet used their ability: the Merchant either shows a shake \'no\' head signal, or a nod \'yes\' head signal. If the Merchant chose \'yes\', show the character tokens of players with a NOMINATED token (in any order). Place the NO ABILITY token.","reminders":["Nominated","No Ability"],"name":"Merchant","team":"townsfolk","ability":"Once per game, at night, choose to learn the characters of players that have nominated you.","flavor":"Greed is but a word jealous men inflict upon the ambitious.","otherNight":26},{"id":"gladiator_fall_of_rome","otherNightReminder":"If the Gladiator used their ability today wake the Gladiator and the player they chose: both players silently play roshambo (rock \\"fist\\", scissors \\"two fingers\\" or paper \\"flat hand\\"). If they both chose the same, play again. Play until someone wins. The loser dies.","reminders":["Duel","Dead","No Ability"],"name":"Gladiator","team":"townsfolk","ability":"Once per game, during the day, publicly choose a living player. Tonight, you and they wake & silently play roshambo: whoever loses dies (someone must lose).","flavor":"Are you not entertained!","otherNight":18},{"id":"actor_fall_of_rome","otherNightReminder":"If the Actor used their ability today: Show the hand signal for the number (0, 1, 2, or 3) of CORRECT markers. Place the NO ABILITY marker.","reminders":["Correct","No Ability"],"name":"Actor","team":"townsfolk","ability":"Once per game, during the day, publicly guess 3 players\' character types (not yourself, 1 guess per type). That night, you learn how many you got correct. ","flavor":"Have I played the part well? Then applaud me as I exit!","otherNight":25},{"id":"blacksmith_fall_of_rome","otherNightReminder":"If the Blacksmith was killed by a Demon. Show the Blacksmith a not-in-play Townsfolk character token. Swap the not-in-play character token with the Blacksmith token. Place the IS THE BLACKSMITH token next to the not-in-play character token. Wake the Blacksmith and show \'You are\', then their new character ability.","reminders":["Is the Blacksmith"],"name":"Blacksmith","team":"townsfolk","ability":"The 1st time the Demon kills you, you live & gain a not-in-play Townsfolk ability.","flavor":"Every new beginning comes from some other beginning’s end.","otherNight":17},{"id":"scholar_fall_of_rome","otherNightReminder":"If the Scholar nominated an Outsider today, place the NO ABILITY token. Wake the nominated player. Show \'You are\', then their new character token.","reminders":["Lectured","No Ability"],"setup":true,"name":"Scholar","team":"townsfolk","ability":"The 1st time you nominate a living Outsider, they immediately become a not-in-play Townsfolk. [+1 Outsider]","flavor":"When you arise in the morning, think of what a precious privilege it is to be alive - to breathe, to think, to enjoy, to love.","otherNight":2},{"id":"thetwins_fall_of_rome","firstNightReminder":"Point to a player. Place the REMUS token next to that player.","otherNightReminder":"If The Twins has a TOWNSFOLK DRUNK token, all Townsfolk are drunk until dusk.","reminders":["Remus","Townsfolk Drunk"],"name":"The Twins","team":"outsider","ability":"You start knowing a player: if either of you are executed, all Townsfolk are drunk until dusk tomorrow.","flavor":"The quarrel that arose between Remus and Romulus demonstrated the division of the earthly city against itself...","firstNight":16,"otherNight":10},{"id":"winemaker_fall_of_rome","firstNightReminder":"Place either the ODD or EVEN token. If ODD, the Winemaker is drunk on the 1st night and every other night after. Otherwise: the Winemaker is drunk on the 2nd night and every other night after.","otherNightReminder":"Check which ODD or EVEN token is placed. If an odd night and the ODD token is placed, the Winemaker is drunk until dusk. If an even night and the EVEN token is placed, the Winemaker is drunk until dusk. Otherwise their Townsfolk neighbours are drunk until dusk.","reminders":["Odd","Even","Drunk"],"name":"Winemaker","team":"outsider","ability":"Your Townsfolk neighbours are drunk, but every other night, you are drunk until dusk, even if you are dead.","flavor":"In wine, there\'s truth.","firstNight":15,"otherNight":9},{"id":"spartacus_fall_of_rome","reminders":["Guess Used"],"name":"Spartacus","team":"outsider","ability":"If an evil player guesses you (once), your team loses. You might register as a Townsfolk; each day, if you did not publicly claim to be Spartacus, you don\'t.","flavor":"Death is the only freedom a slave knows..."},{"id":"badomen_fall_of_rome","remindersGlobal":["Is a Bad Omen"],"setup":true,"name":"Bad Omen","team":"outsider","ability":"You do not know you are a Bad Omen. You think you are a Townsfolk, but you receive false information. You might register as evil, even if dead.","flavor":"The nightmares, they talk to me, they comfort me... come closer, let me spread their message..."},{"id":"temptress_fall_of_rome","firstNightReminder":"The Temptress points to two players. Place the SEDUCED token next to the two players. Wake the two players separately. Show the \'This character selected you\' card, then the Temptress token. ","otherNightReminder":"If a player with a SEDUCED token is executed and dies, remove their SEDUCED token. The player with the remaining SEDUCED turns evil. Remove their SEDUCED token and replace it with the EVIL token. Wake the evil player and show them the \'You are\' card and the thumbs down evil signal.","reminders":["Seduced","Evil"],"name":"Temptress","team":"minion","ability":"On your 1st night choose two players: they learn that they were chosen. The 1st time one of them dies by execution, the other becomes evil that night.","flavor":"Nothing could part us in life, but now in death, we are likely to change places...","firstNight":12,"otherNight":3},{"id":"haruspex_fall_of_rome","firstNightReminder":"The Haruspex points to a player. Show that player’s character token. Place a FORETOLD token next that player. ","otherNightReminder":"The Haruspex points to a player. Show that player’s character token. Place a FORETOLD token next that player: if that player already has a FORETOLD token. That player dies, also place the CAN\'T KILL token next to the Haruspex.","reminders":["Foretold","Dead","Can\'t Kill"],"setup":true,"name":"Haruspex","team":"minion","ability":"Each night, choose a player: you learn their character. The 1st player you choose twice in this way, dies. [+ Spartacus]","flavor":"I see it clearly now that the gods have spoken... you\'ll make a great sacrifice!","firstNight":14,"otherNight":16},{"id":"glykon1_fall_of_rome","reminders":["Snake Bite","Poisoned"],"name":"Glykon","team":"minion","ability":"You might register as good. Until dawn, players you nominate register as the opposing alignment & if a Townsfolk, are also poisoned.","flavor":"It is difficult for one to know when they have been betrayed by the gods, when the only gods they know do not exist. "},{"id":"augur_fall_of_rome","name":"Augur","team":"minion","ability":"If a Townsfolk nominates you, they immediately become a Bad Omen.","flavor":"Hoc tibi maledicam!"},{"id":"cleopatra_fall_of_rome","firstNightReminder":"Cleopatra points to two players. ","otherNightReminder":"If a previously chosen player nominated today they die. Remove all CHOSEN tokens. Cleopatra points to two players. Place the CHOSEN token next to both players.","reminders":["Chosen","Dead"],"name":"Cleopatra","team":"demon","ability":"Each night, choose two players: if they nominate tomorrow, they die that night. Each day, if a good player (Travellers don\'t count) does not nominate, evil wins. ","flavor":"Fool! Don\'t you see now that I could have poisoned you a hundred times had I been able to live without you!","firstNight":13,"otherNight":12},{"id":"crassus_fall_of_rome","otherNightReminder":"Crassus points to a player. That player dies. If the 1st Crassus publicly claimed to be Spartacus today and points to themselves (or was executed), with 5 or more players alive, replace the character of 1 evil player with a spare Crassus token. Show the \'You are\' card, then the Crassus token. ","reminders":["Dead","1st Crassus"],"name":"Crassus","team":"demon","ability":"Each night*, choose a player: they die. If the 1st Crassus publicly claims to be Spartacus & dies with 5 or more players alive, an evil player becomes Crassus.","flavor":"Those who aim at great deeds must also suffer greatly...","otherNight":13},{"id":"hannibal_fall_of_rome","firstNightReminder":"Select 2 good players and place the IS HANNIBAL reminder tokens. Wake all Minions together, show them the Hannibals and show them three not-in-play character tokens (these must be the same).","otherNightReminder":"Choose a player, that player dies. If a Hannibal died today, wake that player and show them the \'You are\' card, the Hannibal token and then the thumbs up good signal.","remindersGlobal":["Is Hannibal","Dead"],"setup":true,"name":"Hannibal","team":"demon","ability":"You think you are a good character, but you are not. Minions learn 3 bluffs. Each night*, a player might die. The 1st Hannibal to die, becomes good. [+1 Hannibal] ","attribution":"Hannibal was awarded the 4th place trophy in the Unofficial\'s \\"Custom Demon Contest\\".","flavor":"I will either find a way or make one.","firstNight":11,"otherNight":14},{"id":"caesar_fall_of_rome","otherNightReminder":"If an evil player was executed today, Caesar points to two players. Otherwise: Caesar points to a player. Chosen players die.","reminders":["Betrayal","Used","Dead"],"name":"Caesar","team":"demon","ability":"Each night*, choose a player: they die. The 1st time an evil player dies by execution, that night, choose an additional player: they die.","flavor":"I came, I saw, I conquered.","otherNight":15},{"id":"mercenary_fall_of_rome","otherNightReminder":"Show the Mercenary a character that publicly claimed to be Spartacus today, they have that ability tonight and tomorrow until dusk. ","reminders":["Good","Evil","Good Ability","Evil Ability"],"name":"Mercenary","team":"traveler","ability":"Each night*, gain the ability of a player who publicly claimed Spartacus today. If a Mercenary is exiled, you are exiled too. [+1 Mercenary of opposing alignment]","flavor":"Let the buyer beware... ...and beware me too!","otherNight":4},{"id":"architect_fall_of_rome","otherNightReminder":"The Architect points to a player. Choose which ability will effect the chosen player. Treat them accordingly (not-in-play character or character swap). Wake affected players individually. Show \'You are\', then their new character token.","reminders":["Redesigned"],"name":"Architect","team":"traveler","ability":"Each night*, choose a player: 1) they become a not-in-play character of the same type, or 2) they swap characters with a player of the same type.","flavor":"I found Rome a city of bricks and left it the city of marbles.","otherNight":7},{"id":"sibyl_fall_of_rome","name":"Sibyl","team":"traveler","ability":"Each day, after the 1st execution, you may publicly choose a dead player: they may nominate. If the majority of the dead and yourself agree, they are executed.","attribution":"Original Character concept by Kohav. Many thanks to them for giving the green light to bringing it to Fall of Rome!","flavor":"To such a degree will I be changed that I will be visible to no one; but I will be recognized by my voice. And with my voice, to you, I give a second chance."},{"id":"highpriest1_fall_of_rome","otherNightReminder":"If the High Priest successfully blessed a player today, something good happens to that player and/or their team.","reminders":["Blessed","Failed"],"name":"High Priest","team":"traveler","ability":"Each day, publicly choose a unique living player to bless: if a majority of players agree, something good happens to them.","flavor":"The first and greatest punishment of the sinner is the conscience of sin.","otherNight":5},{"id":"highpriest2_fall_of_rome","otherNightReminder":"If the High Priest successfully blessed a player today, wake the High Priest. The High Priest chooses whether the statement is true tomorrow with a hand signal (true \\"thumbs up\\", false \\"thumbs down\\").","reminders":["Blessed","Failed","True","False"],"name":"High Priest","team":"traveler","ability":"Each day, publicly choose a unique living player to bless: if a majority of players agree, tomorrow they may learn a statement. Tonight, choose if it’s true.","flavor":"The first and greatest punishment of the sinner is the conscience of sin.","otherNight":6},{"id":"emperor_fall_of_rome","otherNightReminder":"If a player was executed today and the outcome was not overturned by the Emperor: Show the hand signal (thumbs down \'evil\', thumbs up \'good\') for the players alignment.","reminders":["Executed"],"name":"Emperor","team":"traveler","ability":"Each day, choose the 1st execution\'s outcome. If you choose to protect today\'s execution: they survive. Otherwise, tonight you learn their alignment.","flavor":"Which death is preferable to every other? The unexpected.","otherNight":8},{"id":"shugenja","firstNight":33.4,"firstNightReminder":"Wake the Shugenja; point horizontally in the direction of the closest evil player. If the two closest evil players are equidistant, point your finger horizontally in either direction.","otherNight":0,"setup":false,"name":"Shugenja","team":"townsfolk","ability":"You start knowing if your closest evil player is clockwise or anti-clockwise. If equidistant, this info is arbitrary."},{"id":"hatter","firstNight":0,"otherNight":40.1,"otherNightReminder":"If the Hatter died today: Wake the Minions and Demon. Show them the \'This Character Selected You\' info token, then the Hatter token. Each player either shakes their head no or points to another character of the same type as their current character. If a second player would end up with the same character as another player, shake your head no and gesture for them to choose again. Put them to sleep. Change each player to the character they chose.","reminders":["Tea Party Tonight"],"name":"Hatter","team":"outsider","ability":"If you died today or tonight, the Minion & Demon players may choose new Minion & Demon characters to be."}]'),vs=JSON.parse('[{"id":"doomsayer","firstNightReminder":"","otherNightReminder":"","reminders":[],"setup":false,"name":"Doomsayer","team":"fabled","ability":"If 4 or more players live, each living player may publicly choose (once per game) that a player of their own alignment dies."},{"id":"angel","firstNightReminder":"","otherNightReminder":"","reminders":["Protect","Something Bad"],"setup":false,"name":"Angel","team":"fabled","ability":"Something bad might happen to whoever is most responsible for the death of a new player."},{"id":"buddhist","firstNightReminder":"","otherNightReminder":"","reminders":[],"setup":false,"name":"Buddhist","team":"fabled","ability":"For the first 2 minutes of each day, veteran players may not talk."},{"id":"hellslibrarian","firstNightReminder":"","otherNightReminder":"","reminders":["Something Bad"],"setup":false,"name":"Hell\'s Librarian","team":"fabled","ability":"Something bad might happen to whoever talks when the Storyteller has asked for silence."},{"id":"revolutionary","firstNightReminder":"","otherNightReminder":"","reminders":["Used"],"setup":false,"name":"Revolutionary","team":"fabled","ability":"2 neighboring players are known to be the same alignment. Once per game, one of them registers falsely."},{"id":"fiddler","firstNightReminder":"","otherNightReminder":"","reminders":[],"setup":false,"name":"Fiddler","team":"fabled","ability":"Once per game, the Demon secretly chooses an opposing player: all players choose which of these 2 players win."},{"id":"toymaker","firstNightReminder":"","otherNight":1,"otherNightReminder":"If it is a night when a Demon attack could end the game, and the Demon is marked “Final night: No Attack,” then the Demon does not act tonight. (Do not wake them.)","reminders":["Final Night: No Attack"],"setup":false,"name":"Toymaker","team":"fabled","ability":"The Demon may choose not to attack & must do this at least once per game. Evil players get normal starting info."},{"id":"fibbin","firstNightReminder":"","otherNightReminder":"","reminders":["Used"],"setup":false,"name":"Fibbin","team":"fabled","ability":"Once per game, 1 good player might get false information."},{"id":"duchess","firstNightReminder":"","otherNight":1,"otherNightReminder":"Wake each player marked “Visitor” or “False Info” one at a time. Show them the Duchess token, then fingers (1, 2, 3) equaling the number of evil players marked “Visitor” or, if you are waking the player marked “False Info,” show them any number of fingers except the number of evil players marked “Visitor.”","reminders":["Visitor","False Info"],"setup":false,"name":"Duchess","team":"fabled","ability":"Each day, 3 players may choose to visit you. At night*, each visitor learns how many visitors are evil, but 1 gets false info."},{"id":"sentinel","firstNightReminder":"","otherNightReminder":"","reminders":[],"setup":true,"name":"Sentinel","team":"fabled","ability":"There might be 1 extra or 1 fewer Outsider in play."},{"id":"spiritofivory","firstNightReminder":"","otherNightReminder":"","reminders":["No extra evil"],"setup":false,"name":"Spirit of Ivory","team":"fabled","ability":"There can\'t be more than 1 extra evil player."},{"id":"djinn","firstNight":0,"firstNightReminder":"","otherNightReminder":"","reminders":[],"setup":false,"name":"Djinn","team":"fabled","ability":"Use the Djinn\'s special rule. All players know what it is."},{"id":"stormcatcher","firstNight":1,"firstNightReminder":"Mark a good player as \\"Safe\\". Wake each evil player and show them the marked player.","otherNightReminder":"","reminders":["Safe"],"setup":false,"name":"Storm Catcher","team":"fabled","ability":"Name a good character. If in play, they can only die by execution, but evil players learn which player it is."},{"id":"deusexfiasco","firstNightReminder":"","otherNightReminder":"","reminders":["Whoops"],"setup":false,"name":"Deus ex Fiasco","team":"fabled","ability":"Once per game, the Storyteller will make a \\"mistake\\", correct it and publicly admit to it."},{"id":"plusone","firstNightReminder":"","otherNightReminder":"","reminders":[],"setup":true,"name":"Plussy McOneface","team":"fabled","ability":"One role from off the script will be in play, it can be either a player or a demon bluff."},{"id":"iamspartacus_fall_of_rome","reminders":["I am Spartacus!"],"name":"I Am Spartacus!","team":"fabled","ability":"Each day, up to half the living players (rounded up & Travellers don’t count) may publicly claim to be Spartacus.","flavor":"I am Spartacus!"}]'),As=JSON.parse('[{"id":"Chambermaid","hatred":[{"id":"Mathematician","reason":"The Chambermaid learns if the Mathematician wakes tonight or not, even though the Chambermaid wakes first."}]},{"id":"Butler","hatred":[{"id":"Cannibal","reason":"If the Cannibal gains the Butler ability, the Cannibal learns this."}]},{"id":"Lunatic","hatred":[{"id":"Mathematician","reason":"The Mathematician learns if the Lunatic attacks a different player(s) than the real Demon attacked."}]},{"id":"Pit-Hag","hatred":[{"id":"Heretic","reason":"A Pit-Hag can not create a Heretic. "},{"id":"Damsel","reason":"If a Pit-Hag creates a Damsel, the Storyteller chooses which player it is."},{"id":"Politician","reason":"A Pit-hag can not create an evil Politician."}]},{"id":"Cerenovus","hatred":[{"id":"Goblin","reason":"The Cerenovus may choose to make a player mad that they are the Goblin."}]},{"id":"Leviathan","hatred":[{"id":"Soldier","reason":"If Leviathan nominates and executes the Soldier, the Soldier does not die."},{"id":"Monk","reason":"If Leviathan nominates and executes the player the Monk chose, that player does not die."},{"id":"Innkeeper","reason":"If Leviathan nominates and executes a player the Innkeeper chose, that player does not die."},{"id":"Ravenkeeper","reason":"If Leviathan is in play & the Ravenkeeper dies by execution, they wake that night to use their ability."},{"id":"Sage","reason":"If Leviathan is in play & the Sage dies by execution, they wake that night to use their ability."},{"id":"Farmer","reason":"If Leviathan is in play & a Farmer dies by execution, a good player becomes a Farmer that night."},{"id":"Mayor","reason":"If Leviathan is in play & no execution occurs on day 5, good wins."}]},{"id":"Al-Hadikhia","hatred":[{"id":"Scarlet Woman","reason":"If there are two living Al-Hadikhias, the Scarlet Woman Al-Hadikhia becomes the Scarlet Woman again."},{"id":"Mastermind","reason":"Only 1 jinxed character can be in play. Evil players start knowing which player and character it is."}]},{"id":"Lil\' Monsta","hatred":[{"id":"Poppy Grower","reason":"If the Poppy Grower is in play, Minions don\'t wake together. They are woken one by one, until one of them chooses to take the Lil\' Monsta token."},{"id":"Magician","reason":"Only 1 jinxed character can be in play. "},{"id":"Scarlet Woman","reason":"If there are 5 or more players alive and the player holding the Lil\' Monsta token dies, the Scarlet Woman is given the Lil\' Monsta token tonight."}]},{"id":"Lycanthrope","hatred":[{"id":"Gambler","reason":"If the Lycanthrope is alive and the Gambler kills themself at night, no other players can die tonight."}]},{"id":"Legion","hatred":[{"id":"Engineer","reason":"Legion and the Engineer can not both be in play at the start of the game. If the Engineer creates Legion, most players (including all evil players) become evil Legion."},{"id":"Preacher","reason":"Only 1 jinxed character can be in play."}]},{"id":"Fang Gu","hatred":[{"id":"Scarlet Woman","reason":"If the Fang Gu chooses an Outsider and dies, the Scarlet Woman does not become the Fang Gu."}]},{"id":"Spy","hatred":[{"id":"Magician","reason":"When the Spy sees the Grimoire, the Demon and Magician\'s character tokens are removed."},{"id":"Alchemist","reason":"The Alchemist can not have the Spy ability."},{"id":"Poppy Grower","reason":"If the Poppy Grower is in play, the Spy does not see the Grimoire until the Poppy Grower dies."},{"id":"Damsel","reason":"Only 1 jinxed character can be in play. "},{"id":"Heretic","reason":"Only 1 jinxed character can be in play."}]},{"id":"Widow","hatred":[{"id":"Magician","reason":"When the Widow sees the Grimoire, the Demon and Magician\'s character tokens are removed."},{"id":"Poppy Grower","reason":"If the Poppy Grower is in play, the Widow does not see the Grimoire until the Poppy Grower dies."},{"id":"Alchemist","reason":"The Alchemist can not have the Widow ability."},{"id":"Damsel","reason":"Only 1 jinxed character can be in play."},{"id":"Heretic","reason":"Only 1 jinxed character can be in play."}]},{"id":"Godfather","hatred":[{"id":"Heretic","reason":"Only 1 jinxed character can be in play."}]},{"id":"Baron","hatred":[{"id":"Heretic","reason":"The Baron might only add 1 Outsider, not 2."}]},{"id":"Marionette","hatred":[{"id":"Lil\' Monsta","reason":"The Marionette neighbors a Minion, not the Demon. The Marionette is not woken to choose who takes the Lil\' Monsta token."},{"id":"Poppy Grower","reason":"When the Poppy Grower dies, the Demon learns the Marionette but the Marionette learns nothing."},{"id":"Snitch","reason":"The Marionette does not learn 3 not in-play characters. The Demon learns an extra 3 instead."},{"id":"Balloonist","reason":"If the Marionette thinks that they are the Balloonist, +1 Outsider was added."},{"id":"Damsel","reason":"The Marionette does not learn that a Damsel is in play."},{"id":"Huntsman","reason":"If the Marionette thinks that they are the Huntsman, the Damsel was added."}]},{"id":"Riot","hatred":[{"id":"Engineer","reason":"Riot and the Engineer can not both be in play at the start of the game. \\nIf the Engineer creates Riot, the evil players become Riot."},{"id":"Golem","reason":"If The Golem nominates Riot, the Riot player does not die."},{"id":"Snitch","reason":"If the Snitch is in play, each Riot player gets an extra 3 bluffs."},{"id":"Saint","reason":"If a good player nominates and kills the Saint, the Saint\'s team loses."},{"id":"Butler","reason":"The Butler can not nominate their master."},{"id":"Pit-Hag","reason":"If the Pit-Hag creates Riot, all evil players become Riot. \\nIf the Pit-Hag creates Riot after day 3, the game continues for one more day."},{"id":"Mayor","reason":"If the 3rd day begins with just three players alive, the players may choose (as a group) not to nominate at all. If so (and a Mayor is alive) then the Mayor\'s team wins."},{"id":"Monk","reason":"If a Riot player nominates and kills the Monk-protected-player, the Monk-protected-player does not die."},{"id":"Farmer","reason":"If a Riot player nominates and kills a Farmer, the Farmer uses their ability tonight."},{"id":"Innkeeper","reason":"If a Riot player nominates an Innkeeper-protected-player, the Innkeeper-protected-player does not die."},{"id":"Sage","reason":"If a Riot player nominates and kills a Sage, the Sage uses their ability tonight."},{"id":"Ravenkeeper","reason":"If a Riot player nominates and kills the Ravenkeeper, the Ravenkeeper uses their ability tonight."},{"id":"Soldier","reason":"If a Riot player nominates the Soldier, the Soldier does not die."},{"id":"Grandmother","reason":"If a Riot player nominates and kills the Grandchild, the Grandmother dies too."},{"id":"King","reason":"If a Riot player nominates and kills the King and the Choirboy is alive, the Choirboy uses their ability tonight."},{"id":"Exorcist","reason":"Only 1 jinxed character can be in play."},{"id":"Minstrel","reason":"Only 1 jinxed character can be in play."},{"id":"Flowergirl","reason":"Only 1 jinxed character can be in play."},{"id":"Undertaker","reason":"Players that die by nomination register as being executed to the Undertaker."},{"id":"Cannibal","reason":"Players that die by nomination register as being executed to the Cannibal."},{"id":"Pacifist","reason":"Players that die by nomination register as being executed to the Pacifist."},{"id":"Devil\'s Advocate","reason":"Players that die by nomination register as being executed to the Devil\'s Advocate."},{"id":"Investigator","reason":"Riot registers as a Minion to the Investigator."},{"id":"Clockmaker","reason":"Riot registers as a Minion to the Clockmaker."},{"id":"Town Crier","reason":"Riot registers as a Minion to the Town Crier."},{"id":"Damsel","reason":"Riot registers as a Minion to the Damsel."},{"id":"Preacher","reason":"Riot registers as a Minion to the Preacher."}]},{"id":"Lleech","hatred":[{"id":"Mastermind","reason":"If the Mastermind is alive and the Lleech\'s host dies by execution, the Lleech lives but loses their ability. "},{"id":"Slayer","reason":"If the Slayer slays the Lleech\'s host, the host dies. "},{"id":"Heretic","reason":"If the Lleech has poisoned the Heretic then the Lleech dies, the Heretic remains poisoned."}]},{"id":"Organ Grinder","hatred":[{"id":"Butler","reason":"If the Organ Grinder is causing eyes closed voting, the Butler may raise their hand to vote but their vote is only counted if their master voted too."},{"id":"Flowergirl","reason":"If players\' eyes were closed during the nominations, the Flowergirl learns how many times the Demon voted."},{"id":"Lil\' Monsta","reason":"Votes for the Organ Grinder count if the Organ Grinder is babysitting Lil\' Monsta."},{"id":"Minstrel","reason":"Only 1 jinxed character can be in play. Evil players start knowing which character it is."},{"id":"Preacher","reason":"Only 1 jinxed character can be in play. Evil players start knowing which character it is."}]},{"id":"Vizier","hatred":[{"id":"Alchemist","reason":"If the Alchemist has the Vizier ability, they may only choose to execute immediately if three or more players voted."},{"id":"Courtier","reason":"If the Vizier loses their ability, they learn this and if the Vizier is executed while they have their ability, their team wins."},{"id":"Investigator","reason":"If the Investigator learns that the Vizier is in play, the existence of the Vizier is not announced by the Storyteller."},{"id":"Magician","reason":"Only 1 jinxed character can be in play."},{"id":"Preacher","reason":"If the Vizier loses their ability, they learn this and if the Vizier is executed while they have their ability, their team wins."},{"id":"Fearmonger","reason":"The Vizier wakes with the Fearmonger, learns who they choose and cannot choose to execute that player."}]},{"id":"plaguedoctor","hatred":[{"id":"baron","reason":"If the Storyteller gains the Baron ability, up to two players become out-of-play Outsiders."},{"id":"boomdandy","reason":"If the Plague Doctor is executed and the Storyteller would gain the Boomdandy ability, the Boomdandy ability triggers immediately."},{"id":"eviltwin","reason":"The Storyteller cannot gain the Evil Twin ability if the Plague Doctor dies."},{"id":"fearmonger","reason":"If the Plague Doctor dies, a living Minion gains the Fearmonger ability in addition to their own ability, and learns this."},{"id":"goblin","reason":"If the Plague Doctor dies, a living Minion gains the Goblin ability in addition to their own ability, and learns this."},{"id":"Marionette","reason":"If the Demon has a neighbour who is alive and a Townsfolk or Outsider when the Plague Doctor dies, that player becomes an evil Marionette. If there is already an extra evil player, this does not happen."},{"id":"scarletwoman","reason":"If the Plague Doctor dies, a living Minion gains the Scarlet Woman ability in addition to their own ability, and learns this."},{"id":"spy","reason":"If the Plague Doctor dies, a living Minion gains the Spy ability in addition to their own ability, and learns this."}]}]'),Rs=(e=qt[0])=>new Map(Ns.filter((t=>t.edition===e.id||e.roles.includes(t.id))).sort(((e,t)=>t.team.localeCompare(e.team))).map((e=>[e.id,e]))),Ss=(e=qt[0])=>Ns.filter((t=>"traveler"===t.team&&t.edition!==e.id&&!e.roles.includes(t.id))),Is=(e=qt[0])=>Ns.filter((t=>"traveler"!==t.team&&t.edition!==e.id&&!e.roles.includes(t.id))),Ds=e=>Ns.find((t=>t.id===e)),Ms=e=>({grimoire:t},i)=>{t[e]=i},Ts=e=>({grimoire:t},i)=>{t[e]=!0===i||!1===i?i:!t[e]},Gs=e=>e.toLocaleLowerCase().replace(/[^a-z0-9]/g,""),Cs=new Map(qt.map((e=>[e.id,e]))),xs=new Map(Ns.map((e=>[e.id,e]))),Es=new Map(vs.map((e=>[e.id,e])));let Bs={};try{Bs=new Map(As.map((({id:e,hatred:t})=>[Gs(e),new Map(t.map((({id:e,reason:t})=>[Gs(e),t])))])))}catch(Us){console.error("couldn't load jinxes",Us)}const Ys={id:"",name:"",image:"",ability:"",edition:"custom",firstNight:0,firstNightReminder:"",otherNight:0,otherNightReminder:"",reminders:[],remindersGlobal:[],setup:!1,team:"townsfolk",isCustom:!0},Ws=d.ZP.createStore({modules:{players:gs,session:ks},state:{grimoire:{isNight:!1,isNightOrder:!0,isPublic:!0,isMenuOpen:!1,isStatic:!1,isMuted:!1,isImageOptIn:!1,zoom:0,background:""},modals:{edition:!1,fabled:!1,gameState:!1,nightOrder:!1,reference:!1,reminder:!1,role:!1,roles:!1,voteHistory:!1},edition:Cs.get("tb"),roles:Rs(),otherTravelers:Ss(),otherRoles:Is(),fabled:Es,jinxes:Bs},getters:{customRolesStripped:({roles:e})=>{const t=[],i=Object.keys(Ys),o=["firstNightReminder","otherNightReminder","isCustom"];return e.forEach((e=>{if(e.isCustom){const s={};for(let t in e){if(o.includes(t))continue;const a=e[t];i.includes(t)&&a!==Ys[t]&&(s[i.indexOf(t)]=a)}t.push(s)}else t.push({id:e.id})})),t},rolesJSONbyId:()=>xs,roleById:Ds},mutations:{setZoom:Ms("zoom"),setBackground:Ms("background"),toggleMuted:Ts("isMuted"),toggleMenu:Ts("isMenuOpen"),toggleNightOrder:Ts("isNightOrder"),toggleStatic:Ts("isStatic"),toggleNight:Ts("isNight"),toggleGrimoire:Ts("isPublic"),toggleImageOptIn:Ts("isImageOptIn"),toggleModal({modals:e},t){t&&(e[t]=!e[t]);for(let i in e)i!==t&&(e[i]=!1)},setCustomRoles(e,t){const i=t.map((e=>{if(e[0]){const t=Object.keys(Ys),i={};for(let o in e)t[o]&&(i[t[o]]=e[o]);return i}return e})).map((e=>(e.id=Gs(e.id),e))).map((t=>xs.get(t.id)||e.roles.get(t.id)||Object.assign({},Ys,t))).map((e=>(xs.get(e.id)||(e.imageAlt={townsfolk:"good",outsider:"outsider",minion:"minion",demon:"evil",fabled:"fabled"}[e.team]||"custom",e.firstNight=Math.abs(e.firstNight),e.otherNight=Math.abs(e.otherNight)),e))).filter((e=>e.name&&e.ability&&e.team)).sort(((e,t)=>t.team.localeCompare(e.team)));e.roles=new Map(i.filter((e=>"fabled"!==e.team)).map((e=>[e.id,e]))),e.fabled=new Map([...i.filter((e=>"fabled"===e.team)).map((e=>[e.id,e])),...vs.map((e=>[e.id,e]))]),e.otherTravelers=new Map(Ns.filter((e=>"traveler"===e.team&&!t.some((t=>t.id===e.id)))).map((e=>[e.id,e])))},setEdition(e,t){Cs.has(t.id)?(e.edition=Cs.get(t.id),e.roles=Rs(e.edition),e.otherTravelers=Ss(e.edition),e.otherRoles=Is(e.edition)):e.edition=t,e.modals.edition=!1}},plugins:[as(),ns]});var Zs=i(3636),Vs=i(9417),Ps=i(3024),js=i(7810);const Os=["AddressCard","BookOpen","BookDead","BroadcastTower","Chair","CheckSquare","CloudMoon","Cog","Copy","Clipboard","Dice","Dragon","ExchangeAlt","ExclamationTriangle","FileCode","FileUpload","HandPaper","HandPointRight","Heartbeat","Image","Link","MinusCircle","PeopleArrows","PlusCircle","Question","Random","RedoAlt","SearchMinus","SearchPlus","Skull","Square","TheaterMasks","TimesCircle","TrashAlt","Undo","User","UserEdit","UserFriends","Users","VenusMars","VolumeUp","VolumeMute","VoteYea","WindowMaximize","WindowMinimize","Times","Xmark"],zs=["Github","Discord"];Zs.vI.add(...Os.map((e=>Vs.mRB["fa"+e])),...zs.map((e=>Ps.vnX["fa"+e]))),(0,o.ri)(os).component("font-awesome-icon",js.GN).use(Ws).mount("#app")},2464:e=>{e.exports=e=>{const t=e=>document.title="Blood on the Clocktower "+(e?"Town Square":"Grimoire");if(localStorage.getItem("background")&&e.commit("setBackground",localStorage.background),localStorage.getItem("muted")&&e.commit("toggleMuted",!0),localStorage.getItem("static")&&e.commit("toggleStatic",!0),localStorage.getItem("imageOptIn")&&e.commit("toggleImageOptIn",!0),localStorage.getItem("zoom")&&e.commit("setZoom",parseFloat(localStorage.getItem("zoom"))),localStorage.getItem("isGrimoire")&&(e.commit("toggleGrimoire",!1),t(!1)),void 0!==localStorage.roles&&(e.commit("setCustomRoles",JSON.parse(localStorage.roles)),e.commit("setEdition",{id:"custom"})),void 0!==localStorage.edition&&e.commit("setEdition",JSON.parse(localStorage.edition)),void 0!==localStorage.bluffs&&JSON.parse(localStorage.bluffs).forEach(((t,i)=>{e.commit("players/setBluff",{index:i,role:e.state.roles.get(t)||{}})})),void 0!==localStorage.fabled&&e.commit("players/setFabled",{fabled:JSON.parse(localStorage.fabled).map((t=>e.state.fabled.get(t.id)||t))}),localStorage.players&&e.commit("players/set",JSON.parse(localStorage.players).map((t=>({...t,role:e.state.roles.get(t.role)||e.getters.rolesJSONbyId.get(t.role)||{}})))),localStorage.getItem("playerId")&&e.commit("session/setPlayerId",localStorage.getItem("playerId")),localStorage.getItem("session")&&!window.location.hash.substr(1)){const[t,i]=JSON.parse(localStorage.getItem("session"));e.commit("session/setSpectator",t),e.commit("session/setSessionId",i)}e.subscribe((({type:e,payload:i},o)=>{switch(e){case"toggleGrimoire":o.grimoire.isPublic?localStorage.removeItem("isGrimoire"):localStorage.setItem("isGrimoire",1),t(o.grimoire.isPublic);break;case"setBackground":i?localStorage.setItem("background",i):localStorage.removeItem("background");break;case"toggleMuted":o.grimoire.isMuted?localStorage.setItem("muted",1):localStorage.removeItem("muted");break;case"toggleStatic":o.grimoire.isStatic?localStorage.setItem("static",1):localStorage.removeItem("static");break;case"toggleImageOptIn":o.grimoire.isImageOptIn?localStorage.setItem("imageOptIn",1):localStorage.removeItem("imageOptIn");break;case"setZoom":0!==i?localStorage.setItem("zoom",i):localStorage.removeItem("zoom");break;case"setEdition":localStorage.setItem("edition",JSON.stringify(i)),o.edition.isOfficial&&localStorage.removeItem("roles");break;case"setCustomRoles":i.length?localStorage.setItem("roles",JSON.stringify(i)):localStorage.removeItem("roles");break;case"players/setBluff":localStorage.setItem("bluffs",JSON.stringify(o.players.bluffs.map((({id:e})=>e))));break;case"players/setFabled":localStorage.setItem("fabled",JSON.stringify(o.players.fabled.map((e=>e.isCustom?e:{id:e.id}))));break;case"players/add":case"players/update":case"players/remove":case"players/clear":case"players/set":case"players/swap":case"players/move":o.players.players.length?localStorage.setItem("players",JSON.stringify(o.players.players.map((e=>({...e,role:e.role.id||{}}))))):localStorage.removeItem("players");break;case"session/setSessionId":i?localStorage.setItem("session",JSON.stringify([o.session.isSpectator,i])):localStorage.removeItem("session");break;case"session/setPlayerId":i?localStorage.setItem("playerId",i):localStorage.removeItem("playerId");break}}))}},387:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABICAYAAABcBhM9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjlDMUM2MkY4N0EzMTFFQUE5RTNDRTZFOTIwNERBRDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjlDMUM2MzA4N0EzMTFFQUE5RTNDRTZFOTIwNERBRDkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2OUMxQzYyRDg3QTMxMUVBQTlFM0NFNkU5MjA0REFEOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2OUMxQzYyRTg3QTMxMUVBQTlFM0NFNkU5MjA0REFEOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpWbMZkAABKiSURBVHjaxJwJWBRX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"},9764:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABICAYAAABcBhM9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjUzNjg3N0Q4N0EzMTFFQUE0NDJFMkFFNjZBMTEzNzciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjUzNjg3N0U4N0EzMTFFQUE0NDJFMkFFNjZBMTEzNzciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2NTM2ODc3Qjg3QTMxMUVBQTQ0MkUyQUU2NkExMTM3NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2NTM2ODc3Qzg3QTMxMUVBQTQ0MkUyQUU2NkExMTM3NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnU9gJ4AABJLSURBVHjazJwJcBTXmce/nhndN7rQhRBIOJIQCIlTxqagcGyOAAasxRuI18Y2sTEYQ8zuwpqsY8eswzoYKhiwYUlRKXmNOcpAliDjgCwjCQkhySBAQie60TW6jzl6v9fMKD2t97p7dCWv6lX3dPfM9Pz6/33v+94xnE6nA1YxGAwwGsXBwYEbyc/D++RH6T4HHdPBGJWRhiT32aMFcMyAKcDiGPtKhWfs23zfSMPT/R1hcYwtyADkKed4yz4vB2+kwI2ZSaoAJd5yKhUmhsVJjtvAGylwujFWFw0KR3mtBI6XgJGCklXccKDpxtAMWbA0FHCcgqnyFCXxlOMcDe5w1KYbBd8EdqpKXDWiazQKpikFZLYcNzMUOCJq040CJE7BX8mBku5zCs6fBooTHRefZ6rNHmi6YYLi7NhXgsXacgxgUnVpLFua/+JF54DWIKiFphtBfwQM06M5dg0DGG2fBk0Ky7oVVxBBEm9hONB0I9TKsXwUMBy8FJj1tVZ0TEtpFKQ/lAbLZKmcZSuGp5GDNlyFsZQjFw5oVFxLM0dtQ0PDXnd39zmOjo4/MZlMjTzPm41GY1t/f39TR0dHSXV1dWFqamr+yZMn6ysqKvolwEwiYNYHIIbGqYGmRmWcTPLNKcBiqUUOEFVder0+xc3N7Wm1T7mmpuZsfHz8B/g+E0VZpBolr8XVLDHlQQ2BFZo9ybccLDnnrKGA08hA1nz66acRBFZ3dzfk5uZCe3s7ODk5Acdxwg07OzsDKg+8vLzAx8cHXFxcICQkZHVjY+PqysrKs5GRkR9KgBktn2+UCUukSlNtljSFSb9Ew4ClkfE/NNNjOvvm5uYTnp6eT9bW1EDhnTuAZkj3H3ivfn5+EDllCuD1AlRUWUFGRsaplStXXrZAklYDQ3Fiv0dVGU1hSsBoP1ZL2deIHLVGBhxVZZs3bw7+5JNPzmq1Wo/2tjbIycqCnp4e2ScdOmECRD3xBKA6hdf19fU/7Ny5c++XX35ZJwJlkEAzSoCZWKbJAqbVaDRqTJEGSGd5rbNUB9G+jnJcy7omJyenB/1S6lNPPRXn5e0d6IsqqqqoAN6Mv4XnqbVdr4fy0lIwoBq9x40jJjth4cKF07HRuJ+enq5nxG60BJ3aYn7wwQdUcxYDsweWlgFAeI0+x3HZsmV+H3/8cdKWLVuSNmzYEBUTE+OApmZCv2MSXTsAPD8/v+/atWtpq1evTvD28fF3xKf7qLaWCcxa9c3N8LC8HALGjweEHYDQn0NoN69evdosAQRyvRlq/ZjYJGmmyFFMTitRl1hlWmzyf41OOZn1heivslNSUv5n+/bttyUPRngg27Ztm7xv377PybXZ6elQj35NbUmYNw9Cw8OF/b179/7Lnj177uBuv6gaJD7NSDFNsxxImsI4SlAphSVW1EAtLy//MDQ0dA35EOK4m+rrobmhATqx5RO+DB8Oqi9kzpw5y9etWxfw2Wef3RTDJtusrKwOVEl/RETEDHcPD6h68AB4E/4eYp4Kte7hQ3DEFtYHTTopKelZjOUy0DxbGOED65is2qwKk1OXVlLFfolsHcPCwlzwxt5HZS01443fz8+HB7dvD7Z/rRaeiI+HqKlThdclJSXfRkdH76c9oNra2o/9/f2j8jIy4CFCs6ckzJ8PYZMnAwa85ajW3ai2e3i4T6IyWutJUxkvDRmU8kSOAW9AWWlpae8RWEaDAdIvXoTivDzgjcZB1djXB4U3bsAtNDWM5gFjqGfQd72Nn+FkqQOfiVH9X8lN+AUEUD9LruZeuwbNqG4PD48INP1/pzQ+GoV8ldkro1FIjaRPfpDavvrqq0WosBVmBHD1zBloqatT/EGVd+9Cxb176LN5iI2NfRaDUWerWq3AMDwoJjfhHxwMrq6udkP7/ptvoA0bBG9v77ji4uLdlHvXMqDJxqUaO/JFMbQBH5aYmLiYXHg3Oxs68AbV/qA7P/wARkuAOnHiRC8LrAFgly9f1hcVFeU5IywSNtgLTFDad98JDwX94So0y6kqFAYK8JgK4xi9CTbgUB0e4eHhS0x4c3UYE9nzY4h5dmKQSsoLL7wwRWQyjtaHUVZWVkvOe3h7DwlYK6q9tKBA+A5sZH7OUJcalanurZDzYdoXX3wxglzYjsrqbcOW0GC0yznXFj8AH/RRc+fO/cn69eu7p02b5o+KEG744sWLD6urq4Xm1cXVze7PtpYH2TkwMSYGsPV+duvWrUcOHjxYylCZRmYgxaaV5Ch5o5bh4K1m44Q/5kBgYOBC8qaOlha49qc/QR8m0PaUiOnTIXHJEsXrGjFcSEtJGdqYHuabM5cuhfC4OMjLyzs0e/bsY3i4VxKfGSWpEzPHVNNFPShZbmpqOoapyOzeri5B9i0YXBp7eoG3UwXtjxqhAaN0T4yb+rq6obO1ZeDcOHT2vZ2d4IJJtj/mjeGokoqCH4VzTujX3NGvOWJbwZt56O3qhPbGJiANDy3XqSq8KwBDX5mEL09QshYTI+8dpDadvf1gGDv9isDqaGqCrNOnBWBDLY1lpZBWVip7jRcx2bVrYebPfgbu6MsIKB+ESbY2n1VZCbVFRVCMcRtx9DbZRWUFAm0EH3//GR999FH0rl27fmR0FGgkff+DzFIn061DPe7n55copC0IqwVNZbSLHtWbc/YsLHrtNYh++nEfYxtmD5hhQ3drK2gw8PZEqOEYEPtjWhQ8ZQpknToF3Xr9wGf0YuPSUFICnv7+gFlEAh4qZPgwkxwse4fZBKW5ubnFC0+0tHTM5hY0lZWhyXaBi5cX3E9Lg7sYLvRLun8Kv/0WwtDs4pcvF+D+8Mc/Qmtt7cD5lqoqAMw1g4KCnqC0kHIKE09F4DV23Lfg/Hp7e4WA0gufFo+R/VhUn6AgcMa8kpRiBNaHuan0mk5U3b0rV+D7L74ANx8fSFq/HhxQfdbzHRj5Ex+HYdDSCRMmOMtE+qrjMF4G1N+eVEtLLtmSJ+nk7CI4+tGsHuN8YcGrrwKn0QiBbk9Lq+z11fkFUJFzEzzwgU6aPXvgOAl7+rARIWX+/Pk+DJUpBq46BUCD5ixgvLTv0qVLTwfFxIQs2rIFqvLzoLm8Amox2ZY6W7XFFZ15wgtrBZOzfgZRA9kPiIoCnaOjcOz2hYtgVBG6XEeVBUROhrhly6D4r1eFILm/owP68b3kOzDv9WQEq1Y/JnVFdoUVNoOm6enpnRs3bnzx0KFDB7xDgmdgFWBV5+YO2UcREwqfNYt9A2YzVNzIhkJM7NWWIjTPGdi6jgsNhYb798GA6jL29grnfH19XRXGT0GulZR23XJKfUeYcDdj3Xj06NGkV1555Q9O7u5CgGhiDF4oFc/xgY+/BBVVj4m5ztEJPAIDBGWUY5hAzKzRzi4eAok0FO6+vlCHPqwPq8ECzNPT08Uev6W2laTNX7AZYd60aVP2mjVr7vlGRERPX7kCcocQjftOmgSJ69YJ+xUIJxPNifgqB2dn4QGYhjgx2YRwyEMMS0yAHgyISaNB/BopGRkZNTLTHVjJOE/rQGR1Hg7qNLRWzM1mvfHGG0eFAdZbt6AVA0iiFHKzcoV0NHqOHw8T5swRYinSP3/5/feh7scfRyQUCZs5ExZs3w46BG9A36VFP6ixdMdXVlZeioyM3IO7PZbUqM/SodjPSJHMcsA4Rj6plXRJD0Dbv3//TPRrv3ZxcRk/JDWgirKOHIHi1NQRi93cMZgdP3WqAEowJScnGI9xWsiMGcIxhHYGof2nqCe2XzIcZ1QDDCgK01CG0wZBi4uL83nrrbcS8CYiTSaTzmAwaHGrNRqNWlSThuyTLapPY+mR0CUnJ/+0u7kZ0n//e6jJvTUmQfDEJ5+ERf+xm2TlsHXr1sWHDx9+yABmoiTisn36tJ4LpmlaezEkr8W9qDZjl0uWLAk+f/78O/qHVXDm5ZdhLMtCBDZp4UJoaGj4JjQ09F17gGlkglZexvnz4vkMx44dizty5Mg0d3d3njKoMGhwwcnJiVu6dGl4RUVFpfeEMJi04OkxyxpIvfm5MIpHuq8TZcYpVbeSvAIsKwQh7+ro6Djj7OxM8jNAPwbFxcUXTpw4kZqZmdn26NEjMlLkGBwc7BUbGxuAKYkf6SzE+qTNE3/vPdDqHKDowoUxUZjBEvHjvTnLDLUNayCX5vx1586dS1q+fPlX9QUFwthhEDpU4JSnwZJAtPHePbj79dfgji3lzF/+UjjeWl4OjzAI7mlthRaMu9zQcXuQfrG2Nqi5cQPq8vJGBFjgtGmw8vhx6OrqykeVrZGYo0FmwoqNwnhgzAFlmSWZeiScNJrgPKprHKYx0c8/D8GzZ4ErBoykNSIhRj8+0S5MjrtQcc1FxVCTnS3AIekKKQTSM7/7HfhERIDPxIlCq0kquRkHV1fhIUxfvwHO/eIX+P6iYQOb9847jx9Qa2sOsOeMqZruxGotaSNGOnw6pKs6FX1S1F8wr6y4etU2s3dwAC1Woj4StSuV0HnzwB9DgZ6mJjAbjQPR/6TFiyECa0dNDaT/9rdQnZkJ5iEEtK5+fhCTnAwz33wTuru7C728vFaKYi9VA7ty051UmSX6rM0RERH/1lJcDF+vev7xsP4olPhXN8Lcd98V9ola6zFIdgsMBCdMpvv0emgpsfTPIWCNTis8IFNvnyWRNwoPLnjuXPCLjhaOXbp06eUVK1Zck5lvYfXVNj5OCRjHmLljM79Cr9efcXNzS8za99+QhwHoaJVZb2+F6H9aB47ubuBgmRdGKyTJJhE+rXR2dhakpaUdWLVqVRoMnj/G8l1mlkmqNUtxTOZw5cqVny5YsOAL4cm9/jqUX04d1VbOMywMHDE35PnHv0OLyTrxl/2dHXizHJBgePaO7RCDOer169c/d3R05DFV683JycnFYPWWQtxlosAaaEFZk4LlzFI6mU6AVlhYuGnKlCn/2t3YCBf++efQdPcu/L1KSFISLD54ANyDgmDHjh3rMd8tEQGSTnsyAHsqJwwFmNgsOZCZ9lRfX3/Y19d3cVNhIfzl1ddAX1Y25rAmPrMYlmDIoMXcESP56xjJ7wDbGTu0nFFp3qtqYEAZitIyoAkpEDbV/4sRf3xrSQlcfn0TNI5Q74OqgeHnnoNnDv1BaAgwuf4/TGt/I2kFDSph0dSlGhhtNiINmpA34k26ZWVlHRXGLqur4eq2bVB55btRhzUTfdbcXbuA02qhqqrqyqRJk3ZLIFlNT25Wtez8fXuAcSqcv01PRl1d3WE/P7/5pJm/uX8/3DpwEHpbWkYclG9MDMx691cwZe3ax52QFRXfREVFfQiDZ1IbGQ7eJEn7WLCGDIyjdPtoKV0/DiUlJXvCw8OFKZyP8vOh+NQpKDhyVOgNHXZ/V0gIJGx7G6JWrwY3dO5Go7Hj9OnTezZs2PA9DJ5qzgJlAvpSQdaKX7uWzrAWNUh9mQ24w4cPz0pOTt7m6ekZKwwA5xdA6YXzUPbnPwv79pbYl16C+M1vgtfkyQOxGDY26bt37/6vkydP1jJ8lFFNL4oMrCEBk1MZbUa1jamSmYpYXsJ0KtaagBMTbcYWtTYjA1owR+yqq4deMikPz5G0ytXfH9wwOfebPg2CMW0ah1G6NbcUusRraq6cOnXq5M6dO+8AfRUIayGDWcZnAcis5B0KMKWUiaa4gXr8+PF58+fPX4ROeeVQzbG8vPwcqvZAfn5+u0hBUkBqYcmpahA8OWBqoGmAPf9VCs7mnIeHh0NSUpIP5nORCQkJcQEBAeEuLi5+mMh7YFSuMZvNmA726Xt6eppra2uLMzMzb6ekpJRi7tqNxwwUMEYGKGleOGRY9gIT+zKltElNpU0Eod2wmdJ5aQb28j7peTPlc+RawiEt/xt4I2VVrnjpHG0JnfTHyYGSW3ULwF6mzFonSTunWlXDXsJMgWbtZJQuSgcYvPCJF10jhqe0XJA5TQH+tvqWZ/glWsTOjxQsVcAY0EACyyyZYmC2AJGq0QTyC1QB6IvhgWJSJsaIPMsEhw1LNTCGedKaXtaURzMDlNgXArD/BQUoalHawkjDsguYAjSxqUpn7ZmBvtQZKM6es3O4DxhmpyYQHZu/klGpNNrfwZhB+V8HgDEQo/Q/O3Kr1WCkYA0JmEzryVNGnswSILwCIE4hFpJbrjeqoIYFTBKryIGj/b+XHDDFIU2QX03LHCL7h/nDNQVwAIP/QY4G0N6iekHoP+xf+olvTAaedJ8bBiwYK0ijAkzphhl/esSP1veNVvl/AQYATn6Av6OThnYAAAAASUVORK5CYII="},3396:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABICAYAAABcBhM9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjBDNEFCQUI4N0EzMTFFQTg3MTQ5NUI1MDJEN0Y2NTgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjBDNEFCQUM4N0EzMTFFQTg3MTQ5NUI1MDJEN0Y2NTgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MEM0QUJBOTg3QTMxMUVBODcxNDk1QjUwMkQ3RjY1OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2MEM0QUJBQTg3QTMxMUVBODcxNDk1QjUwMkQ3RjY1OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmWP3BUAABHvSURBVHja1JwLVBRX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"},4174:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABICAYAAABcBhM9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NThDNENBRUE4N0EzMTFFQUEzRkZBNzRFNDVBMzk4RTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NThDNENBRUI4N0EzMTFFQUEzRkZBNzRFNDVBMzk4RTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1OEM0Q0FFODg3QTMxMUVBQTNGRkE3NEU0NUEzOThFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1OEM0Q0FFOTg3QTMxMUVBQTNGRkE3NEU0NUEzOThFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pj7EncAAABJESURBVHjaxJwJVBRX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"},4085:(e,t,i)=>{"use strict";e.exports=i.p+"img/bmr.80525f7d.png"},5592:(e,t,i)=>{"use strict";e.exports=i.p+"img/custom.1892fe23.png"},3331:(e,t,i)=>{"use strict";e.exports=i.p+"img/for.66aa3ea7.png"},9737:(e,t,i)=>{"use strict";e.exports=i.p+"img/ib.80a1a8c3.png"},8142:(e,t,i)=>{"use strict";e.exports=i.p+"img/luf.412493d4.png"},2867:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAABNCAYAAADabljrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OERDN0YyNUM4N0EzMTFFQUIxNTRGRjU2Rjk5OTM3RTAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OERDN0YyNUQ4N0EzMTFFQUIxNTRGRjU2Rjk5OTM3RTAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4REM3RjI1QTg3QTMxMUVBQjE1NEZGNTZGOTk5MzdFMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4REM3RjI1Qjg3QTMxMUVBQjE1NEZGNTZGOTk5MzdFMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiUD/rkAABcdSURBVHjazFwJXBVV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"},3571:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAABNCAYAAADabljrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTREODlCQTg4N0EzMTFFQUE4NTZFQkZBMTgxMUZDMjgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTREODlCQTk4N0EzMTFFQUE4NTZFQkZBMTgxMUZDMjgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5NEQ4OUJBNjg3QTMxMUVBQTg1NkVCRkExODExRkMyOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5NEQ4OUJBNzg3QTMxMUVBQTg1NkVCRkExODExRkMyOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmabzNUAABbUSURBVHjazFwJVBTH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"},3429:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAABNCAYAAADabljrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUJENjIzNTY4N0EzMTFFQUI4NjVCRTU0QTkxN0JENEMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUJENjIzNTc4N0EzMTFFQUI4NjVCRTU0QTkxN0JENEMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QkQ2MjM1NDg3QTMxMUVBQjg2NUJFNTRBOTE3QkQ0QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QkQ2MjM1NTg3QTMxMUVBQjg2NUJFNTRBOTE3QkQ0QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PipBwRwAABbgSURBVHja1FwJfBRV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"},1822:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAABNCAYAAADabljrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTRDQzVCNjU4N0EzMTFFQUJCRDFERDZCQjFGMzYwNjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTRDQzVCNjY4N0EzMTFFQUJCRDFERDZCQjFGMzYwNjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBNENDNUI2Mzg3QTMxMUVBQkJEMURENkJCMUYzNjA2MiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBNENDNUI2NDg3QTMxMUVBQkJEMURENkJCMUYzNjA2MiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmIhL1YAABbFSURBVHjazFwJfAzn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"},9857:(e,t,i)=>{"use strict";e.exports=i.p+"img/snv.3db30bec.png"},6737:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABUCAYAAAAoEtHdAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzFENzIzRDY4N0EzMTFFQUE2NzhBQ0Y5RjNFQkJFNTkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzFENzIzRDc4N0EzMTFFQUE2NzhBQ0Y5RjNFQkJFNTkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3MUQ3MjNENDg3QTMxMUVBQTY3OEFDRjlGM0VCQkU1OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3MUQ3MjNENTg3QTMxMUVBQTY3OEFDRjlGM0VCQkU1OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhWFGj0AABahSURBVHja1FwJeBRV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"},972:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABUCAYAAAAoEtHdAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzhDRDEwNDg4N0EzMTFFQTkzQkNBRjQyNzM0ODVGMEEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzhDRDEwNDk4N0EzMTFFQTkzQkNBRjQyNzM0ODVGMEEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3OENEMTA0Njg3QTMxMUVBOTNCQ0FGNDI3MzQ4NUYwQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3OENEMTA0Nzg3QTMxMUVBOTNCQ0FGNDI3MzQ4NUYwQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pr8IU9IAABXPSURBVHja1FwJdFRV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"},2338:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABUCAYAAAAoEtHdAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6N0U2MDcwQ0Q4N0EzMTFFQThFQjlFQUE0NTlGN0E5Q0IiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6N0U2MDcwQ0U4N0EzMTFFQThFQjlFQUE0NTlGN0E5Q0IiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3RTYwNzBDQjg3QTMxMUVBOEVCOUVBQTQ1OUY3QTlDQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3RTYwNzBDQzg3QTMxMUVBOEVCOUVBQTQ1OUY3QTlDQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtLETXUAABYlSURBVHja1FwJdBRV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"},9600:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABQCAYAAACkoQMCAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODMzNzBGNjc4N0EzMTFFQTk3RjdBMzQ5NTBERkUzNzYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODMzNzBGNjg4N0EzMTFFQTk3RjdBMzQ5NTBERkUzNzYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4MzM3MEY2NTg3QTMxMUVBOTdGN0EzNDk1MERGRTM3NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4MzM3MEY2Njg3QTMxMUVBOTdGN0EzNDk1MERGRTM3NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqSyi4sAABXrSURBVHja1FwJeBRV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"},6827:(e,t,i)=>{"use strict";e.exports=i.p+"img/tb.5d68012d.png"},8035:(e,t,i)=>{"use strict";e.exports=i.p+"img/acrobat.95b437c9.png"},1465:(e,t,i)=>{"use strict";e.exports=i.p+"img/actor_fall_of_rome.b75f5072.png"},9799:(e,t,i)=>{"use strict";e.exports=i.p+"img/alchemist.840063ca.png"},8723:(e,t,i)=>{"use strict";e.exports=i.p+"img/alhadikhia.4a73c015.png"},5118:(e,t,i)=>{"use strict";e.exports=i.p+"img/amnesiac.d1164c72.png"},6474:(e,t,i)=>{"use strict";e.exports=i.p+"img/angel.eb4f8304.png"},819:(e,t,i)=>{"use strict";e.exports=i.p+"img/apprentice.b5ddec0f.png"},1607:(e,t,i)=>{"use strict";e.exports=i.p+"img/architect_fall_of_rome.17517e2f.png"},6835:(e,t,i)=>{"use strict";e.exports=i.p+"img/artist.dbc53820.png"},3169:(e,t,i)=>{"use strict";e.exports=i.p+"img/assassin.c58445a9.png"},946:(e,t,i)=>{"use strict";e.exports=i.p+"img/atheist.c56cbd56.png"},7726:(e,t,i)=>{"use strict";e.exports=i.p+"img/augur_fall_of_rome.d1769fc9.png"},1584:(e,t,i)=>{"use strict";e.exports=i.p+"img/badger.9a786aaf.png"},6577:(e,t,i)=>{"use strict";e.exports=i.p+"img/badomen_fall_of_rome.8b1f5b0a.png"},5926:(e,t,i)=>{"use strict";e.exports=i.p+"img/balloonist.b9ceaad1.png"},8069:(e,t,i)=>{"use strict";e.exports=i.p+"img/barber.9231782b.png"},2437:(e,t,i)=>{"use strict";e.exports=i.p+"img/barista.aba99908.png"},8230:(e,t,i)=>{"use strict";e.exports=i.p+"img/baron.41e60b5f.png"},1082:(e,t,i)=>{"use strict";e.exports=i.p+"img/beggar.1bd5bd9b.png"},5343:(e,t,i)=>{"use strict";e.exports=i.p+"img/bishop.b446b930.png"},9363:(e,t,i)=>{"use strict";e.exports=i.p+"img/blacksmith_fall_of_rome.f83cd3c5.png"},1594:(e,t,i)=>{"use strict";e.exports=i.p+"img/bonecollector.b7e7d2e3.png"},3682:(e,t,i)=>{"use strict";e.exports=i.p+"img/boomdandy.6bbc3226.png"},7479:(e,t,i)=>{"use strict";e.exports=i.p+"img/bountyhunter.75133577.png"},1990:(e,t,i)=>{"use strict";e.exports=i.p+"img/buddhist.c4032080.png"},367:(e,t,i)=>{"use strict";e.exports=i.p+"img/bureaucrat.c5c9e954.png"},177:(e,t,i)=>{"use strict";e.exports=i.p+"img/butcher.63e2dfd4.png"},4697:(e,t,i)=>{"use strict";e.exports=i.p+"img/butler.24394197.png"},7946:(e,t,i)=>{"use strict";e.exports=i.p+"img/caesar_fall_of_rome.c8b153c1.png"},6214:(e,t,i)=>{"use strict";e.exports=i.p+"img/cannibal.53c84ab6.png"},1708:(e,t,i)=>{"use strict";e.exports=i.p+"img/centurion1_fall_of_rome.cbc7e3a4.png"},7637:(e,t,i)=>{"use strict";e.exports=i.p+"img/cerenovus.de31aa19.png"},1146:(e,t,i)=>{"use strict";e.exports=i.p+"img/chambermaid.23651784.png"},1248:(e,t,i)=>{"use strict";e.exports=i.p+"img/chef.cb1db570.png"},5081:(e,t,i)=>{"use strict";e.exports=i.p+"img/choirboy.ca7ce535.png"},9114:(e,t,i)=>{"use strict";e.exports=i.p+"img/cleopatra_fall_of_rome.eea61ec9.png"},5102:(e,t,i)=>{"use strict";e.exports=i.p+"img/clockmaker.8fb03f70.png"},759:(e,t,i)=>{"use strict";e.exports=i.p+"img/courtier.9b034b79.png"},4163:(e,t,i)=>{"use strict";e.exports=i.p+"img/crassus_fall_of_rome.65f5bf79.png"},2763:(e,t,i)=>{"use strict";e.exports=i.p+"img/cultleader.a0e47655.png"},7037:(e,t,i)=>{"use strict";e.exports=i.p+"img/custom.a69142c5.png"},5533:(e,t,i)=>{"use strict";e.exports=i.p+"img/damsel.85d8c3ec.png"},8141:(e,t,i)=>{"use strict";e.exports=i.p+"img/deusexfiasco.a8b5f898.png"},1683:(e,t,i)=>{"use strict";e.exports=i.p+"img/deviant.f978b3d9.png"},5549:(e,t,i)=>{"use strict";e.exports=i.p+"img/devilsadvocate.f56ba1b8.png"},393:(e,t,i)=>{"use strict";e.exports=i.p+"img/djinn.68f1611b.png"},5142:(e,t,i)=>{"use strict";e.exports=i.p+"img/doomsayer.6f86a514.png"},1610:(e,t,i)=>{"use strict";e.exports=i.p+"img/dreamer.52d942e8.png"},3669:(e,t,i)=>{"use strict";e.exports=i.p+"img/drunk.b9aca105.png"},2491:(e,t,i)=>{"use strict";e.exports=i.p+"img/duchess.bfe41d6c.png"},5695:(e,t,i)=>{"use strict";e.exports=i.p+"img/empath.797679aa.png"},4595:(e,t,i)=>{"use strict";e.exports=i.p+"img/emperor_fall_of_rome.9020eaad.png"},7571:(e,t,i)=>{"use strict";e.exports=i.p+"img/engineer.31903b46.png"},1836:(e,t,i)=>{"use strict";e.exports=i.p+"img/evil.92eb9f6f.png"},7664:(e,t,i)=>{"use strict";e.exports=i.p+"img/eviltwin.697ba2e2.png"},5858:(e,t,i)=>{"use strict";e.exports=i.p+"img/exorcist.767988e8.png"},5025:(e,t,i)=>{"use strict";e.exports=i.p+"img/fabled.0b1df739.png"},1833:(e,t,i)=>{"use strict";e.exports=i.p+"img/fanggu.29f6e52e.png"},4390:(e,t,i)=>{"use strict";e.exports=i.p+"img/farmer.204e36f4.png"},5297:(e,t,i)=>{"use strict";e.exports=i.p+"img/fearmonger.87865300.png"},9332:(e,t,i)=>{"use strict";e.exports=i.p+"img/fibbin.60f4e4db.png"},5076:(e,t,i)=>{"use strict";e.exports=i.p+"img/fiddler.4f376c70.png"},2776:(e,t,i)=>{"use strict";e.exports=i.p+"img/fisherman.95d49bb4.png"},6053:(e,t,i)=>{"use strict";e.exports=i.p+"img/flowergirl.7edc3851.png"},647:(e,t,i)=>{"use strict";e.exports=i.p+"img/fool.93b22189.png"},9336:(e,t,i)=>{"use strict";e.exports=i.p+"img/fortuneteller.8af750ee.png"},4306:(e,t,i)=>{"use strict";e.exports=i.p+"img/gambler.75fdb65e.png"},782:(e,t,i)=>{"use strict";e.exports=i.p+"img/gangster.f11eb773.png"},2990:(e,t,i)=>{"use strict";e.exports=i.p+"img/general.f1c0f69a.png"},7434:(e,t,i)=>{"use strict";e.exports=i.p+"img/gladiator_fall_of_rome.5c7d3148.png"},8791:(e,t,i)=>{"use strict";e.exports=i.p+"img/glykon1_fall_of_rome.2c03aafc.png"},1730:(e,t,i)=>{"use strict";e.exports=i.p+"img/goblin.02299149.png"},8536:(e,t,i)=>{"use strict";e.exports=i.p+"img/godfather.2d238358.png"},7274:(e,t,i)=>{"use strict";e.exports=i.p+"img/golem.345927db.png"},6832:(e,t,i)=>{"use strict";e.exports=i.p+"img/good.56355047.png"},1273:(e,t,i)=>{"use strict";e.exports=i.p+"img/goon.b13623e0.png"},5965:(e,t,i)=>{"use strict";e.exports=i.p+"img/gossip.9a1a82e6.png"},4950:(e,t,i)=>{"use strict";e.exports=i.p+"img/grandmother.f634b548.png"},2325:(e,t,i)=>{"use strict";e.exports=i.p+"img/grinch.13e70c3d.png"},7768:(e,t,i)=>{"use strict";e.exports=i.p+"img/gunslinger.f15caca7.png"},4896:(e,t,i)=>{"use strict";e.exports=i.p+"img/hannibal_fall_of_rome.0c7fd6ae.png"},6226:(e,t,i)=>{"use strict";e.exports=i.p+"img/harlot.62982b44.png"},3865:(e,t,i)=>{"use strict";e.exports=i.p+"img/harpy.9d1d785e.png"},5649:(e,t,i)=>{"use strict";e.exports=i.p+"img/haruspex_fall_of_rome.8fef3ce5.png"},3490:(e,t,i)=>{"use strict";e.exports=i.p+"img/hatter.e181f53f.png"},5477:(e,t,i)=>{"use strict";e.exports=i.p+"img/hellslibrarian.8829a357.png"},6314:(e,t,i)=>{"use strict";e.exports=i.p+"img/heretic.d1e16abc.png"},934:(e,t,i)=>{"use strict";e.exports=i.p+"img/highpriest1_fall_of_rome.6644415b.png"},212:(e,t,i)=>{"use strict";e.exports=i.p+"img/highpriest2_fall_of_rome.a6f84c98.png"},6251:(e,t,i)=>{"use strict";e.exports=i.p+"img/highpriestess.bc9eba89.png"},7893:(e,t,i)=>{"use strict";e.exports=i.p+"img/huntsman.da36da94.png"},4671:(e,t,i)=>{"use strict";e.exports=i.p+"img/iamspartacus_fall_of_rome.269dd2a0.png"},2830:(e,t,i)=>{"use strict";e.exports=i.p+"img/imp.3a25e747.png"},6580:(e,t,i)=>{"use strict";e.exports=i.p+"img/innkeeper.27dd7e60.png"},9813:(e,t,i)=>{"use strict";e.exports=i.p+"img/investigator.a271bb3e.png"},6306:(e,t,i)=>{"use strict";e.exports=i.p+"img/judge.90d392cf.png"},8785:(e,t,i)=>{"use strict";e.exports=i.p+"img/juggler.23c97e47.png"},3108:(e,t,i)=>{"use strict";e.exports=i.p+"img/kazali.72457ed2.png"},6865:(e,t,i)=>{"use strict";e.exports=i.p+"img/king.9d143aab.png"},1938:(e,t,i)=>{"use strict";e.exports=i.p+"img/klutz.48a6eb63.png"},3395:(e,t,i)=>{"use strict";e.exports=i.p+"img/knight.f551815d.png"},2339:(e,t,i)=>{"use strict";e.exports=i.p+"img/legion.242a9b50.png"},4394:(e,t,i)=>{"use strict";e.exports=i.p+"img/legionary.e5f5b161.png"},2429:(e,t,i)=>{"use strict";e.exports=i.p+"img/legionary_fall_of_rome.e5f5b161.png"},3245:(e,t,i)=>{"use strict";e.exports=i.p+"img/leviathan.f4df0008.png"},651:(e,t,i)=>{"use strict";e.exports=i.p+"img/librarian.57805893.png"},4090:(e,t,i)=>{"use strict";e.exports=i.p+"img/lilmonsta.0a6a2da5.png"},1424:(e,t,i)=>{"use strict";e.exports=i.p+"img/lleech.625a8347.png"},2561:(e,t,i)=>{"use strict";e.exports=i.p+"img/lunatic.678a4353.png"},8746:(e,t,i)=>{"use strict";e.exports=i.p+"img/lycanthrope.bafb571d.png"},4214:(e,t,i)=>{"use strict";e.exports=i.p+"img/magician.97d3f9b4.png"},712:(e,t,i)=>{"use strict";e.exports=i.p+"img/marionette.c3121487.png"},7100:(e,t,i)=>{"use strict";e.exports=i.p+"img/mastermind.c05f4a71.png"},3850:(e,t,i)=>{"use strict";e.exports=i.p+"img/mathematician.0b38bd49.png"},8054:(e,t,i)=>{"use strict";e.exports=i.p+"img/matron.72aeb8e5.png"},8827:(e,t,i)=>{"use strict";e.exports=i.p+"img/mayor.0b765477.png"},3304:(e,t,i)=>{"use strict";e.exports=i.p+"img/mephit.306b51a2.png"},2841:(e,t,i)=>{"use strict";e.exports=i.p+"img/mercenary_fall_of_rome.70afa5cc.png"},7377:(e,t,i)=>{"use strict";e.exports=i.p+"img/merchant_fall_of_rome.27faa79c.png"},295:(e,t,i)=>{"use strict";e.exports=i.p+"img/mezepheles.306b51a2.png"},847:(e,t,i)=>{"use strict";e.exports=i.p+"img/minion.95728595.png"},3415:(e,t,i)=>{"use strict";e.exports=i.p+"img/minstrel.aad1e1c8.png"},3100:(e,t,i)=>{"use strict";e.exports=i.p+"img/monk.d96796d7.png"},8749:(e,t,i)=>{"use strict";e.exports=i.p+"img/moonchild.881a5413.png"},1021:(e,t,i)=>{"use strict";e.exports=i.p+"img/mortician_fall_of_rome.bd8c4c49.png"},4473:(e,t,i)=>{"use strict";e.exports=i.p+"img/mutant.15eaead8.png"},2666:(e,t,i)=>{"use strict";e.exports=i.p+"img/nightwatchman.5b638beb.png"},1004:(e,t,i)=>{"use strict";e.exports=i.p+"img/noble.e494eec4.png"},2458:(e,t,i)=>{"use strict";e.exports=i.p+"img/nodashii.dc3e933c.png"},3073:(e,t,i)=>{"use strict";e.exports=i.p+"img/ojo.0a40b2f2.png"},9624:(e,t,i)=>{"use strict";e.exports=i.p+"img/oracle.a26d71ee.png"},5705:(e,t,i)=>{"use strict";e.exports=i.p+"img/organgrinder.1311fb8b.png"},8814:(e,t,i)=>{"use strict";e.exports=i.p+"img/outsider.a1018bf7.png"},5873:(e,t,i)=>{"use strict";e.exports=i.p+"img/pacifist.27219b06.png"},3300:(e,t,i)=>{"use strict";e.exports=i.p+"img/philosopher.96fd28a7.png"},4555:(e,t,i)=>{"use strict";e.exports=i.p+"img/physician.65aa8f67.png"},9979:(e,t,i)=>{"use strict";e.exports=i.p+"img/physician_fall_of_rome.65aa8f67.png"},1282:(e,t,i)=>{"use strict";e.exports=i.p+"img/pithag.54894a1c.png"},8637:(e,t,i)=>{"use strict";e.exports=i.p+"img/pixie.1a053a1b.png"},5985:(e,t,i)=>{"use strict";e.exports=i.p+"img/plaguedoctor.1d35ab35.png"},4511:(e,t,i)=>{"use strict";e.exports=i.p+"img/plus.401e68cb.png"},4908:(e,t,i)=>{"use strict";e.exports=i.p+"img/plusone.a48e754c.png"},5631:(e,t,i)=>{"use strict";e.exports=i.p+"img/po.9e129519.png"},6763:(e,t,i)=>{"use strict";e.exports=i.p+"img/poisoner.7a67da08.png"},4265:(e,t,i)=>{"use strict";e.exports=i.p+"img/politician.bdc6fc63.png"},8828:(e,t,i)=>{"use strict";e.exports=i.p+"img/poppygrower.ecfac36e.png"},3213:(e,t,i)=>{"use strict";e.exports=i.p+"img/preacher.69033992.png"},889:(e,t,i)=>{"use strict";e.exports=i.p+"img/professor.03453fa9.png"},7826:(e,t,i)=>{"use strict";e.exports=i.p+"img/psychopath.b3538818.png"},4486:(e,t,i)=>{"use strict";e.exports=i.p+"img/pukka.2ee89c95.png"},7002:(e,t,i)=>{"use strict";e.exports=i.p+"img/puzzlemaster.ccb38ebe.png"},6965:(e,t,i)=>{"use strict";e.exports=i.p+"img/ravenkeeper.7b16f0d9.png"},3035:(e,t,i)=>{"use strict";e.exports=i.p+"img/recluse.8f576e6a.png"},9038:(e,t,i)=>{"use strict";e.exports=i.p+"img/revolutionary.eed81aec.png"},8118:(e,t,i)=>{"use strict";e.exports=i.p+"img/riot.54d174a8.png"},6544:(e,t,i)=>{"use strict";e.exports=i.p+"img/sage.da3228c0.png"},8984:(e,t,i)=>{"use strict";e.exports=i.p+"img/sailor.47e89e16.png"},4811:(e,t,i)=>{"use strict";e.exports=i.p+"img/saint.d1c68978.png"},7316:(e,t,i)=>{"use strict";e.exports=i.p+"img/saintnick.7f18a5ea.png"},7884:(e,t,i)=>{"use strict";e.exports=i.p+"img/savant.3723c580.png"},6701:(e,t,i)=>{"use strict";e.exports=i.p+"img/scapegoat.294ef014.png"},3957:(e,t,i)=>{"use strict";e.exports=i.p+"img/scarletwoman.6fd7f180.png"},7330:(e,t,i)=>{"use strict";e.exports=i.p+"img/scholar_fall_of_rome.b85f6ab5.png"},791:(e,t,i)=>{"use strict";e.exports=i.p+"img/sculptor.7a9cc966.png"},8374:(e,t,i)=>{"use strict";e.exports=i.p+"img/sculptor_fall_of_rome.7a9cc966.png"},4201:(e,t,i)=>{"use strict";e.exports=i.p+"img/seamstress.c713525e.png"},4213:(e,t,i)=>{"use strict";e.exports=i.p+"img/sentinel.9b6c51d9.png"},4017:(e,t,i)=>{"use strict";e.exports=i.p+"img/septemberchild.d49625c9.png"},2034:(e,t,i)=>{"use strict";e.exports=i.p+"img/shabaloth.5a091f98.png"},922:(e,t,i)=>{"use strict";e.exports=i.p+"img/shugenja.e82de713.png"},4885:(e,t,i)=>{"use strict";e.exports=i.p+"img/sibyl_fall_of_rome.97648fe5.png"},8081:(e,t,i)=>{"use strict";e.exports=i.p+"img/slayer.64aec593.png"},9900:(e,t,i)=>{"use strict";e.exports=i.p+"img/snakecharmer.ede4ab88.png"},7988:(e,t,i)=>{"use strict";e.exports=i.p+"img/snitch.7806bf67.png"},2231:(e,t,i)=>{"use strict";e.exports=i.p+"img/soldier.c2fb29c4.png"},1977:(e,t,i)=>{"use strict";e.exports=i.p+"img/spartacus_fall_of_rome.eebb613f.png"},3379:(e,t,i)=>{"use strict";e.exports=i.p+"img/spiritofivory.fb5ca6eb.png"},4013:(e,t,i)=>{"use strict";e.exports=i.p+"img/spy.38a0a62b.png"},5165:(e,t,i)=>{"use strict";e.exports=i.p+"img/standardbearer_fall_of_rome.1c03b2b0.png"},6050:(e,t,i)=>{"use strict";e.exports=i.p+"img/steward.fae1243b.png"},3877:(e,t,i)=>{"use strict";e.exports=i.p+"img/stormcatcher.4ba01c24.png"},6356:(e,t,i)=>{"use strict";e.exports=i.p+"img/sweetheart.e253b31e.png"},3009:(e,t,i)=>{"use strict";e.exports=i.p+"img/tealady.4ee7d977.png"},5274:(e,t,i)=>{"use strict";e.exports=i.p+"img/temptress_fall_of_rome.9aeaa351.png"},5603:(e,t,i)=>{"use strict";e.exports=i.p+"img/thetwins_fall_of_rome.94c121f6.png"},7112:(e,t,i)=>{"use strict";e.exports=i.p+"img/thief.b4916753.png"},5380:(e,t,i)=>{"use strict";e.exports=i.p+"img/tinker.1128cab7.png"},4055:(e,t,i)=>{"use strict";e.exports=i.p+"img/towncrier.5bf61c92.png"},3163:(e,t,i)=>{"use strict";e.exports=i.p+"img/toymaker.f4f99e02.png"},8892:(e,t,i)=>{"use strict";e.exports=i.p+"img/trumpeter_fall_of_rome.423f9ec1.png"},5466:(e,t,i)=>{"use strict";e.exports=i.p+"img/undertaker.e4d72d4b.png"},1647:(e,t,i)=>{"use strict";e.exports=i.p+"img/vestalvirgin.2c91cb58.png"},2349:(e,t,i)=>{"use strict";e.exports=i.p+"img/vestalvirgin_fall_of_rome.2c91cb58.png"},4969:(e,t,i)=>{"use strict";e.exports=i.p+"img/vigormortis.1f1b230f.png"},6954:(e,t,i)=>{"use strict";e.exports=i.p+"img/virgin.c7ff9059.png"},5485:(e,t,i)=>{"use strict";e.exports=i.p+"img/vizier.8cc0e053.png"},6142:(e,t,i)=>{"use strict";e.exports=i.p+"img/vortox.e27cceb9.png"},152:(e,t,i)=>{"use strict";e.exports=i.p+"img/voudon.464d7d5b.png"},245:(e,t,i)=>{"use strict";e.exports=i.p+"img/washerwoman.b3fadac1.png"},3729:(e,t,i)=>{"use strict";e.exports=i.p+"img/widow.51e60f7e.png"},1409:(e,t,i)=>{"use strict";e.exports=i.p+"img/winemaker_fall_of_rome.b54e8570.png"},6909:(e,t,i)=>{"use strict";e.exports=i.p+"img/witch.11f6d426.png"},1139:(e,t,i)=>{"use strict";e.exports=i.p+"img/x.ac4e061c.png"},8899:(e,t,i)=>{"use strict";e.exports=i.p+"img/zombuul.cba2ebaa.png"}},t={};function i(o){var s=t[o];if(void 0!==s)return s.exports;var a=t[o]={exports:{}};return e[o](a,a.exports,i),a.exports}i.m=e,(()=>{var e=[];i.O=(t,o,s,a)=>{if(!o){var r=1/0;for(d=0;d=a)&&Object.keys(i.O).every((e=>i.O[e](o[l])))?o.splice(l--,1):(n=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[o,s,a]}})(),(()=>{i.n=e=>{var t=e&&e.__esModule?()=>e["default"]:()=>e;return i.d(t,{a:t}),t}})(),(()=>{i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})}})(),(()=>{i.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()})(),(()=>{i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{i.p="/"})(),(()=>{var e={143:0};i.O.j=t=>0===e[t];var t=(t,o)=>{var s,a,[r,n,l]=o,h=0;if(r.some((t=>0!==e[t]))){for(s in n)i.o(n,s)&&(i.m[s]=n[s]);if(l)var d=l(i)}for(t&&t(o);hi(487)));o=i.O(o)})(); -//# sourceMappingURL=app.736669a7.js.map \ No newline at end of file diff --git a/js/app.736669a7.js.map b/js/app.736669a7.js.map deleted file mode 100644 index 647c1abe..00000000 --- a/js/app.736669a7.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/app.736669a7.js","mappings":"4BAAA,IAAIA,EAAM,CACT,kBAAmB,IACnB,mBAAoB,KACpB,qBAAsB,KACtB,sBAAuB,KACvB,YAAa,KACb,eAAgB,KAChB,YAAa,KACb,WAAY,KACZ,YAAa,KACb,kBAAmB,KACnB,mBAAoB,KACpB,qBAAsB,KACtB,sBAAuB,KACvB,YAAa,KACb,iBAAkB,KAClB,kBAAmB,IACnB,oBAAqB,KACrB,qBAAsB,KACtB,WAAY,MAIb,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOG,EAAoBF,EAC5B,CACA,SAASC,EAAsBF,GAC9B,IAAIG,EAAoBC,EAAEN,EAAKE,GAAM,CACpC,IAAIK,EAAI,IAAIC,MAAM,uBAAyBN,EAAM,KAEjD,MADAK,EAAEE,KAAO,mBACHF,CACP,CACA,OAAOP,EAAIE,EACZ,CACAD,EAAeS,KAAO,WACrB,OAAOC,OAAOD,KAAKV,EACpB,EACAC,EAAeW,QAAUR,EACzBS,EAAOC,QAAUb,EACjBA,EAAeE,GAAK,I,iBCxCpB,IAAIH,EAAM,CACT,gBAAiB,KACjB,2BAA4B,KAC5B,kBAAmB,KACnB,mBAAoB,KACpB,iBAAkB,KAClB,cAAe,KACf,mBAAoB,IACpB,+BAAgC,KAChC,eAAgB,KAChB,iBAAkB,KAClB,gBAAiB,IACjB,2BAA4B,KAC5B,eAAgB,KAChB,6BAA8B,KAC9B,mBAAoB,KACpB,eAAgB,KAChB,gBAAiB,KACjB,cAAe,KACf,eAAgB,KAChB,eAAgB,KAChB,gCAAiC,KACjC,sBAAuB,KACvB,kBAAmB,KACnB,qBAAsB,KACtB,iBAAkB,KAClB,mBAAoB,IACpB,gBAAiB,IACjB,eAAgB,KAChB,4BAA6B,KAC7B,iBAAkB,KAClB,gCAAiC,KACjC,kBAAmB,KACnB,oBAAqB,KACrB,aAAc,KACd,iBAAkB,KAClB,+BAAgC,KAChC,mBAAoB,KACpB,iBAAkB,IAClB,6BAA8B,KAC9B,mBAAoB,KACpB,eAAgB,KAChB,eAAgB,KAChB,qBAAsB,KACtB,gBAAiB,KACjB,uBAAwB,KACxB,cAAe,IACf,kBAAmB,KACnB,gBAAiB,KACjB,cAAe,KACf,gBAAiB,KACjB,eAAgB,KAChB,6BAA8B,KAC9B,iBAAkB,KAClB,aAAc,KACd,iBAAkB,KAClB,iBAAkB,KAClB,eAAgB,KAChB,eAAgB,KAChB,eAAgB,KAChB,mBAAoB,KACpB,eAAgB,KAChB,gBAAiB,KACjB,kBAAmB,KACnB,mBAAoB,KACpB,aAAc,IACd,sBAAuB,KACvB,gBAAiB,KACjB,iBAAkB,IAClB,gBAAiB,KACjB,+BAAgC,KAChC,6BAA8B,KAC9B,eAAgB,KAChB,kBAAmB,KACnB,cAAe,KACf,aAAc,KACd,aAAc,KACd,eAAgB,KAChB,oBAAqB,KACrB,eAAgB,KAChB,mBAAoB,KACpB,8BAA+B,KAC/B,eAAgB,KAChB,cAAe,KACf,8BAA+B,KAC/B,eAAgB,KAChB,uBAAwB,KACxB,gBAAiB,KACjB,iCAAkC,IAClC,iCAAkC,IAClC,sBAAuB,KACvB,iBAAkB,KAClB,kCAAmC,KACnC,YAAa,KACb,kBAAmB,KACnB,qBAAsB,KACtB,cAAe,KACf,gBAAiB,KACjB,eAAgB,KAChB,aAAc,KACd,cAAe,KACf,eAAgB,KAChB,eAAgB,KAChB,kBAAmB,KACnB,+BAAgC,KAChC,kBAAmB,KACnB,kBAAmB,IACnB,kBAAmB,KACnB,eAAgB,KAChB,gBAAiB,KACjB,oBAAqB,KACrB,iBAAkB,KAClB,mBAAoB,IACpB,mBAAoB,KACpB,sBAAuB,KACvB,eAAgB,KAChB,cAAe,KACf,eAAgB,KAChB,+BAAgC,KAChC,8BAA+B,KAC/B,mBAAoB,IACpB,eAAgB,IAChB,iBAAkB,KAClB,aAAc,KACd,kBAAmB,KACnB,+BAAgC,KAChC,eAAgB,KAChB,sBAAuB,KACvB,cAAe,KACf,iBAAkB,KAClB,YAAa,KACb,eAAgB,KAChB,qBAAsB,KACtB,iBAAkB,KAClB,iBAAkB,KAClB,oBAAqB,KACrB,kBAAmB,KACnB,+BAAgC,KAChC,eAAgB,KAChB,cAAe,KACf,qBAAsB,KACtB,aAAc,KACd,gBAAiB,KACjB,WAAY,KACZ,iBAAkB,KAClB,mBAAoB,KACpB,oBAAqB,KACrB,iBAAkB,KAClB,kBAAmB,IACnB,mBAAoB,KACpB,cAAe,KACf,qBAAsB,KACtB,oBAAqB,KACrB,gBAAiB,KACjB,sBAAuB,KACvB,aAAc,KACd,aAAc,KACd,eAAgB,KAChB,cAAe,KACf,kBAAmB,KACnB,eAAgB,KAChB,kBAAmB,KACnB,qBAAsB,KACtB,6BAA8B,KAC9B,iBAAkB,IAClB,8BAA+B,KAC/B,mBAAoB,KACpB,iBAAkB,KAClB,uBAAwB,KACxB,kBAAmB,KACnB,iBAAkB,IAClB,2BAA4B,KAC5B,eAAgB,KAChB,qBAAsB,KACtB,eAAgB,KAChB,gBAAiB,KACjB,+BAAgC,KAChC,sBAAuB,KACvB,YAAa,KACb,oCAAqC,KACrC,gBAAiB,KACjB,qBAAsB,KACtB,mBAAoB,KACpB,gBAAiB,KACjB,+BAAgC,KAChC,8BAA+B,KAC/B,cAAe,KACf,eAAgB,KAChB,kBAAmB,KACnB,iBAAkB,KAClB,+BAAgC,KAChC,mBAAoB,KACpB,qBAAsB,KACtB,kCAAmC,KACnC,oBAAqB,KACrB,eAAgB,KAChB,eAAgB,KAChB,eAAgB,KAChB,eAAgB,IAChB,oBAAqB,IACrB,cAAe,KACf,+BAAgC,KAChC,cAAe,KACf,UAAW,KACX,gBAAiB,MAIlB,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOG,EAAoBF,EAC5B,CACA,SAASC,EAAsBF,GAC9B,IAAIG,EAAoBC,EAAEN,EAAKE,GAAM,CACpC,IAAIK,EAAI,IAAIC,MAAM,uBAAyBN,EAAM,KAEjD,MADAK,EAAEE,KAAO,mBACHF,CACP,CACA,OAAOP,EAAIE,EACZ,CACAD,EAAeS,KAAO,WACrB,OAAOC,OAAOD,KAAKV,EACpB,EACAC,EAAeW,QAAUR,EACzBS,EAAOC,QAAUb,EACjBA,EAAeE,GAAK,I,kFC1MhB,OAA4B,OAAvBY,MAAM,YAAU,S,GA4BfZ,GAAG,W,uXAlDX,QAmDM,OAlDJA,GAAG,iBACF,QAAK,oBAAE,EAAAa,OAAA,EAAAA,SAAA,IACRC,SAAS,KACRF,OAAK,S,MAAiB,WAAS,Q,OAAuB,WAAS,WAI/DG,OAAK,S,gBAA2B,WAAS,W,QAA6B,WAAS,e,OAQxE,EAAAC,SAASC,YAAc,EAAAD,SAASC,WAAWC,MAAM,oB,WAFzD,QAMS,S,MALPlB,GAAG,aAEFmB,IAAK,EAAAH,SAASC,WACfG,SAAA,GACAC,KAAA,I,2BAGF,EAEc,EAAAC,QAAQC,Q,4BAAtB,QAAsC,YAEtB,EAAAD,QAAQC,SAAW,EAAAC,QAAQC,a,WAA3C,QAAkE,a,eAEtD,EAAAD,QAAkB,a,WAA9B,QAAuC,a,gBAEvC,QAAyB,IAEzB,QAAwB,GAAlBE,IAAI,QAAM,WAEhB,QAAgB,IAEhB,QAAe,IAEf,QAAc,IAEd,QAAkB,IAElB,QAAmB,IAEnB,QAAoB,IAEpB,QAAkB,IAElB,QAAa,IAEb,OAAwC,OAAxC,EAAmB,KAAC,QAAG,EAAAC,SAAO,I,6ECK1B,OAAmB,YAAb,UAAM,G,uBAeRf,MAAM,qB,mBAWNA,MAAM,qB,uLAjFhB,QAmGM,OAlGJZ,GAAG,aACHY,OAAK,SAAC,SAAQ,C,OACU,WAAS,S,UAA2B,UAAQ,Y,KAAyB,UAAQ,e,EAMrG,OAaK,MAbDA,OAAK,SAAC,SAAQ,SAAoB,EAAAU,QAAQC,W,gBAC5C,QAWU,mBAVkB,EAAAD,SAAO,CAAzBM,EAAQC,M,WADlB,QAWU,GATPC,IAAKD,EACLD,OAAQA,EACR,UAAO,GAAE,EAAAG,cAAcF,EAAOG,GAC9BpB,OAAK,S,KAAoB,KAAK,IAAI,OAAM,OAAM,cAAc,E,KAAuB,QAAI,E,KAAuB,QAAI,E,SAA2B,YAAQ,K,oDAWlJ,EAAAU,QAAc,S,WAFtB,QA2BM,O,MA1BJV,OAAK,SAAC,SAAQ,SAGK,EAAAqB,gBADnBP,IAAI,U,EAGJ,OAUK,WATS,EAAAF,QAAmB,c,WAA/B,QAAwD,SAAvB,uB,WAEjC,QAAgC,SAAnB,kBAEb,OAIO,QAJA,QAAK,8BAAO,EAAAU,cAAA,EAAAA,gBAAA,IAAY,Y,EAC7B,QAEE,GADCC,KAAI,OAAU,EAAAF,aAAe,eAAiB,gB,sBAKrD,OAQK,a,aAPH,QAMK,mBALa,EAAAG,WAATP,K,WADT,QAMK,MAJFC,IAAKD,EACL,QAAK,GAAE,EAAAQ,eAAuB,EAATR,I,EAEtB,QAAyC,GAAjCS,KAAM,EAAAC,OAAOV,EAAQ,I,uDAK0B,EAAAW,OAAa,S,WAA1E,QAyCM,O,MAzCD5B,OAAK,SAAC,SAAQ,SAAoB,EAAA6B,iB,EACrC,OAOK,WANH,GACA,OAIO,QAJA,QAAK,8BAAO,EAAAC,cAAA,EAAAA,gBAAA,IAAY,Y,EAC7B,QAEE,GADCP,KAAI,OAAU,EAAAM,aAAe,eAAiB,gB,sBAKrD,OA8BK,a,aA7BH,QA4BK,mBA3BqB,EAAAD,QAAM,CAAtBF,EAAMT,M,WADhB,QA4BK,MA1BFC,IAAKD,EACL,QAAK,GAAE,EAAAc,aAAad,I,CAIb,EAAAe,WAAWC,IAAIP,GAAMQ,OAAS,EAAA9B,SAAS+B,e,WAF/C,QASM,MATN,EASM,EALJ,OAA0C,mBAAnC,EAAAH,WAAWC,IAAIP,GAAMQ,OAAQ,IAAC,GAEzBR,EAAuB,qB,WAAnC,QAEO,kBADFA,EAAKU,oBAAkB,K,kCAMtB,EAAAJ,WAAWC,IAAIP,GAAMW,OAAS,EAAAjC,SAAS+B,e,WAF/C,QASM,MATN,EASM,EALJ,OAA0C,mBAAnC,EAAAH,WAAWC,IAAIP,GAAMW,OAAQ,IAAC,GAEzBX,EAAuB,qB,WAAnC,QAEO,kBADFA,EAAKY,oBAAkB,K,mCAI9B,QAA4B,GAApBZ,KAAMA,GAAI,kB,sCAKxB,QAA8D,GAA9C,eAAc,EAAAa,gBAAc,0BAE5C,QAAsD,GAA1C,eAAc,EAAAA,gBAAc,0B,kBC1EpCvC,MAAM,qB,mBASNA,MAAM,qB,aAiEHA,MAAM,U,SAUJA,MAAM,Y,SAMPA,MAAM,Q,iBA4EJA,MAAM,Q,GAId,OAA0B,QAApBA,MAAM,QAAM,S,GAAlB,G,GAEF,OAAuC,OAAlCA,MAAM,uBAAqB,S,oGApMlC,QAqMK,MArMAG,OAAK,QAAE,EAAAqC,O,EACV,OAuKM,OAtKJ1B,IAAI,SACJd,OAAK,SAAC,SAAQ,C,MACsB,SAAO,O,SAAwC,UAAQ,aAAe,UAAQ,wBAAsC,UAAQ,eAAiB,Q,UAA4B,SAAO,W,IAA2B,UAAQ,WAAa,SAAO,IAAM,SAAO,KAAO,UAAQ,S,aAA8C,UAAQ,aAAe,UAAQ,wBAAsC,UAAQ,MAAM,S,YAA+B,cAA+B,SAAO,KAAK,S,EAgBlf,OAAkD,OAA7CA,MAAM,SAAU,QAAK,eAAE,EAAAyC,mBAC5B,OAAgD,OAA3CzC,MAAM,OAAQ,QAAK,eAAE,EAAAyC,kBAIlB,EAAAT,WAAWC,IAAI,EAAAjB,QAAQkB,OAAS,EAAA9B,SAAS+B,e,WAFjD,QAQM,MARN,EAQM,EAJJ,OAA4C,mBAArC,EAAAH,WAAWC,IAAI,EAAAjB,QAAQkB,OAAQ,IAAC,GAC3B,EAAAlB,OAAOU,KAAuB,qB,WAA1C,QAES,kBADP,EAAAV,OAAOU,KAAKU,oBAAkB,K,kCAK1B,EAAAJ,WAAWC,IAAI,EAAAjB,QAAQqB,OAAS,EAAAjC,SAAS+B,e,WAFjD,QAQM,MARN,EAQM,EAJJ,OAA4C,mBAArC,EAAAH,WAAWC,IAAI,EAAAjB,QAAQqB,OAAQ,IAAC,GAC3B,EAAArB,OAAOU,KAAuB,qB,WAA1C,QAES,kBADP,EAAAV,OAAOU,KAAKY,oBAAkB,K,mCAIlC,QAGE,GAFCZ,KAAM,EAAAV,OAAOU,KACb,UAAQ,eAAE,EAAAgB,MAAM,UAAW,CAAC,oB,kBAI/B,OAEM,OAFD1C,MAAM,UAAW,QAAK,eAAE,EAAA2C,S,EAC3B,QAAoE,GAAjDpB,KAAK,aAAavB,MAAM,OAAO4C,MAAM,eAE1D,OAEM,OAFD5C,MAAM,UAAW,QAAK,eAAE,EAAA2C,S,EAC3B,QAAiE,GAA9CpB,KAAK,QAAQvB,MAAM,OAAO4C,MAAM,iBAErD,OAEM,OAFD5C,MAAM,UAAW,QAAK,eAAE,EAAA6C,W,EAC3B,QAAuE,GAApDtB,KAAK,eAAevB,MAAM,SAAS4C,MAAM,cAE9D,OAMM,OAND5C,MAAM,UAAW,QAAK,eAAE,EAAA8C,WAAW,EAAA9B,U,EACtC,QAIE,GAHAO,KAAK,eACLvB,MAAM,OACN4C,MAAM,mCAGV,OAMM,OAND5C,MAAM,UAAW,QAAK,eAAE,EAAA+C,WAAW,EAAA/B,U,EACtC,QAIE,GAHAO,KAAK,WACLvB,MAAM,OACN4C,MAAM,gCAGV,OAMM,OAND5C,MAAM,UAAW,QAAK,eAAE,EAAAgD,eAAe,EAAAhC,U,EAC1C,QAIE,GAHAO,KAAK,mBACLvB,MAAM,WACN4C,MAAM,2BAOF,EAAA5B,OAAO5B,IAAM,EAAAwB,QAAQqC,Y,WAF7B,QAKE,G,MAJA1B,KAAK,QAELvB,OAAK,SAAC,OAAM,WACS,EAAAY,QAAQsC,uB,oCAI/B,OAOM,OAPA,QAAK,eAAE,EAAAC,aAAa,cAAc,K,CAI9B,EAAAnC,OAAOoC,SAAW,EAAApC,OAAOqC,a,WAHjC,QAKE,G,MAJA9B,KAAK,WACLvB,MAAM,WAEN4C,MAAM,iB,kBAKV,OAEM,MAFN,EAEM,EADJ,QAAkC,GAAfrB,KAAK,aAE1B,OAUM,OATJvB,OAAK,SAAC,OAAM,QAEM,EAAAsD,cADjB,QAAK,iBAAE,EAAAA,YAAc,EAAAA,a,EAGtB,OAA8B,qBAArB,EAAAtC,OAAOuC,MAAI,GACuB,EAAAvC,OAAe,W,WAA1D,QAA8D,G,MAA3CO,KAAK,iB,eACI,EAAAP,OAAe,W,WAA3C,QAEM,MAFN,EAEM,EADJ,OAAkC,qBAAzB,EAAAA,OAAOwC,UAAQ,O,oBAI5B,QAsDa,MAtDDD,KAAK,QAAM,C,kBACrB,IAoDK,CApDkB,EAAU,a,WAAjC,QAoDK,KApDL,EAoDK,EAjDqB,UAAQ,aAA8B,UAAQ,aAAe,SAAO,KAAO,UAAQ,W,WAF3G,QAQK,M,MAPF,QAAK,sBAAE,EAAAE,gBAAA,EAAAA,kBAAA,K,EAMR,QAAuC,GAApBlC,KAAK,gB,QAAe,wB,eAExB,EAAAX,QAAQ8C,a,4BAAzB,QA6BW,eA5BT,OAEK,MAFA,QAAK,sBAAE,EAAAC,YAAA,EAAAA,cAAA,K,EACV,QAAsC,GAAnBpC,KAAK,e,QAAc,cAExC,OAGK,MAHA,QAAK,iBAAE,EAAAwB,cAAe/C,OAAK,kBAAc,EAAAY,QAAQgD,c,EACpD,QAAqC,GAAlBrC,KAAK,c,QAAa,kB,IAGvC,OAGK,MAHA,QAAK,iBAAE,EAAAuB,cAAe9C,OAAK,kBAAc,EAAAY,QAAQgD,c,EACpD,QAAyC,GAAtBrC,KAAK,kB,QAAiB,iB,IAG3C,OAGK,MAHA,QAAK,sBAAE,EAAAsC,cAAA,EAAAA,gBAAA,IAAe7D,OAAK,kBAAc,EAAAY,QAAQgD,c,EACpD,QAAyC,GAAtBrC,KAAK,kB,QAAiB,a,GAKnC,EAAAP,OAAO5B,IAAM,EAAAwB,QAAQqC,Y,WAF7B,QAMK,M,MALF,QAAK,iBAAE,EAAAE,aAAa,KAAM,IAAI,K,EAG/B,QAAkC,GAAf5B,KAAK,W,QAAU,oB,eAGnB,EAAAX,QAAQC,Y,4BACvB,QAGK,M,MAHA,QAAK,iBAAE,EAAAmC,mB,EACV,QAA6C,GAA1BzB,KAAK,sB,QAAqB,oB,KAO3C,EAAAX,QAAmB,c,WAF3B,QAWK,M,MAVF,QAAK,sBAAE,EAAAkD,WAAA,EAAAA,aAAA,IAEP9D,OAAK,kBAAc,EAAAgB,OAAO5B,IAAM,EAAA4B,OAAO5B,KAAO,EAAAwB,QAAQmD,Y,EAEvD,QAAkC,GAAfxC,KAAK,UACP,EAAAP,OAAO5B,GACH,EAAA4B,OAAO5B,KAAO,EAAAwB,QAAQmD,W,WAA3C,QAEW,e,QAF0C,kB,kBAGrD,QAA0C,e,QAAzB,mB,kBAJjB,QAAmD,e,QAAvB,iB,0DAUpB,EAAA/C,OAAgB,Y,aAC9B,QAoBM,sBAjBe,EAAAA,OAAOgD,WAAnBC,K,WAHT,QAoBM,OAnBJjE,OAAK,SAAC,WAAU,CAGPiE,EAASvC,QAFjBR,IAAK+C,EAASvC,KAAO,IAAMuC,EAASV,KAGpC,QAAK,GAAE,EAAAW,eAAeD,I,EAEvB,OAWQ,QAVNjE,MAAM,OACLG,OAAK,S,uBAAuD,EAAS,OAAS,WAAS,aAA+B,EAAS,MAAwB,QAAO,MAA2C,EAAS,UAAY,EAAS,M,uBAU1O,OAA6C,OAA7C,GAA6C,QAAvB8D,EAASV,MAAI,I,gCAGvC,OAEM,OAFDvD,MAAM,eAAgB,QAAK,iBAAE,EAAA0C,MAAM,UAAW,CAAC,wB,GAGpD,G,wECtLE1C,MAAM,a,SAKNA,MAAM,c,SAMFA,MAAM,e,GAEPmE,QAAQ,cAAcnE,MAAM,Q,UAC/B,OAIE,QAHAoE,EAAE,oCACFhF,GAAG,QACHiF,KAAK,e,8BAUK,aAAW,U,SAMpBrE,MAAM,W,0CA/Cb,QAgDM,OAhDDA,OAAK,SAAC,QAAO,CAA2B,EAAA0B,KAAKtC,MAA9B,QAAK,oBAAE,EAAAkF,SAAA,EAAAA,WAAA,K,CAGjB,EAAA5C,KAAO,K,WAFf,QAUQ,Q,MATN1B,MAAM,OAELG,OAAK,S,uBAA+C,OAAK,OAAS,WAAS,aAA2B,OAAK,MAAoB,QAAO,MAAuB,OAAK,UAAY,OAAK,IAAE,c,yBAWhL,EAAAuB,KAAK6C,YAAc,EAAA7C,KAAKU,qB,WAFhC,QAGQ,OAHR,K,eAOQ,EAAAV,KAAK8C,YAAc,EAAA9C,KAAKY,qB,WAFhC,QAGQ,OAHR,K,eAKY,EAAc,iB,WAA1B,QAA0E,Q,MAA7CtC,OAAK,oBAAgB,EAAAyE,kB,yBAElB,EAAA/C,KAAU,Q,WAA1C,QAAmD,OAAnD,K,4BAEA,QAgBM,MAhBN,EAgBM,CAfJ,GAMA,OAQO,QAPLgD,MAAM,MACNC,EAAE,QACF,cAAY,SACZ3E,MAAM,gBACL,YAAW,EAAA4E,eAAe,EAAAlD,KAAK6B,O,EAEhC,OAAwD,WAAxD,GAAwD,QAAvB,EAAA7B,KAAK6B,MAAI,I,SAI9C,OAA2E,OAAtEvD,OAAK,SAAC,UAAS,YAAqB,EAAA0B,KAAKmD,UAAW,EAAAnD,KAAKoD,S,QAEnC,EAAApD,KAAY,U,WAAvC,QAAiE,MAAjE,GAAiE,QAArB,EAAAA,KAAKqD,SAAO,K,mBAO5D,SACExB,KAAM,QACNyB,MAAO,CACLtD,KAAM,CACJuD,KAAMrF,OACNsF,QAAS,KAAM,CAAG,KAGtBC,SAAU,CACRV,eAAgB,WACd,OACGW,KAAK1D,KAAKsC,WAAa,IAAIrD,QAC3ByE,KAAK1D,KAAK2D,iBAAmB,IAAI1E,MAEtC,MACG,QAAS,CAAC,cAEf2E,OACE,MAAO,CAAC,CACV,EACAC,QAAS,CACPX,eAAerB,GACb,OAAIA,GAAQA,EAAK5C,OAAS,GAAW,MACjC4C,GAAQA,EAAK5C,OAAS,GAAW,MAC9B,MACT,EACA2D,UACEc,KAAK1C,MAAM,WACb,I,cC5EJ,MAAM8C,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAAS,GAAQ,CAAC,YAAY,qBAEzF,IFoMA,GACEC,WAAY,CACVC,MAAK,GAEPV,MAAO,CACLhE,OAAQ,CACNiE,KAAMrF,OACN+F,UAAU,IAGdR,SAAU,KACL,QAAS,UAAW,CAAC,gBACrB,QAAS,CAAC,WAAY,gBACtB,QAAW,CAAEnD,WAAY,uBAC5Bf,MAAO,WACL,OAAOmE,KAAK1E,QAAQkF,QAAQR,KAAKpE,OACnC,EACA6E,WAAY,WACV,MAAMjF,EAAUwE,KAAKxE,QACfF,EAAU0E,KAAK1E,QAAQC,OAC7B,IAAKC,EAAQC,WAAY,OAAO,EAChC,MAAMiF,GACHV,KAAKnE,MAAQ,EAAIP,EAAUE,EAAQC,WAAW,IAAMH,EACvD,OAAOoF,EAAgBlF,EAAQgD,WAAa,CAC9C,EACApB,KAAM,WACJ,MAAMuD,EAAOC,OAAOC,WAAaD,OAAOE,YAAc,KAAO,KAC7D,OAAId,KAAK1E,QAAQC,OAAS,EACjB,CAAE+D,MAAO,GAAKU,KAAKhF,SAASoC,KAAOuD,GACjCX,KAAK1E,QAAQC,QAAU,GACzB,CAAE+D,MAAO,GAAKU,KAAKhF,SAASoC,KAAOuD,GACjCX,KAAK1E,QAAQC,QAAU,GACzB,CAAE+D,MAAO,GAAKU,KAAKhF,SAASoC,KAAOuD,GAEnC,CAAErB,MAAO,GAAKU,KAAKhF,SAASoC,KAAOuD,EAE9C,GAEFT,OACE,MAAO,CACLhC,YAAY,EACZ6C,QAAQ,EAEZ,EACAZ,QAAS,CACP9B,iBACE,GAAI2B,KAAKxE,QAAQ8C,aAAe0B,KAAKpE,OAAO5B,KAAOgG,KAAKxE,QAAQmD,SAC9D,OACF,MAAMP,EAAW4C,OAAO,kBAAmBhB,KAAKpE,OAAOwC,UAEtC,OAAbA,GACF4B,KAAKjC,aAAa,WAAYK,GAAU,EAE5C,EACAf,eACM2C,KAAKhF,SAASiG,SACXjB,KAAKpE,OAAOoC,OAKNgC,KAAKpE,OAAOqC,YACrB+B,KAAKjC,aAAa,cAAc,GAChCiC,KAAKjC,aAAa,UAAU,IAE5BiC,KAAKjC,aAAa,cAAc,IARhCiC,KAAKjC,aAAa,UAAU,GACxBiC,KAAKpE,OAAOsF,UACdlB,KAAKjC,aAAa,YAAY,KASlCiC,KAAKjC,aAAa,UAAWiC,KAAKpE,OAAOoC,QACrCgC,KAAKpE,OAAOsF,UACdlB,KAAKjC,aAAa,YAAY,GAE5BiC,KAAKpE,OAAOqC,YACd+B,KAAKjC,aAAa,cAAc,GAGtC,EACAQ,aACE,GAAIyB,KAAKxE,QAAQ8C,YAAa,OAC9B,MAAMH,EAAO6C,OAAO,cAAehB,KAAKpE,OAAOuC,OAAS6B,KAAKpE,OAAOuC,KACpE6B,KAAKjC,aAAa,OAAQI,GAAM,EAClC,EACAW,eAAeD,GACb,MAAMD,EAAY,IAAIoB,KAAKpE,OAAOgD,WAClCA,EAAUuC,OAAOnB,KAAKpE,OAAOgD,UAAU4B,QAAQ3B,GAAW,GAC1DmB,KAAKjC,aAAa,YAAaa,GAAW,EAC5C,EACAb,aAAaqD,EAAUC,EAAOC,GAAY,GAEtCtB,KAAKxE,QAAQ8C,aACA,cAAb8C,GACa,aAAbA,IAGFpB,KAAKuB,OAAOC,OAAO,iBAAkB,CACnC5F,OAAQoE,KAAKpE,OACbwF,WACAC,UAEEC,IACFtB,KAAK9B,YAAa,GAEtB,EACAO,eACEuB,KAAK9B,YAAa,EAClB8B,KAAK1C,MAAM,UAAW,CAAC,gBACzB,EACAI,WAAW9B,GACToE,KAAK9B,YAAa,EAClB8B,KAAK1C,MAAM,UAAW,CAAC,aAAc1B,GACvC,EACA+B,WAAW/B,GACToE,KAAK9B,YAAa,EAClB8B,KAAK1C,MAAM,UAAW,CAAC,aAAc1B,GACvC,EACAgC,eAAehC,GACboE,KAAK9B,YAAa,EAClB8B,KAAK1C,MAAM,UAAW,CAAC,iBAAkB1B,GAC3C,EACA6B,SACEuC,KAAK1C,MAAM,UAAW,CAAC,UACzB,EACAoB,YACEsB,KAAK9B,YAAa,EAClB8B,KAAK1C,MAAM,UAAW,CAAC,aACzB,EAIAC,OACMyC,KAAKxE,QAAQ8C,aACZ0B,KAAKS,YACVT,KAAKuB,OAAOC,OAAO,mBAAoB,CACrCxB,KAAKnE,OACJmE,KAAKxE,QAAQiG,MAAMzB,KAAKnE,QAE7B,IG9UE,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAAS,KAEpE,I,gECJI,OAAiC,UAA7B,4BAAwB,K,IACxBjB,MAAM,a,mBAoBAA,MAAM,Q,0DAxBV,EAAA8G,OAAO7C,UAAY,EAAA8C,mBAAmBpG,QAAU,EAAAD,QAAQ,EAAAsG,e,WADhE,QA4BQ,G,MA1BL,QAAK,eAAE,EAAAC,YAAY,c,mBAEpB,IAAiC,CAAjC,GACA,OAsBK,KAtBL,GAsBK,G,aArBH,QAoBK,mBAnBgB,EAAAF,oBAAZ9C,K,WADT,QAoBK,MAlBHjE,OAAK,SAAC,WAAU,CACPiE,EAASvC,QACjBR,IAAK+C,EAASvC,KAAO,IAAMuC,EAASV,KACpC,QAAK,GAAE,EAAA2D,YAAYjD,I,EAEpB,OAWQ,QAVNjE,MAAM,OACLG,OAAK,S,uBAAuD,EAAS,OAAS,WAAS,aAA+B,EAAS,MAAwB,QAAO,MAA8C,EAAS,UAAY,EAAS,M,uBAU7O,OAA6C,OAA7C,IAA6C,QAAvB8D,EAASV,MAAI,I,sDCf9BvD,MAAM,qB,IAiBNA,MAAM,Q,iFA3BjB,QAgCa,MAhCDuD,KAAK,cAAY,C,kBAC3B,IA8BM,EA9BN,OA8BM,OA9BDvD,MAAM,iBAAkB,QAAK,oBAAE,EAAAmH,OAAA,EAAAA,SAAA,K,EAClC,OA4BM,OA3BJnH,OAAK,SAAC,QAAO,WACQ,EAAAoH,eACrB1F,KAAK,SACL,kBAAgB,aAChB,mBAAiB,mBAChB,QAAK,sBAAN,QAAc,Y,EAEd,OAgBM,MAhBN,GAgBM,EAfJ,OAWM,OAVH,QAAK,eAAE,EAAA0F,aAAe,EAAAA,aACvBjH,MAAA,0B,EAEA,QAME,GALAH,MAAM,mBACLuB,KAAI,C,MAA2C,cAAW,sC,oBAM/D,OAEM,OAFA,QAAK,oBAAE,EAAA4F,OAAA,EAAAA,SAAA,IAAOhH,MAAA,0B,EAClB,QAAkE,GAA/CH,MAAM,mBAAmBuB,KAAK,sBAGrD,OAEM,MAFN,GAEM,EADJ,QAAa,uB,cAQvB,UACE8F,MAAO,CAAC,SACR/B,KAAM,WACJ,MAAO,CACL8B,aAAa,EAEjB,EACA7B,QAAS,CACP4B,QACE/B,KAAK1C,MAAM,QACb,ICxCE,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,MFgCM4E,GACJ,EAAGlI,KAAImI,QAAOC,cACbjE,IAAS,CACR7B,KAAMtC,EACNmI,QACAC,WACAjE,SAGJ,IACEkC,WAAY,CAAEgC,MAAK,IACnBzC,MAAO,CAAC,eACRG,SAAU,CACR4B,qBACE,IAAI/C,EAAY,GAChB,MAAM,QAAEtD,EAAO,OAAEiB,GAAWyD,KAAKuB,OAAOe,MAAMhH,QA0C9C,OAzCA0E,KAAKuB,OAAOe,MAAMC,MAAMC,SAASlG,KAE3BhB,EAAQmH,MAAMC,GAAMA,EAAEpG,KAAKtC,KAAOsC,EAAKtC,MAIlCuC,EAAOkG,MAAME,GAAUA,EAAM3I,KAAOsC,EAAKtC,QAHhD4E,EAAY,IAAIA,KAActC,EAAKsC,UAAU/E,IAAIqI,GAAY5F,MAO3DA,EAAK2D,iBAAmB3D,EAAK2D,gBAAgB1E,SAC/CqD,EAAY,IACPA,KACAtC,EAAK2D,gBAAgBpG,IAAIqI,GAAY5F,KAE5C,IAGF0D,KAAKuB,OAAOe,MAAMhH,QAAQkB,OAAOgG,SAASlG,IACxCsC,EAAY,IAAIA,KAActC,EAAKsC,UAAU/E,IAAIqI,GAAY5F,IAAO,IAItE0D,KAAKuB,OAAOe,MAAMM,eAAeJ,SAASlG,IACpChB,EAAQmH,MAAMC,GAAMA,EAAEpG,KAAKtC,KAAOsC,EAAKtC,OACzC4E,EAAY,IAAIA,KAActC,EAAKsC,UAAU/E,IAAIqI,GAAY5F,KAC/D,IAIF0D,KAAKuB,OAAOe,MAAMO,WAAWL,SAASlG,KAChChB,EAAQmH,MAAMC,GAAMA,EAAEpG,KAAKtC,KAAOsC,EAAKtC,MAEhCuC,EAAOkG,MAAME,GAAUA,EAAM3I,KAAOsC,EAAKtC,QADlD4E,EAAY,IAAIA,KAActC,EAAKsC,UAAU/E,IAAIqI,GAAY5F,KAG/D,IAGFsC,EAAUkE,KAAK,CAAExG,KAAM,OAAQ6B,KAAM,SACrCS,EAAUkE,KAAK,CAAExG,KAAM,OAAQ6B,KAAM,SACrCS,EAAUkE,KAAK,CAAExG,KAAM,SAAU6B,KAAM,gBAChCS,CACT,MACG,QAAS,CAAC,SAAU,iBACpB,QAAS,UAAW,CAAC,aAE1BuB,QAAS,CACP2B,YAAYjD,GACV,MAAMjD,EAASoE,KAAKuB,OAAOe,MAAMhH,QAAQA,QAAQ0E,KAAK4B,aACtD,IAAIP,EACJ,GAAsB,WAAlBxC,EAASvC,KAAmB,CAC9B,MAAM6B,EAAO6C,OAAO,8BACpB,IAAK7C,EAAM,OACXkD,EAAQ,IAAIzF,EAAOgD,UAAW,CAAEtC,KAAM,SAAU6B,QAClD,MACEkD,EAAQ,IAAIzF,EAAOgD,UAAWC,GAEhCmB,KAAKuB,OAAOC,OAAO,iBAAkB,CACnC5F,SACAwF,SAAU,YACVC,UAEFrB,KAAKuB,OAAOC,OAAO,cAAe,WACpC,MACG,QAAa,CAAC,kBGlHf,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,M,8ECIM,OAAwC,YAAlC,+BAA2B,K,UAG/B5G,MAAM,U,yBAWRA,MAAM,U,yBAaNA,MAAM,U,yBAaNA,MAAM,gB,kGApDG,EAAA8G,OAAOpF,MAAQ,EAAAyG,eAAexH,S,WAA3C,QAsEQ,G,MAtE4C,QAAO,EAAAwG,O,mBACzD,IAOK,EAPL,OAOK,UAPD,gCAEF,QACE,EAAAH,aAAe,GAAK,EAAAtG,QAAQC,OAAmB,UAAQ,eAAa,K,eAMhE,EAAAiB,OAAOwG,MAAMC,GAAe,YAATA,EAAEjJ,MAA6B,iBAAR,EAAAkJ,M,WADlD,QAKM,UAFJ,I,SACA,OAAsC,SAA/BrD,KAAK,O,qCAAgB,EAAM,W,iBAAN,EAAAsD,c,eAEL,EAAAC,cAAc7H,OAAS,I,WAAhD,QASK,KATL,GASK,G,aARH,QAOK,mBANY,EAAA6H,cAAcC,MAAM,EAAG,KAA/B/G,K,WADT,QAOK,MALF1B,OAAK,SAAG0B,EAAKoD,OACb5D,IAAKQ,EAAKtC,GACV,QAAK,GAAE,EAAAkF,QAAQ5C,I,EAEhB,QAAsB,GAAdA,KAAMA,GAAI,kB,mCAKN,iBAAR,EAAA4G,MAA2B,EAAAN,eAAerH,OAAS,I,WAF3D,QAYK,KAZL,GAYK,G,aARH,QAOK,mBANY,EAAAwH,gBAARzG,K,WADT,QAOK,MALF1B,OAAK,SAAG0B,EAAKoD,OACb5D,IAAKQ,EAAKtC,GACV,QAAK,GAAE,EAAAkF,QAAQ5C,I,EAEhB,QAAsB,GAAdA,KAAMA,GAAI,kB,mCAKN,mBAAR,EAAA4G,KAA4B,EAAAN,eAAerH,OAAS,I,WAF5D,QAYK,KAZL,GAYK,G,aARH,QAOK,mBANY,EAAAqH,gBAARtG,K,WADT,QAOK,MALF1B,OAAK,SAAG0B,EAAKoD,OACb5D,IAAKQ,EAAKtC,GACV,QAAK,GAAE,EAAAkF,QAAQ5C,I,EAEhB,QAAsB,GAAdA,KAAMA,GAAI,kB,mCAKL,eAAW,GAAS,iBAAe,OAAM,IAAS,UAAQ,c,WAF3E,QAkBM,MAlBN,GAkBM,EAZJ,OAKC,QAJC1B,OAAK,SAAC,SAAQ,WACe,iBAAR,EAAAsI,OACpB,QAAK,eAAE,EAAAA,IAAM,iBACb,gBAAa,IAEhB,OAKC,QAJCtI,OAAK,SAAC,SAAQ,WACe,mBAAR,EAAAsI,OACpB,QAAK,eAAE,EAAAA,IAAM,mBACb,kBAAe,O,uDAWxB,UACE7C,WAAY,CAAEC,MAAK,EAAE+B,MAAK,IAC1BzC,MAAO,CAAC,eACRG,SAAU,CACRqD,gBACE,GAAoB,KAAhBpD,KAAKmD,OACP,MAAO,GAET,IAAIC,EAAgBpD,KAAK6C,WAAWM,QAAQ7G,GACnCA,EAAK6B,KAAKmF,cAAcC,SAASvD,KAAKmD,OAAOG,iBAEtD,OAAOF,CACT,EACAL,iBACE,MAAMA,EAAiB,GACjBzH,EAAU0E,KAAKuB,OAAOe,MAAMhH,QAAQA,QAY1C,OAXA0E,KAAKuB,OAAOe,MAAMC,MAAMC,SAASlG,KAG7B0D,KAAK4B,aAAe,GACnB5B,KAAK4B,YAAc,IACjBtG,EAAQmH,MAAM7G,GAAWA,EAAOU,KAAKtC,KAAOsC,EAAKtC,OAEpD+I,EAAeD,KAAKxG,EACtB,IAEFyG,EAAeD,KAAK,CAAC,GACdC,CACT,MACG,QAAS,CAAC,SAAU,QAAS,gBAC7B,QAAS,UAAW,CAAC,UAAW,eAChC,QAAS,CAAC,uBACV,QAAS,CAAC,gBAEf7C,OACE,MAAO,CACLgD,IAAK,eACLC,OAAQ,GAEZ,EACAhD,QAAS,CACPjB,QAAQ5C,GACN,GAAI0D,KAAK4B,YAAc,EAErB5B,KAAKuB,OAAOC,OAAO,mBAAoB,CACrC3F,OAA2B,EAApBmE,KAAK4B,YAAmB,EAC/BtF,aAEG,CACL,GAAI0D,KAAKxE,QAAQ8C,aAA6B,aAAdhC,EAAKoD,KAAqB,OAE1D,MAAM9D,EAASoE,KAAKuB,OAAOe,MAAMhH,QAAQA,QAAQ0E,KAAK4B,aACtD5B,KAAKuB,OAAOC,OAAO,iBAAkB,CACnC5F,SACAwF,SAAU,OACVC,MAAO/E,GAEX,CACA0D,KAAKkD,IAAM,eACXlD,KAAKuB,OAAOC,OAAO,cAAe,OACpC,EACAO,QACE/B,KAAKkD,IAAM,eACXlD,KAAKmD,OAAS,GACdnD,KAAK6B,YAAY,OACnB,MACG,QAAa,CAAC,kBC1If,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,MVqGA,IACExB,WAAY,CACVmD,OAAM,EACNlD,MAAK,EACLmD,UAAS,GACTC,cAAa,IAEf3D,SAAU,KACL,QAAW,CAAEnD,WAAY,2BACzB,QAAS,CAAC,WAAY,QAAS,gBAC/B,QAAS,UAAW,CAAC,UAAW,SAAU,YAE/CsD,OACE,MAAO,CACL/C,eAAgB,EAChBf,UAAW,EACXuH,MAAO,EACPC,MAAO,EACPC,UAAW,EACX5H,cAAc,EACdQ,cAAc,EAElB,EACA0D,QAAS,CACPjE,eACE8D,KAAK/D,cAAgB+D,KAAK/D,YAC5B,EACAS,eACEsD,KAAKvD,cAAgBuD,KAAKvD,YAC5B,EACAE,aAAad,GACPmE,KAAKxE,QAAQ8C,aACjB0B,KAAKuB,OAAOC,OAAO,oBAAqB,CAAE3F,SAC5C,EACAE,cAAc6F,GAAckC,EAAQC,IACN,oBAAjB/D,KAAK8D,IACd9D,KAAK8D,GAAQlC,EAAamC,EAE9B,EACArF,UAAUkD,GACH5B,KAAKxE,QAAQ8C,cACd0B,KAAKxE,QAAQmD,WAAaqB,KAAK1E,QAAQsG,GAAa5H,GACtDgG,KAAKuB,OAAOC,OAAO,qBAAsB,GAEzCxB,KAAKuB,OAAOC,OAAO,oBAAqBI,GAE5C,EACAoC,kBAAkBpC,GAChB5B,KAAK7C,eAAiByE,EACtB5B,KAAKuB,OAAOC,OAAO,cAAe,WACpC,EACAnF,cAAcuF,GACZ,MAAMhG,EAASoE,KAAK1E,QAAQsG,GACxB5B,KAAKxE,QAAQ8C,aAAe1C,GAA+B,aAArBA,EAAOU,KAAKoD,OAEtDM,KAAK7C,eAAiByE,EACtB5B,KAAKuB,OAAOC,OAAO,cAAe,QACpC,EACA/C,aAAamD,GACX,IAAI5B,KAAKxE,QAAQ8C,cAAe0B,KAAKxE,QAAQgD,YAE3CyF,QACE,gCAAgCjE,KAAK1E,QAAQsG,GAAazD,SAE5D,CACA,MAAM,WAAE1C,GAAeuE,KAAKxE,QACxBC,IACEA,EAAW8H,SAAS3B,GAEtB5B,KAAKuB,OAAOC,OAAO,uBAEnB/F,EAAW,GAAKmG,GAChBnG,EAAW,GAAKmG,IAGhB5B,KAAKuB,OAAOC,OAAO,wBAAyB,CAC1C/F,EAAW,GAAKmG,EAAcnG,EAAW,GAAK,EAAIA,EAAW,GAC7DA,EAAW,GAAKmG,EAAcnG,EAAW,GAAK,EAAIA,EAAW,MAInEuE,KAAKuB,OAAOC,OAAO,iBAAkBI,EACvC,CACF,EACAlE,WAAWwG,EAAMC,GACf,IAAInE,KAAKxE,QAAQ8C,cAAe0B,KAAKxE,QAAQgD,WAC7C,QAAW4F,IAAPD,EACFnE,KAAKvC,SACLuC,KAAK2D,KAAOO,MACP,CACL,GAAIlE,KAAKxE,QAAQC,WAAY,CAE3B,MAAM4I,EAASrE,KAAK1E,QAAQkF,QAAQ2D,GAC9BG,EAAoBtE,KAAKxE,QAAQC,WAAW5B,KAAK0K,GACjDA,IAAQvE,KAAK2D,KAAaU,EAC1BE,IAAQF,EAAerE,KAAK2D,KACzBY,IAGPvE,KAAKxE,QAAQC,WAAW,KAAO6I,EAAkB,IACjDtE,KAAKxE,QAAQC,WAAW,KAAO6I,EAAkB,IAEjDtE,KAAKuB,OAAOC,OAAO,wBAAyB8C,EAEhD,CACAtE,KAAKuB,OAAOC,OAAO,eAAgB,CACjCxB,KAAK2D,KACL3D,KAAK1E,QAAQkF,QAAQ2D,KAEvBnE,KAAKvC,QACP,CACF,EACAE,WAAWuG,EAAMC,GACf,IAAInE,KAAKxE,QAAQ8C,cAAe0B,KAAKxE,QAAQgD,WAC7C,QAAW4F,IAAPD,EACFnE,KAAKvC,SACLuC,KAAK4D,KAAOM,MACP,CACL,GAAIlE,KAAKxE,QAAQC,WAAY,CAE3B,MAAM+I,EAASxE,KAAK1E,QAAQkF,QAAQ2D,GAC9BG,EAAoBtE,KAAKxE,QAAQC,WAAW5B,KAAK0K,GACjDA,IAAQvE,KAAK4D,KAAaY,EAC1BD,EAAMvE,KAAK4D,MAAQW,GAAOC,EAAeD,EAAM,EAC/CA,EAAMvE,KAAK4D,MAAQW,GAAOC,EAAeD,EAAM,EAC5CA,IAGPvE,KAAKxE,QAAQC,WAAW,KAAO6I,EAAkB,IACjDtE,KAAKxE,QAAQC,WAAW,KAAO6I,EAAkB,IAEjDtE,KAAKuB,OAAOC,OAAO,wBAAyB8C,EAEhD,CACAtE,KAAKuB,OAAOC,OAAO,eAAgB,CACjCxB,KAAK4D,KACL5D,KAAK1E,QAAQkF,QAAQ2D,KAEvBnE,KAAKvC,QACP,CACF,EACAG,eAAesG,EAAMC,GACnB,IAAInE,KAAKxE,QAAQ8C,cAAe0B,KAAKxE,QAAQgD,WAC7C,QAAW4F,IAAPD,EACFnE,KAAKvC,SACDyG,IAASlE,KAAK6D,WAChB7D,KAAK6D,SAAWK,OAEb,CACL,MAAMzI,EAAa,CAACuE,KAAK6D,SAAU7D,KAAK1E,QAAQkF,QAAQ2D,IACxDnE,KAAKuB,OAAOC,OAAO,qBAAsB,CAAE/F,eAC3CuE,KAAKvC,QACP,CACF,EACAA,SACEuC,KAAK4D,MAAQ,EACb5D,KAAK2D,MAAQ,EACb3D,KAAK6D,UAAY,CACnB,IWrQE,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,KAEpE,M,ICPMjJ,MAAM,Q,qBAoBAA,MAAM,Q,kHApBhB,QAgGK,KAhGL,GAgGK,EA9FH,OAUM,MATJA,OAAK,SAAC,UAAS,YACO,EAAA6E,QAAQzF,MAC7Be,OAAK,S,uBAA+C,UAAQ,MAAQ,WAAS,aAA2B,UAAQ,KAAmB,QAAO,KAAyB,UAAQ,GAAE,c,QAStK,EAAAO,QAAQC,OAAS,EAAAkJ,MAAMC,SAAW,I,WAA5C,QAEK,QAF0C,gC,gBAI/C,OAwBK,WAtBuB,EAAAjF,QAAQkF,Y,4BAAlC,QAEO,OAFP,IAEO,QADD,EAAAlF,QAAQtB,MAAO,KAAC,QAAG,EAAAsB,QAAQmF,OAAS,MAAQ,EAAAnF,QAAQmF,OAAS,IAAH,KAGhE,OAIO,c,iBAHD,EAAAtJ,QAAQC,QAAS,IACrB,YAAkD,GAA/BX,MAAM,UAAUuB,KAAK,aAI1C,OAIO,c,iBAHD,EAAAsI,MAAMI,OAAQ,IAClB,YAAoD,GAAjCjK,MAAM,QAAQuB,KAAK,iBAIxC,OAIO,c,iBAHD,EAAAsI,MAAMhD,OAAQ,IAClB,YAAmD,GAAhC7G,MAAM,QAAQuB,KAAK,iBAMhC,EAAAb,QAAQC,OAAS,EAAAkJ,MAAMC,UAAY,I,WAA7C,QAkDK,UAhDH,OAIO,c,iBAHD,EAAAD,MAAMK,WAAY,IACtB,YAA2D,GAAxClK,MAAM,YAAYuB,KAAK,oBAI5C,OAOO,c,iBAND,EAAAsI,MAAMM,UAAW,IACrB,YAGE,GAFAnK,MAAM,WACLuB,KAAM,EAAAsI,MAAMM,SAAW,EAAI,eAAiB,Q,oBAKjD,OAOO,c,iBAND,EAAAN,MAAMO,QAAS,IACnB,YAGE,GAFApK,MAAM,SACLuB,KAAM,EAAAsI,MAAMO,OAAS,EAAI,eAAiB,Q,oBAK/C,OAOO,c,iBAND,EAAAP,MAAMQ,OAAQ,IAClB,YAGE,GAFArK,MAAM,QACLuB,KAAM,EAAAsI,MAAMQ,MAAQ,EAAI,eAAiB,Q,mBAKlC,EAAAR,MAAc,W,WAA1B,QAOO,Y,iBAND,EAAAA,MAAMC,UAAW,IACrB,YAGE,GAFA9J,MAAM,WACLuB,KAAM,EAAAsI,MAAMC,SAAW,EAAI,eAAiB,Q,oCAKrC,EAAA1J,SAAgB,U,WAA5B,QAIO,Y,QAJuB,kBAE5B,QAAmD,GAA/BmB,KAAM,CAAC,MAAO,oB,mmBAc1C,IACE4D,SAAU,CACR0E,MAAO,WACL,MAAM,QAAEnJ,GAAY0E,KAAKuB,OAAOe,MAAMhH,QAChC4J,EAAelF,KAAKuB,OAAO4D,QAAQ,wBACnCN,EAAQvJ,EAAQ6H,QAAQvH,IAA6B,IAAlBA,EAAOoC,SAAiBzC,OACjE,MAAO,IACF,GAAS2J,EAAe,GAC3BR,SAAUpJ,EAAQC,OAAS2J,EAC3BL,QACApD,MACEoD,EACAvJ,EAAQ6H,QACLvH,IAA6B,IAAlBA,EAAOoC,SAAyC,IAAtBpC,EAAOqC,aAC7C1C,OAER,MACG,QAAS,CAAC,UAAW,iBACrB,QAAS,UAAW,CAAC,cCrHtB,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,M,2DCROvB,GAAG,Y,sCAqDA,OAAkC,MAA9BY,MAAM,YAAW,YAAQ,K,YAI3B,OAAY,UAAR,OAAG,K,YAKP,OAAY,UAAR,OAAG,K,uBA8BP,OAAiC,aAA1B,sBAAkB,K,UA2BvBA,MAAM,Y,UAGNA,MAAM,Y,YAEmC,OAAY,UAAR,OAAG,K,YACZ,OAAY,UAAR,OAAG,K,uBAmB/B,OAAY,UAAR,OAAG,K,YAWvB,OAAiC,MAA7BA,MAAM,YAAW,WAAO,K,YACyB,OAAY,UAAR,OAAG,K,YAa5D,OAAoC,MAAhCA,MAAM,YAAW,cAAU,K,YAG7B,OAAY,UAAR,OAAG,K,YAOP,OAAY,UAAR,OAAG,K,YAcT,OAA8B,MAA1BA,MAAM,YAAW,QAAI,K,YAGvB,OAAY,UAAR,OAAG,K,YAIP,OAAY,UAAR,OAAG,K,YAOP,OAEI,KAFDwK,KAAK,gCAAgCC,OAAO,UAAS,kBAExD,K,IAEKD,KAAK,gCAAgCC,OAAO,U,YAMjD,OAEI,KAFDD,KAAK,sCAAsCC,OAAO,UAAS,iBAE9D,K,IAEKD,KAAK,sCAAsCC,OAAO,U,iFA7NjE,QAqOM,MArON,GAqOM,E,SApOJ,OAUO,QATLzK,MAAM,iBAEL,QAAK,eAAE,EAAAiH,YAAY,gBACnBrE,MAAK,GAAK,EAAAhC,QAAQ8J,YAAY/J,iBAAoD,GAA1B,UAAQ,YAAY,OAAM,8B,EAInF,QAAsC,GAAnBY,KAAK,e,QAAc,KACtC,QAAG,EAAAX,QAAQ8J,YAAY/J,QAAM,I,aAPrB,EAAAC,QAAQqC,aAeV,EAAArC,QAAiB,Y,WANzB,QAcO,Q,MAbLZ,OAAK,SAAC,UAAS,C,UACc,UAAQ,Y,aAAmC,UAAQ,kBAK/E,QAAK,oBAAE,EAAA2K,cAAA,EAAAA,gBAAA,IACP/H,MAAK,GAAK,EAAAhC,QAAQgK,4CAAqD,UAAQ,KAAI,KAAU,UAAQ,KAAI,oB,EAI1G,QAA4C,GAAzBrJ,KAAK,qB,QAAoB,KAC5C,QAAG,EAAAX,QAAQgK,aAAW,I,yBAExB,OAyMM,OAzMD5K,OAAK,SAAC,OAAM,MAAiB,EAAAI,SAASkD,e,EACzC,OAEO,QAFA,QAAK,oBAAE,EAAAuH,YAAA,EAAAA,cAAA,K,EACZ,QAAgD,GAA7BtJ,KAAK,MAAMvB,MAAM,eAGtC,OAmMK,YAlMH,OAgBK,MAhBDA,OAAK,SAAC,OAAe,EAAAsI,O,EACvB,OAEO,QAFA,QAAK,eAAE,EAAAA,IAAM,a,EAClB,QAAsC,GAAnB/G,KAAK,iBAE1B,OAEO,QAFA,QAAK,eAAE,EAAA+G,IAAM,Y,EAClB,QAA4C,GAAzB/G,KAAK,uBAE1B,OAEO,QAFA,QAAK,eAAE,EAAA+G,IAAM,Y,CACqB,EAAA1H,QAAQ8C,a,4BAA/C,QAA8D,G,MAA3CnC,KAAK,cAE1B,OAEO,QAFA,QAAK,eAAE,EAAA+G,IAAM,e,EAClB,QAA0C,GAAvB/G,KAAK,qBAE1B,OAEO,QAFA,QAAK,eAAE,EAAA+G,IAAM,S,EAClB,QAAqC,GAAlB/G,KAAK,gB,GAIJ,aAAR,EAAA+G,M,WAAhB,QAgEW,cA9DT,GACkC,EAAA5H,QAAc,S,WAAhD,QAIK,M,MAJA,QAAK,oBAAE,EAAAoK,gBAAA,EAAAA,kBAAA,K,CACO,EAAA1K,SAASiG,U,4BAA1B,QAAmD,e,QAAf,S,KACpB,EAAAjG,SAAiB,W,WAAjC,QAAkD,e,QAAf,S,qBACnC,O,eAE8B,EAAAQ,QAAQ8C,a,4BAAxC,QAIK,M,MAJA,QAAK,oBAAE,EAAAqH,aAAA,EAAAA,eAAA,K,CACO,EAAA3K,SAAS4K,S,4BAA1B,QAA6D,e,QAA1B,oB,KACnB,EAAA5K,SAAgB,U,WAAhC,QAA0D,e,QAAxB,kB,qBAClC,MAEkC,EAAAM,QAAc,S,WAAlD,QAUK,M,MAVA,QAAK,sBAAE,EAAAuK,kBAAA,EAAAA,oBAAA,K,UAAwC,kBAElD,OAOK,YANH,QAKE,GAJC1J,KAAI,C,MAA+C,WAAS,aAAY,0B,sCAOrE,EAAAb,QAAc,S,WAAxB,QAWK,U,QAXqB,WAExB,OAQK,YAPH,OAEO,QAFA,QAAK,iBAAE,EAAAwK,QAAQ,EAAA9K,SAASoC,KAAO,IAAIxC,MAAM,Q,EAC9C,QAAyC,GAAtBuB,KAAK,oB,QACnB,KACP,QAAG4J,KAAKC,MAAM,IAAsB,GAAhB,EAAAhL,SAASoC,OAAa,KAC1C,WAEO,QAFA,QAAK,iBAAE,EAAA0I,QAAQ,EAAA9K,SAASoC,KAAO,IAAIxC,MAAM,Q,EAC9C,QAAwC,GAArBuB,KAAK,wB,gBAI9B,OAGK,MAHA,QAAK,sBAAE,EAAA8J,eAAA,EAAAA,iBAAA,K,UAAe,uBAEzB,OAA2C,YAAvC,QAAkC,GAAf9J,KAAK,cAEnB,EAAAsD,QAAQkF,Y,4BAAnB,QASK,M,MAT2B,QAAK,sBAAE,EAAAuB,YAAA,EAAAA,cAAA,K,CACrC,IACA,OAMO,YALJ,QAKD,GAJG/J,KAAI,C,MAA+C,WAAS,aAAY,0B,uBAM/E,OAMK,MANA,QAAK,sBAAE,EAAAgK,cAAA,EAAAA,gBAAA,K,UAAc,yBAExB,OAGO,YAFJ,QAED,GADGhK,KAAI,OAAU,EAAAnB,SAASoL,SAAW,eAAiB,W,sBAG1D,OAMK,MANA,QAAK,sBAAE,EAAAC,aAAA,EAAAA,eAAA,K,UAAa,kBAEvB,OAGO,YAFJ,QAED,GADGlK,KAAI,OAAU,EAAAnB,SAASsL,QAAU,cAAgB,c,2CAKlC,YAAR,EAAApD,M,WAAhB,QAkCW,cAhCkB,EAAA1H,QAAiB,Y,WAA5C,QAEK,KAFL,IAEK,QADA,EAAAA,QAAQ8C,YAAc,UAAY,WAAf,M,WAExB,QAA6C,KAA7C,GAA4B,iBACX,EAAA9C,QAAQqC,Y,WAIzB,QAuBW,cAtBC,EAAArC,QAAY,O,WAAtB,QAGK,U,QAHmB,cACb,QAAG,EAAAA,QAAQ8C,YAAc,OAAS,WAAY,IACvD,WAA6B,mBAAtB,EAAA9C,QAAQ+K,MAAO,KAAE,O,gBAE1B,OAGK,MAHA,QAAK,sBAAE,EAAAC,gBAAA,EAAAA,kBAAA,K,UAAgB,uBAE1B,OAA0C,YAAtC,QAAiC,GAAdrK,KAAK,aAEnB,EAAAX,QAAQ8C,a,4BAAnB,QAGK,M,MAH4B,QAAK,sBAAE,EAAAmI,iBAAA,EAAAA,mBAAA,K,UAAiB,sBAEvD,OAAmD,YAA/C,QAA0C,GAAvBtK,KAAK,uBAGtB,EAAAX,QAAQ8J,YAAY/J,SAAW,EAAAC,QAAQ8C,c,WAD/C,QAKK,M,MAHF,QAAK,iBAAE,EAAAuD,YAAY,iB,UACrB,iBACa,O,gBAEd,OAGK,MAHA,QAAK,sBAAE,EAAA0D,cAAA,EAAAA,gBAAA,K,UAAc,oBAExB,OAAgC,mBAAzB,EAAA/J,QAAQqC,WAAS,M,kBAzB5B,QAGW,eAFT,OAA4D,MAAvD,QAAK,sBAAE,EAAA6I,aAAA,EAAAA,eAAA,K,UAAa,sBAAkB,MAC3C,OAAuD,MAAlD,QAAK,sBAAE,EAAAC,aAAA,EAAAA,eAAA,K,UAAa,iBAAa,M,2BA4BlB,YAAR,EAAAzD,KAAsB,EAAA1H,QAAQ8C,a,4BAA9C,QAYW,cAVT,GAC6B,EAAAhD,QAAQC,OAAS,K,WAA9C,QAAsE,M,MAAjE,QAAK,sBAAE,EAAAqL,WAAA,EAAAA,aAAA,K,UAAsC,OAAG,O,eAChB,EAAAtL,QAAQC,OAAS,I,WAAtD,QAGK,M,MAHA,QAAK,sBAAE,EAAAsL,mBAAA,EAAAA,qBAAA,K,UAA6C,gBAEvD,OAA0C,YAAtC,QAAiC,GAAd1K,KAAK,e,eAEE,EAAAb,QAAc,S,WAA9C,QAGK,M,MAHA,QAAK,sBAAE,EAAAwL,cAAA,EAAAA,gBAAA,K,UAAoC,iBAE9C,OAA+C,YAA3C,QAAsC,GAAnB3K,KAAK,oB,qBAIR,eAAR,EAAA+G,M,WAAhB,QAsBW,cApBT,GACW,EAAA1H,QAAQ8C,a,4BAAnB,QAGK,M,MAH4B,QAAK,iBAAE,EAAAuD,YAAY,a,UAAY,oBAE9D,OAIO,EAAArG,QAAQ8C,aAAe,EAAAhD,QAAQC,OAAS,I,WAFjD,QAMK,M,MALF,QAAK,iBAAE,EAAAsG,YAAY,W,UAErB,qBAEC,O,eAES,EAAArG,QAAQ8C,a,4BAAnB,QAGK,M,MAH4B,QAAK,iBAAE,EAAAuD,YAAY,Y,UAAW,iBAE7D,OAA4C,YAAxC,QAAmC,GAAhB1F,KAAK,gBAEA,EAAAb,QAAc,S,WAA5C,QAGK,M,MAHA,QAAK,sBAAE,EAAAyL,YAAA,EAAAA,cAAA,K,UAAkC,iBAE5C,OAA+C,YAA3C,QAAsC,GAAnB5K,KAAK,oB,qCAIR,SAAR,EAAA+G,M,WAAhB,QAmCW,cAjCT,IACA,OAGK,MAHA,QAAK,iBAAE,EAAArB,YAAY,e,UAAc,qBAEpC,MAEF,OAGK,MAHA,QAAK,iBAAE,EAAAA,YAAY,gB,UAAe,uBAErC,MAEF,OAGK,MAHA,QAAK,iBAAE,EAAAA,YAAY,e,UAAc,sBAEpC,OAA+C,YAA3C,QAAsC,GAAnB1F,KAAK,mBAE9B,OASK,WARH,IAGA,OAIK,YAHH,OAEI,IAFJ,GAEI,EADF,QAAgD,GAA5BA,KAAM,CAAC,MAAO,oBAIxC,OASK,WARH,IAGA,OAIK,YAHH,OAEI,IAFJ,GAEI,EADF,QAA+C,GAA3BA,KAAM,CAAC,MAAO,mB,6BAalD,UACE4D,SAAU,KACL,QAAS,CAAC,WAAY,UAAW,gBACjC,QAAS,UAAW,CAAC,aAE1BG,OACE,MAAO,CACLgD,IAAK,WAET,EACA/C,QAAS,CACP8F,gBACE,MAAMhL,EAAa+F,OAAO,gCACtB/F,GAA6B,KAAfA,IAChB+E,KAAKuB,OAAOC,OAAO,gBAAiBvG,EAExC,EACAyL,cACE,GAAI1G,KAAKxE,QAAQqC,UAAW,OAC5B,MAAMA,EAAYmD,OAChB,iDACA+E,KAAKC,MAAsB,IAAhBD,KAAKiB,WAEdnJ,IACFmC,KAAKuB,OAAOC,OAAO,4BACnBxB,KAAKuB,OAAOC,OAAO,wBAAwB,GAC3CxB,KAAKuB,OAAOC,OAAO,uBAAwB3D,GAC3CmC,KAAKwG,iBAET,EACAA,iBACE,MAAMS,EAAMrG,OAAOsG,SAAS9B,KAAK+B,MAAM,KAAK,GACtCC,EAAOH,EAAM,IAAMjH,KAAKxE,QAAQqC,UACtCwJ,UAAUC,UAAUC,UAAUH,EAChC,EACAX,kBACE,GAAIzG,KAAKxE,QAAQ8C,YAAa,OAC9B,MAAMkJ,EACJ,uEACEvD,QAAQuD,KACVxH,KAAKuB,OAAOC,OAAO,2BAA2B,GAC9CiG,YACE,KACEzH,KAAKuB,OAAOC,OAAO,2BAA2B,EAC/C,GAAEkG,KAAK1H,MACR,KAGN,EACAkG,aACE,MAAMsB,EACJ,sHACExH,KAAKhF,SAAS2M,cAAgB1D,QAAQuD,KACxCxH,KAAK4H,kBAET,EACAjB,cACE,GAAI3G,KAAKxE,QAAQqC,UAAW,OAAOmC,KAAKuF,eACxC,IAAI1H,EAAYmD,OACd,mEAEEnD,EAAU3C,MAAM,mBAClB2C,EAAYA,EAAUsJ,MAAM,KAAKU,OAE/BhK,IACFmC,KAAKuB,OAAOC,OAAO,4BACnBxB,KAAKuB,OAAOC,OAAO,wBAAwB,GAC3CxB,KAAKuB,OAAOC,OAAO,kBAAkB,GACrCxB,KAAKuB,OAAOC,OAAO,uBAAwB3D,GAE/C,EACA0H,eACMtB,QAAQ,0DACVjE,KAAKuB,OAAOC,OAAO,wBAAwB,GAC3CxB,KAAKuB,OAAOC,OAAO,uBAAwB,IAE/C,EACAoF,YACE,GAAI5G,KAAKxE,QAAQ8C,YAAa,OAC9B,GAAI0B,KAAK1E,QAAQC,QAAU,GAAI,OAC/B,MAAM4C,EAAO6C,OAAO,eAChB7C,GACF6B,KAAKuB,OAAOC,OAAO,cAAerD,EAEtC,EACA0I,oBACM7G,KAAKxE,QAAQ8C,aACb2F,QAAQ,iDACVjE,KAAKuB,OAAOuG,SAAS,oBAEzB,EACAhB,eACM9G,KAAKxE,QAAQ8C,aACb2F,QAAQ,kDAENjE,KAAKxE,QAAQC,YACfuE,KAAKuB,OAAOC,OAAO,sBAErBxB,KAAKuB,OAAOC,OAAO,iBAEvB,EACAuF,aACM9C,QAAQ,sDACVjE,KAAKuB,OAAOuG,SAAS,qBAEzB,EACAnC,cACE3F,KAAKuB,OAAOC,OAAO,eACfxB,KAAKhF,SAAS4K,SAChB5F,KAAKuB,OAAOC,OAAO,2BAA4B,EAEnD,MACG,QAAa,CACd,iBACA,aACA,mBACA,cACA,mBACA,eACA,UACA,kBC7VA,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,M,gFCea5G,MAAM,W,wCAcVA,MAAM,W,YAGT,OAGO,YAHD,8HAGN,K,IAUGA,MAAM,gB,8GAnDL,EAAA8G,OAAOa,OAAS,EAAA2C,cAAgB,I,WAFxC,QAsEQ,G,MArENtK,MAAM,QAEL,QAAK,eAAE,EAAAiH,YAAY,W,mBAEpB,IAA8D,EAA9D,OAA8D,UAA1D,8BAA0B,QAAG,EAAAqD,cAAe,YAAS,K,aAEzD,QA4BK,mBA5B0C,EAAA6C,eAAa,CAAjCC,EAAWtI,M,WAAtC,QA4BK,MA5BD9E,MAAM,SAAqDkB,IAAK4D,G,EAClE,OAGK,MAHD9E,OAAK,SAAC,QAAO,CAAU8E,O,QACtBsI,EAAUC,QAAO,CAACC,GAAKC,cAAeD,EAAIC,GAAU,IAAK,OAC5D,QAAG,EAAAC,KAAK,EAAAlD,aAAe,GAAGxF,IAAI,K,aAGhC,QAqBK,mBApBYsI,GAAR1L,K,WADT,QAqBK,MAnBF1B,OAAK,SAAG0B,EAAKoD,KAAMpD,EAAK6L,SAAW,WAAa,KAChDrM,IAAKQ,EAAKtC,GACV,QAAK,GAAEsC,EAAK6L,SAAW7L,EAAK6L,SAAW,EAAI,G,EAE5C,QAAsB,GAAd7L,KAAMA,GAAI,iBAEmCA,EAAU,Q,WAA/D,QAAmE,G,MAAhDH,KAAK,2B,eAEG,EAAa,gB,WAAxC,QAUM,MAVN,GAUM,EATJ,OAEM,OAFA,SAAK,YAAOG,EAAK6L,YAAQ,W,EAC7B,QAAyC,GAAtBhM,KAAK,kB,OAG1B,OAA+D,qBAAtDG,EAAK6L,SAAW,EAAI,IAAM7L,EAAK6L,SAAW,IAAH,IAEhD,OAEM,OAFA,SAAK,YAAO7L,EAAK6L,YAAQ,W,EAC7B,QAAwC,GAArBhM,KAAK,iB,qDAML,EAAqB,wB,WAAhD,QAOM,MAPN,GAOM,EANJ,QAAiD,GAA9BA,KAAK,yBAExB,O,gBAMF,OAKQ,SALDvB,OAAK,SAAC,WAAU,SAAoB,EAAAyN,kB,EACzC,QAAuE,GAAnDlM,KAAM,EAAAkM,cAAgB,eAAiB,U,2BAE3D,OAAuE,SAAhExI,KAAK,WAAW1B,KAAK,iB,qCAA0B,EAAa,kB,iBAAb,EAAAkK,kB,QAAiB,iC,IAIzE,OAgBM,MAhBN,GAgBM,EAfJ,OASM,OARJzN,OAAK,SAAC,SAAQ,C,SAEgB,gBAAgB,iBAAiB,mBAD9D,QAAK,oBAAE,EAAA0N,aAAA,EAAAA,eAAA,K,EAKR,QAA0C,GAAvBnM,KAAK,mB,QAAkB,YACnC,QAAG,EAAAoM,eAAgB,wBAC5B,I,IAEA,OAGM,OAHD3N,MAAM,SAAU,QAAK,oBAAE,EAAA4N,mBAAA,EAAAA,qBAAA,K,EAC1B,QAAmC,GAAhBrM,KAAK,Y,QAAW,+B,uBAa3C,MAAMsM,GAAiBC,GAAQA,EAAI3C,KAAK4C,MAAM5C,KAAKiB,SAAW0B,EAAInN,SAElE,IACE8E,WAAY,CACVC,MAAK,EACL+B,MAAK,IAEPnC,KAAM,WACJ,MAAO,CACL6H,cAAe,CAAC,EAChBK,KAAM,GACNC,eAAe,EAEnB,EACAtI,SAAU,CACRwI,cAAe,WACb,OAAO/N,OAAOoO,OAAO5I,KAAK+H,eACvBlO,KAAK0I,GAAUA,EAAM0F,QAAO,CAACC,GAAKC,cAAeD,EAAIC,GAAU,KAC/DF,QAAO,CAACC,EAAGW,IAAMX,EAAIW,GAAG,EAC7B,EACAC,sBAAuB,WACrB,OAAOtO,OAAOoO,OAAO5I,KAAK+H,eAAetF,MAAMF,GAC7CA,EAAME,MAAMnG,GAASA,EAAK6L,UAAY7L,EAAKyM,SAE/C,MACG,QAAS,CAAC,QAAS,eACnB,QAAS,UAAW,CAAC,gBACrB,QAAW,CAAE7D,aAAc,0BAEhC/E,QAAS,CACPqI,oBACExI,KAAK+H,cAAgB,CAAC,EACtB/H,KAAKuC,MAAMC,SAASlG,IACb0D,KAAK+H,cAAczL,EAAKoD,QAC3BM,KAAK+H,cAAczL,EAAKoD,MAAQ,IAGlCM,KAAK+H,cAAczL,EAAKoD,MAAMoD,KAAKxG,GACnCA,EAAK,YAAc,CAAC,WAGf0D,KAAK+H,cAAc,YAC1B,MAAMvC,EAAcO,KAAKiD,IAAI,EAAGhJ,KAAKkF,cAC/B+D,EAAcjJ,KAAKoI,KAAK5C,EAAc,GAC5ChL,OAAOD,KAAK0O,GAAazG,SAAS9C,IAChC,IAAK,IAAIH,EAAI,EAAGA,EAAI0J,EAAYvJ,GAAOH,IACrC,GAAIS,KAAK+H,cAAcrI,GAAO,CAC5B,MAAMwJ,EAAYlJ,KAAK+H,cAAcrI,GAAMyD,QACxC7G,IAAUA,EAAK6L,WAEde,EAAU3N,SACZkN,GAAcS,GAAWf,SAAW,EAExC,CACF,GAEJ,EACAG,cACE,GAAItI,KAAKuI,eAAiBvI,KAAKkF,cAAgBlF,KAAKuI,cAAe,CAEjE,MAAMhG,EAAQ/H,OAAOoO,OAAO5I,KAAK+H,eAC9BlO,KAAK0I,GACJA,EAEG0F,QAAO,CAACC,EAAGjF,IAAM,IAAIiF,KAAMiB,MAAMlG,EAAEkF,UAAUlJ,KAAKgE,KAAK,MAG3DgF,QAAO,CAACC,EAAGW,IAAM,IAAIX,KAAMW,IAAI,IAC/BhP,KAAKqO,GAAM,CAACnC,KAAKiB,SAAUkB,KAC3BkB,MAAK,CAAClB,EAAGW,IAAMX,EAAE,GAAKW,EAAE,KACxBhP,KAAKqO,GAAMA,EAAE,KAChBlI,KAAK1E,QAAQkH,SAAS5G,IACpB,GAAyB,aAArBA,EAAOU,KAAKoD,MAAuB6C,EAAMhH,OAAQ,CACnD,MAAM8F,EAAQkB,EAAMsF,MACpB7H,KAAKuB,OAAOC,OAAO,iBAAkB,CACnC5F,SACAwF,SAAU,OACVC,SAEJ,KAEFrB,KAAKuB,OAAOC,OAAO,cAAe,QACpC,CACF,MACG,QAAa,CAAC,iBAEnB6H,QAAS,WACF7O,OAAOD,KAAKyF,KAAK+H,eAAexM,QACnCyE,KAAKwI,mBAET,EACAc,MAAO,CACL/G,QACEvC,KAAKwI,mBACP,ICvKE,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,M,8ECNM,OAA2B,UAAvB,sBAAkB,K,IAClB5N,MAAM,Y,yBA0BPA,MAAM,U,YACT,OAAwC,UAApC,mCAA+B,K,YAGnC,OAEC,KAFEwK,KAAK,2CAA2CC,OAAO,UACvD,eAAW,K,YAG2B,OAAM,qB,YAC/C,OAAM,qB,YAEN,OAIC,KAHCD,KAAK,wDACLC,OAAO,UACN,qBAAiB,K,YAGpB,OAA+D,SAA5D,4DAAwD,K,YAC3D,OAAqC,UAAjC,gCAA4B,K,IAC5BzK,MAAM,W,mBAeLA,MAAM,gB,0FA/De,EAAA8G,OAAc,U,WAA5C,QA8EQ,G,MA9ED9G,MAAM,WAAkC,QAAK,eAAE,EAAAiH,YAAY,a,mBAChE,IA2BM,CA3BM,EAAA0H,W,WA4BZ,QAgDM,MAhDN,GAgDM,CA/CJ,I,QAAwC,2GAGxC,I,QAEC,uHAEwC,GACzC,I,QAAM,iDAEN,I,QAIC,yDAED,GACA,IACA,OAQK,KARL,GAQK,G,aAPH,QAMK,mBALuB,EAAAC,SAAO,CAAzBC,EAAQ5N,M,WADlB,QAMK,MAJFC,IAAKD,EACL,QAAK,GAAE,EAAA6N,UAAUD,EAAO,M,QAEtBA,EAAO,IAAD,S,SAGb,OAKE,SAJA5J,KAAK,OACLnE,IAAI,SACJiO,OAAO,mBACN,SAAM,oBAAE,EAAAC,cAAA,EAAAA,gBAAA,K,WAEX,OAaM,MAbN,GAaM,EAZJ,OAEM,OAFDhP,MAAM,SAAU,QAAK,oBAAE,EAAAiP,YAAA,EAAAA,cAAA,K,EAC1B,QAAwC,GAArB1N,KAAK,iB,QAAgB,oBAE1C,OAEM,OAFDvB,MAAM,SAAU,QAAK,oBAAE,EAAAkP,WAAA,EAAAA,aAAA,K,EAC1B,QAAiC,GAAd3N,KAAK,U,QAAS,kBAEnC,OAEM,OAFDvB,MAAM,SAAU,QAAK,oBAAE,EAAAmP,mBAAA,EAAAA,qBAAA,K,EAC1B,QAAsC,GAAnB5N,KAAK,e,QAAc,gCAExC,OAEM,OAFDvB,MAAM,SAAU,QAAK,eAAE,EAAA2O,UAAW,I,EACrC,QAAiC,GAAdpN,KAAK,U,QAAS,mB,WAzEvC,QA2BM,UA1BJ,IACA,OAwBK,KAxBL,GAwBK,G,aAvBH,QAaK,mBAZe,EAAA6N,UAAXvK,K,WADT,QAaK,MAXH7E,OAAK,SAAC,UAAS,YACO6E,EAAQzF,MAC7Be,OAAK,S,uBAAwC,QAAO,KAA0C,EAAQ,G,aAKtGe,IAAK2D,EAAQzF,GACb,QAAK,GAAE,EAAAiQ,WAAWxK,K,QAEhBA,EAAQtB,MAAI,U,OAEjB,OAQK,MAPHvD,MAAM,yBACL,QAAK,eAAE,EAAA2O,UAAW,GAClBxO,OAAK,S,uBAAwC,EAAO,YAGtD,+BAED,W,otIA4DR,IACEsF,WAAY,CACVgC,MAAK,IAEPnC,KAAM,WACJ,MAAO,CACL8J,SAAU,GACVT,UAAU,EACVC,QAAS,CACP,CACE,qBACA,0IAEF,CACE,kBACA,0IAEF,CACE,4BACA,2IAEF,CACE,mCACA,kJAEF,CACE,4CACA,0JAEF,CACE,wCACA,sJAIR,EACAzJ,UAAU,QAAS,CAAC,WACpBI,QAAS,CACP0J,aACE7J,KAAKkK,MAAMC,OAAOC,OACpB,EACAR,eACE,MAAMS,EAAOrK,KAAKkK,MAAMC,OAAOG,MAAM,GACrC,GAAID,GAAQA,EAAKE,KAAM,CACrB,MAAMC,EAAS,IAAIC,WACnBD,EAAOE,iBAAiB,QAAQ,KAC9B,IACE,MAAMnI,EAAQoI,KAAKC,MAAMJ,EAAOK,QAChC7K,KAAK8K,WAAWvI,EAClB,CAAE,MAAOnI,GACP2Q,MAAM,gCAAkC3Q,EAAE4Q,QAC5C,CACAhL,KAAKkK,MAAMC,OAAO9I,MAAQ,EAAE,IAE9BmJ,EAAOS,WAAWZ,EACpB,CACF,EACAP,YACE,MAAM7C,EAAMjG,OAAO,0CACfiG,GACFjH,KAAK0J,UAAUzC,EAEnB,EACAiE,gBAAgBjE,GACd,MAAMkE,QAAYC,MAAMnE,GACxB,GAAIkE,GAAOA,EAAIE,KACb,IACE,MAAM5B,QAAe0B,EAAIE,OACzBrL,KAAK8K,WAAWrB,EAClB,CAAE,MAAOrP,GACP2Q,MAAM,gCAAkC3Q,EAAE4Q,QAC5C,CAEJ,EACAE,0BACE,MAAMI,QAAajE,UAAUC,UAAUiE,WACvC,IACE,MAAMhJ,EAAQoI,KAAKC,MAAMU,GACzBtL,KAAK8K,WAAWvI,EAClB,CAAE,MAAOnI,GACP2Q,MAAM,gCAAkC3Q,EAAE4Q,QAC5C,CACF,EACAF,WAAWvI,GACT,IAAKA,IAAUA,EAAMhH,OAAQ,OAC7B,MAAMiQ,EAAYjJ,EAAMkJ,WAAU,EAAGzR,QAAgB,UAAPA,IAC9C,IAAI0R,EAAO,CAAC,EAiBZ,GAhBIF,GAAa,IACfE,EAAOnJ,EAAMpB,OAAOqK,EAAW,GAAG3D,OAEpC7H,KAAKuB,OAAOC,OACV,iBACAe,EAAM1I,KAAKyC,GACO,kBAATA,GAAqBA,aAAgBqP,OACxC,CAAE3R,GAAIsC,GACNA,KAGR0D,KAAKuB,OAAOC,OACV,aACAhH,OAAOoR,OAAO,CAAC,EAAGF,EAAM,CAAE1R,GAAI,YAG5BuI,EAAME,MAAK,EAAGzI,QAASgG,KAAKuB,OAAOe,MAAM9F,OAAOqP,IAAI7R,KAAM,CAC5D,MAAMwC,EAAS,GACf+F,EAAMC,SAAQ,EAAGxI,SACXgG,KAAKuB,OAAOe,MAAM9F,OAAOqP,IAAI7R,IAC/BwC,EAAOsG,KAAK9C,KAAKuB,OAAOe,MAAM9F,OAAOK,IAAI7C,GAC3C,IAEFgG,KAAKuB,OAAOC,OAAO,oBAAqB,CAAEhF,UAC5C,CACAwD,KAAKuJ,UAAW,CAClB,MACG,QAAa,CAAC,cAAe,iBClM9B,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,M,2pSCRO3O,MAAM,S,YACT,OAAuD,OAAlDO,IAAI,wBAAwB2Q,IAAI,GAAGlR,MAAM,Q,uBAG5C,OAAuC,SAApC,oCAAgC,K,YAKH,OAAU,SAAP,OAAG,K,YAClB,OAAU,SAAP,OAAG,K,YAAK,OAAM,qB,YACrC,OAMM,OANDA,MAAM,UAAQ,E,QAAC,+DAElB,OACC,KADEwK,KAAK,sCAAsCC,OAAO,UAAS,W,QAC7D,sJ,eAMHzK,MAAM,WAENwK,KAAK,sC,YAEL,OAAwD,OAAnDjK,IAAA,GAA2BP,MAAM,SAASkR,IAAI,I,4FAxBvD,QA2BM,MA3BN,GA2BM,CA1BJ,IACA,OAgBM,a,QAhBD,iCAEH,I,QAAuC,uEAEvC,OAEO,QAFDlR,MAAM,SAAU,QAAK,oBAAE,EAAA6K,YAAA,EAAAA,cAAA,K,EAC3B,QAAgC,GAAbtJ,KAAK,S,QAAQ,a,QAC3B,qCACyB,I,QAAU,mDACtB,I,QAAU,KAAC,GAC/B,KAUmB,UAAb,EAAA4P,W,WAFR,QAOI,IAPJ,GAOI,CAFF,I,QAAwD,qB,iBAS9D,UACE7L,OACE,MAAO,CACL6L,SAAUnL,OAAOyG,UAAU2E,cAAgBpL,OAAOyG,UAAU0E,SAEhE,EACA5L,SAAS,QAAa,CAAC,gBCjCnB,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,M,2DCiCevF,MAAM,Q,UACHA,MAAM,U,IAGNA,MAAM,Q,IACNA,MAAM,W,UAQfA,MAAM,e,YACT,OAEQ,eADN,OAAe,UAAX,Y,SAoBGA,MAAM,Q,IACHA,MAAM,Q,IAGNA,MAAM,W,YAGhB,OAAS,qB,YACT,OAAS,qB,0FAjFP,EAAA8G,OAAOuK,WAAa,EAAA1J,MAAMgI,O,WAHlC,QAuFQ,G,MAtFN3P,MAAM,aACL,QAAK,eAAE,EAAAiH,YAAY,e,mBAGpB,IAMM,EANN,OAMM,OANA,QAAK,eAAE,EAAAA,YAAY,gB,EACvB,QAIE,GAHA1F,KAAK,aACLvB,MAAM,SACN4C,MAAM,wBAIV,OAIK,Y,QAJD,0BAEF,QAAyC,GAAtBrB,KAAK,kB,QAAiB,KACzC,QAAG,EAAAsD,QAAQtB,MAAQ,iBAAJ,O,aAEjB,QAkCM,mBAjCwB,EAAA+N,cAAY,CAAhClE,EAAWtI,M,WADrB,QAkCM,OAhCH5D,IAAK4D,EACL9E,OAAK,gBAAW8E,K,EAEjB,OAEQ,eADN,OAAmB,mBAAZA,GAAI,MAEb,OAyBK,a,aAxBH,QAqBK,mBArBcsI,GAAR1L,K,WAAX,QAqBK,MArB0B1B,OAAK,SAAG8E,IAAQ5D,IAAKQ,EAAKtC,I,CAG/CsC,EAAO,K,WAFf,QAYQ,Q,MAXN1B,MAAM,OAELG,OAAK,S,uBAA2D,EAAK,OAAS,WAAS,aAAiC,EAAK,MAA0B,QAAO,MAAgD,EAAK,UAAY,EAAK,I,wCAUvO,OAMM,MANN,GAMM,CALuBP,OAAOD,KAAK,EAAA4R,eAAqB,S,WAA5D,QAES,OAFT,IAES,QADP,EAAAA,cAAc7P,EAAKtC,IAAM,EAAAmS,cAAc7P,EAAKtC,IAAIoS,KAAK,MAAQ,IAAT,K,gBAEtD,OAAyC,OAAzC,IAAyC,QAAnB9P,EAAK6B,MAAI,IAC/B,OAA+C,OAA/C,IAA+C,QAAtB7B,EAAKqD,SAAO,M,aAGzC,OAAyB,MAApB/E,OAAK,SAAG8E,K,SACb,OAAyB,MAApB9E,OAAK,SAAG8E,K,uBAIc,EAAA2M,OAAa,S,WAA5C,QAgCM,MAhCN,GAgCM,CA/BJ,IAGA,OA2BK,a,aA1BH,QAuBK,mBAvBuB,EAAAA,QAAM,CAAtBC,EAAMzQ,M,WAAlB,QAuBK,MAvBgCC,IAAKD,GAAK,EAC7C,OAOQ,QANNjB,MAAM,OACLG,OAAK,S,uBAA0C,QAAO,KAAyC,EAAK,MAAM,G,uBAM7G,OAOQ,QANNH,MAAM,OACLG,OAAK,S,uBAA0C,QAAO,KAAyC,EAAK,OAAO,G,uBAM9G,OAKM,MALN,GAKM,EAJJ,OAEC,OAFD,IAEC,QADKuR,EAAKxP,MAAMqB,MAAO,OAAG,QAAGmO,EAAKC,OAAOpO,MAAI,IAE9C,OAA8C,OAA9C,IAA8C,QAArBmO,EAAKE,QAAM,U,MAGxC,GACA,S,yCAUR,UACEnM,WAAY,CACVgC,MAAK,IAEPtC,SAAU,CAKRsM,OAAQ,WACN,MAAMA,EAAS,GAcf,OAbArM,KAAKuC,MAAMC,SAASlG,IACd0D,KAAKyM,OAAO5P,IAAIP,EAAKtC,KACvBgG,KAAKyM,OAAO5P,IAAIP,EAAKtC,IAAIwI,SAAQ,CAACgK,EAAQD,KACpCvM,KAAKuC,MAAM1F,IAAI0P,IACjBF,EAAOvJ,KAAK,CACVhG,MAAOR,EACPiQ,OAAQvM,KAAKuC,MAAM1F,IAAI0P,GACvBC,UAEJ,GAEJ,IAEKH,CACT,EACAH,aAAc,WACZ,MAAMA,EAAe,CAAC,EAQtB,OAPAlM,KAAKuC,MAAMC,SAASlG,IACb4P,EAAa5P,EAAKoD,QACrBwM,EAAa5P,EAAKoD,MAAQ,IAE5BwM,EAAa5P,EAAKoD,MAAMoD,KAAKxG,EAAK,WAE7B4P,EAAa,YACbA,CACT,EACAC,cAAe,WACb,MAAM7Q,EAAU,CAAC,EASjB,OARA0E,KAAK1E,QAAQkH,SAAQ,EAAGrE,OAAM7B,WACxBA,GAAQA,EAAKtC,IAAoB,aAAdsC,EAAKoD,OACrBpE,EAAQgB,EAAKtC,MAChBsB,EAAQgB,EAAKtC,IAAM,IAErBsB,EAAQgB,EAAKtC,IAAI8I,KAAK3E,GACxB,IAEK7C,CACT,MACG,QAAS,CAAC,QAAS,SAAU,UAAW,WAAY,eACpD,QAAS,UAAW,CAAC,aAE1B6E,QAAS,KACJ,QAAa,CAAC,kBC7If,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,M,2DCROnG,GAAG,Q,IACDY,MAAM,U,IAINA,MAAM,W,IACLA,MAAM,Q,YAGV,OAAM,qB,IACFA,MAAM,Q,qCA2BHA,MAAM,gB,UAuBNA,MAAM,qB,eAiBNA,MAAM,gB,qBAqBXA,MAAM,a,YAGN,OAAc,YAAR,KAAC,K,YACP,OAAc,YAAR,KAAC,K,YACP,OAAc,YAAR,KAAC,K,YACP,OAAe,YAAT,MAAE,K,yGAxGd,QAgHM,MAhHN,GAgHM,EA/GJ,OAGM,MAHN,GAGM,EAFJ,OAAmD,QAA7CA,MAAM,UAAWG,OAAK,QAAE,EAAA2R,e,SAC9B,OAAuD,QAAjD9R,MAAM,YAAaG,OAAK,QAAE,EAAA4R,iB,WAElC,OA0FM,MA1FN,GA0FM,EAzFJ,OAA0C,KAA1C,IAA0C,QAAtB,EAAAC,UAAUzO,MAAI,I,QAAQ,gBAC1C,OACC,mBADM,EAAA0O,QAAQ1O,MAAI,I,QAClB,MACD,IACA,OAEK,KAFL,IAEK,QADA,EAAA2O,OAAOvR,QAAS,SAAK,QAAqB,IAAlB,EAAAuR,OAAOvR,OAAe,IAAM,IAAf,I,QACrC,cAE2B,aAAtB,EAAAsR,QAAQvQ,KAAKoD,O,WAAvB,QAEK,QAFuC,kBAC7B,QAAGqG,KAAKgH,KAAK,EAAAlI,MAAQ,IAAK,KACzC,M,WACA,QAAiE,QAAtD,iBAAa,QAAGkB,KAAKgH,KAAK,EAAAzR,QAAQC,OAAS,IAAK,IAAC,IAE3C,EAAAC,QAAQ8C,YAsDJ,EAAO,U,WAA5B,QAoBW,cAnBE,EAAA9C,QAAQwR,wBAA0B,EAAAxR,QAAQyR,mB,WAArD,QAEM,kBADD,EAAAzR,QAAQ0R,YAAc,KAAO,0BAClC,K,gBACA,OAeM,MAfN,GAeM,EAdJ,OAMM,OALJtS,OAAK,SAAC,mBAAkB,WAEH,EAAAuS,eADpB,QAAK,eAAE,EAAA5P,MAAK,KAEd,cAED,IACA,OAMM,OALJ3C,OAAK,SAAC,eAAc,UAEA,EAAAuS,eADnB,QAAK,iBAAE,EAAA5P,MAAK,KAEd,YAED,M,KAGa,EAAA3B,Q,4BAAjB,QAA2D,SAAlC,mC,WA3EzB,QAqDW,cAnDY,UAAQ,wBAAsC,UAAQ,kBAAgC,UAAQ,WAAU,I,WAD7H,QAgBM,W,QAVL,uBAEC,OAES,QAFF,YAAS,yBAAU,EAAAwR,gBAAgB,MAAF,e,EACtC,QACA,GADmBjR,KAAK,kB,aACjB,KAET,QAAG,EAAAX,QAAQ0R,YAAc,KAAO,KAChC,WAEO,QAFA,YAAS,yBAAU,EAAAE,eAAe,MAAD,e,EACtC,QAAwC,GAArBjR,KAAK,iB,wBAG5B,OAsBM,MAtBN,GAsBM,CAnBK,EAAAX,QAAQyR,kB,4BAFjB,QAMM,O,MALJrS,MAAM,mBAEL,QAAK,oBAAE,EAAAyS,WAAA,EAAAA,aAAA,KACT,gBAG0B,EAAA7R,QAAQyR,mB,WAGnC,QASW,eART,OAMM,OALJrS,OAAK,SAAC,mBAAkB,WACH,EAAAY,QAAQgD,cAC5B,QAAK,oBAAE,EAAA8O,OAAA,EAAAA,SAAA,M,QAEL,EAAAC,UAAY,QAAU,UAAb,IAEd,OAA6C,OAAxC3S,MAAM,SAAU,QAAK,oBAAE,EAAA4S,MAAA,EAAAA,QAAA,KAAM,U,kBAXpC,QAEM,O,MAFD5S,MAAM,SAA2C,QAAK,oBAAE,EAAA6S,OAAA,EAAAA,SAAA,M,QACxD,EAAAjS,QAAQgD,WAAa,UAAY,SAAf,KAYvB,OAAqD,OAAhD5D,MAAM,eAAgB,QAAK,oBAAE,EAAA8S,QAAA,EAAAA,UAAA,KAAQ,WAEe,aAAtB,EAAAb,QAAQvQ,KAAKoD,O,WAAlD,QAWM,MAXN,GAWM,EAVJ,OAQM,OAPJ9E,OAAK,SAAC,SAAQ,C,SACoB,UAAQ,WAAU,KAAQ,UAAQ,gBAGnE,QAAK,oBAAE,EAAA+S,WAAA,EAAAA,aAAA,KACT,uBAED,IACA,OAA0D,OAArD/S,MAAM,SAAU,QAAK,oBAAE,EAAAgT,cAAA,EAAAA,gBAAA,KAAc,kB,wBA0BhD,QAea,MAfDzP,KAAK,QAAM,C,kBACrB,IAaM,CAXE,EAAA3C,QAAQyR,mBAAqB,EAAAzR,QAAQgD,a,WAF7C,QAaM,MAbN,GAaM,CATJ,GACA,GACA,GACA,IACA,OAIS,SAHNpD,UAAW,EAAAJ,SAASsL,QACrBnL,IAAI,iBACH0S,MAAO,EAAA7S,SAASsL,S,yCAU3B,UACEvG,SAAU,KACL,QAAS,UAAW,CAAC,gBACrB,QAAS,CAAC,UAAW,iBACrB,QAAW,CAAE8E,MAAO,kBACvB+H,UAAW,WACT,OAAO5M,KAAK1E,QAAQ0E,KAAKxE,QAAQC,WAAW,GAC9C,EACAkR,eAAgB,WACd,MAAMrR,EAAU0E,KAAK1E,QAAQC,OACvBE,EAAauE,KAAKxE,QAAQC,WAAW,GAC3C,MAAO,CACLqS,UAAW,UAAU/H,KAAKC,MAAOvK,EAAaH,EAAW,WACzDyS,mBAAoB/N,KAAKxE,QAAQ0R,YAAc,IAAM,KAEzD,EACAL,QAAS,WACP,OAAO7M,KAAK1E,QAAQ0E,KAAKxE,QAAQC,WAAW,GAC9C,EACAiR,aAAc,WACZ,MAAMpR,EAAU0E,KAAK1E,QAAQC,OACvBE,EAAauE,KAAKxE,QAAQC,WAAW,GACrCuS,EAAOhO,KAAKxE,QAAQgD,WACpByP,EAAY,KAAOxS,EAAasK,KAAKmI,IAAIF,EAAM1S,IAAaA,EAClE,MAAO,CACLwS,UAAW,UAAU/H,KAAKC,MAAMiI,SAChCF,mBAAoB/N,KAAKxE,QAAQ0R,YAAc,IAAM,KAEzD,EACAtR,OAAQ,WACN,OAAOoE,KAAK1E,QAAQ0H,MAAMN,GAAMA,EAAE1I,KAAOgG,KAAKxE,QAAQmD,UACxD,EACAwO,YAAa,WACX,MAAMtR,EAAQmE,KAAK1E,QAAQmQ,WACxB/I,GAAMA,EAAE1I,KAAOgG,KAAKxE,QAAQmD,WAE/B,OAAO9C,GAAS,IAAMmE,KAAKxE,QAAQiG,MAAM5F,QAASuI,CACpD,EACA+J,QAAS,WACP,IAAKnO,KAAKpE,OAAQ,OAAO,EACzB,GAAIoE,KAAKpE,OAAOqC,YAAyC,aAA3B+B,KAAK6M,QAAQvQ,KAAKoD,KAC9C,OAAO,EACT,MAAMlE,EAAUwE,KAAKxE,QACfF,EAAU0E,KAAK1E,QAAQC,OACvBM,EAAQmE,KAAK1E,QAAQkF,QAAQR,KAAKpE,QAClC8E,GACH7E,EAAQ,EAAIP,EAAUE,EAAQC,WAAW,IAAMH,EAClD,OAAOoF,GAAiBlF,EAAQgD,WAAa,CAC/C,EACAsO,OAAQ,WACN,MAAMrR,EAAauE,KAAKxE,QAAQC,WAAW,GACrCqR,EAAS3D,MAAMnJ,KAAK1E,QAAQC,QAC/B0D,KAAK,IACLpF,KAAI,CAAC0F,EAAG1D,IACPmE,KAAKxE,QAAQiG,MAAM5F,GAASmE,KAAK1E,QAAQO,GAAOsC,KAAO,KAErDiQ,EAAU,IACXtB,EAAOzJ,MAAM5H,EAAa,MAC1BqR,EAAOzJ,MAAM,EAAG5H,EAAa,IAElC,OACEuE,KAAKxE,QAAQgD,WACT4P,EAAQ/K,MAAM,EAAGrD,KAAKxE,QAAQgD,WAAa,GAC3C4P,GACJjL,QAAQkL,KAAQA,GACpB,GAEFnO,OACE,MAAO,CACLqN,UAAW,KAEf,EACApN,QAAS,CACPkN,YACErN,KAAKuB,OAAOC,OAAO,mBAAoB,GACvCxB,KAAKuB,OAAOC,OAAO,6BAA6B,GAChDxB,KAAKuN,UAAYe,aAAY,KAC3BtO,KAAKyN,OAAO,GACX,IACL,EACAA,QACEzN,KAAKuB,OAAOC,OAAO,mBAAoB,GACvCxB,KAAKuB,OAAOC,OAAO,6BAA6B,GAChD+M,cAAcvO,KAAKuN,WAEfvN,KAAKxE,QAAQwR,sBACfhN,KAAKuN,UAAYe,aAAY,KAC3BtO,KAAKuB,OAAOC,OAAO,oBACfxB,KAAKxE,QAAQgD,WAAawB,KAAK1E,QAAQC,SACzCgT,cAAcvO,KAAKuN,WACnBvN,KAAKuB,OAAOC,OAAO,6BAA6B,GAClD,GACCxB,KAAKxE,QAAQ0R,aAEhBlN,KAAKuB,OAAOC,OAAO,mBAAoBxB,KAAK1E,QAASC,OAAS,EAElE,EACA+R,QACMtN,KAAKuN,WACPgB,cAAcvO,KAAKuN,WACnBvN,KAAKuN,UAAY,MAEjBvN,KAAKuN,UAAYe,aAAY,KAC3BtO,KAAKuB,OAAOC,OAAO,oBACfxB,KAAKxE,QAAQgD,WAAawB,KAAK1E,QAAQC,SACzCgT,cAAcvO,KAAKuN,WACnBvN,KAAKuB,OAAOC,OAAO,6BAA6B,GAClD,GACCxB,KAAKxE,QAAQ0R,YAEpB,EACAM,OACEe,cAAcvO,KAAKuN,WACnBvN,KAAKuN,UAAY,KACjBvN,KAAKuB,OAAOC,OAAO,6BAA6B,GAChDxB,KAAKuB,OAAOC,OAAO,mBAAoB,EACzC,EACAkM,SACEa,cAAcvO,KAAKuN,WACnBvN,KAAKuB,OAAOC,OAAO,qBAAsBxB,KAAK1E,SAC9C0E,KAAKuB,OAAOC,OAAO,qBACrB,EACAjE,KAAKA,GACH,IAAKyC,KAAKmO,QAAS,OAAO,EAC1B,MAAMtS,EAAQmE,KAAK1E,QAAQmQ,WACxB/I,GAAMA,EAAE1I,KAAOgG,KAAKxE,QAAQmD,WAE3B9C,GAAS,KAAOmE,KAAKxE,QAAQiG,MAAM5F,KAAW0B,GAChDyC,KAAKuB,OAAOC,OAAO,mBAAoB,CAAC3F,EAAO0B,GAEnD,EACA6P,eAAeoB,GACb,MAAMC,EAAQ1I,KAAKC,MAAMhG,KAAKxE,QAAQ0R,YAAcsB,GAChDC,EAAQ,GACVzO,KAAKuB,OAAOC,OAAO,yBAA0BiN,EAEjD,EACAd,YACE3N,KAAKuB,OAAOC,OAAO,0BAA2BxB,KAAKxE,QAAQC,WAAW,GACxE,EACAmS,eACE5N,KAAKuB,OAAOC,OAAO,2BAA4B,EACjD,IC9PE,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,M,ICPOxH,GAAG,a,qDAAR,QAkBM,MAlBN,GAkBM,G,aAjBJ,QAgBM,mBAbwB,EAAA0U,WAAS,CAA7BC,EAAU9S,M,WAHpB,QAgBM,OAfJyD,MAAM,IACNsP,OAAO,IAEN9S,IAAKD,G,EAEN,OASiB,kBATA7B,GAAI2U,EAAS,GAAIE,GAAG,MAAMC,GAAG,OAAOC,GAAG,MAAMC,GAAG,M,EAC/D,OAGQ,QAFNC,OAAO,KACNlU,OAAK,sBAAkB4T,EAAS,GAAI,eAAgB,K,SAEvD,OAGQ,QAFNM,OAAO,OACNlU,OAAK,sBAAkB4T,EAAS,GAAI,eAAgB,K,4BAQ/D,UACEzO,OACE,MAAO,CACLwO,UAAW,CACT,CAAC,QAAS,UAAW,QACrB,CAAC,YAAa,UAAW,QACzB,CAAC,UAAW,UAAW,SAG7B,GC1BI,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,M,2DCUS9T,MAAM,S,IACLA,MAAM,S,YACR,OAAqC,MAAjCA,MAAM,YAAW,eAAW,K,IAMxBA,MAAM,Q,UAEJA,MAAM,U,YACV,OAAM,qB,UAwBJA,MAAM,Y,IAKZA,MAAM,S,YACR,OAAsC,MAAlCA,MAAM,YAAW,gBAAY,K,IAmBzBA,MAAM,Q,UAEJA,MAAM,U,YACV,OAAM,qB,UAWJA,MAAM,Y,0FAzFZ,EAAA8G,OAAO9E,YAAc,EAAA2F,MAAMgI,O,WAHnC,QAkGQ,G,MAjGN3P,MAAM,kBACL,QAAK,eAAE,EAAAiH,YAAY,gB,mBAGpB,IAMM,EANN,OAMM,OANA,QAAK,eAAE,EAAAA,YAAY,e,EACvB,QAIE,GAHA1F,KAAK,eACLvB,MAAM,SACN4C,MAAM,gCAIV,OAIK,Y,QAJD,kBAEF,QAAuC,GAApBrB,KAAK,gB,QAAe,KACvC,QAAG,EAAAsD,QAAQtB,MAAQ,iBAAJ,MAEjB,OA+EM,MA/EN,GA+EM,EA9EJ,OAsCK,KAtCL,GAsCK,CArCH,K,aACA,QAmCK,mBAlCY,EAAA+Q,iBAAR5S,K,WADT,QAmCK,MAjCFR,IAAKQ,EAAK6B,KACVvD,OAAK,SAAG0B,EAAKoD,Q,EAEd,OAaO,OAbP,GAaO,E,iBAZFpD,EAAK6B,MAAO,IACf,GAA2B7B,EAAKhB,QAAc,S,WAA9C,QAUO,OAVP,GAUO,CATL,K,aACA,QAOC,mBAN2BgB,EAAKhB,SAAO,CAA9BM,EAAQC,M,WADlB,QAOC,SALEjB,OAAK,cAAUgB,EAAOoC,SACtBlC,IAAKD,I,QAEJD,EAAOuC,MAAQ7B,EAAKhB,QAAQC,OAASM,EAAQ,EAAI,IAAM,KAAb,M,2BAO1CS,EAAO,K,WAFf,QAYQ,Q,MAXN1B,MAAM,OAELG,OAAK,S,uBAA2D,EAAK,OAAS,WAAS,aAAiC,EAAK,MAA0B,QAAO,MAAgD,EAAK,UAAY,EAAK,I,uCAU1MuB,EAAuB,qB,WAApD,QAEO,OAFP,IAEO,QADFA,EAAKU,oBAAkB,K,+BAIhC,OAsCK,KAtCL,GAsCK,CArCH,K,aACA,QAmCK,mBAlCY,EAAAmS,iBAAR7S,K,WADT,QAmCK,MAjCFR,IAAKQ,EAAK6B,KACVvD,OAAK,SAAG0B,EAAKoD,Q,CAINpD,EAAO,K,WAFf,QAYQ,Q,MAXN1B,MAAM,OAELG,OAAK,S,uBAA2D,EAAK,OAAS,WAAS,aAAiC,EAAK,MAA0B,QAAO,MAAgD,EAAK,UAAY,EAAK,I,wCAUvO,OAaO,OAbP,GAaO,E,iBAZFuB,EAAK6B,MAAO,IACf,GAA2B7B,EAAKhB,QAAc,S,WAA9C,QAUO,OAVP,GAUO,CATL,K,aACA,QAOC,mBAN2BgB,EAAKhB,SAAO,CAA9BM,EAAQC,M,WADlB,QAOC,SALEjB,OAAK,cAAUgB,EAAOoC,SACtBlC,IAAKD,I,QAEJD,EAAOuC,MAAQ7B,EAAKhB,QAAQC,OAASM,EAAQ,EAAI,IAAM,KAAb,M,2BAKrBS,EAAuB,qB,WAApD,QAEO,OAFP,IAEO,QADFA,EAAKY,oBAAkB,K,0DAYtC,UACEmD,WAAY,CACVgC,MAAK,IAEPtC,SAAU,CACRmP,gBAAiB,WACf,MAAMA,EAAkB,GAuCxB,OArCIlP,KAAK1E,QAAQC,OAAS,GACxB2T,EAAgBpM,KACd,CACE9I,GAAI,OACJmE,KAAM,cACNgB,WAAY,EACZO,KAAM,SACNpE,QAAS0E,KAAK1E,QAAQ6H,QAAQT,GAAsB,WAAhBA,EAAEpG,KAAKoD,OAC3C1C,mBACE,kIAGJ,CACEhD,GAAI,OACJmE,KAAM,sBACNgB,WAAY,EACZO,KAAM,QACNpE,QAAS0E,KAAK1E,QAAQ6H,QAAQT,GAAsB,UAAhBA,EAAEpG,KAAKoD,OAC3C1C,mBACE,gLAMRgD,KAAKuC,MAAMC,SAASlG,IAClB,MAAMhB,EAAU0E,KAAK1E,QAAQ6H,QAAQT,GAAMA,EAAEpG,KAAKtC,KAAOsC,EAAKtC,KAC1DsC,EAAK6C,aAA6B,aAAd7C,EAAKoD,MAAuBpE,EAAQC,SAC1D2T,EAAgBpM,KAAKtI,OAAOoR,OAAO,CAAEtQ,WAAWgB,GAClD,IAEF0D,KAAKxD,OACF2G,QAAO,EAAGhE,gBAAiBA,IAC3BqD,SAAShG,IACR0S,EAAgBpM,KAAKtI,OAAOoR,OAAO,CAAEtQ,QAAS,IAAMkB,GAAQ,IAEhE0S,EAAgB9F,MAAK,CAAClB,EAAGW,IAAMX,EAAE/I,WAAa0J,EAAE1J,aACzC+P,CACT,EACAC,gBAAiB,WACf,MAAMA,EAAkB,GAaxB,OAZAnP,KAAKuC,MAAMC,SAASlG,IAClB,MAAMhB,EAAU0E,KAAK1E,QAAQ6H,QAAQT,GAAMA,EAAEpG,KAAKtC,KAAOsC,EAAKtC,KAC1DsC,EAAK8C,aAA6B,aAAd9C,EAAKoD,MAAuBpE,EAAQC,SAC1D4T,EAAgBrM,KAAKtI,OAAOoR,OAAO,CAAEtQ,WAAWgB,GAClD,IAEF0D,KAAKxD,OACF2G,QAAO,EAAG/D,gBAAiBA,IAC3BoD,SAAShG,IACR2S,EAAgBrM,KAAKtI,OAAOoR,OAAO,CAAEtQ,QAAS,IAAMkB,GAAQ,IAEhE2S,EAAgB/F,MAAK,CAAClB,EAAGW,IAAMX,EAAE9I,WAAayJ,EAAEzJ,aACzC+P,CACT,MACG,QAAS,CAAC,QAAS,SAAU,UAAW,iBACxC,QAAS,UAAW,CAAC,UAAW,YAErChP,QAAS,KACJ,QAAa,CAAC,kBCtKf,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,M,mECPI,OAEK,UAFD,kDAEJ,K,IACIvF,MAAM,U,6FAJC,EAAA8G,OAAOlF,QAAU,EAAAA,OAAOjB,S,WAArC,QASQ,G,MATsC,QAAK,eAAE,EAAAsG,YAAY,Y,mBAC/D,IAEK,CAFL,IAGA,OAIK,KAJL,GAIK,G,aAHH,QAEK,mBAFc,EAAArF,QAARF,K,WAAX,QAEK,MAFuBR,IAAKQ,EAAKtC,GAAK,QAAK,GAAE,EAAAoV,UAAU9S,I,EAC1D,QAAsB,GAAdA,KAAMA,GAAI,kB,2CAW1B,UACE+D,WAAY,CAAEC,MAAK,EAAE+B,MAAK,IAC1BtC,SAAU,KACL,QAAS,CAAC,SAAU,SAAU,aACjCvD,SACE,MAAMA,EAAS,GASf,OARAwD,KAAKuB,OAAOe,MAAM9F,OAAOgG,SAAQlG,IAG5B0D,KAAKuB,OAAOe,MAAMhH,QAAQkB,OAAOiG,MAAK4M,GAASA,EAAMrV,KAAOsC,EAAKtC,MAElEwC,EAAOsG,KAAKxG,EACd,IAEKE,CACT,GAEF2D,QAAS,CACPiP,UAAU9S,GACR0D,KAAKuB,OAAOC,OAAO,oBAAqB,CACtChF,OAAQF,IAEV0D,KAAKuB,OAAOC,OAAO,cAAe,SACpC,MACG,QAAa,CAAC,kBCnCf,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,M,mECMI,OAAqB,UAAjB,gBAAY,K,UAGT5G,MAAM,W,YA4BP,OAAa,UAAT,QAAI,K,YACR,OAAkB,UAAd,aAAS,K,YACb,OAAgB,UAAZ,WAAO,K,YACX,OAAa,UAAT,QAAI,K,YACR,OAAc,UAAV,SAAK,K,YACT,OAAiB,UAAb,YAAQ,K,0FAhDZ,EAAA8G,OAAO4D,cAAgB,EAAA9J,QAAQ8J,aAAgB,EAAA9J,QAAQ8C,a,4BAF/D,QAsFQ,G,MArFN1D,MAAM,eAEL,QAAK,eAAE,EAAAiH,YAAY,iB,mBAEpB,IAOM,EAPN,OAOM,OAPA,QAAK,oBAAE,EAAAyN,kBAAA,EAAAA,oBAAA,K,CAKH,EAAA9T,QAAmB,c,WAJ3B,QAKE,G,MAJAW,KAAK,YACLvB,MAAM,QACN4C,MAAM,yB,iBAKV,GAEiB,EAAAhC,QAAQ8C,a,4BACvB,QAuBM,MAvBN,GAuBM,EAtBJ,OAQM,OARD1D,MAAM,SAAU,QAAK,oBAAE,EAAA2U,sBAAA,EAAAA,wBAAA,K,EAC1B,QAKE,GAJCpT,KAAI,C,MAAuC,UAAQ,qBAAoB,0B,0BAIxE,8BAGJ,OAQM,OARDvB,MAAM,SAAU,QAAK,oBAAE,EAAA4U,iBAAA,EAAAA,mBAAA,K,EAC1B,QAKE,GAJCrT,KAAI,C,MAAuC,UAAQ,sBAAqB,0B,0BAIzE,sBAGJ,OAGM,OAHDvB,MAAM,SAAU,QAAK,oBAAE,EAAA0U,kBAAA,EAAAA,oBAAA,K,EAC1B,QAAsC,GAAnBnT,KAAK,e,QAAc,8BAK5C,OA2CQ,eA1CN,OAaQ,eAZN,OAWK,WAVH,GACA,GACA,GACA,GACA,GACA,IACA,OAGK,YAFH,QAAyC,GAAtBA,KAAK,kB,QAAiB,mBAK/C,OA2BQ,gB,aA1BN,QAyBK,mBAzBuB,EAAAX,QAAQ8J,aAAW,CAAnC/H,EAAM1B,M,WAAlB,QAyBK,MAzB6CC,IAAKD,GAAK,EAC1D,OAIK,mBAHA0B,EAAKkS,UAAUC,WAAWC,WAAWC,SAAS,EAAG,MAAO,KAAC,QAC1DrS,EAAKkS,UAAUI,aAAaF,WAAWC,SAAS,EAAG,MAAJ,IAGnD,OAA6B,mBAAtBrS,EAAKqP,WAAS,IACrB,OAA2B,mBAApBrP,EAAKsP,SAAO,IACnB,OAAwB,mBAAjBtP,EAAKsC,MAAI,IAChB,OAGK,Y,iBAFAtC,EAAKkE,MAAMlG,QAAS,IACvB,YAAuC,GAApBY,KAAK,kBAE1B,OAQK,Y,iBAPAoB,EAAKuS,UAAW,IACnB,YAKE,GAJC3T,KAAI,C,MAA2C,EAAK,MAAM,QAAU,EAAK,SAAQ,0B,oBAMtF,OAEK,mBADAoB,EAAKkE,MAAM2K,KAAK,OAAD,Q,oBAY9B,UACE/L,WAAY,CACVgC,MAAK,IAEPtC,SAAU,KACL,QAAS,CAAC,UAAW,YAE1BI,QAAS,CACPmP,mBACEtP,KAAKuB,OAAOC,OAAO,2BACrB,EACA+N,uBACEvP,KAAKuB,OAAOC,OACV,iCACCxB,KAAKxE,QAAQuU,sBAGZ/P,KAAKxE,QAAQuU,sBACf/P,KAAKuB,OAAOC,OAAO,kCAAkC,EAEzD,EACAgO,kBACExP,KAAKuB,OAAOC,OACV,kCACCxB,KAAKxE,QAAQwR,uBAGXhN,KAAKxE,QAAQwR,uBAChBhN,KAAKuB,OAAOC,OAAO,iCAAiC,EAExD,MACG,QAAa,CAAC,kBCtHf,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,M,mECHI,OAA2B,UAAvB,sBAAkB,K,iBAOjB5G,MAAM,gB,0FAVL,EAAA8G,OAAgB,Y,WAFxB,QAoBQ,G,MAnBN9G,MAAM,aAEL,QAAK,eAAE,EAAAiH,YAAY,e,mBAEpB,IAA2B,CAA3B,IACA,OAKY,YAJTR,MAAO,EAAA2O,UACP,QAAK,yBAAO,EAAAC,MAAQjU,EAAOqJ,OAAOhE,OAAK,WACvC,QAAK,eAAErF,EAAOqJ,OAAO6K,UACrB,QAAK,sBAAN,QAAc,Y,aAEhB,OAOM,MAPN,GAOM,EANJ,OAEM,OAFDtV,MAAM,mBAAoB,QAAK,oBAAE,EAAAuV,MAAA,EAAAA,QAAA,K,EACpC,QAAiC,GAAdhU,KAAK,U,QAAS,iBAEY,EAAAX,QAAQ8C,a,4BAAvD,QAEM,O,MAFD1D,MAAM,eAAgB,QAAK,oBAAE,EAAAwV,MAAA,EAAAA,QAAA,K,EAChC,QAAgC,GAAbjU,KAAK,S,QAAQ,wB,uBAUxC,UACEkE,WAAY,CACVgC,MAAK,IAEPtC,SAAU,CACRiQ,UAAW,WACT,OAAOrF,KAAK0F,UAAU,CACpB9T,OAAQyD,KAAK1E,QAAQiB,OAAO1C,KAAI,EAAGG,QAASA,IAC5CyF,QAASO,KAAKP,QAAQkF,WAClB,CAAE3K,GAAIgG,KAAKP,QAAQzF,IACnBgG,KAAKP,QACT8C,MAAOvC,KAAKP,QAAQkF,WAChB,GACA3E,KAAKuB,OAAO4D,QAAQmL,oBACxB9T,OAAQwD,KAAK1E,QAAQkB,OAAO3C,KAAI2C,GAC9BA,EAAO+M,SAAW/M,EAAS,CAAExC,GAAIwC,EAAOxC,MAE1CsB,QAAS0E,KAAK1E,QAAQA,QAAQzB,KAAI+B,IAAU,IACvCA,EACHU,KAAMV,EAAOU,KAAKtC,IAAM,CAAC,OAG/B,MACG,QAAS,CAAC,SAAU,UAAW,UAAW,QAAS,aAExDkG,OACE,MAAO,CACL+P,MAAO,GAEX,EACA9P,QAAS,CACPgQ,KAAM,WACJ9I,UAAUC,UAAUC,UAAUvH,KAAKiQ,OAASjQ,KAAKgQ,UACnD,EACAI,KAAM,WACJ,IAAIpQ,KAAKxE,QAAQ8C,YACjB,IACE,MAAM4B,EAAOyK,KAAKC,MAAM5K,KAAKiQ,OAASjQ,KAAKgQ,YACrC,OAAEzT,EAAM,QAAEkD,EAAO,MAAE8C,EAAK,OAAE/F,EAAM,QAAElB,GAAY4E,EAChDqC,GACFvC,KAAKuB,OAAOC,OAAO,iBAAkBe,GAEnC9C,GACFO,KAAKuB,OAAOC,OAAO,aAAc/B,GAE/BlD,EAAOhB,QACTgB,EAAOiG,SAAQ,CAAClG,EAAMT,KACpBmE,KAAKuB,OAAOC,OAAO,mBAAoB,CACrC3F,QACAS,KAAM0D,KAAKuB,OAAOe,MAAMC,MAAM1F,IAAIP,IAAS,CAAC,GAC5C,IAGFE,GACFwD,KAAKuB,OAAOC,OAAO,oBAAqB,CACtChF,OAAQA,EAAO3C,KACb0W,GACEvQ,KAAKuB,OAAOe,MAAM9F,OAAOK,IAAI0T,IAC7BvQ,KAAKuB,OAAOe,MAAM9F,OAAOK,IAAI0T,EAAEvW,KAC/BuW,MAIJjV,GACF0E,KAAKuB,OAAOC,OACV,cACAlG,EAAQzB,KAAI+B,IAAU,IACjBA,EACHU,KACE0D,KAAKuB,OAAOe,MAAMC,MAAM1F,IAAIjB,EAAOU,OACnC0D,KAAKuB,OAAO4D,QAAQqL,cAAc3T,IAAIjB,EAAOU,OAC7C,CAAC,OAIT0D,KAAK6B,YAAY,YACnB,CAAE,MAAOzH,GACP2Q,MAAM,yBAA2B3Q,EACnC,CACF,MACG,QAAa,CAAC,kBCrGf,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,MpC+DA,IACEiG,WAAY,CACVoQ,eAAc,GACdC,iBAAgB,GAChBC,YAAW,GACXC,gBAAe,GACfC,KAAI,GACJC,eAAc,GACdC,MAAK,GACLC,SAAQ,GACRC,WAAU,GACVC,KAAI,GACJC,aAAY,GACZC,WAAU,GACVC,UAAS,IAEXtR,SAAU,KACL,QAAS,CAAC,WAAY,UAAW,eACjC,QAAS,UAAW,CAAC,aAE1BG,OACE,MAAO,CACLvE,QAAS,KAEb,EACAwE,QAAS,CACPtF,OAAM,IAAEiB,EAAG,QAAEwV,EAAO,QAAEC,IACpB,KAAID,GAAWC,GAAWvR,KAAK0B,OAAOpF,MACtC,OAAQR,EAAI0V,qBACV,IAAK,IACHxR,KAAKuB,OAAOC,OAAO,kBACnB,MACF,IAAK,IACHxB,KAAKkK,MAAMuH,KAAK7K,YAChB,MACF,IAAK,IACH5G,KAAKkK,MAAMuH,KAAK/K,cAChB,MACF,IAAK,IACH1G,KAAKkK,MAAMuH,KAAK9K,cAChB,MACF,IAAK,IACH3G,KAAKuB,OAAOC,OAAO,cAAe,aAClC,MACF,IAAK,IACHxB,KAAKuB,OAAOC,OAAO,cAAe,cAClC,MACF,IAAK,IACH,GAAIxB,KAAKxE,QAAQ8C,YAAa,OAC9B0B,KAAKuB,OAAOC,OAAO,cAAe,WAClC,MACF,IAAK,IACH,GAAIxB,KAAKxE,QAAQ8C,YAAa,OAC9B0B,KAAKuB,OAAOC,OAAO,cAAe,SAClC,MACF,IAAK,KACCxB,KAAKxE,QAAQ8J,YAAY/J,QAAWyE,KAAKxE,QAAQ8C,aACnD0B,KAAKuB,OAAOC,OAAO,cAAe,eAEpC,MACF,IAAK,IACH,GAAIxB,KAAKxE,QAAQ8C,YAAa,OAC9B0B,KAAKkK,MAAMuH,KAAK9L,cAChB,MACF,IAAK,SACH3F,KAAKuB,OAAOC,OAAO,eAEzB,IqCpIE,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAASkQ,KAEpE,M,0BCTA,MAAMC,GACJC,YAAYC,GACV7R,KAAK8R,KAAO,4CAEZ9R,KAAK+R,QAAU,KACf/R,KAAKgS,cAAe,EACpBhS,KAAKiS,WAAa,GAClBjS,KAAKkS,OAASL,EACd7R,KAAKmS,cAAgB,IACrBnS,KAAKoS,WAAa,KAClBpS,KAAKqS,gBAAkB,KACvBrS,KAAKsS,SAAW,CAAC,EACjBtS,KAAKuS,OAAS,CAAC,EAEXvS,KAAKkS,OAAO5P,MAAM9G,QAAQqC,WAC5BmC,KAAKwS,QAAQxS,KAAKkS,OAAO5P,MAAM9G,QAAQqC,UAE3C,CAOA4U,MAAMC,GACJ1S,KAAK2S,aACL3S,KAAK+R,QAAU,IAAIa,UACjB5S,KAAK8R,KACHY,EACA,KACC1S,KAAKgS,aAAehS,KAAKkS,OAAO5P,MAAM9G,QAAQmD,SAAW,SAE9DqB,KAAK+R,QAAQrH,iBAAiB,UAAW1K,KAAK6S,eAAenL,KAAK1H,OAClEA,KAAK+R,QAAQe,OAAS9S,KAAK+S,QAAQrL,KAAK1H,MACxCA,KAAK+R,QAAQiB,QAAWC,IACtBjT,KAAK+R,QAAU,KACfxD,cAAcvO,KAAKoS,YACnBpS,KAAKoS,WAAa,KACD,MAAba,EAAI3Y,MAEN0F,KAAKkS,OAAO1Q,OAAO,2BAA2B,GAC9CxB,KAAKqS,gBAAkB5K,YACrB,IAAMzH,KAAKwS,QAAQE,IACnB,OAGF1S,KAAKkS,OAAO1Q,OAAO,uBAAwB,IACvCyR,EAAIzG,QAAQzB,MAAMkI,EAAIzG,QAC5B,CAEJ,CAQA0G,MAAMC,EAASpP,GACT/D,KAAK+R,SAAuC,IAA5B/R,KAAK+R,QAAQqB,YAC/BpT,KAAK+R,QAAQsB,KAAK1I,KAAK0F,UAAU,CAAC8C,EAASpP,IAE/C,CAUAuP,YAAY3U,EAAUwU,EAASpP,GACzBpF,EACFqB,KAAKkT,MAAM,SAAU,CAAE,CAACvU,GAAW,CAACwU,EAASpP,KAE7C/D,KAAKkT,MAAMC,EAASpP,EAExB,CAMAgP,UACM/S,KAAKgS,aACPhS,KAAKsT,YACH,OACA,eACAtT,KAAKkS,OAAO5P,MAAM9G,QAAQmD,UAG5BqB,KAAKuT,gBAEPvT,KAAKwT,OACP,CAMAA,QACExT,KAAKyT,cACLzT,KAAKkT,MAAM,OAAQ,CACjBlT,KAAKgS,aACDhS,KAAKkS,OAAO5P,MAAM9G,QAAQmD,SAC1BnE,OAAOD,KAAKyF,KAAKsS,UAAU/W,OAC/B,YAEFmY,aAAa1T,KAAKoS,YAClBpS,KAAKoS,WAAa3K,WAAWzH,KAAKwT,MAAM9L,KAAK1H,MAAOA,KAAKmS,cAC3D,CAOAU,gBAAe,KAAE3S,IACf,IAAIiT,EAASpP,EACb,KACGoP,EAASpP,GAAU4G,KAAKC,MAAM1K,EACjC,CAAE,MAAO+S,GACPU,QAAQC,IAAI,6BAA8B1T,EAC5C,CACA,OAAQiT,GACN,IAAK,eACHnT,KAAKuT,cAAcxP,GACnB,MACF,IAAK,UACH/D,KAAK6T,eAAe9P,GACpB,MACF,IAAK,SACH/D,KAAK8T,cAAc/P,GACnB,MACF,IAAK,KACH/D,KAAK+T,iBAAiBhQ,GACtB,MACF,IAAK,SACH/D,KAAKgU,cAAcjQ,GACnB,MACF,IAAK,QACH/D,KAAKiU,YAAYlQ,GACjB,MACF,IAAK,OACH/D,KAAKyT,YAAY1P,GACjB,MACF,IAAK,aACH,IAAK/D,KAAKgS,aAAc,OACnBjO,GAEH/D,KAAKkS,OAAO1Q,OACV,qBACAxB,KAAKkS,OAAO5P,MAAMhH,QAAQA,SAG9B0E,KAAKkS,OAAO1Q,OAAO,qBAAsB,CAAE/F,WAAYsI,IACvD,MACF,IAAK,OACH,IAAK/D,KAAKgS,aAAc,OACxBhS,KAAKkS,OAAO1Q,OAAO,eAAgBuC,GACnC,MACF,IAAK,OACH,IAAK/D,KAAKgS,aAAc,OACxBhS,KAAKkS,OAAO1Q,OAAO,eAAgBuC,GACnC,MACF,IAAK,SACH,IAAK/D,KAAKgS,aAAc,OACxBhS,KAAKkS,OAAO1Q,OAAO,iBAAkBuC,GACrC,MACF,IAAK,SACH,IAAK/D,KAAKgS,aAAc,OACxBhS,KAAKkS,OAAO1Q,OAAO,0BAA2BuC,GAC9C,MACF,IAAK,UACH,IAAK/D,KAAKgS,aAAc,OACxBhS,KAAKkS,OAAO1Q,OAAO,cAAeuC,GAClC,MACF,IAAK,uBACH,IAAK/D,KAAKgS,aAAc,OACxBhS,KAAKkS,OAAO1Q,OAAO,gCAAiCuC,GACpD/D,KAAKkS,OAAO1Q,OAAO,4BACnB,MACF,IAAK,wBACH,IAAKxB,KAAKgS,aAAc,OACxBhS,KAAKkS,OAAO1Q,OAAO,iCAAkCuC,GACrD,MACF,IAAK,cACH,IAAK/D,KAAKgS,aAAc,OACxBhS,KAAKkS,OAAO1Q,OAAO,yBAA0BuC,GAC7C,MACF,IAAK,mBACH,IAAK/D,KAAKgS,aAAc,OACxBhS,KAAKkS,OAAO1Q,OAAO,4BACnB,MACF,IAAK,mBACH,IAAKxB,KAAKgS,aAAc,OACxBhS,KAAKkS,OAAO1Q,OAAO,4BAA6BuC,GAChD,MACF,IAAK,OACH/D,KAAKkU,YAAYnQ,GACjB,MACF,IAAK,OACH/D,KAAKmU,YAAYpQ,GACjB,MACF,IAAK,MACH/D,KAAKoU,WAAWrQ,GAChB,MACF,IAAK,WACH/D,KAAKqU,sBAAsBtQ,GAC3B,MAEN,CAOAyO,QAAQE,GACD1S,KAAKkS,OAAO5P,MAAM9G,QAAQmD,UAC7BqB,KAAKkS,OAAO1Q,OACV,sBACAuE,KAAKiB,SACF2I,SAAS,IACT2E,OAAO,IAGdtU,KAAKuS,OAAS,CAAC,EACfvS,KAAKkS,OAAO1Q,OAAO,yBAA0B,GAC7CxB,KAAKkS,OAAO1Q,OAAO,kBAAmB,GACtCxB,KAAKgS,aAAehS,KAAKkS,OAAO5P,MAAM9G,QAAQ8C,YAC9C0B,KAAKyS,MAAMC,EACb,CAKAC,aACE3S,KAAKuS,OAAS,CAAC,EACfvS,KAAKkS,OAAO1Q,OAAO,yBAA0B,GAC7CxB,KAAKkS,OAAO1Q,OAAO,kBAAmB,GACtCxB,KAAKkS,OAAO1Q,OAAO,2BAA2B,GAC9CkS,aAAa1T,KAAKqS,iBACdrS,KAAK+R,UACH/R,KAAKgS,cACPhS,KAAKsT,YAAY,OAAQ,MAAOtT,KAAKkS,OAAO5P,MAAM9G,QAAQmD,UAE5DqB,KAAK+R,QAAQhQ,MAAM,KACnB/B,KAAK+R,QAAU,KAEnB,CAQAwB,cAAc5U,EAAW,GAAI4V,GAAgB,GAC3C,IAAIvU,KAAKgS,aAWT,GAVAhS,KAAKiS,WAAajS,KAAKkS,OAAO5P,MAAMhH,QAAQA,QAAQzB,KAAK+B,IAAW,CAClEuC,KAAMvC,EAAOuC,KACbnE,GAAI4B,EAAO5B,GACXgE,OAAQpC,EAAOoC,OACfC,WAAYrC,EAAOqC,WACnBG,SAAUxC,EAAOwC,YACbxC,EAAOU,MAA6B,aAArBV,EAAOU,KAAKoD,KAC3B,CAAE8U,OAAQ5Y,EAAOU,KAAKtC,IACtB,CAAC,MAEHua,EACFvU,KAAKsT,YAAY3U,EAAU,KAAM,CAC/BqR,UAAWhQ,KAAKiS,WAChBsC,sBAEG,CACL,MAAM,QAAE/Y,EAAO,SAAER,GAAagF,KAAKkS,OAAO5P,OACpC,OAAE9F,GAAWwD,KAAKkS,OAAO5P,MAAMhH,QACrC0E,KAAKyU,YAAY9V,GACjBqB,KAAKsT,YAAY3U,EAAU,KAAM,CAC/BqR,UAAWhQ,KAAKiS,WAChBrM,QAAS5K,EAAS4K,QAClBmK,qBAAsBvU,EAAQuU,qBAC9B/C,sBAAuBxR,EAAQwR,sBAC/BvR,WAAYD,EAAQC,WACpByR,YAAa1R,EAAQ0R,YACrB1O,WAAYhD,EAAQgD,WACpByO,iBAAkBzR,EAAQyR,iBAC1ByH,aAAclZ,EAAQkZ,aACtBlY,OAAQA,EAAO3C,KAAK0W,GAAOA,EAAEhH,SAAWgH,EAAI,CAAEvW,GAAIuW,EAAEvW,SAChDwB,EAAQC,WAAa,CAAEgG,MAAOjG,EAAQiG,OAAU,CAAC,GAEzD,CACF,CAOAsS,iBAAiB7T,GACf,IAAKF,KAAKgS,aAAc,OACxB,MAAM,UACJhC,EAAS,cACTuE,EAAa,QACb3O,EAAO,qBACPmK,EAAoB,sBACpB/C,EAAqB,WACrBvR,EAAU,YACVyR,EAAW,MACXzL,EAAK,WACLjD,EAAU,iBACVyO,EAAgB,aAChByH,EAAY,OACZlY,GACE0D,EACE5E,EAAU0E,KAAKkS,OAAO5P,MAAMhH,QAAQA,QAE1C,GAAIA,EAAQC,OAASyU,EAAUzU,OAC7B,IAAK,IAAIgE,EAAIjE,EAAQC,OAAQgE,EAAIyQ,EAAUzU,OAAQgE,IACjDS,KAAKkS,OAAO1Q,OAAO,cAAewO,EAAUzQ,GAAGpB,WAE5C,GAAI7C,EAAQC,OAASyU,EAAUzU,OACpC,IAAK,IAAIgE,EAAIjE,EAAQC,OAAQgE,EAAIyQ,EAAUzU,OAAQgE,IACjDS,KAAKkS,OAAO1Q,OAAO,iBAAkBjC,EAAI,GAI7CyQ,EAAUxN,SAAQ,CAACF,EAAO/C,KACxB,MAAM3D,EAASN,EAAQiE,IACjB,OAAEiV,GAAWlS,EASnB,GAPA,CAAC,OAAQ,KAAM,SAAU,aAAc,YAAYE,SAASpB,IAC1D,MAAMC,EAAQiB,EAAMlB,GAChBxF,EAAOwF,KAAcC,GACvBrB,KAAKkS,OAAO1Q,OAAO,iBAAkB,CAAE5F,SAAQwF,WAAUC,SAC3D,IAGEmT,GAAU5Y,EAAOU,KAAKtC,KAAOwa,EAAQ,CACvC,MAAMlY,EACJ0D,KAAKkS,OAAO5P,MAAMC,MAAM1F,IAAI2X,IAC5BxU,KAAKkS,OAAO/M,QAAQqL,cAAc3T,IAAI2X,GACpClY,GACF0D,KAAKkS,OAAO1Q,OAAO,iBAAkB,CACnC5F,SACAwF,SAAU,OACVC,MAAO/E,GAGb,MAAYkY,GAA+B,aAArB5Y,EAAOU,KAAKoD,MAChCM,KAAKkS,OAAO1Q,OAAO,iBAAkB,CACnC5F,SACAwF,SAAU,OACVC,MAAO,CAAC,GAEZ,IAEGkT,IACHvU,KAAKkS,OAAO1Q,OAAO,gBAAiBoE,GACpC5F,KAAKkS,OAAO1Q,OAAO,gCAAiCuO,GACpD/P,KAAKkS,OAAO1Q,OACV,iCACAwL,GAEFhN,KAAKkS,OAAO1Q,OAAO,qBAAsB,CACvC/F,aACAgG,QACAyL,cACA1O,aACAyO,qBAEFjN,KAAKkS,OAAO1Q,OAAO,0BAA2BkT,GAC9C1U,KAAKkS,OAAO1Q,OAAO,oBAAqB,CACtChF,OAAQA,EAAO3C,KAAK0W,GAAMvQ,KAAKkS,OAAO5P,MAAM9F,OAAOK,IAAI0T,EAAEvW,KAAOuW,MAGtE,CAMAkE,YAAY9V,EAAW,IACrB,GAAIqB,KAAKgS,aAAc,OACvB,MAAM,QAAEvS,GAAYO,KAAKkS,OAAO5P,MAChC,IAAIC,EACC9C,EAAQkF,aACXpC,EAAQvC,KAAKkS,OAAO/M,QAAQmL,qBAE9BtQ,KAAKsT,YAAY3U,EAAU,UAAW,CACpCc,QAASA,EAAQkF,WAAa,CAAE3K,GAAIyF,EAAQzF,IAAOyF,KAC/C8C,EAAQ,CAAEA,SAAU,CAAC,GAE7B,CAQAsR,gBAAe,QAAEpU,EAAO,MAAE8C,IACxB,GAAKvC,KAAKgS,eACVhS,KAAKkS,OAAO1Q,OAAO,aAAc/B,GAC7B8C,IACFvC,KAAKkS,OAAO1Q,OAAO,iBAAkBe,GACjCvC,KAAKkS,OAAO5P,MAAMC,MAAMgI,OAAShI,EAAMhH,SAAQ,CACjD,MAAMoZ,EAAU,GAChBpS,EAAMC,SAAQ,EAAGxI,SACVgG,KAAKkS,OAAO5P,MAAMC,MAAM1F,IAAI7C,IAC/B2a,EAAQ7R,KAAK9I,EACf,IAEF+Q,MAGI,gHAAkB4J,EAAQvI,KAAK,SAEnCpM,KAAK2S,aACL3S,KAAKkS,OAAO1Q,OAAO,cAAe,UACpC,CAEJ,CAKAoT,aACE,GAAI5U,KAAKgS,aAAc,OACvB,MAAM,OAAExV,GAAWwD,KAAKkS,OAAO5P,MAAMhH,QACrC0E,KAAKkT,MACH,SACA1W,EAAO3C,KAAK0W,GAAOA,EAAEhH,SAAWgH,EAAI,CAAEvW,GAAIuW,EAAEvW,MAEhD,CAOA8Z,cAActX,GACPwD,KAAKgS,cACVhS,KAAKkS,OAAO1Q,OAAO,oBAAqB,CACtChF,OAAQA,EAAO3C,KAAK0W,GAAMvQ,KAAKkS,OAAO5P,MAAM9F,OAAOK,IAAI0T,EAAEvW,KAAOuW,KAEpE,CAQAsE,YAAW,OAAEjZ,EAAM,SAAEwF,EAAQ,MAAEC,IAC7B,GAAIrB,KAAKgS,cAA6B,cAAb5Q,EAA0B,OACnD,MAAMvF,EAAQmE,KAAKkS,OAAO5P,MAAMhH,QAAQA,QAAQkF,QAAQ5E,GACvC,SAAbwF,EACEC,EAAM3B,MAAuB,aAAf2B,EAAM3B,MAEtBM,KAAKiS,WAAWpW,GAAO2Y,OAASnT,EAAMrH,GACtCgG,KAAKkT,MAAM,SAAU,CACnBrX,QACAuF,WACAC,MAAOA,EAAMrH,MAENgG,KAAKiS,WAAWpW,GAAO2Y,gBAEzBxU,KAAKiS,WAAWpW,GAAO2Y,OAC9BxU,KAAKkT,MAAM,SAAU,CAAErX,QAAOuF,WAAUC,MAAO,MAGjDrB,KAAKkT,MAAM,SAAU,CAAErX,QAAOuF,WAAUC,SAE5C,CASA2S,eAAc,MAAEnY,EAAK,SAAEuF,EAAQ,MAAEC,IAC/B,IAAKrB,KAAKgS,aAAc,OACxB,MAAMpW,EAASoE,KAAKkS,OAAO5P,MAAMhH,QAAQA,QAAQO,GACjD,GAAKD,EAEL,GAAiB,SAAbwF,EACF,GAAKC,GAA8B,aAArBzF,EAAOU,KAAKoD,KAOnB,CAEL,MAAMpD,EACJ0D,KAAKkS,OAAO5P,MAAMC,MAAM1F,IAAIwE,IAC5BrB,KAAKkS,OAAO/M,QAAQqL,cAAc3T,IAAIwE,IACtC,CAAC,EACHrB,KAAKkS,OAAO1Q,OAAO,iBAAkB,CACnC5F,SACAwF,SAAU,OACVC,MAAO/E,GAEX,MAhBE0D,KAAKkS,OAAO1Q,OAAO,iBAAkB,CACnC5F,SACAwF,SAAU,OACVC,MAAO,CAAC,SAgBZrB,KAAKkS,OAAO1Q,OAAO,iBAAkB,CAAE5F,SAAQwF,WAAUC,SAE7D,CAQAyT,oBAAmB,OAAElZ,EAAM,MAAEyF,EAAK,cAAE0T,IAGlC,GACEA,GACC/U,KAAKgS,cAAgBhS,KAAKkS,OAAO5P,MAAM9G,QAAQmD,WAAa/C,EAAO5B,GAEpE,OACF,MAAM6B,EAAQmE,KAAKkS,OAAO5P,MAAMhH,QAAQA,QAAQkF,QAAQ5E,GACxDoE,KAAKkT,MAAM,WAAY,CAACrX,EAAOwF,GACjC,CAQAgT,uBAAuBxY,EAAOwF,IAC5B,MAAMzF,EAASoE,KAAKkS,OAAO5P,MAAMhH,QAAQA,QAAQO,GAEjDmE,KAAKkS,OAAO1Q,OAAO,iBAAkB,CACnC5F,SACAwF,SAAU,WACVC,QACA0T,eAAe,GAEnB,CAQAtB,aAAauB,EAAkB,EAAGC,GAAW,IAC3C,MAAMC,GAAM,IAAIC,MAAOC,UACvB,GAAKpV,KAAKgS,aAgCCiD,GAETjV,KAAKkS,OAAO1Q,OAAO,kBAAmB6T,SAASJ,EAAS,SAlClC,CAEtB,IAAK,IAAIrZ,KAAUoE,KAAKsS,SAClB4C,EAAMlV,KAAKsS,SAAS1W,GAA+B,EAArBoE,KAAKmS,uBAC9BnS,KAAKsS,SAAS1W,UACdoE,KAAKuS,OAAO3W,IAcvB,GAVAoE,KAAKkS,OAAO5P,MAAMhH,QAAQA,QAAQkH,SAAS5G,IACrCA,EAAO5B,KAAOgG,KAAKsS,SAAS1W,EAAO5B,KACrCgG,KAAKkS,OAAO1Q,OAAO,iBAAkB,CACnC5F,SACAwF,SAAU,KACVC,MAAO,IAEX,IAGE2T,EAAiB,CACnBhV,KAAKsS,SAAS0C,GAAmBE,EACjC,MAAM3O,EAAO8O,SAASJ,EAAS,IAC/B,GAAI1O,GAAQA,EAAO,GAAKA,EAAO,IAAW,CAExCvG,KAAKuS,OAAOyC,GAAmBzO,EAC/B,MAAM+O,EAAQ9a,OAAOoO,OAAO5I,KAAKuS,QACjCvS,KAAKkS,OAAO1Q,OACV,kBACAuE,KAAKC,MAAMsP,EAAMrN,QAAO,CAACC,EAAGW,IAAMX,EAAIW,GAAG,GAAKyM,EAAM/Z,QAExD,CACF,CACF,CAKKyE,KAAKgS,eAAgBgD,GACxBhV,KAAKkS,OAAO1Q,OACV,yBACAxB,KAAKgS,aAAegD,EAAkBxa,OAAOD,KAAKyF,KAAKsS,UAAU/W,OAGvE,CAOA6Y,WAAWzV,GACLqB,KAAKgS,sBACFhS,KAAKsS,SAAS3T,GACrBqB,KAAKkS,OAAO1Q,OACV,yBACAhH,OAAOD,KAAKyF,KAAKsS,UAAU/W,QAE/B,CAOAmD,UAAU6W,GACR,IAAKvV,KAAKgS,aAAc,OACxB,MAAM1W,EAAU0E,KAAKkS,OAAO5P,MAAMhH,QAAQA,QACtCA,EAAQC,OAASga,IAASA,EAAO,IAAMja,EAAQia,GAAMvb,KACvDgG,KAAKkT,MAAM,QAAS,CAACqC,EAAMvV,KAAKkS,OAAO5P,MAAM9G,QAAQmD,UAEzD,CAQAsV,aAAapY,EAAOwF,IAClB,GAAIrB,KAAKgS,aAAc,OACvB,MAAM5Q,EAAW,KACX9F,EAAU0E,KAAKkS,OAAO5P,MAAMhH,QAAQA,QAEpCka,EAAWla,EAAQmQ,WAAU,EAAGzR,QAASA,IAAOqH,IAStD,GARImU,GAAY,GAAKA,IAAa3Z,GAChCmE,KAAKkS,OAAO1Q,OAAO,iBAAkB,CACnC5F,OAAQN,EAAQka,GAChBpU,WACAC,MAAO,KAIPxF,GAAS,EAAG,CACd,MAAMD,EAASN,EAAQO,GACvB,IAAKD,EAAQ,OACboE,KAAKkS,OAAO1Q,OAAO,iBAAkB,CAAE5F,SAAQwF,WAAUC,SAC3D,CAEArB,KAAKyT,YAAY,EAAC,EAAMpS,EAAO,GACjC,CAMAoF,kBACE,GAAIzG,KAAKgS,aAAc,OACvB,MAAMhH,EAAU,CAAC,EACjBhL,KAAKkS,OAAO5P,MAAMhH,QAAQA,QAAQkH,SAAQ,CAAC5G,EAAQC,KAC7CD,EAAO5B,IAAM4B,EAAOU,OACtB0O,EAAQpP,EAAO5B,IAAM,CACnB,SACA,CAAE6B,QAAOuF,SAAU,OAAQC,MAAOzF,EAAOU,KAAKtC,KAElD,IAEEQ,OAAOD,KAAKyQ,GAASzP,QACvByE,KAAKkT,MAAM,SAAUlI,EAEzB,CAQAvP,WAAWga,GACT,GAAIzV,KAAKgS,aAAc,OACvB,MAAMvW,EAAaga,GAAUA,EAAQha,YAAwBga,EACvDna,EAAU0E,KAAKkS,OAAO5P,MAAMhH,QAAQA,UAEvCG,GACAH,EAAQC,OAASE,EAAW,IAAMH,EAAQC,OAASE,EAAW,MAE/DuE,KAAKoN,eAAepN,KAAKkS,OAAO5P,MAAM9G,QAAQ0R,aAC9ClN,KAAKkT,MAAM,aAAczX,GAE7B,CAKAia,oBACM1V,KAAKgS,cACThS,KAAKkT,MAAM,mBAAoBlT,KAAKkS,OAAO5P,MAAM9G,QAAQyR,iBAC3D,CAKA0I,aACM3V,KAAKgS,cACThS,KAAKkT,MAAM,UAAWlT,KAAKkS,OAAO5P,MAAMtH,SAAS4K,QACnD,CAKAgQ,wBACM5V,KAAKgS,cACThS,KAAKkT,MACH,uBACAlT,KAAKkS,OAAO5P,MAAM9G,QAAQuU,qBAE9B,CAKA8F,yBACM7V,KAAKgS,cACThS,KAAKkT,MACH,wBACAlT,KAAKkS,OAAO5P,MAAM9G,QAAQwR,sBAE9B,CAMAI,eAAeF,GACTlN,KAAKgS,cACL9E,GACFlN,KAAKkT,MAAM,cAAehG,EAE9B,CAMAS,UAAU/L,GACJ5B,KAAKgS,cACThS,KAAKkT,MAAM,SAAUtR,EACvB,CAKA0N,mBACMtP,KAAKgS,cACThS,KAAKkT,MAAM,mBACb,CAOA3V,MAAM1B,IACJ,MAAMD,EAASoE,KAAKkS,OAAO5P,MAAMhH,QAAQA,QAAQO,GAE/CmE,KAAKkS,OAAO5P,MAAM9G,QAAQmD,WAAa/C,EAAO5B,IAC7CgG,KAAKgS,cAGNhS,KAAKkT,MAAM,OAAQ,CACjBrX,EACAmE,KAAKkS,OAAO5P,MAAM9G,QAAQiG,MAAM5F,IAC/BmE,KAAKgS,cAGZ,CAQAkC,aAAarY,EAAO0B,EAAMuY,IACxB,MAAM,QAAEta,EAAO,QAAEF,GAAY0E,KAAKkS,OAAO5P,MACnCkD,EAAclK,EAAQA,QAAQC,OAC9BmF,GACH7E,EAAQ,EAAI2J,EAAchK,EAAQC,WAAW,IAAM+J,GAClDsQ,GAAUpV,GAAiBlF,EAAQgD,WAAa,IAClDwB,KAAKkS,OAAO1Q,OAAO,eAAgB,CAAC3F,EAAO0B,GAE/C,CAKAwY,WACE,GAAI/V,KAAKgS,aAAc,OACvB,MAAM,WAAExT,EAAU,MAAEiD,EAAK,WAAEhG,GAAeuE,KAAKkS,OAAO5P,MAAM9G,SACtD,QAAEF,GAAY0E,KAAKkS,OAAO5P,MAAMhH,QAChCO,GAASJ,EAAW,GAAK+C,EAAa,GAAKlD,EAAQC,OACzDyE,KAAKkT,MAAM,OAAQ,CAAClT,KAAKkS,OAAO5P,MAAM9G,QAAQgD,WAAYiD,EAAM5F,IAClE,CAQAsY,aAAanG,EAAMzQ,IACjB,GAAKyC,KAAKgS,eACVhS,KAAKkS,OAAO1Q,OAAO,mBAAoBwM,GACnCA,EAAO,GAAG,CACZ,MAAM,WAAExP,EAAU,WAAE/C,GAAeuE,KAAKkS,OAAO5P,MAAM9G,SAC/C,QAAEF,GAAY0E,KAAKkS,OAAO5P,MAAMhH,QAChCO,GAASJ,EAAW,GAAK+C,EAAa,GAAKlD,EAAQC,OACrDyE,KAAKkS,OAAO5P,MAAM9G,QAAQiG,MAAM5F,KAAW0B,GAC7CyC,KAAKkS,OAAO1Q,OAAO,eAAgB,CAAC3F,EAAO0B,GAE/C,CACF,CAMAG,WAAW+X,GACLzV,KAAKgS,cACThS,KAAKkT,MAAM,OAAQuC,EACrB,CAMA9X,WAAW8X,GACLzV,KAAKgS,cACThS,KAAKkT,MAAM,OAAQuC,EACrB,CAMAhX,aAAagX,GACPzV,KAAKgS,cACThS,KAAKkT,MAAM,SAAUuC,EACvB,EAGF,SAAgB5D,IAEd,MAAMrW,EAAU,IAAImW,GAAYE,GAGhCA,EAAMmE,WAAU,EAAGnW,OAAM4V,WAAWnT,KAClC,OAAQzC,GACN,IAAK,uBACCyC,EAAM9G,QAAQqC,UAChBrC,EAAQgX,QAAQlQ,EAAM9G,QAAQqC,YAE9B+C,OAAOsG,SAAS+O,KAAO,GACvBza,EAAQmX,cAEV,MACF,IAAK,oBACHnX,EAAQkD,UAAU+W,GAClB,MACF,IAAK,0BACCA,GACFja,EAAQiL,kBAEV,MACF,IAAK,qBACL,IAAK,wBACHjL,EAAQC,WAAWga,GACnB,MACF,IAAK,4BACHja,EAAQka,kBAAkBD,GAC1B,MACF,IAAK,mBACHja,EAAQ+B,KAAKkY,GACb,MACF,IAAK,mBACHja,EAAQua,WACR,MACF,IAAK,yBACHva,EAAQ4R,eAAeqI,GACvB,MACF,IAAK,2BACHja,EAAQ8T,mBACR,MACF,IAAK,gCACH9T,EAAQoa,wBACR,MACF,IAAK,iCACHpa,EAAQqa,yBACR,MACF,IAAK,cACHra,EAAQma,aACR,MACF,IAAK,aACHna,EAAQiZ,cACR,MACF,IAAK,oBACHjZ,EAAQoZ,aACR,MACF,IAAK,0BACHpZ,EAAQmS,UAAU8H,GAClB,MACF,IAAK,eACHja,EAAQkC,WAAW+X,GACnB,MACF,IAAK,eACHja,EAAQmC,WAAW8X,GACnB,MACF,IAAK,iBACHja,EAAQiD,aAAagX,GACrB,MACF,IAAK,cACL,IAAK,gBACL,IAAK,cACHja,EAAQ+X,cAAc,IAAI,GAC1B,MACF,IAAK,iBACsB,aAArBkC,EAAQrU,SACV5F,EAAQsZ,mBAAmBW,GAE3Bja,EAAQqZ,WAAWY,GAErB,MACJ,IAIF,MAAM5X,EAAY+C,OAAOsG,SAAS+O,KAAK3B,OAAO,GAC1CzW,IACFgU,EAAMrQ,OAAO,wBAAwB,GACrCqQ,EAAMrQ,OAAO,uBAAwB3D,GACrCgU,EAAMrQ,OAAO,kBAAkB,GAElC,ECt7BK0U,GAAY,CAChB/X,KAAM,GACNnE,GAAI,GACJsC,KAAM,CAAC,EACPsC,UAAW,GACXX,YAAY,EACZD,QAAQ,EACRI,SAAU,IAGNkE,GAAQ,KAAM,CAClBhH,QAAS,GACTkB,OAAQ,GACRD,OAAQ,KAGJ4I,GAAU,CACdN,OAAM,QAAEvJ,IACN,OAAOA,EAAQ6H,QAAOvH,IAAWA,EAAOoC,SAAQzC,MAClD,EACA2J,cAAa,QAAE5J,IACb,MAAM4J,EAAe5J,EAAQ6H,QAC3BvH,GAA+B,aAArBA,EAAOU,KAAKoD,OAExB,OAAOqG,KAAKmI,IAAIhJ,EAAa3J,OAAQ,GACvC,EAEAqB,YAAW,QAAEtB,EAAO,OAAEkB,IACpB,MAAM2C,EAAa,CAAC,GACdC,EAAa,CAAC,GACpB9D,EAAQkH,SAAQ,EAAGlG,WACbA,EAAK6C,aAAeA,EAAWoE,SAASjH,EAAK6C,aAC/CA,EAAW2D,KAAKxG,EAAK6C,YAEnB7C,EAAK8C,aAAeA,EAAWmE,SAASjH,EAAK8C,aAC/CA,EAAW0D,KAAKxG,EAAK8C,WACvB,IAEF5C,EAAOgG,SAAQlG,IACTA,EAAK6C,aAAeA,EAAWoE,SAASjH,EAAK6C,aAC/CA,EAAW2D,KAAKxG,EAAK6C,YAEnB7C,EAAK8C,aAAeA,EAAWmE,SAASjH,EAAK8C,aAC/CA,EAAW0D,KAAKxG,EAAK8C,WACvB,IAEFD,EAAWiK,MAAK,CAAClB,EAAGW,IAAMX,EAAIW,IAC9BzJ,EAAWgK,MAAK,CAAClB,EAAGW,IAAMX,EAAIW,IAC9B,MAAMjM,EAAa,IAAIuZ,IAWvB,OAVA7a,EAAQkH,SAAQ5G,IACd,MAAMkB,EAAQiJ,KAAKiD,IAAI7J,EAAWqB,QAAQ5E,EAAOU,KAAK6C,YAAa,GAC7DlC,EAAQ8I,KAAKiD,IAAI5J,EAAWoB,QAAQ5E,EAAOU,KAAK8C,YAAa,GACnExC,EAAWwZ,IAAIxa,EAAQ,CAAEkB,QAAOG,SAAQ,IAE1CT,EAAOgG,SAAQlG,IACb,MAAMQ,EAAQiJ,KAAKiD,IAAI7J,EAAWqB,QAAQlE,EAAK6C,YAAa,GACtDlC,EAAQ8I,KAAKiD,IAAI5J,EAAWoB,QAAQlE,EAAK8C,YAAa,GAC5DxC,EAAWwZ,IAAI9Z,EAAM,CAAEQ,QAAOG,SAAQ,IAEjCL,CACT,GAGIyZ,GAAU,CACdC,WAAU,MAAEhU,EAAK,OAAEd,IACjB,MAAMlG,EAAUgH,EAAMhH,QACnBzB,KAAIqO,GAAK,CAACnC,KAAKiB,SAAUkB,KACzBkB,MAAK,CAAClB,EAAGW,IAAMX,EAAE,GAAKW,EAAE,KACxBhP,KAAIqO,GAAKA,EAAE,KACd1G,EAAO,MAAOlG,EAChB,EACAyL,YAAW,MAAEzE,EAAK,OAAEd,EAAM,UAAE+U,IAC1B,IAAIjb,EACAib,EAAU/a,QAAQ8C,YACpBhD,EAAUgH,EAAMhH,QAAQzB,KAAI+B,IACD,aAArBA,EAAOU,KAAKoD,OACd9D,EAAOU,KAAO,CAAC,GAEjBV,EAAOgD,UAAY,GACZhD,MAGTN,EAAUgH,EAAMhH,QAAQzB,KAAI,EAAGsE,OAAMnE,KAAIoE,eAAe,IACnD8X,GACH/X,OACAnE,KACAoE,eAEFoD,EAAO,YAAa,CAAEhF,OAAQ,MAEhCgF,EAAO,MAAOlG,GACdkG,EAAO,WACT,GAGIgV,GAAY,CAChBC,MAAMnU,GACJA,EAAMhH,QAAU,GAChBgH,EAAM/F,OAAS,GACf+F,EAAM9F,OAAS,EACjB,EACA4Z,IAAI9T,EAAOhH,EAAU,IACnBgH,EAAMhH,QAAUA,CAClB,EASAob,OAAOpU,GAAO,OAAE1G,EAAM,SAAEwF,EAAQ,MAAEC,IAChC,MAAMxF,EAAQyG,EAAMhH,QAAQkF,QAAQ5E,GAChCC,GAAS,IACXyG,EAAMhH,QAAQO,GAAOuF,GAAYC,EAErC,EACAsV,IAAIrU,EAAOnE,GACTmE,EAAMhH,QAAQwH,KAAK,IACdoT,GACH/X,QAEJ,EACAyY,OAAOtU,EAAOzG,GACZyG,EAAMhH,QAAQ6F,OAAOtF,EAAO,EAC9B,EACA8H,KAAKrB,GAAQ4B,EAAMC,KAChB7B,EAAMhH,QAAQ4I,GAAO5B,EAAMhH,QAAQ6I,IAAO,CACzC7B,EAAMhH,QAAQ6I,GACd7B,EAAMhH,QAAQ4I,IAGhB5B,EAAMhH,QAAQ6F,OAAO,EAAG,EAC1B,EACAyC,KAAKtB,GAAQ4B,EAAMC,IACjB7B,EAAMhH,QAAQ6F,OAAOgD,EAAI,EAAG7B,EAAMhH,QAAQ6F,OAAO+C,EAAM,GAAG,GAC5D,EACA2S,SAASvU,GAAO,MAAEzG,EAAK,KAAES,GAAS,CAAC,QACnB8H,IAAVvI,EACFyG,EAAM/F,OAAO4E,OAAOtF,EAAO,EAAGS,GAE9BgG,EAAM/F,OAAS,EAEnB,EACA6S,UAAU9M,GAAO,MAAEzG,EAAK,OAAEW,GAAW,CAAC,QACtB4H,IAAVvI,EACFyG,EAAM9F,OAAO2E,OAAOtF,EAAO,GAClBW,IACJ2M,MAAM2N,QAAQta,GAGjB8F,EAAM9F,OAASA,EAFf8F,EAAM9F,OAAOsG,KAAKtG,GAKxB,GAGF,IACEua,YAAY,EACZzU,SACA6C,WACAkR,WACAG,cC5JIQ,GAAa,CAAC1U,GAAQzG,EAAO0B,MAC5B+E,EAAM7G,aACX6G,EAAMb,MAAQ,IAAIa,EAAMb,OACxBa,EAAMb,MAAM5F,QAAkBuI,IAAT7G,GAAsB+E,EAAMb,MAAM5F,GAAS0B,EAAI,EAGhE,GAAQ,KAAM,CAClBM,UAAW,GACXS,aAAa,EACb2Y,gBAAgB,EAChBzR,YAAa,EACbe,KAAM,EACN5H,SAAU,GACVuY,aAAc,EACdzb,YAAY,EACZgG,MAAO,GACPjD,WAAY,EACZ0O,YAAa,IACbD,kBAAkB,EAClB3H,YAAa,GACboP,cAAe,EACf3E,sBAAsB,EACtB/C,uBAAuB,EACvBlP,oBAAoB,IAGhB,GAAU,CAAC,EAEX,GAAU,CAAC,EAGXsY,GAAOta,GAAQ,CAACwG,EAAO6U,KAC3B7U,EAAMxG,GAAOqb,CAAG,EAGZ,GAAY,CAChBC,YAAahB,GAAI,YACjBiB,aAAcjB,GAAI,eAClBkB,gBAAiBlB,GAAI,kBACrBmB,eAAgBnB,GAAI,eACpBoB,QAASpB,GAAI,QACbhJ,eAAgBgJ,GAAI,eACpBV,kBAAmBU,GAAI,oBACvBqB,gBAAiBrB,GAAI,gBACrBsB,cAAetB,GAAI,cACnBR,sBAAuBQ,GAAI,wBAC3BP,uBAAwBO,GAAI,yBAC5B1X,UAAW0X,GAAI,eACf3P,gBAAiB2P,GAAI,sBACrBuB,aAAarV,EAAOzE,GAClByE,EAAMzE,UAAYA,EACf2T,oBACAoG,QAAQ,aAAc,IACtBtD,OAAO,EAAG,GACf,EACA7Y,WACE6G,GACA,WAAE7G,EAAU,MAAEgG,EAAK,YAAEyL,EAAW,WAAE1O,EAAU,iBAAEyO,GAAqB,CAAC,GAEpE3K,EAAM7G,WAAaA,IAAc,EACjC6G,EAAMb,MAAQA,GAAS,GACvBa,EAAM4K,YAAcA,GAAe5K,EAAM4K,YACzC5K,EAAM9D,WAAaA,GAAc,EACjC8D,EAAM2K,iBAAmBA,IAAoB,CAC/C,EAOA4K,WAAWvV,EAAOhH,GAChB,IAAKgH,EAAMyN,sBAAwBzN,EAAMhE,YAAa,OACtD,IAAKgE,EAAM7G,YAAc6G,EAAM9D,YAAclD,EAAQC,OAAQ,OAC7D,MAAMuc,EAAqD,aAA3Cxc,EAAQgH,EAAM7G,WAAW,IAAIa,KAAKoD,KAClD4C,EAAMgD,YAAYxC,KAAK,CACrB2M,UAAW,IAAI0F,KACfvI,UAAWtR,EAAQgH,EAAM7G,WAAW,IAAI0C,KACxC0O,QAASvR,EAAQgH,EAAM7G,WAAW,IAAI0C,KACtC0B,KAAMiY,EAAU,QAAU,YAC1BhI,SAAU/J,KAAKgH,KACbzR,EAAQ6H,QAAQvH,IAAYA,EAAOoC,QAAU8Z,IAASvc,OAAS,GAEjEkG,MAAOnG,EACJ6H,QAAO,CAACvH,EAAQC,IAAUyG,EAAMb,MAAM5F,KACtChC,KAAI,EAAGsE,UAAWA,KAEzB,EACAmR,iBAAiBhN,GACfA,EAAMgD,YAAc,EACtB,EAOA/H,KAAMyZ,GACNe,SAAUf,GACVjB,SAASzT,EAAO0L,GACd1L,EAAM9D,gBAAsB4F,IAAT4J,EAAqBA,EAAO1L,EAAM9D,WAAa,CACpE,GAGF,IACEuY,YAAY,EACZzU,MAAK,GACL6C,QAAO,GACPkR,QAAO,GACPG,UAAS,I,2g6FCzGLwB,GAAoB,CAACvY,EAAU,QAC5B,IAAI0W,IACT,WACWlT,GAAMA,EAAExD,UAAYA,EAAQzF,IAAMyF,EAAQ8C,MAAMgB,SAASN,EAAEjJ,MACnEoP,MAAK,CAAClB,EAAGW,IAAMA,EAAEnJ,KAAKuY,cAAc/P,EAAExI,QACtC7F,KAAKyC,GAAS,CAACA,EAAKtC,GAAIsC,MAIzB4b,GAA2B,CAACzY,EAAU,QACnC,WACJwD,GACY,aAAXA,EAAEvD,MACFuD,EAAExD,UAAYA,EAAQzF,KACrByF,EAAQ8C,MAAMgB,SAASN,EAAEjJ,MAI1Bme,GAAuB,CAAC1Y,EAAU,QAC/B,WACJwD,GACY,aAAXA,EAAEvD,MACFuD,EAAExD,UAAYA,EAAQzF,KACrByF,EAAQ8C,MAAMgB,SAASN,EAAEjJ,MAI1Boe,GAAepe,GACZ,SAAgBiJ,GAAMA,EAAEjJ,KAAOA,IAIlC,GACH8B,GACD,EAAGd,YAAYmc,KACbnc,EAASc,GAAOqb,CAAG,EAGjBkB,GACHvc,GACD,EAAGd,YAAYmc,KAEXnc,EAASc,IADC,IAARqb,IAAwB,IAARA,EACFA,GAECnc,EAASc,EAC5B,EAGEwc,GAASte,GAAOA,EAAGwX,oBAAoBoG,QAAQ,aAAc,IAG7DW,GAAkB,IAAIpC,IAC1B,QAAiB1W,GAAY,CAACA,EAAQzF,GAAIyF,MAEtC+Q,GAAgB,IAAI2F,IAAI,QAAe7Z,GAAS,CAACA,EAAKtC,GAAIsC,MAC1DE,GAAS,IAAI2Z,IAAI,QAAgB7Z,GAAS,CAACA,EAAKtC,GAAIsC,MAG1D,IAAImQ,GAAS,CAAC,EACd,IAKEA,GAAS,IAAI0J,IACX,QAAe,EAAGnc,KAAIwe,YAAa,CACjCF,GAAMte,GACN,IAAImc,IAAIqC,EAAO3e,KAAI,EAAGG,KAAIwS,YAAa,CAAC8L,GAAMte,GAAKwS,SAIzD,CAAE,MAAOpS,IACPuZ,QAAQ8E,MAAM,uBAAwBre,GACxC,CAGA,MAAMse,GAAa,CACjB1e,GAAI,GACJmE,KAAM,GACNgE,MAAO,GACPxC,QAAS,GACTF,QAAS,SACTN,WAAY,EACZnC,mBAAoB,GACpBoC,WAAY,EACZlC,mBAAoB,GACpB0B,UAAW,GACXqB,gBAAiB,GACjB8I,OAAO,EACPrJ,KAAM,YACN6J,UAAU,GAGCsI,GAAQ,iBAAiB,CACpC8G,QAAS,CACPrd,QAAO,GACPE,QAAO,IAET8G,MAAO,CACLtH,SAAU,CACR4K,SAAS,EACT7I,cAAc,EACdkE,UAAU,EACV/C,YAAY,EACZkI,UAAU,EACVE,SAAS,EACTqB,cAAc,EACdvK,KAAM,EACNnC,WAAY,IAEdyG,OAAQ,CACNjC,SAAS,EACTjD,QAAQ,EACRoc,WAAW,EACXhc,YAAY,EACZqP,WAAW,EACXpN,UAAU,EACVvC,MAAM,EACNiG,OAAO,EACP+C,aAAa,GAEf7F,QAAS8Y,GAAgB1b,IAAI,MAC7B0F,MAAOyV,KACPpV,eAAgBsV,KAChBrV,WAAYsV,KACZ3b,UACAiQ,WAEFtH,QAAS,CAOPmL,oBAAqB,EAAG/N,YACtB,MAAMsW,EAAc,GACdC,EAAate,OAAOD,KAAKme,IACzBK,EAAgB,CACpB,qBACA,qBACA,YAmBF,OAjBAxW,EAAMC,SAASlG,IACb,GAAKA,EAAKiN,SAEH,CACL,MAAMyP,EAAe,CAAC,EACtB,IAAK,IAAIC,KAAQ3c,EAAM,CACrB,GAAIyc,EAAcxV,SAAS0V,GACzB,SAEF,MAAM5X,EAAQ/E,EAAK2c,GACfH,EAAWvV,SAAS0V,IAAS5X,IAAUqX,GAAWO,KACpDD,EAAaF,EAAWtY,QAAQyY,IAAS5X,EAE7C,CACAwX,EAAY/V,KAAKkW,EACnB,MAbEH,EAAY/V,KAAK,CAAE9I,GAAIsC,EAAKtC,IAa9B,IAEK6e,CAAW,EAEpBrI,cAAe,IAAMA,GACrB0I,SAAUd,IAEZ5B,UAAW,CACT1Q,QAAS,GAAI,QACbG,cAAe,GAAI,cACnBI,YAAagS,GAAO,WACpB5S,WAAY4S,GAAO,cACnBxS,iBAAkBwS,GAAO,gBACzBlS,aAAckS,GAAO,YACrB1S,YAAa0S,GAAO,WACpB3S,eAAgB2S,GAAO,YACvBzQ,iBAAkByQ,GAAO,gBACzBxW,aAAY,OAAEH,GAAUvD,GAClBA,IACFuD,EAAOvD,IAASuD,EAAOvD,IAEzB,IAAK,IAAIgb,KAASzX,EACZyX,IAAUhb,IACduD,EAAOyX,IAAS,EAEpB,EAMAC,eAAe9W,EAAOC,GACpB,MAAM8W,EAAiB9W,EAEpB1I,KAAKyC,IACJ,GAAIA,EAAK,GAAI,CACX,MAAMwc,EAAate,OAAOD,KAAKme,IACzBY,EAAa,CAAC,EACpB,IAAK,IAAIL,KAAQ3c,EACXwc,EAAWG,KACbK,EAAWR,EAAWG,IAAS3c,EAAK2c,IAGxC,OAAOK,CACT,CACE,OAAOhd,CACT,IAGDzC,KAAKyC,IACJA,EAAKtC,GAAKse,GAAMhc,EAAKtC,IACdsC,KAGRzC,KACEyC,GACCkU,GAAc3T,IAAIP,EAAKtC,KACvBsI,EAAMC,MAAM1F,IAAIP,EAAKtC,KACrBQ,OAAOoR,OAAO,CAAC,EAAG8M,GAAYpc,KAGjCzC,KAAKyC,IACAkU,GAAc3T,IAAIP,EAAKtC,MAC3BsC,EAAK8F,SACH,CACE0C,UAAW,OACXC,SAAU,WACVC,OAAQ,SACRC,MAAO,OACPzI,OAAQ,UACRF,EAAKoD,OAAS,SAClBpD,EAAK6C,WAAa4G,KAAKwT,IAAIjd,EAAK6C,YAChC7C,EAAK8C,WAAa2G,KAAKwT,IAAIjd,EAAK8C,aAVO9C,KAcxC6G,QAAQ7G,GAASA,EAAK6B,MAAQ7B,EAAKqD,SAAWrD,EAAKoD,OAEnD0J,MAAK,CAAClB,EAAGW,IAAMA,EAAEnJ,KAAKuY,cAAc/P,EAAExI,QAEzC4C,EAAMC,MAAQ,IAAI4T,IAChBkD,EACGlW,QAAQ7G,GAAuB,WAAdA,EAAKoD,OACtB7F,KAAKyC,GAAS,CAACA,EAAKtC,GAAIsC,MAG7BgG,EAAM9F,OAAS,IAAI2Z,IAAI,IAClBkD,EACAlW,QAAQF,GAAiB,WAAXA,EAAEvD,OAChB7F,KAAKoJ,GAAM,CAACA,EAAEjJ,GAAIiJ,QAClB,QAAgB3G,GAAS,CAACA,EAAKtC,GAAIsC,OAGxCgG,EAAMM,eAAiB,IAAIuT,IACzB,WAEKlT,GAAiB,aAAXA,EAAEvD,OAAwB6C,EAAME,MAAM+W,GAAMA,EAAExf,KAAOiJ,EAAEjJ,OAE/DH,KAAKyC,GAAS,CAACA,EAAKtC,GAAIsC,KAE/B,EACA2N,WAAW3H,EAAO7C,GACZ8Y,GAAgB1M,IAAIpM,EAAQzF,KAC9BsI,EAAM7C,QAAU8Y,GAAgB1b,IAAI4C,EAAQzF,IAC5CsI,EAAMC,MAAQyV,GAAkB1V,EAAM7C,SACtC6C,EAAMM,eAAiBsV,GAAyB5V,EAAM7C,SACtD6C,EAAMO,WAAasV,GAAqB7V,EAAM7C,UAE9C6C,EAAM7C,QAAUA,EAElB6C,EAAMZ,OAAOjC,SAAU,CACzB,GAEFga,QAAS,CAAC,KAAaC,M,gDClRzB,MAAMC,GAAU,CACd,cACA,WACA,WACA,iBACA,QACA,cACA,YACA,MACA,OACA,YACA,OACA,SACA,cACA,sBACA,WACA,aACA,YACA,iBACA,YACA,QACA,OACA,cACA,eACA,aACA,WACA,SACA,UACA,cACA,aACA,QACA,SACA,eACA,cACA,WACA,OACA,OACA,WACA,cACA,QACA,YACA,WACA,aACA,UACA,iBACA,iBACA,QACA,SAEIC,GAAW,CAAC,SAAU,WAC5B,aACKD,GAAQ9f,KAAK2f,GAAM,OAAI,KAAOA,QAC9BI,GAAS/f,KAAK2f,GAAM,OAAI,KAAOA,OAGpC,QAAUK,IACPC,UAAU,oBAAqB,OAC/BC,IAAIlI,IACJmI,MAAM,O,WClETtf,EAAOC,QAAUkX,IACf,MAAMoI,EAAkBhZ,GACrBiZ,SAAS1c,MAAQ,4BAChByD,EAAW,cAAgB,YA8D/B,GA1DIkZ,aAAaC,QAAQ,eACvBvI,EAAMrQ,OAAO,gBAAiB2Y,aAAalf,YAEzCkf,aAAaC,QAAQ,UACvBvI,EAAMrQ,OAAO,eAAe,GAE1B2Y,aAAaC,QAAQ,WACvBvI,EAAMrQ,OAAO,gBAAgB,GAE3B2Y,aAAaC,QAAQ,eACvBvI,EAAMrQ,OAAO,oBAAoB,GAE/B2Y,aAAaC,QAAQ,SACvBvI,EAAMrQ,OAAO,UAAW6Y,WAAWF,aAAaC,QAAQ,UAEtDD,aAAaC,QAAQ,gBACvBvI,EAAMrQ,OAAO,kBAAkB,GAC/ByY,GAAgB,SAES7V,IAAvB+V,aAAa5X,QACfsP,EAAMrQ,OAAO,iBAAkBmJ,KAAKC,MAAMuP,aAAa5X,QACvDsP,EAAMrQ,OAAO,aAAc,CAAExH,GAAI,iBAENoK,IAAzB+V,aAAa1a,SAEfoS,EAAMrQ,OAAO,aAAcmJ,KAAKC,MAAMuP,aAAa1a,eAEzB2E,IAAxB+V,aAAa5d,QACfoO,KAAKC,MAAMuP,aAAa5d,QAAQiG,SAAQ,CAAClG,EAAMT,KAC7CgW,EAAMrQ,OAAO,mBAAoB,CAC/B3F,QACAS,KAAMuV,EAAMvP,MAAMC,MAAM1F,IAAIP,IAAS,CAAC,GACtC,SAGsB8H,IAAxB+V,aAAa3d,QACfqV,EAAMrQ,OAAO,oBAAqB,CAChChF,OAAQmO,KAAKC,MAAMuP,aAAa3d,QAAQ3C,KACtC2C,GAAUqV,EAAMvP,MAAM9F,OAAOK,IAAIL,EAAOxC,KAAOwC,MAIjD2d,aAAa7e,SACfuW,EAAMrQ,OACJ,cACAmJ,KAAKC,MAAMuP,aAAa7e,SAASzB,KAAI+B,IAAU,IAC1CA,EACHU,KACEuV,EAAMvP,MAAMC,MAAM1F,IAAIjB,EAAOU,OAC7BuV,EAAM1M,QAAQqL,cAAc3T,IAAIjB,EAAOU,OACvC,CAAC,OAKL6d,aAAaC,QAAQ,aACvBvI,EAAMrQ,OAAO,sBAAuB2Y,aAAaC,QAAQ,aAEvDD,aAAaC,QAAQ,aAAexZ,OAAOsG,SAAS+O,KAAK3B,OAAO,GAAI,CACtE,MAAOgG,EAAWzc,GAAa8M,KAAKC,MAAMuP,aAAaC,QAAQ,YAC/DvI,EAAMrQ,OAAO,uBAAwB8Y,GACrCzI,EAAMrQ,OAAO,uBAAwB3D,EACvC,CAGAgU,EAAMmE,WAAU,EAAGnW,OAAM4V,WAAWnT,KAClC,OAAQzC,GACN,IAAK,iBACEyC,EAAMtH,SAASiG,SAGlBkZ,aAAaI,WAAW,cAFxBJ,aAAaK,QAAQ,aAAc,GAIrCP,EAAgB3X,EAAMtH,SAASiG,UAC/B,MACF,IAAK,gBACCwU,EACF0E,aAAaK,QAAQ,aAAc/E,GAEnC0E,aAAaI,WAAW,cAE1B,MACF,IAAK,cACCjY,EAAMtH,SAASsL,QACjB6T,aAAaK,QAAQ,QAAS,GAE9BL,aAAaI,WAAW,SAE1B,MACF,IAAK,eACCjY,EAAMtH,SAASoL,SACjB+T,aAAaK,QAAQ,SAAU,GAE/BL,aAAaI,WAAW,UAE1B,MACF,IAAK,mBACCjY,EAAMtH,SAAS2M,aACjBwS,aAAaK,QAAQ,aAAc,GAEnCL,aAAaI,WAAW,cAE1B,MACF,IAAK,UACa,IAAZ9E,EACF0E,aAAaK,QAAQ,OAAQ/E,GAE7B0E,aAAaI,WAAW,QAE1B,MACF,IAAK,aACHJ,aAAaK,QAAQ,UAAW7P,KAAK0F,UAAUoF,IAC3CnT,EAAM7C,QAAQkF,YAChBwV,aAAaI,WAAW,SAE1B,MACF,IAAK,iBACE9E,EAAQla,OAGX4e,aAAaK,QAAQ,QAAS7P,KAAK0F,UAAUoF,IAF7C0E,aAAaI,WAAW,SAI1B,MACF,IAAK,mBACHJ,aAAaK,QACX,SACA7P,KAAK0F,UAAU/N,EAAMhH,QAAQiB,OAAO1C,KAAI,EAAGG,QAASA,MAEtD,MACF,IAAK,oBACHmgB,aAAaK,QACX,SACA7P,KAAK0F,UACH/N,EAAMhH,QAAQkB,OAAO3C,KAAI2C,GACvBA,EAAO+M,SAAW/M,EAAS,CAAExC,GAAIwC,EAAOxC,QAI9C,MACF,IAAK,cACL,IAAK,iBACL,IAAK,iBACL,IAAK,gBACL,IAAK,cACL,IAAK,eACL,IAAK,eACCsI,EAAMhH,QAAQA,QAAQC,OACxB4e,aAAaK,QACX,UACA7P,KAAK0F,UACH/N,EAAMhH,QAAQA,QAAQzB,KAAI+B,IAAU,IAC/BA,EAEHU,KAAMV,EAAOU,KAAKtC,IAAM,CAAC,QAK/BmgB,aAAaI,WAAW,WAE1B,MACF,IAAK,uBACC9E,EACF0E,aAAaK,QACX,UACA7P,KAAK0F,UAAU,CAAC/N,EAAM9G,QAAQ8C,YAAamX,KAG7C0E,aAAaI,WAAW,WAE1B,MACF,IAAK,sBACC9E,EACF0E,aAAaK,QAAQ,WAAY/E,GAEjC0E,aAAaI,WAAW,YAE1B,MACJ,GACA,C,gwkHCzLAE,EAA2B,CAAC,EAGhC,SAASvgB,EAAoBwgB,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqBtW,IAAjBuW,EACH,OAAOA,EAAahgB,QAGrB,IAAID,EAAS+f,EAAyBC,GAAY,CAGjD/f,QAAS,CAAC,GAOX,OAHAigB,EAAoBF,GAAUhgB,EAAQA,EAAOC,QAAST,GAG/CQ,EAAOC,OACf,CAGAT,EAAoB2gB,EAAID,E,MCzBxB,IAAIE,EAAW,GACf5gB,EAAoB6gB,EAAI,CAAClQ,EAAQmQ,EAAUC,EAAIC,KAC9C,IAAGF,EAAH,CAMA,IAAIG,EAAeC,IACnB,IAAS5B,EAAI,EAAGA,EAAIsB,EAASvf,OAAQie,IAAK,CAGzC,IAFA,IAAKwB,EAAUC,EAAIC,GAAYJ,EAAStB,GACpC6B,GAAY,EACPC,EAAI,EAAGA,EAAIN,EAASzf,OAAQ+f,MACpB,EAAXJ,GAAsBC,GAAgBD,IAAa1gB,OAAOD,KAAKL,EAAoB6gB,GAAGQ,OAAOzf,GAAS5B,EAAoB6gB,EAAEjf,GAAKkf,EAASM,MAC9IN,EAAS7Z,OAAOma,IAAK,IAErBD,GAAY,EACTH,EAAWC,IAAcA,EAAeD,IAG7C,GAAGG,EAAW,CACbP,EAAS3Z,OAAOqY,IAAK,GACrB,IAAIvW,EAAIgY,SACE7W,IAANnB,IAAiB4H,EAAS5H,EAC/B,CACD,CACA,OAAO4H,CAnBP,CAJCqQ,EAAWA,GAAY,EACvB,IAAI,IAAI1B,EAAIsB,EAASvf,OAAQie,EAAI,GAAKsB,EAAStB,EAAI,GAAG,GAAK0B,EAAU1B,IAAKsB,EAAStB,GAAKsB,EAAStB,EAAI,GACrGsB,EAAStB,GAAK,CAACwB,EAAUC,EAAIC,EAqBjB,C,WCzBdhhB,EAAoBmU,EAAK3T,IACxB,IAAI8gB,EAAS9gB,GAAUA,EAAO+gB,WAC7B,IAAO/gB,EAAO,WACd,IAAM,EAEP,OADAR,EAAoB8E,EAAEwc,EAAQ,CAAEtT,EAAGsT,IAC5BA,CAAM,C,WCLdthB,EAAoB8E,EAAI,CAACrE,EAAS+gB,KACjC,IAAI,IAAI5f,KAAO4f,EACXxhB,EAAoBC,EAAEuhB,EAAY5f,KAAS5B,EAAoBC,EAAEQ,EAASmB,IAC5EtB,OAAOmhB,eAAehhB,EAASmB,EAAK,CAAE8f,YAAY,EAAM/e,IAAK6e,EAAW5f,IAE1E,C,WCND5B,EAAoB2hB,EAAI,WACvB,GAA0B,kBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAO9b,MAAQ,IAAI+b,SAAS,cAAb,EAChB,CAAE,MAAO3hB,GACR,GAAsB,kBAAXwG,OAAqB,OAAOA,MACxC,CACA,CAPuB,E,WCAxB1G,EAAoBC,EAAI,CAAC6hB,EAAK/C,IAAUze,OAAOyhB,UAAUC,eAAeC,KAAKH,EAAK/C,E,WCAlF/e,EAAoBwI,EAAI,G,WCKxB,IAAI0Z,EAAkB,CACrB,IAAK,GAaNliB,EAAoB6gB,EAAEO,EAAKe,GAA0C,IAA7BD,EAAgBC,GAGxD,IAAIC,EAAuB,CAACC,EAA4Brc,KACvD,IAGIwa,EAAU2B,GAHTrB,EAAUwB,EAAaC,GAAWvc,EAGhBsZ,EAAI,EAC3B,GAAGwB,EAASvY,MAAMzI,GAAgC,IAAxBoiB,EAAgBpiB,KAAa,CACtD,IAAI0gB,KAAY8B,EACZtiB,EAAoBC,EAAEqiB,EAAa9B,KACrCxgB,EAAoB2gB,EAAEH,GAAY8B,EAAY9B,IAGhD,GAAG+B,EAAS,IAAI5R,EAAS4R,EAAQviB,EAClC,CAEA,IADGqiB,GAA4BA,EAA2Brc,GACrDsZ,EAAIwB,EAASzf,OAAQie,IACzB6C,EAAUrB,EAASxB,GAChBtf,EAAoBC,EAAEiiB,EAAiBC,IAAYD,EAAgBC,IACrED,EAAgBC,GAAS,KAE1BD,EAAgBC,GAAW,EAE5B,OAAOniB,EAAoB6gB,EAAElQ,EAAO,EAGjC6R,EAAqBC,KAAK,0BAA4BA,KAAK,2BAA6B,GAC5FD,EAAmBla,QAAQ8Z,EAAqB5U,KAAK,KAAM,IAC3DgV,EAAmB5Z,KAAOwZ,EAAqB5U,KAAK,KAAMgV,EAAmB5Z,KAAK4E,KAAKgV,G,KC7CvF,IAAIE,EAAsB1iB,EAAoB6gB,OAAE3W,EAAW,CAAC,MAAM,IAAOlK,EAAoB,OAC7F0iB,EAAsB1iB,EAAoB6gB,EAAE6B,E","sources":["webpack://townsquare/./src/assets/editions/ sync ^\\.\\/.*\\.png$","webpack://townsquare/./src/assets/icons/ sync ^\\.\\/.*\\.png$","webpack://townsquare/./src/App.vue","webpack://townsquare/./src/components/TownSquare.vue","webpack://townsquare/./src/components/Player.vue","webpack://townsquare/./src/components/Token.vue","webpack://townsquare/./src/components/Token.vue?f148","webpack://townsquare/./src/components/Player.vue?16f5","webpack://townsquare/./src/components/modals/ReminderModal.vue","webpack://townsquare/./src/components/modals/Modal.vue","webpack://townsquare/./src/components/modals/Modal.vue?6ce1","webpack://townsquare/./src/components/modals/ReminderModal.vue?ab07","webpack://townsquare/./src/components/modals/RoleModal.vue","webpack://townsquare/./src/components/modals/RoleModal.vue?7764","webpack://townsquare/./src/components/TownSquare.vue?dc3a","webpack://townsquare/./src/components/TownInfo.vue","webpack://townsquare/./src/components/TownInfo.vue?941c","webpack://townsquare/./src/components/Menu.vue","webpack://townsquare/./src/components/Menu.vue?ef75","webpack://townsquare/./src/components/modals/RolesModal.vue","webpack://townsquare/./src/components/modals/RolesModal.vue?78bf","webpack://townsquare/./src/components/modals/EditionModal.vue","webpack://townsquare/./src/components/modals/EditionModal.vue?5fba","webpack://townsquare/./src/components/Intro.vue","webpack://townsquare/./src/components/Intro.vue?4ec2","webpack://townsquare/./src/components/modals/ReferenceModal.vue","webpack://townsquare/./src/components/modals/ReferenceModal.vue?6710","webpack://townsquare/./src/components/Vote.vue","webpack://townsquare/./src/components/Vote.vue?c5d7","webpack://townsquare/./src/components/Gradients.vue","webpack://townsquare/./src/components/Gradients.vue?55a5","webpack://townsquare/./src/components/modals/NightOrderModal.vue","webpack://townsquare/./src/components/modals/NightOrderModal.vue?aa0c","webpack://townsquare/./src/components/modals/FabledModal.vue","webpack://townsquare/./src/components/modals/FabledModal.vue?558a","webpack://townsquare/./src/components/modals/VoteHistoryModal.vue","webpack://townsquare/./src/components/modals/VoteHistoryModal.vue?6b8c","webpack://townsquare/./src/components/modals/GameStateModal.vue","webpack://townsquare/./src/components/modals/GameStateModal.vue?54bd","webpack://townsquare/./src/App.vue?7ccd","webpack://townsquare/./src/store/socket.js","webpack://townsquare/./src/store/modules/players.js","webpack://townsquare/./src/store/modules/session.js","webpack://townsquare/./src/store/index.js","webpack://townsquare/./src/main.js","webpack://townsquare/./src/store/persistence.js","webpack://townsquare/webpack/bootstrap","webpack://townsquare/webpack/runtime/chunk loaded","webpack://townsquare/webpack/runtime/compat get default export","webpack://townsquare/webpack/runtime/define property getters","webpack://townsquare/webpack/runtime/global","webpack://townsquare/webpack/runtime/hasOwnProperty shorthand","webpack://townsquare/webpack/runtime/publicPath","webpack://townsquare/webpack/runtime/jsonp chunk loading","webpack://townsquare/webpack/startup"],"sourcesContent":["var map = {\n\t\"./bmr-demon.png\": 387,\n\t\"./bmr-minion.png\": 9764,\n\t\"./bmr-outsider.png\": 3396,\n\t\"./bmr-townsfolk.png\": 4174,\n\t\"./bmr.png\": 4085,\n\t\"./custom.png\": 5592,\n\t\"./for.png\": 3331,\n\t\"./ib.png\": 9737,\n\t\"./luf.png\": 8142,\n\t\"./snv-demon.png\": 2867,\n\t\"./snv-minion.png\": 3571,\n\t\"./snv-outsider.png\": 3429,\n\t\"./snv-townsfolk.png\": 1822,\n\t\"./snv.png\": 9857,\n\t\"./tb-demon.png\": 6737,\n\t\"./tb-minion.png\": 972,\n\t\"./tb-outsider.png\": 2338,\n\t\"./tb-townsfolk.png\": 9600,\n\t\"./tb.png\": 6827\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 3821;","var map = {\n\t\"./acrobat.png\": 8035,\n\t\"./actor_fall_of_rome.png\": 1465,\n\t\"./alchemist.png\": 9799,\n\t\"./alhadikhia.png\": 8723,\n\t\"./amnesiac.png\": 5118,\n\t\"./angel.png\": 6474,\n\t\"./apprentice.png\": 819,\n\t\"./architect_fall_of_rome.png\": 1607,\n\t\"./artist.png\": 6835,\n\t\"./assassin.png\": 3169,\n\t\"./atheist.png\": 946,\n\t\"./augur_fall_of_rome.png\": 7726,\n\t\"./badger.png\": 1584,\n\t\"./badomen_fall_of_rome.png\": 6577,\n\t\"./balloonist.png\": 5926,\n\t\"./barber.png\": 8069,\n\t\"./barista.png\": 2437,\n\t\"./baron.png\": 8230,\n\t\"./beggar.png\": 1082,\n\t\"./bishop.png\": 5343,\n\t\"./blacksmith_fall_of_rome.png\": 9363,\n\t\"./bonecollector.png\": 1594,\n\t\"./boomdandy.png\": 3682,\n\t\"./bountyhunter.png\": 7479,\n\t\"./buddhist.png\": 1990,\n\t\"./bureaucrat.png\": 367,\n\t\"./butcher.png\": 177,\n\t\"./butler.png\": 4697,\n\t\"./caesar_fall_of_rome.png\": 7946,\n\t\"./cannibal.png\": 6214,\n\t\"./centurion1_fall_of_rome.png\": 1708,\n\t\"./cerenovus.png\": 7637,\n\t\"./chambermaid.png\": 1146,\n\t\"./chef.png\": 1248,\n\t\"./choirboy.png\": 5081,\n\t\"./cleopatra_fall_of_rome.png\": 9114,\n\t\"./clockmaker.png\": 5102,\n\t\"./courtier.png\": 759,\n\t\"./crassus_fall_of_rome.png\": 4163,\n\t\"./cultleader.png\": 2763,\n\t\"./custom.png\": 7037,\n\t\"./damsel.png\": 5533,\n\t\"./deusexfiasco.png\": 8141,\n\t\"./deviant.png\": 1683,\n\t\"./devilsadvocate.png\": 5549,\n\t\"./djinn.png\": 393,\n\t\"./doomsayer.png\": 5142,\n\t\"./dreamer.png\": 1610,\n\t\"./drunk.png\": 3669,\n\t\"./duchess.png\": 2491,\n\t\"./empath.png\": 5695,\n\t\"./emperor_fall_of_rome.png\": 4595,\n\t\"./engineer.png\": 7571,\n\t\"./evil.png\": 1836,\n\t\"./eviltwin.png\": 7664,\n\t\"./exorcist.png\": 5858,\n\t\"./fabled.png\": 5025,\n\t\"./fanggu.png\": 1833,\n\t\"./farmer.png\": 4390,\n\t\"./fearmonger.png\": 5297,\n\t\"./fibbin.png\": 9332,\n\t\"./fiddler.png\": 5076,\n\t\"./fisherman.png\": 2776,\n\t\"./flowergirl.png\": 6053,\n\t\"./fool.png\": 647,\n\t\"./fortuneteller.png\": 9336,\n\t\"./gambler.png\": 4306,\n\t\"./gangster.png\": 782,\n\t\"./general.png\": 2990,\n\t\"./gladiator_fall_of_rome.png\": 7434,\n\t\"./glykon1_fall_of_rome.png\": 8791,\n\t\"./goblin.png\": 1730,\n\t\"./godfather.png\": 8536,\n\t\"./golem.png\": 7274,\n\t\"./good.png\": 6832,\n\t\"./goon.png\": 1273,\n\t\"./gossip.png\": 5965,\n\t\"./grandmother.png\": 4950,\n\t\"./grinch.png\": 2325,\n\t\"./gunslinger.png\": 7768,\n\t\"./hannibal_fall_of_rome.png\": 4896,\n\t\"./harlot.png\": 6226,\n\t\"./harpy.png\": 3865,\n\t\"./haruspex_fall_of_rome.png\": 5649,\n\t\"./hatter.png\": 3490,\n\t\"./hellslibrarian.png\": 5477,\n\t\"./heretic.png\": 6314,\n\t\"./highpriest1_fall_of_rome.png\": 934,\n\t\"./highpriest2_fall_of_rome.png\": 212,\n\t\"./highpriestess.png\": 6251,\n\t\"./huntsman.png\": 7893,\n\t\"./iamspartacus_fall_of_rome.png\": 4671,\n\t\"./imp.png\": 2830,\n\t\"./innkeeper.png\": 6580,\n\t\"./investigator.png\": 9813,\n\t\"./judge.png\": 6306,\n\t\"./juggler.png\": 8785,\n\t\"./kazali.png\": 3108,\n\t\"./king.png\": 6865,\n\t\"./klutz.png\": 1938,\n\t\"./knight.png\": 3395,\n\t\"./legion.png\": 2339,\n\t\"./legionary.png\": 4394,\n\t\"./legionary_fall_of_rome.png\": 2429,\n\t\"./leviathan.png\": 3245,\n\t\"./librarian.png\": 651,\n\t\"./lilmonsta.png\": 4090,\n\t\"./lleech.png\": 1424,\n\t\"./lunatic.png\": 2561,\n\t\"./lycanthrope.png\": 8746,\n\t\"./magician.png\": 4214,\n\t\"./marionette.png\": 712,\n\t\"./mastermind.png\": 7100,\n\t\"./mathematician.png\": 3850,\n\t\"./matron.png\": 8054,\n\t\"./mayor.png\": 8827,\n\t\"./mephit.png\": 3304,\n\t\"./mercenary_fall_of_rome.png\": 2841,\n\t\"./merchant_fall_of_rome.png\": 7377,\n\t\"./mezepheles.png\": 295,\n\t\"./minion.png\": 847,\n\t\"./minstrel.png\": 3415,\n\t\"./monk.png\": 3100,\n\t\"./moonchild.png\": 8749,\n\t\"./mortician_fall_of_rome.png\": 1021,\n\t\"./mutant.png\": 4473,\n\t\"./nightwatchman.png\": 2666,\n\t\"./noble.png\": 1004,\n\t\"./nodashii.png\": 2458,\n\t\"./ojo.png\": 3073,\n\t\"./oracle.png\": 9624,\n\t\"./organgrinder.png\": 5705,\n\t\"./outsider.png\": 8814,\n\t\"./pacifist.png\": 5873,\n\t\"./philosopher.png\": 3300,\n\t\"./physician.png\": 4555,\n\t\"./physician_fall_of_rome.png\": 9979,\n\t\"./pithag.png\": 1282,\n\t\"./pixie.png\": 8637,\n\t\"./plaguedoctor.png\": 5985,\n\t\"./plus.png\": 4511,\n\t\"./plusone.png\": 4908,\n\t\"./po.png\": 5631,\n\t\"./poisoner.png\": 6763,\n\t\"./politician.png\": 4265,\n\t\"./poppygrower.png\": 8828,\n\t\"./preacher.png\": 3213,\n\t\"./professor.png\": 889,\n\t\"./psychopath.png\": 7826,\n\t\"./pukka.png\": 4486,\n\t\"./puzzlemaster.png\": 7002,\n\t\"./ravenkeeper.png\": 6965,\n\t\"./recluse.png\": 3035,\n\t\"./revolutionary.png\": 9038,\n\t\"./riot.png\": 8118,\n\t\"./sage.png\": 6544,\n\t\"./sailor.png\": 8984,\n\t\"./saint.png\": 4811,\n\t\"./saintnick.png\": 7316,\n\t\"./savant.png\": 7884,\n\t\"./scapegoat.png\": 6701,\n\t\"./scarletwoman.png\": 3957,\n\t\"./scholar_fall_of_rome.png\": 7330,\n\t\"./sculptor.png\": 791,\n\t\"./sculptor_fall_of_rome.png\": 8374,\n\t\"./seamstress.png\": 4201,\n\t\"./sentinel.png\": 4213,\n\t\"./septemberchild.png\": 4017,\n\t\"./shabaloth.png\": 2034,\n\t\"./shugenja.png\": 922,\n\t\"./sibyl_fall_of_rome.png\": 4885,\n\t\"./slayer.png\": 8081,\n\t\"./snakecharmer.png\": 9900,\n\t\"./snitch.png\": 7988,\n\t\"./soldier.png\": 2231,\n\t\"./spartacus_fall_of_rome.png\": 1977,\n\t\"./spiritofivory.png\": 3379,\n\t\"./spy.png\": 4013,\n\t\"./standardbearer_fall_of_rome.png\": 5165,\n\t\"./steward.png\": 6050,\n\t\"./stormcatcher.png\": 3877,\n\t\"./sweetheart.png\": 6356,\n\t\"./tealady.png\": 3009,\n\t\"./temptress_fall_of_rome.png\": 5274,\n\t\"./thetwins_fall_of_rome.png\": 5603,\n\t\"./thief.png\": 7112,\n\t\"./tinker.png\": 5380,\n\t\"./towncrier.png\": 4055,\n\t\"./toymaker.png\": 3163,\n\t\"./trumpeter_fall_of_rome.png\": 8892,\n\t\"./undertaker.png\": 5466,\n\t\"./vestalvirgin.png\": 1647,\n\t\"./vestalvirgin_fall_of_rome.png\": 2349,\n\t\"./vigormortis.png\": 4969,\n\t\"./virgin.png\": 6954,\n\t\"./vizier.png\": 5485,\n\t\"./vortox.png\": 6142,\n\t\"./voudon.png\": 152,\n\t\"./washerwoman.png\": 245,\n\t\"./widow.png\": 3729,\n\t\"./winemaker_fall_of_rome.png\": 1409,\n\t\"./witch.png\": 6909,\n\t\"./x.png\": 1139,\n\t\"./zombuul.png\": 8899\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6003;","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import { render } from \"./Token.vue?vue&type=template&id=6a512cb0&scoped=true\"\nimport script from \"./Token.vue?vue&type=script&lang=js\"\nexport * from \"./Token.vue?vue&type=script&lang=js\"\n\nimport \"./Token.vue?vue&type=style&index=0&id=6a512cb0&scoped=true&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6a512cb0\"]])\n\nexport default __exports__","import { render } from \"./Player.vue?vue&type=template&id=c336778e\"\nimport script from \"./Player.vue?vue&type=script&lang=js\"\nexport * from \"./Player.vue?vue&type=script&lang=js\"\n\nimport \"./Player.vue?vue&type=style&index=0&id=c336778e&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","\n\n\n\n\n","import { render } from \"./Modal.vue?vue&type=template&id=36f6a736\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=36f6a736&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./ReminderModal.vue?vue&type=template&id=bc7a83f6&scoped=true\"\nimport script from \"./ReminderModal.vue?vue&type=script&lang=js\"\nexport * from \"./ReminderModal.vue?vue&type=script&lang=js\"\n\nimport \"./ReminderModal.vue?vue&type=style&index=0&id=bc7a83f6&scoped=true&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-bc7a83f6\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./RoleModal.vue?vue&type=template&id=738a124c&scoped=true\"\nimport script from \"./RoleModal.vue?vue&type=script&lang=js\"\nexport * from \"./RoleModal.vue?vue&type=script&lang=js\"\n\nimport \"./RoleModal.vue?vue&type=style&index=0&id=738a124c&scoped=true&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-738a124c\"]])\n\nexport default __exports__","import { render } from \"./TownSquare.vue?vue&type=template&id=49e2f1e3\"\nimport script from \"./TownSquare.vue?vue&type=script&lang=js\"\nexport * from \"./TownSquare.vue?vue&type=script&lang=js\"\n\nimport \"./TownSquare.vue?vue&type=style&index=0&id=49e2f1e3&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n\n","import { render } from \"./TownInfo.vue?vue&type=template&id=6e9c5c8e&scoped=true\"\nimport script from \"./TownInfo.vue?vue&type=script&lang=js\"\nexport * from \"./TownInfo.vue?vue&type=script&lang=js\"\n\nimport \"./TownInfo.vue?vue&type=style&index=0&id=6e9c5c8e&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6e9c5c8e\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Menu.vue?vue&type=template&id=02f0607a&scoped=true\"\nimport script from \"./Menu.vue?vue&type=script&lang=js\"\nexport * from \"./Menu.vue?vue&type=script&lang=js\"\n\nimport \"./Menu.vue?vue&type=style&index=0&id=02f0607a&scoped=true&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-02f0607a\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./RolesModal.vue?vue&type=template&id=66bef8a1&scoped=true\"\nimport script from \"./RolesModal.vue?vue&type=script&lang=js\"\nexport * from \"./RolesModal.vue?vue&type=script&lang=js\"\n\nimport \"./RolesModal.vue?vue&type=style&index=0&id=66bef8a1&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-66bef8a1\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./EditionModal.vue?vue&type=template&id=e5f62d38&scoped=true\"\nimport script from \"./EditionModal.vue?vue&type=script&lang=js\"\nexport * from \"./EditionModal.vue?vue&type=script&lang=js\"\n\nimport \"./EditionModal.vue?vue&type=style&index=0&id=e5f62d38&scoped=true&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e5f62d38\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Intro.vue?vue&type=template&id=14bc5701&scoped=true\"\nimport script from \"./Intro.vue?vue&type=script&lang=js\"\nexport * from \"./Intro.vue?vue&type=script&lang=js\"\n\nimport \"./Intro.vue?vue&type=style&index=0&id=14bc5701&scoped=true&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-14bc5701\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./ReferenceModal.vue?vue&type=template&id=40670158&scoped=true\"\nimport script from \"./ReferenceModal.vue?vue&type=script&lang=js\"\nexport * from \"./ReferenceModal.vue?vue&type=script&lang=js\"\n\nimport \"./ReferenceModal.vue?vue&type=style&index=0&id=40670158&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-40670158\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Vote.vue?vue&type=template&id=67598266&scoped=true\"\nimport script from \"./Vote.vue?vue&type=script&lang=js\"\nexport * from \"./Vote.vue?vue&type=script&lang=js\"\n\nimport \"./Vote.vue?vue&type=style&index=0&id=67598266&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-67598266\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Gradients.vue?vue&type=template&id=1e202a64&scoped=true\"\nimport script from \"./Gradients.vue?vue&type=script&lang=js\"\nexport * from \"./Gradients.vue?vue&type=script&lang=js\"\n\nimport \"./Gradients.vue?vue&type=style&index=0&id=1e202a64&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1e202a64\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./NightOrderModal.vue?vue&type=template&id=358fb701&scoped=true\"\nimport script from \"./NightOrderModal.vue?vue&type=script&lang=js\"\nexport * from \"./NightOrderModal.vue?vue&type=script&lang=js\"\n\nimport \"./NightOrderModal.vue?vue&type=style&index=0&id=358fb701&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-358fb701\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./FabledModal.vue?vue&type=template&id=d6b399a0&scoped=true\"\nimport script from \"./FabledModal.vue?vue&type=script&lang=js\"\nexport * from \"./FabledModal.vue?vue&type=script&lang=js\"\n\nimport \"./FabledModal.vue?vue&type=style&index=0&id=d6b399a0&scoped=true&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d6b399a0\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./VoteHistoryModal.vue?vue&type=template&id=9cbf0edc&scoped=true\"\nimport script from \"./VoteHistoryModal.vue?vue&type=script&lang=js\"\nexport * from \"./VoteHistoryModal.vue?vue&type=script&lang=js\"\n\nimport \"./VoteHistoryModal.vue?vue&type=style&index=0&id=9cbf0edc&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-9cbf0edc\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./GameStateModal.vue?vue&type=template&id=7971ea6f&scoped=true\"\nimport script from \"./GameStateModal.vue?vue&type=script&lang=js\"\nexport * from \"./GameStateModal.vue?vue&type=script&lang=js\"\n\nimport \"./GameStateModal.vue?vue&type=style&index=0&id=7971ea6f&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7971ea6f\"]])\n\nexport default __exports__","import { render } from \"./App.vue?vue&type=template&id=de1703ce\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=de1703ce&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","class LiveSession {\n constructor(store) {\n this._wss = \"wss://townsquaremsg.clocktower.guru:8080/\";\n // this._wss = \"ws://localhost:8081/\"; // uncomment if using local server with NODE_ENV=development\n this._socket = null;\n this._isSpectator = true;\n this._gamestate = [];\n this._store = store;\n this._pingInterval = 30 * 1000; // 30 seconds between pings\n this._pingTimer = null;\n this._reconnectTimer = null;\n this._players = {}; // map of players connected to a session\n this._pings = {}; // map of player IDs to ping\n // reconnect to previous session\n if (this._store.state.session.sessionId) {\n this.connect(this._store.state.session.sessionId);\n }\n }\n\n /**\n * Open a new session for the passed channel.\n * @param channel\n * @private\n */\n _open(channel) {\n this.disconnect();\n this._socket = new WebSocket(\n this._wss +\n channel +\n \"/\" +\n (this._isSpectator ? this._store.state.session.playerId : \"host\")\n );\n this._socket.addEventListener(\"message\", this._handleMessage.bind(this));\n this._socket.onopen = this._onOpen.bind(this);\n this._socket.onclose = (err) => {\n this._socket = null;\n clearInterval(this._pingTimer);\n this._pingTimer = null;\n if (err.code !== 1000) {\n // connection interrupted, reconnect after 3 seconds\n this._store.commit(\"session/setReconnecting\", true);\n this._reconnectTimer = setTimeout(\n () => this.connect(channel),\n 3 * 1000\n );\n } else {\n this._store.commit(\"session/setSessionId\", \"\");\n if (err.reason) alert(err.reason);\n }\n };\n }\n\n /**\n * Send a message through the socket.\n * @param command\n * @param params\n * @private\n */\n _send(command, params) {\n if (this._socket && this._socket.readyState === 1) {\n this._socket.send(JSON.stringify([command, params]));\n }\n }\n\n /**\n * Send a message directly to a single playerId, if provided.\n * Otherwise broadcast it.\n * @param playerId player ID or \"host\", optional\n * @param command\n * @param params\n * @private\n */\n _sendDirect(playerId, command, params) {\n if (playerId) {\n this._send(\"direct\", { [playerId]: [command, params] });\n } else {\n this._send(command, params);\n }\n }\n\n /**\n * Open event handler for socket.\n * @private\n */\n _onOpen() {\n if (this._isSpectator) {\n this._sendDirect(\n \"host\",\n \"getGamestate\",\n this._store.state.session.playerId\n );\n } else {\n this.sendGamestate();\n }\n this._ping();\n }\n\n /**\n * Send a ping message with player ID and ST flag.\n * @private\n */\n _ping() {\n this._handlePing();\n this._send(\"ping\", [\n this._isSpectator\n ? this._store.state.session.playerId\n : Object.keys(this._players).length,\n \"latency\",\n ]);\n clearTimeout(this._pingTimer);\n this._pingTimer = setTimeout(this._ping.bind(this), this._pingInterval);\n }\n\n /**\n * Handle an incoming socket message.\n * @param data\n * @private\n */\n _handleMessage({ data }) {\n let command, params;\n try {\n [command, params] = JSON.parse(data);\n } catch (err) {\n console.log(\"unsupported socket message\", data);\n }\n switch (command) {\n case \"getGamestate\":\n this.sendGamestate(params);\n break;\n case \"edition\":\n this._updateEdition(params);\n break;\n case \"fabled\":\n this._updateFabled(params);\n break;\n case \"gs\":\n this._updateGamestate(params);\n break;\n case \"player\":\n this._updatePlayer(params);\n break;\n case \"claim\":\n this._updateSeat(params);\n break;\n case \"ping\":\n this._handlePing(params);\n break;\n case \"nomination\":\n if (!this._isSpectator) return;\n if (!params) {\n // create vote history record\n this._store.commit(\n \"session/addHistory\",\n this._store.state.players.players\n );\n }\n this._store.commit(\"session/nomination\", { nomination: params });\n break;\n case \"swap\":\n if (!this._isSpectator) return;\n this._store.commit(\"players/swap\", params);\n break;\n case \"move\":\n if (!this._isSpectator) return;\n this._store.commit(\"players/move\", params);\n break;\n case \"remove\":\n if (!this._isSpectator) return;\n this._store.commit(\"players/remove\", params);\n break;\n case \"marked\":\n if (!this._isSpectator) return;\n this._store.commit(\"session/setMarkedPlayer\", params);\n break;\n case \"isNight\":\n if (!this._isSpectator) return;\n this._store.commit(\"toggleNight\", params);\n break;\n case \"isVoteHistoryAllowed\":\n if (!this._isSpectator) return;\n this._store.commit(\"session/setVoteHistoryAllowed\", params);\n this._store.commit(\"session/clearVoteHistory\");\n break;\n case \"isVoteWatchingAllowed\":\n if (!this._isSpectator) return;\n this._store.commit(\"session/setVoteWatchingAllowed\", params);\n break;\n case \"votingSpeed\":\n if (!this._isSpectator) return;\n this._store.commit(\"session/setVotingSpeed\", params);\n break;\n case \"clearVoteHistory\":\n if (!this._isSpectator) return;\n this._store.commit(\"session/clearVoteHistory\");\n break;\n case \"isVoteInProgress\":\n if (!this._isSpectator) return;\n this._store.commit(\"session/setVoteInProgress\", params);\n break;\n case \"vote\":\n this._handleVote(params);\n break;\n case \"lock\":\n this._handleLock(params);\n break;\n case \"bye\":\n this._handleBye(params);\n break;\n case \"pronouns\":\n this._updatePlayerPronouns(params);\n break;\n }\n }\n\n /**\n * Connect to a new live session, either as host or spectator.\n * Set a unique playerId if there isn't one yet.\n * @param channel\n */\n connect(channel) {\n if (!this._store.state.session.playerId) {\n this._store.commit(\n \"session/setPlayerId\",\n Math.random()\n .toString(36)\n .substr(2)\n );\n }\n this._pings = {};\n this._store.commit(\"session/setPlayerCount\", 0);\n this._store.commit(\"session/setPing\", 0);\n this._isSpectator = this._store.state.session.isSpectator;\n this._open(channel);\n }\n\n /**\n * Close the current session, if any.\n */\n disconnect() {\n this._pings = {};\n this._store.commit(\"session/setPlayerCount\", 0);\n this._store.commit(\"session/setPing\", 0);\n this._store.commit(\"session/setReconnecting\", false);\n clearTimeout(this._reconnectTimer);\n if (this._socket) {\n if (this._isSpectator) {\n this._sendDirect(\"host\", \"bye\", this._store.state.session.playerId);\n }\n this._socket.close(1000);\n this._socket = null;\n }\n }\n\n /**\n * Publish the current gamestate.\n * Optional param to reduce traffic. (send only player data)\n * @param playerId\n * @param isLightweight\n */\n sendGamestate(playerId = \"\", isLightweight = false) {\n if (this._isSpectator) return;\n this._gamestate = this._store.state.players.players.map((player) => ({\n name: player.name,\n id: player.id,\n isDead: player.isDead,\n isVoteless: player.isVoteless,\n pronouns: player.pronouns,\n ...(player.role && player.role.team === \"traveler\"\n ? { roleId: player.role.id }\n : {}),\n }));\n if (isLightweight) {\n this._sendDirect(playerId, \"gs\", {\n gamestate: this._gamestate,\n isLightweight,\n });\n } else {\n const { session, grimoire } = this._store.state;\n const { fabled } = this._store.state.players;\n this.sendEdition(playerId);\n this._sendDirect(playerId, \"gs\", {\n gamestate: this._gamestate,\n isNight: grimoire.isNight,\n isVoteHistoryAllowed: session.isVoteHistoryAllowed,\n isVoteWatchingAllowed: session.isVoteWatchingAllowed,\n nomination: session.nomination,\n votingSpeed: session.votingSpeed,\n lockedVote: session.lockedVote,\n isVoteInProgress: session.isVoteInProgress,\n markedPlayer: session.markedPlayer,\n fabled: fabled.map((f) => (f.isCustom ? f : { id: f.id })),\n ...(session.nomination ? { votes: session.votes } : {}),\n });\n }\n }\n\n /**\n * Update the gamestate based on incoming data.\n * @param data\n * @private\n */\n _updateGamestate(data) {\n if (!this._isSpectator) return;\n const {\n gamestate,\n isLightweight,\n isNight,\n isVoteHistoryAllowed,\n isVoteWatchingAllowed,\n nomination,\n votingSpeed,\n votes,\n lockedVote,\n isVoteInProgress,\n markedPlayer,\n fabled,\n } = data;\n const players = this._store.state.players.players;\n // adjust number of players\n if (players.length < gamestate.length) {\n for (let x = players.length; x < gamestate.length; x++) {\n this._store.commit(\"players/add\", gamestate[x].name);\n }\n } else if (players.length > gamestate.length) {\n for (let x = players.length; x > gamestate.length; x--) {\n this._store.commit(\"players/remove\", x - 1);\n }\n }\n // update status for each player\n gamestate.forEach((state, x) => {\n const player = players[x];\n const { roleId } = state;\n // update relevant properties\n [\"name\", \"id\", \"isDead\", \"isVoteless\", \"pronouns\"].forEach((property) => {\n const value = state[property];\n if (player[property] !== value) {\n this._store.commit(\"players/update\", { player, property, value });\n }\n });\n // roles are special, because of travelers\n if (roleId && player.role.id !== roleId) {\n const role =\n this._store.state.roles.get(roleId) ||\n this._store.getters.rolesJSONbyId.get(roleId);\n if (role) {\n this._store.commit(\"players/update\", {\n player,\n property: \"role\",\n value: role,\n });\n }\n } else if (!roleId && player.role.team === \"traveler\") {\n this._store.commit(\"players/update\", {\n player,\n property: \"role\",\n value: {},\n });\n }\n });\n if (!isLightweight) {\n this._store.commit(\"toggleNight\", !!isNight);\n this._store.commit(\"session/setVoteHistoryAllowed\", isVoteHistoryAllowed);\n this._store.commit(\n \"session/setVoteWatchingAllowed\",\n isVoteWatchingAllowed\n );\n this._store.commit(\"session/nomination\", {\n nomination,\n votes,\n votingSpeed,\n lockedVote,\n isVoteInProgress,\n });\n this._store.commit(\"session/setMarkedPlayer\", markedPlayer);\n this._store.commit(\"players/setFabled\", {\n fabled: fabled.map((f) => this._store.state.fabled.get(f.id) || f),\n });\n }\n }\n\n /**\n * Publish an edition update. ST only\n * @param playerId\n */\n sendEdition(playerId = \"\") {\n if (this._isSpectator) return;\n const { edition } = this._store.state;\n let roles;\n if (!edition.isOfficial) {\n roles = this._store.getters.customRolesStripped;\n }\n this._sendDirect(playerId, \"edition\", {\n edition: edition.isOfficial ? { id: edition.id } : edition,\n ...(roles ? { roles } : {}),\n });\n }\n\n /**\n * Update edition and roles for custom editions.\n * @param edition\n * @param roles\n * @private\n */\n _updateEdition({ edition, roles }) {\n if (!this._isSpectator) return;\n this._store.commit(\"setEdition\", edition);\n if (roles) {\n this._store.commit(\"setCustomRoles\", roles);\n if (this._store.state.roles.size !== roles.length) {\n const missing = [];\n roles.forEach(({ id }) => {\n if (!this._store.state.roles.get(id)) {\n missing.push(id);\n }\n });\n alert(\n `This session contains custom characters that can't be found. ` +\n `Please load them before joining! ` +\n `Missing roles: ${missing.join(\", \")}`\n );\n this.disconnect();\n this._store.commit(\"toggleModal\", \"edition\");\n }\n }\n }\n\n /**\n * Publish a fabled update. ST only\n */\n sendFabled() {\n if (this._isSpectator) return;\n const { fabled } = this._store.state.players;\n this._send(\n \"fabled\",\n fabled.map((f) => (f.isCustom ? f : { id: f.id }))\n );\n }\n\n /**\n * Update fabled roles.\n * @param fabled\n * @private\n */\n _updateFabled(fabled) {\n if (!this._isSpectator) return;\n this._store.commit(\"players/setFabled\", {\n fabled: fabled.map((f) => this._store.state.fabled.get(f.id) || f),\n });\n }\n\n /**\n * Publish a player update.\n * @param player\n * @param property\n * @param value\n */\n sendPlayer({ player, property, value }) {\n if (this._isSpectator || property === \"reminders\") return;\n const index = this._store.state.players.players.indexOf(player);\n if (property === \"role\") {\n if (value.team && value.team === \"traveler\") {\n // update local gamestate to remember this player as a traveler\n this._gamestate[index].roleId = value.id;\n this._send(\"player\", {\n index,\n property,\n value: value.id,\n });\n } else if (this._gamestate[index].roleId) {\n // player was previously a traveler\n delete this._gamestate[index].roleId;\n this._send(\"player\", { index, property, value: \"\" });\n }\n } else {\n this._send(\"player\", { index, property, value });\n }\n }\n\n /**\n * Update a player based on incoming data. Player only.\n * @param index\n * @param property\n * @param value\n * @private\n */\n _updatePlayer({ index, property, value }) {\n if (!this._isSpectator) return;\n const player = this._store.state.players.players[index];\n if (!player) return;\n // special case where a player stops being a traveler\n if (property === \"role\") {\n if (!value && player.role.team === \"traveler\") {\n // reset to an unknown role\n this._store.commit(\"players/update\", {\n player,\n property: \"role\",\n value: {},\n });\n } else {\n // load role, first from session, the global, then fail gracefully\n const role =\n this._store.state.roles.get(value) ||\n this._store.getters.rolesJSONbyId.get(value) ||\n {};\n this._store.commit(\"players/update\", {\n player,\n property: \"role\",\n value: role,\n });\n }\n } else {\n // just update the player otherwise\n this._store.commit(\"players/update\", { player, property, value });\n }\n }\n\n /**\n * Publish a player pronouns update\n * @param player\n * @param value\n * @param isFromSockets\n */\n sendPlayerPronouns({ player, value, isFromSockets }) {\n //send pronoun only for the seated player or storyteller\n //Do not re-send pronoun data for an update that was recieved from the sockets layer\n if (\n isFromSockets ||\n (this._isSpectator && this._store.state.session.playerId !== player.id)\n )\n return;\n const index = this._store.state.players.players.indexOf(player);\n this._send(\"pronouns\", [index, value]);\n }\n\n /**\n * Update a pronouns based on incoming data.\n * @param index\n * @param value\n * @private\n */\n _updatePlayerPronouns([index, value]) {\n const player = this._store.state.players.players[index];\n\n this._store.commit(\"players/update\", {\n player,\n property: \"pronouns\",\n value,\n isFromSockets: true,\n });\n }\n\n /**\n * Handle a ping message by another player / storyteller\n * @param playerIdOrCount\n * @param latency\n * @private\n */\n _handlePing([playerIdOrCount = 0, latency] = []) {\n const now = new Date().getTime();\n if (!this._isSpectator) {\n // remove players that haven't sent a ping in twice the timespan\n for (let player in this._players) {\n if (now - this._players[player] > this._pingInterval * 2) {\n delete this._players[player];\n delete this._pings[player];\n }\n }\n // remove claimed seats from players that are no longer connected\n this._store.state.players.players.forEach((player) => {\n if (player.id && !this._players[player.id]) {\n this._store.commit(\"players/update\", {\n player,\n property: \"id\",\n value: \"\",\n });\n }\n });\n // store new player data\n if (playerIdOrCount) {\n this._players[playerIdOrCount] = now;\n const ping = parseInt(latency, 10);\n if (ping && ping > 0 && ping < 30 * 1000) {\n // ping to Players\n this._pings[playerIdOrCount] = ping;\n const pings = Object.values(this._pings);\n this._store.commit(\n \"session/setPing\",\n Math.round(pings.reduce((a, b) => a + b, 0) / pings.length)\n );\n }\n }\n } else if (latency) {\n // ping to ST\n this._store.commit(\"session/setPing\", parseInt(latency, 10));\n }\n // update player count\n if (!this._isSpectator || playerIdOrCount) {\n this._store.commit(\n \"session/setPlayerCount\",\n this._isSpectator ? playerIdOrCount : Object.keys(this._players).length\n );\n }\n }\n\n /**\n * Handle a player leaving the sessions. ST only\n * @param playerId\n * @private\n */\n _handleBye(playerId) {\n if (this._isSpectator) return;\n delete this._players[playerId];\n this._store.commit(\n \"session/setPlayerCount\",\n Object.keys(this._players).length\n );\n }\n\n /**\n * Claim a seat, needs to be confirmed by the Storyteller.\n * Seats already occupied can't be claimed.\n * @param seat either -1 to vacate or the index of the seat claimed\n */\n claimSeat(seat) {\n if (!this._isSpectator) return;\n const players = this._store.state.players.players;\n if (players.length > seat && (seat < 0 || !players[seat].id)) {\n this._send(\"claim\", [seat, this._store.state.session.playerId]);\n }\n }\n\n /**\n * Update a player id associated with that seat.\n * @param index seat index or -1\n * @param value playerId to add / remove\n * @private\n */\n _updateSeat([index, value]) {\n if (this._isSpectator) return;\n const property = \"id\";\n const players = this._store.state.players.players;\n // remove previous seat\n const oldIndex = players.findIndex(({ id }) => id === value);\n if (oldIndex >= 0 && oldIndex !== index) {\n this._store.commit(\"players/update\", {\n player: players[oldIndex],\n property,\n value: \"\",\n });\n }\n // add playerId to new seat\n if (index >= 0) {\n const player = players[index];\n if (!player) return;\n this._store.commit(\"players/update\", { player, property, value });\n }\n // update player session list as if this was a ping\n this._handlePing([true, value, 0]);\n }\n\n /**\n * Distribute player roles to all seated players in a direct message.\n * This will be split server side so that each player only receives their own (sub)message.\n */\n distributeRoles() {\n if (this._isSpectator) return;\n const message = {};\n this._store.state.players.players.forEach((player, index) => {\n if (player.id && player.role) {\n message[player.id] = [\n \"player\",\n { index, property: \"role\", value: player.role.id },\n ];\n }\n });\n if (Object.keys(message).length) {\n this._send(\"direct\", message);\n }\n }\n\n /**\n * A player nomination. ST only\n * This also syncs the voting speed to the players.\n * Payload can be an object with {nomination} property or just the nomination itself, or undefined.\n * @param payload [nominator, nominee]|{nomination}\n */\n nomination(payload) {\n if (this._isSpectator) return;\n const nomination = payload ? payload.nomination || payload : payload;\n const players = this._store.state.players.players;\n if (\n !nomination ||\n (players.length > nomination[0] && players.length > nomination[1])\n ) {\n this.setVotingSpeed(this._store.state.session.votingSpeed);\n this._send(\"nomination\", nomination);\n }\n }\n\n /**\n * Set the isVoteInProgress status. ST only\n */\n setVoteInProgress() {\n if (this._isSpectator) return;\n this._send(\"isVoteInProgress\", this._store.state.session.isVoteInProgress);\n }\n\n /**\n * Send the isNight status. ST only\n */\n setIsNight() {\n if (this._isSpectator) return;\n this._send(\"isNight\", this._store.state.grimoire.isNight);\n }\n\n /**\n * Send the isVoteHistoryAllowed state. ST only\n */\n setVoteHistoryAllowed() {\n if (this._isSpectator) return;\n this._send(\n \"isVoteHistoryAllowed\",\n this._store.state.session.isVoteHistoryAllowed\n );\n }\n\n /**\n * Send the isVoteWatchingAllowed state. ST only\n */\n setVoteWatchingAllowed() {\n if (this._isSpectator) return;\n this._send(\n \"isVoteWatchingAllowed\",\n this._store.state.session.isVoteWatchingAllowed\n );\n }\n\n /**\n * Send the voting speed. ST only\n * @param votingSpeed voting speed in seconds, minimum 1\n */\n setVotingSpeed(votingSpeed) {\n if (this._isSpectator) return;\n if (votingSpeed) {\n this._send(\"votingSpeed\", votingSpeed);\n }\n }\n\n /**\n * Set which player is on the block. ST only\n * @param playerIndex, player id or -1 for empty\n */\n setMarked(playerIndex) {\n if (this._isSpectator) return;\n this._send(\"marked\", playerIndex);\n }\n\n /**\n * Clear the vote history for everyone. ST only\n */\n clearVoteHistory() {\n if (this._isSpectator) return;\n this._send(\"clearVoteHistory\");\n }\n\n /**\n * Send a vote. Player or ST\n * @param index Seat of the player\n * @param sync Flag whether to sync this vote with others or not\n */\n vote([index]) {\n const player = this._store.state.players.players[index];\n if (\n this._store.state.session.playerId === player.id ||\n !this._isSpectator\n ) {\n // send vote only if it is your own vote or you are the storyteller\n this._send(\"vote\", [\n index,\n this._store.state.session.votes[index],\n !this._isSpectator,\n ]);\n }\n }\n\n /**\n * Handle an incoming vote, but only if it is from ST or unlocked.\n * @param index\n * @param vote\n * @param fromST\n */\n _handleVote([index, vote, fromST]) {\n const { session, players } = this._store.state;\n const playerCount = players.players.length;\n const indexAdjusted =\n (index - 1 + playerCount - session.nomination[1]) % playerCount;\n if (fromST || indexAdjusted >= session.lockedVote - 1) {\n this._store.commit(\"session/vote\", [index, vote]);\n }\n }\n\n /**\n * Lock a vote. ST only\n */\n lockVote() {\n if (this._isSpectator) return;\n const { lockedVote, votes, nomination } = this._store.state.session;\n const { players } = this._store.state.players;\n const index = (nomination[1] + lockedVote - 1) % players.length;\n this._send(\"lock\", [this._store.state.session.lockedVote, votes[index]]);\n }\n\n /**\n * Update vote lock and the locked vote, if it differs. Player only\n * @param lock\n * @param vote\n * @private\n */\n _handleLock([lock, vote]) {\n if (!this._isSpectator) return;\n this._store.commit(\"session/lockVote\", lock);\n if (lock > 1) {\n const { lockedVote, nomination } = this._store.state.session;\n const { players } = this._store.state.players;\n const index = (nomination[1] + lockedVote - 1) % players.length;\n if (this._store.state.session.votes[index] !== vote) {\n this._store.commit(\"session/vote\", [index, vote]);\n }\n }\n }\n\n /**\n * Swap two player seats. ST only\n * @param payload\n */\n swapPlayer(payload) {\n if (this._isSpectator) return;\n this._send(\"swap\", payload);\n }\n\n /**\n * Move a player to another seat. ST only\n * @param payload\n */\n movePlayer(payload) {\n if (this._isSpectator) return;\n this._send(\"move\", payload);\n }\n\n /**\n * Remove a player. ST only\n * @param payload\n */\n removePlayer(payload) {\n if (this._isSpectator) return;\n this._send(\"remove\", payload);\n }\n}\n\nexport default (store) => {\n // setup\n const session = new LiveSession(store);\n\n // listen to mutations\n store.subscribe(({ type, payload }, state) => {\n switch (type) {\n case \"session/setSessionId\":\n if (state.session.sessionId) {\n session.connect(state.session.sessionId);\n } else {\n window.location.hash = \"\";\n session.disconnect();\n }\n break;\n case \"session/claimSeat\":\n session.claimSeat(payload);\n break;\n case \"session/distributeRoles\":\n if (payload) {\n session.distributeRoles();\n }\n break;\n case \"session/nomination\":\n case \"session/setNomination\":\n session.nomination(payload);\n break;\n case \"session/setVoteInProgress\":\n session.setVoteInProgress(payload);\n break;\n case \"session/voteSync\":\n session.vote(payload);\n break;\n case \"session/lockVote\":\n session.lockVote();\n break;\n case \"session/setVotingSpeed\":\n session.setVotingSpeed(payload);\n break;\n case \"session/clearVoteHistory\":\n session.clearVoteHistory();\n break;\n case \"session/setVoteHistoryAllowed\":\n session.setVoteHistoryAllowed();\n break;\n case \"session/setVoteWatchingAllowed\":\n session.setVoteWatchingAllowed();\n break;\n case \"toggleNight\":\n session.setIsNight();\n break;\n case \"setEdition\":\n session.sendEdition();\n break;\n case \"players/setFabled\":\n session.sendFabled();\n break;\n case \"session/setMarkedPlayer\":\n session.setMarked(payload);\n break;\n case \"players/swap\":\n session.swapPlayer(payload);\n break;\n case \"players/move\":\n session.movePlayer(payload);\n break;\n case \"players/remove\":\n session.removePlayer(payload);\n break;\n case \"players/set\":\n case \"players/clear\":\n case \"players/add\":\n session.sendGamestate(\"\", true);\n break;\n case \"players/update\":\n if (payload.property === \"pronouns\") {\n session.sendPlayerPronouns(payload);\n } else {\n session.sendPlayer(payload);\n }\n break;\n }\n });\n\n // check for session Id in hash\n const sessionId = window.location.hash.substr(1);\n if (sessionId) {\n store.commit(\"session/setSpectator\", true);\n store.commit(\"session/setSessionId\", sessionId);\n store.commit(\"toggleGrimoire\", false);\n }\n};\n","const NEWPLAYER = {\n name: \"\",\n id: \"\",\n role: {},\n reminders: [],\n isVoteless: false,\n isDead: false,\n pronouns: \"\"\n};\n\nconst state = () => ({\n players: [],\n fabled: [],\n bluffs: []\n});\n\nconst getters = {\n alive({ players }) {\n return players.filter(player => !player.isDead).length;\n },\n nonTravelers({ players }) {\n const nonTravelers = players.filter(\n player => player.role.team !== \"traveler\"\n );\n return Math.min(nonTravelers.length, 15);\n },\n // calculate a Map of player => night order\n nightOrder({ players, fabled }) {\n const firstNight = [0];\n const otherNight = [0];\n players.forEach(({ role }) => {\n if (role.firstNight && !firstNight.includes(role.firstNight)) {\n firstNight.push(role.firstNight);\n }\n if (role.otherNight && !otherNight.includes(role.otherNight)) {\n otherNight.push(role.otherNight);\n }\n });\n fabled.forEach(role => {\n if (role.firstNight && !firstNight.includes(role.firstNight)) {\n firstNight.push(role.firstNight);\n }\n if (role.otherNight && !otherNight.includes(role.otherNight)) {\n otherNight.push(role.otherNight);\n }\n });\n firstNight.sort((a, b) => a - b);\n otherNight.sort((a, b) => a - b);\n const nightOrder = new Map();\n players.forEach(player => {\n const first = Math.max(firstNight.indexOf(player.role.firstNight), 0);\n const other = Math.max(otherNight.indexOf(player.role.otherNight), 0);\n nightOrder.set(player, { first, other });\n });\n fabled.forEach(role => {\n const first = Math.max(firstNight.indexOf(role.firstNight), 0);\n const other = Math.max(otherNight.indexOf(role.otherNight), 0);\n nightOrder.set(role, { first, other });\n });\n return nightOrder;\n }\n};\n\nconst actions = {\n randomize({ state, commit }) {\n const players = state.players\n .map(a => [Math.random(), a])\n .sort((a, b) => a[0] - b[0])\n .map(a => a[1]);\n commit(\"set\", players);\n },\n clearRoles({ state, commit, rootState }) {\n let players;\n if (rootState.session.isSpectator) {\n players = state.players.map(player => {\n if (player.role.team !== \"traveler\") {\n player.role = {};\n }\n player.reminders = [];\n return player;\n });\n } else {\n players = state.players.map(({ name, id, pronouns }) => ({\n ...NEWPLAYER,\n name,\n id,\n pronouns\n }));\n commit(\"setFabled\", { fabled: [] });\n }\n commit(\"set\", players);\n commit(\"setBluff\");\n }\n};\n\nconst mutations = {\n clear(state) {\n state.players = [];\n state.bluffs = [];\n state.fabled = [];\n },\n set(state, players = []) {\n state.players = players;\n },\n /**\n The update mutation also has a property for isFromSockets\n this property can be addded to payload object for any mutations\n then can be used to prevent infinite loops when a property is\n able to be set from multiple different session on websockets.\n An example of this is in the sendPlayerPronouns and _updatePlayerPronouns\n in socket.js.\n */\n update(state, { player, property, value }) {\n const index = state.players.indexOf(player);\n if (index >= 0) {\n state.players[index][property] = value;\n }\n },\n add(state, name) {\n state.players.push({\n ...NEWPLAYER,\n name\n });\n },\n remove(state, index) {\n state.players.splice(index, 1);\n },\n swap(state, [from, to]) {\n [state.players[from], state.players[to]] = [\n state.players[to],\n state.players[from]\n ];\n // hack: \"modify\" the array so that Vue notices something changed\n state.players.splice(0, 0);\n },\n move(state, [from, to]) {\n state.players.splice(to, 0, state.players.splice(from, 1)[0]);\n },\n setBluff(state, { index, role } = {}) {\n if (index !== undefined) {\n state.bluffs.splice(index, 1, role);\n } else {\n state.bluffs = [];\n }\n },\n setFabled(state, { index, fabled } = {}) {\n if (index !== undefined) {\n state.fabled.splice(index, 1);\n } else if (fabled) {\n if (!Array.isArray(fabled)) {\n state.fabled.push(fabled);\n } else {\n state.fabled = fabled;\n }\n }\n }\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n};\n","/**\n * Handle a vote request.\n * If the vote is from a seat that is already locked, ignore it.\n * @param state session state\n * @param index seat of the player in the circle\n * @param vote true or false\n */\nconst handleVote = (state, [index, vote]) => {\n if (!state.nomination) return;\n state.votes = [...state.votes];\n state.votes[index] = vote === undefined ? !state.votes[index] : vote;\n};\n\nconst state = () => ({\n sessionId: \"\",\n isSpectator: false,\n isReconnecting: false,\n playerCount: 0,\n ping: 0,\n playerId: \"\",\n claimedSeat: -1,\n nomination: false,\n votes: [],\n lockedVote: 0,\n votingSpeed: 3000,\n isVoteInProgress: false,\n voteHistory: [],\n markedPlayer: -1,\n isVoteHistoryAllowed: false,\n isVoteWatchingAllowed: true,\n isRolesDistributed: false,\n});\n\nconst getters = {};\n\nconst actions = {};\n\n// mutations helper functions\nconst set = (key) => (state, val) => {\n state[key] = val;\n};\n\nconst mutations = {\n setPlayerId: set(\"playerId\"),\n setSpectator: set(\"isSpectator\"),\n setReconnecting: set(\"isReconnecting\"),\n setPlayerCount: set(\"playerCount\"),\n setPing: set(\"ping\"),\n setVotingSpeed: set(\"votingSpeed\"),\n setVoteInProgress: set(\"isVoteInProgress\"),\n setMarkedPlayer: set(\"markedPlayer\"),\n setNomination: set(\"nomination\"),\n setVoteHistoryAllowed: set(\"isVoteHistoryAllowed\"),\n setVoteWatchingAllowed: set(\"isVoteWatchingAllowed\"),\n claimSeat: set(\"claimedSeat\"),\n distributeRoles: set(\"isRolesDistributed\"),\n setSessionId(state, sessionId) {\n state.sessionId = sessionId\n .toLocaleLowerCase()\n .replace(/[^0-9a-z]/g, \"\")\n .substr(0, 10);\n },\n nomination(\n state,\n { nomination, votes, votingSpeed, lockedVote, isVoteInProgress } = {}\n ) {\n state.nomination = nomination || false;\n state.votes = votes || [];\n state.votingSpeed = votingSpeed || state.votingSpeed;\n state.lockedVote = lockedVote || 0;\n state.isVoteInProgress = isVoteInProgress || false;\n },\n /**\n * Create an entry in the vote history log. Requires current player array because it might change later in the game.\n * Only stores votes that were completed.\n * @param state\n * @param players\n */\n addHistory(state, players) {\n if (!state.isVoteHistoryAllowed && state.isSpectator) return;\n if (!state.nomination || state.lockedVote <= players.length) return;\n const isExile = players[state.nomination[1]].role.team === \"traveler\";\n state.voteHistory.push({\n timestamp: new Date(),\n nominator: players[state.nomination[0]].name,\n nominee: players[state.nomination[1]].name,\n type: isExile ? \"Exile\" : \"Execution\",\n majority: Math.ceil(\n players.filter((player) => !player.isDead || isExile).length / 2\n ),\n votes: players\n .filter((player, index) => state.votes[index])\n .map(({ name }) => name),\n });\n },\n clearVoteHistory(state) {\n state.voteHistory = [];\n },\n /**\n * Store a vote with and without syncing it to the live session.\n * This is necessary in order to prevent infinite voting loops.\n * @param state\n * @param vote\n */\n vote: handleVote,\n voteSync: handleVote,\n lockVote(state, lock) {\n state.lockedVote = lock !== undefined ? lock : state.lockedVote + 1;\n },\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import Vuex from \"vuex\";\nimport persistence from \"./persistence\";\nimport socket from \"./socket\";\nimport players from \"./modules/players\";\nimport session from \"./modules/session\";\nimport editionJSON from \"../editions.json\";\nimport rolesJSON from \"../roles.json\";\nimport fabledJSON from \"../fabled.json\";\nimport jinxesJSON from \"../hatred.json\";\n\n// helper functions\nconst getRolesByEdition = (edition = editionJSON[0]) => {\n return new Map(\n rolesJSON\n .filter((r) => r.edition === edition.id || edition.roles.includes(r.id))\n .sort((a, b) => b.team.localeCompare(a.team))\n .map((role) => [role.id, role])\n );\n};\n\nconst getTravelersNotInEdition = (edition = editionJSON[0]) => {\n return rolesJSON.filter(\n (r) =>\n r.team === \"traveler\" &&\n r.edition !== edition.id &&\n !edition.roles.includes(r.id)\n );\n};\n\nconst getRolesNotInEdition = (edition = editionJSON[0]) => {\n return rolesJSON.filter(\n (r) =>\n r.team !== \"traveler\" &&\n r.edition !== edition.id &&\n !edition.roles.includes(r.id)\n );\n};\n\nconst getRoleById = (id) => {\n return rolesJSON.find((r) => r.id === id);\n ``;\n};\n\nconst set =\n (key) =>\n ({ grimoire }, val) => {\n grimoire[key] = val;\n };\n\nconst toggle =\n (key) =>\n ({ grimoire }, val) => {\n if (val === true || val === false) {\n grimoire[key] = val;\n } else {\n grimoire[key] = !grimoire[key];\n }\n };\n\nconst clean = (id) => id.toLocaleLowerCase().replace(/[^a-z0-9]/g, \"\");\n\n// global data maps\nconst editionJSONbyId = new Map(\n editionJSON.map((edition) => [edition.id, edition])\n);\nconst rolesJSONbyId = new Map(rolesJSON.map((role) => [role.id, role]));\nconst fabled = new Map(fabledJSON.map((role) => [role.id, role]));\n\n// jinxes\nlet jinxes = {};\ntry {\n // Note: can't fetch live list due to lack of CORS headers\n // fetch(\"https://bloodontheclocktower.com/script/data/hatred.json\")\n // .then(res => res.json())\n // .then(jinxesJSON => {\n jinxes = new Map(\n jinxesJSON.map(({ id, hatred }) => [\n clean(id),\n new Map(hatred.map(({ id, reason }) => [clean(id), reason])),\n ])\n );\n // });\n} catch (e) {\n console.error(\"couldn't load jinxes\", e);\n}\n\n// base definition for custom roles\nconst customRole = {\n id: \"\",\n name: \"\",\n image: \"\",\n ability: \"\",\n edition: \"custom\",\n firstNight: 0,\n firstNightReminder: \"\",\n otherNight: 0,\n otherNightReminder: \"\",\n reminders: [],\n remindersGlobal: [],\n setup: false,\n team: \"townsfolk\",\n isCustom: true,\n};\n\nexport const store = Vuex.createStore({\n modules: {\n players,\n session,\n },\n state: {\n grimoire: {\n isNight: false,\n isNightOrder: true,\n isPublic: true,\n isMenuOpen: false,\n isStatic: false,\n isMuted: false,\n isImageOptIn: false,\n zoom: 0,\n background: \"\",\n },\n modals: {\n edition: false,\n fabled: false,\n gameState: false,\n nightOrder: false,\n reference: false,\n reminder: false,\n role: false,\n roles: false,\n voteHistory: false,\n },\n edition: editionJSONbyId.get(\"tb\"),\n roles: getRolesByEdition(),\n otherTravelers: getTravelersNotInEdition(),\n otherRoles: getRolesNotInEdition(),\n fabled,\n jinxes,\n },\n getters: {\n /**\n * Return all custom roles, with default values and non-essential data stripped.\n * Role object keys will be replaced with a numerical index to conserve bandwidth.\n * @param roles\n * @returns {[]}\n */\n customRolesStripped: ({ roles }) => {\n const customRoles = [];\n const customKeys = Object.keys(customRole);\n const strippedProps = [\n \"firstNightReminder\",\n \"otherNightReminder\",\n \"isCustom\",\n ];\n roles.forEach((role) => {\n if (!role.isCustom) {\n customRoles.push({ id: role.id });\n } else {\n const strippedRole = {};\n for (let prop in role) {\n if (strippedProps.includes(prop)) {\n continue;\n }\n const value = role[prop];\n if (customKeys.includes(prop) && value !== customRole[prop]) {\n strippedRole[customKeys.indexOf(prop)] = value;\n }\n }\n customRoles.push(strippedRole);\n }\n });\n return customRoles;\n },\n rolesJSONbyId: () => rolesJSONbyId,\n roleById: getRoleById,\n },\n mutations: {\n setZoom: set(\"zoom\"),\n setBackground: set(\"background\"),\n toggleMuted: toggle(\"isMuted\"),\n toggleMenu: toggle(\"isMenuOpen\"),\n toggleNightOrder: toggle(\"isNightOrder\"),\n toggleStatic: toggle(\"isStatic\"),\n toggleNight: toggle(\"isNight\"),\n toggleGrimoire: toggle(\"isPublic\"),\n toggleImageOptIn: toggle(\"isImageOptIn\"),\n toggleModal({ modals }, name) {\n if (name) {\n modals[name] = !modals[name];\n }\n for (let modal in modals) {\n if (modal === name) continue;\n modals[modal] = false;\n }\n },\n /**\n * Store custom roles\n * @param state\n * @param roles Array of role IDs or full role definitions\n */\n setCustomRoles(state, roles) {\n const processedRoles = roles\n // replace numerical role object keys with matching key names\n .map((role) => {\n if (role[0]) {\n const customKeys = Object.keys(customRole);\n const mappedRole = {};\n for (let prop in role) {\n if (customKeys[prop]) {\n mappedRole[customKeys[prop]] = role[prop];\n }\n }\n return mappedRole;\n } else {\n return role;\n }\n })\n // clean up role.id\n .map((role) => {\n role.id = clean(role.id);\n return role;\n })\n // map existing roles to base definition or pre-populate custom roles to ensure all properties\n .map(\n (role) =>\n rolesJSONbyId.get(role.id) ||\n state.roles.get(role.id) ||\n Object.assign({}, customRole, role)\n )\n // default empty icons and placeholders, clean up firstNight / otherNight\n .map((role) => {\n if (rolesJSONbyId.get(role.id)) return role;\n role.imageAlt = // map team to generic icon\n {\n townsfolk: \"good\",\n outsider: \"outsider\",\n minion: \"minion\",\n demon: \"evil\",\n fabled: \"fabled\",\n }[role.team] || \"custom\";\n role.firstNight = Math.abs(role.firstNight);\n role.otherNight = Math.abs(role.otherNight);\n return role;\n })\n // filter out roles that don't match an existing role and also don't have name/ability/team\n .filter((role) => role.name && role.ability && role.team)\n // sort by team\n .sort((a, b) => b.team.localeCompare(a.team));\n // convert to Map without Fabled\n state.roles = new Map(\n processedRoles\n .filter((role) => role.team !== \"fabled\")\n .map((role) => [role.id, role])\n );\n // update Fabled to include custom Fabled from this script\n state.fabled = new Map([\n ...processedRoles\n .filter((r) => r.team === \"fabled\")\n .map((r) => [r.id, r]),\n ...fabledJSON.map((role) => [role.id, role]),\n ]);\n // update extraTravelers map to only show travelers not in this script\n state.otherTravelers = new Map(\n rolesJSON\n .filter(\n (r) => r.team === \"traveler\" && !roles.some((i) => i.id === r.id)\n )\n .map((role) => [role.id, role])\n );\n },\n setEdition(state, edition) {\n if (editionJSONbyId.has(edition.id)) {\n state.edition = editionJSONbyId.get(edition.id);\n state.roles = getRolesByEdition(state.edition);\n state.otherTravelers = getTravelersNotInEdition(state.edition);\n state.otherRoles = getRolesNotInEdition(state.edition);\n } else {\n state.edition = edition;\n }\n state.modals.edition = false;\n },\n },\n plugins: [persistence, socket],\n});\n","import { createApp } from \"vue\";\nimport App from \"./App.vue\";\nimport { store } from \"./store\";\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\n\nconst faIcons = [\n \"AddressCard\",\n \"BookOpen\",\n \"BookDead\",\n \"BroadcastTower\",\n \"Chair\",\n \"CheckSquare\",\n \"CloudMoon\",\n \"Cog\",\n \"Copy\",\n \"Clipboard\",\n \"Dice\",\n \"Dragon\",\n \"ExchangeAlt\",\n \"ExclamationTriangle\",\n \"FileCode\",\n \"FileUpload\",\n \"HandPaper\",\n \"HandPointRight\",\n \"Heartbeat\",\n \"Image\",\n \"Link\",\n \"MinusCircle\",\n \"PeopleArrows\",\n \"PlusCircle\",\n \"Question\",\n \"Random\",\n \"RedoAlt\",\n \"SearchMinus\",\n \"SearchPlus\",\n \"Skull\",\n \"Square\",\n \"TheaterMasks\",\n \"TimesCircle\",\n \"TrashAlt\",\n \"Undo\",\n \"User\",\n \"UserEdit\",\n \"UserFriends\",\n \"Users\",\n \"VenusMars\",\n \"VolumeUp\",\n \"VolumeMute\",\n \"VoteYea\",\n \"WindowMaximize\",\n \"WindowMinimize\",\n \"Times\",\n \"Xmark\",\n];\nconst fabIcons = [\"Github\", \"Discord\"];\nlibrary.add(\n ...faIcons.map((i) => fas[\"fa\" + i]),\n ...fabIcons.map((i) => fab[\"fa\" + i])\n);\n\ncreateApp(App)\n .component(\"font-awesome-icon\", FontAwesomeIcon)\n .use(store)\n .mount(\"#app\");\n","module.exports = store => {\n const updatePagetitle = isPublic =>\n (document.title = `Blood on the Clocktower ${\n isPublic ? \"Town Square\" : \"Grimoire\"\n }`);\n\n // initialize data\n if (localStorage.getItem(\"background\")) {\n store.commit(\"setBackground\", localStorage.background);\n }\n if (localStorage.getItem(\"muted\")) {\n store.commit(\"toggleMuted\", true);\n }\n if (localStorage.getItem(\"static\")) {\n store.commit(\"toggleStatic\", true);\n }\n if (localStorage.getItem(\"imageOptIn\")) {\n store.commit(\"toggleImageOptIn\", true);\n }\n if (localStorage.getItem(\"zoom\")) {\n store.commit(\"setZoom\", parseFloat(localStorage.getItem(\"zoom\")));\n }\n if (localStorage.getItem(\"isGrimoire\")) {\n store.commit(\"toggleGrimoire\", false);\n updatePagetitle(false);\n }\n if (localStorage.roles !== undefined) {\n store.commit(\"setCustomRoles\", JSON.parse(localStorage.roles));\n store.commit(\"setEdition\", { id: \"custom\" });\n }\n if (localStorage.edition !== undefined) {\n // this will initialize state.roles for official editions\n store.commit(\"setEdition\", JSON.parse(localStorage.edition));\n }\n if (localStorage.bluffs !== undefined) {\n JSON.parse(localStorage.bluffs).forEach((role, index) => {\n store.commit(\"players/setBluff\", {\n index,\n role: store.state.roles.get(role) || {}\n });\n });\n }\n if (localStorage.fabled !== undefined) {\n store.commit(\"players/setFabled\", {\n fabled: JSON.parse(localStorage.fabled).map(\n fabled => store.state.fabled.get(fabled.id) || fabled\n )\n });\n }\n if (localStorage.players) {\n store.commit(\n \"players/set\",\n JSON.parse(localStorage.players).map(player => ({\n ...player,\n role:\n store.state.roles.get(player.role) ||\n store.getters.rolesJSONbyId.get(player.role) ||\n {}\n }))\n );\n }\n /**** Session related data *****/\n if (localStorage.getItem(\"playerId\")) {\n store.commit(\"session/setPlayerId\", localStorage.getItem(\"playerId\"));\n }\n if (localStorage.getItem(\"session\") && !window.location.hash.substr(1)) {\n const [spectator, sessionId] = JSON.parse(localStorage.getItem(\"session\"));\n store.commit(\"session/setSpectator\", spectator);\n store.commit(\"session/setSessionId\", sessionId);\n }\n\n // listen to mutations\n store.subscribe(({ type, payload }, state) => {\n switch (type) {\n case \"toggleGrimoire\":\n if (!state.grimoire.isPublic) {\n localStorage.setItem(\"isGrimoire\", 1);\n } else {\n localStorage.removeItem(\"isGrimoire\");\n }\n updatePagetitle(state.grimoire.isPublic);\n break;\n case \"setBackground\":\n if (payload) {\n localStorage.setItem(\"background\", payload);\n } else {\n localStorage.removeItem(\"background\");\n }\n break;\n case \"toggleMuted\":\n if (state.grimoire.isMuted) {\n localStorage.setItem(\"muted\", 1);\n } else {\n localStorage.removeItem(\"muted\");\n }\n break;\n case \"toggleStatic\":\n if (state.grimoire.isStatic) {\n localStorage.setItem(\"static\", 1);\n } else {\n localStorage.removeItem(\"static\");\n }\n break;\n case \"toggleImageOptIn\":\n if (state.grimoire.isImageOptIn) {\n localStorage.setItem(\"imageOptIn\", 1);\n } else {\n localStorage.removeItem(\"imageOptIn\");\n }\n break;\n case \"setZoom\":\n if (payload !== 0) {\n localStorage.setItem(\"zoom\", payload);\n } else {\n localStorage.removeItem(\"zoom\");\n }\n break;\n case \"setEdition\":\n localStorage.setItem(\"edition\", JSON.stringify(payload));\n if (state.edition.isOfficial) {\n localStorage.removeItem(\"roles\");\n }\n break;\n case \"setCustomRoles\":\n if (!payload.length) {\n localStorage.removeItem(\"roles\");\n } else {\n localStorage.setItem(\"roles\", JSON.stringify(payload));\n }\n break;\n case \"players/setBluff\":\n localStorage.setItem(\n \"bluffs\",\n JSON.stringify(state.players.bluffs.map(({ id }) => id))\n );\n break;\n case \"players/setFabled\":\n localStorage.setItem(\n \"fabled\",\n JSON.stringify(\n state.players.fabled.map(fabled =>\n fabled.isCustom ? fabled : { id: fabled.id }\n )\n )\n );\n break;\n case \"players/add\":\n case \"players/update\":\n case \"players/remove\":\n case \"players/clear\":\n case \"players/set\":\n case \"players/swap\":\n case \"players/move\":\n if (state.players.players.length) {\n localStorage.setItem(\n \"players\",\n JSON.stringify(\n state.players.players.map(player => ({\n ...player,\n // simplify the stored data\n role: player.role.id || {}\n }))\n )\n );\n } else {\n localStorage.removeItem(\"players\");\n }\n break;\n case \"session/setSessionId\":\n if (payload) {\n localStorage.setItem(\n \"session\",\n JSON.stringify([state.session.isSpectator, payload])\n );\n } else {\n localStorage.removeItem(\"session\");\n }\n break;\n case \"session/setPlayerId\":\n if (payload) {\n localStorage.setItem(\"playerId\", payload);\n } else {\n localStorage.removeItem(\"playerId\");\n }\n break;\n }\n });\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunktownsquare\"] = self[\"webpackChunktownsquare\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], () => (__webpack_require__(487)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","class","keyup","tabindex","style","grimoire","background","match","src","autoplay","loop","players","length","session","nomination","ref","version","player","index","key","handleTrigger","$event","isBluffsOpen","toggleBluffs","icon","bluffSize","openRoleModal","role","bluffs","fabled","isFabledOpen","toggleFabled","removeFabled","nightOrder","get","first","isNightOrder","firstNightReminder","other","otherNightReminder","selectedPlayer","zoom","toggleStatus","$emit","vote","title","cancel","swapPlayer","movePlayer","nominatePlayer","sessionId","isRolesDistributed","updatePlayer","isDead","isVoteless","isMenuOpen","name","pronouns","changePronouns","isSpectator","changeName","lockedVote","removePlayer","claimSeat","playerId","reminders","reminder","removeReminder","viewBox","d","fill","setRole","firstNight","otherNight","reminderLeaves","width","x","nameToFontSize","edition","team","ability","props","type","default","computed","this","remindersGlobal","data","methods","__exports__","components","Token","required","indexOf","voteLocked","indexAdjusted","unit","window","innerWidth","innerHeight","isSwap","prompt","isPublic","isMarked","splice","property","value","closeMenu","$store","commit","votes","modals","availableReminders","playerIndex","toggleModal","addReminder","close","isMaximized","emits","mapReminder","image","imageAlt","Modal","state","roles","forEach","some","p","bluff","otherTravelers","otherRoles","push","availableRoles","find","r","tab","filter","filteredRoles","slice","toLowerCase","includes","Player","RoleModal","ReminderModal","swap","move","nominate","method","params","openReminderModal","confirm","from","to","undefined","swapTo","updatedNomination","nom","moveTo","teams","traveler","isOfficial","author","alive","townsfolk","outsider","minion","demon","nonTravelers","getters","href","target","voteHistory","leaveSession","playerCount","toggleMenu","toggleGrimoire","toggleNight","isNight","toggleNightOrder","setZoom","Math","round","setBackground","imageOptIn","toggleStatic","isStatic","toggleMuted","isMuted","ping","copySessionUrl","distributeRoles","hostSession","joinSession","addPlayer","randomizeSeatings","clearPlayers","clearRoles","random","url","location","split","link","navigator","clipboard","writeText","popup","setTimeout","bind","isImageOptIn","toggleImageOptIn","pop","dispatch","roleSelection","teamRoles","reduce","a","selected","game","allowMultiple","assignRoles","selectedRoles","selectRandomRoles","randomElement","arr","floor","values","b","hasSelectedSetupRoles","setup","max","composition","available","Array","sort","mounted","watch","isCustom","scripts","script","handleURL","accept","handleUpload","openUpload","promptURL","readFromClipboard","editions","setEdition","$refs","upload","click","file","files","size","reader","FileReader","addEventListener","JSON","parse","result","parseRoles","alert","message","readAsText","async","res","fetch","json","text","readText","metaIndex","findIndex","meta","String","assign","has","alt","language","userLanguage","reference","rolesGrouped","playersByRole","join","jinxed","jinx","second","reason","jinxes","nomineeStyle","nominatorStyle","nominator","nominee","voters","ceil","isVoteWatchingAllowed","isVoteInProgress","votingSpeed","currentVote","setVotingSpeed","countdown","pause","voteTimer","stop","start","finish","setMarked","removeMarked","muted","transform","transitionDuration","lock","rotation","min","canVote","reorder","n","setInterval","clearInterval","diff","speed","gradients","gradient","height","x1","y1","x2","y2","offset","rolesFirstNight","rolesOtherNight","setFabled","fable","clearVoteHistory","setRecordVoteHistory","setVoteWatching","timestamp","getHours","toString","padStart","getMinutes","majority","isVoteHistoryAllowed","gamestate","input","select","copy","load","stringify","customRolesStripped","f","rolesJSONbyId","GameStateModal","VoteHistoryModal","FabledModal","NightOrderModal","Vote","ReferenceModal","Intro","TownInfo","TownSquare","Menu","EditionModal","RolesModal","Gradients","ctrlKey","metaKey","toLocaleLowerCase","menu","render","LiveSession","constructor","store","_wss","_socket","_isSpectator","_gamestate","_store","_pingInterval","_pingTimer","_reconnectTimer","_players","_pings","connect","_open","channel","disconnect","WebSocket","_handleMessage","onopen","_onOpen","onclose","err","_send","command","readyState","send","_sendDirect","sendGamestate","_ping","_handlePing","clearTimeout","console","log","_updateEdition","_updateFabled","_updateGamestate","_updatePlayer","_updateSeat","_handleVote","_handleLock","_handleBye","_updatePlayerPronouns","substr","isLightweight","roleId","sendEdition","markedPlayer","missing","sendFabled","sendPlayer","sendPlayerPronouns","isFromSockets","playerIdOrCount","latency","now","Date","getTime","parseInt","pings","seat","oldIndex","payload","setVoteInProgress","setIsNight","setVoteHistoryAllowed","setVoteWatchingAllowed","fromST","lockVote","subscribe","hash","NEWPLAYER","Map","set","actions","randomize","rootState","mutations","clear","update","add","remove","setBluff","isArray","namespaced","handleVote","isReconnecting","claimedSeat","val","setPlayerId","setSpectator","setReconnecting","setPlayerCount","setPing","setMarkedPlayer","setNomination","setSessionId","replace","addHistory","isExile","voteSync","getRolesByEdition","localeCompare","getTravelersNotInEdition","getRolesNotInEdition","getRoleById","toggle","clean","editionJSONbyId","hatred","error","customRole","modules","gameState","customRoles","customKeys","strippedProps","strippedRole","prop","roleById","modal","setCustomRoles","processedRoles","mappedRole","abs","i","plugins","socket","faIcons","fabIcons","App","component","use","mount","updatePagetitle","document","localStorage","getItem","parseFloat","spectator","removeItem","setItem","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","m","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","getter","__esModule","definition","defineProperty","enumerable","g","globalThis","Function","obj","prototype","hasOwnProperty","call","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/js/app.a384721b.js b/js/app.a384721b.js new file mode 100644 index 00000000..f16417a0 --- /dev/null +++ b/js/app.a384721b.js @@ -0,0 +1,2 @@ +(()=>{var e={3821:(e,t,i)=>{var o={"./bmr-demon.png":387,"./bmr-minion.png":9764,"./bmr-outsider.png":3396,"./bmr-townsfolk.png":4174,"./bmr.png":4085,"./custom.png":5592,"./for.png":3331,"./ib.png":9737,"./luf.png":8142,"./snv-demon.png":2867,"./snv-minion.png":3571,"./snv-outsider.png":3429,"./snv-townsfolk.png":1822,"./snv.png":9857,"./tb-demon.png":6737,"./tb-minion.png":972,"./tb-outsider.png":2338,"./tb-townsfolk.png":9600,"./tb.png":6827};function s(e){var t=a(e);return i(t)}function a(e){if(!i.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}s.keys=function(){return Object.keys(o)},s.resolve=a,e.exports=s,s.id=3821},6003:(e,t,i)=>{var o={"./acrobat.png":8035,"./actor_fall_of_rome.png":1465,"./alchemist.png":9799,"./alhadikhia.png":8723,"./amnesiac.png":5118,"./angel.png":6474,"./apprentice.png":819,"./architect_fall_of_rome.png":1607,"./artist.png":6835,"./assassin.png":3169,"./atheist.png":946,"./augur_fall_of_rome.png":7726,"./badger.png":1584,"./badomen_fall_of_rome.png":6577,"./balloonist.png":5926,"./barber.png":8069,"./barista.png":2437,"./baron.png":8230,"./beggar.png":1082,"./bishop.png":5343,"./blacksmith_fall_of_rome.png":9363,"./bonecollector.png":1594,"./boomdandy.png":3682,"./bountyhunter.png":7479,"./buddhist.png":1990,"./bureaucrat.png":367,"./butcher.png":177,"./butler.png":4697,"./caesar_fall_of_rome.png":7946,"./cannibal.png":6214,"./centurion1_fall_of_rome.png":1708,"./cerenovus.png":7637,"./chambermaid.png":1146,"./chef.png":1248,"./choirboy.png":5081,"./cleopatra_fall_of_rome.png":9114,"./clockmaker.png":5102,"./courtier.png":759,"./crassus_fall_of_rome.png":4163,"./cultleader.png":2763,"./custom.png":7037,"./damsel.png":5533,"./deusexfiasco.png":8141,"./deviant.png":1683,"./devilsadvocate.png":5549,"./djinn.png":393,"./doomsayer.png":5142,"./dreamer.png":1610,"./drunk.png":3669,"./duchess.png":2491,"./empath.png":5695,"./emperor_fall_of_rome.png":4595,"./engineer.png":7571,"./evil.png":1836,"./eviltwin.png":7664,"./exorcist.png":5858,"./fabled.png":5025,"./fanggu.png":1833,"./farmer.png":4390,"./fearmonger.png":5297,"./fibbin.png":9332,"./fiddler.png":5076,"./fisherman.png":2776,"./flowergirl.png":6053,"./fool.png":647,"./fortuneteller.png":9336,"./gambler.png":4306,"./gangster.png":782,"./general.png":2990,"./gladiator_fall_of_rome.png":7434,"./glykon1_fall_of_rome.png":8791,"./goblin.png":1730,"./godfather.png":8536,"./golem.png":7274,"./good.png":6832,"./goon.png":1273,"./gossip.png":5965,"./grandmother.png":4950,"./grinch.png":2325,"./gunslinger.png":7768,"./hannibal_fall_of_rome.png":4896,"./harlot.png":6226,"./harpy.png":3865,"./haruspex_fall_of_rome.png":5649,"./hatter.png":3490,"./hellslibrarian.png":5477,"./heretic.png":6314,"./highpriest1_fall_of_rome.png":934,"./highpriest2_fall_of_rome.png":212,"./highpriestess.png":6251,"./huntsman.png":7893,"./iamspartacus_fall_of_rome.png":4671,"./imp.png":2830,"./innkeeper.png":6580,"./investigator.png":9813,"./judge.png":6306,"./juggler.png":8785,"./kazali.png":3108,"./king.png":6865,"./klutz.png":1938,"./knight.png":3395,"./legion.png":2339,"./legionary.png":4394,"./legionary_fall_of_rome.png":2429,"./leviathan.png":3245,"./librarian.png":651,"./lilmonsta.png":4090,"./lleech.png":1424,"./lunatic.png":2561,"./lycanthrope.png":8746,"./magician.png":4214,"./marionette.png":712,"./mastermind.png":7100,"./mathematician.png":3850,"./matron.png":8054,"./mayor.png":8827,"./mephit.png":3304,"./mercenary_fall_of_rome.png":2841,"./merchant_fall_of_rome.png":7377,"./mezepheles.png":295,"./minion.png":847,"./minstrel.png":3415,"./monk.png":3100,"./moonchild.png":8749,"./mortician_fall_of_rome.png":1021,"./mutant.png":4473,"./nightwatchman.png":2666,"./noble.png":1004,"./nodashii.png":2458,"./ojo.png":3073,"./oracle.png":9624,"./organgrinder.png":5705,"./outsider.png":8814,"./pacifist.png":5873,"./philosopher.png":3300,"./physician.png":4555,"./physician_fall_of_rome.png":9979,"./pithag.png":1282,"./pixie.png":8637,"./plaguedoctor.png":5985,"./plus.png":4511,"./plusone.png":4908,"./po.png":5631,"./poisoner.png":6763,"./politician.png":4265,"./poppygrower.png":8828,"./preacher.png":3213,"./professor.png":889,"./psychopath.png":7826,"./pukka.png":4486,"./puzzlemaster.png":7002,"./ravenkeeper.png":6965,"./recluse.png":3035,"./revolutionary.png":9038,"./riot.png":8118,"./sage.png":6544,"./sailor.png":8984,"./saint.png":4811,"./saintnick.png":7316,"./savant.png":7884,"./scapegoat.png":6701,"./scarletwoman.png":3957,"./scholar_fall_of_rome.png":7330,"./sculptor.png":791,"./sculptor_fall_of_rome.png":8374,"./seamstress.png":4201,"./sentinel.png":4213,"./septemberchild.png":4017,"./shabaloth.png":2034,"./shugenja.png":922,"./sibyl_fall_of_rome.png":4885,"./slayer.png":8081,"./snakecharmer.png":9900,"./snitch.png":7988,"./soldier.png":2231,"./spartacus_fall_of_rome.png":1977,"./spiritofivory.png":3379,"./spy.png":4013,"./standardbearer_fall_of_rome.png":5165,"./steward.png":6050,"./stormcatcher.png":3877,"./sweetheart.png":6356,"./tealady.png":3009,"./temptress_fall_of_rome.png":5274,"./thetwins_fall_of_rome.png":5603,"./thief.png":7112,"./tinker.png":5380,"./towncrier.png":4055,"./toymaker.png":3163,"./trumpeter_fall_of_rome.png":8892,"./undertaker.png":5466,"./vestalvirgin.png":1647,"./vestalvirgin_fall_of_rome.png":2349,"./vigormortis.png":4969,"./villageidiot.png":4883,"./virgin.png":6954,"./vizier.png":5485,"./vortox.png":6142,"./voudon.png":152,"./washerwoman.png":245,"./widow.png":3729,"./winemaker_fall_of_rome.png":1409,"./witch.png":6909,"./x.png":1139,"./zombuul.png":8899};function s(e){var t=a(e);return i(t)}function a(e){if(!i.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}s.keys=function(){return Object.keys(o)},s.resolve=a,e.exports=s,s.id=6003},487:(e,t,i)=>{"use strict";var o=i(9963),s=i(6252),a=i(3577);const r=["src"],n=(0,s._)("div",{class:"backdrop"},null,-1),l={id:"version"};function h(e,t,i,o,h,d){const m=(0,s.up)("Intro"),c=(0,s.up)("TownInfo"),g=(0,s.up)("Vote"),p=(0,s.up)("TownSquare"),y=(0,s.up)("Menu"),u=(0,s.up)("EditionModal"),f=(0,s.up)("FabledModal"),b=(0,s.up)("RolesModal"),w=(0,s.up)("ReferenceModal"),k=(0,s.up)("NightOrderModal"),N=(0,s.up)("VoteHistoryModal"),v=(0,s.up)("GameStateModal"),A=(0,s.up)("Gradients");return(0,s.wg)(),(0,s.iD)("div",{id:"townsquare-app",onKeyup:t[0]||(t[0]=(...e)=>d.keyup&&d.keyup(...e)),tabindex:"-1",class:(0,a.C_)({night:e.grimoire.isNight,static:e.grimoire.isStatic}),style:(0,a.j5)({backgroundImage:e.grimoire.background?`url('${e.grimoire.background}')`:""})},[e.grimoire.background&&e.grimoire.background.match(/\.(mp4|webm)$/i)?((0,s.wg)(),(0,s.iD)("video",{key:0,id:"background",src:e.grimoire.background,autoplay:"",loop:""},null,8,r)):(0,s.kq)("",!0),n,e.players.length?(0,s.kq)("",!0):((0,s.wg)(),(0,s.j4)(m,{key:1})),e.players.length&&!e.session.nomination?((0,s.wg)(),(0,s.j4)(c,{key:2})):(0,s.kq)("",!0),e.session.nomination?((0,s.wg)(),(0,s.j4)(g,{key:3})):(0,s.kq)("",!0),(0,s.Wm)(p),(0,s.Wm)(y,{ref:"menu"},null,512),(0,s.Wm)(u),(0,s.Wm)(f),(0,s.Wm)(b),(0,s.Wm)(w),(0,s.Wm)(k),(0,s.Wm)(N),(0,s.Wm)(v),(0,s.Wm)(A),(0,s._)("span",l,"v"+(0,a.zw)(h.version),1)],38)}var d=i(3907);const m={i8:"2.16.0"},c={key:0},g={key:1},p=["onClick"],y=(0,s._)("span",null,"Fabled",-1),u=["onClick"],f={key:0,class:"night-order first"},b={key:0},w={key:1,class:"night-order other"},k={key:0};function N(e,t,i,r,n,l){const h=(0,s.up)("Player"),d=(0,s.up)("font-awesome-icon"),m=(0,s.up)("Token"),N=(0,s.up)("ReminderModal"),v=(0,s.up)("RoleModal");return(0,s.wg)(),(0,s.iD)("div",{id:"townsquare",class:(0,a.C_)(["square",{public:e.grimoire.isPublic,spectator:e.session.isSpectator,vote:e.session.nomination}])},[(0,s._)("ul",{class:(0,a.C_)(["circle",["size-"+e.players.length]])},[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.players,((e,t)=>((0,s.wg)(),(0,s.j4)(h,{key:t,player:e,onTrigger:e=>l.handleTrigger(t,e),class:(0,a.C_)({from:Math.max(n.swap,n.move,n.nominate)===t,swap:n.swap>-1,move:n.move>-1,nominate:n.nominate>-1})},null,8,["player","onTrigger","class"])))),128))],2),e.players.length?((0,s.wg)(),(0,s.iD)("div",{key:0,class:(0,a.C_)(["bluffs",{closed:!n.isBluffsOpen}]),ref:"bluffs"},[(0,s._)("h3",null,[e.session.isSpectator?((0,s.wg)(),(0,s.iD)("span",c,"Other characters")):((0,s.wg)(),(0,s.iD)("span",g,"Demon bluffs")),(0,s._)("span",{onClick:t[0]||(t[0]=(0,o.iM)(((...e)=>l.toggleBluffs&&l.toggleBluffs(...e)),["stop"]))},[(0,s.Wm)(d,{icon:["fas",n.isBluffsOpen?"minus-circle":"plus-circle"]},null,8,["icon"])])]),(0,s._)("ul",null,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(n.bluffSize,(t=>((0,s.wg)(),(0,s.iD)("li",{key:t,onClick:e=>l.openRoleModal(-1*t)},[(0,s.Wm)(m,{role:e.bluffs[t-1]},null,8,["role"])],8,p)))),128))])],2)):(0,s.kq)("",!0),e.fabled.length?((0,s.wg)(),(0,s.iD)("div",{key:1,class:(0,a.C_)(["fabled",{closed:!n.isFabledOpen}])},[(0,s._)("h3",null,[y,(0,s._)("span",{onClick:t[1]||(t[1]=(0,o.iM)(((...e)=>l.toggleFabled&&l.toggleFabled(...e)),["stop"]))},[(0,s.Wm)(d,{icon:["fas",n.isFabledOpen?"minus-circle":"plus-circle"]},null,8,["icon"])])]),(0,s._)("ul",null,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.fabled,((t,i)=>((0,s.wg)(),(0,s.iD)("li",{key:i,onClick:e=>l.removeFabled(i)},[e.nightOrder.get(t).first&&e.grimoire.isNightOrder?((0,s.wg)(),(0,s.iD)("div",f,[(0,s._)("em",null,(0,a.zw)(e.nightOrder.get(t).first)+".",1),t.firstNightReminder?((0,s.wg)(),(0,s.iD)("span",b,(0,a.zw)(t.firstNightReminder),1)):(0,s.kq)("",!0)])):(0,s.kq)("",!0),e.nightOrder.get(t).other&&e.grimoire.isNightOrder?((0,s.wg)(),(0,s.iD)("div",w,[(0,s._)("em",null,(0,a.zw)(e.nightOrder.get(t).other)+".",1),t.otherNightReminder?((0,s.wg)(),(0,s.iD)("span",k,(0,a.zw)(t.otherNightReminder),1)):(0,s.kq)("",!0)])):(0,s.kq)("",!0),(0,s.Wm)(m,{role:t},null,8,["role"])],8,u)))),128))])],2)):(0,s.kq)("",!0),(0,s.Wm)(N,{"player-index":n.selectedPlayer},null,8,["player-index"]),(0,s.Wm)(v,{"player-index":n.selectedPlayer},null,8,["player-index"])],2)}const v={key:0,class:"night-order first"},A={key:0},R={key:1,class:"night-order other"},S={key:0},I={class:"marked"},D={key:1,class:"pronouns"},M={key:0,class:"menu"},T=["onClick"],G={class:"text"},C=(0,s._)("span",{class:"icon"},null,-1),x=[C],E=(0,s._)("div",{class:"reminderHoverTarget"},null,-1);function B(e,t,r,n,l,h){const d=(0,s.up)("Token"),m=(0,s.up)("font-awesome-icon");return(0,s.wg)(),(0,s.iD)("li",{style:(0,a.j5)(h.zoom)},[(0,s._)("div",{ref:"player",class:(0,a.C_)(["player",[{dead:r.player.isDead,marked:(!e.session.isSpectator||e.session.isVoteWatchingAllowed)&&e.session.markedPlayer===h.index,"no-vote":r.player.isVoteless,you:e.session.sessionId&&r.player.id&&r.player.id===e.session.playerId,"vote-yes":(!e.session.isSpectator||e.session.isVoteWatchingAllowed)&&e.session.votes[h.index],"vote-lock":h.voteLocked},r.player.role.team]])},[(0,s._)("div",{class:"shroud",onClick:t[0]||(t[0]=e=>h.toggleStatus())}),(0,s._)("div",{class:"life",onClick:t[1]||(t[1]=e=>h.toggleStatus())}),e.nightOrder.get(r.player).first&&e.grimoire.isNightOrder?((0,s.wg)(),(0,s.iD)("div",v,[(0,s._)("em",null,(0,a.zw)(e.nightOrder.get(r.player).first)+".",1),r.player.role.firstNightReminder?((0,s.wg)(),(0,s.iD)("span",A,(0,a.zw)(r.player.role.firstNightReminder),1)):(0,s.kq)("",!0)])):(0,s.kq)("",!0),e.nightOrder.get(r.player).other&&e.grimoire.isNightOrder?((0,s.wg)(),(0,s.iD)("div",R,[(0,s._)("em",null,(0,a.zw)(e.nightOrder.get(r.player).other)+".",1),r.player.role.otherNightReminder?((0,s.wg)(),(0,s.iD)("span",S,(0,a.zw)(r.player.role.otherNightReminder),1)):(0,s.kq)("",!0)])):(0,s.kq)("",!0),(0,s.Wm)(d,{role:r.player.role,onSetRole:t[2]||(t[2]=t=>e.$emit("trigger",["openRoleModal"]))},null,8,["role"]),(0,s._)("div",{class:"overlay",onClick:t[3]||(t[3]=e=>h.vote())},[(0,s.Wm)(m,{icon:"hand-paper",class:"vote",title:"Hand UP"})]),(0,s._)("div",{class:"overlay",onClick:t[4]||(t[4]=e=>h.vote())},[(0,s.Wm)(m,{icon:"xmark",class:"vote",title:"Hand DOWN"})]),(0,s._)("div",{class:"overlay",onClick:t[5]||(t[5]=e=>h.cancel())},[(0,s.Wm)(m,{icon:"times-circle",class:"cancel",title:"Cancel"})]),(0,s._)("div",{class:"overlay",onClick:t[6]||(t[6]=e=>h.swapPlayer(r.player))},[(0,s.Wm)(m,{icon:"exchange-alt",class:"swap",title:"Swap seats with this player"})]),(0,s._)("div",{class:"overlay",onClick:t[7]||(t[7]=e=>h.movePlayer(r.player))},[(0,s.Wm)(m,{icon:"redo-alt",class:"move",title:"Move player to this seat"})]),(0,s._)("div",{class:"overlay",onClick:t[8]||(t[8]=e=>h.nominatePlayer(r.player))},[(0,s.Wm)(m,{icon:"hand-point-right",class:"nominate",title:"Nominate this player"})]),r.player.id&&e.session.sessionId?((0,s.wg)(),(0,s.j4)(m,{key:2,icon:"chair",class:(0,a.C_)(["seat",{highlight:e.session.isRolesDistributed}])},null,8,["class"])):(0,s.kq)("",!0),(0,s._)("div",{onClick:t[9]||(t[9]=e=>h.updatePlayer("isVoteless",!0))},[r.player.isDead&&!r.player.isVoteless?((0,s.wg)(),(0,s.j4)(m,{key:0,icon:"vote-yea",class:"has-vote",title:"Ghost vote"})):(0,s.kq)("",!0)]),(0,s._)("div",I,[(0,s.Wm)(m,{icon:"skull"})]),(0,s._)("div",{class:(0,a.C_)(["name",{active:l.isMenuOpen}]),onClick:t[10]||(t[10]=e=>l.isMenuOpen=!l.isMenuOpen)},[(0,s._)("span",null,(0,a.zw)(r.player.name),1),r.player.pronouns?((0,s.wg)(),(0,s.j4)(m,{key:0,icon:"venus-mars"})):(0,s.kq)("",!0),r.player.pronouns?((0,s.wg)(),(0,s.iD)("div",D,[(0,s._)("span",null,(0,a.zw)(r.player.pronouns),1)])):(0,s.kq)("",!0)],2),(0,s.Wm)(o.uT,{name:"fold"},{default:(0,s.w5)((()=>[l.isMenuOpen?((0,s.wg)(),(0,s.iD)("ul",M,[!e.session.isSpectator||e.session.isSpectator&&r.player.id===e.session.playerId?((0,s.wg)(),(0,s.iD)("li",{key:0,onClick:t[11]||(t[11]=(...e)=>h.changePronouns&&h.changePronouns(...e))},[(0,s.Wm)(m,{icon:"venus-mars"}),(0,s.Uk)("Change Pronouns ")])):(0,s.kq)("",!0),e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)(s.HY,{key:1},[(0,s._)("li",{onClick:t[12]||(t[12]=(...e)=>h.changeName&&h.changeName(...e))},[(0,s.Wm)(m,{icon:"user-edit"}),(0,s.Uk)("Rename ")]),(0,s._)("li",{onClick:t[13]||(t[13]=e=>h.movePlayer()),class:(0,a.C_)({disabled:e.session.lockedVote})},[(0,s.Wm)(m,{icon:"redo-alt"}),(0,s.Uk)(" Move player ")],2),(0,s._)("li",{onClick:t[14]||(t[14]=e=>h.swapPlayer()),class:(0,a.C_)({disabled:e.session.lockedVote})},[(0,s.Wm)(m,{icon:"exchange-alt"}),(0,s.Uk)(" Swap seats ")],2),(0,s._)("li",{onClick:t[15]||(t[15]=(...e)=>h.removePlayer&&h.removePlayer(...e)),class:(0,a.C_)({disabled:e.session.lockedVote})},[(0,s.Wm)(m,{icon:"times-circle"}),(0,s.Uk)(" Remove ")],2),r.player.id&&e.session.sessionId?((0,s.wg)(),(0,s.iD)("li",{key:0,onClick:t[16]||(t[16]=e=>h.updatePlayer("id","",!0))},[(0,s.Wm)(m,{icon:"chair"}),(0,s.Uk)(" Empty seat ")])):(0,s.kq)("",!0),e.session.nomination?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("li",{key:1,onClick:t[17]||(t[17]=e=>h.nominatePlayer())},[(0,s.Wm)(m,{icon:"hand-point-right"}),(0,s.Uk)(" Nomination ")]))],64)),e.session.isSpectator?((0,s.wg)(),(0,s.iD)("li",{key:2,onClick:t[18]||(t[18]=(...e)=>h.claimSeat&&h.claimSeat(...e)),class:(0,a.C_)({disabled:r.player.id&&r.player.id!==e.session.playerId})},[(0,s.Wm)(m,{icon:"chair"}),r.player.id?r.player.id===e.session.playerId?((0,s.wg)(),(0,s.iD)(s.HY,{key:1},[(0,s.Uk)(" Vacate seat ")],64)):((0,s.wg)(),(0,s.iD)(s.HY,{key:2},[(0,s.Uk)(" Seat occupied")],64)):((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[(0,s.Uk)(" Claim seat ")],64))],2)):(0,s.kq)("",!0)])):(0,s.kq)("",!0)])),_:1})],2),r.player.reminders?((0,s.wg)(!0),(0,s.iD)(s.HY,{key:0},(0,s.Ko)(r.player.reminders,(t=>((0,s.wg)(),(0,s.iD)("div",{class:(0,a.C_)(["reminder",[t.role]]),key:t.role+" "+t.name,onClick:e=>h.removeReminder(t)},[(0,s._)("span",{class:"icon",style:(0,a.j5)({backgroundImage:`url(${t.image&&e.grimoire.isImageOptIn?t.image:i(6003)("./"+(t.imageAlt||t.role)+".png")})`})},null,4),(0,s._)("span",G,(0,a.zw)(t.name),1)],10,T)))),128)):(0,s.kq)("",!0),(0,s._)("div",{class:"reminder add",onClick:t[19]||(t[19]=t=>e.$emit("trigger",["openReminderModal"]))},x),E],4)}const Y=e=>((0,s.dD)("data-v-6a512cb0"),e=e(),(0,s.Cn)(),e),W={key:1,class:"leaf-left"},Z={key:2,class:"leaf-right"},V={key:4,class:"leaf-orange"},P={viewBox:"0 0 150 150",class:"name"},j=Y((()=>(0,s._)("path",{d:"M 13 75 C 13 160, 138 160, 138 75",id:"curve",fill:"transparent"},null,-1))),O=["font-size"],z={"xlink:href":"#curve"},U={key:5,class:"ability"};function H(e,t,o,r,n,l){return(0,s.wg)(),(0,s.iD)("div",{class:(0,a.C_)(["token",[o.role.id]]),onClick:t[0]||(t[0]=(...e)=>l.setRole&&l.setRole(...e))},[o.role.id?((0,s.wg)(),(0,s.iD)("span",{key:0,class:"icon",style:(0,a.j5)({backgroundImage:`url(${o.role.image&&e.grimoire.isImageOptIn?o.role.image:i(6003)("./"+(o.role.imageAlt||o.role.id)+".png")})`})},null,4)):(0,s.kq)("",!0),o.role.firstNight||o.role.firstNightReminder?((0,s.wg)(),(0,s.iD)("span",W)):(0,s.kq)("",!0),o.role.otherNight||o.role.otherNightReminder?((0,s.wg)(),(0,s.iD)("span",Z)):(0,s.kq)("",!0),l.reminderLeaves?((0,s.wg)(),(0,s.iD)("span",{key:3,class:(0,a.C_)(["leaf-top"+l.reminderLeaves])},null,2)):(0,s.kq)("",!0),o.role.setup?((0,s.wg)(),(0,s.iD)("span",V)):(0,s.kq)("",!0),((0,s.wg)(),(0,s.iD)("svg",P,[j,(0,s._)("text",{width:"150",x:"66.6%","text-anchor":"middle",class:"label mozilla","font-size":l.nameToFontSize(o.role.name)},[(0,s._)("textPath",z,(0,a.zw)(o.role.name),1)],8,O)])),(0,s._)("div",{class:(0,a.C_)(["edition",[`edition-${o.role.edition}`,o.role.team]])},null,2),o.role.ability?((0,s.wg)(),(0,s.iD)("div",U,(0,a.zw)(o.role.ability),1)):(0,s.kq)("",!0)],2)}const F={name:"Token",props:{role:{type:Object,default:()=>({})}},computed:{reminderLeaves:function(){return(this.role.reminders||[]).length+(this.role.remindersGlobal||[]).length},...(0,d.rn)(["grimoire"])},data(){return{}},methods:{nameToFontSize(e){return e&&e.length>14?"80%":e&&e.length>10?"90%":"110%"},setRole(){this.$emit("set-role")}}};var J=i(3744);const L=(0,J.Z)(F,[["render",H],["__scopeId","data-v-6a512cb0"]]),Q=L,q={components:{Token:Q},props:{player:{type:Object,required:!0}},computed:{...(0,d.rn)("players",["players"]),...(0,d.rn)(["grimoire","session"]),...(0,d.Se)({nightOrder:"players/nightOrder"}),index:function(){return this.players.indexOf(this.player)},voteLocked:function(){const e=this.session,t=this.players.length;if(!e.nomination)return!1;const i=(this.index-1+t-e.nomination[1])%t;return iwindow.innerHeight?"vh":"vw";return this.players.length<7?{width:18+this.grimoire.zoom+e}:this.players.length<=10?{width:16+this.grimoire.zoom+e}:this.players.length<=15?{width:14+this.grimoire.zoom+e}:{width:12+this.grimoire.zoom+e}}},data(){return{isMenuOpen:!1,isSwap:!1}},methods:{changePronouns(){if(this.session.isSpectator&&this.player.id!==this.session.playerId)return;const e=prompt("Player pronouns",this.player.pronouns);null!==e&&this.updatePlayer("pronouns",e,!0)},toggleStatus(){this.grimoire.isPublic?this.player.isDead?this.player.isVoteless?(this.updatePlayer("isVoteless",!1),this.updatePlayer("isDead",!1)):this.updatePlayer("isVoteless",!0):(this.updatePlayer("isDead",!0),this.player.isMarked&&this.updatePlayer("isMarked",!1)):(this.updatePlayer("isDead",!this.player.isDead),this.player.isMarked&&this.updatePlayer("isMarked",!1),this.player.isVoteless&&this.updatePlayer("isVoteless",!1))},changeName(){if(this.session.isSpectator)return;const e=prompt("Player name",this.player.name)||this.player.name;this.updatePlayer("name",e,!0)},removeReminder(e){const t=[...this.player.reminders];t.splice(this.player.reminders.indexOf(e),1),this.updatePlayer("reminders",t,!0)},updatePlayer(e,t,i=!1){this.session.isSpectator&&"reminders"!==e&&"pronouns"!==e||(this.$store.commit("players/update",{player:this.player,property:e,value:t}),i&&(this.isMenuOpen=!1))},removePlayer(){this.isMenuOpen=!1,this.$emit("trigger",["removePlayer"])},swapPlayer(e){this.isMenuOpen=!1,this.$emit("trigger",["swapPlayer",e])},movePlayer(e){this.isMenuOpen=!1,this.$emit("trigger",["movePlayer",e])},nominatePlayer(e){this.isMenuOpen=!1,this.$emit("trigger",["nominatePlayer",e])},cancel(){this.$emit("trigger",["cancel"])},claimSeat(){this.isMenuOpen=!1,this.$emit("trigger",["claimSeat"])},vote(){this.session.isSpectator||this.voteLocked&&this.$store.commit("session/voteSync",[this.index,!this.session.votes[this.index]])}}},X=(0,J.Z)(q,[["render",B]]),K=X,_=e=>((0,s.dD)("data-v-bc7a83f6"),e=e(),(0,s.Cn)(),e),$=_((()=>(0,s._)("h3",null,"Choose a reminder token:",-1))),ee={class:"reminders"},te=["onClick"],ie={class:"text"};function oe(e,t,o,r,n,l){const h=(0,s.up)("Modal");return e.modals.reminder&&l.availableReminders.length&&e.players[o.playerIndex]?((0,s.wg)(),(0,s.j4)(h,{key:0,onClose:t[0]||(t[0]=t=>e.toggleModal("reminder"))},{default:(0,s.w5)((()=>[$,(0,s._)("ul",ee,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(l.availableReminders,(t=>((0,s.wg)(),(0,s.iD)("li",{class:(0,a.C_)(["reminder",[t.role]]),key:t.role+" "+t.name,onClick:e=>l.addReminder(t)},[(0,s._)("span",{class:"icon",style:(0,a.j5)({backgroundImage:`url(${t.image&&e.grimoire.isImageOptIn?t.image:i(6003)("./"+(t.imageAlt||t.role)+".png")})`})},null,4),(0,s._)("span",ie,(0,a.zw)(t.name),1)],10,te)))),128))])])),_:1})):(0,s.kq)("",!0)}const se={class:"top-right-buttons"},ae={class:"slot"};function re(e,t,i,r,n,l){const h=(0,s.up)("font-awesome-icon");return(0,s.wg)(),(0,s.j4)(o.uT,{name:"modal-fade"},{default:(0,s.w5)((()=>[(0,s._)("div",{class:"modal-backdrop",onClick:t[3]||(t[3]=(...e)=>l.close&&l.close(...e))},[(0,s._)("div",{class:(0,a.C_)(["modal",{maximized:e.isMaximized}]),role:"dialog","aria-labelledby":"modalTitle","aria-describedby":"modalDescription",onClick:t[2]||(t[2]=(0,o.iM)((()=>{}),["stop"]))},[(0,s._)("div",se,[(0,s._)("div",{onClick:t[0]||(t[0]=t=>e.isMaximized=!e.isMaximized),style:{display:"inline-block"}},[(0,s.Wm)(h,{class:"top-right-button",icon:["fas",e.isMaximized?"window-minimize":"window-maximize"]},null,8,["icon"])]),(0,s._)("div",{onClick:t[1]||(t[1]=(...e)=>l.close&&l.close(...e)),style:{display:"inline-block"}},[(0,s.Wm)(h,{class:"top-right-button",icon:"times-circle"})])]),(0,s._)("div",ae,[(0,s.WI)(e.$slots,"default")])],2)])])),_:3})}const ne={emits:["close"],data:function(){return{isMaximized:!1}},methods:{close(){this.$emit("close")}}},le=(0,J.Z)(ne,[["render",re]]),he=le,de=({id:e,image:t,imageAlt:i})=>o=>({role:e,image:t,imageAlt:i,name:o}),me={components:{Modal:he},props:["playerIndex"],computed:{availableReminders(){let e=[];const{players:t,bluffs:i}=this.$store.state.players;return this.$store.state.roles.forEach((o=>{(t.some((e=>e.role.id===o.id))||i.some((e=>e.id===o.id)))&&(e=[...e,...o.reminders.map(de(o))]),o.remindersGlobal&&o.remindersGlobal.length&&(e=[...e,...o.remindersGlobal.map(de(o))])})),this.$store.state.players.fabled.forEach((t=>{e=[...e,...t.reminders.map(de(t))]})),this.$store.state.otherTravelers.forEach((i=>{t.some((e=>e.role.id===i.id))&&(e=[...e,...i.reminders.map(de(i))])})),this.$store.state.otherRoles.forEach((o=>{(t.some((e=>e.role.id===o.id))||i.some((e=>e.id===o.id)))&&(e=[...e,...o.reminders.map(de(o))])})),e.push({role:"good",name:"Good"}),e.push({role:"evil",name:"Evil"}),e.push({role:"custom",name:"Custom note"}),e},...(0,d.rn)(["modals","grimoire"]),...(0,d.rn)("players",["players"])},methods:{addReminder(e){const t=this.$store.state.players.players[this.playerIndex];let i;if("custom"===e.role){const e=prompt("Add a custom reminder note");if(!e)return;i=[...t.reminders,{role:"custom",name:e}]}else i=[...t.reminders,e];this.$store.commit("players/update",{player:t,property:"reminders",value:i}),this.$store.commit("toggleModal","reminder")},...(0,d.OI)(["toggleModal"])}},ce=(0,J.Z)(me,[["render",oe],["__scopeId","data-v-bc7a83f6"]]),ge=ce,pe=e=>((0,s.dD)("data-v-738a124c"),e=e(),(0,s.Cn)(),e),ye={key:0},ue=pe((()=>(0,s._)("span",null,"Find a Plus One character: ",-1))),fe={key:1,class:"tokens"},be=["onClick"],we={key:2,class:"tokens"},ke=["onClick"],Ne={key:3,class:"tokens"},ve=["onClick"],Ae={key:4,class:"button-group"};function Re(e,t,i,r,n,l){const h=(0,s.up)("token"),d=(0,s.up)("Token"),m=(0,s.up)("Modal");return e.modals.role&&l.availableRoles.length?((0,s.wg)(),(0,s.j4)(m,{key:0,onClose:l.close},{default:(0,s.w5)((()=>[(0,s._)("h3",null," Choose a new character for "+(0,a.zw)(i.playerIndex>=0&&e.players.length?e.players[i.playerIndex].name:"bluffing"),1),e.fabled.find((e=>"plusone"===e.id))&&"editionRoles"===n.tab?((0,s.wg)(),(0,s.iD)("div",ye,[ue,(0,s.wy)((0,s._)("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=e=>n.filter=e)},null,512),[[o.nr,n.filter]])])):(0,s.kq)("",!0),l.filteredRoles.length>0?((0,s.wg)(),(0,s.iD)("ul",fe,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(l.filteredRoles.slice(0,10),(e=>((0,s.wg)(),(0,s.iD)("li",{class:(0,a.C_)([e.team]),key:e.id,onClick:t=>l.setRole(e)},[(0,s.Wm)(h,{role:e},null,8,["role"])],10,be)))),128))])):(0,s.kq)("",!0),"editionRoles"===n.tab||!e.otherTravelers.length>0?((0,s.wg)(),(0,s.iD)("ul",we,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(l.availableRoles,(e=>((0,s.wg)(),(0,s.iD)("li",{class:(0,a.C_)([e.team]),key:e.id,onClick:t=>l.setRole(e)},[(0,s.Wm)(d,{role:e},null,8,["role"])],10,ke)))),128))])):(0,s.kq)("",!0),"otherTravelers"===n.tab&&e.otherTravelers.length>0?((0,s.wg)(),(0,s.iD)("ul",Ne,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.otherTravelers,(e=>((0,s.wg)(),(0,s.iD)("li",{class:(0,a.C_)([e.team]),key:e.id,onClick:t=>l.setRole(e)},[(0,s.Wm)(d,{role:e},null,8,["role"])],10,ve)))),128))])):(0,s.kq)("",!0),i.playerIndex>=0&&e.otherTravelers.length>0&&!e.session.isSpectator?((0,s.wg)(),(0,s.iD)("div",Ae,[(0,s._)("span",{class:(0,a.C_)(["button",{townsfolk:"editionRoles"===n.tab}]),onClick:t[1]||(t[1]=e=>n.tab="editionRoles")},"Edition Roles",2),(0,s._)("span",{class:(0,a.C_)(["button",{townsfolk:"otherTravelers"===n.tab}]),onClick:t[2]||(t[2]=e=>n.tab="otherTravelers")},"Other Travelers",2)])):(0,s.kq)("",!0)])),_:1},8,["onClose"])):(0,s.kq)("",!0)}const Se={components:{Token:Q,Modal:he},props:["playerIndex"],computed:{filteredRoles(){if(""===this.filter)return[];var e=this.otherRoles.filter((e=>e.name.toLowerCase().includes(this.filter.toLowerCase())));return e},availableRoles(){const e=[],t=this.$store.state.players.players;return this.$store.state.roles.forEach((i=>{(this.playerIndex>=0||this.playerIndex<0&&!t.some((e=>e.role.id===i.id)))&&e.push(i)})),e.push({}),e},...(0,d.rn)(["modals","roles","session"]),...(0,d.rn)("players",["players","fabled"]),...(0,d.rn)(["otherTravelers"]),...(0,d.rn)(["otherRoles"])},data(){return{tab:"editionRoles",filter:""}},methods:{setRole(e){if(this.playerIndex<0)this.$store.commit("players/setBluff",{index:-1*this.playerIndex-1,role:e});else{if(this.session.isSpectator&&"traveler"===e.team)return;const t=this.$store.state.players.players[this.playerIndex];this.$store.commit("players/update",{player:t,property:"role",value:e})}this.tab="editionRoles",this.$store.commit("toggleModal","role")},close(){this.tab="editionRoles",this.filter="",this.toggleModal("role")},...(0,d.OI)(["toggleModal"])}},Ie=(0,J.Z)(Se,[["render",Re],["__scopeId","data-v-738a124c"]]),De=Ie,Me={components:{Player:K,Token:Q,RoleModal:De,ReminderModal:ge},computed:{...(0,d.Se)({nightOrder:"players/nightOrder"}),...(0,d.rn)(["grimoire","roles","session"]),...(0,d.rn)("players",["players","bluffs","fabled"])},data(){return{selectedPlayer:0,bluffSize:3,swap:-1,move:-1,nominate:-1,isBluffsOpen:!0,isFabledOpen:!0}},methods:{toggleBluffs(){this.isBluffsOpen=!this.isBluffsOpen},toggleFabled(){this.isFabledOpen=!this.isFabledOpen},removeFabled(e){this.session.isSpectator||this.$store.commit("players/setFabled",{index:e})},handleTrigger(e,[t,i]){"function"===typeof this[t]&&this[t](e,i)},claimSeat(e){this.session.isSpectator&&(this.session.playerId===this.players[e].id?this.$store.commit("session/claimSeat",-1):this.$store.commit("session/claimSeat",e))},openReminderModal(e){this.selectedPlayer=e,this.$store.commit("toggleModal","reminder")},openRoleModal(e){const t=this.players[e];this.session.isSpectator&&t&&"traveler"===t.role.team||(this.selectedPlayer=e,this.$store.commit("toggleModal","role"))},removePlayer(e){if(!this.session.isSpectator&&!this.session.lockedVote&&confirm(`Do you really want to remove ${this.players[e].name}?`)){const{nomination:t}=this.session;t&&(t.includes(e)?this.$store.commit("session/nomination"):(t[0]>e||t[1]>e)&&this.$store.commit("session/setNomination",[t[0]>e?t[0]-1:t[0],t[1]>e?t[1]-1:t[1]])),this.$store.commit("players/remove",e)}},swapPlayer(e,t){if(!this.session.isSpectator&&!this.session.lockedVote)if(void 0===t)this.cancel(),this.swap=e;else{if(this.session.nomination){const e=this.players.indexOf(t),i=this.session.nomination.map((t=>t===this.swap?e:t===e?this.swap:t));this.session.nomination[0]===i[0]&&this.session.nomination[1]===i[1]||this.$store.commit("session/setNomination",i)}this.$store.commit("players/swap",[this.swap,this.players.indexOf(t)]),this.cancel()}},movePlayer(e,t){if(!this.session.isSpectator&&!this.session.lockedVote)if(void 0===t)this.cancel(),this.move=e;else{if(this.session.nomination){const e=this.players.indexOf(t),i=this.session.nomination.map((t=>t===this.move?e:t>this.move&&t<=e?t-1:t=e?t+1:t));this.session.nomination[0]===i[0]&&this.session.nomination[1]===i[1]||this.$store.commit("session/setNomination",i)}this.$store.commit("players/move",[this.move,this.players.indexOf(t)]),this.cancel()}},nominatePlayer(e,t){if(!this.session.isSpectator&&!this.session.lockedVote)if(void 0===t)this.cancel(),e!==this.nominate&&(this.nominate=e);else{const e=[this.nominate,this.players.indexOf(t)];this.$store.commit("session/nomination",{nomination:e}),this.cancel()}},cancel(){this.move=-1,this.swap=-1,this.nominate=-1}}},Te=(0,J.Z)(Me,[["render",N]]),Ge=Te,Ce={class:"info"},xe={key:0},Ee={key:0,class:"meta"},Be={key:1},Ye={key:0},We={key:1};function Ze(e,t,o,r,n,l){const h=(0,s.up)("font-awesome-icon");return(0,s.wg)(),(0,s.iD)("ul",Ce,[(0,s._)("li",{class:(0,a.C_)(["edition",["edition-"+e.edition.id]]),style:(0,a.j5)({backgroundImage:`url(${e.edition.logo&&e.grimoire.isImageOptIn?e.edition.logo:i(3821)("./"+e.edition.id+".png")})`})},null,6),e.players.length-l.teams.traveler<5?((0,s.wg)(),(0,s.iD)("li",xe," Please add more players! ")):(0,s.kq)("",!0),(0,s._)("li",null,[e.edition.isOfficial?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("span",Ee,(0,a.zw)(e.edition.name)+" "+(0,a.zw)(e.edition.author?"by "+e.edition.author:""),1)),(0,s._)("span",null,[(0,s.Uk)((0,a.zw)(e.players.length)+" ",1),(0,s.Wm)(h,{class:"players",icon:"users"})]),(0,s._)("span",null,[(0,s.Uk)((0,a.zw)(l.teams.alive)+" ",1),(0,s.Wm)(h,{class:"alive",icon:"heartbeat"})]),(0,s._)("span",null,[(0,s.Uk)((0,a.zw)(l.teams.votes)+" ",1),(0,s.Wm)(h,{class:"votes",icon:"vote-yea"})])]),e.players.length-l.teams.traveler>=5?((0,s.wg)(),(0,s.iD)("li",Be,[(0,s._)("span",null,[(0,s.Uk)((0,a.zw)(l.teams.townsfolk)+" ",1),(0,s.Wm)(h,{class:"townsfolk",icon:"user-friends"})]),(0,s._)("span",null,[(0,s.Uk)((0,a.zw)(l.teams.outsider)+" ",1),(0,s.Wm)(h,{class:"outsider",icon:l.teams.outsider>1?"user-friends":"user"},null,8,["icon"])]),(0,s._)("span",null,[(0,s.Uk)((0,a.zw)(l.teams.minion)+" ",1),(0,s.Wm)(h,{class:"minion",icon:l.teams.minion>1?"user-friends":"user"},null,8,["icon"])]),(0,s._)("span",null,[(0,s.Uk)((0,a.zw)(l.teams.demon)+" ",1),(0,s.Wm)(h,{class:"demon",icon:l.teams.demon>1?"user-friends":"user"},null,8,["icon"])]),l.teams.traveler?((0,s.wg)(),(0,s.iD)("span",Ye,[(0,s.Uk)((0,a.zw)(l.teams.traveler)+" ",1),(0,s.Wm)(h,{class:"traveler",icon:l.teams.traveler>1?"user-friends":"user"},null,8,["icon"])])):(0,s.kq)("",!0),e.grimoire.isNight?((0,s.wg)(),(0,s.iD)("span",We,[(0,s.Uk)(" Night phase "),(0,s.Wm)(h,{icon:["fas","cloud-moon"]})])):(0,s.kq)("",!0)])):(0,s.kq)("",!0)])}const Ve=JSON.parse('[{"townsfolk":3,"outsider":0,"minion":1,"demon":1},{"townsfolk":3,"outsider":1,"minion":1,"demon":1},{"townsfolk":5,"outsider":0,"minion":1,"demon":1},{"townsfolk":5,"outsider":1,"minion":1,"demon":1},{"townsfolk":5,"outsider":2,"minion":1,"demon":1},{"townsfolk":7,"outsider":0,"minion":2,"demon":1},{"townsfolk":7,"outsider":1,"minion":2,"demon":1},{"townsfolk":7,"outsider":2,"minion":2,"demon":1},{"townsfolk":9,"outsider":0,"minion":3,"demon":1},{"townsfolk":9,"outsider":1,"minion":3,"demon":1},{"townsfolk":9,"outsider":2,"minion":3,"demon":1}]'),Pe={computed:{teams:function(){const{players:e}=this.$store.state.players,t=this.$store.getters["players/nonTravelers"],i=e.filter((e=>!0!==e.isDead)).length;return{...Ve[t-5],traveler:e.length-t,alive:i,votes:i+e.filter((e=>!0===e.isDead&&!0!==e.isVoteless)).length}},...(0,d.rn)(["edition","grimoire"]),...(0,d.rn)("players",["players"])}},je=(0,J.Z)(Pe,[["render",Ze],["__scopeId","data-v-6e9c5c8e"]]),Oe=je,ze=e=>((0,s.dD)("data-v-02f0607a"),e=e(),(0,s.Cn)(),e),Ue={id:"controls"},He=["title"],Fe=["title"],Je=ze((()=>(0,s._)("li",{class:"headline"},"Grimoire",-1))),Le=ze((()=>(0,s._)("em",null,"[G]",-1))),Qe=ze((()=>(0,s._)("em",null,"[S]",-1))),qe={key:3},Xe=ze((()=>(0,s._)("small",null,"Show Custom Images",-1))),Ke={key:0,class:"headline"},_e={key:1,class:"headline"},$e=ze((()=>(0,s._)("em",null,"[H]",-1))),et=ze((()=>(0,s._)("em",null,"[J]",-1))),tt={key:0},it=ze((()=>(0,s._)("em",null,"[V]",-1))),ot=ze((()=>(0,s._)("li",{class:"headline"},"Players",-1))),st=ze((()=>(0,s._)("em",null,"[A]",-1))),at=ze((()=>(0,s._)("li",{class:"headline"},"Characters",-1))),rt=ze((()=>(0,s._)("em",null,"[E]",-1))),nt=ze((()=>(0,s._)("em",null,"[C]",-1))),lt=ze((()=>(0,s._)("li",{class:"headline"},"Help",-1))),ht=ze((()=>(0,s._)("em",null,"[R]",-1))),dt=ze((()=>(0,s._)("em",null,"[N]",-1))),mt=ze((()=>(0,s._)("a",{href:"https://discord.gg/Gd7ybwWbFk",target:"_blank"}," Join Discord ",-1))),ct={href:"https://discord.gg/Gd7ybwWbFk",target:"_blank"},gt=ze((()=>(0,s._)("a",{href:"https://github.com/bra1n/townsquare",target:"_blank"}," Source code ",-1))),pt={href:"https://github.com/bra1n/townsquare",target:"_blank"};function yt(e,t,i,r,n,l){const h=(0,s.up)("font-awesome-icon");return(0,s.wg)(),(0,s.iD)("div",Ue,[(0,s.wy)((0,s._)("span",{class:"nomlog-summary",onClick:t[0]||(t[0]=t=>e.toggleModal("voteHistory")),title:`${e.session.voteHistory.length} recent ${1==e.session.voteHistory.length?"nomination":"nominations"}`},[(0,s.Wm)(h,{icon:"book-dead"}),(0,s.Uk)(" "+(0,a.zw)(e.session.voteHistory.length),1)],8,He),[[o.F8,e.session.sessionId]]),e.session.sessionId?((0,s.wg)(),(0,s.iD)("span",{key:0,class:(0,a.C_)(["session",{spectator:e.session.isSpectator,reconnecting:e.session.isReconnecting}]),onClick:t[1]||(t[1]=(...e)=>l.leaveSession&&l.leaveSession(...e)),title:`${e.session.playerCount} other players in this session${e.session.ping?" ("+e.session.ping+"ms latency)":""}`},[(0,s.Wm)(h,{icon:"broadcast-tower"}),(0,s.Uk)(" "+(0,a.zw)(e.session.playerCount),1)],10,Fe)):(0,s.kq)("",!0),(0,s._)("div",{class:(0,a.C_)(["menu",{open:e.grimoire.isMenuOpen}])},[(0,s._)("span",{onClick:t[2]||(t[2]=(...t)=>e.toggleMenu&&e.toggleMenu(...t))},[(0,s.Wm)(h,{icon:"cog",class:"menuCog"})]),(0,s._)("ul",null,[(0,s._)("li",{class:(0,a.C_)(["tabs",n.tab])},[(0,s._)("span",{onClick:t[3]||(t[3]=e=>n.tab="grimoire")},[(0,s.Wm)(h,{icon:"book-open"})]),(0,s._)("span",{onClick:t[4]||(t[4]=e=>n.tab="session")},[(0,s.Wm)(h,{icon:"broadcast-tower"})]),(0,s._)("span",{onClick:t[5]||(t[5]=e=>n.tab="players")},[e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.j4)(h,{key:0,icon:"users"}))]),(0,s._)("span",{onClick:t[6]||(t[6]=e=>n.tab="characters")},[(0,s.Wm)(h,{icon:"theater-masks"})]),(0,s._)("span",{onClick:t[7]||(t[7]=e=>n.tab="help")},[(0,s.Wm)(h,{icon:"question"})])],2),"grimoire"===n.tab?((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[Je,e.players.length?((0,s.wg)(),(0,s.iD)("li",{key:0,onClick:t[8]||(t[8]=(...t)=>e.toggleGrimoire&&e.toggleGrimoire(...t))},[e.grimoire.isPublic?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[(0,s.Uk)("Hide")],64)),e.grimoire.isPublic?((0,s.wg)(),(0,s.iD)(s.HY,{key:1},[(0,s.Uk)("Show")],64)):(0,s.kq)("",!0),Le])):(0,s.kq)("",!0),e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("li",{key:1,onClick:t[9]||(t[9]=(...e)=>l.toggleNight&&l.toggleNight(...e))},[e.grimoire.isNight?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[(0,s.Uk)("Switch to Night")],64)),e.grimoire.isNight?((0,s.wg)(),(0,s.iD)(s.HY,{key:1},[(0,s.Uk)("Switch to Day")],64)):(0,s.kq)("",!0),Qe])),e.players.length?((0,s.wg)(),(0,s.iD)("li",{key:2,onClick:t[10]||(t[10]=(...t)=>e.toggleNightOrder&&e.toggleNightOrder(...t))},[(0,s.Uk)(" Night order "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:["fas",e.grimoire.isNightOrder?"check-square":"square"]},null,8,["icon"])])])):(0,s.kq)("",!0),e.players.length?((0,s.wg)(),(0,s.iD)("li",qe,[(0,s.Uk)(" Zoom "),(0,s._)("em",null,[(0,s._)("span",{onClick:t[11]||(t[11]=t=>e.setZoom(e.grimoire.zoom-1)),class:"zoom"},[(0,s.Wm)(h,{icon:"search-minus"})]),(0,s.Uk)(" "+(0,a.zw)(Math.round(100+10*e.grimoire.zoom))+"% ",1),(0,s._)("span",{onClick:t[12]||(t[12]=t=>e.setZoom(e.grimoire.zoom+1)),class:"zoom"},[(0,s.Wm)(h,{icon:"search-plus"})])])])):(0,s.kq)("",!0),(0,s._)("li",{onClick:t[13]||(t[13]=(...e)=>l.setBackground&&l.setBackground(...e))},[(0,s.Uk)(" Background image "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:"image"})])]),e.edition.isOfficial?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("li",{key:4,onClick:t[14]||(t[14]=(...e)=>l.imageOptIn&&l.imageOptIn(...e))},[Xe,(0,s._)("em",null,[(0,s.Wm)(h,{icon:["fas",e.grimoire.isImageOptIn?"check-square":"square"]},null,8,["icon"])])])),(0,s._)("li",{onClick:t[15]||(t[15]=(...t)=>e.toggleStatic&&e.toggleStatic(...t))},[(0,s.Uk)(" Disable Animations "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:["fas",e.grimoire.isStatic?"check-square":"square"]},null,8,["icon"])])]),(0,s._)("li",{onClick:t[16]||(t[16]=(...t)=>e.toggleMuted&&e.toggleMuted(...t))},[(0,s.Uk)(" Mute Sounds "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:["fas",e.grimoire.isMuted?"volume-mute":"volume-up"]},null,8,["icon"])])])],64)):(0,s.kq)("",!0),"session"===n.tab?((0,s.wg)(),(0,s.iD)(s.HY,{key:1},[e.session.sessionId?((0,s.wg)(),(0,s.iD)("li",Ke,(0,a.zw)(e.session.isSpectator?"Playing":"Hosting"),1)):((0,s.wg)(),(0,s.iD)("li",_e,"Live Session")),e.session.sessionId?((0,s.wg)(),(0,s.iD)(s.HY,{key:3},[e.session.ping?((0,s.wg)(),(0,s.iD)("li",tt,[(0,s.Uk)(" Delay to "+(0,a.zw)(e.session.isSpectator?"host":"players")+" ",1),(0,s._)("em",null,(0,a.zw)(e.session.ping)+"ms",1)])):(0,s.kq)("",!0),(0,s._)("li",{onClick:t[19]||(t[19]=(...e)=>l.copySessionUrl&&l.copySessionUrl(...e))},[(0,s.Uk)(" Copy player link "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:"copy"})])]),e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("li",{key:1,onClick:t[20]||(t[20]=(...e)=>l.distributeRoles&&l.distributeRoles(...e))},[(0,s.Uk)(" Send Characters "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:"theater-masks"})])])),e.session.voteHistory.length||!e.session.isSpectator?((0,s.wg)(),(0,s.iD)("li",{key:2,onClick:t[21]||(t[21]=t=>e.toggleModal("voteHistory"))},[(0,s.Uk)(" Vote history"),it])):(0,s.kq)("",!0),(0,s._)("li",{onClick:t[22]||(t[22]=(...e)=>l.leaveSession&&l.leaveSession(...e))},[(0,s.Uk)(" Leave Session "),(0,s._)("em",null,(0,a.zw)(e.session.sessionId),1)])],64)):((0,s.wg)(),(0,s.iD)(s.HY,{key:2},[(0,s._)("li",{onClick:t[17]||(t[17]=(...e)=>l.hostSession&&l.hostSession(...e))},[(0,s.Uk)("Host (Storyteller)"),$e]),(0,s._)("li",{onClick:t[18]||(t[18]=(...e)=>l.joinSession&&l.joinSession(...e))},[(0,s.Uk)("Join (Player)"),et])],64))],64)):(0,s.kq)("",!0),"players"!==n.tab||e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)(s.HY,{key:2},[ot,e.players.length<20?((0,s.wg)(),(0,s.iD)("li",{key:0,onClick:t[23]||(t[23]=(...e)=>l.addPlayer&&l.addPlayer(...e))},[(0,s.Uk)("Add"),st])):(0,s.kq)("",!0),e.players.length>2?((0,s.wg)(),(0,s.iD)("li",{key:1,onClick:t[24]||(t[24]=(...e)=>l.randomizeSeatings&&l.randomizeSeatings(...e))},[(0,s.Uk)(" Randomize "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:"dice"})])])):(0,s.kq)("",!0),e.players.length?((0,s.wg)(),(0,s.iD)("li",{key:2,onClick:t[25]||(t[25]=(...e)=>l.clearPlayers&&l.clearPlayers(...e))},[(0,s.Uk)(" Remove all "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:"trash-alt"})])])):(0,s.kq)("",!0)],64)),"characters"===n.tab?((0,s.wg)(),(0,s.iD)(s.HY,{key:3},[at,e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("li",{key:0,onClick:t[26]||(t[26]=t=>e.toggleModal("edition"))},[(0,s.Uk)(" Select Edition "),rt])),!e.session.isSpectator&&e.players.length>4?((0,s.wg)(),(0,s.iD)("li",{key:1,onClick:t[27]||(t[27]=t=>e.toggleModal("roles"))},[(0,s.Uk)(" Choose & Assign "),nt])):(0,s.kq)("",!0),e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("li",{key:2,onClick:t[28]||(t[28]=t=>e.toggleModal("fabled"))},[(0,s.Uk)(" Add Fabled "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:"dragon"})])])),e.players.length?((0,s.wg)(),(0,s.iD)("li",{key:3,onClick:t[29]||(t[29]=(...e)=>l.clearRoles&&l.clearRoles(...e))},[(0,s.Uk)(" Remove all "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:"trash-alt"})])])):(0,s.kq)("",!0)],64)):(0,s.kq)("",!0),"help"===n.tab?((0,s.wg)(),(0,s.iD)(s.HY,{key:4},[lt,(0,s._)("li",{onClick:t[30]||(t[30]=t=>e.toggleModal("reference"))},[(0,s.Uk)(" Reference Sheet "),ht]),(0,s._)("li",{onClick:t[31]||(t[31]=t=>e.toggleModal("nightOrder"))},[(0,s.Uk)(" Night Order Sheet "),dt]),(0,s._)("li",{onClick:t[32]||(t[32]=t=>e.toggleModal("gameState"))},[(0,s.Uk)(" Game State JSON "),(0,s._)("em",null,[(0,s.Wm)(h,{icon:"file-code"})])]),(0,s._)("li",null,[mt,(0,s._)("em",null,[(0,s._)("a",ct,[(0,s.Wm)(h,{icon:["fab","discord"]})])])]),(0,s._)("li",null,[gt,(0,s._)("em",null,[(0,s._)("a",pt,[(0,s.Wm)(h,{icon:["fab","github"]})])])])],64)):(0,s.kq)("",!0)])],2)])}const ut={computed:{...(0,d.rn)(["grimoire","session","edition"]),...(0,d.rn)("players",["players"])},data(){return{tab:"grimoire"}},methods:{setBackground(){const e=prompt("Enter custom background URL");(e||""===e)&&this.$store.commit("setBackground",e)},hostSession(){if(this.session.sessionId)return;const e=prompt("Enter a channel number / name for your session",Math.round(1e4*Math.random()));e&&(this.$store.commit("session/clearVoteHistory"),this.$store.commit("session/setSpectator",!1),this.$store.commit("session/setSessionId",e),this.copySessionUrl())},copySessionUrl(){const e=window.location.href.split("#")[0],t=e+"#"+this.session.sessionId;navigator.clipboard.writeText(t)},distributeRoles(){if(this.session.isSpectator)return;const e="Do you want to distribute assigned characters to all SEATED players?";confirm(e)&&(this.$store.commit("session/distributeRoles",!0),setTimeout((()=>{this.$store.commit("session/distributeRoles",!1)}).bind(this),2e3))},imageOptIn(){const e="Are you sure you want to allow custom images? A malicious script file author might track your IP address this way.";(this.grimoire.isImageOptIn||confirm(e))&&this.toggleImageOptIn()},joinSession(){if(this.session.sessionId)return this.leaveSession();let e=prompt("Enter the channel number / name of the session you want to join");e.match(/^https?:\/\//i)&&(e=e.split("#").pop()),e&&(this.$store.commit("session/clearVoteHistory"),this.$store.commit("session/setSpectator",!0),this.$store.commit("toggleGrimoire",!1),this.$store.commit("session/setSessionId",e))},leaveSession(){confirm("Are you sure you want to leave the active live game?")&&(this.$store.commit("session/setSpectator",!1),this.$store.commit("session/setSessionId",""))},addPlayer(){if(this.session.isSpectator)return;if(this.players.length>=20)return;const e=prompt("Player name");e&&this.$store.commit("players/add",e)},randomizeSeatings(){this.session.isSpectator||confirm("Are you sure you want to randomize seatings?")&&this.$store.dispatch("players/randomize")},clearPlayers(){this.session.isSpectator||confirm("Are you sure you want to remove all players?")&&(this.session.nomination&&this.$store.commit("session/nomination"),this.$store.commit("players/clear"))},clearRoles(){confirm("Are you sure you want to remove all player roles?")&&this.$store.dispatch("players/clearRoles")},toggleNight(){this.$store.commit("toggleNight"),this.grimoire.isNight&&this.$store.commit("session/setMarkedPlayer",-1)},...(0,d.OI)(["toggleGrimoire","toggleMenu","toggleImageOptIn","toggleMuted","toggleNightOrder","toggleStatic","setZoom","toggleModal"])}},ft=(0,J.Z)(ut,[["render",yt],["__scopeId","data-v-02f0607a"]]),bt=ft,wt=e=>((0,s.dD)("data-v-66bef8a1"),e=e(),(0,s.Cn)(),e),kt=["onClick"],Nt={key:1,class:"buttons"},vt=["onClick"],At=["onClick"],Rt={key:0,class:"warning"},St=wt((()=>(0,s._)("span",null," Warning: there are characters selected that modify the game setup! The randomizer does not account for these characters. ",-1))),It={class:"button-group"};function Dt(e,t,i,r,n,l){const h=(0,s.up)("Token"),d=(0,s.up)("font-awesome-icon"),m=(0,s.up)("Modal");return e.modals.roles&&e.nonTravelers>=5?((0,s.wg)(),(0,s.j4)(m,{key:0,class:"roles",onClose:t[3]||(t[3]=t=>e.toggleModal("roles"))},{default:(0,s.w5)((()=>[(0,s._)("h3",null,"Select the characters for "+(0,a.zw)(e.nonTravelers)+" players:",1),((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.roleSelection,((t,i)=>((0,s.wg)(),(0,s.iD)("ul",{class:"tokens",key:i},[(0,s._)("li",{class:(0,a.C_)(["count",[i]])},(0,a.zw)(t.reduce(((e,{selected:t})=>e+t),0))+" / "+(0,a.zw)(e.game[e.nonTravelers-5][i]),3),((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(t,(t=>((0,s.wg)(),(0,s.iD)("li",{class:(0,a.C_)([t.team,t.selected?"selected":""]),key:t.id,onClick:e=>t.selected=t.selected?0:1},[(0,s.Wm)(h,{role:t},null,8,["role"]),t.setup?((0,s.wg)(),(0,s.j4)(d,{key:0,icon:"exclamation-triangle"})):(0,s.kq)("",!0),e.allowMultiple?((0,s.wg)(),(0,s.iD)("div",Nt,[(0,s._)("div",{onClick:(0,o.iM)((e=>t.selected--),["stop"])},[(0,s.Wm)(d,{icon:"minus-circle"})],8,vt),(0,s._)("span",null,(0,a.zw)(t.selected>1?"x"+t.selected:""),1),(0,s._)("div",{onClick:(0,o.iM)((e=>t.selected++),["stop"])},[(0,s.Wm)(d,{icon:"plus-circle"})],8,At)])):(0,s.kq)("",!0)],10,kt)))),128))])))),128)),l.hasSelectedSetupRoles?((0,s.wg)(),(0,s.iD)("div",Rt,[(0,s.Wm)(d,{icon:"exclamation-triangle"}),St])):(0,s.kq)("",!0),(0,s._)("label",{class:(0,a.C_)(["multiple",{checked:e.allowMultiple}])},[(0,s.Wm)(d,{icon:e.allowMultiple?"check-square":"square"},null,8,["icon"]),(0,s.wy)((0,s._)("input",{type:"checkbox",name:"allow-multiple","onUpdate:modelValue":t[0]||(t[0]=t=>e.allowMultiple=t)},null,512),[[o.e8,e.allowMultiple]]),(0,s.Uk)(" Allow duplicate characters ")],2),(0,s._)("div",It,[(0,s._)("div",{class:(0,a.C_)(["button",{disabled:l.selectedRoles>e.nonTravelers||!l.selectedRoles}]),onClick:t[1]||(t[1]=(...e)=>l.assignRoles&&l.assignRoles(...e))},[(0,s.Wm)(d,{icon:"people-arrows"}),(0,s.Uk)(" Assign "+(0,a.zw)(l.selectedRoles)+" characters randomly ",1)],2),(0,s._)("div",{class:"button",onClick:t[2]||(t[2]=(...e)=>l.selectRandomRoles&&l.selectRandomRoles(...e))},[(0,s.Wm)(d,{icon:"random"}),(0,s.Uk)(" Shuffle characters ")])])])),_:1})):(0,s.kq)("",!0)}const Mt=e=>e[Math.floor(Math.random()*e.length)],Tt={components:{Token:Q,Modal:he},data:function(){return{roleSelection:{},game:Ve,allowMultiple:!1}},computed:{selectedRoles:function(){return Object.values(this.roleSelection).map((e=>e.reduce(((e,{selected:t})=>e+t),0))).reduce(((e,t)=>e+t),0)},hasSelectedSetupRoles:function(){return Object.values(this.roleSelection).some((e=>e.some((e=>e.selected&&e.setup))))},...(0,d.rn)(["roles","modals"]),...(0,d.rn)("players",["players"]),...(0,d.Se)({nonTravelers:"players/nonTravelers"})},methods:{selectRandomRoles(){this.roleSelection={},this.roles.forEach((e=>{this.roleSelection[e.team]||(this.roleSelection[e.team]=[]),this.roleSelection[e.team].push(e),e["selected"]=0})),delete this.roleSelection["traveler"];const e=Math.max(5,this.nonTravelers),t=this.game[e-5];Object.keys(t).forEach((e=>{for(let i=0;i!e.selected));t.length&&(Mt(t).selected=1)}}))},assignRoles(){if(this.selectedRoles<=this.nonTravelers&&this.selectedRoles){const e=Object.values(this.roleSelection).map((e=>e.reduce(((e,t)=>[...e,...Array(t.selected).fill(t)]),[]))).reduce(((e,t)=>[...e,...t]),[]).map((e=>[Math.random(),e])).sort(((e,t)=>e[0]-t[0])).map((e=>e[1]));this.players.forEach((t=>{if("traveler"!==t.role.team&&e.length){const i=e.pop();this.$store.commit("players/update",{player:t,property:"role",value:i})}})),this.$store.commit("toggleModal","roles")}},...(0,d.OI)(["toggleModal"])},mounted:function(){Object.keys(this.roleSelection).length||this.selectRandomRoles()},watch:{roles(){this.selectRandomRoles()}}},Gt=(0,J.Z)(Tt,[["render",Dt],["__scopeId","data-v-66bef8a1"]]),Ct=Gt,xt=e=>((0,s.dD)("data-v-e5f62d38"),e=e(),(0,s.Cn)(),e),Et={key:0},Bt=xt((()=>(0,s._)("h3",null,"Select an edition:",-1))),Yt={class:"editions"},Wt=["onClick"],Zt={key:1,class:"custom"},Vt=xt((()=>(0,s._)("h3",null,"Load custom script / characters",-1))),Pt=xt((()=>(0,s._)("a",{href:"https://script.bloodontheclocktower.com/",target:"_blank"},"Script Tool",-1))),jt=xt((()=>(0,s._)("br",null,null,-1))),Ot=xt((()=>(0,s._)("br",null,null,-1))),zt=xt((()=>(0,s._)("a",{href:"https://github.com/bra1n/townsquare#custom-characters",target:"_blank"},"the documentation",-1))),Ut=xt((()=>(0,s._)("b",null,"Only load custom JSON files from sources that you trust!",-1))),Ht=xt((()=>(0,s._)("h3",null,"Some popular custom scripts:",-1))),Ft={class:"scripts"},Jt=["onClick"],Lt={class:"button-group"};function Qt(e,t,o,r,n,l){const h=(0,s.up)("font-awesome-icon"),d=(0,s.up)("Modal");return e.modals.edition?((0,s.wg)(),(0,s.j4)(d,{key:0,class:"editions",onClose:t[6]||(t[6]=t=>e.toggleModal("edition"))},{default:(0,s.w5)((()=>[e.isCustom?((0,s.wg)(),(0,s.iD)("div",Zt,[Vt,(0,s.Uk)(" To play with a custom script, you need to select the characters you want to play with in the official "),Pt,(0,s.Uk)(' and then upload the generated "custom-list.json" either directly here or provide a URL to such a hosted JSON file.'),jt,Ot,(0,s.Uk)(" To play with custom characters, please read "),zt,(0,s.Uk)(" on how to write a custom character definition file. "),Ut,Ht,(0,s._)("ul",Ft,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.scripts,((e,t)=>((0,s.wg)(),(0,s.iD)("li",{key:t,onClick:t=>l.handleURL(e[1])},(0,a.zw)(e[0]),9,Jt)))),128))]),(0,s._)("input",{type:"file",ref:"upload",accept:"application/json",onChange:t[1]||(t[1]=(...e)=>l.handleUpload&&l.handleUpload(...e))},null,544),(0,s._)("div",Lt,[(0,s._)("div",{class:"button",onClick:t[2]||(t[2]=(...e)=>l.openUpload&&l.openUpload(...e))},[(0,s.Wm)(h,{icon:"file-upload"}),(0,s.Uk)(" Upload JSON ")]),(0,s._)("div",{class:"button",onClick:t[3]||(t[3]=(...e)=>l.promptURL&&l.promptURL(...e))},[(0,s.Wm)(h,{icon:"link"}),(0,s.Uk)(" Enter URL ")]),(0,s._)("div",{class:"button",onClick:t[4]||(t[4]=(...e)=>l.readFromClipboard&&l.readFromClipboard(...e))},[(0,s.Wm)(h,{icon:"clipboard"}),(0,s.Uk)(" Use JSON from Clipboard ")]),(0,s._)("div",{class:"button",onClick:t[5]||(t[5]=t=>e.isCustom=!1)},[(0,s.Wm)(h,{icon:"undo"}),(0,s.Uk)(" Back ")])])])):((0,s.wg)(),(0,s.iD)("div",Et,[Bt,(0,s._)("ul",Yt,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.editions,(t=>((0,s.wg)(),(0,s.iD)("li",{class:(0,a.C_)(["edition",["edition-"+t.id]]),style:(0,a.j5)({backgroundImage:`url(${i(3821)("./"+t.id+".png")})`}),key:t.id,onClick:i=>e.setEdition(t)},(0,a.zw)(t.name),15,Wt)))),128)),(0,s._)("li",{class:"edition edition-custom",onClick:t[0]||(t[0]=t=>e.isCustom=!0),style:(0,a.j5)({backgroundImage:`url(${i(5592)})`})}," Custom Script / Characters ",4)])]))])),_:1})):(0,s.kq)("",!0)}const qt=JSON.parse('[{"id":"ib","name":"Indigestion Brewing","author":"Mozart is Lift Music","description":"Spicy TB","level":"Veteran","roles":["noble","clockmaker","grandmother","pixie","sailor","cultleader","snakecharmer","innkeeper","professor","amnesiac","tealady","farmer","cannibal","goon","snitch","klutz","puzzlemaster","godfather","cerenovus","devilsadvocate","widow","lilmonsta","fanggu","lleech","legion"],"isOfficial":true},{"id":"for","name":"Fall Of Rome","author":"Alex","description":"I am Spartacus","level":"Veteran","roles":["sculptor_fall_of_rome","vestalvirgin_fall_of_rome","physician_fall_of_rome","legionary_fall_of_rome","trumpeter_fall_of_rome","mortician_fall_of_rome","standardbearer_fall_of_rome","centurion1_fall_of_rome","merchant_fall_of_rome","gladiator_fall_of_rome","actor_fall_of_rome","blacksmith_fall_of_rome","scholar_fall_of_rome","thetwins_fall_of_rome","winemaker_fall_of_rome","spartacus_fall_of_rome","badomen_fall_of_rome","temptress_fall_of_rome","haruspex_fall_of_rome","glykon1_fall_of_rome","augur_fall_of_rome","cleopatra_fall_of_rome","crassus_fall_of_rome","hannibal_fall_of_rome","caesar_fall_of_rome","mercenary_fall_of_rome","architect_fall_of_rome","sibyl_fall_of_rome","highpriest1_fall_of_rome","highpriest2_fall_of_rome","emperor_fall_of_rome","iamspartacus_fall_of_rome"]},{"id":"tb","name":"Trouble Brewing","author":"The Pandemonium Institute","description":"Clouds roll in over Ravenswood Bluff, engulfing this sleepy town and its superstitious inhabitants in foreboding shadow. Freshly-washed clothes dance eerily on lines strung between cottages. Chimneys cough plumes of smoke into the air. Exotic scents waft through cracks in windows and under doors, as hidden cauldrons lay bubbling. An unusually warm Autumn breeze wraps around vine-covered walls and whispers ominously to those brave enough to walk the cobbled streets.\\n\\nAnxious mothers call their children home from play, as thunder begins to clap on the horizon. If you listen more closely, however, noises stranger still can be heard echoing from the neighbouring forest. Under the watchful eye of a looming monastery, silhouetted figures skip from doorway to doorway. Those who can read the signs know there is... Trouble Brewing.","level":"Beginner","roles":[],"isOfficial":true},{"id":"bmr","name":"Bad Moon Rising","author":"The Pandemonium Institute","description":"The sun is swallowed by a jagged horizon as another winter\'s day surrenders to the night. Flecks of orange and red decay into deeper browns, the forest transforming in silent anticipation of the coming snow.\\n\\nRavenous wolves howl from the bowels of a rocky crevasse beyond the town borders, sending birds scattering from their cozy rooks. Travelers hurry into the inn, seeking shelter from the gathering chill. They warm themselves with hot tea, sweet strains of music and hearty ale, unaware that strange and nefarious eyes stalk them from the ruins of this once great city.\\n\\nTonight, even the livestock know there is a... Bad Moon Rising.","level":"Intermediate","roles":[],"isOfficial":true},{"id":"snv","name":"Sects & Violets","author":"The Pandemonium Institute","description":"Vibrant spring gives way to a warm and inviting summer. Flowers of every description blossom as far as the eye can see, tenderly nurtured in public gardens and window boxes overlooking the lavish promenade. Birds sing, artists paint and philosophers ponder life\'s greatest mysteries inside a bustling tavern as a circus pitches its endearingly ragged tent on the edge of town.\\n\\nAs the townsfolk bask in frivolity and mischief, indulging themselves in fine entertainment and even finer wine, dark and clandestine forces are assembling. Witches and cults lurk in majestic ruins on the fringes of the community, hosting secret meetings in underground caves and malevolently plotting the downfall of Ravenswood Bluff and its revelers.\\n\\nThe time is ripe for... Sects & Violets.","level":"Intermediate","roles":[],"isOfficial":true},{"id":"luf","name":"Laissez un Faire","author":"The Pandemonium Institute","description":"","level":"Veteran","roles":["balloonist","savant","amnesiac","fisherman","artist","cannibal","mutant","lunatic","widow","goblin","leviathan"],"isOfficial":true}]'),Xt={components:{Modal:he},data:function(){return{editions:qt,isCustom:!1,scripts:[["Deadly Penance Day","https://gist.githubusercontent.com/bra1n/0337cc44c6fd2c44f7589256ed5486d2/raw/16be38fa3c01aaf49827303ac80577bdb52c0b25/penanceday.json"],["Catfishing 11.1","https://gist.githubusercontent.com/bra1n/8a5ec41a7bbf945f6b7dfc1cef72b569/raw/a312ab93c2f302e0ef83c8b65a4e8e82760fda3a/catfishing.json"],["On Thin Ice (Teensyville)","https://gist.githubusercontent.com/bra1n/8dacd9f2abc6f428331ea1213ab153f5/raw/0cacbcaf8ed9bddae0cca25a9ada97e9958d868b/on-thin-ice.json"],["Race To The Bottom (Teensyville)","https://gist.githubusercontent.com/bra1n/63e1354cb3dc9d4032bcd0623dc48888/raw/5acb0eedcc0a67a64a99c7e0e6271de0b7b2e1b2/race-to-the-bottom.json"],["Frankenstein's Mayor by Ted (Teensyville)","https://gist.githubusercontent.com/bra1n/32c52b422cc01b934a4291eeb81dbcee/raw/5bf770693bbf7aff5e86601c82ca4af3222f4ba6/Frankensteins_Mayor_by_Ted.json"],["Vigormortis High School (Teensyville)","https://gist.githubusercontent.com/bra1n/1f65bd4a999524719d5dabe98c3c2d27/raw/22bbec6bf56a51a7459e5ae41ed47e41971c5445/VigormortisHighSchool.json"]]}},computed:(0,d.rn)(["modals"]),methods:{openUpload(){this.$refs.upload.click()},handleUpload(){const e=this.$refs.upload.files[0];if(e&&e.size){const t=new FileReader;t.addEventListener("load",(()=>{try{const e=JSON.parse(t.result);this.parseRoles(e)}catch(e){alert("Error reading custom script: "+e.message)}this.$refs.upload.value=""})),t.readAsText(e)}},promptURL(){const e=prompt("Enter URL to a custom-script.json file");e&&this.handleURL(e)},async handleURL(e){const t=await fetch(e);if(t&&t.json)try{const e=await t.json();this.parseRoles(e)}catch(i){alert("Error loading custom script: "+i.message)}},async readFromClipboard(){const e=await navigator.clipboard.readText();try{const t=JSON.parse(e);this.parseRoles(t)}catch(t){alert("Error reading custom script: "+t.message)}},parseRoles(e){if(!e||!e.length)return;const t=e.findIndex((({id:e})=>"_meta"===e));let i={};if(t>-1&&(i=e.splice(t,1).pop()),this.$store.commit("setCustomRoles",e.map((e=>"string"===typeof e||e instanceof String?{id:e}:e))),this.$store.commit("setEdition",Object.assign({},i,{id:"custom"})),e.some((({id:e})=>this.$store.state.fabled.has(e)))){const t=[];e.forEach((({id:e})=>{this.$store.state.fabled.has(e)&&t.push(this.$store.state.fabled.get(e))})),this.$store.commit("players/setFabled",{fabled:t})}this.isCustom=!1},...(0,d.OI)(["toggleModal","setEdition"])}},Kt=(0,J.Z)(Xt,[["render",Qt],["__scopeId","data-v-e5f62d38"]]),_t=Kt,$t="data:image/png;base64,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",ei=e=>((0,s.dD)("data-v-14bc5701"),e=e(),(0,s.Cn)(),e),ti={class:"intro"},ii=ei((()=>(0,s._)("img",{src:"static/apple-icon.png",alt:"",class:"logo"},null,-1))),oi=ei((()=>(0,s._)("b",null,"Virtual Town Square and Grimoire",-1))),si=ei((()=>(0,s._)("b",null,"[A]",-1))),ai=ei((()=>(0,s._)("b",null,"[J]",-1))),ri=ei((()=>(0,s._)("br",null,null,-1))),ni=ei((()=>(0,s._)("div",{class:"footer"},[(0,s.Uk)(" This project is free and open source and can be found on "),(0,s._)("a",{href:"https://github.com/bra1n/townsquare",target:"_blank"},"GitHub"),(0,s.Uk)('. It is not affiliated with The Pandemonium Institute. "Blood on the Clocktower" is a trademark of Steven Medway and The Pandemonium Institute. ')],-1))),li={key:0,class:"redirect",href:"https://clocktower.gstonegames.com"},hi=ei((()=>(0,s._)("img",{src:$t,class:"gstone",alt:""},null,-1)));function di(e,t,i,o,a,r){const n=(0,s.up)("font-awesome-icon");return(0,s.wg)(),(0,s.iD)("div",ti,[ii,(0,s._)("div",null,[(0,s.Uk)(" Welcome to the (unofficial) "),oi,(0,s.Uk)(" for Blood on the Clocktower! Please add more players through the "),(0,s._)("span",{class:"button",onClick:t[0]||(t[0]=(...t)=>e.toggleMenu&&e.toggleMenu(...t))},[(0,s.Wm)(n,{icon:"cog"}),(0,s.Uk)(" Menu ")]),(0,s.Uk)(" on the top right or by pressing "),si,(0,s.Uk)(". You can also join a game session by pressing "),ai,(0,s.Uk)("."),ri,ni]),"zh-CN"===a.language?((0,s.wg)(),(0,s.iD)("a",li,[hi,(0,s.Uk)(" 你想使用中文版魔典吗? ")])):(0,s.kq)("",!0)])}const mi={data(){return{language:window.navigator.userLanguage||window.navigator.language}},methods:(0,d.OI)(["toggleMenu"])},ci=(0,J.Z)(mi,[["render",di],["__scopeId","data-v-14bc5701"]]),gi=ci,pi=e=>((0,s.dD)("data-v-40670158"),e=e(),(0,s.Cn)(),e),yi={class:"role"},ui={key:0,class:"player"},fi={class:"name"},bi={class:"ability"},wi={key:0,class:"team jinxed"},ki=pi((()=>(0,s._)("aside",null,[(0,s._)("h4",null,"Jinxed")],-1))),Ni={class:"role"},vi={class:"name"},Ai={class:"ability"},Ri=pi((()=>(0,s._)("li",null,null,-1))),Si=pi((()=>(0,s._)("li",null,null,-1)));function Ii(e,t,o,r,n,l){const h=(0,s.up)("font-awesome-icon"),d=(0,s.up)("Modal");return e.modals.reference&&e.roles.size?((0,s.wg)(),(0,s.j4)(d,{key:0,class:"characters",onClose:t[1]||(t[1]=t=>e.toggleModal("reference"))},{default:(0,s.w5)((()=>[(0,s._)("div",{onClick:t[0]||(t[0]=t=>e.toggleModal("nightOrder"))},[(0,s.Wm)(h,{icon:"cloud-moon",class:"toggle",title:"Show Night Order"})]),(0,s._)("h3",null,[(0,s.Uk)(" Character Reference "),(0,s.Wm)(h,{icon:"address-card"}),(0,s.Uk)(" "+(0,a.zw)(e.edition.name||"Custom Script"),1)]),((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(l.rolesGrouped,((t,o)=>((0,s.wg)(),(0,s.iD)("div",{key:o,class:(0,a.C_)(["team",o])},[(0,s._)("aside",null,[(0,s._)("h4",null,(0,a.zw)(o),1)]),(0,s._)("ul",null,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(t,(t=>((0,s.wg)(),(0,s.iD)("li",{class:(0,a.C_)([o]),key:t.id},[t.id?((0,s.wg)(),(0,s.iD)("span",{key:0,class:"icon",style:(0,a.j5)({backgroundImage:`url(${t.image&&e.grimoire.isImageOptIn?t.image:i(6003)("./"+(t.imageAlt||t.id)+".png")})`})},null,4)):(0,s.kq)("",!0),(0,s._)("div",yi,[Object.keys(l.playersByRole).length?((0,s.wg)(),(0,s.iD)("span",ui,(0,a.zw)(l.playersByRole[t.id]?l.playersByRole[t.id].join(", "):""),1)):(0,s.kq)("",!0),(0,s._)("span",fi,(0,a.zw)(t.name),1),(0,s._)("span",bi,(0,a.zw)(t.ability),1)])],2)))),128)),(0,s._)("li",{class:(0,a.C_)([o])},null,2),(0,s._)("li",{class:(0,a.C_)([o])},null,2)])],2)))),128)),l.jinxed.length?((0,s.wg)(),(0,s.iD)("div",wi,[ki,(0,s._)("ul",null,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(l.jinxed,((e,t)=>((0,s.wg)(),(0,s.iD)("li",{key:t},[(0,s._)("span",{class:"icon",style:(0,a.j5)({backgroundImage:`url(${i(6003)("./"+e.first.id+".png")})`})},null,4),(0,s._)("span",{class:"icon",style:(0,a.j5)({backgroundImage:`url(${i(6003)("./"+e.second.id+".png")})`})},null,4),(0,s._)("div",Ni,[(0,s._)("span",vi,(0,a.zw)(e.first.name)+" & "+(0,a.zw)(e.second.name),1),(0,s._)("span",Ai,(0,a.zw)(e.reason),1)])])))),128)),Ri,Si])])):(0,s.kq)("",!0)])),_:1})):(0,s.kq)("",!0)}const Di={components:{Modal:he},computed:{jinxed:function(){const e=[];return this.roles.forEach((t=>{this.jinxes.get(t.id)&&this.jinxes.get(t.id).forEach(((i,o)=>{this.roles.get(o)&&e.push({first:t,second:this.roles.get(o),reason:i})}))})),e},rolesGrouped:function(){const e={};return this.roles.forEach((t=>{e[t.team]||(e[t.team]=[]),e[t.team].push(t)})),delete e["traveler"],e},playersByRole:function(){const e={};return this.players.forEach((({name:t,role:i})=>{i&&i.id&&"traveler"!==i.team&&(e[i.id]||(e[i.id]=[]),e[i.id].push(t))})),e},...(0,d.rn)(["roles","modals","edition","grimoire","jinxes"]),...(0,d.rn)("players",["players"])},methods:{...(0,d.OI)(["toggleModal"])}},Mi=(0,J.Z)(Di,[["render",Ii],["__scopeId","data-v-40670158"]]),Ti=Mi,Gi=e=>((0,s.dD)("data-v-67598266"),e=e(),(0,s.Cn)(),e),Ci={id:"vote"},xi={class:"arrows"},Ei={class:"overlay"},Bi={class:"blue"},Yi=Gi((()=>(0,s._)("br",null,null,-1))),Wi={class:"blue"},Zi={key:0},Vi={key:1},Pi={key:0},ji={class:"button-group"},Oi={key:1,class:"button-group mark"},zi={key:0},Ui={class:"button-group"},Hi={key:4},Fi={key:0,class:"countdown"},Ji=Gi((()=>(0,s._)("span",null,"3",-1))),Li=Gi((()=>(0,s._)("span",null,"2",-1))),Qi=Gi((()=>(0,s._)("span",null,"1",-1))),qi=Gi((()=>(0,s._)("span",null,"GO",-1))),Xi=["autoplay","muted"];function Ki(e,t,i,r,n,l){const h=(0,s.up)("font-awesome-icon");return(0,s.wg)(),(0,s.iD)("div",Ci,[(0,s._)("div",xi,[(0,s._)("span",{class:"nominee",style:(0,a.j5)(l.nomineeStyle)},null,4),(0,s._)("span",{class:"nominator",style:(0,a.j5)(l.nominatorStyle)},null,4)]),(0,s._)("div",Ei,[(0,s._)("em",Bi,(0,a.zw)(l.nominator.name),1),(0,s.Uk)(" nominated "),(0,s._)("em",null,(0,a.zw)(l.nominee.name),1),(0,s.Uk)("! "),Yi,(0,s._)("em",Wi,(0,a.zw)(l.voters.length)+" vote"+(0,a.zw)(1!==l.voters.length?"s":""),1),(0,s.Uk)(" in favor "),"traveler"!==l.nominee.role.team?((0,s.wg)(),(0,s.iD)("em",Zi," (majority is "+(0,a.zw)(Math.ceil(e.alive/2))+") ",1)):((0,s.wg)(),(0,s.iD)("em",Vi,"(majority is "+(0,a.zw)(Math.ceil(e.players.length/2))+")",1)),e.session.isSpectator?l.canVote?((0,s.wg)(),(0,s.iD)(s.HY,{key:3},[e.session.isVoteWatchingAllowed&&!e.session.isVoteInProgress?((0,s.wg)(),(0,s.iD)("div",zi,(0,a.zw)(e.session.votingSpeed/1e3)+" seconds between votes ",1)):(0,s.kq)("",!0),(0,s._)("div",Ui,[(0,s._)("div",{class:(0,a.C_)(["button townsfolk",{disabled:!l.currentVote}]),onClick:t[9]||(t[9]=e=>l.vote(!1))}," Hand DOWN ",2),(0,s._)("div",{class:(0,a.C_)(["button demon",{disabled:l.currentVote}]),onClick:t[10]||(t[10]=e=>l.vote(!0))}," Hand UP ",2)])],64)):l.player?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",Hi,"Please claim a seat to vote.")):((0,s.wg)(),(0,s.iD)(s.HY,{key:2},[e.session.isVoteWatchingAllowed&&!e.session.isVoteInProgress&&e.session.lockedVote<1?((0,s.wg)(),(0,s.iD)("div",Pi,[(0,s.Uk)(" Time per player: "),(0,s._)("span",{onMousedown:t[0]||(t[0]=(0,o.iM)((e=>l.setVotingSpeed(-500)),["prevent"]))},[(0,s.Wm)(h,{icon:"minus-circle"})],32),(0,s.Uk)(" "+(0,a.zw)(e.session.votingSpeed/1e3)+"s ",1),(0,s._)("span",{onMousedown:t[1]||(t[1]=(0,o.iM)((e=>l.setVotingSpeed(500)),["prevent"]))},[(0,s.Wm)(h,{icon:"plus-circle"})],32)])):(0,s.kq)("",!0),(0,s._)("div",ji,[e.session.isVoteInProgress?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",{key:0,class:"button townsfolk",onClick:t[2]||(t[2]=(...e)=>l.countdown&&l.countdown(...e))}," Countdown ")),e.session.isVoteInProgress?((0,s.wg)(),(0,s.iD)(s.HY,{key:2},[(0,s._)("div",{class:(0,a.C_)(["button townsfolk",{disabled:!e.session.lockedVote}]),onClick:t[4]||(t[4]=(...e)=>l.pause&&l.pause(...e))},(0,a.zw)(n.voteTimer?"Pause":"Resume"),3),(0,s._)("div",{class:"button",onClick:t[5]||(t[5]=(...e)=>l.stop&&l.stop(...e))},"Reset")],64)):((0,s.wg)(),(0,s.iD)("div",{key:1,class:"button",onClick:t[3]||(t[3]=(...e)=>l.start&&l.start(...e))},(0,a.zw)(e.session.lockedVote?"Restart":"Start"),1)),(0,s._)("div",{class:"button demon",onClick:t[6]||(t[6]=(...e)=>l.finish&&l.finish(...e))},"Close")]),"traveler"!==l.nominee.role.team?((0,s.wg)(),(0,s.iD)("div",Oi,[(0,s._)("div",{class:(0,a.C_)(["button",{disabled:e.session.nomination[1]===e.session.markedPlayer}]),onClick:t[7]||(t[7]=(...e)=>l.setMarked&&l.setMarked(...e))}," Mark for execution ",2),(0,s._)("div",{class:"button",onClick:t[8]||(t[8]=(...e)=>l.removeMarked&&l.removeMarked(...e))},"Clear mark")])):(0,s.kq)("",!0)],64))]),(0,s.Wm)(o.uT,{name:"blur"},{default:(0,s.w5)((()=>[e.session.isVoteInProgress&&!e.session.lockedVote?((0,s.wg)(),(0,s.iD)("div",Fi,[Ji,Li,Qi,qi,(0,s._)("audio",{autoplay:!e.grimoire.isMuted,src:"/countdown.mp3",muted:e.grimoire.isMuted},null,8,Xi)])):(0,s.kq)("",!0)])),_:1})])}const _i={computed:{...(0,d.rn)("players",["players"]),...(0,d.rn)(["session","grimoire"]),...(0,d.Se)({alive:"players/alive"}),nominator:function(){return this.players[this.session.nomination[0]]},nominatorStyle:function(){const e=this.players.length,t=this.session.nomination[0];return{transform:`rotate(${Math.round(t/e*360)}deg)`,transitionDuration:this.session.votingSpeed-100+"ms"}},nominee:function(){return this.players[this.session.nomination[1]]},nomineeStyle:function(){const e=this.players.length,t=this.session.nomination[1],i=this.session.lockedVote,o=360*(t+Math.min(i,e))/e;return{transform:`rotate(${Math.round(o)}deg)`,transitionDuration:this.session.votingSpeed-100+"ms"}},player:function(){return this.players.find((e=>e.id===this.session.playerId))},currentVote:function(){const e=this.players.findIndex((e=>e.id===this.session.playerId));return e>=0?!!this.session.votes[e]:void 0},canVote:function(){if(!this.player)return!1;if(this.player.isVoteless&&"traveler"!==this.nominee.role.team)return!1;const e=this.session,t=this.players.length,i=this.players.indexOf(this.player),o=(i-1+t-e.nomination[1])%t;return o>=e.lockedVote-1},voters:function(){const e=this.session.nomination[1],t=Array(this.players.length).fill("").map(((e,t)=>this.session.votes[t]?this.players[t].name:"")),i=[...t.slice(e+1),...t.slice(0,e+1)];return(this.session.lockedVote?i.slice(0,this.session.lockedVote-1):i).filter((e=>!!e))}},data(){return{voteTimer:null}},methods:{countdown(){this.$store.commit("session/lockVote",0),this.$store.commit("session/setVoteInProgress",!0),this.voteTimer=setInterval((()=>{this.start()}),4e3)},start(){this.$store.commit("session/lockVote",1),this.$store.commit("session/setVoteInProgress",!0),clearInterval(this.voteTimer),this.session.isVoteWatchingAllowed?this.voteTimer=setInterval((()=>{this.$store.commit("session/lockVote"),this.session.lockedVote>this.players.length&&(clearInterval(this.voteTimer),this.$store.commit("session/setVoteInProgress",!1))}),this.session.votingSpeed):this.$store.commit("session/lockVote",this.players,length+1)},pause(){this.voteTimer?(clearInterval(this.voteTimer),this.voteTimer=null):this.voteTimer=setInterval((()=>{this.$store.commit("session/lockVote"),this.session.lockedVote>this.players.length&&(clearInterval(this.voteTimer),this.$store.commit("session/setVoteInProgress",!1))}),this.session.votingSpeed)},stop(){clearInterval(this.voteTimer),this.voteTimer=null,this.$store.commit("session/setVoteInProgress",!1),this.$store.commit("session/lockVote",0)},finish(){clearInterval(this.voteTimer),this.$store.commit("session/addHistory",this.players),this.$store.commit("session/nomination")},vote(e){if(!this.canVote)return!1;const t=this.players.findIndex((e=>e.id===this.session.playerId));t>=0&&!!this.session.votes[t]!==e&&this.$store.commit("session/voteSync",[t,e])},setVotingSpeed(e){const t=Math.round(this.session.votingSpeed+e);t>0&&this.$store.commit("session/setVotingSpeed",t)},setMarked(){this.$store.commit("session/setMarkedPlayer",this.session.nomination[1])},removeMarked(){this.$store.commit("session/setMarkedPlayer",-1)}}},$i=(0,J.Z)(_i,[["render",Ki],["__scopeId","data-v-67598266"]]),eo=$i,to={id:"gradients"},io=["id"];function oo(e,t,i,o,r,n){return(0,s.wg)(),(0,s.iD)("div",to,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(r.gradients,((e,t)=>((0,s.wg)(),(0,s.iD)("svg",{width:"0",height:"0",key:t},[(0,s._)("linearGradient",{id:e[0],x1:"50%",y1:"100%",x2:"50%",y2:"0%"},[(0,s._)("stop",{offset:"0%",style:(0,a.j5)({"stop-color":e[2],"stop-opacity":1})},null,4),(0,s._)("stop",{offset:"100%",style:(0,a.j5)({"stop-color":e[1],"stop-opacity":1})},null,4)],8,io)])))),128))])}const so={data(){return{gradients:[["demon","#ce0100","#000"],["townsfolk","#1f65ff","#000"],["default","#4E4E4E","#000"]]}}},ao=(0,J.Z)(so,[["render",oo],["__scopeId","data-v-1e202a64"]]),ro=ao,no=e=>((0,s.dD)("data-v-358fb701"),e=e(),(0,s.Cn)(),e),lo={class:"night"},ho={class:"first"},mo=no((()=>(0,s._)("li",{class:"headline"},"First Night",-1))),co={class:"name"},go={key:0,class:"player"},po=no((()=>(0,s._)("br",null,null,-1))),yo={key:1,class:"reminder"},uo={class:"other"},fo=no((()=>(0,s._)("li",{class:"headline"},"Other Nights",-1))),bo={class:"name"},wo={key:0,class:"player"},ko=no((()=>(0,s._)("br",null,null,-1))),No={key:1,class:"reminder"};function vo(e,t,o,r,n,l){const h=(0,s.up)("font-awesome-icon"),d=(0,s.up)("Modal");return e.modals.nightOrder&&e.roles.size?((0,s.wg)(),(0,s.j4)(d,{key:0,class:"night-reference",onClose:t[1]||(t[1]=t=>e.toggleModal("nightOrder"))},{default:(0,s.w5)((()=>[(0,s._)("div",{onClick:t[0]||(t[0]=t=>e.toggleModal("reference"))},[(0,s.Wm)(h,{icon:"address-card",class:"toggle",title:"Show Character Reference"})]),(0,s._)("h3",null,[(0,s.Uk)(" Night Order "),(0,s.Wm)(h,{icon:"cloud-moon"}),(0,s.Uk)(" "+(0,a.zw)(e.edition.name||"Custom Script"),1)]),(0,s._)("div",lo,[(0,s._)("ul",ho,[mo,((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(l.rolesFirstNight,(t=>((0,s.wg)(),(0,s.iD)("li",{key:t.name,class:(0,a.C_)([t.team])},[(0,s._)("span",co,[(0,s.Uk)((0,a.zw)(t.name)+" ",1),t.players.length?((0,s.wg)(),(0,s.iD)("span",go,[po,((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(t.players,((e,i)=>((0,s.wg)(),(0,s.iD)("small",{class:(0,a.C_)({dead:e.isDead}),key:i},(0,a.zw)(e.name+(t.players.length>i+1?",":"")),3)))),128))])):(0,s.kq)("",!0)]),t.id?((0,s.wg)(),(0,s.iD)("span",{key:0,class:"icon",style:(0,a.j5)({backgroundImage:`url(${t.image&&e.grimoire.isImageOptIn?t.image:i(6003)("./"+(t.imageAlt||t.id)+".png")})`})},null,4)):(0,s.kq)("",!0),t.firstNightReminder?((0,s.wg)(),(0,s.iD)("span",yo,(0,a.zw)(t.firstNightReminder),1)):(0,s.kq)("",!0)],2)))),128))]),(0,s._)("ul",uo,[fo,((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(l.rolesOtherNight,(t=>((0,s.wg)(),(0,s.iD)("li",{key:t.name,class:(0,a.C_)([t.team])},[t.id?((0,s.wg)(),(0,s.iD)("span",{key:0,class:"icon",style:(0,a.j5)({backgroundImage:`url(${t.image&&e.grimoire.isImageOptIn?t.image:i(6003)("./"+(t.imageAlt||t.id)+".png")})`})},null,4)):(0,s.kq)("",!0),(0,s._)("span",bo,[(0,s.Uk)((0,a.zw)(t.name)+" ",1),t.players.length?((0,s.wg)(),(0,s.iD)("span",wo,[ko,((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(t.players,((e,i)=>((0,s.wg)(),(0,s.iD)("small",{class:(0,a.C_)({dead:e.isDead}),key:i},(0,a.zw)(e.name+(t.players.length>i+1?",":"")),3)))),128))])):(0,s.kq)("",!0)]),t.otherNightReminder?((0,s.wg)(),(0,s.iD)("span",No,(0,a.zw)(t.otherNightReminder),1)):(0,s.kq)("",!0)],2)))),128))])])])),_:1})):(0,s.kq)("",!0)}const Ao={components:{Modal:he},computed:{rolesFirstNight:function(){const e=[];return this.players.length>6&&e.push({id:"evil",name:"Minion info",firstNight:5,team:"minion",players:this.players.filter((e=>"minion"===e.role.team)),firstNightReminder:"• If more than one Minion, they all make eye contact with each other. • Show the “This is the Demon” card. Point to the Demon."},{id:"evil",name:"Demon info & bluffs",firstNight:8,team:"demon",players:this.players.filter((e=>"demon"===e.role.team)),firstNightReminder:"• Show the “These are your minions” card. Point to each Minion. • Show the “These characters are not in play” card. Show 3 character tokens of good characters not in play."}),this.roles.forEach((t=>{const i=this.players.filter((e=>e.role.id===t.id));t.firstNight&&("traveler"!==t.team||i.length)&&e.push(Object.assign({players:i},t))})),this.fabled.filter((({firstNight:e})=>e)).forEach((t=>{e.push(Object.assign({players:[]},t))})),e.sort(((e,t)=>e.firstNight-t.firstNight)),e},rolesOtherNight:function(){const e=[];return this.roles.forEach((t=>{const i=this.players.filter((e=>e.role.id===t.id));t.otherNight&&("traveler"!==t.team||i.length)&&e.push(Object.assign({players:i},t))})),this.fabled.filter((({otherNight:e})=>e)).forEach((t=>{e.push(Object.assign({players:[]},t))})),e.sort(((e,t)=>e.otherNight-t.otherNight)),e},...(0,d.rn)(["roles","modals","edition","grimoire"]),...(0,d.rn)("players",["players","fabled"])},methods:{...(0,d.OI)(["toggleModal"])}},Ro=(0,J.Z)(Ao,[["render",vo],["__scopeId","data-v-358fb701"]]),So=Ro,Io=e=>((0,s.dD)("data-v-d6b399a0"),e=e(),(0,s.Cn)(),e),Do=Io((()=>(0,s._)("h3",null," Choose a fabled character to add to the game ",-1))),Mo={class:"tokens"},To=["onClick"];function Go(e,t,i,o,a,r){const n=(0,s.up)("Token"),l=(0,s.up)("Modal");return e.modals.fabled&&r.fabled.length?((0,s.wg)(),(0,s.j4)(l,{key:0,onClose:t[0]||(t[0]=t=>e.toggleModal("fabled"))},{default:(0,s.w5)((()=>[Do,(0,s._)("ul",Mo,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(r.fabled,(e=>((0,s.wg)(),(0,s.iD)("li",{key:e.id,onClick:t=>r.setFabled(e)},[(0,s.Wm)(n,{role:e},null,8,["role"])],8,To)))),128))])])),_:1})):(0,s.kq)("",!0)}const Co={components:{Token:Q,Modal:he},computed:{...(0,d.rn)(["modals","fabled","grimoire"]),fabled(){const e=[];return this.$store.state.fabled.forEach((t=>{this.$store.state.players.fabled.some((e=>e.id===t.id))||e.push(t)})),e}},methods:{setFabled(e){this.$store.commit("players/setFabled",{fabled:e}),this.$store.commit("toggleModal","fabled")},...(0,d.OI)(["toggleModal"])}},xo=(0,J.Z)(Co,[["render",Go],["__scopeId","data-v-d6b399a0"]]),Eo=xo,Bo=e=>((0,s.dD)("data-v-9cbf0edc"),e=e(),(0,s.Cn)(),e),Yo=Bo((()=>(0,s._)("h3",null,"Vote history",-1))),Wo={key:0,class:"options"},Zo=Bo((()=>(0,s._)("td",null,"Time",-1))),Vo=Bo((()=>(0,s._)("td",null,"Nominator",-1))),Po=Bo((()=>(0,s._)("td",null,"Nominee",-1))),jo=Bo((()=>(0,s._)("td",null,"Type",-1))),Oo=Bo((()=>(0,s._)("td",null,"Votes",-1))),zo=Bo((()=>(0,s._)("td",null,"Majority",-1)));function Uo(e,t,i,o,r,n){const l=(0,s.up)("font-awesome-icon"),h=(0,s.up)("Modal");return!e.modals.voteHistory||!e.session.voteHistory&&e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.j4)(h,{key:0,class:"vote-history",onClose:t[4]||(t[4]=t=>e.toggleModal("voteHistory"))},{default:(0,s.w5)((()=>[(0,s._)("div",{onClick:t[0]||(t[0]=(...e)=>n.clearVoteHistory&&n.clearVoteHistory(...e))},[e.session.isSpectator?((0,s.wg)(),(0,s.j4)(l,{key:0,icon:"trash-alt",class:"clear",title:"Clear vote history"})):(0,s.kq)("",!0)]),Yo,e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",Wo,[(0,s._)("div",{class:"option",onClick:t[1]||(t[1]=(...e)=>n.setRecordVoteHistory&&n.setRecordVoteHistory(...e))},[(0,s.Wm)(l,{icon:["fas",e.session.isVoteHistoryAllowed?"check-square":"square"]},null,8,["icon"]),(0,s.Uk)(" Accessible to players ")]),(0,s._)("div",{class:"option",onClick:t[2]||(t[2]=(...e)=>n.setVoteWatching&&n.setVoteWatching(...e))},[(0,s.Wm)(l,{icon:["fas",e.session.isVoteWatchingAllowed?"check-square":"square"]},null,8,["icon"]),(0,s.Uk)(" Vote Watching ")]),(0,s._)("div",{class:"option",onClick:t[3]||(t[3]=(...e)=>n.clearVoteHistory&&n.clearVoteHistory(...e))},[(0,s.Wm)(l,{icon:"trash-alt"}),(0,s.Uk)(" Clear for everyone ")])])),(0,s._)("table",null,[(0,s._)("thead",null,[(0,s._)("tr",null,[Zo,Vo,Po,jo,Oo,zo,(0,s._)("td",null,[(0,s.Wm)(l,{icon:"user-friends"}),(0,s.Uk)(" Voters ")])])]),(0,s._)("tbody",null,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.session.voteHistory,((e,t)=>((0,s.wg)(),(0,s.iD)("tr",{key:t},[(0,s._)("td",null,(0,a.zw)(e.timestamp.getHours().toString().padStart(2,"0"))+":"+(0,a.zw)(e.timestamp.getMinutes().toString().padStart(2,"0")),1),(0,s._)("td",null,(0,a.zw)(e.nominator),1),(0,s._)("td",null,(0,a.zw)(e.nominee),1),(0,s._)("td",null,(0,a.zw)(e.type),1),(0,s._)("td",null,[(0,s.Uk)((0,a.zw)(e.votes.length)+" ",1),(0,s.Wm)(l,{icon:"hand-paper"})]),(0,s._)("td",null,[(0,s.Uk)((0,a.zw)(e.majority)+" ",1),(0,s.Wm)(l,{icon:["fas",e.votes.length>=e.majority?"check-square":"square"]},null,8,["icon"])]),(0,s._)("td",null,(0,a.zw)(e.votes.join(", ")),1)])))),128))])])])),_:1}))}const Ho={components:{Modal:he},computed:{...(0,d.rn)(["session","modals"])},methods:{clearVoteHistory(){this.$store.commit("session/clearVoteHistory")},setRecordVoteHistory(){this.$store.commit("session/setVoteHistoryAllowed",!this.session.isVoteHistoryAllowed),this.session.isVoteHistoryAllowed&&this.$store.commit("session/setVoteWatchingAllowed",!0)},setVoteWatching(){this.$store.commit("session/setVoteWatchingAllowed",!this.session.isVoteWatchingAllowed),this.session.isVoteWatchingAllowed||this.$store.commit("session/setVoteHistoryAllowed",!1)},...(0,d.OI)(["toggleModal"])}},Fo=(0,J.Z)(Ho,[["render",Uo],["__scopeId","data-v-9cbf0edc"]]),Jo=Fo,Lo=e=>((0,s.dD)("data-v-7971ea6f"),e=e(),(0,s.Cn)(),e),Qo=Lo((()=>(0,s._)("h3",null,"Current Game State",-1))),qo=["value"],Xo={class:"button-group"};function Ko(e,t,i,a,r,n){const l=(0,s.up)("font-awesome-icon"),h=(0,s.up)("Modal");return e.modals.gameState?((0,s.wg)(),(0,s.j4)(h,{key:0,class:"game-state",onClose:t[5]||(t[5]=t=>e.toggleModal("gameState"))},{default:(0,s.w5)((()=>[Qo,(0,s._)("textarea",{value:n.gamestate,onInput:t[0]||(t[0]=(0,o.iM)((e=>r.input=e.target.value),["stop"])),onClick:t[1]||(t[1]=e=>e.target.select()),onKeyup:t[2]||(t[2]=(0,o.iM)((()=>{}),["stop"]))},null,40,qo),(0,s._)("div",Xo,[(0,s._)("div",{class:"button townsfolk",onClick:t[3]||(t[3]=(...e)=>n.copy&&n.copy(...e))},[(0,s.Wm)(l,{icon:"copy"}),(0,s.Uk)(" Copy JSON ")]),e.session.isSpectator?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",{key:0,class:"button demon",onClick:t[4]||(t[4]=(...e)=>n.load&&n.load(...e))},[(0,s.Wm)(l,{icon:"cog"}),(0,s.Uk)(" Load State ")]))])])),_:1})):(0,s.kq)("",!0)}const _o={components:{Modal:he},computed:{gamestate:function(){return JSON.stringify({bluffs:this.players.bluffs.map((({id:e})=>e)),edition:this.edition.isOfficial?{id:this.edition.id}:this.edition,roles:this.edition.isOfficial?"":this.$store.getters.customRolesStripped,fabled:this.players.fabled.map((e=>e.isCustom?e:{id:e.id})),players:this.players.players.map((e=>({...e,role:e.role.id||{}})))})},...(0,d.rn)(["modals","players","edition","roles","session"])},data(){return{input:""}},methods:{copy:function(){navigator.clipboard.writeText(this.input||this.gamestate)},load:function(){if(!this.session.isSpectator)try{const e=JSON.parse(this.input||this.gamestate),{bluffs:t,edition:i,roles:o,fabled:s,players:a}=e;o&&this.$store.commit("setCustomRoles",o),i&&this.$store.commit("setEdition",i),t.length&&t.forEach(((e,t)=>{this.$store.commit("players/setBluff",{index:t,role:this.$store.state.roles.get(e)||{}})})),s&&this.$store.commit("players/setFabled",{fabled:s.map((e=>this.$store.state.fabled.get(e)||this.$store.state.fabled.get(e.id)||e))}),a&&this.$store.commit("players/set",a.map((e=>({...e,role:this.$store.state.roles.get(e.role)||this.$store.getters.rolesJSONbyId.get(e.role)||{}})))),this.toggleModal("gameState")}catch(e){alert("Unable to parse JSON: "+e)}},...(0,d.OI)(["toggleModal"])}},$o=(0,J.Z)(_o,[["render",Ko],["__scopeId","data-v-7971ea6f"]]),es=$o,ts={components:{GameStateModal:es,VoteHistoryModal:Jo,FabledModal:Eo,NightOrderModal:So,Vote:eo,ReferenceModal:Ti,Intro:gi,TownInfo:Oe,TownSquare:Ge,Menu:bt,EditionModal:_t,RolesModal:Ct,Gradients:ro},computed:{...(0,d.rn)(["grimoire","session","modals"]),...(0,d.rn)("players",["players"])},data(){return{version:m.i8}},methods:{keyup({key:e,ctrlKey:t,metaKey:i}){if(!(t||i||this.modals.role))switch(e.toLocaleLowerCase()){case"g":this.$store.commit("toggleGrimoire");break;case"a":this.$refs.menu.addPlayer();break;case"h":this.$refs.menu.hostSession();break;case"j":this.$refs.menu.joinSession();break;case"r":this.$store.commit("toggleModal","reference");break;case"n":this.$store.commit("toggleModal","nightOrder");break;case"e":if(this.session.isSpectator)return;this.$store.commit("toggleModal","edition");break;case"c":if(this.session.isSpectator)return;this.$store.commit("toggleModal","roles");break;case"v":!this.session.voteHistory.length&&this.session.isSpectator||this.$store.commit("toggleModal","voteHistory");break;case"s":if(this.session.isSpectator)return;this.$refs.menu.toggleNight();break;case"escape":this.$store.commit("toggleModal")}}}},is=(0,J.Z)(ts,[["render",h]]),os=is;var ss=i(2464),as=i.n(ss);class rs{constructor(e){this._wss="wss://townsquaremsg.clocktower.guru:8080/",this._socket=null,this._isSpectator=!0,this._gamestate=[],this._store=e,this._pingInterval=3e4,this._pingTimer=null,this._reconnectTimer=null,this._players={},this._pings={},this._store.state.session.sessionId&&this.connect(this._store.state.session.sessionId)}_open(e){this.disconnect(),this._socket=new WebSocket(this._wss+e+"/"+(this._isSpectator?this._store.state.session.playerId:"host")),this._socket.addEventListener("message",this._handleMessage.bind(this)),this._socket.onopen=this._onOpen.bind(this),this._socket.onclose=t=>{this._socket=null,clearInterval(this._pingTimer),this._pingTimer=null,1e3!==t.code?(this._store.commit("session/setReconnecting",!0),this._reconnectTimer=setTimeout((()=>this.connect(e)),3e3)):(this._store.commit("session/setSessionId",""),t.reason&&alert(t.reason))}}_send(e,t){this._socket&&1===this._socket.readyState&&this._socket.send(JSON.stringify([e,t]))}_sendDirect(e,t,i){e?this._send("direct",{[e]:[t,i]}):this._send(t,i)}_onOpen(){this._isSpectator?this._sendDirect("host","getGamestate",this._store.state.session.playerId):this.sendGamestate(),this._ping()}_ping(){this._handlePing(),this._send("ping",[this._isSpectator?this._store.state.session.playerId:Object.keys(this._players).length,"latency"]),clearTimeout(this._pingTimer),this._pingTimer=setTimeout(this._ping.bind(this),this._pingInterval)}_handleMessage({data:e}){let t,i;try{[t,i]=JSON.parse(e)}catch(o){console.log("unsupported socket message",e)}switch(t){case"getGamestate":this.sendGamestate(i);break;case"edition":this._updateEdition(i);break;case"fabled":this._updateFabled(i);break;case"gs":this._updateGamestate(i);break;case"player":this._updatePlayer(i);break;case"claim":this._updateSeat(i);break;case"ping":this._handlePing(i);break;case"nomination":if(!this._isSpectator)return;i||this._store.commit("session/addHistory",this._store.state.players.players),this._store.commit("session/nomination",{nomination:i});break;case"swap":if(!this._isSpectator)return;this._store.commit("players/swap",i);break;case"move":if(!this._isSpectator)return;this._store.commit("players/move",i);break;case"remove":if(!this._isSpectator)return;this._store.commit("players/remove",i);break;case"marked":if(!this._isSpectator)return;this._store.commit("session/setMarkedPlayer",i);break;case"isNight":if(!this._isSpectator)return;this._store.commit("toggleNight",i);break;case"isVoteHistoryAllowed":if(!this._isSpectator)return;this._store.commit("session/setVoteHistoryAllowed",i),this._store.commit("session/clearVoteHistory");break;case"isVoteWatchingAllowed":if(!this._isSpectator)return;this._store.commit("session/setVoteWatchingAllowed",i);break;case"votingSpeed":if(!this._isSpectator)return;this._store.commit("session/setVotingSpeed",i);break;case"clearVoteHistory":if(!this._isSpectator)return;this._store.commit("session/clearVoteHistory");break;case"isVoteInProgress":if(!this._isSpectator)return;this._store.commit("session/setVoteInProgress",i);break;case"vote":this._handleVote(i);break;case"lock":this._handleLock(i);break;case"bye":this._handleBye(i);break;case"pronouns":this._updatePlayerPronouns(i);break}}connect(e){this._store.state.session.playerId||this._store.commit("session/setPlayerId",Math.random().toString(36).substr(2)),this._pings={},this._store.commit("session/setPlayerCount",0),this._store.commit("session/setPing",0),this._isSpectator=this._store.state.session.isSpectator,this._open(e)}disconnect(){this._pings={},this._store.commit("session/setPlayerCount",0),this._store.commit("session/setPing",0),this._store.commit("session/setReconnecting",!1),clearTimeout(this._reconnectTimer),this._socket&&(this._isSpectator&&this._sendDirect("host","bye",this._store.state.session.playerId),this._socket.close(1e3),this._socket=null)}sendGamestate(e="",t=!1){if(!this._isSpectator)if(this._gamestate=this._store.state.players.players.map((e=>({name:e.name,id:e.id,isDead:e.isDead,isVoteless:e.isVoteless,pronouns:e.pronouns,...e.role&&"traveler"===e.role.team?{roleId:e.role.id}:{}}))),t)this._sendDirect(e,"gs",{gamestate:this._gamestate,isLightweight:t});else{const{session:t,grimoire:i}=this._store.state,{fabled:o}=this._store.state.players;this.sendEdition(e),this._sendDirect(e,"gs",{gamestate:this._gamestate,isNight:i.isNight,isVoteHistoryAllowed:t.isVoteHistoryAllowed,isVoteWatchingAllowed:t.isVoteWatchingAllowed,nomination:t.nomination,votingSpeed:t.votingSpeed,lockedVote:t.lockedVote,isVoteInProgress:t.isVoteInProgress,markedPlayer:t.markedPlayer,fabled:o.map((e=>e.isCustom?e:{id:e.id})),...t.nomination?{votes:t.votes}:{}})}}_updateGamestate(e){if(!this._isSpectator)return;const{gamestate:t,isLightweight:i,isNight:o,isVoteHistoryAllowed:s,isVoteWatchingAllowed:a,nomination:r,votingSpeed:n,votes:l,lockedVote:h,isVoteInProgress:d,markedPlayer:m,fabled:c}=e,g=this._store.state.players.players;if(g.lengtht.length)for(let p=g.length;p>t.length;p--)this._store.commit("players/remove",p-1);t.forEach(((e,t)=>{const i=g[t],{roleId:o}=e;if(["name","id","isDead","isVoteless","pronouns"].forEach((t=>{const o=e[t];i[t]!==o&&this._store.commit("players/update",{player:i,property:t,value:o})})),o&&i.role.id!==o){const e=this._store.state.roles.get(o)||this._store.getters.rolesJSONbyId.get(o);e&&this._store.commit("players/update",{player:i,property:"role",value:e})}else o||"traveler"!==i.role.team||this._store.commit("players/update",{player:i,property:"role",value:{}})})),i||(this._store.commit("toggleNight",!!o),this._store.commit("session/setVoteHistoryAllowed",s),this._store.commit("session/setVoteWatchingAllowed",a),this._store.commit("session/nomination",{nomination:r,votes:l,votingSpeed:n,lockedVote:h,isVoteInProgress:d}),this._store.commit("session/setMarkedPlayer",m),this._store.commit("players/setFabled",{fabled:c.map((e=>this._store.state.fabled.get(e.id)||e))}))}sendEdition(e=""){if(this._isSpectator)return;const{edition:t}=this._store.state;let i;t.isOfficial||(i=this._store.getters.customRolesStripped),this._sendDirect(e,"edition",{edition:t.isOfficial?{id:t.id}:t,...i?{roles:i}:{}})}_updateEdition({edition:e,roles:t}){if(this._isSpectator&&(this._store.commit("setEdition",e),t&&(this._store.commit("setCustomRoles",t),this._store.state.roles.size!==t.length))){const e=[];t.forEach((({id:t})=>{this._store.state.roles.get(t)||e.push(t)})),alert(`This session contains custom characters that can't be found. Please load them before joining! Missing roles: ${e.join(", ")}`),this.disconnect(),this._store.commit("toggleModal","edition")}}sendFabled(){if(this._isSpectator)return;const{fabled:e}=this._store.state.players;this._send("fabled",e.map((e=>e.isCustom?e:{id:e.id})))}_updateFabled(e){this._isSpectator&&this._store.commit("players/setFabled",{fabled:e.map((e=>this._store.state.fabled.get(e.id)||e))})}sendPlayer({player:e,property:t,value:i}){if(this._isSpectator||"reminders"===t)return;const o=this._store.state.players.players.indexOf(e);"role"===t?i.team&&"traveler"===i.team?(this._gamestate[o].roleId=i.id,this._send("player",{index:o,property:t,value:i.id})):this._gamestate[o].roleId&&(delete this._gamestate[o].roleId,this._send("player",{index:o,property:t,value:""})):this._send("player",{index:o,property:t,value:i})}_updatePlayer({index:e,property:t,value:i}){if(!this._isSpectator)return;const o=this._store.state.players.players[e];if(o)if("role"===t)if(i||"traveler"!==o.role.team){const e=this._store.state.roles.get(i)||this._store.getters.rolesJSONbyId.get(i)||{};this._store.commit("players/update",{player:o,property:"role",value:e})}else this._store.commit("players/update",{player:o,property:"role",value:{}});else this._store.commit("players/update",{player:o,property:t,value:i})}sendPlayerPronouns({player:e,value:t,isFromSockets:i}){if(i||this._isSpectator&&this._store.state.session.playerId!==e.id)return;const o=this._store.state.players.players.indexOf(e);this._send("pronouns",[o,t])}_updatePlayerPronouns([e,t]){const i=this._store.state.players.players[e];this._store.commit("players/update",{player:i,property:"pronouns",value:t,isFromSockets:!0})}_handlePing([e=0,t]=[]){const i=(new Date).getTime();if(this._isSpectator)t&&this._store.commit("session/setPing",parseInt(t,10));else{for(let e in this._players)i-this._players[e]>2*this._pingInterval&&(delete this._players[e],delete this._pings[e]);if(this._store.state.players.players.forEach((e=>{e.id&&!this._players[e.id]&&this._store.commit("players/update",{player:e,property:"id",value:""})})),e){this._players[e]=i;const o=parseInt(t,10);if(o&&o>0&&o<3e4){this._pings[e]=o;const t=Object.values(this._pings);this._store.commit("session/setPing",Math.round(t.reduce(((e,t)=>e+t),0)/t.length))}}}this._isSpectator&&!e||this._store.commit("session/setPlayerCount",this._isSpectator?e:Object.keys(this._players).length)}_handleBye(e){this._isSpectator||(delete this._players[e],this._store.commit("session/setPlayerCount",Object.keys(this._players).length))}claimSeat(e){if(!this._isSpectator)return;const t=this._store.state.players.players;t.length>e&&(e<0||!t[e].id)&&this._send("claim",[e,this._store.state.session.playerId])}_updateSeat([e,t]){if(this._isSpectator)return;const i="id",o=this._store.state.players.players,s=o.findIndex((({id:e})=>e===t));if(s>=0&&s!==e&&this._store.commit("players/update",{player:o[s],property:i,value:""}),e>=0){const s=o[e];if(!s)return;this._store.commit("players/update",{player:s,property:i,value:t})}this._handlePing([!0,t,0])}distributeRoles(){if(this._isSpectator)return;const e={};this._store.state.players.players.forEach(((t,i)=>{t.id&&t.role&&(e[t.id]=["player",{index:i,property:"role",value:t.role.id}])})),Object.keys(e).length&&this._send("direct",e)}nomination(e){if(this._isSpectator)return;const t=e&&e.nomination||e,i=this._store.state.players.players;(!t||i.length>t[0]&&i.length>t[1])&&(this.setVotingSpeed(this._store.state.session.votingSpeed),this._send("nomination",t))}setVoteInProgress(){this._isSpectator||this._send("isVoteInProgress",this._store.state.session.isVoteInProgress)}setIsNight(){this._isSpectator||this._send("isNight",this._store.state.grimoire.isNight)}setVoteHistoryAllowed(){this._isSpectator||this._send("isVoteHistoryAllowed",this._store.state.session.isVoteHistoryAllowed)}setVoteWatchingAllowed(){this._isSpectator||this._send("isVoteWatchingAllowed",this._store.state.session.isVoteWatchingAllowed)}setVotingSpeed(e){this._isSpectator||e&&this._send("votingSpeed",e)}setMarked(e){this._isSpectator||this._send("marked",e)}clearVoteHistory(){this._isSpectator||this._send("clearVoteHistory")}vote([e]){const t=this._store.state.players.players[e];this._store.state.session.playerId!==t.id&&this._isSpectator||this._send("vote",[e,this._store.state.session.votes[e],!this._isSpectator])}_handleVote([e,t,i]){const{session:o,players:s}=this._store.state,a=s.players.length,r=(e-1+a-o.nomination[1])%a;(i||r>=o.lockedVote-1)&&this._store.commit("session/vote",[e,t])}lockVote(){if(this._isSpectator)return;const{lockedVote:e,votes:t,nomination:i}=this._store.state.session,{players:o}=this._store.state.players,s=(i[1]+e-1)%o.length;this._send("lock",[this._store.state.session.lockedVote,t[s]])}_handleLock([e,t]){if(this._isSpectator&&(this._store.commit("session/lockVote",e),e>1)){const{lockedVote:e,nomination:i}=this._store.state.session,{players:o}=this._store.state.players,s=(i[1]+e-1)%o.length;this._store.state.session.votes[s]!==t&&this._store.commit("session/vote",[s,t])}}swapPlayer(e){this._isSpectator||this._send("swap",e)}movePlayer(e){this._isSpectator||this._send("move",e)}removePlayer(e){this._isSpectator||this._send("remove",e)}}const ns=e=>{const t=new rs(e);e.subscribe((({type:e,payload:i},o)=>{switch(e){case"session/setSessionId":o.session.sessionId?t.connect(o.session.sessionId):(window.location.hash="",t.disconnect());break;case"session/claimSeat":t.claimSeat(i);break;case"session/distributeRoles":i&&t.distributeRoles();break;case"session/nomination":case"session/setNomination":t.nomination(i);break;case"session/setVoteInProgress":t.setVoteInProgress(i);break;case"session/voteSync":t.vote(i);break;case"session/lockVote":t.lockVote();break;case"session/setVotingSpeed":t.setVotingSpeed(i);break;case"session/clearVoteHistory":t.clearVoteHistory();break;case"session/setVoteHistoryAllowed":t.setVoteHistoryAllowed();break;case"session/setVoteWatchingAllowed":t.setVoteWatchingAllowed();break;case"toggleNight":t.setIsNight();break;case"setEdition":t.sendEdition();break;case"players/setFabled":t.sendFabled();break;case"session/setMarkedPlayer":t.setMarked(i);break;case"players/swap":t.swapPlayer(i);break;case"players/move":t.movePlayer(i);break;case"players/remove":t.removePlayer(i);break;case"players/set":case"players/clear":case"players/add":t.sendGamestate("",!0);break;case"players/update":"pronouns"===i.property?t.sendPlayerPronouns(i):t.sendPlayer(i);break}}));const i=window.location.hash.substr(1);i&&(e.commit("session/setSpectator",!0),e.commit("session/setSessionId",i),e.commit("toggleGrimoire",!1))},ls={name:"",id:"",role:{},reminders:[],isVoteless:!1,isDead:!1,pronouns:""},hs=()=>({players:[],fabled:[],bluffs:[]}),ds={alive({players:e}){return e.filter((e=>!e.isDead)).length},nonTravelers({players:e}){const t=e.filter((e=>"traveler"!==e.role.team));return Math.min(t.length,15)},nightOrder({players:e,fabled:t}){const i=[0],o=[0];e.forEach((({role:e})=>{e.firstNight&&!i.includes(e.firstNight)&&i.push(e.firstNight),e.otherNight&&!o.includes(e.otherNight)&&o.push(e.otherNight)})),t.forEach((e=>{e.firstNight&&!i.includes(e.firstNight)&&i.push(e.firstNight),e.otherNight&&!o.includes(e.otherNight)&&o.push(e.otherNight)})),i.sort(((e,t)=>e-t)),o.sort(((e,t)=>e-t));const s=new Map;return e.forEach((e=>{const t=Math.max(i.indexOf(e.role.firstNight),0),a=Math.max(o.indexOf(e.role.otherNight),0);s.set(e,{first:t,other:a})})),t.forEach((e=>{const t=Math.max(i.indexOf(e.firstNight),0),a=Math.max(o.indexOf(e.otherNight),0);s.set(e,{first:t,other:a})})),s}},ms={randomize({state:e,commit:t}){const i=e.players.map((e=>[Math.random(),e])).sort(((e,t)=>e[0]-t[0])).map((e=>e[1]));t("set",i)},clearRoles({state:e,commit:t,rootState:i}){let o;i.session.isSpectator?o=e.players.map((e=>("traveler"!==e.role.team&&(e.role={}),e.reminders=[],e))):(o=e.players.map((({name:e,id:t,pronouns:i})=>({...ls,name:e,id:t,pronouns:i}))),t("setFabled",{fabled:[]})),t("set",o),t("setBluff")}},cs={clear(e){e.players=[],e.bluffs=[],e.fabled=[]},set(e,t=[]){e.players=t},update(e,{player:t,property:i,value:o}){const s=e.players.indexOf(t);s>=0&&(e.players[s][i]=o)},add(e,t){e.players.push({...ls,name:t})},remove(e,t){e.players.splice(t,1)},swap(e,[t,i]){[e.players[t],e.players[i]]=[e.players[i],e.players[t]],e.players.splice(0,0)},move(e,[t,i]){e.players.splice(i,0,e.players.splice(t,1)[0])},setBluff(e,{index:t,role:i}={}){void 0!==t?e.bluffs.splice(t,1,i):e.bluffs=[]},setFabled(e,{index:t,fabled:i}={}){void 0!==t?e.fabled.splice(t,1):i&&(Array.isArray(i)?e.fabled=i:e.fabled.push(i))}},gs={namespaced:!0,state:hs,getters:ds,actions:ms,mutations:cs},ps=(e,[t,i])=>{e.nomination&&(e.votes=[...e.votes],e.votes[t]=void 0===i?!e.votes[t]:i)},ys=()=>({sessionId:"",isSpectator:!1,isReconnecting:!1,playerCount:0,ping:0,playerId:"",claimedSeat:-1,nomination:!1,votes:[],lockedVote:0,votingSpeed:3e3,isVoteInProgress:!1,voteHistory:[],markedPlayer:-1,isVoteHistoryAllowed:!1,isVoteWatchingAllowed:!0,isRolesDistributed:!1}),us={},fs={},bs=e=>(t,i)=>{t[e]=i},ws={setPlayerId:bs("playerId"),setSpectator:bs("isSpectator"),setReconnecting:bs("isReconnecting"),setPlayerCount:bs("playerCount"),setPing:bs("ping"),setVotingSpeed:bs("votingSpeed"),setVoteInProgress:bs("isVoteInProgress"),setMarkedPlayer:bs("markedPlayer"),setNomination:bs("nomination"),setVoteHistoryAllowed:bs("isVoteHistoryAllowed"),setVoteWatchingAllowed:bs("isVoteWatchingAllowed"),claimSeat:bs("claimedSeat"),distributeRoles:bs("isRolesDistributed"),setSessionId(e,t){e.sessionId=t.toLocaleLowerCase().replace(/[^0-9a-z]/g,"").substr(0,10)},nomination(e,{nomination:t,votes:i,votingSpeed:o,lockedVote:s,isVoteInProgress:a}={}){e.nomination=t||!1,e.votes=i||[],e.votingSpeed=o||e.votingSpeed,e.lockedVote=s||0,e.isVoteInProgress=a||!1},addHistory(e,t){if(!e.isVoteHistoryAllowed&&e.isSpectator)return;if(!e.nomination||e.lockedVote<=t.length)return;const i="traveler"===t[e.nomination[1]].role.team;e.voteHistory.push({timestamp:new Date,nominator:t[e.nomination[0]].name,nominee:t[e.nomination[1]].name,type:i?"Exile":"Execution",majority:Math.ceil(t.filter((e=>!e.isDead||i)).length/2),votes:t.filter(((t,i)=>e.votes[i])).map((({name:e})=>e))})},clearVoteHistory(e){e.voteHistory=[]},vote:ps,voteSync:ps,lockVote(e,t){e.lockedVote=void 0!==t?t:e.lockedVote+1}},ks={namespaced:!0,state:ys,getters:us,actions:fs,mutations:ws},Ns=JSON.parse('[{"id":"washerwoman","name":"Washerwoman","edition":"tb","team":"townsfolk","firstNight":33,"firstNightReminder":"Show the character token of a Townsfolk in play. Point to two players, one of which is that character.","otherNight":0,"otherNightReminder":"","reminders":["Townsfolk","Wrong"],"setup":false,"ability":"You start knowing that 1 of 2 players is a particular Townsfolk."},{"id":"librarian","name":"Librarian","edition":"tb","team":"townsfolk","firstNight":34,"firstNightReminder":"Show the character token of an Outsider in play. Point to two players, one of which is that character.","otherNight":0,"otherNightReminder":"","reminders":["Outsider","Wrong"],"setup":false,"ability":"You start knowing that 1 of 2 players is a particular Outsider. (Or that zero are in play.)"},{"id":"investigator","name":"Investigator","edition":"tb","team":"townsfolk","firstNight":35,"firstNightReminder":"Show the character token of a Minion in play. Point to two players, one of which is that character.","otherNight":0,"otherNightReminder":"","reminders":["Minion","Wrong"],"setup":false,"ability":"You start knowing that 1 of 2 players is a particular Minion."},{"id":"chef","name":"Chef","edition":"tb","team":"townsfolk","firstNight":36,"firstNightReminder":"Show the finger signal (0, 1, 2, …) for the number of pairs of neighbouring evil players.","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"You start knowing how many pairs of evil players there are."},{"id":"empath","name":"Empath","edition":"tb","team":"townsfolk","firstNight":37,"firstNightReminder":"Show the finger signal (0, 1, 2) for the number of evil alive neighbours of the Empath.","otherNight":53,"otherNightReminder":"Show the finger signal (0, 1, 2) for the number of evil neighbours.","reminders":[],"setup":false,"ability":"Each night, you learn how many of your 2 alive neighbours are evil."},{"id":"fortuneteller","name":"Fortune Teller","edition":"tb","team":"townsfolk","firstNight":38,"firstNightReminder":"The Fortune Teller points to two players. Give the head signal (nod yes, shake no) for whether one of those players is the Demon. ","otherNight":54,"otherNightReminder":"The Fortune Teller points to two players. Show the head signal (nod \'yes\', shake \'no\') for whether one of those players is the Demon.","reminders":["Red herring"],"setup":false,"ability":"Each night, choose 2 players: you learn if either is a Demon. There is a good player that registers as a Demon to you."},{"id":"undertaker","name":"Undertaker","edition":"tb","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":55,"otherNightReminder":"If a player was executed today: Show that player’s character token.","reminders":["Executed"],"setup":false,"ability":"Each night*, you learn which character died by execution today."},{"id":"monk","name":"Monk","edition":"tb","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":12,"otherNightReminder":"The previously protected player is no longer protected. The Monk points to a player not themself. Mark that player \'Protected\'.","reminders":["Protected"],"setup":false,"ability":"Each night*, choose a player (not yourself): they are safe from the Demon tonight."},{"id":"ravenkeeper","name":"Ravenkeeper","edition":"tb","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":52,"otherNightReminder":"If the Ravenkeeper died tonight: The Ravenkeeper points to a player. Show that player’s character token.","reminders":[],"setup":false,"ability":"If you die at night, you are woken to choose a player: you learn their character."},{"id":"virgin","name":"Virgin","edition":"tb","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["No ability"],"setup":false,"ability":"The 1st time you are nominated, if the nominator is a Townsfolk, they are executed immediately."},{"id":"slayer","name":"Slayer","edition":"tb","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["No ability"],"setup":false,"ability":"Once per game, during the day, publicly choose a player: if they are the Demon, they die."},{"id":"soldier","name":"Soldier","edition":"tb","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"You are safe from the Demon."},{"id":"mayor","name":"Mayor","edition":"tb","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"If only 3 players live & no execution occurs, your team wins. If you die at night, another player might die instead."},{"id":"butler","name":"Butler","edition":"tb","team":"outsider","firstNight":39,"firstNightReminder":"The Butler points to a player. Mark that player as \'Master\'.","otherNight":67,"otherNightReminder":"The Butler points to a player. Mark that player as \'Master\'.","reminders":["Master"],"setup":false,"ability":"Each night, choose a player (not yourself): tomorrow, you may only vote if they are voting too."},{"id":"drunk","name":"Drunk","edition":"tb","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"remindersGlobal":["Drunk"],"setup":true,"ability":"You do not know you are the Drunk. You think you are a Townsfolk character, but you are not."},{"id":"recluse","name":"Recluse","edition":"tb","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"You might register as evil & as a Minion or Demon, even if dead."},{"id":"saint","name":"Saint","edition":"tb","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"If you die by execution, your team loses."},{"id":"poisoner","name":"Poisoner","edition":"tb","team":"minion","firstNight":17,"firstNightReminder":"The Poisoner points to a player. That player is poisoned.","otherNight":7,"otherNightReminder":"The previously poisoned player is no longer poisoned. The Poisoner points to a player. That player is poisoned.","reminders":["Poisoned"],"setup":false,"ability":"Each night, choose a player: they are poisoned tonight and tomorrow day."},{"id":"spy","name":"Spy","edition":"tb","team":"minion","firstNight":49,"firstNightReminder":"Show the Grimoire to the Spy for as long as they need.","otherNight":68,"otherNightReminder":"Show the Grimoire to the Spy for as long as they need.","reminders":[],"setup":false,"ability":"Each night, you see the Grimoire. You might register as good & as a Townsfolk or Outsider, even if dead."},{"id":"scarletwoman","name":"Scarlet Woman","edition":"tb","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":19,"otherNightReminder":"If the Scarlet Woman became the Demon today: Show the \'You are\' card, then the demon token.","reminders":["Demon"],"setup":false,"ability":"If there are 5 or more players alive & the Demon dies, you become the Demon. (Travellers don’t count)"},{"id":"baron","name":"Baron","edition":"tb","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":true,"ability":"There are extra Outsiders in play. [+2 Outsiders]"},{"id":"imp","name":"Imp","edition":"tb","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":24,"otherNightReminder":"The Imp points to a player. That player dies. If the Imp chose themselves: Replace the character of 1 alive minion with a spare Imp token. Show the \'You are\' card, then the Imp token.","reminders":["Dead"],"setup":false,"ability":"Each night*, choose a player: they die. If you kill yourself this way, a Minion becomes the Imp."},{"id":"bureaucrat","name":"Bureaucrat","edition":"tb","team":"traveler","firstNight":1,"firstNightReminder":"The Bureaucrat points to a player. Put the Bureaucrat\'s \'3 votes\' reminder by the chosen player\'s character token.","otherNight":1,"otherNightReminder":"The Bureaucrat points to a player. Put the Bureaucrat\'s \'3 votes\' reminder by the chosen player\'s character token.","reminders":["3 votes"],"setup":false,"ability":"Each night, choose a player (not yourself): their vote counts as 3 votes tomorrow."},{"id":"thief","name":"Thief","edition":"tb","team":"traveler","firstNight":1,"firstNightReminder":"The Thief points to a player. Put the Thief\'s \'Negative vote\' reminder by the chosen player\'s character token.","otherNight":1,"otherNightReminder":"The Thief points to a player. Put the Thief\'s \'Negative vote\' reminder by the chosen player\'s character token.","reminders":["Negative vote"],"setup":false,"ability":"Each night, choose a player (not yourself): their vote counts negatively tomorrow."},{"id":"gunslinger","name":"Gunslinger","edition":"tb","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Each day, after the 1st vote has been tallied, you may choose a player that voted: they die."},{"id":"scapegoat","name":"Scapegoat","edition":"tb","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"If a player of your alignment is executed, you might be executed instead."},{"id":"beggar","name":"Beggar","edition":"tb","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"You must use a vote token to vote. Dead players may choose to give you theirs. If so, you learn their alignment. You are sober & healthy."},{"id":"grandmother","name":"Grandmother","edition":"bmr","team":"townsfolk","firstNight":40,"firstNightReminder":"Show the marked character token. Point to the marked player.","otherNight":51,"otherNightReminder":"If the Grandmother’s grandchild was killed by the Demon tonight: The Grandmother dies.","reminders":["Grandchild"],"setup":false,"ability":"You start knowing a good player & their character. If the Demon kills them, you die too."},{"id":"sailor","name":"Sailor","edition":"bmr","team":"townsfolk","firstNight":11,"firstNightReminder":"The Sailor points to a living player. Either the Sailor, or the chosen player, is drunk.","otherNight":4,"otherNightReminder":"The previously drunk player is no longer drunk. The Sailor points to a living player. Either the Sailor, or the chosen player, is drunk.","reminders":["Drunk"],"setup":false,"ability":"Each night, choose an alive player: either you or they are drunk until dusk. You can\'t die."},{"id":"chambermaid","name":"Chambermaid","edition":"bmr","team":"townsfolk","firstNight":51,"firstNightReminder":"The Chambermaid points to two players. Show the number signal (0, 1, 2, …) for how many of those players wake tonight for their ability.","otherNight":70,"otherNightReminder":"The Chambermaid points to two players. Show the number signal (0, 1, 2, …) for how many of those players wake tonight for their ability.","reminders":[],"setup":false,"ability":"Each night, choose 2 alive players (not yourself): you learn how many woke tonight due to their ability."},{"id":"exorcist","name":"Exorcist","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":21,"otherNightReminder":"The Exorcist points to a player, different from the previous night. If that player is the Demon: Wake the Demon. Show the Exorcist token. Point to the Exorcist. The Demon does not act tonight.","reminders":["Chosen"],"setup":false,"ability":"Each night*, choose a player (different to last night): the Demon, if chosen, learns who you are then doesn\'t wake tonight."},{"id":"innkeeper","name":"Innkeeper","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":9,"otherNightReminder":"The previously protected and drunk players lose those markers. The Innkeeper points to two players. Those players are protected. One is drunk.","reminders":["Protected","Drunk"],"setup":false,"ability":"Each night*, choose 2 players: they can\'t die tonight, but 1 is drunk until dusk."},{"id":"gambler","name":"Gambler","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":10,"otherNightReminder":"The Gambler points to a player, and a character on their sheet. If incorrect, the Gambler dies.","reminders":["Dead"],"setup":false,"ability":"Each night*, choose a player & guess their character: if you guess wrong, you die."},{"id":"gossip","name":"Gossip","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":38,"otherNightReminder":"If the Gossip’s public statement was true: Choose a player not protected from dying tonight. That player dies.","reminders":["Dead"],"setup":false,"ability":"Each day, you may make a public statement. Tonight, if it was true, a player dies."},{"id":"courtier","name":"Courtier","edition":"bmr","team":"townsfolk","firstNight":19,"firstNightReminder":"The Courtier either shows a \'no\' head signal, or points to a character on the sheet. If the Courtier used their ability: If that character is in play, that player is drunk.","otherNight":8,"otherNightReminder":"Reduce the remaining number of days the marked player is poisoned. If the Courtier has not yet used their ability: The Courtier either shows a \'no\' head signal, or points to a character on the sheet. If the Courtier used their ability: If that character is in play, that player is drunk.","reminders":["Drunk 3","Drunk 2","Drunk 1","No ability"],"setup":false,"ability":"Once per game, at night, choose a character: they are drunk for 3 nights & 3 days."},{"id":"professor","name":"Professor","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":43,"otherNightReminder":"If the Professor has not used their ability: The Professor either shakes their head no, or points to a player. If that player is a Townsfolk, they are now alive.","reminders":["Alive","No ability"],"setup":false,"ability":"Once per game, at night*, choose a dead player: if they are a Townsfolk, they are resurrected."},{"id":"minstrel","name":"Minstrel","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["Everyone drunk"],"setup":false,"ability":"When a Minion dies by execution, all other players (except Travellers) are drunk until dusk tomorrow."},{"id":"tealady","name":"Tea Lady","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["Can not die"],"setup":false,"ability":"If both your alive neighbours are good, they can\'t die."},{"id":"pacifist","name":"Pacifist","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Executed good players might not die."},{"id":"fool","name":"Fool","edition":"bmr","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["No ability"],"setup":false,"ability":"The first time you die, you don\'t."},{"id":"tinker","name":"Tinker","edition":"bmr","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":49,"otherNightReminder":"The Tinker might die.","reminders":["Dead"],"setup":false,"ability":"You might die at any time."},{"id":"moonchild","name":"Moonchild","edition":"bmr","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":50,"otherNightReminder":"If the Moonchild used their ability to target a player today: If that player is good, they die.","reminders":["Dead"],"setup":false,"ability":"When you learn that you died, publicly choose 1 alive player. Tonight, if it was a good player, they die."},{"id":"goon","name":"Goon","edition":"bmr","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["Drunk"],"setup":false,"ability":"Each night, the 1st player to choose you with their ability is drunk until dusk. You become their alignment."},{"id":"lunatic","name":"Lunatic","edition":"bmr","team":"outsider","firstNight":8,"firstNightReminder":"If 7 or more players: Show the Lunatic a number of arbitrary \'Minions\', players equal to the number of Minions in play. Show 3 character tokens of arbitrary good characters. If the token received by the Lunatic is a Demon that would wake tonight: Allow the Lunatic to do the Demon actions. Place their \'attack\' markers. Wake the Demon. Show the Demon’s real character token. Show them the Lunatic player. If the Lunatic attacked players: Show the real demon each marked player. Remove any Lunatic \'attack\' markers.","otherNight":20,"otherNightReminder":"Allow the Lunatic to do the actions of the Demon. Place their \'attack\' markers. If the Lunatic selected players: Wake the Demon. Show the \'attack\' marker, then point to each marked player. Remove any Lunatic \'attack\' markers.","reminders":["Attack 1","Attack 2","Attack 3"],"setup":false,"ability":"You think you are a Demon, but you are not. The Demon knows who you are & who you choose at night."},{"id":"godfather","name":"Godfather","edition":"bmr","team":"minion","firstNight":21,"firstNightReminder":"Show each of the Outsider tokens in play.","otherNight":37,"otherNightReminder":"If an Outsider died today: The Godfather points to a player. That player dies.","reminders":["Died today","Dead"],"setup":true,"ability":"You start knowing which Outsiders are in play. If 1 died today, choose a player tonight: they die. [−1 or +1 Outsider]"},{"id":"devilsadvocate","name":"Devil\'s Advocate","edition":"bmr","team":"minion","firstNight":22,"firstNightReminder":"The Devil’s Advocate points to a living player. That player survives execution tomorrow.","otherNight":13,"otherNightReminder":"The Devil’s Advocate points to a living player, different from the previous night. That player survives execution tomorrow.","reminders":["Survives execution"],"setup":false,"ability":"Each night, choose a living player (different to last night): if executed tomorrow, they don\'t die."},{"id":"assassin","name":"Assassin","edition":"bmr","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":36,"otherNightReminder":"If the Assassin has not yet used their ability: The Assassin either shows the \'no\' head signal, or points to a player. That player dies.","reminders":["Dead","No ability"],"setup":false,"ability":"Once per game, at night*, choose a player: they die, even if for some reason they could not."},{"id":"mastermind","name":"Mastermind","edition":"bmr","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"If the Demon dies by execution (ending the game), play for 1 more day. If a player is then executed, their team loses."},{"id":"zombuul","name":"Zombuul","edition":"bmr","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":25,"otherNightReminder":"If no-one died during the day: The Zombuul points to a player. That player dies.","reminders":["Died today","Dead"],"setup":false,"ability":"Each night*, if no-one died today, choose a player: they die. The 1st time you die, you live but register as dead."},{"id":"pukka","name":"Pukka","edition":"bmr","team":"demon","firstNight":28,"firstNightReminder":"The Pukka points to a player. That player is poisoned.","otherNight":26,"otherNightReminder":"The Pukka points to a player. That player is poisoned. The previously poisoned player dies. ","reminders":["Poisoned","Dead"],"setup":false,"ability":"Each night, choose a player: they are poisoned. The previously poisoned player dies then becomes healthy."},{"id":"shabaloth","name":"Shabaloth","edition":"bmr","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":27,"otherNightReminder":"One player that the Shabaloth chose the previous night might be resurrected. The Shabaloth points to two players. Those players die.","reminders":["Dead","Alive"],"setup":false,"ability":"Each night*, choose 2 players: they die. A dead player you chose last night might be regurgitated."},{"id":"po","name":"Po","edition":"bmr","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":28,"otherNightReminder":"If the Po chose no-one the previous night: The Po points to three players. Otherwise: The Po either shows the \'no\' head signal , or points to a player. Chosen players die","reminders":["Dead","3 attacks"],"setup":false,"ability":"Each night*, you may choose a player: they die. If your last choice was no-one, choose 3 players tonight."},{"id":"apprentice","name":"Apprentice","edition":"bmr","team":"traveler","firstNight":1,"firstNightReminder":"Show the Apprentice the \'You are\' card, then a Townsfolk or Minion token. In the Grimoire, replace the Apprentice token with that character token, and put the Apprentice\'s \'Is the Apprentice\' reminder by that character token.","otherNight":0,"otherNightReminder":"","reminders":["Is the Apprentice"],"setup":false,"ability":"On your 1st night, you gain a Townsfolk ability (if good), or a Minion ability (if evil)."},{"id":"matron","name":"Matron","edition":"bmr","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Each day, you may choose up to 3 sets of 2 players to swap seats. Players may not leave their seats to talk in private."},{"id":"judge","name":"Judge","edition":"bmr","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["No ability"],"setup":false,"ability":"Once per game, if another player nominated, you may choose to force the current execution to pass or fail."},{"id":"bishop","name":"Bishop","edition":"bmr","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["Nominate good","Nominate evil"],"setup":false,"ability":"Only the Storyteller can nominate. At least 1 opposite player must be nominated each day."},{"id":"voudon","name":"Voudon","edition":"bmr","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Only you and the dead can vote. They don\'t need a vote token to do so. A 50% majority is not required."},{"id":"clockmaker","name":"Clockmaker","edition":"snv","team":"townsfolk","firstNight":41,"firstNightReminder":"Show the hand signal for the number (1, 2, 3, etc.) of places from Demon to closest Minion.","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"You start knowing how many steps from the Demon to its nearest Minion."},{"id":"dreamer","name":"Dreamer","edition":"snv","team":"townsfolk","firstNight":42,"firstNightReminder":"The Dreamer points to a player. Show 1 good and 1 evil character token; one of these is correct.","otherNight":56,"otherNightReminder":"The Dreamer points to a player. Show 1 good and 1 evil character token; one of these is correct.","reminders":[],"setup":false,"ability":"Each night, choose a player (not yourself or Travellers): you learn 1 good and 1 evil character, 1 of which is correct."},{"id":"snakecharmer","name":"Snake Charmer","edition":"snv","team":"townsfolk","firstNight":20,"firstNightReminder":"The Snake Charmer points to a player. If that player is the Demon: swap the Demon and Snake Charmer character and alignments. Wake each player to inform them of their new role and alignment. The new Snake Charmer is poisoned.","otherNight":11,"otherNightReminder":"The Snake Charmer points to a player. If that player is the Demon: swap the Demon and Snake Charmer character and alignments. Wake each player to inform them of their new role and alignment. The new Snake Charmer is poisoned.","reminders":["Poisoned"],"setup":false,"ability":"Each night, choose an alive player: a chosen Demon swaps characters & alignments with you & is then poisoned."},{"id":"mathematician","name":"Mathematician","edition":"snv","team":"townsfolk","firstNight":52,"firstNightReminder":"Show the hand signal for the number (0, 1, 2, etc.) of players whose ability malfunctioned due to other abilities.","otherNight":71,"otherNightReminder":"Show the hand signal for the number (0, 1, 2, etc.) of players whose ability malfunctioned due to other abilities.","reminders":["Abnormal"],"setup":false,"ability":"Each night, you learn how many players’ abilities worked abnormally (since dawn) due to another character\'s ability."},{"id":"flowergirl","name":"Flowergirl","edition":"snv","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":57,"otherNightReminder":"Nod \'yes\' or shake head \'no\' for whether the Demon voted today. Place the \'Demon not voted\' marker (remove \'Demon voted\', if any).","reminders":["Demon voted","Demon not voted"],"setup":false,"ability":"Each night*, you learn if a Demon voted today."},{"id":"towncrier","name":"Town Crier","edition":"snv","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":58,"otherNightReminder":"Nod \'yes\' or shake head \'no\' for whether a Minion nominated today. Place the \'Minion not nominated\' marker (remove \'Minion nominated\', if any).","reminders":["Minions not nominated","Minion nominated"],"setup":false,"ability":"Each night*, you learn if a Minion nominated today."},{"id":"oracle","name":"Oracle","edition":"snv","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":59,"otherNightReminder":"Show the hand signal for the number (0, 1, 2, etc.) of dead evil players.","reminders":[],"setup":false,"ability":"Each night*, you learn how many dead players are evil."},{"id":"savant","name":"Savant","edition":"snv","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Each day, you may visit the Storyteller to learn 2 things in private: 1 is true & 1 is false."},{"id":"seamstress","name":"Seamstress","edition":"snv","team":"townsfolk","firstNight":43,"firstNightReminder":"The Seamstress either shows a \'no\' head signal, or points to two other players. If the Seamstress chose players , nod \'yes\' or shake \'no\' for whether they are of same alignment.","otherNight":60,"otherNightReminder":"If the Seamstress has not yet used their ability: the Seamstress either shows a \'no\' head signal, or points to two other players. If the Seamstress chose players , nod \'yes\' or shake \'no\' for whether they are of same alignment.","reminders":["No ability"],"setup":false,"ability":"Once per game, at night, choose 2 players (not yourself): you learn if they are the same alignment."},{"id":"philosopher","name":"Philosopher","edition":"snv","team":"townsfolk","firstNight":2,"firstNightReminder":"The Philosopher either shows a \'no\' head signal, or points to a good character on their sheet. If they chose a character: Swap the out-of-play character token with the Philosopher token and add the \'Is the Philosopher\' reminder. If the character is in play, place the drunk marker by that player.","otherNight":2,"otherNightReminder":"If the Philosopher has not used their ability: the Philosopher either shows a \'no\' head signal, or points to a good character on their sheet. If they chose a character: Swap the out-of-play character token with the Philosopher token and add the \'Is the Philosopher\' reminder. If the character is in play, place the drunk marker by that player.","reminders":["Drunk","Is the Philosopher"],"setup":false,"ability":"Once per game, at night, choose a good character: gain that ability. If this character is in play, they are drunk."},{"id":"artist","name":"Artist","edition":"snv","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["No ability"],"setup":false,"ability":"Once per game, during the day, privately ask the Storyteller any yes/no question."},{"id":"juggler","name":"Juggler","edition":"snv","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":61,"otherNightReminder":"If today was the Juggler’s first day: Show the hand signal for the number (0, 1, 2, etc.) of \'Correct\' markers. Remove markers.","reminders":["Correct"],"setup":false,"ability":"On your 1st day, publicly guess up to 5 players\' characters. That night, you learn how many you got correct."},{"id":"sage","name":"Sage","edition":"snv","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":42,"otherNightReminder":"If the Sage was killed by a Demon: Point to two players, one of which is that Demon.","reminders":[],"setup":false,"ability":"If the Demon kills you, you learn that it is 1 of 2 players."},{"id":"mutant","name":"Mutant","edition":"snv","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"If you are “mad” about being an Outsider, you might be executed."},{"id":"sweetheart","name":"Sweetheart","edition":"snv","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":41,"otherNightReminder":"Choose a player that is drunk.","reminders":["Drunk"],"setup":false,"ability":"When you die, 1 player is drunk from now on."},{"id":"barber","name":"Barber","edition":"snv","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":40,"otherNightReminder":"If the Barber died today: Wake the Demon. Show the \'This character selected you\' card, then Barber token. The Demon either shows a \'no\' head signal, or points to 2 players. If they chose players: Swap the character tokens. Wake each player. Show \'You are\', then their new character token.","reminders":["Haircuts tonight"],"setup":false,"ability":"If you died today or tonight, the Demon may choose 2 players (not another Demon) to swap characters."},{"id":"klutz","name":"Klutz","edition":"snv","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"When you learn that you died, publicly choose 1 alive player: if they are evil, your team loses."},{"id":"eviltwin","name":"Evil Twin","edition":"snv","team":"minion","firstNight":23,"firstNightReminder":"Wake the Evil Twin and their twin. Confirm that they have acknowledged each other. Point to the Evil Twin. Show their Evil Twin token to the twin player. Point to the twin. Show their character token to the Evil Twin player.","otherNight":0,"otherNightReminder":"","reminders":["Twin"],"setup":false,"ability":"You & an opposing player know each other. If the good player is executed, evil wins. Good can\'t win if you both live."},{"id":"witch","name":"Witch","edition":"snv","team":"minion","firstNight":24,"firstNightReminder":"The Witch points to a player. If that player nominates tomorrow they die immediately.","otherNight":14,"otherNightReminder":"If there are 4 or more players alive: The Witch points to a player. If that player nominates tomorrow they die immediately.","reminders":["Cursed"],"setup":false,"ability":"Each night, choose a player: if they nominate tomorrow, they die. If just 3 players live, you lose this ability."},{"id":"cerenovus","name":"Cerenovus","edition":"snv","team":"minion","firstNight":25,"firstNightReminder":"The Cerenovus points to a player, then to a character on their sheet. Wake that player. Show the \'This character selected you\' card, then the Cerenovus token. Show the selected character token. If the player is not mad about being that character tomorrow, they can be executed.","otherNight":15,"otherNightReminder":"The Cerenovus points to a player, then to a character on their sheet. Wake that player. Show the \'This character selected you\' card, then the Cerenovus token. Show the selected character token. If the player is not mad about being that character tomorrow, they can be executed.","reminders":["Mad"],"setup":false,"ability":"Each night, choose a player & a good character: they are “mad” they are this character tomorrow, or might be executed."},{"id":"pithag","name":"Pit-Hag","edition":"snv","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":16,"otherNightReminder":"The Pit-Hag points to a player and a character on the sheet. If this character is not in play, wake that player and show them the \'You are\' card and the relevant character token. If the character is in play, nothing happens.","reminders":[],"setup":false,"ability":"Each night*, choose a player & a character they become (if not-in-play). If a Demon is made, deaths tonight are arbitrary."},{"id":"fanggu","name":"Fang Gu","edition":"snv","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":29,"otherNightReminder":"The Fang Gu points to a player. That player dies. Or, if that player was an Outsider and there are no other Fang Gu in play: The Fang Gu dies instead of the chosen player. The chosen player is now an evil Fang Gu. Wake the new Fang Gu. Show the \'You are\' card, then the Fang Gu token. Show the \'You are\' card, then the thumb-down \'evil\' hand sign.","reminders":["Dead","Once"],"setup":true,"ability":"Each night*, choose a player: they die. The 1st Outsider this kills becomes an evil Fang Gu & you die instead. [+1 Outsider]"},{"id":"vigormortis","name":"Vigormortis","edition":"snv","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":32,"otherNightReminder":"The Vigormortis points to a player. That player dies. If a Minion, they keep their ability and one of their Townsfolk neighbours is poisoned.","reminders":["Dead","Has ability","Poisoned"],"setup":true,"ability":"Each night*, choose a player: they die. Minions you kill keep their ability & poison 1 Townsfolk neighbour. [−1 Outsider]"},{"id":"nodashii","name":"No Dashii","edition":"snv","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":30,"otherNightReminder":"The No Dashii points to a player. That player dies.","reminders":["Dead","Poisoned"],"setup":false,"ability":"Each night*, choose a player: they die. Your 2 Townsfolk neighbours are poisoned."},{"id":"vortox","name":"Vortox","edition":"snv","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":31,"otherNightReminder":"The Vortox points to a player. That player dies.","reminders":["Dead"],"setup":false,"ability":"Each night*, choose a player: they die. Townsfolk abilities yield false info. Each day, if no-one is executed, evil wins."},{"id":"barista","name":"Barista","edition":"snv","team":"traveler","firstNight":1,"firstNightReminder":"Choose a player, wake them and tell them which Barista power is affecting them. Treat them accordingly (sober/healthy/true info or activate their ability twice).","otherNight":1,"otherNightReminder":"Choose a player, wake them and tell them which Barista power is affecting them. Treat them accordingly (sober/healthy/true info or activate their ability twice).","reminders":["Sober & Healthy","Ability twice"],"setup":false,"ability":"Each night, until dusk, 1) a player becomes sober, healthy and gets true info, or 2) their ability works twice. They learn which."},{"id":"harlot","name":"Harlot","edition":"snv","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":1,"otherNightReminder":"The Harlot points at any player. Then, put the Harlot to sleep. Wake the chosen player, show them the \'This character selected you\' token, then the Harlot token. That player either nods their head yes or shakes their head no. If they nodded their head yes, wake the Harlot and show them the chosen player\'s character token. Then, you may decide that both players die.","reminders":["Dead"],"setup":false,"ability":"Each night*, choose a living player: if they agree, you learn their character, but you both might die."},{"id":"butcher","name":"Butcher","edition":"snv","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Each day, after the 1st execution, you may nominate again."},{"id":"bonecollector","name":"Bone Collector","edition":"snv","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":1,"otherNightReminder":"The Bone Collector either shakes their head no or points at any dead player. If they pointed at any dead player, put the Bone Collector\'s \'Has Ability\' reminder by the chosen player\'s character token. (They may need to be woken tonight to use it.)","reminders":["No ability","Has ability"],"setup":false,"ability":"Once per game, at night, choose a dead player: they regain their ability until dusk."},{"id":"deviant","name":"Deviant","edition":"snv","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"If you were funny today, you cannot die by exile."},{"id":"noble","name":"Noble","edition":"","team":"townsfolk","firstNight":44,"firstNightReminder":"Point to 3 players including one evil player, in no particular order.","otherNight":0,"otherNightReminder":"","reminders":["Seen"],"setup":false,"ability":"You start knowing 3 players, 1 and only 1 of which is evil."},{"id":"bountyhunter","name":"Bounty Hunter","edition":"","team":"townsfolk","firstNight":46,"firstNightReminder":"Point to 1 evil player. Wake the townsfolk who is evil and show them the \'You are\' card and the thumbs down evil sign.","otherNight":64,"otherNightReminder":"If the known evil player has died, point to another evil player. ","reminders":["Known"],"setup":true,"ability":"You start knowing 1 evil player. If the player you know dies, you learn another evil player tonight. [1 Townsfolk is evil]"},{"id":"pixie","name":"Pixie","edition":"","team":"townsfolk","firstNight":29,"firstNightReminder":"Show the Pixie 1 in-play Townsfolk character token.","otherNight":0,"otherNightReminder":"","reminders":["Mad","Has ability"],"setup":false,"ability":"You start knowing 1 in-play Townsfolk. If you were mad that you were this character, you gain their ability when they die."},{"id":"general","name":"General","edition":"","team":"townsfolk","firstNight":50,"firstNightReminder":"Show the General thumbs up for good winning, thumbs down for evil winning or thumb to the side for neither.","otherNight":69,"otherNightReminder":"Show the General thumbs up for good winning, thumbs down for evil winning or thumb to the side for neither.","reminders":[],"setup":false,"ability":"Each night, you learn which alignment the Storyteller believes is winning: good, evil, or neither."},{"id":"preacher","name":"Preacher","edition":"","team":"townsfolk","firstNight":14,"firstNightReminder":"The Preacher chooses a player. If a Minion is chosen, wake the Minion and show the \'This character selected you\' card and then the Preacher token.","otherNight":6,"otherNightReminder":"The Preacher chooses a player. If a Minion is chosen, wake the Minion and show the \'This character selected you\' card and then the Preacher token.","reminders":["At a sermon"],"setup":false,"ability":"Each night, choose a player: a Minion, if chosen, learns this. All chosen Minions have no ability."},{"id":"king","name":"King","edition":"","team":"townsfolk","firstNight":10,"firstNightReminder":"Wake the Demon, show them the \'This character selected you\' card, show the King token and point to the King player.","otherNight":63,"otherNightReminder":"If there are more dead than living, show the King a character token of a living player.","reminders":[],"setup":false,"ability":"Each night, if the dead outnumber the living, you learn 1 alive character. The Demon knows who you are."},{"id":"balloonist","name":"Balloonist","edition":"","team":"townsfolk","firstNight":45,"firstNightReminder":"Choose a character type. Point to a player whose character is of that type. Place the Balloonist\'s Seen reminder next to that character.","otherNight":62,"otherNightReminder":"Choose a character type that does not yet have a Seen reminder next to a character of that type. Point to a player whose character is of that type, if there are any. Place the Balloonist\'s Seen reminder next to that character.","reminders":["Seen Townsfolk","Seen Outsider","Seen Minion","Seen Demon","Seen Traveller"],"setup":true,"ability":"Each night, you learn 1 player of each character type, until there are no more types to learn. [+1 Outsider]"},{"id":"cultleader","name":"Cult Leader","edition":"","team":"townsfolk","firstNight":48,"firstNightReminder":"If the cult leader changed alignment, show them the thumbs up good signal of the thumbs down evil signal accordingly.","otherNight":66,"otherNightReminder":"If the cult leader changed alignment, show them the thumbs up good signal of the thumbs down evil signal accordingly.","reminders":[],"setup":false,"ability":"Each night, you become the alignment of an alive neighbour. If all good players choose to join your cult, your team wins."},{"id":"lycanthrope","name":"Lycanthrope","edition":"","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":22,"otherNightReminder":"The Lycanthrope points to a living player: if good, they die and no one else can die tonight.","reminders":["Dead"],"setup":false,"ability":"Each night*, choose a living player: if good, they die, but they are the only player that can die tonight."},{"id":"amnesiac","name":"Amnesiac","edition":"","team":"townsfolk","firstNight":32,"firstNightReminder":"Decide the Amnesiac\'s entire ability. If the Amnesiac\'s ability causes them to wake tonight: Wake the Amnesiac and run their ability.","otherNight":47,"otherNightReminder":"If the Amnesiac\'s ability causes them to wake tonight: Wake the Amnesiac and run their ability.","reminders":["?"],"setup":false,"ability":"You do not know what your ability is. Each day, privately guess what it is: you learn how accurate you are."},{"id":"nightwatchman","name":"Nightwatchman","edition":"","team":"townsfolk","firstNight":47,"firstNightReminder":"The Nightwatchman may point to a player. Wake that player, show the \'This character selected you\' card and the Nightwatchman token, then point to the Nightwatchman player.","otherNight":65,"otherNightReminder":"The Nightwatchman may point to a player. Wake that player, show the \'This character selected you\' card and the Nightwatchman token, then point to the Nightwatchman player.","reminders":["No ability"],"setup":false,"ability":"Once per game, at night, choose a player: they learn who you are."},{"id":"engineer","name":"Engineer","edition":"","team":"townsfolk","firstNight":13,"firstNightReminder":"The Engineer shows a \'no\' head signal, or points to a Demon or points to the relevant number of Minions. If the Engineer chose characters, replace the Demon or Minions with the choices, then wake the relevant players and show them the You are card and the relevant character tokens.","otherNight":5,"otherNightReminder":"The Engineer shows a \'no\' head signal, or points to a Demon or points to the relevant number of Minions. If the Engineer chose characters, replace the Demon or Minions with the choices, then wake the relevant players and show them the \'You are\' card and the relevant character tokens.","reminders":["No ability"],"setup":false,"ability":"Once per game, at night, choose which Minions or which Demon is in play."},{"id":"fisherman","name":"Fisherman","edition":"","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["No ability"],"setup":false,"ability":"Once per game, during the day, visit the Storyteller for some advice to help you win."},{"id":"huntsman","name":"Huntsman","edition":"","team":"townsfolk","firstNight":30,"firstNightReminder":"The Huntsman shakes their head \'no\' or points to a player. If they point to the Damsel, wake that player, show the \'You are\' card and a not-in-play character token.","otherNight":45,"otherNightReminder":"The Huntsman shakes their head \'no\' or points to a player. If they point to the Damsel, wake that player, show the \'You are\' card and a not-in-play character token.","reminders":["No ability"],"setup":true,"ability":"Once per game, at night, choose a living player: the Damsel, if chosen, becomes a not-in-play Townsfolk. [+the Damsel]"},{"id":"alchemist","name":"Alchemist","edition":"","team":"townsfolk","firstNight":3,"firstNightReminder":"Show the Alchemist a not-in-play Minion token","otherNight":0,"otherNightReminder":"","reminders":[],"remindersGlobal":["Is the Alchemist"],"setup":false,"ability":"You have a not-in-play Minion ability."},{"id":"farmer","name":"Farmer","edition":"","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":48,"otherNightReminder":"If a Farmer died tonight, choose another good player and make them the Farmer. Wake this player, show them the \'You are\' card and the Farmer character token.","reminders":[],"setup":false,"ability":"If you die at night, an alive good player becomes a Farmer."},{"id":"magician","name":"Magician","edition":"","team":"townsfolk","firstNight":5,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"The Demon thinks you are a Minion. Minions think you are a Demon."},{"id":"choirboy","name":"Choirboy","edition":"","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":44,"otherNightReminder":"If the King was killed by the Demon, wake the Choirboy and point to the Demon player.","reminders":[],"setup":true,"ability":"If the Demon kills the King, you learn which player is the Demon. [+ the King]"},{"id":"poppygrower","name":"Poppy Grower","edition":"","team":"townsfolk","firstNight":4,"firstNightReminder":"Do not inform the Demon/Minions who each other are","otherNight":3,"otherNightReminder":"If the Poppy Grower has died, show the Minions/Demon who each other are.","reminders":["Evil wakes"],"setup":false,"ability":"Minions & Demons do not know each other. If you die, they learn who each other are that night."},{"id":"atheist","name":"Atheist","edition":"","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":true,"ability":"The Storyteller can break the game rules & if executed, good wins, even if you are dead. [No evil characters]"},{"id":"cannibal","name":"Cannibal","edition":"","team":"townsfolk","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["Poisoned","Died today"],"setup":false,"ability":"You have the ability of the recently killed executee. If they are evil, you are poisoned until a good player dies by execution."},{"id":"steward","name":"Steward","edition":"","team":"townsfolk","firstNight":33.3,"firstNightReminder":"Point to the marked player.","otherNight":0,"otherNightReminder":"","reminders":["Known"],"setup":false,"ability":"You start knowing 1 good player."},{"id":"knight","name":"Knight","edition":"","team":"townsfolk","firstNight":33.2,"firstNightReminder":"Point to the 2 marked players.","otherNight":0,"otherNightReminder":"","reminders":["Known"],"setup":false,"ability":"You start knowing 2 players that are not the Demon."},{"id":"highpriestess","name":"High Priestess","edition":"","team":"townsfolk","firstNight":50.2,"otherNight":69.2,"firstNightReminder":"Each night, wake the High Priestess. Point to a player. Put the High Priestess to sleep.","otherNightReminder":"Each night, wake the High Priestess. Point to a player. Put the High Priestess to sleep.","reminders":["Friend"],"setup":false,"ability":"Each night, learn which player the Storyteller believes you should talk to most."},{"id":"snitch","name":"Snitch","edition":"","team":"outsider","firstNight":7,"firstNightReminder":"After Minion info wake each Minion and show them three not-in-play character tokens. These may be the same or different to each other and the ones shown to the Demon.","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Minions start knowing 3 not-in-play characters."},{"id":"acrobat","name":"Acrobat","edition":"","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":39,"otherNightReminder":"If a good living neighbour is drunk or poisoned, the Acrobat player dies.","reminders":["Dead"],"setup":false,"ability":"Each night*, if either good living neighbour is drunk or poisoned, you die."},{"id":"puzzlemaster","name":"Puzzlemaster","edition":"","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["Drunk","Guess used"],"setup":false,"ability":"1 player is drunk, even if you die. If you guess (once) who it is, learn the Demon player, but guess wrong & get false info."},{"id":"heretic","name":"Heretic","edition":"","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Whoever wins, loses & whoever loses, wins, even if you are dead."},{"id":"damsel","name":"Damsel","edition":"","team":"outsider","firstNight":31,"firstNightReminder":"Wake all the Minions, show them the \'This character selected you\' card and the Damsel token.","otherNight":46,"otherNightReminder":"If selected by the Huntsman, wake the Damsel, show \'You are\' card and a not-in-play Townsfolk token.","reminders":["Guess used"],"setup":false,"ability":"All Minions know you are in play. If a Minion publicly guesses you (once), your team loses."},{"id":"golem","name":"Golem","edition":"","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["Can not nominate"],"setup":false,"ability":"You may only nominate once per game. When you do, if the nominee is not the Demon, they die."},{"id":"politician","name":"Politician","edition":"","team":"outsider","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"If you were the player most responsible for your team losing, you change alignment & win, even if dead."},{"id":"plaguedoctor","reminders":["Storyteller Ability"],"setup":false,"name":"Plague Doctor","team":"outsider","ability":"If you die, the Storyteller gains a not-in-play Minion ability."},{"id":"widow","name":"Widow","edition":"","team":"minion","firstNight":18,"firstNightReminder":"Show the Grimoire to the Widow for as long as they need. The Widow points to a player. That player is poisoned. Wake a good player. Show the \'These characters are in play\' card, then the Widow character token.","otherNight":0,"otherNightReminder":"","reminders":["Poisoned"],"remindersGlobal":["Knows"],"setup":false,"ability":"On your 1st night, look at the Grimoire and choose a player: they are poisoned. 1 good player knows a Widow is in play."},{"id":"fearmonger","name":"Fearmonger","edition":"","team":"minion","firstNight":26,"firstNightReminder":"The Fearmonger points to a player. Place the Fear token next to that player and announce that a new player has been selected with the Fearmonger ability.","otherNight":17,"otherNightReminder":"The Fearmonger points to a player. If different from the previous night, place the Fear token next to that player and announce that a new player has been selected with the Fearmonger ability.","reminders":["Fear"],"setup":false,"ability":"Each night, choose a player. If you nominate & execute them, their team loses. All players know if you choose a new player."},{"id":"psychopath","name":"Psychopath","edition":"","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Each day, before nominations, you may publicly choose a player: they die. If executed, you only die if you lose roshambo."},{"id":"goblin","name":"Goblin","edition":"","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["Claimed"],"setup":false,"ability":"If you publicly claim to be the Goblin when nominated & are executed that day, your team wins."},{"id":"mephit","name":"Mephit","edition":"","team":"minion","firstNight":27,"firstNightReminder":"Show the Mephit their secret word.","otherNight":18,"otherNightReminder":"Wake the 1st good player that said the Mephit\'s secret word and show them the \'You are\' card and the thumbs down evil signal.","reminders":["Turns evil","No ability"],"setup":false,"ability":"You start knowing a secret word. The 1st good player to say this word becomes evil that night."},{"id":"mezepheles","name":"Mezepheles","edition":"","team":"minion","firstNight":27,"firstNightReminder":"Show the Mezepheles their secret word.","otherNight":18,"otherNightReminder":"Wake the 1st good player that said the Mezepheles\' secret word and show them the \'You are\' card and the thumbs down evil signal.","reminders":["Turns evil","No ability"],"setup":false,"ability":"You start knowing a secret word. The 1st good player to say this word becomes evil that night."},{"id":"marionette","name":"Marionette","edition":"","team":"minion","firstNight":12,"firstNightReminder":"Select one of the good players next to the Demon and place the Is the Marionette reminder token. Wake the Demon and show them the Marionette.","otherNight":0,"otherNightReminder":"","reminders":[],"remindersGlobal":["Is the Marionette"],"setup":true,"ability":"You think you are a good character but you are not. The Demon knows who you are. [You neighbour the Demon]"},{"id":"boomdandy","name":"Boomdandy","edition":"","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"If you are executed, all but 3 players die. 1 minute later, the player with the most players pointing at them dies."},{"id":"organgrinder","name":"Organ Grinder","edition":"","team":"minion","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":["About to die"],"setup":false,"ability":"All players keep their eyes closed when voting & the vote tally is secret. Votes for you only count if you vote."},{"id":"vizier","name":"Vizier","edition":"","team":"minion","firstNight":55,"firstNightReminder":"Announce \'The Vizier is in play\' and state which player they are.","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"All players know who you are. You can not die during the day. If good voted, you may choose to execute immediately."},{"id":"harpy","name":"Harpy","edition":"","team":"minion","firstNight":24.2,"firstNightReminder":"Select two players, one at a time.","otherNight":14.2,"otherNightReminder":"Select two players, one at a time.","reminders":["Mad","2nd"],"setup":false,"ability":"Each night, choose 2 players: tomorrow, the 1st player is mad that the 2nd is evil, or both might die."},{"id":"lilmonsta","name":"Lil\' Monsta","edition":"","team":"demon","firstNight":15,"firstNightReminder":"Wake all Minions together, allow them to vote by pointing at who they want to babysit Lil\' Monsta.","otherNight":35,"otherNightReminder":"Wake all Minions together, allow them to vote by pointing at who they want to babysit Lil\' Monsta. Choose a player, that player dies.","reminders":[],"remindersGlobal":["Is the Demon","Dead"],"setup":true,"ability":"Each night, Minions choose who babysits Lil\' Monsta\'s token & \\"is the Demon\\". A player dies each night*. [+1 Minion]"},{"id":"lleech","name":"Lleech","edition":"","team":"demon","firstNight":16,"firstNightReminder":"The Lleech points to a player. Place the Poisoned reminder token.","otherNight":34,"otherNightReminder":"The Lleech points to a player. That player dies.","reminders":["Dead","Poisoned"],"setup":false,"ability":"Each night*, choose a player: they die. You start by choosing an alive player: they are poisoned - you die if & only if they die."},{"id":"alhadikhia","name":"Al-Hadikhia","edition":"","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":33,"otherNightReminder":"The Al-Hadikhia chooses 3 players. Announce the first player, wake them to nod yes to live or shake head no to die, kill or resurrect accordingly, then put to sleep and announce the next player. If all 3 are alive after this, all 3 die.","reminders":["1","2","3","Chose death","Chose life"],"setup":false,"ability":"Each night*, choose 3 players (all players learn who): each silently chooses to live or die, but if all live, all die."},{"id":"legion","name":"Legion","edition":"","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":23,"otherNightReminder":"Choose a player, that player dies.","reminders":["Dead","About to die"],"setup":true,"ability":"Each night*, a player might die. Executions fail if only evil voted. You register as a Minion too. [Most players are Legion]"},{"id":"leviathan","name":"Leviathan","edition":"","team":"demon","firstNight":54,"firstNightReminder":"Place the Leviathan \'Day 1\' marker. Announce \'The Leviathan is in play; this is Day 1.\'","otherNight":73,"otherNightReminder":"Change the Leviathan Day reminder for the next day.","reminders":["Day 1","Day 2","Day 3","Day 4","Day 5","Good player executed"],"setup":false,"ability":"If more than 1 good player is executed, you win. All players know you are in play. After day 5, evil wins."},{"id":"riot","name":"Riot","edition":"","team":"demon","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":true,"ability":"Nominees die, but may nominate again immediately (on day 3, they must). After day 3, evil wins. [All Minions are Riot]"},{"id":"ojo","firstNight":0,"otherNight":32.2,"otherNightReminder":"The Ojo points to a character on the sheet; if in play, that player dies. If it is not in play, the Storyteller chooses who dies instead.","reminders":["Dead"],"name":"Ojo","team":"demon","ability":"Each night*, choose a character: they die. If they are not in play, the Storyteller chooses who dies."},{"id":"kazali","firstNight":2.1,"firstNightReminder":"The Kazali points to a player and a Minion on the character sheet. They do this for as many Minions as should be in play. Change those players\' tokens to the chosen Minion tokens in the Grim. Wake those players, show them the \'You Are\' card, the Minions they have become, and a thumbs down.","otherNight":35.1,"otherNightReminder":"The Kazali points to a player. That player dies","reminders":["Dead"],"setup":true,"name":"Kazali","team":"demon","ability":"Each night*, choose a player: they die. [You choose which players are Minions. -? to +? Outsiders]"},{"id":"gangster","name":"Gangster","edition":"","team":"traveler","firstNight":0,"firstNightReminder":"","otherNight":0,"otherNightReminder":"","reminders":[],"setup":false,"ability":"Once per day, you may choose to kill an alive neighbour, if your other alive neighbour agrees."},{"id":"saintnick","edition":"custom","firstNight":0,"firstNightReminder":"","otherNight":28,"otherNightReminder":"Choose two alive players to alive players to recieve a gift.","reminders":["Gift"],"remindersGlobal":[],"setup":true,"name":"Saint Nick","team":"townsfolk","ability":"Each night* you choose two alive players to recieve a gift."},{"id":"grinch","edition":"custom","firstNight":0,"firstNightReminder":"","otherNight":29,"otherNightReminder":"Find out who recieved Saint Nicks Gifts tonight and switch one for a bomb","reminders":["Bomb","Is The Grinch"],"remindersGlobal":[],"setup":true,"name":"Grinch","team":"fabled","ability":"A minion is selected to be the Grinch, Each night* the minion is woken and selects one of Saint Nick\'s gifts to switch out for a bomb"},{"id":"septemberchild","edition":"custom","firstNight":12,"firstNightReminder":"","otherNight":5,"otherNightReminder":"Wake September child for the ability they have, do not tell them what their ability is.","reminders":["Has Ability"],"remindersGlobal":[],"setup":true,"name":"September Child","team":"townsfolk","ability":"Each night* You have an in play ability. One additional September Child is drunk or evil [+0-2 September Child]"},{"id":"badger","edition":"custom","firstNight":0,"firstNightReminder":"","otherNight":23,"otherNightReminder":"Choose a player, that player dies.","reminders":["Dead"],"remindersGlobal":[],"setup":true,"name":"Badger","team":"demon","ability":"Each night*, a player might die. Dead players become evil Badgers. Good only wins if the Storyteller is executed [No evil characters]"},{"id":"sculptor_fall_of_rome","firstNightReminder":"Point to a player. Place the SCULPTURE token next to that player.","otherNightReminder":"If the player with the SCULPTURE token nominated today. Show the Sculptor an evil thumbs down sign if the nominated player is evil. Otherwise: show the Sculptor a good thumbs up sign. Remove the NOMINATED token (if any).","reminders":["Sculpture","Nominated"],"name":"Sculptor","team":"townsfolk","ability":"You start knowing a player. Each night*, you learn the alignment of their most recent nomination.","flavor":"You\'ll find I spot the finer details...","firstNight":18,"otherNight":19},{"id":"vestalvirgin_fall_of_rome","firstNightReminder":"Show 1 good and 1 evil character token: one of these is in play. Place the LEARNS next to the in-play character. ","otherNightReminder":"If the player with the LEARNS token died today, remove the token. Show 1 good and 1 evil character token: one of these is in play. Place the LEARNS next to the in-play character. ","reminders":["Learns"],"name":"Vestal Virgin","team":"townsfolk","ability":"You start knowing 1 good & 1 evil character, 1 of which is in-play. When they die, that night you learn 1 good & 1 evil character, 1 of which is in-play.","flavor":"Goddess Vesta, I have received your message in the Vestal flame and for now I am enlightened. I will be back soon... thank you...","firstNight":19,"otherNight":20},{"id":"physician_fall_of_rome","firstNightReminder":"The Physician points to two players not themselves. Mark both players with the PATIENT token.","otherNightReminder":"Remove all PATIENT tokens. The Physician points to two players not themselves. Mark both players with the PATIENT token. If a player with a PATIENT token was killed by the Demon, place the 1ST DEMON token next to the Physician and wake the Physician and show them Demon token.","reminders":["Patient","1st Demon"],"name":"Physician","team":"townsfolk","ability":"Each night, choose two players (not yourself): they are sober, healthy & get true info tonight. The 1st time the Demon kills one, you learn the Demon type.","flavor":"Some patients recover, because they believe in doctors.","firstNight":17,"otherNight":11},{"id":"legionary_fall_of_rome","firstNightReminder":"Show the hand signal for the number (0, 1, 2, etc.) of living evil players between the Legionary and the next clockwise Legionary (exclusive).","otherNightReminder":"Show the hand signal for the number (0, 1, 2, etc.) of living evil players between the Legionary and the next clockwise Legionary (exclusive).","setup":true,"name":"Legionary","team":"townsfolk","ability":"Each night, you learn how many living evil players are sat clockwise between yourself and a living Legionary. [+0 to +2 Legionary]","flavor":"We find that the Romans owed the conquest of the world to no other cause than continual military training, exact observance of discipline in their camps, and unwearied cultivation of the other arts of war.","firstNight":20,"otherNight":21},{"id":"trumpeter_fall_of_rome","otherNightReminder":"Show the hand signal for the number (0, 1, 2, etc.) of evil players who publicly claimed to be Spartacus today.","reminders":["Evil Claim"],"name":"Trumpeter","team":"townsfolk","ability":"Each night*, you learn how many evil players publicly claimed to be Spartacus today.","flavor":"I have done everything that I should, but the outcome is in the hand of fortune.","otherNight":22},{"id":"mortician_fall_of_rome","otherNightReminder":"If a player was executed today: Show the head signal (nod \'yes\', shake \'no\') for whether one of the neighbours is evil.","reminders":["Recently Executed"],"name":"Mortician","team":"townsfolk","ability":"Each night*, if a player died by execution today you learn if either of their living neighbours are evil.","flavor":"Let me lay you to rest... my old friend...","otherNight":23},{"id":"standardbearer_fall_of_rome","otherNightReminder":"If the Standard Bearer\'s public statement was true: show the head signal (nod \'true\'). Otherwise: show the head signal (shake \'false\').","reminders":["True","False"],"name":"Standard Bearer","team":"townsfolk","ability":"When you are nominated, you may make a unique public statement about the nominator (not yourself). Tonight, you learn if the statement was true.","flavor":"Say not always what you know. But always know what you say.","otherNight":24},{"id":"centurion1_fall_of_rome","reminders":["Drunk"],"name":"Centurion","team":"townsfolk","ability":"If you nominate & execute a living player, their team loses. You are safe from the Demon. If you publicly claimed to be Spartacus today, you are drunk until dawn.","flavor":"It is easier to find men who will volunteer to die, than to find those who are willing to endure pain with patience."},{"id":"merchant_fall_of_rome","otherNightReminder":"If the Merchant has not yet used their ability: the Merchant either shows a shake \'no\' head signal, or a nod \'yes\' head signal. If the Merchant chose \'yes\', show the character tokens of players with a NOMINATED token (in any order). Place the NO ABILITY token.","reminders":["Nominated","No Ability"],"name":"Merchant","team":"townsfolk","ability":"Once per game, at night, choose to learn the characters of players that have nominated you.","flavor":"Greed is but a word jealous men inflict upon the ambitious.","otherNight":26},{"id":"gladiator_fall_of_rome","otherNightReminder":"If the Gladiator used their ability today wake the Gladiator and the player they chose: both players silently play roshambo (rock \\"fist\\", scissors \\"two fingers\\" or paper \\"flat hand\\"). If they both chose the same, play again. Play until someone wins. The loser dies.","reminders":["Duel","Dead","No Ability"],"name":"Gladiator","team":"townsfolk","ability":"Once per game, during the day, publicly choose a living player. Tonight, you and they wake & silently play roshambo: whoever loses dies (someone must lose).","flavor":"Are you not entertained!","otherNight":18},{"id":"actor_fall_of_rome","otherNightReminder":"If the Actor used their ability today: Show the hand signal for the number (0, 1, 2, or 3) of CORRECT markers. Place the NO ABILITY marker.","reminders":["Correct","No Ability"],"name":"Actor","team":"townsfolk","ability":"Once per game, during the day, publicly guess 3 players\' character types (not yourself, 1 guess per type). That night, you learn how many you got correct. ","flavor":"Have I played the part well? Then applaud me as I exit!","otherNight":25},{"id":"blacksmith_fall_of_rome","otherNightReminder":"If the Blacksmith was killed by a Demon. Show the Blacksmith a not-in-play Townsfolk character token. Swap the not-in-play character token with the Blacksmith token. Place the IS THE BLACKSMITH token next to the not-in-play character token. Wake the Blacksmith and show \'You are\', then their new character ability.","reminders":["Is the Blacksmith"],"name":"Blacksmith","team":"townsfolk","ability":"The 1st time the Demon kills you, you live & gain a not-in-play Townsfolk ability.","flavor":"Every new beginning comes from some other beginning’s end.","otherNight":17},{"id":"scholar_fall_of_rome","otherNightReminder":"If the Scholar nominated an Outsider today, place the NO ABILITY token. Wake the nominated player. Show \'You are\', then their new character token.","reminders":["Lectured","No Ability"],"setup":true,"name":"Scholar","team":"townsfolk","ability":"The 1st time you nominate a living Outsider, they immediately become a not-in-play Townsfolk. [+1 Outsider]","flavor":"When you arise in the morning, think of what a precious privilege it is to be alive - to breathe, to think, to enjoy, to love.","otherNight":2},{"id":"thetwins_fall_of_rome","firstNightReminder":"Point to a player. Place the REMUS token next to that player.","otherNightReminder":"If The Twins has a TOWNSFOLK DRUNK token, all Townsfolk are drunk until dusk.","reminders":["Remus","Townsfolk Drunk"],"name":"The Twins","team":"outsider","ability":"You start knowing a player: if either of you are executed, all Townsfolk are drunk until dusk tomorrow.","flavor":"The quarrel that arose between Remus and Romulus demonstrated the division of the earthly city against itself...","firstNight":16,"otherNight":10},{"id":"winemaker_fall_of_rome","firstNightReminder":"Place either the ODD or EVEN token. If ODD, the Winemaker is drunk on the 1st night and every other night after. Otherwise: the Winemaker is drunk on the 2nd night and every other night after.","otherNightReminder":"Check which ODD or EVEN token is placed. If an odd night and the ODD token is placed, the Winemaker is drunk until dusk. If an even night and the EVEN token is placed, the Winemaker is drunk until dusk. Otherwise their Townsfolk neighbours are drunk until dusk.","reminders":["Odd","Even","Drunk"],"name":"Winemaker","team":"outsider","ability":"Your Townsfolk neighbours are drunk, but every other night, you are drunk until dusk, even if you are dead.","flavor":"In wine, there\'s truth.","firstNight":15,"otherNight":9},{"id":"spartacus_fall_of_rome","reminders":["Guess Used"],"name":"Spartacus","team":"outsider","ability":"If an evil player guesses you (once), your team loses. You might register as a Townsfolk; each day, if you did not publicly claim to be Spartacus, you don\'t.","flavor":"Death is the only freedom a slave knows..."},{"id":"badomen_fall_of_rome","remindersGlobal":["Is a Bad Omen"],"setup":true,"name":"Bad Omen","team":"outsider","ability":"You do not know you are a Bad Omen. You think you are a Townsfolk, but you receive false information. You might register as evil, even if dead.","flavor":"The nightmares, they talk to me, they comfort me... come closer, let me spread their message..."},{"id":"temptress_fall_of_rome","firstNightReminder":"The Temptress points to two players. Place the SEDUCED token next to the two players. Wake the two players separately. Show the \'This character selected you\' card, then the Temptress token. ","otherNightReminder":"If a player with a SEDUCED token is executed and dies, remove their SEDUCED token. The player with the remaining SEDUCED turns evil. Remove their SEDUCED token and replace it with the EVIL token. Wake the evil player and show them the \'You are\' card and the thumbs down evil signal.","reminders":["Seduced","Evil"],"name":"Temptress","team":"minion","ability":"On your 1st night choose two players: they learn that they were chosen. The 1st time one of them dies by execution, the other becomes evil that night.","flavor":"Nothing could part us in life, but now in death, we are likely to change places...","firstNight":12,"otherNight":3},{"id":"haruspex_fall_of_rome","firstNightReminder":"The Haruspex points to a player. Show that player’s character token. Place a FORETOLD token next that player. ","otherNightReminder":"The Haruspex points to a player. Show that player’s character token. Place a FORETOLD token next that player: if that player already has a FORETOLD token. That player dies, also place the CAN\'T KILL token next to the Haruspex.","reminders":["Foretold","Dead","Can\'t Kill"],"setup":true,"name":"Haruspex","team":"minion","ability":"Each night, choose a player: you learn their character. The 1st player you choose twice in this way, dies. [+ Spartacus]","flavor":"I see it clearly now that the gods have spoken... you\'ll make a great sacrifice!","firstNight":14,"otherNight":16},{"id":"glykon1_fall_of_rome","reminders":["Snake Bite","Poisoned"],"name":"Glykon","team":"minion","ability":"You might register as good. Until dawn, players you nominate register as the opposing alignment & if a Townsfolk, are also poisoned.","flavor":"It is difficult for one to know when they have been betrayed by the gods, when the only gods they know do not exist. "},{"id":"augur_fall_of_rome","name":"Augur","team":"minion","ability":"If a Townsfolk nominates you, they immediately become a Bad Omen.","flavor":"Hoc tibi maledicam!"},{"id":"cleopatra_fall_of_rome","firstNightReminder":"Cleopatra points to two players. ","otherNightReminder":"If a previously chosen player nominated today they die. Remove all CHOSEN tokens. Cleopatra points to two players. Place the CHOSEN token next to both players.","reminders":["Chosen","Dead"],"name":"Cleopatra","team":"demon","ability":"Each night, choose two players: if they nominate tomorrow, they die that night. Each day, if a good player (Travellers don\'t count) does not nominate, evil wins. ","flavor":"Fool! Don\'t you see now that I could have poisoned you a hundred times had I been able to live without you!","firstNight":13,"otherNight":12},{"id":"crassus_fall_of_rome","otherNightReminder":"Crassus points to a player. That player dies. If the 1st Crassus publicly claimed to be Spartacus today and points to themselves (or was executed), with 5 or more players alive, replace the character of 1 evil player with a spare Crassus token. Show the \'You are\' card, then the Crassus token. ","reminders":["Dead","1st Crassus"],"name":"Crassus","team":"demon","ability":"Each night*, choose a player: they die. If the 1st Crassus publicly claims to be Spartacus & dies with 5 or more players alive, an evil player becomes Crassus.","flavor":"Those who aim at great deeds must also suffer greatly...","otherNight":13},{"id":"hannibal_fall_of_rome","firstNightReminder":"Select 2 good players and place the IS HANNIBAL reminder tokens. Wake all Minions together, show them the Hannibals and show them three not-in-play character tokens (these must be the same).","otherNightReminder":"Choose a player, that player dies. If a Hannibal died today, wake that player and show them the \'You are\' card, the Hannibal token and then the thumbs up good signal.","remindersGlobal":["Is Hannibal","Dead"],"setup":true,"name":"Hannibal","team":"demon","ability":"You think you are a good character, but you are not. Minions learn 3 bluffs. Each night*, a player might die. The 1st Hannibal to die, becomes good. [+1 Hannibal] ","attribution":"Hannibal was awarded the 4th place trophy in the Unofficial\'s \\"Custom Demon Contest\\".","flavor":"I will either find a way or make one.","firstNight":11,"otherNight":14},{"id":"caesar_fall_of_rome","otherNightReminder":"If an evil player was executed today, Caesar points to two players. Otherwise: Caesar points to a player. Chosen players die.","reminders":["Betrayal","Used","Dead"],"name":"Caesar","team":"demon","ability":"Each night*, choose a player: they die. The 1st time an evil player dies by execution, that night, choose an additional player: they die.","flavor":"I came, I saw, I conquered.","otherNight":15},{"id":"mercenary_fall_of_rome","otherNightReminder":"Show the Mercenary a character that publicly claimed to be Spartacus today, they have that ability tonight and tomorrow until dusk. ","reminders":["Good","Evil","Good Ability","Evil Ability"],"name":"Mercenary","team":"traveler","ability":"Each night*, gain the ability of a player who publicly claimed Spartacus today. If a Mercenary is exiled, you are exiled too. [+1 Mercenary of opposing alignment]","flavor":"Let the buyer beware... ...and beware me too!","otherNight":4},{"id":"architect_fall_of_rome","otherNightReminder":"The Architect points to a player. Choose which ability will effect the chosen player. Treat them accordingly (not-in-play character or character swap). Wake affected players individually. Show \'You are\', then their new character token.","reminders":["Redesigned"],"name":"Architect","team":"traveler","ability":"Each night*, choose a player: 1) they become a not-in-play character of the same type, or 2) they swap characters with a player of the same type.","flavor":"I found Rome a city of bricks and left it the city of marbles.","otherNight":7},{"id":"sibyl_fall_of_rome","name":"Sibyl","team":"traveler","ability":"Each day, after the 1st execution, you may publicly choose a dead player: they may nominate. If the majority of the dead and yourself agree, they are executed.","attribution":"Original Character concept by Kohav. Many thanks to them for giving the green light to bringing it to Fall of Rome!","flavor":"To such a degree will I be changed that I will be visible to no one; but I will be recognized by my voice. And with my voice, to you, I give a second chance."},{"id":"highpriest1_fall_of_rome","otherNightReminder":"If the High Priest successfully blessed a player today, something good happens to that player and/or their team.","reminders":["Blessed","Failed"],"name":"High Priest","team":"traveler","ability":"Each day, publicly choose a unique living player to bless: if a majority of players agree, something good happens to them.","flavor":"The first and greatest punishment of the sinner is the conscience of sin.","otherNight":5},{"id":"highpriest2_fall_of_rome","otherNightReminder":"If the High Priest successfully blessed a player today, wake the High Priest. The High Priest chooses whether the statement is true tomorrow with a hand signal (true \\"thumbs up\\", false \\"thumbs down\\").","reminders":["Blessed","Failed","True","False"],"name":"High Priest","team":"traveler","ability":"Each day, publicly choose a unique living player to bless: if a majority of players agree, tomorrow they may learn a statement. Tonight, choose if it’s true.","flavor":"The first and greatest punishment of the sinner is the conscience of sin.","otherNight":6},{"id":"emperor_fall_of_rome","otherNightReminder":"If a player was executed today and the outcome was not overturned by the Emperor: Show the hand signal (thumbs down \'evil\', thumbs up \'good\') for the players alignment.","reminders":["Executed"],"name":"Emperor","team":"traveler","ability":"Each day, choose the 1st execution\'s outcome. If you choose to protect today\'s execution: they survive. Otherwise, tonight you learn their alignment.","flavor":"Which death is preferable to every other? The unexpected.","otherNight":8},{"id":"shugenja","firstNight":33.4,"firstNightReminder":"Wake the Shugenja; point horizontally in the direction of the closest evil player. If the two closest evil players are equidistant, point your finger horizontally in either direction.","otherNight":0,"setup":false,"name":"Shugenja","team":"townsfolk","ability":"You start knowing if your closest evil player is clockwise or anti-clockwise. If equidistant, this info is arbitrary."},{"id":"hatter","firstNight":0,"otherNight":40.1,"otherNightReminder":"If the Hatter died today: Wake the Minions and Demon. Show them the \'This Character Selected You\' info token, then the Hatter token. Each player either shakes their head no or points to another character of the same type as their current character. If a second player would end up with the same character as another player, shake your head no and gesture for them to choose again. Put them to sleep. Change each player to the character they chose.","reminders":["Tea Party Tonight"],"name":"Hatter","team":"outsider","ability":"If you died today or tonight, the Minion & Demon players may choose new Minion & Demon characters to be."},{"id":"villageidiot","firstNight":45.2,"firstNightReminder":"The Village Idiot points to a player; give a thumbs up if that player is good or a thumbs down if that player is evil.","otherNight":62.1,"otherNightReminder":"The Village Idiot points to a player; give a thumbs up if that player is good or a thumbs down if that player is evil.","reminders":["Drunk"],"setup":true,"name":"Village Idiot","team":"townsfolk","ability":"Each night, choose a player: you learn their alignment. [+0 to +2 Village Idiots. 1 of the extras is drunk]"}]'),vs=JSON.parse('[{"id":"doomsayer","firstNightReminder":"","otherNightReminder":"","reminders":[],"setup":false,"name":"Doomsayer","team":"fabled","ability":"If 4 or more players live, each living player may publicly choose (once per game) that a player of their own alignment dies."},{"id":"angel","firstNightReminder":"","otherNightReminder":"","reminders":["Protect","Something Bad"],"setup":false,"name":"Angel","team":"fabled","ability":"Something bad might happen to whoever is most responsible for the death of a new player."},{"id":"buddhist","firstNightReminder":"","otherNightReminder":"","reminders":[],"setup":false,"name":"Buddhist","team":"fabled","ability":"For the first 2 minutes of each day, veteran players may not talk."},{"id":"hellslibrarian","firstNightReminder":"","otherNightReminder":"","reminders":["Something Bad"],"setup":false,"name":"Hell\'s Librarian","team":"fabled","ability":"Something bad might happen to whoever talks when the Storyteller has asked for silence."},{"id":"revolutionary","firstNightReminder":"","otherNightReminder":"","reminders":["Used"],"setup":false,"name":"Revolutionary","team":"fabled","ability":"2 neighboring players are known to be the same alignment. Once per game, one of them registers falsely."},{"id":"fiddler","firstNightReminder":"","otherNightReminder":"","reminders":[],"setup":false,"name":"Fiddler","team":"fabled","ability":"Once per game, the Demon secretly chooses an opposing player: all players choose which of these 2 players win."},{"id":"toymaker","firstNightReminder":"","otherNight":1,"otherNightReminder":"If it is a night when a Demon attack could end the game, and the Demon is marked “Final night: No Attack,” then the Demon does not act tonight. (Do not wake them.)","reminders":["Final Night: No Attack"],"setup":false,"name":"Toymaker","team":"fabled","ability":"The Demon may choose not to attack & must do this at least once per game. Evil players get normal starting info."},{"id":"fibbin","firstNightReminder":"","otherNightReminder":"","reminders":["Used"],"setup":false,"name":"Fibbin","team":"fabled","ability":"Once per game, 1 good player might get false information."},{"id":"duchess","firstNightReminder":"","otherNight":1,"otherNightReminder":"Wake each player marked “Visitor” or “False Info” one at a time. Show them the Duchess token, then fingers (1, 2, 3) equaling the number of evil players marked “Visitor” or, if you are waking the player marked “False Info,” show them any number of fingers except the number of evil players marked “Visitor.”","reminders":["Visitor","False Info"],"setup":false,"name":"Duchess","team":"fabled","ability":"Each day, 3 players may choose to visit you. At night*, each visitor learns how many visitors are evil, but 1 gets false info."},{"id":"sentinel","firstNightReminder":"","otherNightReminder":"","reminders":[],"setup":true,"name":"Sentinel","team":"fabled","ability":"There might be 1 extra or 1 fewer Outsider in play."},{"id":"spiritofivory","firstNightReminder":"","otherNightReminder":"","reminders":["No extra evil"],"setup":false,"name":"Spirit of Ivory","team":"fabled","ability":"There can\'t be more than 1 extra evil player."},{"id":"djinn","firstNight":0,"firstNightReminder":"","otherNightReminder":"","reminders":[],"setup":false,"name":"Djinn","team":"fabled","ability":"Use the Djinn\'s special rule. All players know what it is."},{"id":"stormcatcher","firstNight":1,"firstNightReminder":"Mark a good player as \\"Safe\\". Wake each evil player and show them the marked player.","otherNightReminder":"","reminders":["Safe"],"setup":false,"name":"Storm Catcher","team":"fabled","ability":"Name a good character. If in play, they can only die by execution, but evil players learn which player it is."},{"id":"deusexfiasco","firstNightReminder":"","otherNightReminder":"","reminders":["Whoops"],"setup":false,"name":"Deus ex Fiasco","team":"fabled","ability":"Once per game, the Storyteller will make a \\"mistake\\", correct it and publicly admit to it."},{"id":"plusone","firstNightReminder":"","otherNightReminder":"","reminders":[],"setup":true,"name":"Plussy McOneface","team":"fabled","ability":"One role from off the script will be in play, it can be either a player or a demon bluff."},{"id":"iamspartacus_fall_of_rome","reminders":["I am Spartacus!"],"name":"I Am Spartacus!","team":"fabled","ability":"Each day, up to half the living players (rounded up & Travellers don’t count) may publicly claim to be Spartacus.","flavor":"I am Spartacus!"}]'),As=JSON.parse('[{"id":"Chambermaid","hatred":[{"id":"Mathematician","reason":"The Chambermaid learns if the Mathematician wakes tonight or not, even though the Chambermaid wakes first."}]},{"id":"Butler","hatred":[{"id":"Cannibal","reason":"If the Cannibal gains the Butler ability, the Cannibal learns this."}]},{"id":"Lunatic","hatred":[{"id":"Mathematician","reason":"The Mathematician learns if the Lunatic attacks a different player(s) than the real Demon attacked."}]},{"id":"Pit-Hag","hatred":[{"id":"Heretic","reason":"A Pit-Hag can not create a Heretic. "},{"id":"Damsel","reason":"If a Pit-Hag creates a Damsel, the Storyteller chooses which player it is."},{"id":"Politician","reason":"A Pit-hag can not create an evil Politician."}]},{"id":"Cerenovus","hatred":[{"id":"Goblin","reason":"The Cerenovus may choose to make a player mad that they are the Goblin."}]},{"id":"Leviathan","hatred":[{"id":"Soldier","reason":"If Leviathan nominates and executes the Soldier, the Soldier does not die."},{"id":"Monk","reason":"If Leviathan nominates and executes the player the Monk chose, that player does not die."},{"id":"Innkeeper","reason":"If Leviathan nominates and executes a player the Innkeeper chose, that player does not die."},{"id":"Ravenkeeper","reason":"If Leviathan is in play & the Ravenkeeper dies by execution, they wake that night to use their ability."},{"id":"Sage","reason":"If Leviathan is in play & the Sage dies by execution, they wake that night to use their ability."},{"id":"Farmer","reason":"If Leviathan is in play & a Farmer dies by execution, a good player becomes a Farmer that night."},{"id":"Mayor","reason":"If Leviathan is in play & no execution occurs on day 5, good wins."}]},{"id":"Al-Hadikhia","hatred":[{"id":"Scarlet Woman","reason":"If there are two living Al-Hadikhias, the Scarlet Woman Al-Hadikhia becomes the Scarlet Woman again."},{"id":"Mastermind","reason":"Only 1 jinxed character can be in play. Evil players start knowing which player and character it is."}]},{"id":"Lil\' Monsta","hatred":[{"id":"Poppy Grower","reason":"If the Poppy Grower is in play, Minions don\'t wake together. They are woken one by one, until one of them chooses to take the Lil\' Monsta token."},{"id":"Magician","reason":"Only 1 jinxed character can be in play. "},{"id":"Scarlet Woman","reason":"If there are 5 or more players alive and the player holding the Lil\' Monsta token dies, the Scarlet Woman is given the Lil\' Monsta token tonight."}]},{"id":"Lycanthrope","hatred":[{"id":"Gambler","reason":"If the Lycanthrope is alive and the Gambler kills themself at night, no other players can die tonight."}]},{"id":"Legion","hatred":[{"id":"Engineer","reason":"Legion and the Engineer can not both be in play at the start of the game. If the Engineer creates Legion, most players (including all evil players) become evil Legion."},{"id":"Preacher","reason":"Only 1 jinxed character can be in play."}]},{"id":"Fang Gu","hatred":[{"id":"Scarlet Woman","reason":"If the Fang Gu chooses an Outsider and dies, the Scarlet Woman does not become the Fang Gu."}]},{"id":"Spy","hatred":[{"id":"Magician","reason":"When the Spy sees the Grimoire, the Demon and Magician\'s character tokens are removed."},{"id":"Alchemist","reason":"The Alchemist can not have the Spy ability."},{"id":"Poppy Grower","reason":"If the Poppy Grower is in play, the Spy does not see the Grimoire until the Poppy Grower dies."},{"id":"Damsel","reason":"Only 1 jinxed character can be in play. "},{"id":"Heretic","reason":"Only 1 jinxed character can be in play."}]},{"id":"Widow","hatred":[{"id":"Magician","reason":"When the Widow sees the Grimoire, the Demon and Magician\'s character tokens are removed."},{"id":"Poppy Grower","reason":"If the Poppy Grower is in play, the Widow does not see the Grimoire until the Poppy Grower dies."},{"id":"Alchemist","reason":"The Alchemist can not have the Widow ability."},{"id":"Damsel","reason":"Only 1 jinxed character can be in play."},{"id":"Heretic","reason":"Only 1 jinxed character can be in play."}]},{"id":"Godfather","hatred":[{"id":"Heretic","reason":"Only 1 jinxed character can be in play."}]},{"id":"Baron","hatred":[{"id":"Heretic","reason":"The Baron might only add 1 Outsider, not 2."}]},{"id":"Marionette","hatred":[{"id":"Lil\' Monsta","reason":"The Marionette neighbors a Minion, not the Demon. The Marionette is not woken to choose who takes the Lil\' Monsta token."},{"id":"Poppy Grower","reason":"When the Poppy Grower dies, the Demon learns the Marionette but the Marionette learns nothing."},{"id":"Snitch","reason":"The Marionette does not learn 3 not in-play characters. The Demon learns an extra 3 instead."},{"id":"Balloonist","reason":"If the Marionette thinks that they are the Balloonist, +1 Outsider was added."},{"id":"Damsel","reason":"The Marionette does not learn that a Damsel is in play."},{"id":"Huntsman","reason":"If the Marionette thinks that they are the Huntsman, the Damsel was added."}]},{"id":"Riot","hatred":[{"id":"Engineer","reason":"Riot and the Engineer can not both be in play at the start of the game. \\nIf the Engineer creates Riot, the evil players become Riot."},{"id":"Golem","reason":"If The Golem nominates Riot, the Riot player does not die."},{"id":"Snitch","reason":"If the Snitch is in play, each Riot player gets an extra 3 bluffs."},{"id":"Saint","reason":"If a good player nominates and kills the Saint, the Saint\'s team loses."},{"id":"Butler","reason":"The Butler can not nominate their master."},{"id":"Pit-Hag","reason":"If the Pit-Hag creates Riot, all evil players become Riot. \\nIf the Pit-Hag creates Riot after day 3, the game continues for one more day."},{"id":"Mayor","reason":"If the 3rd day begins with just three players alive, the players may choose (as a group) not to nominate at all. If so (and a Mayor is alive) then the Mayor\'s team wins."},{"id":"Monk","reason":"If a Riot player nominates and kills the Monk-protected-player, the Monk-protected-player does not die."},{"id":"Farmer","reason":"If a Riot player nominates and kills a Farmer, the Farmer uses their ability tonight."},{"id":"Innkeeper","reason":"If a Riot player nominates an Innkeeper-protected-player, the Innkeeper-protected-player does not die."},{"id":"Sage","reason":"If a Riot player nominates and kills a Sage, the Sage uses their ability tonight."},{"id":"Ravenkeeper","reason":"If a Riot player nominates and kills the Ravenkeeper, the Ravenkeeper uses their ability tonight."},{"id":"Soldier","reason":"If a Riot player nominates the Soldier, the Soldier does not die."},{"id":"Grandmother","reason":"If a Riot player nominates and kills the Grandchild, the Grandmother dies too."},{"id":"King","reason":"If a Riot player nominates and kills the King and the Choirboy is alive, the Choirboy uses their ability tonight."},{"id":"Exorcist","reason":"Only 1 jinxed character can be in play."},{"id":"Minstrel","reason":"Only 1 jinxed character can be in play."},{"id":"Flowergirl","reason":"Only 1 jinxed character can be in play."},{"id":"Undertaker","reason":"Players that die by nomination register as being executed to the Undertaker."},{"id":"Cannibal","reason":"Players that die by nomination register as being executed to the Cannibal."},{"id":"Pacifist","reason":"Players that die by nomination register as being executed to the Pacifist."},{"id":"Devil\'s Advocate","reason":"Players that die by nomination register as being executed to the Devil\'s Advocate."},{"id":"Investigator","reason":"Riot registers as a Minion to the Investigator."},{"id":"Clockmaker","reason":"Riot registers as a Minion to the Clockmaker."},{"id":"Town Crier","reason":"Riot registers as a Minion to the Town Crier."},{"id":"Damsel","reason":"Riot registers as a Minion to the Damsel."},{"id":"Preacher","reason":"Riot registers as a Minion to the Preacher."}]},{"id":"Lleech","hatred":[{"id":"Mastermind","reason":"If the Mastermind is alive and the Lleech\'s host dies by execution, the Lleech lives but loses their ability. "},{"id":"Slayer","reason":"If the Slayer slays the Lleech\'s host, the host dies. "},{"id":"Heretic","reason":"If the Lleech has poisoned the Heretic then the Lleech dies, the Heretic remains poisoned."}]},{"id":"Organ Grinder","hatred":[{"id":"Butler","reason":"If the Organ Grinder is causing eyes closed voting, the Butler may raise their hand to vote but their vote is only counted if their master voted too."},{"id":"Flowergirl","reason":"If players\' eyes were closed during the nominations, the Flowergirl learns how many times the Demon voted."},{"id":"Lil\' Monsta","reason":"Votes for the Organ Grinder count if the Organ Grinder is babysitting Lil\' Monsta."},{"id":"Minstrel","reason":"Only 1 jinxed character can be in play. Evil players start knowing which character it is."},{"id":"Preacher","reason":"Only 1 jinxed character can be in play. Evil players start knowing which character it is."}]},{"id":"Vizier","hatred":[{"id":"Alchemist","reason":"If the Alchemist has the Vizier ability, they may only choose to execute immediately if three or more players voted."},{"id":"Courtier","reason":"If the Vizier loses their ability, they learn this and if the Vizier is executed while they have their ability, their team wins."},{"id":"Investigator","reason":"If the Investigator learns that the Vizier is in play, the existence of the Vizier is not announced by the Storyteller."},{"id":"Magician","reason":"Only 1 jinxed character can be in play."},{"id":"Preacher","reason":"If the Vizier loses their ability, they learn this and if the Vizier is executed while they have their ability, their team wins."},{"id":"Fearmonger","reason":"The Vizier wakes with the Fearmonger, learns who they choose and cannot choose to execute that player."}]},{"id":"plaguedoctor","hatred":[{"id":"baron","reason":"If the Storyteller gains the Baron ability, up to two players become out-of-play Outsiders."},{"id":"boomdandy","reason":"If the Plague Doctor is executed and the Storyteller would gain the Boomdandy ability, the Boomdandy ability triggers immediately."},{"id":"eviltwin","reason":"The Storyteller cannot gain the Evil Twin ability if the Plague Doctor dies."},{"id":"fearmonger","reason":"If the Plague Doctor dies, a living Minion gains the Fearmonger ability in addition to their own ability, and learns this."},{"id":"goblin","reason":"If the Plague Doctor dies, a living Minion gains the Goblin ability in addition to their own ability, and learns this."},{"id":"Marionette","reason":"If the Demon has a neighbour who is alive and a Townsfolk or Outsider when the Plague Doctor dies, that player becomes an evil Marionette. If there is already an extra evil player, this does not happen."},{"id":"scarletwoman","reason":"If the Plague Doctor dies, a living Minion gains the Scarlet Woman ability in addition to their own ability, and learns this."},{"id":"spy","reason":"If the Plague Doctor dies, a living Minion gains the Spy ability in addition to their own ability, and learns this."}]}]'),Rs=(e=qt[0])=>new Map(Ns.filter((t=>t.edition===e.id||e.roles.includes(t.id))).sort(((e,t)=>t.team.localeCompare(e.team))).map((e=>[e.id,e]))),Ss=(e=qt[0])=>Ns.filter((t=>"traveler"===t.team&&t.edition!==e.id&&!e.roles.includes(t.id))),Is=(e=qt[0])=>Ns.filter((t=>"traveler"!==t.team&&t.edition!==e.id&&!e.roles.includes(t.id))),Ds=e=>Ns.find((t=>t.id===e)),Ms=e=>({grimoire:t},i)=>{t[e]=i},Ts=e=>({grimoire:t},i)=>{t[e]=!0===i||!1===i?i:!t[e]},Gs=e=>e.toLocaleLowerCase().replace(/[^a-z0-9]/g,""),Cs=new Map(qt.map((e=>[e.id,e]))),xs=new Map(Ns.map((e=>[e.id,e]))),Es=new Map(vs.map((e=>[e.id,e])));let Bs={};try{Bs=new Map(As.map((({id:e,hatred:t})=>[Gs(e),new Map(t.map((({id:e,reason:t})=>[Gs(e),t])))])))}catch(Us){console.error("couldn't load jinxes",Us)}const Ys={id:"",name:"",image:"",ability:"",edition:"custom",firstNight:0,firstNightReminder:"",otherNight:0,otherNightReminder:"",reminders:[],remindersGlobal:[],setup:!1,team:"townsfolk",isCustom:!0},Ws=d.ZP.createStore({modules:{players:gs,session:ks},state:{grimoire:{isNight:!1,isNightOrder:!0,isPublic:!0,isMenuOpen:!1,isStatic:!1,isMuted:!1,isImageOptIn:!1,zoom:0,background:""},modals:{edition:!1,fabled:!1,gameState:!1,nightOrder:!1,reference:!1,reminder:!1,role:!1,roles:!1,voteHistory:!1},edition:Cs.get("tb"),roles:Rs(),otherTravelers:Ss(),otherRoles:Is(),fabled:Es,jinxes:Bs},getters:{customRolesStripped:({roles:e})=>{const t=[],i=Object.keys(Ys),o=["firstNightReminder","otherNightReminder","isCustom"];return e.forEach((e=>{if(e.isCustom){const s={};for(let t in e){if(o.includes(t))continue;const a=e[t];i.includes(t)&&a!==Ys[t]&&(s[i.indexOf(t)]=a)}t.push(s)}else t.push({id:e.id})})),t},rolesJSONbyId:()=>xs,roleById:Ds},mutations:{setZoom:Ms("zoom"),setBackground:Ms("background"),toggleMuted:Ts("isMuted"),toggleMenu:Ts("isMenuOpen"),toggleNightOrder:Ts("isNightOrder"),toggleStatic:Ts("isStatic"),toggleNight:Ts("isNight"),toggleGrimoire:Ts("isPublic"),toggleImageOptIn:Ts("isImageOptIn"),toggleModal({modals:e},t){t&&(e[t]=!e[t]);for(let i in e)i!==t&&(e[i]=!1)},setCustomRoles(e,t){const i=t.map((e=>{if(e[0]){const t=Object.keys(Ys),i={};for(let o in e)t[o]&&(i[t[o]]=e[o]);return i}return e})).map((e=>(e.id=Gs(e.id),e))).map((t=>xs.get(t.id)||e.roles.get(t.id)||Object.assign({},Ys,t))).map((e=>(xs.get(e.id)||(e.imageAlt={townsfolk:"good",outsider:"outsider",minion:"minion",demon:"evil",fabled:"fabled"}[e.team]||"custom",e.firstNight=Math.abs(e.firstNight),e.otherNight=Math.abs(e.otherNight)),e))).filter((e=>e.name&&e.ability&&e.team)).sort(((e,t)=>t.team.localeCompare(e.team)));e.roles=new Map(i.filter((e=>"fabled"!==e.team)).map((e=>[e.id,e]))),e.fabled=new Map([...i.filter((e=>"fabled"===e.team)).map((e=>[e.id,e])),...vs.map((e=>[e.id,e]))]),e.otherTravelers=new Map(Ns.filter((e=>"traveler"===e.team&&!t.some((t=>t.id===e.id)))).map((e=>[e.id,e])))},setEdition(e,t){Cs.has(t.id)?(e.edition=Cs.get(t.id),e.roles=Rs(e.edition),e.otherTravelers=Ss(e.edition),e.otherRoles=Is(e.edition)):e.edition=t,e.modals.edition=!1}},plugins:[as(),ns]});var Zs=i(3636),Vs=i(9417),Ps=i(3024),js=i(7810);const Os=["AddressCard","BookOpen","BookDead","BroadcastTower","Chair","CheckSquare","CloudMoon","Cog","Copy","Clipboard","Dice","Dragon","ExchangeAlt","ExclamationTriangle","FileCode","FileUpload","HandPaper","HandPointRight","Heartbeat","Image","Link","MinusCircle","PeopleArrows","PlusCircle","Question","Random","RedoAlt","SearchMinus","SearchPlus","Skull","Square","TheaterMasks","TimesCircle","TrashAlt","Undo","User","UserEdit","UserFriends","Users","VenusMars","VolumeUp","VolumeMute","VoteYea","WindowMaximize","WindowMinimize","Times","Xmark"],zs=["Github","Discord"];Zs.vI.add(...Os.map((e=>Vs.mRB["fa"+e])),...zs.map((e=>Ps.vnX["fa"+e]))),(0,o.ri)(os).component("font-awesome-icon",js.GN).use(Ws).mount("#app")},2464:e=>{e.exports=e=>{const t=e=>document.title="Blood on the Clocktower "+(e?"Town Square":"Grimoire");if(localStorage.getItem("background")&&e.commit("setBackground",localStorage.background),localStorage.getItem("muted")&&e.commit("toggleMuted",!0),localStorage.getItem("static")&&e.commit("toggleStatic",!0),localStorage.getItem("imageOptIn")&&e.commit("toggleImageOptIn",!0),localStorage.getItem("zoom")&&e.commit("setZoom",parseFloat(localStorage.getItem("zoom"))),localStorage.getItem("isGrimoire")&&(e.commit("toggleGrimoire",!1),t(!1)),void 0!==localStorage.roles&&(e.commit("setCustomRoles",JSON.parse(localStorage.roles)),e.commit("setEdition",{id:"custom"})),void 0!==localStorage.edition&&e.commit("setEdition",JSON.parse(localStorage.edition)),void 0!==localStorage.bluffs&&JSON.parse(localStorage.bluffs).forEach(((t,i)=>{e.commit("players/setBluff",{index:i,role:e.state.roles.get(t)||{}})})),void 0!==localStorage.fabled&&e.commit("players/setFabled",{fabled:JSON.parse(localStorage.fabled).map((t=>e.state.fabled.get(t.id)||t))}),localStorage.players&&e.commit("players/set",JSON.parse(localStorage.players).map((t=>({...t,role:e.state.roles.get(t.role)||e.getters.rolesJSONbyId.get(t.role)||{}})))),localStorage.getItem("playerId")&&e.commit("session/setPlayerId",localStorage.getItem("playerId")),localStorage.getItem("session")&&!window.location.hash.substr(1)){const[t,i]=JSON.parse(localStorage.getItem("session"));e.commit("session/setSpectator",t),e.commit("session/setSessionId",i)}e.subscribe((({type:e,payload:i},o)=>{switch(e){case"toggleGrimoire":o.grimoire.isPublic?localStorage.removeItem("isGrimoire"):localStorage.setItem("isGrimoire",1),t(o.grimoire.isPublic);break;case"setBackground":i?localStorage.setItem("background",i):localStorage.removeItem("background");break;case"toggleMuted":o.grimoire.isMuted?localStorage.setItem("muted",1):localStorage.removeItem("muted");break;case"toggleStatic":o.grimoire.isStatic?localStorage.setItem("static",1):localStorage.removeItem("static");break;case"toggleImageOptIn":o.grimoire.isImageOptIn?localStorage.setItem("imageOptIn",1):localStorage.removeItem("imageOptIn");break;case"setZoom":0!==i?localStorage.setItem("zoom",i):localStorage.removeItem("zoom");break;case"setEdition":localStorage.setItem("edition",JSON.stringify(i)),o.edition.isOfficial&&localStorage.removeItem("roles");break;case"setCustomRoles":i.length?localStorage.setItem("roles",JSON.stringify(i)):localStorage.removeItem("roles");break;case"players/setBluff":localStorage.setItem("bluffs",JSON.stringify(o.players.bluffs.map((({id:e})=>e))));break;case"players/setFabled":localStorage.setItem("fabled",JSON.stringify(o.players.fabled.map((e=>e.isCustom?e:{id:e.id}))));break;case"players/add":case"players/update":case"players/remove":case"players/clear":case"players/set":case"players/swap":case"players/move":o.players.players.length?localStorage.setItem("players",JSON.stringify(o.players.players.map((e=>({...e,role:e.role.id||{}}))))):localStorage.removeItem("players");break;case"session/setSessionId":i?localStorage.setItem("session",JSON.stringify([o.session.isSpectator,i])):localStorage.removeItem("session");break;case"session/setPlayerId":i?localStorage.setItem("playerId",i):localStorage.removeItem("playerId");break}}))}},387:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABICAYAAABcBhM9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjlDMUM2MkY4N0EzMTFFQUE5RTNDRTZFOTIwNERBRDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjlDMUM2MzA4N0EzMTFFQUE5RTNDRTZFOTIwNERBRDkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2OUMxQzYyRDg3QTMxMUVBQTlFM0NFNkU5MjA0REFEOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2OUMxQzYyRTg3QTMxMUVBQTlFM0NFNkU5MjA0REFEOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpWbMZkAABKiSURBVHjaxJwJWBRX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"},9764:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABICAYAAABcBhM9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjUzNjg3N0Q4N0EzMTFFQUE0NDJFMkFFNjZBMTEzNzciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjUzNjg3N0U4N0EzMTFFQUE0NDJFMkFFNjZBMTEzNzciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2NTM2ODc3Qjg3QTMxMUVBQTQ0MkUyQUU2NkExMTM3NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2NTM2ODc3Qzg3QTMxMUVBQTQ0MkUyQUU2NkExMTM3NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnU9gJ4AABJLSURBVHjazJwJcBTX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"},3396:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABICAYAAABcBhM9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjBDNEFCQUI4N0EzMTFFQTg3MTQ5NUI1MDJEN0Y2NTgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjBDNEFCQUM4N0EzMTFFQTg3MTQ5NUI1MDJEN0Y2NTgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MEM0QUJBOTg3QTMxMUVBODcxNDk1QjUwMkQ3RjY1OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2MEM0QUJBQTg3QTMxMUVBODcxNDk1QjUwMkQ3RjY1OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmWP3BUAABHvSURBVHja1JwLVBRX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"},4174:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABICAYAAABcBhM9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NThDNENBRUE4N0EzMTFFQUEzRkZBNzRFNDVBMzk4RTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NThDNENBRUI4N0EzMTFFQUEzRkZBNzRFNDVBMzk4RTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1OEM0Q0FFODg3QTMxMUVBQTNGRkE3NEU0NUEzOThFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1OEM0Q0FFOTg3QTMxMUVBQTNGRkE3NEU0NUEzOThFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pj7EncAAABJESURBVHjaxJwJVBRXuoD/WrqRJYhCFBTXABpFxwSMz8TAqDExR80Zgxm36IlOnDxDnk5QE8xkmTfq03E0IXGLzzF6dEaNTjJxfAm4RI0LxqgoKkqAIC6oKLKIkaW76r6/qruZ6uLequoWmDrnUl3VRdWtr/793mpOFEVgLQ6HA1pisdlsXHOfE/tKWqCfTfaJ0EqLn5A8/0N8PX9LAGw1YCawOMZnMNlPGJ+9rtnc4MR/IyyOsTaDRyjfE82atCS4VlNJC6C0ayvqSyjSxemgkeYGJ7aydNGgcIxtK1JGGJ85lso+KDixlW2VHgSv28czIFoBJus+68E1UVV/oIktAMYKKE7XeB1AzoJqEoZUGUkc0Uubr9DEZobEGdgqGigtMP1nnmHT9BLjkSze/Vl2Hy9rAMmMc/gMTXxAWJxJaMCySzSJ4nWwzCSN6IAoa0kDjtPtI6ywxBdoop+wOBMJsipZeoniDcDRbJIWlqyBJWmkDHTHPBA00Q8vZ2SPrNosM1hG0PT2SdLAkHQqKVGyhQeCJlq0R0ZgaKrDmwDVw+DLysoWh4SEDLLb7b0lSbpNCJGdTmd1Q0NDeU1NTdG1a9fysrKycr/55pvbOTk5tRRgylrQqKAHlkQBJRtkDcZG2iD55gxg8RY9HGfBfvFVVVVbgoODk6x2+vr16//86KOP1mZkZFzTGHpJ15zupt0n6xqheU+PlNGSbxYwXzwba82Kq7yOxZvunpqaevD6PYAPjgIUVwGEB+IX+G2IzfW5WyhAr/YAfcIB2uN2gOA6KUrl/uXLl69AeJc1kLSwnAxwhAJN9heYESzegu0xgtZEupT1nTt3NoSGhj61H2975SmA6nq6ZAVh/x/vCDCkC8DASICwNq79qK5fjx07dumZM2dqlPvVQHIYQNNKmj7wVaH5C8wMkkDZZoUG1HBi5syZnVBKvhAE4aGfKgF+fxDg1n1jteyN0vZCHMDQrihxeAu1tbU3Vq1aNR+X825QHlgNGngSpRGKeloGxpIuFiSB8tkLGBpy8d69e8RMtadNmxa1dOnSxWFhYf0KKwBSswg4JHN71h8lbnI8B090cm3v3r37v0ePHv1/blAOXTOSNKKXMpoz0AIzgsUxwAhuT+u1Lykp6aF58+YNio+PT4qOjn4JVeZLtDeFBw8ezE1PTy9gOY/ExMRQ9ILL27Vr12dnPsBH31tzXopNm5HAwbg+ru2SkpJdsbGxf9RAa6BAc1JUk7CqHVaA6VXQA0zUgVLWNg+sq1evLomMjBytfUTaE1dWVuZu2rTp07lz556ngBNmz579yLJly9YqO+fvJXD0ivU874XeAL8bzIHIq9B2IrSFbljaxlJPS1JGA0ZTRS0sbfOAsg0dOjRs+/btH6NKJdZidy7cAvjhGoEKjJjseETP9hw8FqWsXRcpKCjY1bdv349111Ovg2o1btiwYa8UlAP851eomrJ1aMMfAXh/GKd6WTzPQlTPr3B3vQYYSz1lRkZABWYkXXoVtGlgqW3kyJERW7duXYv2qtdlNNofHyHww9Wm6qQ8+RmDOJj0GKeevLCwcF+fPn0ydJKmNoy1ljz88MOxiw8Q+Pqib1WYF/pw8NYvXadcsWLFq2lpaTkG0MykzOvivElCrZc2rd3yQLOvW7fuAwVW3k1Uia9kOF5CgODl9U0ZhFqNMBftI1CPXUWVeeb06dOzlHMopsi9Vs+J0nFA6cTjnYB6LqO28xyBLTmu+5w6depcimYIOo/OWSxcUoHpDb/eO3pB27Zt2zC0WUMrMQxI3yXDTQw8Zadx+xpvaD0adBnvCR3Ds4GBgW3csDzNhhKrOAdIjOYgKtj8nPq28jsCF8sA2rZt2xvV/x2ac6JUSTizFJG3kC8CA5wqYejZhisHbDkhw+0qlCyntfa34zKUVrlOjiFFnEbFVWB79uypzs/PPxOOsHpFgOXzepqMbXGWrD6UHj16/Grx4sV9KTEjrwusTau9vIl0saJ59Qmh0Q7p1q3b83WoakcKfZMAB1qSw4UutZkyZcovNerYaB+Li4uvK993R4fhq4QpLf86gR2nXNcYP378yzrpMqq/+V2tYNkxdT1x4sQeyoGXygncqiJqJ31ZzqMXlQdygFKavGTJksJGt0QIh1G2iCGKkupAxxDw+dye5a/ZMozpL0CXLl2efeONNz5duXJlkeY+JB00o4GURmCcicGnSZyAweifO3bsOFTN8VA2OFlRBd9uJlBwuX9lmTNnzqus4zqHuVTSn+UmZg37LxAYPYBTJPkZBHaJoZoyZbiuCTQrJeomJeTy8vJ1aEyfuHMP4GIpgXMoKbW1vktByS0Ce88TFRrR8ZCw+xzuH9CNg4TuHIzqz8Eut+cLCwLoFsFBaCAeh7vuoBwW36KnUgqFvedkBCZA9+7dn8TNzyg5MCttayJtoo91MCgqKpqrwCq5TSB9i6QC83c5iTbsZKFxVBoTycGSSQL84UUBqmsk6Im549gneOga7m1qThUTOHRRhk2HXIZeu5zB74rLePzf9gMWLlzY5913381l2DBTtRQtDM17qWVERESCsvHeVgnyLrfIfA+vpQCl9w+fS7B+pgjLpghgQ7kouklgwwEZblQSdfsRhDoqgYeEngIkP8pD+t8k9TvPUlEN8H0BQWAcJCcnP6aYT4Yzo6mlX8NsjTCDg4MHKOvThS0Py7PkFhG4jBLdqzMHn2KosOmABHd15Z+1mTKMQDs191cCbEwVYNY6CfKv/auPF6+4PkdFRfVmlKY4E9VU17zFPjdeua6uTg0oYzvg43CQVmm9ItFThrme2d8PSVBV3fSYqzdl+CxLgtTVTuiEYcjyaQIE2/71fckNGRxoY5UwqGvXroGUKN9SaMFbGAjwGtaqqKg4pWykjRWgXZB/8ZEvLQxvLXWUAGEYwF5Bw17uDl9Y7dscGf5nmwTdOnAwZqDQuF9Ry8p7rlsZMmRIGCPKNx11F42kiZKAksmTJy/LyspKejo+oPOGNA72npLhbLEM3+U2NbZWl47tOHgpmUevyCkxmKtE7Pa4I/Gm+3Z39X3xFifc/9n8IhsznTBmEA9z0FHsOOCEWky7q+8C3P0ZoAOi6ty5cyhDolipEfHFhnkNyR85cuQepjKT1qxZkxEX3faxuGgBDuVy8O0J2W8b1eEhgFlj2V2pQXu1dKsT9v5g/RqZ30swb4II8V15OH5Bhp8R9P0613fh4eFBBmV0zsjwi5Qan9FQvFoz2rFjxx1sv1m7du2T06dPX9keb9jOEahr8A+YAJwahykSejxPhipUncAADhowWC1Cw70fpfh0gW8P5OQF13m6Yh56DG1YNark/TrXrYaGKhGcpSDdVCUJZaYL0Q1LNY4Bvvbaaz+kpKRcjO/Z9tH/ShHhT5t8z18iMZ56e7KoBqlfH5Fg/moH1NYpQ1x4AbyKU/LvIdTjOQSUn2dRpcsrCLQL5aBrBxeDo0ePXvdBHb08pb6AyCoeirrE2FOGCcjIyBiYmpr6qfLPB07KkH9ZBqJE6Sb+V8ZjQgI5GJqIQWikS8ImvdsAR3PlZglFhmNwu+otOwS1AbiHKh2AvbW5xePy5cuZMTEx7ytOn1JY1Nb89fV+oAHjDOpfemhq0W/58uWJM2bMeD8wMDDSn5urRtVZ9BcnbM10QnMt0ShN/9GfR1CuW1PAKdtJjwvQBntdWlqaianSWwbAaKVraomaNUokakrUNk05RoUWHx/f7vXXX0+IjY2NkWVZcDgcgiRJSuPdawE9II/fqQ09ojB+/PgRmaiGGZudcL5QhtZYnntKgE/m2yEEzf7hw4fThw0b9qUvwFhhBQdNJ6NppxN57JiAgMTCwkLp/PnzNQgsW7G3+uqpBnCjlH7yySeD1bQFU5izFyVorSXzOycsbAewJM2uVHufw11f+jAhpzFwJQZeUrvtNZkDxXrBhQsXjl+6dOn3OTk5r6xateoXBpM+Gsf97Hb0qe6A66WR6Pp78hiNQ6u1f+x2PSD0lgm+AjcbZhMoZWm1DRw4MCQ7O/vHBhRku11Tsikp2YsQf8zPzy/Py8u7W15eTgICAgI7derUDlOSiMGDB/fC9qS2ExWY6sx8rx72Z7eOpIVghnLpUBA6Hvk+9u0XOpWUdIO8Es2GsewYbQBEVSvMydoUFRUVK3Wrjz9zgBMvkTpVhOAg86mwioc8g3HS+s8dUI8md+WCABDwzHsPS5B10Ak/o1cTRPdTwz/KdyfQexZfaR471yWKg9OZQdDQ0HAjODh4CMND0kbFvWyYNoDV27EmgSy6ZgdKz9aIiIiJYRi4zl3QANu+csBTGPck9BOgRxcOItFTBbbhQJk9dAdzwBtlBM7/KMOh4xLk/0Sgxp3bnUV4qxYFwDNDBEjCcEBbTFQeSGgIh8fLkPLbOii7/eBVkum/dk0yuXv37kmgzxMjVlTSTMr0Y5Lihg0b+r388stZysETZ9ZB5n7vsMBuUwJQDm8as4A68xt5NJaHfr15sGEoILlL0koMNXAAD7NftcN+9Kjpi+rhJ4z1JD+0t2MEB5NetMG7v7OrUvvFF1/8esKECcd9Gdg1mu5kNALeOJBbUFDweo8ePdLzUHKGjLnv141YWWbPsMOCdJexzMIHc6WUqDfN6wJkRTpF3F9XD40PySkRfHgcJA0WoH8f1z+UlZV9Hh0dPV8zWUVihBNaCTQFZmTHGmOyqqqqv6MtSPjgTw3w4eqGFjPWzw0TYdpEEZ7GGw99iG0rldQqsA0jka+pOXvs2LE1o0aN2gtNp0KxYMkslbRq/LXD7vZ9+/aNSE5OXqf8w4Tf1MKuLGeLernuXXkE5nIeTTqPvb1dTuC9eQHwyiSbkjf+L4YxBAPluhMnTpyaNWtWDmMmD8sz+gTM6sQUO4YQv42Li3v7FhrlMRPuw7m81oncaUsyRvN/WRkIndEbpqWlTVmxYkURZSJKA9Cnc2pfkgD9xBSzScHaaZaCgZSpkfzNmzdXh4eHP3MWYU2eVgtFxa0P7fkRImzZGKjmizdu3MjG2G8OeE+q00qW00CyqBPsrAAzs2VeCXllZeXWkJCQAQWYG06dUQunc1sv7Rn9vAjr1wRCWFtOqUh8ExMTswCaTt106myWUwdLppS1Gn2K2SAIYaRK2hNqLyQlJiZORydwIg5DhB1/DYRnh4o+T1fyp739ZgBs3xykwrp69eo+hPVHdyWCNsdVr4KS1XjM6jx9llpSVVNZozqsxqB2iOLm//xhPXyY0QB3Kpp/aK4vhgnz3wqA8S/ZPKmZMlVzEdBnULNiLZpHlGlC4+uLDdrSD9MBeMINTJ3ewxQqRR3HPC3Btu0OWLWm3lIQa1rv6sxD2pt2GJdig05RPKZmzpodO3Z8MHXq1MMMO6UHZQSLMIoPll+d4cF8gp2NBm7NmjWJ48aNezMsLEyd43z6jAQ7dzpg2zYHFBb57hQGPSHAxIl2GDlShNgYl+Cjszn8zjvvLN28eXMpNH2xQWKEDbQ3QsBAHX0CZmUaushwBOpamak4fPjwqQiur+smCeSeleD7Y06UPhlKr8tQXU3U0R1FjQWBg5AQZQYhBz2685CQiHnm0yLEIKT27V1dw1z25MaNG1fOnz//HAWSL1JlNt2cmNkwI2BmsZl+LqlNu2/9+vWDR4wY8WJUVFSSv+pYWlr67ZYtWzahVOXpwDgYkGgxFrGYdBMrRt+qlLHUkwbO6yWIlJSUjpiexPXv379fhw4d4oKCgiJsNlsw9kcdApNxkSTpPtqme5jOoNbdvJCdnX1m9+7dJXv27Kmg5H5Oyj5JVyEmFu0VczaAL8D0HtMKNLNGm2fKMcZFmwzzWWiyBRVsAsXobTZDWu4XlPTQtLV9nuJ+9TcpmYBivd9NfIQmUyTKFy8ID/wKMwUaoQyI6AdCPR3hwfttf8kAFs84Dy1IJgZwaHaq2WBZnVtBgwY6WDJjxFwG7xcIJAYs0EEDAynThwIsSLRqwwPBsgyMoZ4018vrOsrpwNGmGLF+n4IFjVDsEUuaTOOrFvuhDxNoWlVtMmuP4iSM3gk3Gu6jwWAZcpnx/37D8hmYRUnTAuQoUCUw/tUBMJEyveTIDKDMn8jyF5ZfwAy8J6GA0v9Ah97mmf30DDGomhCD7WYH9UDAdLGKEThC8XpmvxNmRXoJAygx+L9m+dG1B/45LBNwYCBpxEKgDBYicENIzQWq2YDROmUCzyiLMJuYDGZwWgJSiwAz6izjB498hvDvAKRf/l+AAQD1zNyD8gF2FgAAAABJRU5ErkJggg=="},4085:(e,t,i)=>{"use strict";e.exports=i.p+"img/bmr.80525f7d.png"},5592:(e,t,i)=>{"use strict";e.exports=i.p+"img/custom.1892fe23.png"},3331:(e,t,i)=>{"use strict";e.exports=i.p+"img/for.66aa3ea7.png"},9737:(e,t,i)=>{"use strict";e.exports=i.p+"img/ib.80a1a8c3.png"},8142:(e,t,i)=>{"use strict";e.exports=i.p+"img/luf.412493d4.png"},2867:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAABNCAYAAADabljrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OERDN0YyNUM4N0EzMTFFQUIxNTRGRjU2Rjk5OTM3RTAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OERDN0YyNUQ4N0EzMTFFQUIxNTRGRjU2Rjk5OTM3RTAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4REM3RjI1QTg3QTMxMUVBQjE1NEZGNTZGOTk5MzdFMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4REM3RjI1Qjg3QTMxMUVBQjE1NEZGNTZGOTk5MzdFMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiUD/rkAABcdSURBVHjazFwJXBVV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"},3571:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAABNCAYAAADabljrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTREODlCQTg4N0EzMTFFQUE4NTZFQkZBMTgxMUZDMjgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTREODlCQTk4N0EzMTFFQUE4NTZFQkZBMTgxMUZDMjgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5NEQ4OUJBNjg3QTMxMUVBQTg1NkVCRkExODExRkMyOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5NEQ4OUJBNzg3QTMxMUVBQTg1NkVCRkExODExRkMyOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmabzNUAABbUSURBVHjazFwJVBTHuv5nAdn3VUBFFFwQlCUa0YCBRCKJiXpdEtSXxeXG5LxE854aj4lPYvSqcU+M8Z6bawxRMS6JSTSuuC+guQqyo2yyySoIiDAz7+9ihvQ0VT09OGrqnDo9090z1fXVv3z/X1Ut02g08FcsZmZmMta1trY2zV/kGfW+y54WmGJgPUp5kkA/dTCNAJF1n+avAuxTA9MAiDIJn2lAagyB/DgBfSpgMoCUMY6GJFMMVA0N1McF6BMHkwIkHzyhFMpEQKUBqKGASQX1cQD6RMFkACmjACoTAVTGUGkNBTzW98cC6BMDUwKQcsE5GQNcloqrKZ9Z9bEAKgRT+YScuBAouQBQOeOaEFA+QHIeiDLtUc076n7LB50M8uOyoconIJU0IIVH3WcFQ0JZUsk/qil2U00zE48LUOVTBFIh+CwXACtn2Ew+eNxnlaANNQ9wOe+7URz1qYNpwE7KKeCxjnIRMPkg6gDTfVYJ2lezpPtxSKfyCdhJoAApVgmQixcv9pk+fXqcu7t7KHbcsba29mpubm5qbGzsKR5wKp5kqkSeRf0kJNNk3lxEvfmSJgROyTvqPiuSk5NfHTly5BK5XG4tbKe8vPzn4ODgT+rq6toEgLbzqoonrWqBWVCbysObjBqJhIdCj8wC0owHYOfnEydOjI+MjPyM+3FpaSmUlZXBw4cPwdnZGfr37w8KhQKqq6vPffTRR8t37dpVwQOyjQGqToo1YoB2B9hHAlNCfC1mIxUCKVTyQCTHxMTE0VOnTt3E/Vl6WhoUFxXpNWBjYwPPjBgBlpaWUFlZeWbEiBGL7ty508IDs00AZruIhGpY4adUcI0GU2KCgmUf+VKppADZWZcuXRqwbNmyRO4PcrKyIC83l9qgubk5REVHk2NRUdGv/fr1W84D8yFDSvmAqhhgagzZVSGwQjDlYiCKJCiEYMkpXllBAY7/2VxX0dkMWLRo0Qbuz4sKCiAvOxu7rabWhw8ewIUzZ8iD9O7d++XU1NS5/P/i/bdQ+qmOjjH4NI4rhgkbTBEQWRGLXESdzXifzQVA9oiPj+81f/78RRYWFq6V5eWQdu0aaFQq0Xr/3j24fO4ceaihQ4fOQvMQQwHUTNC2UuD0FBRKJqP0TyZVW7uoucQsj5yh1jLBqLNsJOkw2kCLrKys1R4eHsMb6uvhzNGjRjlBv4AAGDR0KLS0tFQuX7584bp163K1qt4msKEqA16eFeuzslPUIEAPTIlZHlZczZJQM4adNM/MzFyEHnrcw9ZWOHHoELS3tRnNKoZHRYF7z55QU1OTjoPyPg/EhxSHpGIAqhE4JrXUTBT/u9zILA9f+lgqbc6oPXhHi2PHjk3jgOT++DxKZBvaQkPqTauXT54EVXs7R52GXL169X1BOz0EbZsxKl/9xSIxsXwr0wEZS3OED2cu6JCuWnDHsWPHekRERMRzDaWePg2NtbUoK6pu14ta84BkfvIXX3wRTmlXCK45RWOUDAclkwDon2ouEr2IUR2W91ZQyLge2GgnFyOliSxFz5166pRJIrCBISEQMGwY3L17N9PLy+sjgc1k8U+h2gspFM0UsFReIzfwjGL2UMmgOrrRt+BLo+6ITseKA5IbxJuXLoEGVdQUNTMlBdowUnJzcxuEEurMkMoeFAkVMgClAfpkVKJDZmRszarkwV5//XWfkJAQb2tra5vCwsJmlBxOKohqN6EHN2V50NQEZkjmg4KC3L29va3Cw8MdMb5vv337dvWOHTuKtRLKf36+p5cbmMQTzULR1Ly7IHaqs62trTlSlOEIYBh2KAgdQyDtqZqQKx797jtJINk6OUFrczMh7GJl/LvvghKjEozpc1DVA/jXmpubK3Ag0zFqyrx8+fINjLgyKKovxRSoWd6eBqZQtWlZni62cO3atcHjx49/xdXVNRQB7d3ZiYYGIoHtqIo9MKa2srMDC+uOZFAWqnlOairxxmIlevp0uHX9OhTevMm8Z1hMDPQNCur83tLYCM1YuWJhZQXWDg5699fX12diXH/l4MGDxxISEnIEoagwJKXZVWHCpAuYhmxkFxAPHz78clhY2BRHR8dhugetKimBqqIiuFtcDNV37ujbELkc3Pv0AS9/f/DVdv76iROQ/8cfTKAmLFgAOZcvQ+bFi9TrgyIiSCVtY5sc8KU5OcDn0Nb29uDi7Q2Onp7g4uUFDu7undeQo6aePXv2+ylTppwWkH6hpAodE98pgUypVMooDkcsxibHo0ePjgsNDX3T3t5+qE4C72BMXZiWBvfu3pWkvnYuLjD81VdJx+5kZcGlgwe7GnCZDP728cdwE+PxrAsXulwfOWkSeAV0aHTG2bOQef68pLbdevcG74EDyW91moJm4OSCBQuWJyUlVYpEUTRAyagp0EDLKAkMoXTyKY/Z8ePHx40ZM2YTxtMenArfTE4G1BeoyM+HB5xqMZIUwtp6/z7cwljcrEcP8EVa44yRTNGNG/r3oXQNjoyEytu3oaqwUO+aD4IxaPRo8vCX9u2DfDQZUttuqquD8txc8hsVRl7OKK22dnZ9X3rppSjUsj+wjzUCm6g2kG3qAqaYmhOp3Lp165BJkyYRz3H9yO9wae9eqC25g9GIWnJHhLUiLw9sHB3Be9AgkvytyM3jXUcwx4whbVTm5Xee5x7y+TffBAU6nPO7dsOdmxndaluN9pobpAI0M05ePcHB1dVx8ODBA9asWXOAMnnHCjGZEZCMkW4jx5iYmLHchTzOeZw9g4LfZpJ6ZW8StCK1GTBqFNg62Otf555Y1a53ztOvL5ijYylJT4fS9LRHbv9BfR0kb98O9RUVYGdnNzQzM3OegG/SMkqS8pkyFt9EqhPG3VCC6mgqwq2rV5KSOhxKVFTnObU2+YEapHcvBzpXLu/ebdJnuPHrr+R/OVZCoYkyhsCJknZa6k2m5aWqDoKK0tLWblLSXZqWDi3IP/uEhsKlxB+IveSKCiMbjozr2uNsrGvfvlCF4Wh7c4tJn6H6dkEHt7W1HWIARJAqmawpWxnys1vcB3s3VxzJNpPXHG0W3R3VWHeusboarJAn6r47+XiTewqQLpm6fYXWhajV6gcMCTQq064RAzUvL48Qwl4hIURSTF0LLl7qUDPkorpzJegcOGnUfXf19SX3VGRmmbx9R2QUXLl3716WoSxRdxYh6IGL1OFEbW1tjouvb4BbPz+o5OZrDJSegYFgiZJ1SwIHbKq6S3Kb3G+yjh4lxNvG2RnskWxbWFsR0t8P7SXnhRvKSk2+kKBPeDhop5n/Y8oVHcz1kBiGnR84cGDAsAkT4UhCgsFGHjbeh5C/TYbw+HjIO5UMN3/5pYOPMkoJcs++GNFM3rSJgKcrk9avJ+ByRL4G7aWYzXbAaKc/8lOv4GCMTBRw7POV0FRTI/qcFra20Cs0lHzevHnzYSnCJQVMGpCd54OCgrajGsS69PPzsnF2gsbKStGHvJudBYcWLYRhU6fCEIx4BsaOhWIkyzcPHYLqW7fYxpoHpA5ErpJp15YWYuOEpRdKVuArr4BLv36d53IwXG1vaaber5cTHfsiabOiouLMzp07qwxMV3TBSsnNBfNic6mrcdVVVVVpvXv39gp9/Q1IXrtWkhr8gR46+7fDEDZzJviOiiAdr0KCXoBhYj5GURxAnERxUslNSRxf8TmJkl5ZuwaKLl2GnGPH4Nm5c8AOVd7MwrJTMpUWFuAfEwODX3kZrJycyLmy6zcg6/ff4Q5KudTiHx1NjgcOHNhjYAKNCi4t0SGcWeQnf3VJVcvo6Gj3n376aSeGlE57Z82CZgMqJCzuGO0MnTYNPIcM6TAFCFpdcTG49O9PpO/XRYugFkNI7p6hKNGNSKb3cyk2dERxq1eDI8bWmWgu5Eol9Hv+eXKeK7kIeO7x41CNoa0xJXDCBDLI6A/S3d3dZ+OpVi5Fqk18tPIm6VSUhQ0aFpgyyuwiP5PemTnPz8//HKUzqiQlBU4kfNYtg9838jkImjKFgKMryatWQeGFiwSoGft+JEeuHF36CUrcdeLMpny3A+QKRedvOIm/vmcPtGDMbfTqNRy8mQcPkHYSExOXvPXWW9xcSosWxFZGJkm4fqkLNdKIiLSudo5IfHz8+paWlmqfZ54B227yzlsnT8LBuXMheeVKaEcv/qChAQqQa3LXnH37kA6iZ73NPYjnkEByvrm6CjIOHOjgg+jVf/nwQ7i4ZTM0IxPozjOMfG8eaQdNVzoCeb4b07+ic0BUOyloRH3lypUGHYWI/uSTR+J3VRmZoFGroYxb0aE956Tlk8geSrijI497lvFs4d30m91u1xkjKf/YWI6kq1asWLGJsjhBI3FBApO0ayhACkEleb2YmJhN3IygI3Z8OEqYsbGwB9rMcevWwZQfEsHMygoay8o7r+mcCUoMmSyyR+eku8bRLdIBlCjutzZubka3zU1xvKR1nunp6b9u3bq1AOhr5Q0uQBBTc1a6qQuoKJktyMn+SYz4lMkweMJrkrI0vYY/Ay9v3gRxGzeA59DgP/khFypq72nVTrjZ29tb6ZyU7poVl1nSzRF5eMDU3bsgcOIEyVkiLmwcv/UrMLe25iT/P2FhYd+IJH41DEntyjMp9Ei4XUSo4nrzIatXr87x8/P7Au3N/zyL9svFPwCubd+OUlamT4odHcE/bhz0Q7Vy9vfvtHlnV6wAV/Tug9ER+YwcCQqlGfLCFmjS8tfRo0e/QKKjyruddMh7+HByrLxxA4ovXgQvtNsjPviA1JtJSZB/5Heoysyk2jDu3lHIFuxw4MrLy7Pnz5//tWCeRyNhvlzDXLhFmVSjzf+YCeahdZ7dkquoJlEI6N+VSqUFl/EpRo/cgHRHppCDfa/e4IESqLS07Gw8//ARuLJ5MzRppznGfJYA/ePi4Pq/d0DKli0QuexTCECSn/3TT9AnKopzu7BzzPNEtWdduUy+bw8J/TNsDQ+DkNlzoGdYxzk06FCD4e59HJTW+nuEj/Z9IQZB9OkIXZua6j788MPPd+zYkav13g94VefFH/Im2/hzQV22y7AWblGz7JTFBha6OmfOnAFr165NsLKycjRERcpSryJg/4YSfqyOwLyIttM3poM4F6FH743hYAvyVw7A4DffhBEL5kPOzz+Do58fuAV2zCDnIzE/uXCRfi4AQR0+f37nPXpz60idMvYkgfPAAWSAMNrJjo2NXZaRkVHDA5TPMYWzlkIJlgymXDA/rlv5IFy1YYm2czO3mqLw1CnI2L0brD08YRDaUCck4ZyXbigpQa+bDreRVJec158Ys0cvHffNN0TthOX6v/4Fl9etB2t3d5iRrL+UprW1tblHjx5Wtbm5cOb/lkMlclB+8QwLg16jR4NjPz8yvVF89hykJyZ2Xp9y6GdwwrCzsLDwdP/+/RN43FIomfyp326BKWOouZlgiYklRkKvxsXFLeTUdeeo0Xod6mFvT5K8rcgfacX3hRcg9qsv/zTQCHwuxuycY6jNy4OUjZs6r7kMHAgBEycSr2+DTsdn9Ci9/0rZsBGuff21ZLJug2HpjDOnuTn9ltmzZ7+NhL2AoeJCst5lZlIMTJmBdUV6kllWVrbF1dU17PTijyFr717JnYlYuhSC3n4Lrn35FZGqmA3rwdzWFn5A9WsoLhGPo197DaLXr0O1rYezn34Kg6ZNBW+M6QtPnIAjc+ZKfgbuP7j/yszM3BMcHLyBByYt8hEuRgBDE2qGSLyeV3vjjTdcuLWRJC4+eFDSmkoujn4dO80BeWnlKriCXK8Q4+k9L76INrIW4k+fhr74mfX7gEkTCQiq1lY4OHky5KMkH3ojHs5i4NAnJgZit22TvL4zfUfHEp2ePXsGAXt3MEjJILGWYbPWYpoJ7WZKSsrsYcOGvZ+HHTr27jyDo6JAIGdcuggWGF//Mn0GlApWadj07AnTz58j91VglFN0Khnq8/O51RLgiuHkAATP0tkZ6gsK4LcZM8mRX1zR6TgF+EPO/gOSpISzpe9k3AQzNCsjR458LjU1tVag4g+BvVlLPwXXjdyE3uj4+PgQxp27bz8ZaSkTSheWJ0DuAXpnG9FRJY6MgBfR9nk+Ew4eoaH63hiJPCfN15BSUXOnyDu5KrW04zPX3y4gAzVt2jRvLZiSIh5jpy00IlERGR1bW1uSha3hFlVJALOtsRFyf/xR9J5G5Ka/zZgBs3Kyud1pjcgU0h0cHDwdHR19f544CaqQFZiyNJWXETB9fX3daKk1kLD5qrs2s7O+/fbbLkhNPJvRi98rLOzWmnRWHb7wf0mDGKFk+Pv7r8SQjyyBG/bePJO2w9VmbdCA1M5BJC9hUDrlRqq1XiORkZFkKRkX5Ziyc8FzZsOQd94hjX/55Zc7OIFOSEhIQgpz33/SJIhYtsyk7emSJtbW1hYSkhtMQOUSJRJoGSSkQ2T52MN79x5pgT+/Dps3D577xz9Ig0lJScs3btxI9vYgly3dsGHDYu58yAf/DXHf7yTLY0zRpoNu6riiohCkr2E3mWQSu3Lu3DkyN+AYEGASCYlcswZGr1pJGt23b9+y6dOnn+B71SVLllxHQN9FO1rnN348zEy7AYP/a+YjtWnp5AQ+Y6JIm1u2bLnK4JGSbKbYDjUp25vN6uvrf0T1CC3FUC35gw+ghpGpEZ0VnDEdQrhskzaW3r9//xL0rKcoHSGUbebMmZ6rVq1aiDbuWbKkBZ1f9g+7IOv776G5qkpyu77jxsGYTRvBtlcvbu7nuLu7+9+BvjtDJbZiWCqYhrbvKbdt2zY4Pj5+i4WFhR+hSHt/hNILF6A2OxuaSkuhFU0AFyKSxhQKMLexAWsM45wGDAC30BDwfu45cNBOy9bV1aVt3779i6VLl2ZB1923woyW/MiRIy+Hhoa+hl6eLEFua2qC4pOnoCIlBWqQO94vK4fWujoyfWuB3NTK3Q1sfXph2wHgER4O7mFhuiXZZxdh+fbbb8sZS7DF8pySJJO2c5e6ScDFxcXi2rVrCTiyYxUKhb2xkomduZGWlvZbdHT0Aei64V4jyLF22eC1Z8+eqIiIiDgPD48ooyhRU1MGsoSjgYGB20B8r7pKxJYaBaYwv8mXUL24/b333us5YcKEcORrYXZ2dn2RNrkplUpbnm1WoUdufvDgQU1DQ0NBUVFR9rFjx/5YvXr1LWBvZBJKJm3TKzmOHTvWcdasWSEDBgwIdHJy8rO0tHTG/thhH9VtbW0Nra2tNc3NzeXV1dUFN7DMnTv3Og84flZI8qYAY8AU28bCX57d5T0b8OerdhSU1WMaylwL640FIAATgL7XXbj5ibZfR2/+Crpu8KdV/ttqQAxMQ2uNZIxZSl1RMR5YRemgsAhHmjb6QsIstuGLthceGAMoBFQMRKZadyecFAIFBh5SBV2XLssY80pAmXNRG+iA2Ju7aC+XEvZFTQFUbUClJYWV1Hd0MFRdTCKENlUmAqbQDrKkkeYxxTbJyowAk6YRajD8YhSNWGhpjGQKVZRF6GUGpFI0RAVpb3bRtaESaUs4gIYANTSges+jndE1Ss0NASqjqLrMAJBgQEJBIpi6tlRA3xPOcnqsdQCGQDQ+AqKoOkvFhB0Qvm4CgL0OXCyDLboEhfK/Ul5kChLa04CRLzV9lPdn0jrGf0Mg/z2WNABlIhkYFrgsBwTAfs0ugLT3FRtaiyo5j2lQMhnSCSJSx+qksblSKSZGJvGZpM5nSRlEPamkSaYp37gFRoJoqJNSwRR7FbnJ2qS9xqzb74KT+LJ6mYRzGiPMiLGlu2Cyp1lM+S64RwT3kQqrI4+z7Ud5S+H/CzAALVktN+EOZ6gAAAAASUVORK5CYII="},3429:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAABNCAYAAADabljrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUJENjIzNTY4N0EzMTFFQUI4NjVCRTU0QTkxN0JENEMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUJENjIzNTc4N0EzMTFFQUI4NjVCRTU0QTkxN0JENEMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QkQ2MjM1NDg3QTMxMUVBQjg2NUJFNTRBOTE3QkQ0QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QkQ2MjM1NTg3QTMxMUVBQjg2NUJFNTRBOTE3QkQ0QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PipBwRwAABbgSURBVHja1FwJfBRV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"},1822:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAABNCAYAAADabljrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTRDQzVCNjU4N0EzMTFFQUJCRDFERDZCQjFGMzYwNjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTRDQzVCNjY4N0EzMTFFQUJCRDFERDZCQjFGMzYwNjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBNENDNUI2Mzg3QTMxMUVBQkJEMURENkJCMUYzNjA2MiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBNENDNUI2NDg3QTMxMUVBQkJEMURENkJCMUYzNjA2MiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmIhL1YAABbFSURBVHjazFwJfAzn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"},9857:(e,t,i)=>{"use strict";e.exports=i.p+"img/snv.3db30bec.png"},6737:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABUCAYAAAAoEtHdAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzFENzIzRDY4N0EzMTFFQUE2NzhBQ0Y5RjNFQkJFNTkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzFENzIzRDc4N0EzMTFFQUE2NzhBQ0Y5RjNFQkJFNTkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3MUQ3MjNENDg3QTMxMUVBQTY3OEFDRjlGM0VCQkU1OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3MUQ3MjNENTg3QTMxMUVBQTY3OEFDRjlGM0VCQkU1OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhWFGj0AABahSURBVHja1FwJeBRV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"},972:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABUCAYAAAAoEtHdAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzhDRDEwNDg4N0EzMTFFQTkzQkNBRjQyNzM0ODVGMEEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzhDRDEwNDk4N0EzMTFFQTkzQkNBRjQyNzM0ODVGMEEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3OENEMTA0Njg3QTMxMUVBOTNCQ0FGNDI3MzQ4NUYwQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3OENEMTA0Nzg3QTMxMUVBOTNCQ0FGNDI3MzQ4NUYwQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pr8IU9IAABXPSURBVHja1FwJdFRV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"},2338:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABUCAYAAAAoEtHdAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6N0U2MDcwQ0Q4N0EzMTFFQThFQjlFQUE0NTlGN0E5Q0IiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6N0U2MDcwQ0U4N0EzMTFFQThFQjlFQUE0NTlGN0E5Q0IiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3RTYwNzBDQjg3QTMxMUVBOEVCOUVBQTQ1OUY3QTlDQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3RTYwNzBDQzg3QTMxMUVBOEVCOUVBQTQ1OUY3QTlDQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtLETXUAABYlSURBVHja1FwJdBRV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"},9600:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABQCAYAAACkoQMCAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODMzNzBGNjc4N0EzMTFFQTk3RjdBMzQ5NTBERkUzNzYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODMzNzBGNjg4N0EzMTFFQTk3RjdBMzQ5NTBERkUzNzYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4MzM3MEY2NTg3QTMxMUVBOTdGN0EzNDk1MERGRTM3NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4MzM3MEY2Njg3QTMxMUVBOTdGN0EzNDk1MERGRTM3NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqSyi4sAABXrSURBVHja1FwJeBRV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"},6827:(e,t,i)=>{"use strict";e.exports=i.p+"img/tb.5d68012d.png"},8035:(e,t,i)=>{"use strict";e.exports=i.p+"img/acrobat.95b437c9.png"},1465:(e,t,i)=>{"use strict";e.exports=i.p+"img/actor_fall_of_rome.b75f5072.png"},9799:(e,t,i)=>{"use strict";e.exports=i.p+"img/alchemist.840063ca.png"},8723:(e,t,i)=>{"use strict";e.exports=i.p+"img/alhadikhia.4a73c015.png"},5118:(e,t,i)=>{"use strict";e.exports=i.p+"img/amnesiac.d1164c72.png"},6474:(e,t,i)=>{"use strict";e.exports=i.p+"img/angel.eb4f8304.png"},819:(e,t,i)=>{"use strict";e.exports=i.p+"img/apprentice.b5ddec0f.png"},1607:(e,t,i)=>{"use strict";e.exports=i.p+"img/architect_fall_of_rome.17517e2f.png"},6835:(e,t,i)=>{"use strict";e.exports=i.p+"img/artist.dbc53820.png"},3169:(e,t,i)=>{"use strict";e.exports=i.p+"img/assassin.c58445a9.png"},946:(e,t,i)=>{"use strict";e.exports=i.p+"img/atheist.c56cbd56.png"},7726:(e,t,i)=>{"use strict";e.exports=i.p+"img/augur_fall_of_rome.d1769fc9.png"},1584:(e,t,i)=>{"use strict";e.exports=i.p+"img/badger.9a786aaf.png"},6577:(e,t,i)=>{"use strict";e.exports=i.p+"img/badomen_fall_of_rome.8b1f5b0a.png"},5926:(e,t,i)=>{"use strict";e.exports=i.p+"img/balloonist.b9ceaad1.png"},8069:(e,t,i)=>{"use strict";e.exports=i.p+"img/barber.9231782b.png"},2437:(e,t,i)=>{"use strict";e.exports=i.p+"img/barista.aba99908.png"},8230:(e,t,i)=>{"use strict";e.exports=i.p+"img/baron.41e60b5f.png"},1082:(e,t,i)=>{"use strict";e.exports=i.p+"img/beggar.1bd5bd9b.png"},5343:(e,t,i)=>{"use strict";e.exports=i.p+"img/bishop.b446b930.png"},9363:(e,t,i)=>{"use strict";e.exports=i.p+"img/blacksmith_fall_of_rome.f83cd3c5.png"},1594:(e,t,i)=>{"use strict";e.exports=i.p+"img/bonecollector.b7e7d2e3.png"},3682:(e,t,i)=>{"use strict";e.exports=i.p+"img/boomdandy.6bbc3226.png"},7479:(e,t,i)=>{"use strict";e.exports=i.p+"img/bountyhunter.75133577.png"},1990:(e,t,i)=>{"use strict";e.exports=i.p+"img/buddhist.c4032080.png"},367:(e,t,i)=>{"use strict";e.exports=i.p+"img/bureaucrat.c5c9e954.png"},177:(e,t,i)=>{"use strict";e.exports=i.p+"img/butcher.63e2dfd4.png"},4697:(e,t,i)=>{"use strict";e.exports=i.p+"img/butler.24394197.png"},7946:(e,t,i)=>{"use strict";e.exports=i.p+"img/caesar_fall_of_rome.c8b153c1.png"},6214:(e,t,i)=>{"use strict";e.exports=i.p+"img/cannibal.53c84ab6.png"},1708:(e,t,i)=>{"use strict";e.exports=i.p+"img/centurion1_fall_of_rome.cbc7e3a4.png"},7637:(e,t,i)=>{"use strict";e.exports=i.p+"img/cerenovus.de31aa19.png"},1146:(e,t,i)=>{"use strict";e.exports=i.p+"img/chambermaid.23651784.png"},1248:(e,t,i)=>{"use strict";e.exports=i.p+"img/chef.cb1db570.png"},5081:(e,t,i)=>{"use strict";e.exports=i.p+"img/choirboy.ca7ce535.png"},9114:(e,t,i)=>{"use strict";e.exports=i.p+"img/cleopatra_fall_of_rome.eea61ec9.png"},5102:(e,t,i)=>{"use strict";e.exports=i.p+"img/clockmaker.8fb03f70.png"},759:(e,t,i)=>{"use strict";e.exports=i.p+"img/courtier.9b034b79.png"},4163:(e,t,i)=>{"use strict";e.exports=i.p+"img/crassus_fall_of_rome.65f5bf79.png"},2763:(e,t,i)=>{"use strict";e.exports=i.p+"img/cultleader.a0e47655.png"},7037:(e,t,i)=>{"use strict";e.exports=i.p+"img/custom.a69142c5.png"},5533:(e,t,i)=>{"use strict";e.exports=i.p+"img/damsel.85d8c3ec.png"},8141:(e,t,i)=>{"use strict";e.exports=i.p+"img/deusexfiasco.a8b5f898.png"},1683:(e,t,i)=>{"use strict";e.exports=i.p+"img/deviant.f978b3d9.png"},5549:(e,t,i)=>{"use strict";e.exports=i.p+"img/devilsadvocate.f56ba1b8.png"},393:(e,t,i)=>{"use strict";e.exports=i.p+"img/djinn.68f1611b.png"},5142:(e,t,i)=>{"use strict";e.exports=i.p+"img/doomsayer.6f86a514.png"},1610:(e,t,i)=>{"use strict";e.exports=i.p+"img/dreamer.52d942e8.png"},3669:(e,t,i)=>{"use strict";e.exports=i.p+"img/drunk.b9aca105.png"},2491:(e,t,i)=>{"use strict";e.exports=i.p+"img/duchess.bfe41d6c.png"},5695:(e,t,i)=>{"use strict";e.exports=i.p+"img/empath.797679aa.png"},4595:(e,t,i)=>{"use strict";e.exports=i.p+"img/emperor_fall_of_rome.9020eaad.png"},7571:(e,t,i)=>{"use strict";e.exports=i.p+"img/engineer.31903b46.png"},1836:(e,t,i)=>{"use strict";e.exports=i.p+"img/evil.92eb9f6f.png"},7664:(e,t,i)=>{"use strict";e.exports=i.p+"img/eviltwin.697ba2e2.png"},5858:(e,t,i)=>{"use strict";e.exports=i.p+"img/exorcist.767988e8.png"},5025:(e,t,i)=>{"use strict";e.exports=i.p+"img/fabled.0b1df739.png"},1833:(e,t,i)=>{"use strict";e.exports=i.p+"img/fanggu.29f6e52e.png"},4390:(e,t,i)=>{"use strict";e.exports=i.p+"img/farmer.204e36f4.png"},5297:(e,t,i)=>{"use strict";e.exports=i.p+"img/fearmonger.87865300.png"},9332:(e,t,i)=>{"use strict";e.exports=i.p+"img/fibbin.60f4e4db.png"},5076:(e,t,i)=>{"use strict";e.exports=i.p+"img/fiddler.4f376c70.png"},2776:(e,t,i)=>{"use strict";e.exports=i.p+"img/fisherman.95d49bb4.png"},6053:(e,t,i)=>{"use strict";e.exports=i.p+"img/flowergirl.7edc3851.png"},647:(e,t,i)=>{"use strict";e.exports=i.p+"img/fool.93b22189.png"},9336:(e,t,i)=>{"use strict";e.exports=i.p+"img/fortuneteller.8af750ee.png"},4306:(e,t,i)=>{"use strict";e.exports=i.p+"img/gambler.75fdb65e.png"},782:(e,t,i)=>{"use strict";e.exports=i.p+"img/gangster.f11eb773.png"},2990:(e,t,i)=>{"use strict";e.exports=i.p+"img/general.f1c0f69a.png"},7434:(e,t,i)=>{"use strict";e.exports=i.p+"img/gladiator_fall_of_rome.5c7d3148.png"},8791:(e,t,i)=>{"use strict";e.exports=i.p+"img/glykon1_fall_of_rome.2c03aafc.png"},1730:(e,t,i)=>{"use strict";e.exports=i.p+"img/goblin.02299149.png"},8536:(e,t,i)=>{"use strict";e.exports=i.p+"img/godfather.2d238358.png"},7274:(e,t,i)=>{"use strict";e.exports=i.p+"img/golem.345927db.png"},6832:(e,t,i)=>{"use strict";e.exports=i.p+"img/good.56355047.png"},1273:(e,t,i)=>{"use strict";e.exports=i.p+"img/goon.b13623e0.png"},5965:(e,t,i)=>{"use strict";e.exports=i.p+"img/gossip.9a1a82e6.png"},4950:(e,t,i)=>{"use strict";e.exports=i.p+"img/grandmother.f634b548.png"},2325:(e,t,i)=>{"use strict";e.exports=i.p+"img/grinch.13e70c3d.png"},7768:(e,t,i)=>{"use strict";e.exports=i.p+"img/gunslinger.f15caca7.png"},4896:(e,t,i)=>{"use strict";e.exports=i.p+"img/hannibal_fall_of_rome.0c7fd6ae.png"},6226:(e,t,i)=>{"use strict";e.exports=i.p+"img/harlot.62982b44.png"},3865:(e,t,i)=>{"use strict";e.exports=i.p+"img/harpy.9d1d785e.png"},5649:(e,t,i)=>{"use strict";e.exports=i.p+"img/haruspex_fall_of_rome.8fef3ce5.png"},3490:(e,t,i)=>{"use strict";e.exports=i.p+"img/hatter.e181f53f.png"},5477:(e,t,i)=>{"use strict";e.exports=i.p+"img/hellslibrarian.8829a357.png"},6314:(e,t,i)=>{"use strict";e.exports=i.p+"img/heretic.d1e16abc.png"},934:(e,t,i)=>{"use strict";e.exports=i.p+"img/highpriest1_fall_of_rome.6644415b.png"},212:(e,t,i)=>{"use strict";e.exports=i.p+"img/highpriest2_fall_of_rome.a6f84c98.png"},6251:(e,t,i)=>{"use strict";e.exports=i.p+"img/highpriestess.bc9eba89.png"},7893:(e,t,i)=>{"use strict";e.exports=i.p+"img/huntsman.da36da94.png"},4671:(e,t,i)=>{"use strict";e.exports=i.p+"img/iamspartacus_fall_of_rome.269dd2a0.png"},2830:(e,t,i)=>{"use strict";e.exports=i.p+"img/imp.3a25e747.png"},6580:(e,t,i)=>{"use strict";e.exports=i.p+"img/innkeeper.27dd7e60.png"},9813:(e,t,i)=>{"use strict";e.exports=i.p+"img/investigator.a271bb3e.png"},6306:(e,t,i)=>{"use strict";e.exports=i.p+"img/judge.90d392cf.png"},8785:(e,t,i)=>{"use strict";e.exports=i.p+"img/juggler.23c97e47.png"},3108:(e,t,i)=>{"use strict";e.exports=i.p+"img/kazali.72457ed2.png"},6865:(e,t,i)=>{"use strict";e.exports=i.p+"img/king.9d143aab.png"},1938:(e,t,i)=>{"use strict";e.exports=i.p+"img/klutz.48a6eb63.png"},3395:(e,t,i)=>{"use strict";e.exports=i.p+"img/knight.f551815d.png"},2339:(e,t,i)=>{"use strict";e.exports=i.p+"img/legion.242a9b50.png"},4394:(e,t,i)=>{"use strict";e.exports=i.p+"img/legionary.e5f5b161.png"},2429:(e,t,i)=>{"use strict";e.exports=i.p+"img/legionary_fall_of_rome.e5f5b161.png"},3245:(e,t,i)=>{"use strict";e.exports=i.p+"img/leviathan.f4df0008.png"},651:(e,t,i)=>{"use strict";e.exports=i.p+"img/librarian.57805893.png"},4090:(e,t,i)=>{"use strict";e.exports=i.p+"img/lilmonsta.0a6a2da5.png"},1424:(e,t,i)=>{"use strict";e.exports=i.p+"img/lleech.625a8347.png"},2561:(e,t,i)=>{"use strict";e.exports=i.p+"img/lunatic.678a4353.png"},8746:(e,t,i)=>{"use strict";e.exports=i.p+"img/lycanthrope.bafb571d.png"},4214:(e,t,i)=>{"use strict";e.exports=i.p+"img/magician.97d3f9b4.png"},712:(e,t,i)=>{"use strict";e.exports=i.p+"img/marionette.c3121487.png"},7100:(e,t,i)=>{"use strict";e.exports=i.p+"img/mastermind.c05f4a71.png"},3850:(e,t,i)=>{"use strict";e.exports=i.p+"img/mathematician.0b38bd49.png"},8054:(e,t,i)=>{"use strict";e.exports=i.p+"img/matron.72aeb8e5.png"},8827:(e,t,i)=>{"use strict";e.exports=i.p+"img/mayor.0b765477.png"},3304:(e,t,i)=>{"use strict";e.exports=i.p+"img/mephit.306b51a2.png"},2841:(e,t,i)=>{"use strict";e.exports=i.p+"img/mercenary_fall_of_rome.70afa5cc.png"},7377:(e,t,i)=>{"use strict";e.exports=i.p+"img/merchant_fall_of_rome.27faa79c.png"},295:(e,t,i)=>{"use strict";e.exports=i.p+"img/mezepheles.306b51a2.png"},847:(e,t,i)=>{"use strict";e.exports=i.p+"img/minion.95728595.png"},3415:(e,t,i)=>{"use strict";e.exports=i.p+"img/minstrel.aad1e1c8.png"},3100:(e,t,i)=>{"use strict";e.exports=i.p+"img/monk.d96796d7.png"},8749:(e,t,i)=>{"use strict";e.exports=i.p+"img/moonchild.881a5413.png"},1021:(e,t,i)=>{"use strict";e.exports=i.p+"img/mortician_fall_of_rome.bd8c4c49.png"},4473:(e,t,i)=>{"use strict";e.exports=i.p+"img/mutant.15eaead8.png"},2666:(e,t,i)=>{"use strict";e.exports=i.p+"img/nightwatchman.5b638beb.png"},1004:(e,t,i)=>{"use strict";e.exports=i.p+"img/noble.e494eec4.png"},2458:(e,t,i)=>{"use strict";e.exports=i.p+"img/nodashii.dc3e933c.png"},3073:(e,t,i)=>{"use strict";e.exports=i.p+"img/ojo.0a40b2f2.png"},9624:(e,t,i)=>{"use strict";e.exports=i.p+"img/oracle.a26d71ee.png"},5705:(e,t,i)=>{"use strict";e.exports=i.p+"img/organgrinder.1311fb8b.png"},8814:(e,t,i)=>{"use strict";e.exports=i.p+"img/outsider.a1018bf7.png"},5873:(e,t,i)=>{"use strict";e.exports=i.p+"img/pacifist.27219b06.png"},3300:(e,t,i)=>{"use strict";e.exports=i.p+"img/philosopher.96fd28a7.png"},4555:(e,t,i)=>{"use strict";e.exports=i.p+"img/physician.65aa8f67.png"},9979:(e,t,i)=>{"use strict";e.exports=i.p+"img/physician_fall_of_rome.65aa8f67.png"},1282:(e,t,i)=>{"use strict";e.exports=i.p+"img/pithag.54894a1c.png"},8637:(e,t,i)=>{"use strict";e.exports=i.p+"img/pixie.1a053a1b.png"},5985:(e,t,i)=>{"use strict";e.exports=i.p+"img/plaguedoctor.1d35ab35.png"},4511:(e,t,i)=>{"use strict";e.exports=i.p+"img/plus.401e68cb.png"},4908:(e,t,i)=>{"use strict";e.exports=i.p+"img/plusone.a48e754c.png"},5631:(e,t,i)=>{"use strict";e.exports=i.p+"img/po.9e129519.png"},6763:(e,t,i)=>{"use strict";e.exports=i.p+"img/poisoner.7a67da08.png"},4265:(e,t,i)=>{"use strict";e.exports=i.p+"img/politician.bdc6fc63.png"},8828:(e,t,i)=>{"use strict";e.exports=i.p+"img/poppygrower.ecfac36e.png"},3213:(e,t,i)=>{"use strict";e.exports=i.p+"img/preacher.69033992.png"},889:(e,t,i)=>{"use strict";e.exports=i.p+"img/professor.03453fa9.png"},7826:(e,t,i)=>{"use strict";e.exports=i.p+"img/psychopath.b3538818.png"},4486:(e,t,i)=>{"use strict";e.exports=i.p+"img/pukka.2ee89c95.png"},7002:(e,t,i)=>{"use strict";e.exports=i.p+"img/puzzlemaster.ccb38ebe.png"},6965:(e,t,i)=>{"use strict";e.exports=i.p+"img/ravenkeeper.7b16f0d9.png"},3035:(e,t,i)=>{"use strict";e.exports=i.p+"img/recluse.8f576e6a.png"},9038:(e,t,i)=>{"use strict";e.exports=i.p+"img/revolutionary.eed81aec.png"},8118:(e,t,i)=>{"use strict";e.exports=i.p+"img/riot.54d174a8.png"},6544:(e,t,i)=>{"use strict";e.exports=i.p+"img/sage.da3228c0.png"},8984:(e,t,i)=>{"use strict";e.exports=i.p+"img/sailor.47e89e16.png"},4811:(e,t,i)=>{"use strict";e.exports=i.p+"img/saint.d1c68978.png"},7316:(e,t,i)=>{"use strict";e.exports=i.p+"img/saintnick.7f18a5ea.png"},7884:(e,t,i)=>{"use strict";e.exports=i.p+"img/savant.3723c580.png"},6701:(e,t,i)=>{"use strict";e.exports=i.p+"img/scapegoat.294ef014.png"},3957:(e,t,i)=>{"use strict";e.exports=i.p+"img/scarletwoman.6fd7f180.png"},7330:(e,t,i)=>{"use strict";e.exports=i.p+"img/scholar_fall_of_rome.b85f6ab5.png"},791:(e,t,i)=>{"use strict";e.exports=i.p+"img/sculptor.7a9cc966.png"},8374:(e,t,i)=>{"use strict";e.exports=i.p+"img/sculptor_fall_of_rome.7a9cc966.png"},4201:(e,t,i)=>{"use strict";e.exports=i.p+"img/seamstress.c713525e.png"},4213:(e,t,i)=>{"use strict";e.exports=i.p+"img/sentinel.9b6c51d9.png"},4017:(e,t,i)=>{"use strict";e.exports=i.p+"img/septemberchild.d49625c9.png"},2034:(e,t,i)=>{"use strict";e.exports=i.p+"img/shabaloth.5a091f98.png"},922:(e,t,i)=>{"use strict";e.exports=i.p+"img/shugenja.e82de713.png"},4885:(e,t,i)=>{"use strict";e.exports=i.p+"img/sibyl_fall_of_rome.97648fe5.png"},8081:(e,t,i)=>{"use strict";e.exports=i.p+"img/slayer.64aec593.png"},9900:(e,t,i)=>{"use strict";e.exports=i.p+"img/snakecharmer.ede4ab88.png"},7988:(e,t,i)=>{"use strict";e.exports=i.p+"img/snitch.7806bf67.png"},2231:(e,t,i)=>{"use strict";e.exports=i.p+"img/soldier.c2fb29c4.png"},1977:(e,t,i)=>{"use strict";e.exports=i.p+"img/spartacus_fall_of_rome.eebb613f.png"},3379:(e,t,i)=>{"use strict";e.exports=i.p+"img/spiritofivory.fb5ca6eb.png"},4013:(e,t,i)=>{"use strict";e.exports=i.p+"img/spy.38a0a62b.png"},5165:(e,t,i)=>{"use strict";e.exports=i.p+"img/standardbearer_fall_of_rome.1c03b2b0.png"},6050:(e,t,i)=>{"use strict";e.exports=i.p+"img/steward.fae1243b.png"},3877:(e,t,i)=>{"use strict";e.exports=i.p+"img/stormcatcher.4ba01c24.png"},6356:(e,t,i)=>{"use strict";e.exports=i.p+"img/sweetheart.e253b31e.png"},3009:(e,t,i)=>{"use strict";e.exports=i.p+"img/tealady.4ee7d977.png"},5274:(e,t,i)=>{"use strict";e.exports=i.p+"img/temptress_fall_of_rome.9aeaa351.png"},5603:(e,t,i)=>{"use strict";e.exports=i.p+"img/thetwins_fall_of_rome.94c121f6.png"},7112:(e,t,i)=>{"use strict";e.exports=i.p+"img/thief.b4916753.png"},5380:(e,t,i)=>{"use strict";e.exports=i.p+"img/tinker.1128cab7.png"},4055:(e,t,i)=>{"use strict";e.exports=i.p+"img/towncrier.5bf61c92.png"},3163:(e,t,i)=>{"use strict";e.exports=i.p+"img/toymaker.f4f99e02.png"},8892:(e,t,i)=>{"use strict";e.exports=i.p+"img/trumpeter_fall_of_rome.423f9ec1.png"},5466:(e,t,i)=>{"use strict";e.exports=i.p+"img/undertaker.e4d72d4b.png"},1647:(e,t,i)=>{"use strict";e.exports=i.p+"img/vestalvirgin.2c91cb58.png"},2349:(e,t,i)=>{"use strict";e.exports=i.p+"img/vestalvirgin_fall_of_rome.2c91cb58.png"},4969:(e,t,i)=>{"use strict";e.exports=i.p+"img/vigormortis.1f1b230f.png"},4883:(e,t,i)=>{"use strict";e.exports=i.p+"img/villageidiot.8a70dda9.png"},6954:(e,t,i)=>{"use strict";e.exports=i.p+"img/virgin.c7ff9059.png"},5485:(e,t,i)=>{"use strict";e.exports=i.p+"img/vizier.8cc0e053.png"},6142:(e,t,i)=>{"use strict";e.exports=i.p+"img/vortox.e27cceb9.png"},152:(e,t,i)=>{"use strict";e.exports=i.p+"img/voudon.464d7d5b.png"},245:(e,t,i)=>{"use strict";e.exports=i.p+"img/washerwoman.b3fadac1.png"},3729:(e,t,i)=>{"use strict";e.exports=i.p+"img/widow.51e60f7e.png"},1409:(e,t,i)=>{"use strict";e.exports=i.p+"img/winemaker_fall_of_rome.b54e8570.png"},6909:(e,t,i)=>{"use strict";e.exports=i.p+"img/witch.11f6d426.png"},1139:(e,t,i)=>{"use strict";e.exports=i.p+"img/x.ac4e061c.png"},8899:(e,t,i)=>{"use strict";e.exports=i.p+"img/zombuul.cba2ebaa.png"}},t={};function i(o){var s=t[o];if(void 0!==s)return s.exports;var a=t[o]={exports:{}};return e[o](a,a.exports,i),a.exports}i.m=e,(()=>{var e=[];i.O=(t,o,s,a)=>{if(!o){var r=1/0;for(d=0;d=a)&&Object.keys(i.O).every((e=>i.O[e](o[l])))?o.splice(l--,1):(n=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[o,s,a]}})(),(()=>{i.n=e=>{var t=e&&e.__esModule?()=>e["default"]:()=>e;return i.d(t,{a:t}),t}})(),(()=>{i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})}})(),(()=>{i.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()})(),(()=>{i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{i.p="/"})(),(()=>{var e={143:0};i.O.j=t=>0===e[t];var t=(t,o)=>{var s,a,[r,n,l]=o,h=0;if(r.some((t=>0!==e[t]))){for(s in n)i.o(n,s)&&(i.m[s]=n[s]);if(l)var d=l(i)}for(t&&t(o);hi(487)));o=i.O(o)})(); +//# sourceMappingURL=app.a384721b.js.map \ No newline at end of file diff --git a/js/app.a384721b.js.map b/js/app.a384721b.js.map new file mode 100644 index 00000000..891be6f2 --- /dev/null +++ b/js/app.a384721b.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/app.a384721b.js","mappings":"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","sources":["webpack://townsquare/./src/assets/editions/ sync ^\\.\\/.*\\.png$","webpack://townsquare/./src/assets/icons/ sync ^\\.\\/.*\\.png$","webpack://townsquare/./src/App.vue","webpack://townsquare/./src/components/TownSquare.vue","webpack://townsquare/./src/components/Player.vue","webpack://townsquare/./src/components/Token.vue","webpack://townsquare/./src/components/Token.vue?f148","webpack://townsquare/./src/components/Player.vue?16f5","webpack://townsquare/./src/components/modals/ReminderModal.vue","webpack://townsquare/./src/components/modals/Modal.vue","webpack://townsquare/./src/components/modals/Modal.vue?6ce1","webpack://townsquare/./src/components/modals/ReminderModal.vue?ab07","webpack://townsquare/./src/components/modals/RoleModal.vue","webpack://townsquare/./src/components/modals/RoleModal.vue?7764","webpack://townsquare/./src/components/TownSquare.vue?dc3a","webpack://townsquare/./src/components/TownInfo.vue","webpack://townsquare/./src/components/TownInfo.vue?941c","webpack://townsquare/./src/components/Menu.vue","webpack://townsquare/./src/components/Menu.vue?ef75","webpack://townsquare/./src/components/modals/RolesModal.vue","webpack://townsquare/./src/components/modals/RolesModal.vue?78bf","webpack://townsquare/./src/components/modals/EditionModal.vue","webpack://townsquare/./src/components/modals/EditionModal.vue?5fba","webpack://townsquare/./src/components/Intro.vue","webpack://townsquare/./src/components/Intro.vue?4ec2","webpack://townsquare/./src/components/modals/ReferenceModal.vue","webpack://townsquare/./src/components/modals/ReferenceModal.vue?6710","webpack://townsquare/./src/components/Vote.vue","webpack://townsquare/./src/components/Vote.vue?c5d7","webpack://townsquare/./src/components/Gradients.vue","webpack://townsquare/./src/components/Gradients.vue?55a5","webpack://townsquare/./src/components/modals/NightOrderModal.vue","webpack://townsquare/./src/components/modals/NightOrderModal.vue?aa0c","webpack://townsquare/./src/components/modals/FabledModal.vue","webpack://townsquare/./src/components/modals/FabledModal.vue?558a","webpack://townsquare/./src/components/modals/VoteHistoryModal.vue","webpack://townsquare/./src/components/modals/VoteHistoryModal.vue?6b8c","webpack://townsquare/./src/components/modals/GameStateModal.vue","webpack://townsquare/./src/components/modals/GameStateModal.vue?54bd","webpack://townsquare/./src/App.vue?7ccd","webpack://townsquare/./src/store/socket.js","webpack://townsquare/./src/store/modules/players.js","webpack://townsquare/./src/store/modules/session.js","webpack://townsquare/./src/store/index.js","webpack://townsquare/./src/main.js","webpack://townsquare/./src/store/persistence.js","webpack://townsquare/webpack/bootstrap","webpack://townsquare/webpack/runtime/chunk loaded","webpack://townsquare/webpack/runtime/compat get default export","webpack://townsquare/webpack/runtime/define property getters","webpack://townsquare/webpack/runtime/global","webpack://townsquare/webpack/runtime/hasOwnProperty shorthand","webpack://townsquare/webpack/runtime/publicPath","webpack://townsquare/webpack/runtime/jsonp chunk loading","webpack://townsquare/webpack/startup"],"sourcesContent":["var map = {\n\t\"./bmr-demon.png\": 387,\n\t\"./bmr-minion.png\": 9764,\n\t\"./bmr-outsider.png\": 3396,\n\t\"./bmr-townsfolk.png\": 4174,\n\t\"./bmr.png\": 4085,\n\t\"./custom.png\": 5592,\n\t\"./for.png\": 3331,\n\t\"./ib.png\": 9737,\n\t\"./luf.png\": 8142,\n\t\"./snv-demon.png\": 2867,\n\t\"./snv-minion.png\": 3571,\n\t\"./snv-outsider.png\": 3429,\n\t\"./snv-townsfolk.png\": 1822,\n\t\"./snv.png\": 9857,\n\t\"./tb-demon.png\": 6737,\n\t\"./tb-minion.png\": 972,\n\t\"./tb-outsider.png\": 2338,\n\t\"./tb-townsfolk.png\": 9600,\n\t\"./tb.png\": 6827\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 3821;","var map = {\n\t\"./acrobat.png\": 8035,\n\t\"./actor_fall_of_rome.png\": 1465,\n\t\"./alchemist.png\": 9799,\n\t\"./alhadikhia.png\": 8723,\n\t\"./amnesiac.png\": 5118,\n\t\"./angel.png\": 6474,\n\t\"./apprentice.png\": 819,\n\t\"./architect_fall_of_rome.png\": 1607,\n\t\"./artist.png\": 6835,\n\t\"./assassin.png\": 3169,\n\t\"./atheist.png\": 946,\n\t\"./augur_fall_of_rome.png\": 7726,\n\t\"./badger.png\": 1584,\n\t\"./badomen_fall_of_rome.png\": 6577,\n\t\"./balloonist.png\": 5926,\n\t\"./barber.png\": 8069,\n\t\"./barista.png\": 2437,\n\t\"./baron.png\": 8230,\n\t\"./beggar.png\": 1082,\n\t\"./bishop.png\": 5343,\n\t\"./blacksmith_fall_of_rome.png\": 9363,\n\t\"./bonecollector.png\": 1594,\n\t\"./boomdandy.png\": 3682,\n\t\"./bountyhunter.png\": 7479,\n\t\"./buddhist.png\": 1990,\n\t\"./bureaucrat.png\": 367,\n\t\"./butcher.png\": 177,\n\t\"./butler.png\": 4697,\n\t\"./caesar_fall_of_rome.png\": 7946,\n\t\"./cannibal.png\": 6214,\n\t\"./centurion1_fall_of_rome.png\": 1708,\n\t\"./cerenovus.png\": 7637,\n\t\"./chambermaid.png\": 1146,\n\t\"./chef.png\": 1248,\n\t\"./choirboy.png\": 5081,\n\t\"./cleopatra_fall_of_rome.png\": 9114,\n\t\"./clockmaker.png\": 5102,\n\t\"./courtier.png\": 759,\n\t\"./crassus_fall_of_rome.png\": 4163,\n\t\"./cultleader.png\": 2763,\n\t\"./custom.png\": 7037,\n\t\"./damsel.png\": 5533,\n\t\"./deusexfiasco.png\": 8141,\n\t\"./deviant.png\": 1683,\n\t\"./devilsadvocate.png\": 5549,\n\t\"./djinn.png\": 393,\n\t\"./doomsayer.png\": 5142,\n\t\"./dreamer.png\": 1610,\n\t\"./drunk.png\": 3669,\n\t\"./duchess.png\": 2491,\n\t\"./empath.png\": 5695,\n\t\"./emperor_fall_of_rome.png\": 4595,\n\t\"./engineer.png\": 7571,\n\t\"./evil.png\": 1836,\n\t\"./eviltwin.png\": 7664,\n\t\"./exorcist.png\": 5858,\n\t\"./fabled.png\": 5025,\n\t\"./fanggu.png\": 1833,\n\t\"./farmer.png\": 4390,\n\t\"./fearmonger.png\": 5297,\n\t\"./fibbin.png\": 9332,\n\t\"./fiddler.png\": 5076,\n\t\"./fisherman.png\": 2776,\n\t\"./flowergirl.png\": 6053,\n\t\"./fool.png\": 647,\n\t\"./fortuneteller.png\": 9336,\n\t\"./gambler.png\": 4306,\n\t\"./gangster.png\": 782,\n\t\"./general.png\": 2990,\n\t\"./gladiator_fall_of_rome.png\": 7434,\n\t\"./glykon1_fall_of_rome.png\": 8791,\n\t\"./goblin.png\": 1730,\n\t\"./godfather.png\": 8536,\n\t\"./golem.png\": 7274,\n\t\"./good.png\": 6832,\n\t\"./goon.png\": 1273,\n\t\"./gossip.png\": 5965,\n\t\"./grandmother.png\": 4950,\n\t\"./grinch.png\": 2325,\n\t\"./gunslinger.png\": 7768,\n\t\"./hannibal_fall_of_rome.png\": 4896,\n\t\"./harlot.png\": 6226,\n\t\"./harpy.png\": 3865,\n\t\"./haruspex_fall_of_rome.png\": 5649,\n\t\"./hatter.png\": 3490,\n\t\"./hellslibrarian.png\": 5477,\n\t\"./heretic.png\": 6314,\n\t\"./highpriest1_fall_of_rome.png\": 934,\n\t\"./highpriest2_fall_of_rome.png\": 212,\n\t\"./highpriestess.png\": 6251,\n\t\"./huntsman.png\": 7893,\n\t\"./iamspartacus_fall_of_rome.png\": 4671,\n\t\"./imp.png\": 2830,\n\t\"./innkeeper.png\": 6580,\n\t\"./investigator.png\": 9813,\n\t\"./judge.png\": 6306,\n\t\"./juggler.png\": 8785,\n\t\"./kazali.png\": 3108,\n\t\"./king.png\": 6865,\n\t\"./klutz.png\": 1938,\n\t\"./knight.png\": 3395,\n\t\"./legion.png\": 2339,\n\t\"./legionary.png\": 4394,\n\t\"./legionary_fall_of_rome.png\": 2429,\n\t\"./leviathan.png\": 3245,\n\t\"./librarian.png\": 651,\n\t\"./lilmonsta.png\": 4090,\n\t\"./lleech.png\": 1424,\n\t\"./lunatic.png\": 2561,\n\t\"./lycanthrope.png\": 8746,\n\t\"./magician.png\": 4214,\n\t\"./marionette.png\": 712,\n\t\"./mastermind.png\": 7100,\n\t\"./mathematician.png\": 3850,\n\t\"./matron.png\": 8054,\n\t\"./mayor.png\": 8827,\n\t\"./mephit.png\": 3304,\n\t\"./mercenary_fall_of_rome.png\": 2841,\n\t\"./merchant_fall_of_rome.png\": 7377,\n\t\"./mezepheles.png\": 295,\n\t\"./minion.png\": 847,\n\t\"./minstrel.png\": 3415,\n\t\"./monk.png\": 3100,\n\t\"./moonchild.png\": 8749,\n\t\"./mortician_fall_of_rome.png\": 1021,\n\t\"./mutant.png\": 4473,\n\t\"./nightwatchman.png\": 2666,\n\t\"./noble.png\": 1004,\n\t\"./nodashii.png\": 2458,\n\t\"./ojo.png\": 3073,\n\t\"./oracle.png\": 9624,\n\t\"./organgrinder.png\": 5705,\n\t\"./outsider.png\": 8814,\n\t\"./pacifist.png\": 5873,\n\t\"./philosopher.png\": 3300,\n\t\"./physician.png\": 4555,\n\t\"./physician_fall_of_rome.png\": 9979,\n\t\"./pithag.png\": 1282,\n\t\"./pixie.png\": 8637,\n\t\"./plaguedoctor.png\": 5985,\n\t\"./plus.png\": 4511,\n\t\"./plusone.png\": 4908,\n\t\"./po.png\": 5631,\n\t\"./poisoner.png\": 6763,\n\t\"./politician.png\": 4265,\n\t\"./poppygrower.png\": 8828,\n\t\"./preacher.png\": 3213,\n\t\"./professor.png\": 889,\n\t\"./psychopath.png\": 7826,\n\t\"./pukka.png\": 4486,\n\t\"./puzzlemaster.png\": 7002,\n\t\"./ravenkeeper.png\": 6965,\n\t\"./recluse.png\": 3035,\n\t\"./revolutionary.png\": 9038,\n\t\"./riot.png\": 8118,\n\t\"./sage.png\": 6544,\n\t\"./sailor.png\": 8984,\n\t\"./saint.png\": 4811,\n\t\"./saintnick.png\": 7316,\n\t\"./savant.png\": 7884,\n\t\"./scapegoat.png\": 6701,\n\t\"./scarletwoman.png\": 3957,\n\t\"./scholar_fall_of_rome.png\": 7330,\n\t\"./sculptor.png\": 791,\n\t\"./sculptor_fall_of_rome.png\": 8374,\n\t\"./seamstress.png\": 4201,\n\t\"./sentinel.png\": 4213,\n\t\"./septemberchild.png\": 4017,\n\t\"./shabaloth.png\": 2034,\n\t\"./shugenja.png\": 922,\n\t\"./sibyl_fall_of_rome.png\": 4885,\n\t\"./slayer.png\": 8081,\n\t\"./snakecharmer.png\": 9900,\n\t\"./snitch.png\": 7988,\n\t\"./soldier.png\": 2231,\n\t\"./spartacus_fall_of_rome.png\": 1977,\n\t\"./spiritofivory.png\": 3379,\n\t\"./spy.png\": 4013,\n\t\"./standardbearer_fall_of_rome.png\": 5165,\n\t\"./steward.png\": 6050,\n\t\"./stormcatcher.png\": 3877,\n\t\"./sweetheart.png\": 6356,\n\t\"./tealady.png\": 3009,\n\t\"./temptress_fall_of_rome.png\": 5274,\n\t\"./thetwins_fall_of_rome.png\": 5603,\n\t\"./thief.png\": 7112,\n\t\"./tinker.png\": 5380,\n\t\"./towncrier.png\": 4055,\n\t\"./toymaker.png\": 3163,\n\t\"./trumpeter_fall_of_rome.png\": 8892,\n\t\"./undertaker.png\": 5466,\n\t\"./vestalvirgin.png\": 1647,\n\t\"./vestalvirgin_fall_of_rome.png\": 2349,\n\t\"./vigormortis.png\": 4969,\n\t\"./villageidiot.png\": 4883,\n\t\"./virgin.png\": 6954,\n\t\"./vizier.png\": 5485,\n\t\"./vortox.png\": 6142,\n\t\"./voudon.png\": 152,\n\t\"./washerwoman.png\": 245,\n\t\"./widow.png\": 3729,\n\t\"./winemaker_fall_of_rome.png\": 1409,\n\t\"./witch.png\": 6909,\n\t\"./x.png\": 1139,\n\t\"./zombuul.png\": 8899\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6003;","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import { render } from \"./Token.vue?vue&type=template&id=6a512cb0&scoped=true\"\nimport script from \"./Token.vue?vue&type=script&lang=js\"\nexport * from \"./Token.vue?vue&type=script&lang=js\"\n\nimport \"./Token.vue?vue&type=style&index=0&id=6a512cb0&scoped=true&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6a512cb0\"]])\n\nexport default __exports__","import { render } from \"./Player.vue?vue&type=template&id=c336778e\"\nimport script from \"./Player.vue?vue&type=script&lang=js\"\nexport * from \"./Player.vue?vue&type=script&lang=js\"\n\nimport \"./Player.vue?vue&type=style&index=0&id=c336778e&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","\n\n\n\n\n","import { render } from \"./Modal.vue?vue&type=template&id=36f6a736\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=36f6a736&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./ReminderModal.vue?vue&type=template&id=bc7a83f6&scoped=true\"\nimport script from \"./ReminderModal.vue?vue&type=script&lang=js\"\nexport * from \"./ReminderModal.vue?vue&type=script&lang=js\"\n\nimport \"./ReminderModal.vue?vue&type=style&index=0&id=bc7a83f6&scoped=true&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-bc7a83f6\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./RoleModal.vue?vue&type=template&id=738a124c&scoped=true\"\nimport script from \"./RoleModal.vue?vue&type=script&lang=js\"\nexport * from \"./RoleModal.vue?vue&type=script&lang=js\"\n\nimport \"./RoleModal.vue?vue&type=style&index=0&id=738a124c&scoped=true&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-738a124c\"]])\n\nexport default __exports__","import { render } from \"./TownSquare.vue?vue&type=template&id=49e2f1e3\"\nimport script from \"./TownSquare.vue?vue&type=script&lang=js\"\nexport * from \"./TownSquare.vue?vue&type=script&lang=js\"\n\nimport \"./TownSquare.vue?vue&type=style&index=0&id=49e2f1e3&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n\n","import { render } from \"./TownInfo.vue?vue&type=template&id=6e9c5c8e&scoped=true\"\nimport script from \"./TownInfo.vue?vue&type=script&lang=js\"\nexport * from \"./TownInfo.vue?vue&type=script&lang=js\"\n\nimport \"./TownInfo.vue?vue&type=style&index=0&id=6e9c5c8e&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6e9c5c8e\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Menu.vue?vue&type=template&id=02f0607a&scoped=true\"\nimport script from \"./Menu.vue?vue&type=script&lang=js\"\nexport * from \"./Menu.vue?vue&type=script&lang=js\"\n\nimport \"./Menu.vue?vue&type=style&index=0&id=02f0607a&scoped=true&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-02f0607a\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./RolesModal.vue?vue&type=template&id=66bef8a1&scoped=true\"\nimport script from \"./RolesModal.vue?vue&type=script&lang=js\"\nexport * from \"./RolesModal.vue?vue&type=script&lang=js\"\n\nimport \"./RolesModal.vue?vue&type=style&index=0&id=66bef8a1&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-66bef8a1\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./EditionModal.vue?vue&type=template&id=e5f62d38&scoped=true\"\nimport script from \"./EditionModal.vue?vue&type=script&lang=js\"\nexport * from \"./EditionModal.vue?vue&type=script&lang=js\"\n\nimport \"./EditionModal.vue?vue&type=style&index=0&id=e5f62d38&scoped=true&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e5f62d38\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Intro.vue?vue&type=template&id=14bc5701&scoped=true\"\nimport script from \"./Intro.vue?vue&type=script&lang=js\"\nexport * from \"./Intro.vue?vue&type=script&lang=js\"\n\nimport \"./Intro.vue?vue&type=style&index=0&id=14bc5701&scoped=true&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-14bc5701\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./ReferenceModal.vue?vue&type=template&id=40670158&scoped=true\"\nimport script from \"./ReferenceModal.vue?vue&type=script&lang=js\"\nexport * from \"./ReferenceModal.vue?vue&type=script&lang=js\"\n\nimport \"./ReferenceModal.vue?vue&type=style&index=0&id=40670158&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-40670158\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Vote.vue?vue&type=template&id=67598266&scoped=true\"\nimport script from \"./Vote.vue?vue&type=script&lang=js\"\nexport * from \"./Vote.vue?vue&type=script&lang=js\"\n\nimport \"./Vote.vue?vue&type=style&index=0&id=67598266&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-67598266\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Gradients.vue?vue&type=template&id=1e202a64&scoped=true\"\nimport script from \"./Gradients.vue?vue&type=script&lang=js\"\nexport * from \"./Gradients.vue?vue&type=script&lang=js\"\n\nimport \"./Gradients.vue?vue&type=style&index=0&id=1e202a64&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1e202a64\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./NightOrderModal.vue?vue&type=template&id=358fb701&scoped=true\"\nimport script from \"./NightOrderModal.vue?vue&type=script&lang=js\"\nexport * from \"./NightOrderModal.vue?vue&type=script&lang=js\"\n\nimport \"./NightOrderModal.vue?vue&type=style&index=0&id=358fb701&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-358fb701\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./FabledModal.vue?vue&type=template&id=d6b399a0&scoped=true\"\nimport script from \"./FabledModal.vue?vue&type=script&lang=js\"\nexport * from \"./FabledModal.vue?vue&type=script&lang=js\"\n\nimport \"./FabledModal.vue?vue&type=style&index=0&id=d6b399a0&scoped=true&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d6b399a0\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./VoteHistoryModal.vue?vue&type=template&id=9cbf0edc&scoped=true\"\nimport script from \"./VoteHistoryModal.vue?vue&type=script&lang=js\"\nexport * from \"./VoteHistoryModal.vue?vue&type=script&lang=js\"\n\nimport \"./VoteHistoryModal.vue?vue&type=style&index=0&id=9cbf0edc&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-9cbf0edc\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./GameStateModal.vue?vue&type=template&id=7971ea6f&scoped=true\"\nimport script from \"./GameStateModal.vue?vue&type=script&lang=js\"\nexport * from \"./GameStateModal.vue?vue&type=script&lang=js\"\n\nimport \"./GameStateModal.vue?vue&type=style&index=0&id=7971ea6f&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7971ea6f\"]])\n\nexport default __exports__","import { render } from \"./App.vue?vue&type=template&id=de1703ce\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=de1703ce&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/townsquare/townsquare/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","class LiveSession {\n constructor(store) {\n this._wss = \"wss://townsquaremsg.clocktower.guru:8080/\";\n // this._wss = \"ws://localhost:8081/\"; // uncomment if using local server with NODE_ENV=development\n this._socket = null;\n this._isSpectator = true;\n this._gamestate = [];\n this._store = store;\n this._pingInterval = 30 * 1000; // 30 seconds between pings\n this._pingTimer = null;\n this._reconnectTimer = null;\n this._players = {}; // map of players connected to a session\n this._pings = {}; // map of player IDs to ping\n // reconnect to previous session\n if (this._store.state.session.sessionId) {\n this.connect(this._store.state.session.sessionId);\n }\n }\n\n /**\n * Open a new session for the passed channel.\n * @param channel\n * @private\n */\n _open(channel) {\n this.disconnect();\n this._socket = new WebSocket(\n this._wss +\n channel +\n \"/\" +\n (this._isSpectator ? this._store.state.session.playerId : \"host\")\n );\n this._socket.addEventListener(\"message\", this._handleMessage.bind(this));\n this._socket.onopen = this._onOpen.bind(this);\n this._socket.onclose = (err) => {\n this._socket = null;\n clearInterval(this._pingTimer);\n this._pingTimer = null;\n if (err.code !== 1000) {\n // connection interrupted, reconnect after 3 seconds\n this._store.commit(\"session/setReconnecting\", true);\n this._reconnectTimer = setTimeout(\n () => this.connect(channel),\n 3 * 1000\n );\n } else {\n this._store.commit(\"session/setSessionId\", \"\");\n if (err.reason) alert(err.reason);\n }\n };\n }\n\n /**\n * Send a message through the socket.\n * @param command\n * @param params\n * @private\n */\n _send(command, params) {\n if (this._socket && this._socket.readyState === 1) {\n this._socket.send(JSON.stringify([command, params]));\n }\n }\n\n /**\n * Send a message directly to a single playerId, if provided.\n * Otherwise broadcast it.\n * @param playerId player ID or \"host\", optional\n * @param command\n * @param params\n * @private\n */\n _sendDirect(playerId, command, params) {\n if (playerId) {\n this._send(\"direct\", { [playerId]: [command, params] });\n } else {\n this._send(command, params);\n }\n }\n\n /**\n * Open event handler for socket.\n * @private\n */\n _onOpen() {\n if (this._isSpectator) {\n this._sendDirect(\n \"host\",\n \"getGamestate\",\n this._store.state.session.playerId\n );\n } else {\n this.sendGamestate();\n }\n this._ping();\n }\n\n /**\n * Send a ping message with player ID and ST flag.\n * @private\n */\n _ping() {\n this._handlePing();\n this._send(\"ping\", [\n this._isSpectator\n ? this._store.state.session.playerId\n : Object.keys(this._players).length,\n \"latency\",\n ]);\n clearTimeout(this._pingTimer);\n this._pingTimer = setTimeout(this._ping.bind(this), this._pingInterval);\n }\n\n /**\n * Handle an incoming socket message.\n * @param data\n * @private\n */\n _handleMessage({ data }) {\n let command, params;\n try {\n [command, params] = JSON.parse(data);\n } catch (err) {\n console.log(\"unsupported socket message\", data);\n }\n switch (command) {\n case \"getGamestate\":\n this.sendGamestate(params);\n break;\n case \"edition\":\n this._updateEdition(params);\n break;\n case \"fabled\":\n this._updateFabled(params);\n break;\n case \"gs\":\n this._updateGamestate(params);\n break;\n case \"player\":\n this._updatePlayer(params);\n break;\n case \"claim\":\n this._updateSeat(params);\n break;\n case \"ping\":\n this._handlePing(params);\n break;\n case \"nomination\":\n if (!this._isSpectator) return;\n if (!params) {\n // create vote history record\n this._store.commit(\n \"session/addHistory\",\n this._store.state.players.players\n );\n }\n this._store.commit(\"session/nomination\", { nomination: params });\n break;\n case \"swap\":\n if (!this._isSpectator) return;\n this._store.commit(\"players/swap\", params);\n break;\n case \"move\":\n if (!this._isSpectator) return;\n this._store.commit(\"players/move\", params);\n break;\n case \"remove\":\n if (!this._isSpectator) return;\n this._store.commit(\"players/remove\", params);\n break;\n case \"marked\":\n if (!this._isSpectator) return;\n this._store.commit(\"session/setMarkedPlayer\", params);\n break;\n case \"isNight\":\n if (!this._isSpectator) return;\n this._store.commit(\"toggleNight\", params);\n break;\n case \"isVoteHistoryAllowed\":\n if (!this._isSpectator) return;\n this._store.commit(\"session/setVoteHistoryAllowed\", params);\n this._store.commit(\"session/clearVoteHistory\");\n break;\n case \"isVoteWatchingAllowed\":\n if (!this._isSpectator) return;\n this._store.commit(\"session/setVoteWatchingAllowed\", params);\n break;\n case \"votingSpeed\":\n if (!this._isSpectator) return;\n this._store.commit(\"session/setVotingSpeed\", params);\n break;\n case \"clearVoteHistory\":\n if (!this._isSpectator) return;\n this._store.commit(\"session/clearVoteHistory\");\n break;\n case \"isVoteInProgress\":\n if (!this._isSpectator) return;\n this._store.commit(\"session/setVoteInProgress\", params);\n break;\n case \"vote\":\n this._handleVote(params);\n break;\n case \"lock\":\n this._handleLock(params);\n break;\n case \"bye\":\n this._handleBye(params);\n break;\n case \"pronouns\":\n this._updatePlayerPronouns(params);\n break;\n }\n }\n\n /**\n * Connect to a new live session, either as host or spectator.\n * Set a unique playerId if there isn't one yet.\n * @param channel\n */\n connect(channel) {\n if (!this._store.state.session.playerId) {\n this._store.commit(\n \"session/setPlayerId\",\n Math.random()\n .toString(36)\n .substr(2)\n );\n }\n this._pings = {};\n this._store.commit(\"session/setPlayerCount\", 0);\n this._store.commit(\"session/setPing\", 0);\n this._isSpectator = this._store.state.session.isSpectator;\n this._open(channel);\n }\n\n /**\n * Close the current session, if any.\n */\n disconnect() {\n this._pings = {};\n this._store.commit(\"session/setPlayerCount\", 0);\n this._store.commit(\"session/setPing\", 0);\n this._store.commit(\"session/setReconnecting\", false);\n clearTimeout(this._reconnectTimer);\n if (this._socket) {\n if (this._isSpectator) {\n this._sendDirect(\"host\", \"bye\", this._store.state.session.playerId);\n }\n this._socket.close(1000);\n this._socket = null;\n }\n }\n\n /**\n * Publish the current gamestate.\n * Optional param to reduce traffic. (send only player data)\n * @param playerId\n * @param isLightweight\n */\n sendGamestate(playerId = \"\", isLightweight = false) {\n if (this._isSpectator) return;\n this._gamestate = this._store.state.players.players.map((player) => ({\n name: player.name,\n id: player.id,\n isDead: player.isDead,\n isVoteless: player.isVoteless,\n pronouns: player.pronouns,\n ...(player.role && player.role.team === \"traveler\"\n ? { roleId: player.role.id }\n : {}),\n }));\n if (isLightweight) {\n this._sendDirect(playerId, \"gs\", {\n gamestate: this._gamestate,\n isLightweight,\n });\n } else {\n const { session, grimoire } = this._store.state;\n const { fabled } = this._store.state.players;\n this.sendEdition(playerId);\n this._sendDirect(playerId, \"gs\", {\n gamestate: this._gamestate,\n isNight: grimoire.isNight,\n isVoteHistoryAllowed: session.isVoteHistoryAllowed,\n isVoteWatchingAllowed: session.isVoteWatchingAllowed,\n nomination: session.nomination,\n votingSpeed: session.votingSpeed,\n lockedVote: session.lockedVote,\n isVoteInProgress: session.isVoteInProgress,\n markedPlayer: session.markedPlayer,\n fabled: fabled.map((f) => (f.isCustom ? f : { id: f.id })),\n ...(session.nomination ? { votes: session.votes } : {}),\n });\n }\n }\n\n /**\n * Update the gamestate based on incoming data.\n * @param data\n * @private\n */\n _updateGamestate(data) {\n if (!this._isSpectator) return;\n const {\n gamestate,\n isLightweight,\n isNight,\n isVoteHistoryAllowed,\n isVoteWatchingAllowed,\n nomination,\n votingSpeed,\n votes,\n lockedVote,\n isVoteInProgress,\n markedPlayer,\n fabled,\n } = data;\n const players = this._store.state.players.players;\n // adjust number of players\n if (players.length < gamestate.length) {\n for (let x = players.length; x < gamestate.length; x++) {\n this._store.commit(\"players/add\", gamestate[x].name);\n }\n } else if (players.length > gamestate.length) {\n for (let x = players.length; x > gamestate.length; x--) {\n this._store.commit(\"players/remove\", x - 1);\n }\n }\n // update status for each player\n gamestate.forEach((state, x) => {\n const player = players[x];\n const { roleId } = state;\n // update relevant properties\n [\"name\", \"id\", \"isDead\", \"isVoteless\", \"pronouns\"].forEach((property) => {\n const value = state[property];\n if (player[property] !== value) {\n this._store.commit(\"players/update\", { player, property, value });\n }\n });\n // roles are special, because of travelers\n if (roleId && player.role.id !== roleId) {\n const role =\n this._store.state.roles.get(roleId) ||\n this._store.getters.rolesJSONbyId.get(roleId);\n if (role) {\n this._store.commit(\"players/update\", {\n player,\n property: \"role\",\n value: role,\n });\n }\n } else if (!roleId && player.role.team === \"traveler\") {\n this._store.commit(\"players/update\", {\n player,\n property: \"role\",\n value: {},\n });\n }\n });\n if (!isLightweight) {\n this._store.commit(\"toggleNight\", !!isNight);\n this._store.commit(\"session/setVoteHistoryAllowed\", isVoteHistoryAllowed);\n this._store.commit(\n \"session/setVoteWatchingAllowed\",\n isVoteWatchingAllowed\n );\n this._store.commit(\"session/nomination\", {\n nomination,\n votes,\n votingSpeed,\n lockedVote,\n isVoteInProgress,\n });\n this._store.commit(\"session/setMarkedPlayer\", markedPlayer);\n this._store.commit(\"players/setFabled\", {\n fabled: fabled.map((f) => this._store.state.fabled.get(f.id) || f),\n });\n }\n }\n\n /**\n * Publish an edition update. ST only\n * @param playerId\n */\n sendEdition(playerId = \"\") {\n if (this._isSpectator) return;\n const { edition } = this._store.state;\n let roles;\n if (!edition.isOfficial) {\n roles = this._store.getters.customRolesStripped;\n }\n this._sendDirect(playerId, \"edition\", {\n edition: edition.isOfficial ? { id: edition.id } : edition,\n ...(roles ? { roles } : {}),\n });\n }\n\n /**\n * Update edition and roles for custom editions.\n * @param edition\n * @param roles\n * @private\n */\n _updateEdition({ edition, roles }) {\n if (!this._isSpectator) return;\n this._store.commit(\"setEdition\", edition);\n if (roles) {\n this._store.commit(\"setCustomRoles\", roles);\n if (this._store.state.roles.size !== roles.length) {\n const missing = [];\n roles.forEach(({ id }) => {\n if (!this._store.state.roles.get(id)) {\n missing.push(id);\n }\n });\n alert(\n `This session contains custom characters that can't be found. ` +\n `Please load them before joining! ` +\n `Missing roles: ${missing.join(\", \")}`\n );\n this.disconnect();\n this._store.commit(\"toggleModal\", \"edition\");\n }\n }\n }\n\n /**\n * Publish a fabled update. ST only\n */\n sendFabled() {\n if (this._isSpectator) return;\n const { fabled } = this._store.state.players;\n this._send(\n \"fabled\",\n fabled.map((f) => (f.isCustom ? f : { id: f.id }))\n );\n }\n\n /**\n * Update fabled roles.\n * @param fabled\n * @private\n */\n _updateFabled(fabled) {\n if (!this._isSpectator) return;\n this._store.commit(\"players/setFabled\", {\n fabled: fabled.map((f) => this._store.state.fabled.get(f.id) || f),\n });\n }\n\n /**\n * Publish a player update.\n * @param player\n * @param property\n * @param value\n */\n sendPlayer({ player, property, value }) {\n if (this._isSpectator || property === \"reminders\") return;\n const index = this._store.state.players.players.indexOf(player);\n if (property === \"role\") {\n if (value.team && value.team === \"traveler\") {\n // update local gamestate to remember this player as a traveler\n this._gamestate[index].roleId = value.id;\n this._send(\"player\", {\n index,\n property,\n value: value.id,\n });\n } else if (this._gamestate[index].roleId) {\n // player was previously a traveler\n delete this._gamestate[index].roleId;\n this._send(\"player\", { index, property, value: \"\" });\n }\n } else {\n this._send(\"player\", { index, property, value });\n }\n }\n\n /**\n * Update a player based on incoming data. Player only.\n * @param index\n * @param property\n * @param value\n * @private\n */\n _updatePlayer({ index, property, value }) {\n if (!this._isSpectator) return;\n const player = this._store.state.players.players[index];\n if (!player) return;\n // special case where a player stops being a traveler\n if (property === \"role\") {\n if (!value && player.role.team === \"traveler\") {\n // reset to an unknown role\n this._store.commit(\"players/update\", {\n player,\n property: \"role\",\n value: {},\n });\n } else {\n // load role, first from session, the global, then fail gracefully\n const role =\n this._store.state.roles.get(value) ||\n this._store.getters.rolesJSONbyId.get(value) ||\n {};\n this._store.commit(\"players/update\", {\n player,\n property: \"role\",\n value: role,\n });\n }\n } else {\n // just update the player otherwise\n this._store.commit(\"players/update\", { player, property, value });\n }\n }\n\n /**\n * Publish a player pronouns update\n * @param player\n * @param value\n * @param isFromSockets\n */\n sendPlayerPronouns({ player, value, isFromSockets }) {\n //send pronoun only for the seated player or storyteller\n //Do not re-send pronoun data for an update that was recieved from the sockets layer\n if (\n isFromSockets ||\n (this._isSpectator && this._store.state.session.playerId !== player.id)\n )\n return;\n const index = this._store.state.players.players.indexOf(player);\n this._send(\"pronouns\", [index, value]);\n }\n\n /**\n * Update a pronouns based on incoming data.\n * @param index\n * @param value\n * @private\n */\n _updatePlayerPronouns([index, value]) {\n const player = this._store.state.players.players[index];\n\n this._store.commit(\"players/update\", {\n player,\n property: \"pronouns\",\n value,\n isFromSockets: true,\n });\n }\n\n /**\n * Handle a ping message by another player / storyteller\n * @param playerIdOrCount\n * @param latency\n * @private\n */\n _handlePing([playerIdOrCount = 0, latency] = []) {\n const now = new Date().getTime();\n if (!this._isSpectator) {\n // remove players that haven't sent a ping in twice the timespan\n for (let player in this._players) {\n if (now - this._players[player] > this._pingInterval * 2) {\n delete this._players[player];\n delete this._pings[player];\n }\n }\n // remove claimed seats from players that are no longer connected\n this._store.state.players.players.forEach((player) => {\n if (player.id && !this._players[player.id]) {\n this._store.commit(\"players/update\", {\n player,\n property: \"id\",\n value: \"\",\n });\n }\n });\n // store new player data\n if (playerIdOrCount) {\n this._players[playerIdOrCount] = now;\n const ping = parseInt(latency, 10);\n if (ping && ping > 0 && ping < 30 * 1000) {\n // ping to Players\n this._pings[playerIdOrCount] = ping;\n const pings = Object.values(this._pings);\n this._store.commit(\n \"session/setPing\",\n Math.round(pings.reduce((a, b) => a + b, 0) / pings.length)\n );\n }\n }\n } else if (latency) {\n // ping to ST\n this._store.commit(\"session/setPing\", parseInt(latency, 10));\n }\n // update player count\n if (!this._isSpectator || playerIdOrCount) {\n this._store.commit(\n \"session/setPlayerCount\",\n this._isSpectator ? playerIdOrCount : Object.keys(this._players).length\n );\n }\n }\n\n /**\n * Handle a player leaving the sessions. ST only\n * @param playerId\n * @private\n */\n _handleBye(playerId) {\n if (this._isSpectator) return;\n delete this._players[playerId];\n this._store.commit(\n \"session/setPlayerCount\",\n Object.keys(this._players).length\n );\n }\n\n /**\n * Claim a seat, needs to be confirmed by the Storyteller.\n * Seats already occupied can't be claimed.\n * @param seat either -1 to vacate or the index of the seat claimed\n */\n claimSeat(seat) {\n if (!this._isSpectator) return;\n const players = this._store.state.players.players;\n if (players.length > seat && (seat < 0 || !players[seat].id)) {\n this._send(\"claim\", [seat, this._store.state.session.playerId]);\n }\n }\n\n /**\n * Update a player id associated with that seat.\n * @param index seat index or -1\n * @param value playerId to add / remove\n * @private\n */\n _updateSeat([index, value]) {\n if (this._isSpectator) return;\n const property = \"id\";\n const players = this._store.state.players.players;\n // remove previous seat\n const oldIndex = players.findIndex(({ id }) => id === value);\n if (oldIndex >= 0 && oldIndex !== index) {\n this._store.commit(\"players/update\", {\n player: players[oldIndex],\n property,\n value: \"\",\n });\n }\n // add playerId to new seat\n if (index >= 0) {\n const player = players[index];\n if (!player) return;\n this._store.commit(\"players/update\", { player, property, value });\n }\n // update player session list as if this was a ping\n this._handlePing([true, value, 0]);\n }\n\n /**\n * Distribute player roles to all seated players in a direct message.\n * This will be split server side so that each player only receives their own (sub)message.\n */\n distributeRoles() {\n if (this._isSpectator) return;\n const message = {};\n this._store.state.players.players.forEach((player, index) => {\n if (player.id && player.role) {\n message[player.id] = [\n \"player\",\n { index, property: \"role\", value: player.role.id },\n ];\n }\n });\n if (Object.keys(message).length) {\n this._send(\"direct\", message);\n }\n }\n\n /**\n * A player nomination. ST only\n * This also syncs the voting speed to the players.\n * Payload can be an object with {nomination} property or just the nomination itself, or undefined.\n * @param payload [nominator, nominee]|{nomination}\n */\n nomination(payload) {\n if (this._isSpectator) return;\n const nomination = payload ? payload.nomination || payload : payload;\n const players = this._store.state.players.players;\n if (\n !nomination ||\n (players.length > nomination[0] && players.length > nomination[1])\n ) {\n this.setVotingSpeed(this._store.state.session.votingSpeed);\n this._send(\"nomination\", nomination);\n }\n }\n\n /**\n * Set the isVoteInProgress status. ST only\n */\n setVoteInProgress() {\n if (this._isSpectator) return;\n this._send(\"isVoteInProgress\", this._store.state.session.isVoteInProgress);\n }\n\n /**\n * Send the isNight status. ST only\n */\n setIsNight() {\n if (this._isSpectator) return;\n this._send(\"isNight\", this._store.state.grimoire.isNight);\n }\n\n /**\n * Send the isVoteHistoryAllowed state. ST only\n */\n setVoteHistoryAllowed() {\n if (this._isSpectator) return;\n this._send(\n \"isVoteHistoryAllowed\",\n this._store.state.session.isVoteHistoryAllowed\n );\n }\n\n /**\n * Send the isVoteWatchingAllowed state. ST only\n */\n setVoteWatchingAllowed() {\n if (this._isSpectator) return;\n this._send(\n \"isVoteWatchingAllowed\",\n this._store.state.session.isVoteWatchingAllowed\n );\n }\n\n /**\n * Send the voting speed. ST only\n * @param votingSpeed voting speed in seconds, minimum 1\n */\n setVotingSpeed(votingSpeed) {\n if (this._isSpectator) return;\n if (votingSpeed) {\n this._send(\"votingSpeed\", votingSpeed);\n }\n }\n\n /**\n * Set which player is on the block. ST only\n * @param playerIndex, player id or -1 for empty\n */\n setMarked(playerIndex) {\n if (this._isSpectator) return;\n this._send(\"marked\", playerIndex);\n }\n\n /**\n * Clear the vote history for everyone. ST only\n */\n clearVoteHistory() {\n if (this._isSpectator) return;\n this._send(\"clearVoteHistory\");\n }\n\n /**\n * Send a vote. Player or ST\n * @param index Seat of the player\n * @param sync Flag whether to sync this vote with others or not\n */\n vote([index]) {\n const player = this._store.state.players.players[index];\n if (\n this._store.state.session.playerId === player.id ||\n !this._isSpectator\n ) {\n // send vote only if it is your own vote or you are the storyteller\n this._send(\"vote\", [\n index,\n this._store.state.session.votes[index],\n !this._isSpectator,\n ]);\n }\n }\n\n /**\n * Handle an incoming vote, but only if it is from ST or unlocked.\n * @param index\n * @param vote\n * @param fromST\n */\n _handleVote([index, vote, fromST]) {\n const { session, players } = this._store.state;\n const playerCount = players.players.length;\n const indexAdjusted =\n (index - 1 + playerCount - session.nomination[1]) % playerCount;\n if (fromST || indexAdjusted >= session.lockedVote - 1) {\n this._store.commit(\"session/vote\", [index, vote]);\n }\n }\n\n /**\n * Lock a vote. ST only\n */\n lockVote() {\n if (this._isSpectator) return;\n const { lockedVote, votes, nomination } = this._store.state.session;\n const { players } = this._store.state.players;\n const index = (nomination[1] + lockedVote - 1) % players.length;\n this._send(\"lock\", [this._store.state.session.lockedVote, votes[index]]);\n }\n\n /**\n * Update vote lock and the locked vote, if it differs. Player only\n * @param lock\n * @param vote\n * @private\n */\n _handleLock([lock, vote]) {\n if (!this._isSpectator) return;\n this._store.commit(\"session/lockVote\", lock);\n if (lock > 1) {\n const { lockedVote, nomination } = this._store.state.session;\n const { players } = this._store.state.players;\n const index = (nomination[1] + lockedVote - 1) % players.length;\n if (this._store.state.session.votes[index] !== vote) {\n this._store.commit(\"session/vote\", [index, vote]);\n }\n }\n }\n\n /**\n * Swap two player seats. ST only\n * @param payload\n */\n swapPlayer(payload) {\n if (this._isSpectator) return;\n this._send(\"swap\", payload);\n }\n\n /**\n * Move a player to another seat. ST only\n * @param payload\n */\n movePlayer(payload) {\n if (this._isSpectator) return;\n this._send(\"move\", payload);\n }\n\n /**\n * Remove a player. ST only\n * @param payload\n */\n removePlayer(payload) {\n if (this._isSpectator) return;\n this._send(\"remove\", payload);\n }\n}\n\nexport default (store) => {\n // setup\n const session = new LiveSession(store);\n\n // listen to mutations\n store.subscribe(({ type, payload }, state) => {\n switch (type) {\n case \"session/setSessionId\":\n if (state.session.sessionId) {\n session.connect(state.session.sessionId);\n } else {\n window.location.hash = \"\";\n session.disconnect();\n }\n break;\n case \"session/claimSeat\":\n session.claimSeat(payload);\n break;\n case \"session/distributeRoles\":\n if (payload) {\n session.distributeRoles();\n }\n break;\n case \"session/nomination\":\n case \"session/setNomination\":\n session.nomination(payload);\n break;\n case \"session/setVoteInProgress\":\n session.setVoteInProgress(payload);\n break;\n case \"session/voteSync\":\n session.vote(payload);\n break;\n case \"session/lockVote\":\n session.lockVote();\n break;\n case \"session/setVotingSpeed\":\n session.setVotingSpeed(payload);\n break;\n case \"session/clearVoteHistory\":\n session.clearVoteHistory();\n break;\n case \"session/setVoteHistoryAllowed\":\n session.setVoteHistoryAllowed();\n break;\n case \"session/setVoteWatchingAllowed\":\n session.setVoteWatchingAllowed();\n break;\n case \"toggleNight\":\n session.setIsNight();\n break;\n case \"setEdition\":\n session.sendEdition();\n break;\n case \"players/setFabled\":\n session.sendFabled();\n break;\n case \"session/setMarkedPlayer\":\n session.setMarked(payload);\n break;\n case \"players/swap\":\n session.swapPlayer(payload);\n break;\n case \"players/move\":\n session.movePlayer(payload);\n break;\n case \"players/remove\":\n session.removePlayer(payload);\n break;\n case \"players/set\":\n case \"players/clear\":\n case \"players/add\":\n session.sendGamestate(\"\", true);\n break;\n case \"players/update\":\n if (payload.property === \"pronouns\") {\n session.sendPlayerPronouns(payload);\n } else {\n session.sendPlayer(payload);\n }\n break;\n }\n });\n\n // check for session Id in hash\n const sessionId = window.location.hash.substr(1);\n if (sessionId) {\n store.commit(\"session/setSpectator\", true);\n store.commit(\"session/setSessionId\", sessionId);\n store.commit(\"toggleGrimoire\", false);\n }\n};\n","const NEWPLAYER = {\n name: \"\",\n id: \"\",\n role: {},\n reminders: [],\n isVoteless: false,\n isDead: false,\n pronouns: \"\"\n};\n\nconst state = () => ({\n players: [],\n fabled: [],\n bluffs: []\n});\n\nconst getters = {\n alive({ players }) {\n return players.filter(player => !player.isDead).length;\n },\n nonTravelers({ players }) {\n const nonTravelers = players.filter(\n player => player.role.team !== \"traveler\"\n );\n return Math.min(nonTravelers.length, 15);\n },\n // calculate a Map of player => night order\n nightOrder({ players, fabled }) {\n const firstNight = [0];\n const otherNight = [0];\n players.forEach(({ role }) => {\n if (role.firstNight && !firstNight.includes(role.firstNight)) {\n firstNight.push(role.firstNight);\n }\n if (role.otherNight && !otherNight.includes(role.otherNight)) {\n otherNight.push(role.otherNight);\n }\n });\n fabled.forEach(role => {\n if (role.firstNight && !firstNight.includes(role.firstNight)) {\n firstNight.push(role.firstNight);\n }\n if (role.otherNight && !otherNight.includes(role.otherNight)) {\n otherNight.push(role.otherNight);\n }\n });\n firstNight.sort((a, b) => a - b);\n otherNight.sort((a, b) => a - b);\n const nightOrder = new Map();\n players.forEach(player => {\n const first = Math.max(firstNight.indexOf(player.role.firstNight), 0);\n const other = Math.max(otherNight.indexOf(player.role.otherNight), 0);\n nightOrder.set(player, { first, other });\n });\n fabled.forEach(role => {\n const first = Math.max(firstNight.indexOf(role.firstNight), 0);\n const other = Math.max(otherNight.indexOf(role.otherNight), 0);\n nightOrder.set(role, { first, other });\n });\n return nightOrder;\n }\n};\n\nconst actions = {\n randomize({ state, commit }) {\n const players = state.players\n .map(a => [Math.random(), a])\n .sort((a, b) => a[0] - b[0])\n .map(a => a[1]);\n commit(\"set\", players);\n },\n clearRoles({ state, commit, rootState }) {\n let players;\n if (rootState.session.isSpectator) {\n players = state.players.map(player => {\n if (player.role.team !== \"traveler\") {\n player.role = {};\n }\n player.reminders = [];\n return player;\n });\n } else {\n players = state.players.map(({ name, id, pronouns }) => ({\n ...NEWPLAYER,\n name,\n id,\n pronouns\n }));\n commit(\"setFabled\", { fabled: [] });\n }\n commit(\"set\", players);\n commit(\"setBluff\");\n }\n};\n\nconst mutations = {\n clear(state) {\n state.players = [];\n state.bluffs = [];\n state.fabled = [];\n },\n set(state, players = []) {\n state.players = players;\n },\n /**\n The update mutation also has a property for isFromSockets\n this property can be addded to payload object for any mutations\n then can be used to prevent infinite loops when a property is\n able to be set from multiple different session on websockets.\n An example of this is in the sendPlayerPronouns and _updatePlayerPronouns\n in socket.js.\n */\n update(state, { player, property, value }) {\n const index = state.players.indexOf(player);\n if (index >= 0) {\n state.players[index][property] = value;\n }\n },\n add(state, name) {\n state.players.push({\n ...NEWPLAYER,\n name\n });\n },\n remove(state, index) {\n state.players.splice(index, 1);\n },\n swap(state, [from, to]) {\n [state.players[from], state.players[to]] = [\n state.players[to],\n state.players[from]\n ];\n // hack: \"modify\" the array so that Vue notices something changed\n state.players.splice(0, 0);\n },\n move(state, [from, to]) {\n state.players.splice(to, 0, state.players.splice(from, 1)[0]);\n },\n setBluff(state, { index, role } = {}) {\n if (index !== undefined) {\n state.bluffs.splice(index, 1, role);\n } else {\n state.bluffs = [];\n }\n },\n setFabled(state, { index, fabled } = {}) {\n if (index !== undefined) {\n state.fabled.splice(index, 1);\n } else if (fabled) {\n if (!Array.isArray(fabled)) {\n state.fabled.push(fabled);\n } else {\n state.fabled = fabled;\n }\n }\n }\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n};\n","/**\n * Handle a vote request.\n * If the vote is from a seat that is already locked, ignore it.\n * @param state session state\n * @param index seat of the player in the circle\n * @param vote true or false\n */\nconst handleVote = (state, [index, vote]) => {\n if (!state.nomination) return;\n state.votes = [...state.votes];\n state.votes[index] = vote === undefined ? !state.votes[index] : vote;\n};\n\nconst state = () => ({\n sessionId: \"\",\n isSpectator: false,\n isReconnecting: false,\n playerCount: 0,\n ping: 0,\n playerId: \"\",\n claimedSeat: -1,\n nomination: false,\n votes: [],\n lockedVote: 0,\n votingSpeed: 3000,\n isVoteInProgress: false,\n voteHistory: [],\n markedPlayer: -1,\n isVoteHistoryAllowed: false,\n isVoteWatchingAllowed: true,\n isRolesDistributed: false,\n});\n\nconst getters = {};\n\nconst actions = {};\n\n// mutations helper functions\nconst set = (key) => (state, val) => {\n state[key] = val;\n};\n\nconst mutations = {\n setPlayerId: set(\"playerId\"),\n setSpectator: set(\"isSpectator\"),\n setReconnecting: set(\"isReconnecting\"),\n setPlayerCount: set(\"playerCount\"),\n setPing: set(\"ping\"),\n setVotingSpeed: set(\"votingSpeed\"),\n setVoteInProgress: set(\"isVoteInProgress\"),\n setMarkedPlayer: set(\"markedPlayer\"),\n setNomination: set(\"nomination\"),\n setVoteHistoryAllowed: set(\"isVoteHistoryAllowed\"),\n setVoteWatchingAllowed: set(\"isVoteWatchingAllowed\"),\n claimSeat: set(\"claimedSeat\"),\n distributeRoles: set(\"isRolesDistributed\"),\n setSessionId(state, sessionId) {\n state.sessionId = sessionId\n .toLocaleLowerCase()\n .replace(/[^0-9a-z]/g, \"\")\n .substr(0, 10);\n },\n nomination(\n state,\n { nomination, votes, votingSpeed, lockedVote, isVoteInProgress } = {}\n ) {\n state.nomination = nomination || false;\n state.votes = votes || [];\n state.votingSpeed = votingSpeed || state.votingSpeed;\n state.lockedVote = lockedVote || 0;\n state.isVoteInProgress = isVoteInProgress || false;\n },\n /**\n * Create an entry in the vote history log. Requires current player array because it might change later in the game.\n * Only stores votes that were completed.\n * @param state\n * @param players\n */\n addHistory(state, players) {\n if (!state.isVoteHistoryAllowed && state.isSpectator) return;\n if (!state.nomination || state.lockedVote <= players.length) return;\n const isExile = players[state.nomination[1]].role.team === \"traveler\";\n state.voteHistory.push({\n timestamp: new Date(),\n nominator: players[state.nomination[0]].name,\n nominee: players[state.nomination[1]].name,\n type: isExile ? \"Exile\" : \"Execution\",\n majority: Math.ceil(\n players.filter((player) => !player.isDead || isExile).length / 2\n ),\n votes: players\n .filter((player, index) => state.votes[index])\n .map(({ name }) => name),\n });\n },\n clearVoteHistory(state) {\n state.voteHistory = [];\n },\n /**\n * Store a vote with and without syncing it to the live session.\n * This is necessary in order to prevent infinite voting loops.\n * @param state\n * @param vote\n */\n vote: handleVote,\n voteSync: handleVote,\n lockVote(state, lock) {\n state.lockedVote = lock !== undefined ? lock : state.lockedVote + 1;\n },\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import Vuex from \"vuex\";\nimport persistence from \"./persistence\";\nimport socket from \"./socket\";\nimport players from \"./modules/players\";\nimport session from \"./modules/session\";\nimport editionJSON from \"../editions.json\";\nimport rolesJSON from \"../roles.json\";\nimport fabledJSON from \"../fabled.json\";\nimport jinxesJSON from \"../hatred.json\";\n\n// helper functions\nconst getRolesByEdition = (edition = editionJSON[0]) => {\n return new Map(\n rolesJSON\n .filter((r) => r.edition === edition.id || edition.roles.includes(r.id))\n .sort((a, b) => b.team.localeCompare(a.team))\n .map((role) => [role.id, role])\n );\n};\n\nconst getTravelersNotInEdition = (edition = editionJSON[0]) => {\n return rolesJSON.filter(\n (r) =>\n r.team === \"traveler\" &&\n r.edition !== edition.id &&\n !edition.roles.includes(r.id)\n );\n};\n\nconst getRolesNotInEdition = (edition = editionJSON[0]) => {\n return rolesJSON.filter(\n (r) =>\n r.team !== \"traveler\" &&\n r.edition !== edition.id &&\n !edition.roles.includes(r.id)\n );\n};\n\nconst getRoleById = (id) => {\n return rolesJSON.find((r) => r.id === id);\n ``;\n};\n\nconst set =\n (key) =>\n ({ grimoire }, val) => {\n grimoire[key] = val;\n };\n\nconst toggle =\n (key) =>\n ({ grimoire }, val) => {\n if (val === true || val === false) {\n grimoire[key] = val;\n } else {\n grimoire[key] = !grimoire[key];\n }\n };\n\nconst clean = (id) => id.toLocaleLowerCase().replace(/[^a-z0-9]/g, \"\");\n\n// global data maps\nconst editionJSONbyId = new Map(\n editionJSON.map((edition) => [edition.id, edition])\n);\nconst rolesJSONbyId = new Map(rolesJSON.map((role) => [role.id, role]));\nconst fabled = new Map(fabledJSON.map((role) => [role.id, role]));\n\n// jinxes\nlet jinxes = {};\ntry {\n // Note: can't fetch live list due to lack of CORS headers\n // fetch(\"https://bloodontheclocktower.com/script/data/hatred.json\")\n // .then(res => res.json())\n // .then(jinxesJSON => {\n jinxes = new Map(\n jinxesJSON.map(({ id, hatred }) => [\n clean(id),\n new Map(hatred.map(({ id, reason }) => [clean(id), reason])),\n ])\n );\n // });\n} catch (e) {\n console.error(\"couldn't load jinxes\", e);\n}\n\n// base definition for custom roles\nconst customRole = {\n id: \"\",\n name: \"\",\n image: \"\",\n ability: \"\",\n edition: \"custom\",\n firstNight: 0,\n firstNightReminder: \"\",\n otherNight: 0,\n otherNightReminder: \"\",\n reminders: [],\n remindersGlobal: [],\n setup: false,\n team: \"townsfolk\",\n isCustom: true,\n};\n\nexport const store = Vuex.createStore({\n modules: {\n players,\n session,\n },\n state: {\n grimoire: {\n isNight: false,\n isNightOrder: true,\n isPublic: true,\n isMenuOpen: false,\n isStatic: false,\n isMuted: false,\n isImageOptIn: false,\n zoom: 0,\n background: \"\",\n },\n modals: {\n edition: false,\n fabled: false,\n gameState: false,\n nightOrder: false,\n reference: false,\n reminder: false,\n role: false,\n roles: false,\n voteHistory: false,\n },\n edition: editionJSONbyId.get(\"tb\"),\n roles: getRolesByEdition(),\n otherTravelers: getTravelersNotInEdition(),\n otherRoles: getRolesNotInEdition(),\n fabled,\n jinxes,\n },\n getters: {\n /**\n * Return all custom roles, with default values and non-essential data stripped.\n * Role object keys will be replaced with a numerical index to conserve bandwidth.\n * @param roles\n * @returns {[]}\n */\n customRolesStripped: ({ roles }) => {\n const customRoles = [];\n const customKeys = Object.keys(customRole);\n const strippedProps = [\n \"firstNightReminder\",\n \"otherNightReminder\",\n \"isCustom\",\n ];\n roles.forEach((role) => {\n if (!role.isCustom) {\n customRoles.push({ id: role.id });\n } else {\n const strippedRole = {};\n for (let prop in role) {\n if (strippedProps.includes(prop)) {\n continue;\n }\n const value = role[prop];\n if (customKeys.includes(prop) && value !== customRole[prop]) {\n strippedRole[customKeys.indexOf(prop)] = value;\n }\n }\n customRoles.push(strippedRole);\n }\n });\n return customRoles;\n },\n rolesJSONbyId: () => rolesJSONbyId,\n roleById: getRoleById,\n },\n mutations: {\n setZoom: set(\"zoom\"),\n setBackground: set(\"background\"),\n toggleMuted: toggle(\"isMuted\"),\n toggleMenu: toggle(\"isMenuOpen\"),\n toggleNightOrder: toggle(\"isNightOrder\"),\n toggleStatic: toggle(\"isStatic\"),\n toggleNight: toggle(\"isNight\"),\n toggleGrimoire: toggle(\"isPublic\"),\n toggleImageOptIn: toggle(\"isImageOptIn\"),\n toggleModal({ modals }, name) {\n if (name) {\n modals[name] = !modals[name];\n }\n for (let modal in modals) {\n if (modal === name) continue;\n modals[modal] = false;\n }\n },\n /**\n * Store custom roles\n * @param state\n * @param roles Array of role IDs or full role definitions\n */\n setCustomRoles(state, roles) {\n const processedRoles = roles\n // replace numerical role object keys with matching key names\n .map((role) => {\n if (role[0]) {\n const customKeys = Object.keys(customRole);\n const mappedRole = {};\n for (let prop in role) {\n if (customKeys[prop]) {\n mappedRole[customKeys[prop]] = role[prop];\n }\n }\n return mappedRole;\n } else {\n return role;\n }\n })\n // clean up role.id\n .map((role) => {\n role.id = clean(role.id);\n return role;\n })\n // map existing roles to base definition or pre-populate custom roles to ensure all properties\n .map(\n (role) =>\n rolesJSONbyId.get(role.id) ||\n state.roles.get(role.id) ||\n Object.assign({}, customRole, role)\n )\n // default empty icons and placeholders, clean up firstNight / otherNight\n .map((role) => {\n if (rolesJSONbyId.get(role.id)) return role;\n role.imageAlt = // map team to generic icon\n {\n townsfolk: \"good\",\n outsider: \"outsider\",\n minion: \"minion\",\n demon: \"evil\",\n fabled: \"fabled\",\n }[role.team] || \"custom\";\n role.firstNight = Math.abs(role.firstNight);\n role.otherNight = Math.abs(role.otherNight);\n return role;\n })\n // filter out roles that don't match an existing role and also don't have name/ability/team\n .filter((role) => role.name && role.ability && role.team)\n // sort by team\n .sort((a, b) => b.team.localeCompare(a.team));\n // convert to Map without Fabled\n state.roles = new Map(\n processedRoles\n .filter((role) => role.team !== \"fabled\")\n .map((role) => [role.id, role])\n );\n // update Fabled to include custom Fabled from this script\n state.fabled = new Map([\n ...processedRoles\n .filter((r) => r.team === \"fabled\")\n .map((r) => [r.id, r]),\n ...fabledJSON.map((role) => [role.id, role]),\n ]);\n // update extraTravelers map to only show travelers not in this script\n state.otherTravelers = new Map(\n rolesJSON\n .filter(\n (r) => r.team === \"traveler\" && !roles.some((i) => i.id === r.id)\n )\n .map((role) => [role.id, role])\n );\n },\n setEdition(state, edition) {\n if (editionJSONbyId.has(edition.id)) {\n state.edition = editionJSONbyId.get(edition.id);\n state.roles = getRolesByEdition(state.edition);\n state.otherTravelers = getTravelersNotInEdition(state.edition);\n state.otherRoles = getRolesNotInEdition(state.edition);\n } else {\n state.edition = edition;\n }\n state.modals.edition = false;\n },\n },\n plugins: [persistence, socket],\n});\n","import { createApp } from \"vue\";\nimport App from \"./App.vue\";\nimport { store } from \"./store\";\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\n\nconst faIcons = [\n \"AddressCard\",\n \"BookOpen\",\n \"BookDead\",\n \"BroadcastTower\",\n \"Chair\",\n \"CheckSquare\",\n \"CloudMoon\",\n \"Cog\",\n \"Copy\",\n \"Clipboard\",\n \"Dice\",\n \"Dragon\",\n \"ExchangeAlt\",\n \"ExclamationTriangle\",\n \"FileCode\",\n \"FileUpload\",\n \"HandPaper\",\n \"HandPointRight\",\n \"Heartbeat\",\n \"Image\",\n \"Link\",\n \"MinusCircle\",\n \"PeopleArrows\",\n \"PlusCircle\",\n \"Question\",\n \"Random\",\n \"RedoAlt\",\n \"SearchMinus\",\n \"SearchPlus\",\n \"Skull\",\n \"Square\",\n \"TheaterMasks\",\n \"TimesCircle\",\n \"TrashAlt\",\n \"Undo\",\n \"User\",\n \"UserEdit\",\n \"UserFriends\",\n \"Users\",\n \"VenusMars\",\n \"VolumeUp\",\n \"VolumeMute\",\n \"VoteYea\",\n \"WindowMaximize\",\n \"WindowMinimize\",\n \"Times\",\n \"Xmark\",\n];\nconst fabIcons = [\"Github\", \"Discord\"];\nlibrary.add(\n ...faIcons.map((i) => fas[\"fa\" + i]),\n ...fabIcons.map((i) => fab[\"fa\" + i])\n);\n\ncreateApp(App)\n .component(\"font-awesome-icon\", FontAwesomeIcon)\n .use(store)\n .mount(\"#app\");\n","module.exports = store => {\n const updatePagetitle = isPublic =>\n (document.title = `Blood on the Clocktower ${\n isPublic ? \"Town Square\" : \"Grimoire\"\n }`);\n\n // initialize data\n if (localStorage.getItem(\"background\")) {\n store.commit(\"setBackground\", localStorage.background);\n }\n if (localStorage.getItem(\"muted\")) {\n store.commit(\"toggleMuted\", true);\n }\n if (localStorage.getItem(\"static\")) {\n store.commit(\"toggleStatic\", true);\n }\n if (localStorage.getItem(\"imageOptIn\")) {\n store.commit(\"toggleImageOptIn\", true);\n }\n if (localStorage.getItem(\"zoom\")) {\n store.commit(\"setZoom\", parseFloat(localStorage.getItem(\"zoom\")));\n }\n if (localStorage.getItem(\"isGrimoire\")) {\n store.commit(\"toggleGrimoire\", false);\n updatePagetitle(false);\n }\n if (localStorage.roles !== undefined) {\n store.commit(\"setCustomRoles\", JSON.parse(localStorage.roles));\n store.commit(\"setEdition\", { id: \"custom\" });\n }\n if (localStorage.edition !== undefined) {\n // this will initialize state.roles for official editions\n store.commit(\"setEdition\", JSON.parse(localStorage.edition));\n }\n if (localStorage.bluffs !== undefined) {\n JSON.parse(localStorage.bluffs).forEach((role, index) => {\n store.commit(\"players/setBluff\", {\n index,\n role: store.state.roles.get(role) || {}\n });\n });\n }\n if (localStorage.fabled !== undefined) {\n store.commit(\"players/setFabled\", {\n fabled: JSON.parse(localStorage.fabled).map(\n fabled => store.state.fabled.get(fabled.id) || fabled\n )\n });\n }\n if (localStorage.players) {\n store.commit(\n \"players/set\",\n JSON.parse(localStorage.players).map(player => ({\n ...player,\n role:\n store.state.roles.get(player.role) ||\n store.getters.rolesJSONbyId.get(player.role) ||\n {}\n }))\n );\n }\n /**** Session related data *****/\n if (localStorage.getItem(\"playerId\")) {\n store.commit(\"session/setPlayerId\", localStorage.getItem(\"playerId\"));\n }\n if (localStorage.getItem(\"session\") && !window.location.hash.substr(1)) {\n const [spectator, sessionId] = JSON.parse(localStorage.getItem(\"session\"));\n store.commit(\"session/setSpectator\", spectator);\n store.commit(\"session/setSessionId\", sessionId);\n }\n\n // listen to mutations\n store.subscribe(({ type, payload }, state) => {\n switch (type) {\n case \"toggleGrimoire\":\n if (!state.grimoire.isPublic) {\n localStorage.setItem(\"isGrimoire\", 1);\n } else {\n localStorage.removeItem(\"isGrimoire\");\n }\n updatePagetitle(state.grimoire.isPublic);\n break;\n case \"setBackground\":\n if (payload) {\n localStorage.setItem(\"background\", payload);\n } else {\n localStorage.removeItem(\"background\");\n }\n break;\n case \"toggleMuted\":\n if (state.grimoire.isMuted) {\n localStorage.setItem(\"muted\", 1);\n } else {\n localStorage.removeItem(\"muted\");\n }\n break;\n case \"toggleStatic\":\n if (state.grimoire.isStatic) {\n localStorage.setItem(\"static\", 1);\n } else {\n localStorage.removeItem(\"static\");\n }\n break;\n case \"toggleImageOptIn\":\n if (state.grimoire.isImageOptIn) {\n localStorage.setItem(\"imageOptIn\", 1);\n } else {\n localStorage.removeItem(\"imageOptIn\");\n }\n break;\n case \"setZoom\":\n if (payload !== 0) {\n localStorage.setItem(\"zoom\", payload);\n } else {\n localStorage.removeItem(\"zoom\");\n }\n break;\n case \"setEdition\":\n localStorage.setItem(\"edition\", JSON.stringify(payload));\n if (state.edition.isOfficial) {\n localStorage.removeItem(\"roles\");\n }\n break;\n case \"setCustomRoles\":\n if (!payload.length) {\n localStorage.removeItem(\"roles\");\n } else {\n localStorage.setItem(\"roles\", JSON.stringify(payload));\n }\n break;\n case \"players/setBluff\":\n localStorage.setItem(\n \"bluffs\",\n JSON.stringify(state.players.bluffs.map(({ id }) => id))\n );\n break;\n case \"players/setFabled\":\n localStorage.setItem(\n \"fabled\",\n JSON.stringify(\n state.players.fabled.map(fabled =>\n fabled.isCustom ? fabled : { id: fabled.id }\n )\n )\n );\n break;\n case \"players/add\":\n case \"players/update\":\n case \"players/remove\":\n case \"players/clear\":\n case \"players/set\":\n case \"players/swap\":\n case \"players/move\":\n if (state.players.players.length) {\n localStorage.setItem(\n \"players\",\n JSON.stringify(\n state.players.players.map(player => ({\n ...player,\n // simplify the stored data\n role: player.role.id || {}\n }))\n )\n );\n } else {\n localStorage.removeItem(\"players\");\n }\n break;\n case \"session/setSessionId\":\n if (payload) {\n localStorage.setItem(\n \"session\",\n JSON.stringify([state.session.isSpectator, payload])\n );\n } else {\n localStorage.removeItem(\"session\");\n }\n break;\n case \"session/setPlayerId\":\n if (payload) {\n localStorage.setItem(\"playerId\", payload);\n } else {\n localStorage.removeItem(\"playerId\");\n }\n break;\n }\n });\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunktownsquare\"] = self[\"webpackChunktownsquare\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], () => (__webpack_require__(487)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","class","keyup","tabindex","style","grimoire","background","match","src","autoplay","loop","players","length","session","nomination","ref","version","player","index","key","handleTrigger","$event","isBluffsOpen","toggleBluffs","icon","bluffSize","openRoleModal","role","bluffs","fabled","isFabledOpen","toggleFabled","removeFabled","nightOrder","get","first","isNightOrder","firstNightReminder","other","otherNightReminder","selectedPlayer","zoom","toggleStatus","$emit","vote","title","cancel","swapPlayer","movePlayer","nominatePlayer","sessionId","isRolesDistributed","updatePlayer","isDead","isVoteless","isMenuOpen","name","pronouns","changePronouns","isSpectator","changeName","lockedVote","removePlayer","claimSeat","playerId","reminders","reminder","removeReminder","viewBox","d","fill","setRole","firstNight","otherNight","reminderLeaves","width","x","nameToFontSize","edition","team","ability","props","type","default","computed","this","remindersGlobal","data","methods","__exports__","components","Token","required","indexOf","voteLocked","indexAdjusted","unit","window","innerWidth","innerHeight","isSwap","prompt","isPublic","isMarked","splice","property","value","closeMenu","$store","commit","votes","modals","availableReminders","playerIndex","toggleModal","addReminder","close","isMaximized","emits","mapReminder","image","imageAlt","Modal","state","roles","forEach","some","p","bluff","otherTravelers","otherRoles","push","availableRoles","find","r","tab","filter","filteredRoles","slice","toLowerCase","includes","Player","RoleModal","ReminderModal","swap","move","nominate","method","params","openReminderModal","confirm","from","to","undefined","swapTo","updatedNomination","nom","moveTo","teams","traveler","isOfficial","author","alive","townsfolk","outsider","minion","demon","nonTravelers","getters","href","target","voteHistory","leaveSession","playerCount","toggleMenu","toggleGrimoire","toggleNight","isNight","toggleNightOrder","setZoom","Math","round","setBackground","imageOptIn","toggleStatic","isStatic","toggleMuted","isMuted","ping","copySessionUrl","distributeRoles","hostSession","joinSession","addPlayer","randomizeSeatings","clearPlayers","clearRoles","random","url","location","split","link","navigator","clipboard","writeText","popup","setTimeout","bind","isImageOptIn","toggleImageOptIn","pop","dispatch","roleSelection","teamRoles","reduce","a","selected","game","allowMultiple","assignRoles","selectedRoles","selectRandomRoles","randomElement","arr","floor","values","b","hasSelectedSetupRoles","setup","max","composition","available","Array","sort","mounted","watch","isCustom","scripts","script","handleURL","accept","handleUpload","openUpload","promptURL","readFromClipboard","editions","setEdition","$refs","upload","click","file","files","size","reader","FileReader","addEventListener","JSON","parse","result","parseRoles","alert","message","readAsText","async","res","fetch","json","text","readText","metaIndex","findIndex","meta","String","assign","has","alt","language","userLanguage","reference","rolesGrouped","playersByRole","join","jinxed","jinx","second","reason","jinxes","nomineeStyle","nominatorStyle","nominator","nominee","voters","ceil","isVoteWatchingAllowed","isVoteInProgress","votingSpeed","currentVote","setVotingSpeed","countdown","pause","voteTimer","stop","start","finish","setMarked","removeMarked","muted","transform","transitionDuration","lock","rotation","min","canVote","reorder","n","setInterval","clearInterval","diff","speed","gradients","gradient","height","x1","y1","x2","y2","offset","rolesFirstNight","rolesOtherNight","setFabled","fable","clearVoteHistory","setRecordVoteHistory","setVoteWatching","timestamp","getHours","toString","padStart","getMinutes","majority","isVoteHistoryAllowed","gamestate","input","select","copy","load","stringify","customRolesStripped","f","rolesJSONbyId","GameStateModal","VoteHistoryModal","FabledModal","NightOrderModal","Vote","ReferenceModal","Intro","TownInfo","TownSquare","Menu","EditionModal","RolesModal","Gradients","ctrlKey","metaKey","toLocaleLowerCase","menu","render","LiveSession","constructor","store","_wss","_socket","_isSpectator","_gamestate","_store","_pingInterval","_pingTimer","_reconnectTimer","_players","_pings","connect","_open","channel","disconnect","WebSocket","_handleMessage","onopen","_onOpen","onclose","err","_send","command","readyState","send","_sendDirect","sendGamestate","_ping","_handlePing","clearTimeout","console","log","_updateEdition","_updateFabled","_updateGamestate","_updatePlayer","_updateSeat","_handleVote","_handleLock","_handleBye","_updatePlayerPronouns","substr","isLightweight","roleId","sendEdition","markedPlayer","missing","sendFabled","sendPlayer","sendPlayerPronouns","isFromSockets","playerIdOrCount","latency","now","Date","getTime","parseInt","pings","seat","oldIndex","payload","setVoteInProgress","setIsNight","setVoteHistoryAllowed","setVoteWatchingAllowed","fromST","lockVote","subscribe","hash","NEWPLAYER","Map","set","actions","randomize","rootState","mutations","clear","update","add","remove","setBluff","isArray","namespaced","handleVote","isReconnecting","claimedSeat","val","setPlayerId","setSpectator","setReconnecting","setPlayerCount","setPing","setMarkedPlayer","setNomination","setSessionId","replace","addHistory","isExile","voteSync","getRolesByEdition","localeCompare","getTravelersNotInEdition","getRolesNotInEdition","getRoleById","toggle","clean","editionJSONbyId","hatred","error","customRole","modules","gameState","customRoles","customKeys","strippedProps","strippedRole","prop","roleById","modal","setCustomRoles","processedRoles","mappedRole","abs","i","plugins","socket","faIcons","fabIcons","App","component","use","mount","updatePagetitle","document","localStorage","getItem","parseFloat","spectator","removeItem","setItem","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","m","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","getter","__esModule","definition","defineProperty","enumerable","g","globalThis","Function","obj","prototype","hasOwnProperty","call","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file