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 sage.all__sagemath_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.35.tar.gz (8.3 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.35-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.35-cp314-cp314t-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.35-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.35-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.35-cp314-cp314t-macosx_13_0_x86_64.whl (213.2 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ x86-64

passagemath_rubiks-10.6.35-cp314-cp314t-macosx_13_0_arm64.whl (204.9 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

passagemath_rubiks-10.6.35-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.35-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.35-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.35-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.35-cp312-abi3-macosx_13_0_x86_64.whl (213.3 kB view details)

Uploaded CPython 3.12+macOS 13.0+ x86-64

passagemath_rubiks-10.6.35-cp312-abi3-macosx_13_0_arm64.whl (204.9 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

passagemath_rubiks-10.6.35-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.35-cp311-cp311-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.35-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.35-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.35-cp311-cp311-macosx_13_0_x86_64.whl (212.6 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

passagemath_rubiks-10.6.35-cp311-cp311-macosx_13_0_arm64.whl (204.4 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

passagemath_rubiks-10.6.35-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.35-cp310-cp310-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.35-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.35-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.35-cp310-cp310-macosx_13_0_x86_64.whl (212.8 kB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

passagemath_rubiks-10.6.35-cp310-cp310-macosx_13_0_arm64.whl (204.6 kB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

File details

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

File metadata

  • Download URL: passagemath_rubiks-10.6.35.tar.gz
  • Upload date:
  • Size: 8.3 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.35.tar.gz
Algorithm Hash digest
SHA256 b1af1199ddc9a068dfe130308949997e6f0dd7d1388e2ecbcf5ae47b019acc96
MD5 cba4894526409bd98dfcccaec1fa7727
BLAKE2b-256 df977bb5e014aa27697a5ba1c28f42f612208641bbad639a56dd844817ea1911

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 92acc3a745d21f7482b9e178fc438818315ddd98d55e694dc540e5d2b2eb3532
MD5 d08b9bb2309dfed1573dd3e6e27430ca
BLAKE2b-256 3085b154df9d4f947e25f8d7fca92bdfafbda9e58988e5d4934a8b393348416c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4bddcce4560c5805ae91387d8b73f75dcf3dd1858f375f0cec7cf5bac8921256
MD5 5eb41509395553c4a2e0d623b139d98a
BLAKE2b-256 7caeec0cf3693969fe47ab88eab12d9dcedff8d1ccc0386439b99fc2b07ce44f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ace5f1b4ca2b4705de8ffe8a9d91cd7eeafb4869e5e63c0363783595fcaadc02
MD5 9c6fb8965a87d9e5c86277214f9937fc
BLAKE2b-256 d2a6c3abef23b2ed0a2f92f796283c7756cd7c2141d7e428f88fa8b952fcbcef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5f2578fff24832d049bae90d088075c98c934b81b877e90047b2dc0e22b6dadd
MD5 a09bc1fefd0b19dce4e38f1c4e4bb721
BLAKE2b-256 a0bca891c49bbbe057851ff40b3166424fe7cbd091c4e4ee2f35ab63c3f71704

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 6f5cb565ec49a740492c98c9b9fb0a9a51b0fbcdeb34bdb91d81794243cfcda5
MD5 db8dbdcd32d8312f896209625db9fda4
BLAKE2b-256 fce32fde19e30ec76d5a1ef3b5ece9e3191ced1208351e5ba840c9af7cc50361

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 dbdb68148c1d6fcd02292991965da7f053a5a47474dd0c37822dd9b4bdc7b8e0
MD5 7371b89de69ef6ea25d9352c3023f787
BLAKE2b-256 27e6dbe905acd85a5ef887e4d43db1f05db178adf17754a035953f5e1a679603

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 263c412b6b0d99a224843dbd29e00201ecccd9b9556a0f48c636bed4b6b2cd55
MD5 1f52962ae2a3a359e1f1645bd3f9a0ac
BLAKE2b-256 e64c6d4c10bd5c692fbd5bc7fc674aa315d39d33f15bc616eb831090a6945aba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1ad1c80787e03304ceee7d7332d140bcf3e6b21b7d698547c9b9643f65572b52
MD5 f4e5be8d31e4512179df1192388c4fe7
BLAKE2b-256 6a20764df891c51543c1fe935194d2c58182a439e9bc89b66ad528f599ccd140

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c8971b36379552abe48d32a513fb613c0699039f797086e95eaec3340a69fca1
MD5 26611587fbd9264578a1ec5ace274f9c
BLAKE2b-256 d127e9567810f0a7806c61ddcf8717e202d79b73b3f23b9de35e008cb3859719

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a23c1d51193ab4645a78ea3f8f3e05dc862015004d73eb9e5ea0fc8719f5aa3b
MD5 5ab46c9e99adf8733e3cdf81a850fe72
BLAKE2b-256 fa6178d7c6e8bffbd21e7a4c57791772e58846617bb3a20b23f3439251edd190

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 9763a218c79d8c97483658c250e87778f6cc76b113867c6731142038dda1e9e3
MD5 dc78186b290d43213219d09d0014d662
BLAKE2b-256 f2b6f82b44b4d6f4a81bf25a43ac168d667499de178c3dc25bb4869811629ce2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 d75b5e8d737405415344007fc1ac501480fe0dac8f4454a0b8c8ef2bafe57707
MD5 12f3220a1c92baaacb5a4246907f3a2e
BLAKE2b-256 7fe44e6f69ef32bf47711b8c0d0331752aa64127a7a9e22563fb5c8747a47c0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5f411cbd6eefbbcd375a0ab1edb609b2994e38bf6116d19f66e6b05e36bbc8f6
MD5 1ca16294fbad4cd4eb3ebba6c1931f6c
BLAKE2b-256 1cab5f35e41c0cebd2c93c595c4b76b7bd49cabbe0155f7cf6fb069e897b0400

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5f0e1372f4f1c51748293beed8eb06455822510d35f86054054a5e5a69301b79
MD5 3d7fd6d6440566c8e204e3fd61861d90
BLAKE2b-256 0d8f4063e6080e11135c3aa98f859c98a9dbda50dbe15b956e5ac05dd1de1ee4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cec24bdfe2d466172bee5dfa4f74a3f2cbfe1422c67b6f91eee4d544237153cc
MD5 1599792deb50c16338c8bf4449e169d3
BLAKE2b-256 419bb2fe7b4faca72d8d4e7705a7dbda4cb24d0692c2385d8b694b95f0073860

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 596f32ec89b7b433ea1874d1109a2092820df1acbd619b2e3bb6b3a8caa342cf
MD5 6424f18547290434bd58245627fc8cb1
BLAKE2b-256 3c2cb4f572346afc738f86f08a6f3fd61d7d123fff85d4d623bd773f97cfabf4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 3c036d584b0050c8789aecd667806a7d16f59cc588a3421ac27ee133105c63a6
MD5 823c142c2d09caf9babde9ca85044405
BLAKE2b-256 340fa51c95ae1c7e5474d69d3a2020039551295557865cba20cb1b4d49ad8c93

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 4d1fd33a9f8e12ab240bda7b634c70dcc9e1a25f13fd287bdd6c622444c8b09a
MD5 957d9efa33feb77c89ae1b5b2f32db2f
BLAKE2b-256 c79400e1fc887da53b27b6ad3ae56732aa39d8fa654ed0b52e424405c012d3c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d16ca0dfe8c15d6318c4efb88c37caca633c2a0ba9dea7c26282c12014723b5c
MD5 d09eaf51dd23c39aca02bdac3ce3d2c2
BLAKE2b-256 e7e7a203ec3a2a00dfa73f00b146cc5b94fb3508ef1bbc5e45789e87f451964a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e6f7e8f82d52bee469c91d2232a5c36a8495b3611db565967af06d524ff6ec11
MD5 4d2f9981c808307333bbfd5da7104749
BLAKE2b-256 1f03222fb86ab45d9722844fdbdf973ba846521d7ca596d6d5f376535d824e4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c0580a55c0e15599f1ce0d37943e7b5e6f8852da897ac3f52e4fe27e068f887f
MD5 4d1925488f224ca2ace960d3fa15e83d
BLAKE2b-256 e84545e9b537e916d3b25ec685368e74c5f2eaf2badddae03aac0e3c474284c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 071272746a7fc9159989c15f4b528ec9faa06e2114cb1fda3ba62955513eab70
MD5 1a2657d3378ebfdba79657951eca9094
BLAKE2b-256 d4a8c77b6d1a0fb589e0cbdfec75365fabb266b537bdddbbd97af3ba6b6aff5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 822a9d99a78cd627c458bdebf4cd1a276accd4a25ce4db8d1fb155179a0449ad
MD5 3b4c7584e043ca1d97f9db937700a71b
BLAKE2b-256 81e17079930be017c2fc8a9dc37a13dff6cfd6ccc9bd9c554bdd9f8e13ce76bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.35-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 7355dbdbf8e670736b162e844c8e90bdabc01c91ddfbbbf4246db72d79a2993c
MD5 b4bcffd5b0191fa52bef756f953a4439
BLAKE2b-256 86be3a3ae1cb87e68c64c0ab5df45575d365ee282b7d404c35a7449c8be10091

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