)]}'
{"keystone/token/provider.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"72b9a819a130e73f809d5089b951bf098977b671","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    return base64.urlsafe_b64encode(uuid.uuid4().bytes)[:-2]"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"def random_urlsafe_str_to_bytes(s):"},{"line_number":63,"context_line":"    \"\"\"Convert a string generated by ``random_urlsafe_str()`` to bytes.\"\"\""},{"line_number":64,"context_line":"    # restore the padding (\u003d\u003d) at the end of the string"},{"line_number":65,"context_line":"    return base64.urlsafe_b64decode(s + \u0027\u003d\u003d\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_94e71740","line":62,"updated":"2015-03-05 07:22:19.000000000","message":"this probably should have not been included in this patch, but since it\u0027s used in the follow up, i\u0027m ok with it.","commit_id":"01b92975617417e446db5f59e1f036444c3068b4"}]}
