code: def do_GET(self):
          
          self.compliance_uri = None
          self.iiif = IIIFRequest(baseurl='/')
          try:
              (of, mime_type) = self.do_GET_body()
              if (not of):
                  raise IIIFError("Unexpected failure to open result image")
              self.send_response(200, 'OK')
              if (mime_type is not None):
                  self.send_header('Content-Type', mime_type)
              self.add_compliance_header()
              self.end_headers()
              while (1):
                  buffer = of.read(8192)
                  if (not buffer):
                      break
                  self.wfile.write(buffer)
              # Now cleanup
              self.manipulator.cleanup()
          except IIIFError as e:
              if (self.debug):
                  e.text += "\nRequest parameters:\n" + str(self.iiif)
              self.error_response(e.code, str(e))
          except Exception as ue:
              # Anything else becomes a 500 Internal Server Error
              e = IIIFError(code=500, text="Something went wrong... %s ---- %s.\n" %
                            (str(ue), traceback.format_exc()))
              if (self.debug):
                  e.text += "\nRequest parameters:\n" + str(self.iiif)
              self.error_response(e.code, str(e))
docs: Implement the HTTP GET method.
  
          The bulk of this code is wrapped in a big try block and anywhere
          within the code may raise an IIIFError which then results in an
          IIIF error response (section 5 of spec).