prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Obselete download link for CLEVR Dataset
  Apparently, the current link to CLEVR in the source code is "https://s3-us-west-1.amazonaws.com/clevr/CLEVR_v1.0.zip" that returns the message "All access to this object has been disabled"
  
  When I try to execute the following line of code
  
  `!python ~/ParlAI/examples/display_data.py -t clevr`
  
  I obtain
  
  ```
  [creating task(s): clevr]
  [building data: /root/ParlAI/data/CLEVR]
  [ downloading: https://s3-us-west-1.amazonaws.com/clevr/CLEVR_v1.0.zip to /root/ParlAI/data/CLEVR/CLEVR_v1.0.zip ]
  Downloading CLEVR_v1.0.zip: 0.00B [00:00, ?B/s]
  unpacking CLEVR_v1.0.zip
  Traceback (most recent call last):
    File "/root/ParlAI/parlai/core/agents.py", line 819, in _create_task_agents
      task_agents = my_module.create_agent(opt)
  AttributeError: module 'parlai.tasks.clevr.agents' has no attribute 'create_agent'
  
  During handling of the above exception, another exception occurred:
  
  Traceback (most recent call last):
    File "/root/ParlAI/examples/display_data.py", line 22, in <module>
      display_data(opt)
    File "/root/ParlAI/parlai/scripts/display_data.py", line 42, in display_data
      world = create_task(opt, agent)
    File "/root/ParlAI/parlai/core/worlds.py", line 1151, in create_task
      world = create_task_world(opt, user_agents, default_world=default_world)
    File "/root/ParlAI/parlai/core/worlds.py", line 1108, in create_task_world
      opt, user_agents, default_world=default_world
    File "/root/ParlAI/parlai/core/worlds.py", line 1068, in _get_task_world
      task_agents = _create_task_agents(opt)
    File "/root/ParlAI/parlai/core/agents.py", line 822, in _create_task_agents
      return create_task_agent_from_taskname(opt)
    File "/root/ParlAI/parlai/core/agents.py", line 776, in create_task_agent_from_taskname
      task_agents = teacher_class(opt)
    File "/root/ParlAI/parlai/tasks/clevr/agents.py", line 45, in __init__
      data_path, self.images_path = _path(opt)
    File "/root/ParlAI/parlai/tasks/clevr/agents.py", line 15, in _path
      build(opt)
    File "/root/ParlAI/parlai/tasks/clevr/build.py", line 28, in build
      build_data.untar(dpath, fname)
    File "/root/ParlAI/parlai/core/build_data.py", line 180, in untar
      shutil.unpack_archive(fullpath, path)
    File "/usr/lib/python3.6/shutil.py", line 983, in unpack_archive
      func(filename, extract_dir, **kwargs)
    File "/usr/lib/python3.6/shutil.py", line 883, in _unpack_zipfile
      raise ReadError("%s is not a zip file" % filename)
  shutil.ReadError: /root/ParlAI/data/CLEVR/CLEVR_v1.0.zip is not a zip file
  ```
  
  I found the following working link on CLEVR webpage (https://cs.stanford.edu/people/jcjohns/clevr/):
  
  https://dl.fbaipublicfiles.com/clevr/CLEVR_v1.0.zip
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `parlai/tasks/clevr/build.py`
  Content:
  ```
  1 #!/usr/bin/env python3
  2 
  3 # Copyright (c) Facebook, Inc. and its affiliates.
  4 # This source code is licensed under the MIT license found in the
  5 # LICENSE file in the root directory of this source tree.
  6 # Download and build the data if it does not exist.
  7 
  8 import parlai.core.build_data as build_data
  9 import os
  10 
  11 
  12 def build(opt):
  13     dpath = os.path.join(opt['datapath'], 'CLEVR')
  14     version = 'v1.0'
  15 
  16     if not build_data.built(dpath, version_string=version):
  17         print('[building data: ' + dpath + ']')
  18         # An older version exists, so remove these outdated files.
  19         if build_data.built(dpath):
  20             build_data.remove_dir(dpath)
  21         build_data.make_dir(dpath)
  22 
  23         # Download the data.
  24         fname = 'CLEVR_v1.0.zip'
  25         url = 'https://s3-us-west-1.amazonaws.com/clevr/'
  26 
  27         build_data.download(url + fname, dpath, fname)
  28         build_data.untar(dpath, fname)
  29 
  30         # Mark the data as built.
  31         build_data.mark_done(dpath, version_string=version)
  32
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/parlai/tasks/clevr/build.py b/parlai/tasks/clevr/build.py
  --- a/parlai/tasks/clevr/build.py
  +++ b/parlai/tasks/clevr/build.py
  @@ -22,7 +22,7 @@
   
           # Download the data.
           fname = 'CLEVR_v1.0.zip'
  -        url = 'https://s3-us-west-1.amazonaws.com/clevr/'
  +        url = 'https://dl.fbaipublicfiles.com/clevr/'
   
           build_data.download(url + fname, dpath, fname)
           build_data.untar(dpath, fname)
  
verification_info: {"golden_diff": "diff --git a/parlai/tasks/clevr/build.py b/parlai/tasks/clevr/build.py\n--- a/parlai/tasks/clevr/build.py\n+++ b/parlai/tasks/clevr/build.py\n@@ -22,7 +22,7 @@\n \n         # Download the data.\n         fname = 'CLEVR_v1.0.zip'\n-        url = 'https://s3-us-west-1.amazonaws.com/clevr/'\n+        url = 'https://dl.fbaipublicfiles.com/clevr/'\n \n         build_data.download(url + fname, dpath, fname)\n         build_data.untar(dpath, fname)\n", "issue": "Obselete download link for CLEVR Dataset\nApparently, the current link to CLEVR in the source code is \"https://s3-us-west-1.amazonaws.com/clevr/CLEVR_v1.0.zip\" that returns the message \"All access to this object has been disabled\"\r\n\r\nWhen I try to execute the following line of code\r\n\r\n`!python ~/ParlAI/examples/display_data.py -t clevr`\r\n\r\nI obtain\r\n\r\n```\r\n[creating task(s): clevr]\r\n[building data: /root/ParlAI/data/CLEVR]\r\n[ downloading: https://s3-us-west-1.amazonaws.com/clevr/CLEVR_v1.0.zip to /root/ParlAI/data/CLEVR/CLEVR_v1.0.zip ]\r\nDownloading CLEVR_v1.0.zip: 0.00B [00:00, ?B/s]\r\nunpacking CLEVR_v1.0.zip\r\nTraceback (most recent call last):\r\n  File \"/root/ParlAI/parlai/core/agents.py\", line 819, in _create_task_agents\r\n    task_agents = my_module.create_agent(opt)\r\nAttributeError: module 'parlai.tasks.clevr.agents' has no attribute 'create_agent'\r\n\r\nDuring handling of the above exception, another exception occurred:\r\n\r\nTraceback (most recent call last):\r\n  File \"/root/ParlAI/examples/display_data.py\", line 22, in <module>\r\n    display_data(opt)\r\n  File \"/root/ParlAI/parlai/scripts/display_data.py\", line 42, in display_data\r\n    world = create_task(opt, agent)\r\n  File \"/root/ParlAI/parlai/core/worlds.py\", line 1151, in create_task\r\n    world = create_task_world(opt, user_agents, default_world=default_world)\r\n  File \"/root/ParlAI/parlai/core/worlds.py\", line 1108, in create_task_world\r\n    opt, user_agents, default_world=default_world\r\n  File \"/root/ParlAI/parlai/core/worlds.py\", line 1068, in _get_task_world\r\n    task_agents = _create_task_agents(opt)\r\n  File \"/root/ParlAI/parlai/core/agents.py\", line 822, in _create_task_agents\r\n    return create_task_agent_from_taskname(opt)\r\n  File \"/root/ParlAI/parlai/core/agents.py\", line 776, in create_task_agent_from_taskname\r\n    task_agents = teacher_class(opt)\r\n  File \"/root/ParlAI/parlai/tasks/clevr/agents.py\", line 45, in __init__\r\n    data_path, self.images_path = _path(opt)\r\n  File \"/root/ParlAI/parlai/tasks/clevr/agents.py\", line 15, in _path\r\n    build(opt)\r\n  File \"/root/ParlAI/parlai/tasks/clevr/build.py\", line 28, in build\r\n    build_data.untar(dpath, fname)\r\n  File \"/root/ParlAI/parlai/core/build_data.py\", line 180, in untar\r\n    shutil.unpack_archive(fullpath, path)\r\n  File \"/usr/lib/python3.6/shutil.py\", line 983, in unpack_archive\r\n    func(filename, extract_dir, **kwargs)\r\n  File \"/usr/lib/python3.6/shutil.py\", line 883, in _unpack_zipfile\r\n    raise ReadError(\"%s is not a zip file\" % filename)\r\nshutil.ReadError: /root/ParlAI/data/CLEVR/CLEVR_v1.0.zip is not a zip file\r\n```\r\n\r\nI found the following working link on CLEVR webpage (https://cs.stanford.edu/people/jcjohns/clevr/):\r\n\r\nhttps://dl.fbaipublicfiles.com/clevr/CLEVR_v1.0.zip\n", "before_files": [{"content": "#!/usr/bin/env python3\n\n# Copyright (c) Facebook, Inc. and its affiliates.\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n# Download and build the data if it does not exist.\n\nimport parlai.core.build_data as build_data\nimport os\n\n\ndef build(opt):\n    dpath = os.path.join(opt['datapath'], 'CLEVR')\n    version = 'v1.0'\n\n    if not build_data.built(dpath, version_string=version):\n        print('[building data: ' + dpath + ']')\n        # An older version exists, so remove these outdated files.\n        if build_data.built(dpath):\n            build_data.remove_dir(dpath)\n        build_data.make_dir(dpath)\n\n        # Download the data.\n        fname = 'CLEVR_v1.0.zip'\n        url = 'https://s3-us-west-1.amazonaws.com/clevr/'\n\n        build_data.download(url + fname, dpath, fname)\n        build_data.untar(dpath, fname)\n\n        # Mark the data as built.\n        build_data.mark_done(dpath, version_string=version)\n", "path": "parlai/tasks/clevr/build.py"}], "after_files": [{"content": "#!/usr/bin/env python3\n\n# Copyright (c) Facebook, Inc. and its affiliates.\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n# Download and build the data if it does not exist.\n\nimport parlai.core.build_data as build_data\nimport os\n\n\ndef build(opt):\n    dpath = os.path.join(opt['datapath'], 'CLEVR')\n    version = 'v1.0'\n\n    if not build_data.built(dpath, version_string=version):\n        print('[building data: ' + dpath + ']')\n        # An older version exists, so remove these outdated files.\n        if build_data.built(dpath):\n            build_data.remove_dir(dpath)\n        build_data.make_dir(dpath)\n\n        # Download the data.\n        fname = 'CLEVR_v1.0.zip'\n        url = 'https://dl.fbaipublicfiles.com/clevr/'\n\n        build_data.download(url + fname, dpath, fname)\n        build_data.untar(dpath, fname)\n\n        # Mark the data as built.\n        build_data.mark_done(dpath, version_string=version)\n", "path": "parlai/tasks/clevr/build.py"}]}