prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Update SSL session cache size to match Mozilla recommendations
  This is a followup from the research issue at #6903.
  
  Ideally, https://github.com/mozilla/server-side-tls/issues/198 is resolved and Mozilla updates their recommendations. If not, I think we should update our value in https://github.com/certbot/certbot/blob/master/certbot-nginx/certbot_nginx/options-ssl-nginx.conf.
  
  Exactly what these values should be is up for discussion, however, nginx's default timeout of 5 minutes seems like a reasonable place to start to me. I don't know of the top of my head how I think the cache should be configured.
  
  </issue>
  <code>
  [start of certbot-nginx/certbot_nginx/constants.py]
  1 """nginx plugin constants."""
  2 import platform
  3 
  4 FREEBSD_DARWIN_SERVER_ROOT = "/usr/local/etc/nginx"
  5 LINUX_SERVER_ROOT = "/etc/nginx"
  6 
  7 if platform.system() in ('FreeBSD', 'Darwin'):
  8     server_root_tmp = FREEBSD_DARWIN_SERVER_ROOT
  9 else:
  10     server_root_tmp = LINUX_SERVER_ROOT
  11 
  12 CLI_DEFAULTS = dict(
  13     server_root=server_root_tmp,
  14     ctl="nginx",
  15 )
  16 """CLI defaults."""
  17 
  18 
  19 MOD_SSL_CONF_DEST = "options-ssl-nginx.conf"
  20 """Name of the mod_ssl config file as saved in `IConfig.config_dir`."""
  21 
  22 UPDATED_MOD_SSL_CONF_DIGEST = ".updated-options-ssl-nginx-conf-digest.txt"
  23 """Name of the hash of the updated or informed mod_ssl_conf as saved in `IConfig.config_dir`."""
  24 
  25 SSL_OPTIONS_HASHES_NEW = [
  26     '63e2bddebb174a05c9d8a7cf2adf72f7af04349ba59a1a925fe447f73b2f1abf',
  27 ]
  28 """SHA256 hashes of the contents of versions of MOD_SSL_CONF_SRC for nginx >= 1.5.9"""
  29 
  30 ALL_SSL_OPTIONS_HASHES = [
  31     '0f81093a1465e3d4eaa8b0c14e77b2a2e93568b0fc1351c2b87893a95f0de87c',
  32     '9a7b32c49001fed4cff8ad24353329472a50e86ade1ef9b2b9e43566a619612e',
  33     'a6d9f1c7d6b36749b52ba061fff1421f9a0a3d2cfdafbd63c05d06f65b990937',
  34     '7f95624dd95cf5afc708b9f967ee83a24b8025dc7c8d9df2b556bbc64256b3ff',
  35     '394732f2bbe3e5e637c3fb5c6e980a1f1b90b01e2e8d6b7cff41dde16e2a756d',
  36     '4b16fec2bcbcd8a2f3296d886f17f9953ffdcc0af54582452ca1e52f5f776f16',
  37 ] + SSL_OPTIONS_HASHES_NEW
  38 """SHA256 hashes of the contents of all versions of MOD_SSL_CONF_SRC"""
  39 
  40 def os_constant(key):
  41     # XXX TODO: In the future, this could return different constants
  42     #           based on what OS we are running under.  To see an
  43     #           approach to how to handle different OSes, see the
  44     #           apache version of this file.  Currently, we do not
  45     #           actually have any OS-specific constants on Nginx.
  46     """
  47     Get a constant value for operating system
  48 
  49     :param key: name of cli constant
  50     :return: value of constant for active os
  51     """
  52     return CLI_DEFAULTS[key]
  53 
  54 HSTS_ARGS = ['\"max-age=31536000\"', ' ', 'always']
  55 
  56 HEADER_ARGS = {'Strict-Transport-Security': HSTS_ARGS}
  57
  [end of certbot-nginx/certbot_nginx/constants.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/certbot-nginx/certbot_nginx/constants.py b/certbot-nginx/certbot_nginx/constants.py
  --- a/certbot-nginx/certbot_nginx/constants.py
  +++ b/certbot-nginx/certbot_nginx/constants.py
  @@ -24,6 +24,7 @@
   
   SSL_OPTIONS_HASHES_NEW = [
       '63e2bddebb174a05c9d8a7cf2adf72f7af04349ba59a1a925fe447f73b2f1abf',
  +    '2901debc7ecbc10917edd9084c05464c9c5930b463677571eaf8c94bffd11ae2',
   ]
   """SHA256 hashes of the contents of versions of MOD_SSL_CONF_SRC for nginx >= 1.5.9"""
   
  @@ -34,6 +35,7 @@
       '7f95624dd95cf5afc708b9f967ee83a24b8025dc7c8d9df2b556bbc64256b3ff',
       '394732f2bbe3e5e637c3fb5c6e980a1f1b90b01e2e8d6b7cff41dde16e2a756d',
       '4b16fec2bcbcd8a2f3296d886f17f9953ffdcc0af54582452ca1e52f5f776f16',
  +    'c052ffff0ad683f43bffe105f7c606b339536163490930e2632a335c8d191cc4',
   ] + SSL_OPTIONS_HASHES_NEW
   """SHA256 hashes of the contents of all versions of MOD_SSL_CONF_SRC"""
  
verification_info: {"golden_diff": "diff --git a/certbot-nginx/certbot_nginx/constants.py b/certbot-nginx/certbot_nginx/constants.py\n--- a/certbot-nginx/certbot_nginx/constants.py\n+++ b/certbot-nginx/certbot_nginx/constants.py\n@@ -24,6 +24,7 @@\n \n SSL_OPTIONS_HASHES_NEW = [\n     '63e2bddebb174a05c9d8a7cf2adf72f7af04349ba59a1a925fe447f73b2f1abf',\n+    '2901debc7ecbc10917edd9084c05464c9c5930b463677571eaf8c94bffd11ae2',\n ]\n \"\"\"SHA256 hashes of the contents of versions of MOD_SSL_CONF_SRC for nginx >= 1.5.9\"\"\"\n \n@@ -34,6 +35,7 @@\n     '7f95624dd95cf5afc708b9f967ee83a24b8025dc7c8d9df2b556bbc64256b3ff',\n     '394732f2bbe3e5e637c3fb5c6e980a1f1b90b01e2e8d6b7cff41dde16e2a756d',\n     '4b16fec2bcbcd8a2f3296d886f17f9953ffdcc0af54582452ca1e52f5f776f16',\n+    'c052ffff0ad683f43bffe105f7c606b339536163490930e2632a335c8d191cc4',\n ] + SSL_OPTIONS_HASHES_NEW\n \"\"\"SHA256 hashes of the contents of all versions of MOD_SSL_CONF_SRC\"\"\"\n", "issue": "Update SSL session cache size to match Mozilla recommendations\nThis is a followup from the research issue at #6903.\r\n\r\nIdeally, https://github.com/mozilla/server-side-tls/issues/198 is resolved and Mozilla updates their recommendations. If not, I think we should update our value in https://github.com/certbot/certbot/blob/master/certbot-nginx/certbot_nginx/options-ssl-nginx.conf.\r\n\r\nExactly what these values should be is up for discussion, however, nginx's default timeout of 5 minutes seems like a reasonable place to start to me. I don't know of the top of my head how I think the cache should be configured.\n", "before_files": [{"content": "\"\"\"nginx plugin constants.\"\"\"\nimport platform\n\nFREEBSD_DARWIN_SERVER_ROOT = \"/usr/local/etc/nginx\"\nLINUX_SERVER_ROOT = \"/etc/nginx\"\n\nif platform.system() in ('FreeBSD', 'Darwin'):\n    server_root_tmp = FREEBSD_DARWIN_SERVER_ROOT\nelse:\n    server_root_tmp = LINUX_SERVER_ROOT\n\nCLI_DEFAULTS = dict(\n    server_root=server_root_tmp,\n    ctl=\"nginx\",\n)\n\"\"\"CLI defaults.\"\"\"\n\n\nMOD_SSL_CONF_DEST = \"options-ssl-nginx.conf\"\n\"\"\"Name of the mod_ssl config file as saved in `IConfig.config_dir`.\"\"\"\n\nUPDATED_MOD_SSL_CONF_DIGEST = \".updated-options-ssl-nginx-conf-digest.txt\"\n\"\"\"Name of the hash of the updated or informed mod_ssl_conf as saved in `IConfig.config_dir`.\"\"\"\n\nSSL_OPTIONS_HASHES_NEW = [\n    '63e2bddebb174a05c9d8a7cf2adf72f7af04349ba59a1a925fe447f73b2f1abf',\n]\n\"\"\"SHA256 hashes of the contents of versions of MOD_SSL_CONF_SRC for nginx >= 1.5.9\"\"\"\n\nALL_SSL_OPTIONS_HASHES = [\n    '0f81093a1465e3d4eaa8b0c14e77b2a2e93568b0fc1351c2b87893a95f0de87c',\n    '9a7b32c49001fed4cff8ad24353329472a50e86ade1ef9b2b9e43566a619612e',\n    'a6d9f1c7d6b36749b52ba061fff1421f9a0a3d2cfdafbd63c05d06f65b990937',\n    '7f95624dd95cf5afc708b9f967ee83a24b8025dc7c8d9df2b556bbc64256b3ff',\n    '394732f2bbe3e5e637c3fb5c6e980a1f1b90b01e2e8d6b7cff41dde16e2a756d',\n    '4b16fec2bcbcd8a2f3296d886f17f9953ffdcc0af54582452ca1e52f5f776f16',\n] + SSL_OPTIONS_HASHES_NEW\n\"\"\"SHA256 hashes of the contents of all versions of MOD_SSL_CONF_SRC\"\"\"\n\ndef os_constant(key):\n    # XXX TODO: In the future, this could return different constants\n    #           based on what OS we are running under.  To see an\n    #           approach to how to handle different OSes, see the\n    #           apache version of this file.  Currently, we do not\n    #           actually have any OS-specific constants on Nginx.\n    \"\"\"\n    Get a constant value for operating system\n\n    :param key: name of cli constant\n    :return: value of constant for active os\n    \"\"\"\n    return CLI_DEFAULTS[key]\n\nHSTS_ARGS = ['\\\"max-age=31536000\\\"', ' ', 'always']\n\nHEADER_ARGS = {'Strict-Transport-Security': HSTS_ARGS}\n", "path": "certbot-nginx/certbot_nginx/constants.py"}]}