```go
package main
import (
"bufio"
"fmt"
"os"
)
const mod = 1000000007
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
x := scanner.Text()
n := len(x)
val := 0
for i := 0; i < n; i++ {
val = (val*2 + int(x[i]-'0')) % mod
}
p := 1
for i := 0; i < n-1; i++ {
p = (p * 2) % mod
}
fmt.Println((val * p) % mod)
}
```