src/shared.rs303f7e27b5930563eb3dd907f29adcb91ecb5c8423a81f314df585013939fb612ea0ecc2d28424ff25598a68e9267e387d2c9ec7239998650953e0ac26a750d58ecb8f311f6b84f59f66e763d7ca3a4faec43c7fd141f38c448c4bbd4aa8022e2a7bddaf02b46a4d978c