Skip to main content

passagemath: Algorithms for Rubik's cube

Project description

passagemath is open source mathematical software in Python, released under the GNU General Public Licence GPLv2+.

It is a fork of SageMath, which has been developed 2005-2025 under the motto “Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, and MATLAB”.

The passagemath fork uses the motto “Creating a Free Passage Between the Scientific Python Ecosystem and Mathematical Software Communities.” It was created in October 2024 with the following goals:

Full documentation is available online.

passagemath attempts to support and provides binary wheels suitable for all major Linux distributions and recent versions of macOS.

Binary wheels for native Windows (x86_64) are are available for a subset of the passagemath distributions. Use of the full functionality of passagemath on Windows currently requires the use of Windows Subsystem for Linux (WSL) or virtualization.

The supported Python versions in the passagemath 10.6.x series are 3.10.x-3.13.x.

About this pip-installable distribution package

This pip-installable distribution passagemath-rubiks provides an interface to several programs for working with Rubik’s cubes.

Michael Reid (GPL) http://www.cflmath.com/~reid/Rubik/optimal_solver.html

  • optimal - uses many pre-computed tables to find an optimal solution to the 3x3x3 Rubik’s cube

Dik T. Winter (MIT License)

  • cube - uses Kociemba’s algorithm to iteratively find a short solution to the 3x3x3 Rubik’s cube

  • size222 - solves a 2x2x2 Rubik’s cube

Eric Dietz (GPL) https://web.archive.org/web/20121212175710/http://www.wrongway.org/?rubiksource

  • cu2 - A fast, non-optimal 2x2x2 solver

  • cubex - A fast, non-optimal 3x3x3 solver

  • mcube - A fast, non-optimal 4x4x4 solver

What is included

  • Interface

  • Features (via passagemath-environment)

  • Binary wheels on PyPI contain prebuilt copies of rubiks executables.

Examples

Using rubiks programs on the command line:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks" sage -sh -c cubex

Finding the installation location of a rubiks program:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks[test]" ipython

In [1]: from sage.features.rubiks import cubex

In [2]: cubex().absolute_filename()

Using the Python interface:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks[test]" ipython

In [1]: from sage.interfaces.rubik import *

In [2]: C = RubiksCube("R U F L B D")

In [3]: sol = CubexSolver().solve(C.facets()); sol
Out[3]: "U' L' L' U L U' L U D L L D' L' D L' D' L D L' U' L D' L' U L' B' U' L' U B L D L D' U' L' U L B L B' L' U L U' L' F' L' F L' F L F' L' D' L' D D L D' B L B' L B' L B F' L F F B' L F' B D' D' L D B' B' L' D' B U' U' L' B' D' F' F' L D F'"

Using sage.groups.perm_gps:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks[test]" ipython

In [1]: from passagemath_rubiks import *

In [2]: rubik = CubeGroup(); state = rubik.faces("R")

In [3]: rubik.solve(state)
Out[3]: 'R'

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

passagemath_rubiks-10.6.39.tar.gz (8.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

passagemath_rubiks-10.6.39-cp314-cp314t-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.39-cp314-cp314t-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.39-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.6.39-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.6.39-cp314-cp314t-macosx_13_0_x86_64.whl (213.5 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ x86-64

passagemath_rubiks-10.6.39-cp314-cp314t-macosx_13_0_arm64.whl (205.3 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

passagemath_rubiks-10.6.39-cp312-abi3-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.39-cp312-abi3-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.39-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.6.39-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.6.39-cp312-abi3-macosx_13_0_x86_64.whl (213.6 kB view details)

Uploaded CPython 3.12+macOS 13.0+ x86-64

passagemath_rubiks-10.6.39-cp312-abi3-macosx_13_0_arm64.whl (205.3 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

passagemath_rubiks-10.6.39-cp311-cp311-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.39-cp311-cp311-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.39-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.6.39-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.6.39-cp311-cp311-macosx_13_0_x86_64.whl (212.9 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

passagemath_rubiks-10.6.39-cp311-cp311-macosx_13_0_arm64.whl (204.8 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

passagemath_rubiks-10.6.39-cp310-cp310-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.39-cp310-cp310-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.39-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.6.39-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.6.39-cp310-cp310-macosx_13_0_x86_64.whl (213.2 kB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

passagemath_rubiks-10.6.39-cp310-cp310-macosx_13_0_arm64.whl (205.0 kB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

File details

Details for the file passagemath_rubiks-10.6.39.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.6.39.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for passagemath_rubiks-10.6.39.tar.gz
Algorithm Hash digest
SHA256 bca898cff64bca0b1f9def91df18aecc6e973daacbe2aefa28f5c16ae870f4ac
MD5 f4883ef4249e0e9433c570ba26184014
BLAKE2b-256 7812521d667fa85d53044d58b4e13aa76c74590710a92e5599b3ead41d286e79

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 40c7d76803b02d67912e062a7e50dbd4d15db814c2731c2e7d698196a10e042c
MD5 3aae81da6fd244eee95edaca649c74b5
BLAKE2b-256 e9a9d6290404bfe2421cd8f42a8bbfe7adb3c62d5468c346049fc7d702ecaa86

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 065b0c1673a2e8a6d8d0126dd27f0907791231f1a6a789058ee05c4ed1a1621d
MD5 890a4dc75cffef40a26295744a9dfcbb
BLAKE2b-256 be58b1d900f275db502ea1971d92b56dddbd002ffc568167c0f653f6e3be39a2

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8d6e46ad4362890c1bd86600c3122d9f83ddc7471abe689c1c6eea0f7a76c630
MD5 068f85ce36cb0963028b501e8bbb9b64
BLAKE2b-256 4629c4e19ff82105e2e72bcb96f38de1073d8fa5eb643b5d64dddc6fa6c8a52e

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 af61e515c70b2c8e4669ae1ffecb1ed3ace497dc64f9c7713697d86c91c95e30
MD5 c6f029dd8cece4a3ac84cd07b30c51b3
BLAKE2b-256 a6d0f0be6eed30a254ad87ed036661de2a9f582e89b348b0f2e97a175b5ffcc7

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp314-cp314t-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e7ef043751e057b9645f1db1331393199e68fab2ff21e0159b844bd7e520e597
MD5 b6c770b9fb38c3a28d32c2857e42d9f6
BLAKE2b-256 f7dbeca3fba46b732885f5f748da41cee47d3f4056fb7c9455be3783fc4d60c2

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp314-cp314t-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 32a53484cbe7f69dbcbeed4a0b2dfb8225f10d0208f1e4ca47a7e05a0198e77e
MD5 d827d45fa36e873842085eefd0be94ef
BLAKE2b-256 bd971ebcbbc7c22911e603d9bf8dcc4d82fed0d0d6ec969efa2229968c6ee399

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1eef6e96ae518f22ed6ae0d417bf722ba9869737fc88775440850c82034ddc03
MD5 9a399200aa66130117d6ad694f51e125
BLAKE2b-256 ee32148dd00bd2c87cb7e4b1f01d204ed814388cb62657de93ed4cdd3d915494

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f35619827f642ab443f6924cc774c5aceed673978d89c7f660f8d4fb66c14ff5
MD5 0ca6981319c325c033e6ae9542f60931
BLAKE2b-256 b7a1f6a7e9941166022c1a423646b527b445babff1a9c746fbcf0adc6bc1de75

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a879cdb7dfe0839b27f8eaf378509a368355bf2a2163d1819482e3067e3ab0de
MD5 885848bd3d0103a37e265298a5f162a8
BLAKE2b-256 64a76df44688492ceb9888f74918d4ff3e83330d52c528398845bc823624be7f

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cc050781d11b77242614b743eee3ceb4484d47295bf62e5ee879b1239285d222
MD5 d58768a33aa18991a4afd157ef551af7
BLAKE2b-256 eb9f0ca0e46c4293cf139170df648ec863eb476a9f9adb47cc79bb897276f53d

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp312-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 5eed393d69a229ec590f3a082b5e30644fa66a88516aee2b5d6ce440a3371d77
MD5 b85b37d905e77fdc6076136940324c6d
BLAKE2b-256 feac1be604459340fe9bed2e916c260549d0fddf080b30fb1dcfa0095d5c5528

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp312-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 a596bb4e297683a358ebacbf9ba4ed720b8b05b4cb55f71c2f404caf79fb3336
MD5 d809fd7031738f256f38b59f22a19bc9
BLAKE2b-256 07e94ee67fd73dbb419339faff8629406e8d22cef5dce3381695b03743440306

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b243414b14cd9f51a4696ed4e5a27ce832c6e8a114c70a64d88a86492cf8f34f
MD5 7d72b81a66fc64ecab5b1be536aa70a6
BLAKE2b-256 67c22bf1f92fbb97cf7619e231624aba1d1324940f97660b1fc59836f98dc28e

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5b0390f5e034722a346bd08bc4b64bcb12e9e2d2af0d5b777fb4fd6bd17f17bc
MD5 d236a75d3e3b5ed3cdf63ccd0e88198c
BLAKE2b-256 6f234ec9f3c1f7c60e8a23a137579b4fb64cf40ebea277404f5a09f42d2c86f0

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 23d02098488df6ccc5fa98c03de59d1fd12b3aa7edbcc5f0f00d90bd900fa598
MD5 68e949dbaabcca7fecbfba6c46b1ff9c
BLAKE2b-256 f05e825d9f6dfb57d160d1359c570aaa1283eb1d730eabc05ddf310cd3d72c8f

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e81c6f0c1797ebaf9f8a5883c20a4d1625802c36c73b281be4c6c6f5d579b730
MD5 798e092c9e224f24ec67828f2d8b47b5
BLAKE2b-256 dfdd16a53d4683e752e5b35b5523535f2c7d5396f32786c0f9f74bb3f26f80be

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 014baab6410b2d2ee654dfe51d725ee87bc2675c3356134f81478b9a26ed4271
MD5 e75a141c61ceacaf34bb81d24822140d
BLAKE2b-256 e7125f9b8959ab685d4e61278ad7532803eefdf2d96daf09deab9af1b8455999

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 8d9fd3258643abdc4c6ab20366a721a6b0d8c484816a751a98935414abc463ec
MD5 7b293337f4838eb6c3ed2c1ba5f27a70
BLAKE2b-256 e29b83e3849f4fd982a3db66b9dc1fdfc7248baea1f87fed8b3810d2afcb588b

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b15442a57d7789baa2e66396e80a914366e71e2e92ce86186b46e04708829ad0
MD5 a6d0d242ebd2874b615199b3856fcf2e
BLAKE2b-256 864b7baa01a1023b8f6028d02afe07a4718927e2e3ca082fce7134de62f4073d

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c508a76de415fda151b3de13aa30c046bb63442c860e5a172d3a2315c578499c
MD5 e284a10a5410edf0a736717ea50ccf28
BLAKE2b-256 623b37c788848a90f8a9560dc0ecf24548e860cce8e992780d7022eb1f82b2dd

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 49ed39a66368d56f0143850af29f17b37980ee7366c18f7986c0c1cf8ec9726c
MD5 03326ef81322cacb2205198079890918
BLAKE2b-256 d3aebc5081d3f042d56b8662fce1f7a75a3bc0d7fe7afd996a73a5357c9925d5

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 68b4019d2dbe35222733385c5665c31c7638e16dfea7c91308275d86046878ab
MD5 b8440a0c3f7d77589cb583e19ecb2cfc
BLAKE2b-256 fccc7c23455e6089b8e4a3a8f07a339bc2e99f080f3450b844e67a31e6685fc7

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 5a4ff25ab49dd4977905b3e190e4eb8ab0ce7a495fc56177a66ab9cf8288437d
MD5 91109c758985a5d546fab785800b04f4
BLAKE2b-256 a45c6e9ba881e287a7e7db8578d3405e507f8ddf15cc1ecac7282e8e5ffd6e44

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.39-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.39-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 4756cab457f1ba6c62c1e22a017460accc9ff6bf1d4b878ee96d739467f33d0b
MD5 28caea9cbcdbf536cf2de5aeb43bf677
BLAKE2b-256 787990e1a2f1e061c59f6824a18be77d54695185c58fd38bda584a6b46f28ac5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page