prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  'get-loader' needs syslinux updating.
  I've confirmed that the version of syslinux (3.61) currently in get-loader will not let you deploy vmware 5.1 on random machine. 
  
  It errors with "fatal error: 10 (out of resources)" when loading tools.t00.
  
  Using the pxelinux.0 and menu.c32 binaries from the syslinux-3.86.tar.gz build on kernel.org fixes it, and lets it work. 
  
  
  </issue>
  <code>
  [start of cobbler/action_dlcontent.py]
  1 """
  2 Downloads bootloader content for all arches for when the user doesn't want to supply their own.
  3 
  4 Copyright 2009, Red Hat, Inc and Others
  5 Michael DeHaan <michael.dehaan AT gmail>
  6 
  7 This program is free software; you can redistribute it and/or modify
  8 it under the terms of the GNU General Public License as published by
  9 the Free Software Foundation; either version 2 of the License, or
  10 (at your option) any later version.
  11 
  12 This program is distributed in the hope that it will be useful,
  13 but WITHOUT ANY WARRANTY; without even the implied warranty of
  14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15 GNU General Public License for more details.
  16 
  17 You should have received a copy of the GNU General Public License
  18 along with this program; if not, write to the Free Software
  19 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  20 02110-1301  USA
  21 """
  22 
  23 import os
  24 import urlgrabber
  25 import clogger
  26 
  27 class ContentDownloader:
  28 
  29    def __init__(self,config,logger=None):
  30        """
  31        Constructor
  32        """
  33        self.config   = config
  34        self.settings = config.settings()
  35        if logger is None:
  36            logger       = clogger.Logger()
  37        self.logger      = logger
  38 
  39 
  40    def run(self,force=False):
  41        """
  42        Download bootloader content for all of the latest bootloaders, since the user
  43        has chosen to not supply their own.  You may ask "why not get this from yum", though
  44        Fedora has no IA64 repo, for instance, and we also want this to be able to work on Debian and
  45        further do not want folks to have to install a cross compiler.  For those that don't like this approach
  46        they can still source their cross-arch bootloader content manually.
  47        """
  48 
  49        content_server = "http://www.cobblerd.org/loaders"
  50        dest = "/var/lib/cobbler/loaders"
  51 
  52        files = (
  53           ( "%s/README" % content_server, "%s/README" % dest ),
  54           ( "%s/COPYING.elilo" % content_server, "%s/COPYING.elilo" % dest ),
  55           ( "%s/COPYING.yaboot" % content_server, "%s/COPYING.yaboot" % dest),
  56           ( "%s/COPYING.syslinux" % content_server, "%s/COPYING.syslinux" % dest),
  57           ( "%s/elilo-3.8-ia64.efi" % content_server, "%s/elilo-ia64.efi" % dest ),
  58           ( "%s/yaboot-1.3.14-12" % content_server, "%s/yaboot" % dest),
  59           ( "%s/pxelinux.0-4.02" % content_server, "%s/pxelinux.0" % dest),
  60           ( "%s/menu.c32-4.02" % content_server, "%s/menu.c32" % dest),
  61           ( "%s/grub-0.97-x86.efi" % content_server, "%s/grub-x86.efi" % dest),
  62           ( "%s/grub-0.97-x86_64.efi" % content_server, "%s/grub-x86_64.efi" % dest),
  63        )
  64 
  65        proxies = {}
  66        if os.environ.has_key("HTTP_PROXY"):
  67           proxies['http'] = os.environ["HTTP_PROXY"]
  68 
  69        if os.environ.has_key("HTTPS_PROXY"):
  70           proxies['https'] = os.environ["HTTPS_PROXY"]
  71 
  72        if os.environ.has_key("FTP_PROXY"):
  73           proxies['ftp'] = os.environ["FTP_PROXY"]
  74 
  75        if len(proxies) == 0:
  76           proxies = None
  77 
  78        for src,dst in files:
  79           if os.path.exists(dst) and not force:
  80              self.logger.info("path %s already exists, not overwriting existing content, use --force if you wish to update" % dst)
  81              continue
  82           self.logger.info("downloading %s to %s" % (src,dst))
  83           urlgrabber.grabber.urlgrab(src, filename=dst, proxies=proxies)
  84 
  85        return True
  86 
  87
  [end of cobbler/action_dlcontent.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/cobbler/action_dlcontent.py b/cobbler/action_dlcontent.py
  --- a/cobbler/action_dlcontent.py
  +++ b/cobbler/action_dlcontent.py
  @@ -56,8 +56,8 @@
             ( "%s/COPYING.syslinux" % content_server, "%s/COPYING.syslinux" % dest),
             ( "%s/elilo-3.8-ia64.efi" % content_server, "%s/elilo-ia64.efi" % dest ),
             ( "%s/yaboot-1.3.14-12" % content_server, "%s/yaboot" % dest),
  -          ( "%s/pxelinux.0-4.02" % content_server, "%s/pxelinux.0" % dest),
  -          ( "%s/menu.c32-4.02" % content_server, "%s/menu.c32" % dest),
  +          ( "%s/pxelinux.0-3.86" % content_server, "%s/pxelinux.0" % dest),
  +          ( "%s/menu.c32-3.86" % content_server, "%s/menu.c32" % dest),
             ( "%s/grub-0.97-x86.efi" % content_server, "%s/grub-x86.efi" % dest),
             ( "%s/grub-0.97-x86_64.efi" % content_server, "%s/grub-x86_64.efi" % dest),
          )
  
verification_info: {"golden_diff": "diff --git a/cobbler/action_dlcontent.py b/cobbler/action_dlcontent.py\n--- a/cobbler/action_dlcontent.py\n+++ b/cobbler/action_dlcontent.py\n@@ -56,8 +56,8 @@\n           ( \"%s/COPYING.syslinux\" % content_server, \"%s/COPYING.syslinux\" % dest),\n           ( \"%s/elilo-3.8-ia64.efi\" % content_server, \"%s/elilo-ia64.efi\" % dest ),\n           ( \"%s/yaboot-1.3.14-12\" % content_server, \"%s/yaboot\" % dest),\n-          ( \"%s/pxelinux.0-4.02\" % content_server, \"%s/pxelinux.0\" % dest),\n-          ( \"%s/menu.c32-4.02\" % content_server, \"%s/menu.c32\" % dest),\n+          ( \"%s/pxelinux.0-3.86\" % content_server, \"%s/pxelinux.0\" % dest),\n+          ( \"%s/menu.c32-3.86\" % content_server, \"%s/menu.c32\" % dest),\n           ( \"%s/grub-0.97-x86.efi\" % content_server, \"%s/grub-x86.efi\" % dest),\n           ( \"%s/grub-0.97-x86_64.efi\" % content_server, \"%s/grub-x86_64.efi\" % dest),\n        )\n", "issue": "'get-loader' needs syslinux updating.\nI've confirmed that the version of syslinux (3.61) currently in get-loader will not let you deploy vmware 5.1 on random machine. \n\nIt errors with \"fatal error: 10 (out of resources)\" when loading tools.t00.\n\nUsing the pxelinux.0 and menu.c32 binaries from the syslinux-3.86.tar.gz build on kernel.org fixes it, and lets it work. \n\n", "before_files": [{"content": "\"\"\"\nDownloads bootloader content for all arches for when the user doesn't want to supply their own.\n\nCopyright 2009, Red Hat, Inc and Others\nMichael DeHaan <michael.dehaan AT gmail>\n\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n02110-1301  USA\n\"\"\"\n\nimport os\nimport urlgrabber\nimport clogger\n\nclass ContentDownloader:\n\n   def __init__(self,config,logger=None):\n       \"\"\"\n       Constructor\n       \"\"\"\n       self.config   = config\n       self.settings = config.settings()\n       if logger is None:\n           logger       = clogger.Logger()\n       self.logger      = logger\n\n\n   def run(self,force=False):\n       \"\"\"\n       Download bootloader content for all of the latest bootloaders, since the user\n       has chosen to not supply their own.  You may ask \"why not get this from yum\", though\n       Fedora has no IA64 repo, for instance, and we also want this to be able to work on Debian and\n       further do not want folks to have to install a cross compiler.  For those that don't like this approach\n       they can still source their cross-arch bootloader content manually.\n       \"\"\"\n\n       content_server = \"http://www.cobblerd.org/loaders\"\n       dest = \"/var/lib/cobbler/loaders\"\n\n       files = (\n          ( \"%s/README\" % content_server, \"%s/README\" % dest ),\n          ( \"%s/COPYING.elilo\" % content_server, \"%s/COPYING.elilo\" % dest ),\n          ( \"%s/COPYING.yaboot\" % content_server, \"%s/COPYING.yaboot\" % dest),\n          ( \"%s/COPYING.syslinux\" % content_server, \"%s/COPYING.syslinux\" % dest),\n          ( \"%s/elilo-3.8-ia64.efi\" % content_server, \"%s/elilo-ia64.efi\" % dest ),\n          ( \"%s/yaboot-1.3.14-12\" % content_server, \"%s/yaboot\" % dest),\n          ( \"%s/pxelinux.0-4.02\" % content_server, \"%s/pxelinux.0\" % dest),\n          ( \"%s/menu.c32-4.02\" % content_server, \"%s/menu.c32\" % dest),\n          ( \"%s/grub-0.97-x86.efi\" % content_server, \"%s/grub-x86.efi\" % dest),\n          ( \"%s/grub-0.97-x86_64.efi\" % content_server, \"%s/grub-x86_64.efi\" % dest),\n       )\n\n       proxies = {}\n       if os.environ.has_key(\"HTTP_PROXY\"):\n          proxies['http'] = os.environ[\"HTTP_PROXY\"]\n\n       if os.environ.has_key(\"HTTPS_PROXY\"):\n          proxies['https'] = os.environ[\"HTTPS_PROXY\"]\n\n       if os.environ.has_key(\"FTP_PROXY\"):\n          proxies['ftp'] = os.environ[\"FTP_PROXY\"]\n\n       if len(proxies) == 0:\n          proxies = None\n\n       for src,dst in files:\n          if os.path.exists(dst) and not force:\n             self.logger.info(\"path %s already exists, not overwriting existing content, use --force if you wish to update\" % dst)\n             continue\n          self.logger.info(\"downloading %s to %s\" % (src,dst))\n          urlgrabber.grabber.urlgrab(src, filename=dst, proxies=proxies)\n\n       return True\n\n", "path": "cobbler/action_dlcontent.py"}]}