prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Typo in categorical example plot title
  File examples/plotting/file/categorical.py contains a typo in plot name.
  
  
  </issue>
  <code>
  [start of examples/plotting/file/categorical.py]
  1 from bokeh.layouts import row
  2 from bokeh.plotting import figure, show, output_file
  3 
  4 factors = ["a", "b", "c", "d", "e", "f", "g", "h"]
  5 x =  [50, 40, 65, 10, 25, 37, 80, 60]
  6 
  7 dot = figure(title="Catgorical Dot Plot", tools="", toolbar_location=None,
  8             y_range=factors, x_range=[0,100])
  9 
  10 dot.segment(0, factors, x, factors, line_width=2, line_color="green", )
  11 dot.circle(x, factors, size=15, fill_color="orange", line_color="green", line_width=3, )
  12 
  13 factors = ["foo", "bar", "baz"]
  14 x = ["foo", "foo", "foo", "bar", "bar", "bar", "baz", "baz", "baz"]
  15 y = ["foo", "bar", "baz", "foo", "bar", "baz", "foo", "bar", "baz"]
  16 colors = [
  17     "#0B486B", "#79BD9A", "#CFF09E",
  18     "#79BD9A", "#0B486B", "#79BD9A",
  19     "#CFF09E", "#79BD9A", "#0B486B"
  20 ]
  21 
  22 hm = figure(title="Categorical Heatmap", tools="hover", toolbar_location=None,
  23             x_range=factors, y_range=factors)
  24 
  25 hm.rect(x, y, color=colors, width=1, height=1)
  26 
  27 output_file("categorical.html", title="categorical.py example")
  28 
  29 show(row(hm, dot, sizing_mode="scale_width"))  # open a browser
  30
  [end of examples/plotting/file/categorical.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/examples/plotting/file/categorical.py b/examples/plotting/file/categorical.py
  --- a/examples/plotting/file/categorical.py
  +++ b/examples/plotting/file/categorical.py
  @@ -4,7 +4,7 @@
   factors = ["a", "b", "c", "d", "e", "f", "g", "h"]
   x =  [50, 40, 65, 10, 25, 37, 80, 60]
   
  -dot = figure(title="Catgorical Dot Plot", tools="", toolbar_location=None,
  +dot = figure(title="Categorical Dot Plot", tools="", toolbar_location=None,
               y_range=factors, x_range=[0,100])
   
   dot.segment(0, factors, x, factors, line_width=2, line_color="green", )
  
verification_info: {"golden_diff": "diff --git a/examples/plotting/file/categorical.py b/examples/plotting/file/categorical.py\n--- a/examples/plotting/file/categorical.py\n+++ b/examples/plotting/file/categorical.py\n@@ -4,7 +4,7 @@\n factors = [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\"]\n x =  [50, 40, 65, 10, 25, 37, 80, 60]\n \n-dot = figure(title=\"Catgorical Dot Plot\", tools=\"\", toolbar_location=None,\n+dot = figure(title=\"Categorical Dot Plot\", tools=\"\", toolbar_location=None,\n             y_range=factors, x_range=[0,100])\n \n dot.segment(0, factors, x, factors, line_width=2, line_color=\"green\", )\n", "issue": "Typo in categorical example plot title\nFile examples/plotting/file/categorical.py contains a typo in plot name.\n\n", "before_files": [{"content": "from bokeh.layouts import row\nfrom bokeh.plotting import figure, show, output_file\n\nfactors = [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\"]\nx =  [50, 40, 65, 10, 25, 37, 80, 60]\n\ndot = figure(title=\"Catgorical Dot Plot\", tools=\"\", toolbar_location=None,\n            y_range=factors, x_range=[0,100])\n\ndot.segment(0, factors, x, factors, line_width=2, line_color=\"green\", )\ndot.circle(x, factors, size=15, fill_color=\"orange\", line_color=\"green\", line_width=3, )\n\nfactors = [\"foo\", \"bar\", \"baz\"]\nx = [\"foo\", \"foo\", \"foo\", \"bar\", \"bar\", \"bar\", \"baz\", \"baz\", \"baz\"]\ny = [\"foo\", \"bar\", \"baz\", \"foo\", \"bar\", \"baz\", \"foo\", \"bar\", \"baz\"]\ncolors = [\n    \"#0B486B\", \"#79BD9A\", \"#CFF09E\",\n    \"#79BD9A\", \"#0B486B\", \"#79BD9A\",\n    \"#CFF09E\", \"#79BD9A\", \"#0B486B\"\n]\n\nhm = figure(title=\"Categorical Heatmap\", tools=\"hover\", toolbar_location=None,\n            x_range=factors, y_range=factors)\n\nhm.rect(x, y, color=colors, width=1, height=1)\n\noutput_file(\"categorical.html\", title=\"categorical.py example\")\n\nshow(row(hm, dot, sizing_mode=\"scale_width\"))  # open a browser\n", "path": "examples/plotting/file/categorical.py"}]}