!%      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Utility functionsMIT Joe Leslie-Hurd <joe@gilith.com> provisionalportableSafe   Directed graphsMIT Joe Leslie-Hurd <joe@gilith.com> provisionalportableSafeFinite two-player gamesMIT Joe Leslie-Hurd <joe@gilith.com> provisionalportableSafe3 !"#$%&'()+*,.-/0124356789:;<=>?@ABCDEFGHIJKLMNOPQR324301567/,.-89:)+*;<=>?@ABC(DE'&%FGHI$JKL#MN"OP !QR StrategiesMIT Joe Leslie-Hurd <joe@gilith.com> provisionalportableSafeeabcdefghijklmnopqrstuvwxyedfghijklmnopqrstucvbawxyNoughts & CrossesMIT Joe Leslie-Hurd <joe@gilith.com> provisionalportableSafez{}|~~z{}| Fox & HoundsMIT Joe Leslie-Hurd <joe@gilith.com> provisionalportableSafe<<      !"#$%&''()*+ !,-./01234456789:;<=>?@ABCDEFGH"$%&IJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyyz{||}~GHMyy||}GHMrxuw solve-1.2-7PuuAuJCntsCeBKHKxH0jK Solve.Util Solve.Graph Solve.GameSolve.StrategySolve.NoughtsCrossesSolve.FoxHoundsProbparity singleton doubleton tripletonmiddlemapLRmapRLunfoldunfoldN updateSettransitiveClosureucfirst normalize expectation isZeroProb nonZeroProb isOneProbboolProbshowProb uniformDistsumDistfuzzDist showTable DfsResultDfsPostDfsPredfsWithdfseval evalUnsafebfsMaxForceGamesSolveValGameEvalWinDrawEventInNeverMoves PlayerStatePlayerPlayer1Player2turngetPlayerStateupdatePlayerStatenowdelay nowOrNever compareEval betterEvalbestEvalwinEval delayEvalturnEval betterResult sameResultwinningmovegameOver solveWithsolve reachable gamesWithgames forceWithforce gameMaxWithgameMax $fOrdEval$fOrdMax $fEqPlayer $fOrdPlayer $fShowPlayer $fEnumPlayer$fBoundedPlayer $fEqEvent $fOrdEvent $fShowEvent$fEqEval $fShowEval $fShowMax$fEqMax AdversariesProbWin StrategyFailStrategyWeightmoveDistStrategy distStrategy applyStrategyweightlessStrategy idStrategy noStrategy thenStrategyorelseStrategy tryStrategyfilterStrategy maxStrategy bestStrategysameResultStrategystopLossStrategy forceStrategy mixedStrategyvalidateStrategy probWinWithprobWinmoveDistPosnoughtscrossesCoord boardSizecoordsrowcolumnboard winningLinescontainsWinningLineinitial occupationfree occupyingoccupiedisFreeoccupygame evalInitial bfsInitialsolution winningFor gamesInitialppPlayerppEval $fShowCoord $fShowPos $fEqCoord $fOrdCoord$fEqPos$fOrdPosfoxhoundsIdxpackSize numSquaresonBoard rankAdjacent foxAdjacent houndAdjacenthoundsReachable foxReachable coordParity coordToSquare squareToCoordemptyisFoxBox posParity posToMoveposToIdxidxToPosfoxMove houndsMove foxEscapedwon winningForFoxwinningForHoundswinDepthfoxBox maxFoxBoxfoxBoxStrategymaxFoxBoxStrategy foxStrategyNhoundsStrategyN adversariesstrategyopposite evalOppositetypical